@jinn-network/client 0.1.2 → 0.1.3-canary.24b69ea4

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 (1458) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CONTRIBUTING.md +9 -2
  3. package/README.md +67 -47
  4. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +36 -0
  5. package/deployments/deployment-jinn-mvi-l1-sepolia.json +36 -0
  6. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +12 -0
  7. package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
  8. package/deployments/deployment-stolas-l2-baseSepolia-fast.json +1 -1
  9. package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +38 -0
  10. package/dist/adapters/adapter.d.ts +19 -8
  11. package/dist/adapters/local/adapter.d.ts +10 -9
  12. package/dist/adapters/local/adapter.js +52 -79
  13. package/dist/adapters/local/adapter.js.map +1 -1
  14. package/dist/adapters/mech/adapter.d.ts +37 -15
  15. package/dist/adapters/mech/adapter.js +557 -364
  16. package/dist/adapters/mech/adapter.js.map +1 -1
  17. package/dist/adapters/mech/contracts.d.ts +80 -20
  18. package/dist/adapters/mech/contracts.js +372 -100
  19. package/dist/adapters/mech/contracts.js.map +1 -1
  20. package/dist/adapters/mech/ipfs.d.ts +66 -12
  21. package/dist/adapters/mech/ipfs.js +165 -30
  22. package/dist/adapters/mech/ipfs.js.map +1 -1
  23. package/dist/adapters/mech/safe-revert.d.ts +40 -0
  24. package/dist/adapters/mech/safe-revert.js +261 -0
  25. package/dist/adapters/mech/safe-revert.js.map +1 -0
  26. package/dist/adapters/mech/safe.js +48 -22
  27. package/dist/adapters/mech/safe.js.map +1 -1
  28. package/dist/adapters/mech/task-subgraph.d.ts +23 -0
  29. package/dist/adapters/mech/task-subgraph.js +157 -0
  30. package/dist/adapters/mech/task-subgraph.js.map +1 -0
  31. package/dist/adapters/mech/types.d.ts +256 -84
  32. package/dist/adapters/mech/types.js +125 -50
  33. package/dist/adapters/mech/types.js.map +1 -1
  34. package/dist/agent/agent-ws.d.ts +57 -0
  35. package/dist/agent/agent-ws.js +301 -0
  36. package/dist/agent/agent-ws.js.map +1 -0
  37. package/dist/agent/auto-mode-detect.d.ts +6 -0
  38. package/dist/agent/auto-mode-detect.js +44 -0
  39. package/dist/agent/auto-mode-detect.js.map +1 -0
  40. package/dist/agent/operator-claude.d.ts +22 -0
  41. package/dist/agent/operator-claude.js +176 -0
  42. package/dist/agent/operator-claude.js.map +1 -0
  43. package/dist/api/admin-endpoint.d.ts +12 -0
  44. package/dist/api/admin-endpoint.js +71 -0
  45. package/dist/api/admin-endpoint.js.map +1 -0
  46. package/dist/api/agent-binding-endpoint.d.ts +26 -0
  47. package/dist/api/agent-binding-endpoint.js +28 -0
  48. package/dist/api/agent-binding-endpoint.js.map +1 -0
  49. package/dist/api/bootstrap-endpoint.d.ts +25 -0
  50. package/dist/api/bootstrap-endpoint.js +104 -0
  51. package/dist/api/bootstrap-endpoint.js.map +1 -0
  52. package/dist/api/captures.d.ts +22 -0
  53. package/dist/api/captures.js +88 -0
  54. package/dist/api/captures.js.map +1 -0
  55. package/dist/api/events-endpoint.d.ts +9 -0
  56. package/dist/api/events-endpoint.js +46 -0
  57. package/dist/api/events-endpoint.js.map +1 -0
  58. package/dist/api/fleet-build.d.ts +1 -1
  59. package/dist/api/fleet-build.js +17 -8
  60. package/dist/api/fleet-build.js.map +1 -1
  61. package/dist/api/gather-status.d.ts +16 -1
  62. package/dist/api/gather-status.js +194 -3
  63. package/dist/api/gather-status.js.map +1 -1
  64. package/dist/api/handshake.d.ts +17 -0
  65. package/dist/api/handshake.js +28 -0
  66. package/dist/api/handshake.js.map +1 -0
  67. package/dist/api/harness-status-endpoint.d.ts +20 -0
  68. package/dist/api/harness-status-endpoint.js +13 -0
  69. package/dist/api/harness-status-endpoint.js.map +1 -0
  70. package/dist/api/history-build.d.ts +2 -2
  71. package/dist/api/history-build.js +3 -3
  72. package/dist/api/history-build.js.map +1 -1
  73. package/dist/api/launcher-endpoints.d.ts +43 -0
  74. package/dist/api/launcher-endpoints.js +50 -0
  75. package/dist/api/launcher-endpoints.js.map +1 -0
  76. package/dist/api/launcher-status.d.ts +93 -0
  77. package/dist/api/launcher-status.js +84 -0
  78. package/dist/api/launcher-status.js.map +1 -0
  79. package/dist/api/launcher-tasks.d.ts +76 -0
  80. package/dist/api/launcher-tasks.js +127 -0
  81. package/dist/api/launcher-tasks.js.map +1 -0
  82. package/dist/api/leaderboard-api.d.ts +20 -0
  83. package/dist/api/leaderboard-api.js +18 -0
  84. package/dist/api/leaderboard-api.js.map +1 -0
  85. package/dist/api/operator-artifacts-endpoint.d.ts +19 -0
  86. package/dist/api/operator-artifacts-endpoint.js +271 -0
  87. package/dist/api/operator-artifacts-endpoint.js.map +1 -0
  88. package/dist/api/peers.js +21 -6
  89. package/dist/api/peers.js.map +1 -1
  90. package/dist/api/portfolio-v0-build.d.ts +16 -10
  91. package/dist/api/portfolio-v0-build.js +36 -31
  92. package/dist/api/portfolio-v0-build.js.map +1 -1
  93. package/dist/api/portfolio-v0-doctor.js +1 -1
  94. package/dist/api/portfolio-v0-doctor.js.map +1 -1
  95. package/dist/api/prediction-v1-build.d.ts +65 -0
  96. package/dist/api/prediction-v1-build.js +73 -0
  97. package/dist/api/prediction-v1-build.js.map +1 -0
  98. package/dist/api/rewards-build.js +3 -8
  99. package/dist/api/rewards-build.js.map +1 -1
  100. package/dist/api/server.d.ts +106 -1
  101. package/dist/api/server.js +396 -17
  102. package/dist/api/server.js.map +1 -1
  103. package/dist/api/setup-endpoints.d.ts +62 -0
  104. package/dist/api/setup-endpoints.js +752 -0
  105. package/dist/api/setup-endpoints.js.map +1 -0
  106. package/dist/api/solvernets-catalog-build.d.ts +47 -0
  107. package/dist/api/solvernets-catalog-build.js +19 -0
  108. package/dist/api/solvernets-catalog-build.js.map +1 -0
  109. package/dist/api/solvernets-endpoint.d.ts +15 -0
  110. package/dist/api/solvernets-endpoint.js +5 -0
  111. package/dist/api/solvernets-endpoint.js.map +1 -0
  112. package/dist/api/solvernets-endpoints.d.ts +104 -0
  113. package/dist/api/solvernets-endpoints.js +1121 -0
  114. package/dist/api/solvernets-endpoints.js.map +1 -0
  115. package/dist/api/status-build.d.ts +26 -2
  116. package/dist/api/status-build.js +46 -9
  117. package/dist/api/status-build.js.map +1 -1
  118. package/dist/api/status-rollup-build.d.ts +46 -1
  119. package/dist/api/status-rollup-build.js +174 -8
  120. package/dist/api/status-rollup-build.js.map +1 -1
  121. package/dist/api/stop-hook.d.ts +36 -0
  122. package/dist/api/stop-hook.js +77 -0
  123. package/dist/api/stop-hook.js.map +1 -0
  124. package/dist/api/task-runs-build.d.ts +27 -0
  125. package/dist/api/task-runs-build.js +46 -0
  126. package/dist/api/task-runs-build.js.map +1 -0
  127. package/dist/api/ui-token.d.ts +5 -0
  128. package/dist/api/ui-token.js +36 -0
  129. package/dist/api/ui-token.js.map +1 -0
  130. package/dist/bin/jinn-stop-hook.d.ts +9 -0
  131. package/dist/bin/jinn-stop-hook.js +52 -0
  132. package/dist/bin/jinn-stop-hook.js.map +1 -0
  133. package/dist/build-info.d.ts +32 -0
  134. package/dist/build-info.js +69 -0
  135. package/dist/build-info.js.map +1 -0
  136. package/dist/build-info.json +6 -0
  137. package/dist/build-meta.json +1 -1
  138. package/dist/captures/dedup.d.ts +27 -0
  139. package/dist/captures/dedup.js +48 -0
  140. package/dist/captures/dedup.js.map +1 -0
  141. package/dist/captures/index.d.ts +4 -0
  142. package/dist/captures/index.js +5 -0
  143. package/dist/captures/index.js.map +1 -0
  144. package/dist/captures/live-publisher.d.ts +33 -0
  145. package/dist/captures/live-publisher.js +101 -0
  146. package/dist/captures/live-publisher.js.map +1 -0
  147. package/dist/captures/publish.d.ts +83 -0
  148. package/dist/captures/publish.js +212 -0
  149. package/dist/captures/publish.js.map +1 -0
  150. package/dist/captures/rate-limit.d.ts +39 -0
  151. package/dist/captures/rate-limit.js +79 -0
  152. package/dist/captures/rate-limit.js.map +1 -0
  153. package/dist/cli/command.d.ts +9 -0
  154. package/dist/cli/commands/auth.js +6 -3
  155. package/dist/cli/commands/auth.js.map +1 -1
  156. package/dist/cli/commands/balance.d.ts +7 -0
  157. package/dist/cli/commands/balance.js +38 -32
  158. package/dist/cli/commands/balance.js.map +1 -1
  159. package/dist/cli/commands/bootstrap.d.ts +13 -1
  160. package/dist/cli/commands/bootstrap.js +150 -133
  161. package/dist/cli/commands/bootstrap.js.map +1 -1
  162. package/dist/cli/commands/capture.d.ts +33 -0
  163. package/dist/cli/commands/capture.js +345 -0
  164. package/dist/cli/commands/capture.js.map +1 -0
  165. package/dist/cli/commands/checkpoint.d.ts +85 -0
  166. package/dist/cli/commands/checkpoint.js +75 -0
  167. package/dist/cli/commands/checkpoint.js.map +1 -0
  168. package/dist/cli/commands/claim-rewards.js +14 -2
  169. package/dist/cli/commands/claim-rewards.js.map +1 -1
  170. package/dist/cli/commands/conformance.d.ts +12 -0
  171. package/dist/cli/commands/conformance.js +140 -0
  172. package/dist/cli/commands/conformance.js.map +1 -0
  173. package/dist/cli/commands/create.d.ts +22 -0
  174. package/dist/cli/commands/create.js +226 -0
  175. package/dist/cli/commands/create.js.map +1 -0
  176. package/dist/cli/commands/doctor.d.ts +49 -1
  177. package/dist/cli/commands/doctor.js +162 -134
  178. package/dist/cli/commands/doctor.js.map +1 -1
  179. package/dist/cli/commands/fleet-scale.d.ts +19 -1
  180. package/dist/cli/commands/fleet-scale.js +378 -361
  181. package/dist/cli/commands/fleet-scale.js.map +1 -1
  182. package/dist/cli/commands/fleet.d.ts +7 -0
  183. package/dist/cli/commands/fleet.js +39 -33
  184. package/dist/cli/commands/fleet.js.map +1 -1
  185. package/dist/cli/commands/fund-requirements.d.ts +14 -1
  186. package/dist/cli/commands/fund-requirements.js +182 -174
  187. package/dist/cli/commands/fund-requirements.js.map +1 -1
  188. package/dist/cli/commands/harnesses.d.ts +38 -0
  189. package/dist/cli/commands/harnesses.js +376 -0
  190. package/dist/cli/commands/harnesses.js.map +1 -0
  191. package/dist/cli/commands/history.d.ts +10 -1
  192. package/dist/cli/commands/history.js +68 -59
  193. package/dist/cli/commands/history.js.map +1 -1
  194. package/dist/cli/commands/init.js +4 -1
  195. package/dist/cli/commands/init.js.map +1 -1
  196. package/dist/cli/commands/integrations.d.ts +13 -0
  197. package/dist/cli/commands/integrations.js +1010 -0
  198. package/dist/cli/commands/integrations.js.map +1 -0
  199. package/dist/cli/commands/logs.d.ts +6 -1
  200. package/dist/cli/commands/logs.js +77 -70
  201. package/dist/cli/commands/logs.js.map +1 -1
  202. package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
  203. package/dist/cli/commands/migrate-agent-id.js +164 -0
  204. package/dist/cli/commands/migrate-agent-id.js.map +1 -0
  205. package/dist/cli/commands/prediction-scoreboard.d.ts +10 -0
  206. package/dist/cli/commands/prediction-scoreboard.js +136 -0
  207. package/dist/cli/commands/prediction-scoreboard.js.map +1 -0
  208. package/dist/cli/commands/quickstart.d.ts +51 -1
  209. package/dist/cli/commands/quickstart.js +514 -296
  210. package/dist/cli/commands/quickstart.js.map +1 -1
  211. package/dist/cli/commands/rewards.d.ts +7 -0
  212. package/dist/cli/commands/rewards.js +46 -40
  213. package/dist/cli/commands/rewards.js.map +1 -1
  214. package/dist/cli/commands/run.d.ts +14 -1
  215. package/dist/cli/commands/run.js +243 -91
  216. package/dist/cli/commands/run.js.map +1 -1
  217. package/dist/cli/commands/solver-nets.js +231 -0
  218. package/dist/cli/commands/solver-nets.js.map +1 -0
  219. package/dist/cli/commands/solver-plugins.d.ts +9 -0
  220. package/dist/cli/commands/solver-plugins.js +186 -0
  221. package/dist/cli/commands/solver-plugins.js.map +1 -0
  222. package/dist/cli/commands/status.d.ts +13 -0
  223. package/dist/cli/commands/status.js +105 -34
  224. package/dist/cli/commands/status.js.map +1 -1
  225. package/dist/cli/commands/stop.js +87 -14
  226. package/dist/cli/commands/stop.js.map +1 -1
  227. package/dist/cli/commands/tasks.js +405 -0
  228. package/dist/cli/commands/tasks.js.map +1 -0
  229. package/dist/cli/commands/ui.d.ts +3 -0
  230. package/dist/cli/commands/ui.js +45 -0
  231. package/dist/cli/commands/ui.js.map +1 -0
  232. package/dist/cli/commands/update.d.ts +12 -0
  233. package/dist/cli/commands/update.js +321 -91
  234. package/dist/cli/commands/update.js.map +1 -1
  235. package/dist/cli/commands/version.js +3 -2
  236. package/dist/cli/commands/version.js.map +1 -1
  237. package/dist/cli/commands/withdraw.d.ts +21 -1
  238. package/dist/cli/commands/withdraw.js +175 -159
  239. package/dist/cli/commands/withdraw.js.map +1 -1
  240. package/dist/cli/deployment-digest.js +0 -5
  241. package/dist/cli/deployment-digest.js.map +1 -1
  242. package/dist/cli/execution-context.d.ts +1 -1
  243. package/dist/cli/execution-context.js +4 -4
  244. package/dist/cli/execution-context.js.map +1 -1
  245. package/dist/cli/help.js +8 -1
  246. package/dist/cli/help.js.map +1 -1
  247. package/dist/cli/index.d.ts +7 -0
  248. package/dist/cli/index.js +28 -6
  249. package/dist/cli/index.js.map +1 -1
  250. package/dist/cli/introspection-context.js +0 -1
  251. package/dist/cli/introspection-context.js.map +1 -1
  252. package/dist/cli/open-browser.d.ts +1 -0
  253. package/dist/cli/open-browser.js +18 -0
  254. package/dist/cli/open-browser.js.map +1 -0
  255. package/dist/cli/password.d.ts +3 -3
  256. package/dist/cli/password.js +6 -6
  257. package/dist/cli/password.js.map +1 -1
  258. package/dist/cli/task-native-readiness.d.ts +27 -0
  259. package/dist/cli/task-native-readiness.js +170 -0
  260. package/dist/cli/task-native-readiness.js.map +1 -0
  261. package/dist/config.d.ts +1897 -60
  262. package/dist/config.js +602 -33
  263. package/dist/config.js.map +1 -1
  264. package/dist/conformance/checks/artifacts.d.ts +37 -0
  265. package/dist/conformance/checks/artifacts.js +110 -0
  266. package/dist/conformance/checks/artifacts.js.map +1 -0
  267. package/dist/conformance/checks/envelope-schema.d.ts +17 -0
  268. package/dist/conformance/checks/envelope-schema.js +36 -0
  269. package/dist/conformance/checks/envelope-schema.js.map +1 -0
  270. package/dist/conformance/checks/hash-signature.d.ts +26 -0
  271. package/dist/conformance/checks/hash-signature.js +70 -0
  272. package/dist/conformance/checks/hash-signature.js.map +1 -0
  273. package/dist/conformance/checks/payload.d.ts +19 -0
  274. package/dist/conformance/checks/payload.js +52 -0
  275. package/dist/conformance/checks/payload.js.map +1 -0
  276. package/dist/conformance/checks/secret-scrub.d.ts +33 -0
  277. package/dist/conformance/checks/secret-scrub.js +118 -0
  278. package/dist/conformance/checks/secret-scrub.js.map +1 -0
  279. package/dist/conformance/checks/source-runtime.d.ts +43 -0
  280. package/dist/conformance/checks/source-runtime.js +68 -0
  281. package/dist/conformance/checks/source-runtime.js.map +1 -0
  282. package/dist/conformance/checks/source-static.d.ts +61 -0
  283. package/dist/conformance/checks/source-static.js +311 -0
  284. package/dist/conformance/checks/source-static.js.map +1 -0
  285. package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
  286. package/dist/conformance/checks/trajectory-chain.js +51 -0
  287. package/dist/conformance/checks/trajectory-chain.js.map +1 -0
  288. package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
  289. package/dist/conformance/checks/trajectory-profile.js +51 -0
  290. package/dist/conformance/checks/trajectory-profile.js.map +1 -0
  291. package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
  292. package/dist/conformance/checks/trajectory-schema.js +40 -0
  293. package/dist/conformance/checks/trajectory-schema.js.map +1 -0
  294. package/dist/conformance/checks/verdict.d.ts +44 -0
  295. package/dist/conformance/checks/verdict.js +122 -0
  296. package/dist/conformance/checks/verdict.js.map +1 -0
  297. package/dist/conformance/harness.d.ts +32 -0
  298. package/dist/conformance/harness.js +227 -0
  299. package/dist/conformance/harness.js.map +1 -0
  300. package/dist/conformance/types.d.ts +88 -0
  301. package/dist/conformance/types.js +31 -0
  302. package/dist/conformance/types.js.map +1 -0
  303. package/dist/corpus/acquire.d.ts +42 -0
  304. package/dist/corpus/acquire.js +213 -0
  305. package/dist/corpus/acquire.js.map +1 -0
  306. package/dist/corpus/cache.d.ts +14 -0
  307. package/dist/corpus/cache.js +18 -0
  308. package/dist/corpus/cache.js.map +1 -0
  309. package/dist/corpus/envelope-projection.d.ts +12 -0
  310. package/dist/corpus/envelope-projection.js +110 -0
  311. package/dist/corpus/envelope-projection.js.map +1 -0
  312. package/dist/corpus/fetch.d.ts +9 -0
  313. package/dist/corpus/fetch.js +24 -0
  314. package/dist/corpus/fetch.js.map +1 -0
  315. package/dist/corpus/index.d.ts +19 -0
  316. package/dist/corpus/index.js +87 -0
  317. package/dist/corpus/index.js.map +1 -0
  318. package/dist/corpus/prediction-brier-scoreboard-report.d.ts +17 -0
  319. package/dist/corpus/prediction-brier-scoreboard-report.js +148 -0
  320. package/dist/corpus/prediction-brier-scoreboard-report.js.map +1 -0
  321. package/dist/corpus/prediction-brier-scoreboard.d.ts +56 -0
  322. package/dist/corpus/prediction-brier-scoreboard.js +269 -0
  323. package/dist/corpus/prediction-brier-scoreboard.js.map +1 -0
  324. package/dist/corpus/prediction-scoreable-verdicts.d.ts +4 -0
  325. package/dist/corpus/prediction-scoreable-verdicts.js +23 -0
  326. package/dist/corpus/prediction-scoreable-verdicts.js.map +1 -0
  327. package/dist/corpus/query.d.ts +17 -0
  328. package/dist/corpus/query.js +113 -0
  329. package/dist/corpus/query.js.map +1 -0
  330. package/dist/corpus/route-resolver.d.ts +16 -0
  331. package/dist/corpus/route-resolver.js +20 -0
  332. package/dist/corpus/route-resolver.js.map +1 -0
  333. package/dist/corpus/types.d.ts +151 -0
  334. package/dist/corpus/types.js +50 -0
  335. package/dist/corpus/types.js.map +1 -0
  336. package/dist/daemon/balance-topup-loop.js +2 -1
  337. package/dist/daemon/balance-topup-loop.js.map +1 -1
  338. package/dist/daemon/creator.d.ts +7 -7
  339. package/dist/daemon/creator.js +11 -14
  340. package/dist/daemon/creator.js.map +1 -1
  341. package/dist/daemon/daemon.d.ts +83 -31
  342. package/dist/daemon/daemon.js +206 -67
  343. package/dist/daemon/daemon.js.map +1 -1
  344. package/dist/daemon/delivery-watcher.js +50 -4
  345. package/dist/daemon/delivery-watcher.js.map +1 -1
  346. package/dist/daemon/freeze-fence.d.ts +42 -0
  347. package/dist/daemon/freeze-fence.js +71 -0
  348. package/dist/daemon/freeze-fence.js.map +1 -0
  349. package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
  350. package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
  351. package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
  352. package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
  353. package/dist/daemon/jinn-claim-loop-mock.js +122 -0
  354. package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
  355. package/dist/daemon/jinn-claim-loop.d.ts +123 -0
  356. package/dist/daemon/jinn-claim-loop.js +256 -0
  357. package/dist/daemon/jinn-claim-loop.js.map +1 -0
  358. package/dist/daemon/reward-claim-loop.d.ts +2 -0
  359. package/dist/daemon/reward-claim-loop.js +32 -27
  360. package/dist/daemon/reward-claim-loop.js.map +1 -1
  361. package/dist/dashboard/assets/index-DBPsa50k.js +76 -0
  362. package/dist/dashboard/assets/index-D_NMfDfV.css +32 -0
  363. package/dist/dashboard/index.html +18 -74
  364. package/dist/earning/agent-wallet-binding.d.ts +133 -0
  365. package/dist/earning/agent-wallet-binding.js +202 -0
  366. package/dist/earning/agent-wallet-binding.js.map +1 -0
  367. package/dist/earning/bootstrap.d.ts +88 -1
  368. package/dist/earning/bootstrap.js +409 -56
  369. package/dist/earning/bootstrap.js.map +1 -1
  370. package/dist/earning/contracts.d.ts +328 -6
  371. package/dist/earning/contracts.js +295 -14
  372. package/dist/earning/contracts.js.map +1 -1
  373. package/dist/earning/evidence-simhash.d.ts +1 -1
  374. package/dist/earning/faucet.d.ts +31 -0
  375. package/dist/earning/faucet.js +37 -0
  376. package/dist/earning/faucet.js.map +1 -1
  377. package/dist/earning/funding-plan.d.ts +89 -0
  378. package/dist/earning/funding-plan.js +202 -0
  379. package/dist/earning/funding-plan.js.map +1 -0
  380. package/dist/earning/migrate-agent-id.d.ts +129 -0
  381. package/dist/earning/migrate-agent-id.js +256 -0
  382. package/dist/earning/migrate-agent-id.js.map +1 -0
  383. package/dist/earning/orphan-sweep.d.ts +14 -0
  384. package/dist/earning/orphan-sweep.js +63 -2
  385. package/dist/earning/orphan-sweep.js.map +1 -1
  386. package/dist/earning/reconcile.d.ts +2 -0
  387. package/dist/earning/reconcile.js +30 -0
  388. package/dist/earning/reconcile.js.map +1 -1
  389. package/dist/earning/safe-adapter.js +45 -3
  390. package/dist/earning/safe-adapter.js.map +1 -1
  391. package/dist/earning/stolas-claim.d.ts +86 -6
  392. package/dist/earning/stolas-claim.js +123 -9
  393. package/dist/earning/stolas-claim.js.map +1 -1
  394. package/dist/earning/store.d.ts +47 -0
  395. package/dist/earning/store.js +113 -1
  396. package/dist/earning/store.js.map +1 -1
  397. package/dist/earning/testnet-setup-migration.d.ts +32 -0
  398. package/dist/earning/testnet-setup-migration.js +214 -0
  399. package/dist/earning/testnet-setup-migration.js.map +1 -0
  400. package/dist/earning/types.d.ts +57 -9
  401. package/dist/earning/types.js +51 -2
  402. package/dist/earning/types.js.map +1 -1
  403. package/dist/earning/viem-clients.d.ts +20 -0
  404. package/dist/earning/viem-clients.js +32 -1
  405. package/dist/earning/viem-clients.js.map +1 -1
  406. package/dist/erc8004/abis.d.ts +423 -0
  407. package/dist/erc8004/abis.js +265 -0
  408. package/dist/erc8004/abis.js.map +1 -0
  409. package/dist/erc8004/addresses.d.ts +40 -0
  410. package/dist/erc8004/addresses.js +64 -0
  411. package/dist/erc8004/addresses.js.map +1 -0
  412. package/dist/erc8004/identity.d.ts +273 -0
  413. package/dist/erc8004/identity.js +405 -0
  414. package/dist/erc8004/identity.js.map +1 -0
  415. package/dist/erc8004/index.d.ts +13 -0
  416. package/dist/erc8004/index.js +20 -0
  417. package/dist/erc8004/index.js.map +1 -0
  418. package/dist/erc8004/reputation.d.ts +349 -0
  419. package/dist/erc8004/reputation.js +464 -0
  420. package/dist/erc8004/reputation.js.map +1 -0
  421. package/dist/erc8004/subgraph.d.ts +46 -0
  422. package/dist/erc8004/subgraph.js +37 -0
  423. package/dist/erc8004/subgraph.js.map +1 -0
  424. package/dist/erc8004/validation.d.ts +145 -0
  425. package/dist/erc8004/validation.js +219 -0
  426. package/dist/erc8004/validation.js.map +1 -0
  427. package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
  428. package/dist/errors/persisted-bootstrap-error.js +50 -0
  429. package/dist/errors/persisted-bootstrap-error.js.map +1 -0
  430. package/dist/events/emitter.d.ts +12 -0
  431. package/dist/events/emitter.js +23 -0
  432. package/dist/events/emitter.js.map +1 -0
  433. package/dist/events/ring-buffer.d.ts +25 -0
  434. package/dist/events/ring-buffer.js +46 -0
  435. package/dist/events/ring-buffer.js.map +1 -0
  436. package/dist/events/types.d.ts +42 -0
  437. package/dist/events/types.js +28 -0
  438. package/dist/events/types.js.map +1 -0
  439. package/dist/harnesses/capability/index.d.ts +82 -0
  440. package/dist/harnesses/capability/index.js +12 -0
  441. package/dist/harnesses/capability/index.js.map +1 -0
  442. package/dist/harnesses/capability/scoped-rpc.d.ts +12 -0
  443. package/dist/harnesses/capability/scoped-rpc.js +34 -0
  444. package/dist/harnesses/capability/scoped-rpc.js.map +1 -0
  445. package/dist/harnesses/capability/scoped-secrets.d.ts +8 -0
  446. package/dist/harnesses/capability/scoped-secrets.js +10 -0
  447. package/dist/harnesses/capability/scoped-secrets.js.map +1 -0
  448. package/dist/harnesses/capability/scoped-signer.d.ts +46 -0
  449. package/dist/harnesses/capability/scoped-signer.js +73 -0
  450. package/dist/harnesses/capability/scoped-signer.js.map +1 -0
  451. package/dist/harnesses/engine/artifact-scrub.d.ts +12 -0
  452. package/dist/harnesses/engine/artifact-scrub.js +104 -0
  453. package/dist/harnesses/engine/artifact-scrub.js.map +1 -0
  454. package/dist/harnesses/engine/canonical-json.d.ts +1 -0
  455. package/dist/harnesses/engine/canonical-json.js +66 -0
  456. package/dist/harnesses/engine/canonical-json.js.map +1 -0
  457. package/dist/harnesses/engine/delivery.d.ts +58 -0
  458. package/dist/harnesses/engine/delivery.js +67 -0
  459. package/dist/harnesses/engine/delivery.js.map +1 -0
  460. package/dist/harnesses/engine/engine.d.ts +519 -0
  461. package/dist/harnesses/engine/engine.js +1588 -0
  462. package/dist/harnesses/engine/engine.js.map +1 -0
  463. package/dist/harnesses/engine/envelope-assembly.d.ts +73 -0
  464. package/dist/harnesses/engine/envelope-assembly.js +60 -0
  465. package/dist/harnesses/engine/envelope-assembly.js.map +1 -0
  466. package/dist/harnesses/engine/packaging.d.ts +99 -0
  467. package/dist/harnesses/engine/packaging.js +424 -0
  468. package/dist/harnesses/engine/packaging.js.map +1 -0
  469. package/dist/harnesses/engine/persistence.d.ts +198 -0
  470. package/dist/harnesses/engine/persistence.js +443 -0
  471. package/dist/harnesses/engine/persistence.js.map +1 -0
  472. package/dist/harnesses/engine/recovery.d.ts +22 -0
  473. package/dist/harnesses/engine/recovery.js +24 -0
  474. package/dist/harnesses/engine/recovery.js.map +1 -0
  475. package/dist/harnesses/engine/registry.d.ts +55 -0
  476. package/dist/harnesses/engine/registry.js +66 -0
  477. package/dist/harnesses/engine/registry.js.map +1 -0
  478. package/dist/harnesses/engine/signing.d.ts +30 -0
  479. package/dist/harnesses/engine/signing.js +39 -0
  480. package/dist/harnesses/engine/signing.js.map +1 -0
  481. package/dist/harnesses/engine/state.d.ts +42 -0
  482. package/dist/harnesses/engine/state.js +87 -0
  483. package/dist/harnesses/engine/state.js.map +1 -0
  484. package/dist/harnesses/engine/validate-manifest.d.ts +23 -0
  485. package/dist/harnesses/engine/validate-manifest.js +63 -0
  486. package/dist/harnesses/engine/validate-manifest.js.map +1 -0
  487. package/dist/harnesses/engine/verification-stub.d.ts +18 -0
  488. package/dist/harnesses/engine/verification-stub.js +18 -0
  489. package/dist/harnesses/engine/verification-stub.js.map +1 -0
  490. package/dist/harnesses/external-impls/index.d.ts +3 -0
  491. package/dist/harnesses/external-impls/index.js +2 -0
  492. package/dist/harnesses/external-impls/index.js.map +1 -0
  493. package/dist/harnesses/external-impls/loader.d.ts +50 -0
  494. package/dist/harnesses/external-impls/loader.js +139 -0
  495. package/dist/harnesses/external-impls/loader.js.map +1 -0
  496. package/dist/harnesses/external-impls/package-hash.d.ts +26 -0
  497. package/dist/harnesses/external-impls/package-hash.js +102 -0
  498. package/dist/harnesses/external-impls/package-hash.js.map +1 -0
  499. package/dist/harnesses/external-impls/types.d.ts +42 -0
  500. package/dist/harnesses/external-impls/types.js +10 -0
  501. package/dist/harnesses/external-impls/types.js.map +1 -0
  502. package/dist/harnesses/freeze.d.ts +34 -0
  503. package/dist/harnesses/freeze.js +60 -0
  504. package/dist/harnesses/freeze.js.map +1 -0
  505. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.d.ts +57 -0
  506. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js +239 -0
  507. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
  508. package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.d.ts +31 -0
  509. package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.js +257 -0
  510. package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.js.map +1 -0
  511. package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.d.ts +21 -0
  512. package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.js +193 -0
  513. package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.js.map +1 -0
  514. package/dist/harnesses/impls/claude-code-learner/harness.d.ts +22 -0
  515. package/dist/harnesses/impls/claude-code-learner/harness.js +62 -0
  516. package/dist/harnesses/impls/claude-code-learner/harness.js.map +1 -0
  517. package/dist/harnesses/impls/claude-code-learner/harvest.d.ts +20 -0
  518. package/dist/harnesses/impls/claude-code-learner/harvest.js +510 -0
  519. package/dist/harnesses/impls/claude-code-learner/harvest.js.map +1 -0
  520. package/dist/harnesses/impls/claude-code-learner/index.d.ts +18 -0
  521. package/dist/harnesses/impls/claude-code-learner/index.js +15 -0
  522. package/dist/harnesses/impls/claude-code-learner/index.js.map +1 -0
  523. package/dist/harnesses/impls/claude-code-learner/plugin-path.d.ts +14 -0
  524. package/dist/harnesses/impls/claude-code-learner/plugin-path.js +30 -0
  525. package/dist/harnesses/impls/claude-code-learner/plugin-path.js.map +1 -0
  526. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +50 -0
  527. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +192 -0
  528. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
  529. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
  530. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
  531. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
  532. package/dist/harnesses/impls/claude-code-learner/types.d.ts +114 -0
  533. package/dist/harnesses/impls/claude-code-learner/types.js.map +1 -0
  534. package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
  535. package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  536. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.d.ts +106 -0
  537. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js +723 -0
  538. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  539. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  540. package/dist/harnesses/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  541. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +104 -0
  542. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js +264 -0
  543. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  544. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +44 -0
  545. package/dist/harnesses/impls/claude-mcp-prediction/index.js +250 -0
  546. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -0
  547. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +135 -0
  548. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
  549. package/dist/harnesses/impls/claude-mcp-prediction/prompt.d.ts +8 -0
  550. package/dist/harnesses/impls/claude-mcp-prediction/prompt.js +54 -0
  551. package/dist/harnesses/impls/claude-mcp-prediction/prompt.js.map +1 -0
  552. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +43 -0
  553. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +21 -0
  554. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
  555. package/dist/harnesses/impls/claude-mcp-prediction/types.d.ts +84 -0
  556. package/dist/harnesses/impls/claude-mcp-prediction/types.js +6 -0
  557. package/dist/harnesses/impls/claude-mcp-prediction/types.js.map +1 -0
  558. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.d.ts +36 -0
  559. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +241 -0
  560. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  561. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
  562. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  563. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  564. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js +46 -0
  565. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  566. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +37 -0
  567. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +19 -0
  568. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  569. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
  570. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js +6 -0
  571. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  572. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
  573. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js +206 -0
  574. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
  575. package/dist/harnesses/impls/evaluation-context.d.ts +23 -0
  576. package/dist/harnesses/impls/evaluation-context.js +25 -0
  577. package/dist/harnesses/impls/evaluation-context.js.map +1 -0
  578. package/dist/harnesses/impls/index.d.ts +84 -0
  579. package/dist/harnesses/impls/index.js +136 -0
  580. package/dist/harnesses/impls/index.js.map +1 -0
  581. package/dist/harnesses/impls/legacy-claude/index.d.ts +66 -0
  582. package/dist/harnesses/impls/legacy-claude/index.js +168 -0
  583. package/dist/harnesses/impls/legacy-claude/index.js.map +1 -0
  584. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
  585. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
  586. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  587. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  588. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
  589. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
  590. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  591. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
  592. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
  593. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  594. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
  595. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
  596. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  597. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
  598. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
  599. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  600. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +44 -0
  601. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +569 -0
  602. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -0
  603. package/dist/harnesses/impls/portfolio-v0-evaluator/score.js.map +1 -0
  604. package/dist/harnesses/impls/portfolio-v0-evaluator/types.d.ts +34 -0
  605. package/dist/harnesses/impls/portfolio-v0-evaluator/types.js.map +1 -0
  606. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.d.ts +42 -0
  607. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js +114 -0
  608. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js.map +1 -0
  609. package/dist/harnesses/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
  610. package/dist/harnesses/impls/prediction-apy-v0-baseline/types.js.map +1 -0
  611. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
  612. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
  613. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
  614. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +42 -0
  615. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +346 -0
  616. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
  617. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +16 -0
  618. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js +22 -0
  619. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  620. package/dist/harnesses/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
  621. package/dist/harnesses/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
  622. package/dist/harnesses/impls/prediction-v0-baseline/index.d.ts +33 -0
  623. package/dist/harnesses/impls/prediction-v0-baseline/index.js +109 -0
  624. package/dist/harnesses/impls/prediction-v0-baseline/index.js.map +1 -0
  625. package/dist/harnesses/impls/prediction-v0-baseline/strategy.d.ts +8 -0
  626. package/dist/harnesses/impls/prediction-v0-baseline/strategy.js +41 -0
  627. package/dist/harnesses/impls/prediction-v0-baseline/strategy.js.map +1 -0
  628. package/dist/harnesses/impls/prediction-v0-baseline/types.d.ts +7 -0
  629. package/dist/harnesses/impls/prediction-v0-baseline/types.js.map +1 -0
  630. package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
  631. package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  632. package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
  633. package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  634. package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
  635. package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  636. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.d.ts +15 -0
  637. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
  638. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  639. package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
  640. package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  641. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +36 -0
  642. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +342 -0
  643. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -0
  644. package/dist/harnesses/impls/prediction-v0-evaluator/score.js.map +1 -0
  645. package/dist/harnesses/impls/prediction-v0-evaluator/types.js +2 -0
  646. package/dist/harnesses/impls/prediction-v0-evaluator/types.js.map +1 -0
  647. package/dist/harnesses/impls/prediction-v1-baseline/index.d.ts +31 -0
  648. package/dist/harnesses/impls/prediction-v1-baseline/index.js +79 -0
  649. package/dist/harnesses/impls/prediction-v1-baseline/index.js.map +1 -0
  650. package/dist/harnesses/impls/prediction-v1-evaluator/index.d.ts +32 -0
  651. package/dist/harnesses/impls/prediction-v1-evaluator/index.js +219 -0
  652. package/dist/harnesses/impls/prediction-v1-evaluator/index.js.map +1 -0
  653. package/dist/harnesses/impls/session-derived-evaluator/index.d.ts +4 -0
  654. package/dist/harnesses/impls/session-derived-evaluator/index.js +5 -0
  655. package/dist/harnesses/impls/session-derived-evaluator/index.js.map +1 -0
  656. package/dist/harnesses/impls/session-derived-evaluator/llm-judge.d.ts +16 -0
  657. package/dist/harnesses/impls/session-derived-evaluator/llm-judge.js +16 -0
  658. package/dist/harnesses/impls/session-derived-evaluator/llm-judge.js.map +1 -0
  659. package/dist/harnesses/impls/session-derived-evaluator/signals.d.ts +13 -0
  660. package/dist/harnesses/impls/session-derived-evaluator/signals.js +15 -0
  661. package/dist/harnesses/impls/session-derived-evaluator/signals.js.map +1 -0
  662. package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.d.ts +7 -0
  663. package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.js +28 -0
  664. package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.js.map +1 -0
  665. package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.d.ts +15 -0
  666. package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.js +17 -0
  667. package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.js.map +1 -0
  668. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +20 -0
  669. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +107 -0
  670. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -0
  671. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +74 -0
  672. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +288 -0
  673. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -0
  674. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +33 -0
  675. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +96 -0
  676. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -0
  677. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +61 -0
  678. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +42 -0
  679. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -0
  680. package/dist/harnesses/manifest/index.d.ts +3 -0
  681. package/dist/harnesses/manifest/index.js +3 -0
  682. package/dist/harnesses/manifest/index.js.map +1 -0
  683. package/dist/harnesses/manifest/load.d.ts +7 -0
  684. package/dist/harnesses/manifest/load.js +49 -0
  685. package/dist/harnesses/manifest/load.js.map +1 -0
  686. package/dist/harnesses/manifest/types.d.ts +75 -0
  687. package/dist/harnesses/manifest/types.js +8 -0
  688. package/dist/harnesses/manifest/types.js.map +1 -0
  689. package/dist/harnesses/manifest/verify.d.ts +15 -0
  690. package/dist/harnesses/manifest/verify.js +53 -0
  691. package/dist/harnesses/manifest/verify.js.map +1 -0
  692. package/dist/harnesses/mode-state.d.ts +7 -0
  693. package/dist/harnesses/mode-state.js +43 -0
  694. package/dist/harnesses/mode-state.js.map +1 -0
  695. package/dist/harnesses/names.d.ts +6 -0
  696. package/dist/harnesses/names.js +24 -0
  697. package/dist/harnesses/names.js.map +1 -0
  698. package/dist/harnesses/types.d.ts +276 -0
  699. package/dist/harnesses/types.js +28 -0
  700. package/dist/harnesses/types.js.map +1 -0
  701. package/dist/index.d.ts +1 -1
  702. package/dist/main.d.ts +17 -2
  703. package/dist/main.js +1593 -147
  704. package/dist/main.js.map +1 -1
  705. package/dist/mcp/acquire-artifact.d.ts +41 -0
  706. package/dist/mcp/acquire-artifact.js +168 -0
  707. package/dist/mcp/acquire-artifact.js.map +1 -0
  708. package/dist/mcp/operator-server.d.ts +21 -4
  709. package/dist/mcp/operator-server.js +505 -30
  710. package/dist/mcp/operator-server.js.map +1 -1
  711. package/dist/mcp/search-records.d.ts +94 -0
  712. package/dist/mcp/search-records.js +396 -0
  713. package/dist/mcp/search-records.js.map +1 -0
  714. package/dist/mcp/server.d.ts +4 -4
  715. package/dist/mcp/server.js +240 -61
  716. package/dist/mcp/server.js.map +1 -1
  717. package/dist/observability/emit-event.d.ts +2 -2
  718. package/dist/observability/emit-event.js +2 -2
  719. package/dist/observability/emit-event.js.map +1 -1
  720. package/dist/operator-errors.d.ts +14 -0
  721. package/dist/operator-errors.js +39 -10
  722. package/dist/operator-errors.js.map +1 -1
  723. package/dist/plugins/digest.d.ts +1 -0
  724. package/dist/plugins/digest.js +28 -0
  725. package/dist/plugins/digest.js.map +1 -0
  726. package/dist/plugins/index.d.ts +6 -0
  727. package/dist/plugins/index.js +6 -0
  728. package/dist/plugins/index.js.map +1 -0
  729. package/dist/plugins/manifest.d.ts +7 -0
  730. package/dist/plugins/manifest.js +22 -0
  731. package/dist/plugins/manifest.js.map +1 -0
  732. package/dist/plugins/registry.d.ts +9 -0
  733. package/dist/plugins/registry.js +24 -0
  734. package/dist/plugins/registry.js.map +1 -0
  735. package/dist/plugins/resolvers.d.ts +2 -0
  736. package/dist/plugins/resolvers.js +126 -0
  737. package/dist/plugins/resolvers.js.map +1 -0
  738. package/dist/plugins/types.d.ts +35 -0
  739. package/dist/plugins/types.js +2 -0
  740. package/dist/plugins/types.js.map +1 -0
  741. package/dist/plugins/validator.d.ts +3 -0
  742. package/dist/plugins/validator.js +50 -0
  743. package/dist/plugins/validator.js.map +1 -0
  744. package/dist/preflight/claude-auth.d.ts +14 -12
  745. package/dist/preflight/claude-auth.js +23 -37
  746. package/dist/preflight/claude-auth.js.map +1 -1
  747. package/dist/preflight/claude-required.d.ts +8 -0
  748. package/dist/preflight/claude-required.js +17 -0
  749. package/dist/preflight/claude-required.js.map +1 -0
  750. package/dist/runner/claude.d.ts +3 -3
  751. package/dist/runner/claude.js +62 -26
  752. package/dist/runner/claude.js.map +1 -1
  753. package/dist/runner/runner.d.ts +29 -2
  754. package/dist/runner/simple.d.ts +2 -2
  755. package/dist/runner/simple.js +2 -2
  756. package/dist/runner/simple.js.map +1 -1
  757. package/dist/scripts/donation-consumption-acceptance.d.ts +71 -0
  758. package/dist/scripts/donation-consumption-acceptance.js +1117 -0
  759. package/dist/scripts/donation-consumption-acceptance.js.map +1 -0
  760. package/dist/scripts/fix-node-pty.mjs +113 -0
  761. package/dist/setup/claude-code-install.d.ts +19 -0
  762. package/dist/setup/claude-code-install.js +51 -0
  763. package/dist/setup/claude-code-install.js.map +1 -0
  764. package/dist/setup-mode.d.ts +34 -0
  765. package/dist/setup-mode.js +49 -0
  766. package/dist/setup-mode.js.map +1 -0
  767. package/dist/solver-nets/contracts.d.ts +2 -0
  768. package/dist/solver-nets/contracts.js +2 -0
  769. package/dist/solver-nets/contracts.js.map +1 -0
  770. package/dist/solver-nets/prediction-operator-ux.d.ts +112 -0
  771. package/dist/solver-nets/prediction-operator-ux.js +463 -0
  772. package/dist/solver-nets/prediction-operator-ux.js.map +1 -0
  773. package/dist/solver-nets/registry.d.ts +64 -0
  774. package/dist/solver-nets/registry.js +218 -0
  775. package/dist/solver-nets/registry.js.map +1 -0
  776. package/dist/solver-types/_session-derived-distill.d.ts +28 -0
  777. package/dist/solver-types/_session-derived-distill.js +52 -0
  778. package/dist/solver-types/_session-derived-distill.js.map +1 -0
  779. package/dist/solver-types/_session-derived-pool.d.ts +10 -0
  780. package/dist/solver-types/_session-derived-pool.js +27 -0
  781. package/dist/solver-types/_session-derived-pool.js.map +1 -0
  782. package/dist/solver-types/_session-derived-state.d.ts +17 -0
  783. package/dist/solver-types/_session-derived-state.js +25 -0
  784. package/dist/solver-types/_session-derived-state.js.map +1 -0
  785. package/dist/solver-types/_swe-rebench-v2-aggregate.d.ts +31 -0
  786. package/dist/solver-types/_swe-rebench-v2-aggregate.js +49 -0
  787. package/dist/solver-types/_swe-rebench-v2-aggregate.js.map +1 -0
  788. package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +27 -0
  789. package/dist/solver-types/_swe-rebench-v2-escrow.js +26 -0
  790. package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -0
  791. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +51 -0
  792. package/dist/solver-types/_swe-rebench-v2-pool.js +72 -0
  793. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -0
  794. package/dist/solver-types/_swe-rebench-v2-state.d.ts +24 -0
  795. package/dist/solver-types/_swe-rebench-v2-state.js +54 -0
  796. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -0
  797. package/dist/solver-types/constants.d.ts +5 -0
  798. package/dist/solver-types/constants.js +6 -0
  799. package/dist/solver-types/constants.js.map +1 -0
  800. package/dist/solver-types/index.d.ts +10 -0
  801. package/dist/solver-types/index.js +32 -0
  802. package/dist/solver-types/index.js.map +1 -0
  803. package/dist/solver-types/learner-loop-test.d.ts +2 -0
  804. package/dist/solver-types/learner-loop-test.js +39 -0
  805. package/dist/solver-types/learner-loop-test.js.map +1 -0
  806. package/dist/solver-types/portfolio-v0.d.ts +2 -0
  807. package/dist/solver-types/portfolio-v0.js +13 -0
  808. package/dist/solver-types/portfolio-v0.js.map +1 -0
  809. package/dist/solver-types/prediction-apy-v0-auto.d.ts +27 -0
  810. package/dist/solver-types/prediction-apy-v0-auto.js +109 -0
  811. package/dist/solver-types/prediction-apy-v0-auto.js.map +1 -0
  812. package/dist/solver-types/prediction-apy-v0-template.d.ts +8 -0
  813. package/dist/solver-types/prediction-apy-v0-template.js +22 -0
  814. package/dist/solver-types/prediction-apy-v0-template.js.map +1 -0
  815. package/dist/solver-types/prediction-apy-v0.d.ts +3 -0
  816. package/dist/solver-types/prediction-apy-v0.js +25 -0
  817. package/dist/solver-types/prediction-apy-v0.js.map +1 -0
  818. package/dist/solver-types/prediction-v0-auto.d.ts +69 -0
  819. package/dist/solver-types/prediction-v0-auto.js +146 -0
  820. package/dist/solver-types/prediction-v0-auto.js.map +1 -0
  821. package/dist/solver-types/prediction-v0-template.d.ts +70 -0
  822. package/dist/solver-types/prediction-v0-template.js +145 -0
  823. package/dist/solver-types/prediction-v0-template.js.map +1 -0
  824. package/dist/solver-types/prediction-v0.d.ts +13 -0
  825. package/dist/solver-types/prediction-v0.js +31 -0
  826. package/dist/solver-types/prediction-v0.js.map +1 -0
  827. package/dist/solver-types/prediction-v1-auto.d.ts +122 -0
  828. package/dist/solver-types/prediction-v1-auto.js +366 -0
  829. package/dist/solver-types/prediction-v1-auto.js.map +1 -0
  830. package/dist/solver-types/prediction-v1.d.ts +11 -0
  831. package/dist/solver-types/prediction-v1.js +27 -0
  832. package/dist/solver-types/prediction-v1.js.map +1 -0
  833. package/dist/solver-types/session-derived.d.ts +2 -0
  834. package/dist/solver-types/session-derived.js +24 -0
  835. package/dist/solver-types/session-derived.js.map +1 -0
  836. package/dist/solver-types/solver-type.d.ts +53 -0
  837. package/dist/solver-types/solver-type.js +6 -0
  838. package/dist/solver-types/solver-type.js.map +1 -0
  839. package/dist/solver-types/swe-rebench-v2-auto.d.ts +38 -0
  840. package/dist/solver-types/swe-rebench-v2-auto.js +56 -0
  841. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -0
  842. package/dist/solver-types/swe-rebench-v2.d.ts +69 -0
  843. package/dist/solver-types/swe-rebench-v2.js +356 -0
  844. package/dist/solver-types/swe-rebench-v2.js.map +1 -0
  845. package/dist/solvernets/daemon-init.d.ts +291 -0
  846. package/dist/solvernets/daemon-init.js +431 -0
  847. package/dist/solvernets/daemon-init.js.map +1 -0
  848. package/dist/solvernets/launch-state-machine.d.ts +165 -0
  849. package/dist/solvernets/launch-state-machine.js +406 -0
  850. package/dist/solvernets/launch-state-machine.js.map +1 -0
  851. package/dist/solvernets/launched-record-dispatcher.d.ts +55 -0
  852. package/dist/solvernets/launched-record-dispatcher.js +169 -0
  853. package/dist/solvernets/launched-record-dispatcher.js.map +1 -0
  854. package/dist/solvernets/lifecycle-transitions.d.ts +183 -0
  855. package/dist/solvernets/lifecycle-transitions.js +386 -0
  856. package/dist/solvernets/lifecycle-transitions.js.map +1 -0
  857. package/dist/solvernets/manifest.d.ts +120 -0
  858. package/dist/solvernets/manifest.js +166 -0
  859. package/dist/solvernets/manifest.js.map +1 -0
  860. package/dist/solvernets/most-recent-wins.d.ts +77 -0
  861. package/dist/solvernets/most-recent-wins.js +82 -0
  862. package/dist/solvernets/most-recent-wins.js.map +1 -0
  863. package/dist/solvernets/registry-client-erc8004.d.ts +239 -0
  864. package/dist/solvernets/registry-client-erc8004.js +382 -0
  865. package/dist/solvernets/registry-client-erc8004.js.map +1 -0
  866. package/dist/solvernets/registry-client.d.ts +121 -0
  867. package/dist/solvernets/registry-client.js +19 -0
  868. package/dist/solvernets/registry-client.js.map +1 -0
  869. package/dist/solvernets/store.d.ts +298 -0
  870. package/dist/solvernets/store.js +271 -0
  871. package/dist/solvernets/store.js.map +1 -0
  872. package/dist/store/captures.d.ts +85 -0
  873. package/dist/store/captures.js +167 -0
  874. package/dist/store/captures.js.map +1 -0
  875. package/dist/store/store.d.ts +235 -21
  876. package/dist/store/store.js +1000 -46
  877. package/dist/store/store.js.map +1 -1
  878. package/dist/tasks/posting-service.d.ts +25 -0
  879. package/dist/tasks/posting-service.js +149 -0
  880. package/dist/tasks/posting-service.js.map +1 -0
  881. package/dist/tasks/signing.d.ts +4 -0
  882. package/dist/tasks/signing.js +18 -0
  883. package/dist/tasks/signing.js.map +1 -0
  884. package/dist/tasks/sources.d.ts +46 -0
  885. package/dist/tasks/sources.js +45 -0
  886. package/dist/tasks/sources.js.map +1 -0
  887. package/dist/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  888. package/dist/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  889. package/dist/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  890. package/dist/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  891. package/dist/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  892. package/dist/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  893. package/dist/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  894. package/dist/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  895. package/dist/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  896. package/dist/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  897. package/dist/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  898. package/dist/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  899. package/dist/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  900. package/dist/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  901. package/dist/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  902. package/dist/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  903. package/dist/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  904. package/dist/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  905. package/dist/templates/harnesses/evaluator/README.md.tmpl +36 -0
  906. package/dist/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  907. package/dist/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  908. package/dist/templates/harnesses/evaluator/package.json.tmpl +26 -0
  909. package/dist/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  910. package/dist/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  911. package/dist/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  912. package/dist/templates/harnesses/forecaster/README.md.tmpl +25 -0
  913. package/dist/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  914. package/dist/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  915. package/dist/templates/harnesses/forecaster/package.json.tmpl +26 -0
  916. package/dist/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  917. package/dist/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  918. package/dist/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  919. package/dist/trajectory/collector.d.ts +59 -0
  920. package/dist/trajectory/collector.js +164 -0
  921. package/dist/trajectory/collector.js.map +1 -0
  922. package/dist/trajectory/emit.d.ts +29 -0
  923. package/dist/trajectory/emit.js +81 -0
  924. package/dist/trajectory/emit.js.map +1 -0
  925. package/dist/trajectory/harness-bundle-rules/aider.d.ts +13 -0
  926. package/dist/trajectory/harness-bundle-rules/aider.js +26 -0
  927. package/dist/trajectory/harness-bundle-rules/aider.js.map +1 -0
  928. package/dist/trajectory/harness-bundle-rules/claude-code.d.ts +16 -0
  929. package/dist/trajectory/harness-bundle-rules/claude-code.js +71 -0
  930. package/dist/trajectory/harness-bundle-rules/claude-code.js.map +1 -0
  931. package/dist/trajectory/harness-bundle-rules/codex.d.ts +13 -0
  932. package/dist/trajectory/harness-bundle-rules/codex.js +96 -0
  933. package/dist/trajectory/harness-bundle-rules/codex.js.map +1 -0
  934. package/dist/trajectory/harness-bundle-rules/continue.d.ts +10 -0
  935. package/dist/trajectory/harness-bundle-rules/continue.js +43 -0
  936. package/dist/trajectory/harness-bundle-rules/continue.js.map +1 -0
  937. package/dist/trajectory/harness-bundle-rules/cursor.d.ts +20 -0
  938. package/dist/trajectory/harness-bundle-rules/cursor.js +55 -0
  939. package/dist/trajectory/harness-bundle-rules/cursor.js.map +1 -0
  940. package/dist/trajectory/harness-bundle-rules/gemini-cli.d.ts +15 -0
  941. package/dist/trajectory/harness-bundle-rules/gemini-cli.js +112 -0
  942. package/dist/trajectory/harness-bundle-rules/gemini-cli.js.map +1 -0
  943. package/dist/trajectory/harness-bundle-rules/types.d.ts +25 -0
  944. package/dist/trajectory/harness-bundle-rules/types.js +15 -0
  945. package/dist/trajectory/harness-bundle-rules/types.js.map +1 -0
  946. package/dist/trajectory/harness-bundle-schema.d.ts +74 -0
  947. package/dist/trajectory/harness-bundle-schema.js +34 -0
  948. package/dist/trajectory/harness-bundle-schema.js.map +1 -0
  949. package/dist/trajectory/harness-bundle.d.ts +73 -0
  950. package/dist/trajectory/harness-bundle.js +128 -0
  951. package/dist/trajectory/harness-bundle.js.map +1 -0
  952. package/dist/trajectory/hash-chain.d.ts +18 -0
  953. package/dist/trajectory/hash-chain.js +23 -0
  954. package/dist/trajectory/hash-chain.js.map +1 -0
  955. package/dist/trajectory/index.d.ts +28 -0
  956. package/dist/trajectory/index.js +28 -0
  957. package/dist/trajectory/index.js.map +1 -0
  958. package/dist/trajectory/llm-proxy-spans.d.ts +14 -0
  959. package/dist/trajectory/llm-proxy-spans.js +51 -0
  960. package/dist/trajectory/llm-proxy-spans.js.map +1 -0
  961. package/dist/trajectory/llm-proxy.d.ts +32 -0
  962. package/dist/trajectory/llm-proxy.js +97 -0
  963. package/dist/trajectory/llm-proxy.js.map +1 -0
  964. package/dist/trajectory/processors/credential-scrub.d.ts +11 -0
  965. package/dist/trajectory/processors/credential-scrub.js +40 -0
  966. package/dist/trajectory/processors/credential-scrub.js.map +1 -0
  967. package/dist/trajectory/processors/identity-scrub.d.ts +18 -0
  968. package/dist/trajectory/processors/identity-scrub.js +43 -0
  969. package/dist/trajectory/processors/identity-scrub.js.map +1 -0
  970. package/dist/trajectory/processors/manifest-builder.d.ts +18 -0
  971. package/dist/trajectory/processors/manifest-builder.js +26 -0
  972. package/dist/trajectory/processors/manifest-builder.js.map +1 -0
  973. package/dist/trajectory/processors/path-scrub.d.ts +15 -0
  974. package/dist/trajectory/processors/path-scrub.js +52 -0
  975. package/dist/trajectory/processors/path-scrub.js.map +1 -0
  976. package/dist/trajectory/processors/sentinel.d.ts +16 -0
  977. package/dist/trajectory/processors/sentinel.js +17 -0
  978. package/dist/trajectory/processors/sentinel.js.map +1 -0
  979. package/dist/trajectory/processors/sqlite-exporter.d.ts +32 -0
  980. package/dist/trajectory/processors/sqlite-exporter.js +48 -0
  981. package/dist/trajectory/processors/sqlite-exporter.js.map +1 -0
  982. package/dist/trajectory/processors/transcript-content-scrub.d.ts +9 -0
  983. package/dist/trajectory/processors/transcript-content-scrub.js +58 -0
  984. package/dist/trajectory/processors/transcript-content-scrub.js.map +1 -0
  985. package/dist/trajectory/receiver.d.ts +37 -0
  986. package/dist/trajectory/receiver.js +584 -0
  987. package/dist/trajectory/receiver.js.map +1 -0
  988. package/dist/trajectory/schema.d.ts +102 -14
  989. package/dist/trajectory/schema.js +29 -0
  990. package/dist/trajectory/schema.js.map +1 -1
  991. package/dist/trajectory/secret-scrub.d.ts +32 -0
  992. package/dist/trajectory/secret-scrub.js +51 -0
  993. package/dist/trajectory/secret-scrub.js.map +1 -0
  994. package/dist/trajectory/span-profile.d.ts +27 -0
  995. package/dist/trajectory/span-profile.js +51 -0
  996. package/dist/trajectory/span-profile.js.map +1 -0
  997. package/dist/trajectory/synthetic-span-builder.d.ts +50 -0
  998. package/dist/trajectory/synthetic-span-builder.js +115 -0
  999. package/dist/trajectory/synthetic-span-builder.js.map +1 -0
  1000. package/dist/trajectory/transcript-parsers/aider-history.d.ts +42 -0
  1001. package/dist/trajectory/transcript-parsers/aider-history.js +182 -0
  1002. package/dist/trajectory/transcript-parsers/aider-history.js.map +1 -0
  1003. package/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +37 -0
  1004. package/dist/trajectory/transcript-parsers/claude-code-jsonl.js +143 -0
  1005. package/dist/trajectory/transcript-parsers/claude-code-jsonl.js.map +1 -0
  1006. package/dist/trajectory/transcript-parsers/codex-session.d.ts +36 -0
  1007. package/dist/trajectory/transcript-parsers/codex-session.js +135 -0
  1008. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -0
  1009. package/dist/trajectory/transcript-parsers/continue-devdata.d.ts +41 -0
  1010. package/dist/trajectory/transcript-parsers/continue-devdata.js +191 -0
  1011. package/dist/trajectory/transcript-parsers/continue-devdata.js.map +1 -0
  1012. package/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +38 -0
  1013. package/dist/trajectory/transcript-parsers/cursor-sqlite.js +119 -0
  1014. package/dist/trajectory/transcript-parsers/cursor-sqlite.js.map +1 -0
  1015. package/dist/trajectory/transcript-parsers/gemini-session.d.ts +35 -0
  1016. package/dist/trajectory/transcript-parsers/gemini-session.js +138 -0
  1017. package/dist/trajectory/transcript-parsers/gemini-session.js.map +1 -0
  1018. package/dist/trajectory/transcript-parsers/types.d.ts +101 -0
  1019. package/dist/trajectory/transcript-parsers/types.js +33 -0
  1020. package/dist/trajectory/transcript-parsers/types.js.map +1 -0
  1021. package/dist/trajectory/transcript-watcher.d.ts +62 -0
  1022. package/dist/trajectory/transcript-watcher.js +157 -0
  1023. package/dist/trajectory/transcript-watcher.js.map +1 -0
  1024. package/dist/trajectory/wrappers/http.d.ts +37 -0
  1025. package/dist/trajectory/wrappers/http.js +85 -0
  1026. package/dist/trajectory/wrappers/http.js.map +1 -0
  1027. package/dist/trajectory/wrappers/mcp.d.ts +17 -0
  1028. package/dist/trajectory/wrappers/mcp.js +58 -0
  1029. package/dist/trajectory/wrappers/mcp.js.map +1 -0
  1030. package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
  1031. package/dist/trajectory/wrappers/subprocess.js +70 -0
  1032. package/dist/trajectory/wrappers/subprocess.js.map +1 -0
  1033. package/dist/tx-retry.js +90 -9
  1034. package/dist/tx-retry.js.map +1 -1
  1035. package/dist/types/envelope.d.ts +2742 -0
  1036. package/dist/types/envelope.js +149 -0
  1037. package/dist/types/envelope.js.map +1 -0
  1038. package/dist/types/index.d.ts +4 -4
  1039. package/dist/types/index.js +4 -4
  1040. package/dist/types/index.js.map +1 -1
  1041. package/dist/types/payloads/index.d.ts +12 -0
  1042. package/dist/types/payloads/index.js +62 -0
  1043. package/dist/types/payloads/index.js.map +1 -0
  1044. package/dist/types/payloads/portfolio-v0.d.ts +481 -0
  1045. package/dist/types/payloads/portfolio-v0.js +94 -0
  1046. package/dist/types/payloads/portfolio-v0.js.map +1 -0
  1047. package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
  1048. package/dist/types/payloads/prediction-apy-v0.js +63 -0
  1049. package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
  1050. package/dist/types/payloads/prediction-v0.d.ts +262 -0
  1051. package/dist/types/payloads/prediction-v0.js +73 -0
  1052. package/dist/types/payloads/prediction-v0.js.map +1 -0
  1053. package/dist/types/payloads/prediction-v1.d.ts +2 -0
  1054. package/dist/types/payloads/prediction-v1.js +2 -0
  1055. package/dist/types/payloads/prediction-v1.js.map +1 -0
  1056. package/dist/types/portfolio.d.ts +31 -698
  1057. package/dist/types/portfolio.js +20 -110
  1058. package/dist/types/portfolio.js.map +1 -1
  1059. package/dist/types/prediction-apy.d.ts +26 -366
  1060. package/dist/types/prediction-apy.js +12 -68
  1061. package/dist/types/prediction-apy.js.map +1 -1
  1062. package/dist/types/prediction-v1.d.ts +2 -0
  1063. package/dist/types/prediction-v1.js +2 -0
  1064. package/dist/types/prediction-v1.js.map +1 -0
  1065. package/dist/types/prediction.d.ts +546 -382
  1066. package/dist/types/prediction.js +16 -87
  1067. package/dist/types/prediction.js.map +1 -1
  1068. package/dist/types/session-provenance.d.ts +71 -0
  1069. package/dist/types/session-provenance.js +19 -0
  1070. package/dist/types/session-provenance.js.map +1 -0
  1071. package/dist/types/task-document.d.ts +1121 -0
  1072. package/dist/types/task-document.js +99 -0
  1073. package/dist/types/task-document.js.map +1 -0
  1074. package/dist/types/task.d.ts +805 -0
  1075. package/dist/types/task.js +88 -0
  1076. package/dist/types/task.js.map +1 -0
  1077. package/dist/types/window.d.ts +12 -0
  1078. package/dist/types/window.js +6 -0
  1079. package/dist/types/window.js.map +1 -0
  1080. package/dist/util/path-safety.d.ts +21 -0
  1081. package/dist/util/path-safety.js +28 -0
  1082. package/dist/util/path-safety.js.map +1 -0
  1083. package/dist/util/redact-rpc-urls.d.ts +5 -0
  1084. package/dist/util/redact-rpc-urls.js +9 -0
  1085. package/dist/util/redact-rpc-urls.js.map +1 -0
  1086. package/dist/vendor/@jinn-network/sdk/README.md +89 -0
  1087. package/dist/vendor/@jinn-network/sdk/dist/capabilities.d.ts +52 -0
  1088. package/dist/vendor/@jinn-network/sdk/dist/capabilities.js +1 -0
  1089. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +120 -0
  1090. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +39 -0
  1091. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +145 -0
  1092. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +317 -0
  1093. package/dist/vendor/@jinn-network/sdk/dist/harness.d.ts +120 -0
  1094. package/dist/vendor/@jinn-network/sdk/dist/harness.js +31 -0
  1095. package/dist/vendor/@jinn-network/sdk/dist/index.d.ts +4 -0
  1096. package/dist/vendor/@jinn-network/sdk/dist/index.js +7 -0
  1097. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +32 -0
  1098. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +131 -0
  1099. package/dist/vendor/@jinn-network/sdk/dist/manifest.d.ts +69 -0
  1100. package/dist/vendor/@jinn-network/sdk/dist/manifest.js +3 -0
  1101. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +223 -0
  1102. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +64 -0
  1103. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +359 -0
  1104. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +60 -0
  1105. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +110 -0
  1106. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +58 -0
  1107. package/dist/vendor/@jinn-network/sdk/dist/plugins.d.ts +36 -0
  1108. package/dist/vendor/@jinn-network/sdk/dist/plugins.js +54 -0
  1109. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +870 -0
  1110. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +80 -0
  1111. package/dist/vendor/@jinn-network/sdk/dist/session-derived/distill-prompt-v1.d.ts +2 -0
  1112. package/dist/vendor/@jinn-network/sdk/dist/session-derived/distill-prompt-v1.js +10 -0
  1113. package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.d.ts +6 -0
  1114. package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.js +8 -0
  1115. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +559 -0
  1116. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +126 -0
  1117. package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.d.ts +6 -0
  1118. package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.js +3 -0
  1119. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +4 -0
  1120. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +2 -0
  1121. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +66 -0
  1122. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +44 -0
  1123. package/dist/vendor/@jinn-network/sdk/dist/types.d.ts +116 -0
  1124. package/dist/vendor/@jinn-network/sdk/dist/types.js +21 -0
  1125. package/dist/vendor/@jinn-network/sdk/package.json +43 -0
  1126. package/dist/venues/hyperliquid/account-value.d.ts +1 -1
  1127. package/dist/venues/hyperliquid/account-value.js +1 -1
  1128. package/dist/venues/polymarket/client.d.ts +77 -0
  1129. package/dist/venues/polymarket/client.js +309 -0
  1130. package/dist/venues/polymarket/client.js.map +1 -0
  1131. package/dist/withdraw/run-withdraw-plan.js +0 -2
  1132. package/dist/withdraw/run-withdraw-plan.js.map +1 -1
  1133. package/dist/x402/acquire.d.ts +14 -3
  1134. package/dist/x402/acquire.js +28 -11
  1135. package/dist/x402/acquire.js.map +1 -1
  1136. package/dist/x402/handler.d.ts +15 -3
  1137. package/dist/x402/handler.js +189 -24
  1138. package/dist/x402/handler.js.map +1 -1
  1139. package/package.json +60 -15
  1140. package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
  1141. package/plugins/claude-code-learner/.codex-plugin/plugin.json +39 -0
  1142. package/plugins/claude-code-learner/AGENTS.md +40 -0
  1143. package/plugins/claude-code-learner/CLAUDE.md +33 -0
  1144. package/plugins/claude-code-learner/README.md +59 -0
  1145. package/plugins/claude-code-learner/hooks/hooks.json +16 -0
  1146. package/plugins/claude-code-learner/hooks/session-start +38 -0
  1147. package/plugins/claude-code-learner/skills/learn/SKILL.md +412 -0
  1148. package/plugins/claude-code-learner/skills/learn/analyst-prompt.md +68 -0
  1149. package/plugins/claude-code-learner/skills/learn/consolidator-prompt.md +94 -0
  1150. package/plugins/claude-code-learner/skills/learn/explorer-prompt.md +53 -0
  1151. package/plugins/claude-code-learner/skills/learn/planner-prompt.md +87 -0
  1152. package/plugins/claude-code-learner/skills/learn/promoter-prompt.md +113 -0
  1153. package/plugins/claude-code-learner/skills/learn/step-worker-prompt.md +47 -0
  1154. package/plugins/claude-code-learner/skills/learn/strategist-prompt.md +85 -0
  1155. package/plugins/jinn-prediction-plugin/.claude-plugin/plugin.json +19 -0
  1156. package/plugins/jinn-prediction-plugin/.mcp.json +8 -0
  1157. package/plugins/jinn-prediction-plugin/GEMINI.md +7 -0
  1158. package/plugins/jinn-prediction-plugin/gemini-extension.json +13 -0
  1159. package/plugins/jinn-prediction-plugin/jinn.plugin.json +26 -0
  1160. package/plugins/jinn-prediction-plugin/mcp/polymarket-server.mjs +322 -0
  1161. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-solution.schema.json +12 -0
  1162. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-task.schema.json +25 -0
  1163. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-verdict.schema.json +11 -0
  1164. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-solution.schema.json +34 -0
  1165. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-task.schema.json +118 -0
  1166. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-verdict.schema.json +84 -0
  1167. package/plugins/jinn-prediction-plugin/skills/base-rate-forecasting/SKILL.md +3 -0
  1168. package/plugins/jinn-prediction-plugin/skills/calibration/SKILL.md +3 -0
  1169. package/plugins/jinn-prediction-plugin/skills/common-biases/SKILL.md +3 -0
  1170. package/plugins/jinn-prediction-plugin/skills/polymarket-task-handling/SKILL.md +5 -0
  1171. package/plugins/jinn-prediction-plugin/skills/prediction-corpus-retrieval/SKILL.md +35 -0
  1172. package/plugins/network-tools/.claude-plugin/plugin.json +12 -0
  1173. package/plugins/network-tools/.codex-plugin/plugin.json +39 -0
  1174. package/plugins/network-tools/.mcp.json +11 -0
  1175. package/plugins/network-tools/jinn.plugin.json +29 -0
  1176. package/plugins/network-tools/mcp/jinn-client-server.mjs +110 -0
  1177. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +5 -0
  1178. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +39 -0
  1179. package/plugins/swe-rebench-v2-runtime/README.md +11 -0
  1180. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +12 -0
  1181. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +25 -0
  1182. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +64 -0
  1183. package/skills/jinn-operator/SKILL.md +120 -101
  1184. package/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  1185. package/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  1186. package/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  1187. package/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  1188. package/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  1189. package/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  1190. package/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  1191. package/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  1192. package/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  1193. package/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  1194. package/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  1195. package/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  1196. package/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  1197. package/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  1198. package/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  1199. package/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  1200. package/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  1201. package/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  1202. package/templates/harnesses/evaluator/README.md.tmpl +36 -0
  1203. package/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  1204. package/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  1205. package/templates/harnesses/evaluator/package.json.tmpl +26 -0
  1206. package/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  1207. package/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  1208. package/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  1209. package/templates/harnesses/forecaster/README.md.tmpl +25 -0
  1210. package/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  1211. package/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  1212. package/templates/harnesses/forecaster/package.json.tmpl +26 -0
  1213. package/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  1214. package/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  1215. package/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  1216. package/dist/adapters/claim-registry/abi.d.ts +0 -127
  1217. package/dist/adapters/claim-registry/abi.js +0 -93
  1218. package/dist/adapters/claim-registry/abi.js.map +0 -1
  1219. package/dist/adapters/claim-registry/client.d.ts +0 -89
  1220. package/dist/adapters/claim-registry/client.js +0 -205
  1221. package/dist/adapters/claim-registry/client.js.map +0 -1
  1222. package/dist/adapters/mech/claim-policy.d.ts +0 -40
  1223. package/dist/adapters/mech/claim-policy.js +0 -104
  1224. package/dist/adapters/mech/claim-policy.js.map +0 -1
  1225. package/dist/bin/jinn-mcp.d.ts +0 -2
  1226. package/dist/bin/jinn-mcp.js +0 -10
  1227. package/dist/bin/jinn-mcp.js.map +0 -1
  1228. package/dist/cli/commands/intents.d.ts +0 -17
  1229. package/dist/cli/commands/intents.js +0 -489
  1230. package/dist/cli/commands/intents.js.map +0 -1
  1231. package/dist/cli/commands/plugin-install.js +0 -803
  1232. package/dist/cli/commands/plugin-install.js.map +0 -1
  1233. package/dist/cli/commands/submit-intent.js +0 -245
  1234. package/dist/cli/commands/submit-intent.js.map +0 -1
  1235. package/dist/cli/intent-registry-access.d.ts +0 -62
  1236. package/dist/cli/intent-registry-access.js +0 -165
  1237. package/dist/cli/intent-registry-access.js.map +0 -1
  1238. package/dist/discovery/registry.d.ts +0 -97
  1239. package/dist/discovery/registry.js +0 -177
  1240. package/dist/discovery/registry.js.map +0 -1
  1241. package/dist/discovery/subgraph.d.ts +0 -37
  1242. package/dist/discovery/subgraph.js +0 -87
  1243. package/dist/discovery/subgraph.js.map +0 -1
  1244. package/dist/intents/kinds/constants.d.ts +0 -5
  1245. package/dist/intents/kinds/constants.js +0 -6
  1246. package/dist/intents/kinds/constants.js.map +0 -1
  1247. package/dist/intents/kinds/index.d.ts +0 -28
  1248. package/dist/intents/kinds/index.js +0 -50
  1249. package/dist/intents/kinds/index.js.map +0 -1
  1250. package/dist/intents/kinds/portfolio-v0.d.ts +0 -2
  1251. package/dist/intents/kinds/portfolio-v0.js +0 -13
  1252. package/dist/intents/kinds/portfolio-v0.js.map +0 -1
  1253. package/dist/intents/kinds/prediction-apy-v0.d.ts +0 -3
  1254. package/dist/intents/kinds/prediction-apy-v0.js +0 -21
  1255. package/dist/intents/kinds/prediction-apy-v0.js.map +0 -1
  1256. package/dist/intents/kinds/prediction-v0.d.ts +0 -3
  1257. package/dist/intents/kinds/prediction-v0.js +0 -32
  1258. package/dist/intents/kinds/prediction-v0.js.map +0 -1
  1259. package/dist/intents/kinds/spec-kind.d.ts +0 -38
  1260. package/dist/intents/kinds/spec-kind.js +0 -6
  1261. package/dist/intents/kinds/spec-kind.js.map +0 -1
  1262. package/dist/intents/posting-service.d.ts +0 -26
  1263. package/dist/intents/posting-service.js +0 -218
  1264. package/dist/intents/posting-service.js.map +0 -1
  1265. package/dist/intents/prediction-apy-v0-auto.d.ts +0 -11
  1266. package/dist/intents/prediction-apy-v0-auto.js +0 -46
  1267. package/dist/intents/prediction-apy-v0-auto.js.map +0 -1
  1268. package/dist/intents/prediction-apy-v0-template.d.ts +0 -8
  1269. package/dist/intents/prediction-apy-v0-template.js +0 -22
  1270. package/dist/intents/prediction-apy-v0-template.js.map +0 -1
  1271. package/dist/intents/prediction-v0-auto.d.ts +0 -53
  1272. package/dist/intents/prediction-v0-auto.js +0 -84
  1273. package/dist/intents/prediction-v0-auto.js.map +0 -1
  1274. package/dist/intents/prediction-v0-template.d.ts +0 -70
  1275. package/dist/intents/prediction-v0-template.js +0 -145
  1276. package/dist/intents/prediction-v0-template.js.map +0 -1
  1277. package/dist/intents/sources.d.ts +0 -39
  1278. package/dist/intents/sources.js +0 -42
  1279. package/dist/intents/sources.js.map +0 -1
  1280. package/dist/restorer/engine/canonical-json.d.ts +0 -18
  1281. package/dist/restorer/engine/canonical-json.js +0 -59
  1282. package/dist/restorer/engine/canonical-json.js.map +0 -1
  1283. package/dist/restorer/engine/claim.d.ts +0 -69
  1284. package/dist/restorer/engine/claim.js +0 -104
  1285. package/dist/restorer/engine/claim.js.map +0 -1
  1286. package/dist/restorer/engine/delivery.d.ts +0 -52
  1287. package/dist/restorer/engine/delivery.js +0 -63
  1288. package/dist/restorer/engine/delivery.js.map +0 -1
  1289. package/dist/restorer/engine/engine.d.ts +0 -213
  1290. package/dist/restorer/engine/engine.js +0 -769
  1291. package/dist/restorer/engine/engine.js.map +0 -1
  1292. package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
  1293. package/dist/restorer/engine/manifest-assembly.js +0 -79
  1294. package/dist/restorer/engine/manifest-assembly.js.map +0 -1
  1295. package/dist/restorer/engine/packaging.d.ts +0 -87
  1296. package/dist/restorer/engine/packaging.js +0 -350
  1297. package/dist/restorer/engine/packaging.js.map +0 -1
  1298. package/dist/restorer/engine/persistence.d.ts +0 -170
  1299. package/dist/restorer/engine/persistence.js +0 -381
  1300. package/dist/restorer/engine/persistence.js.map +0 -1
  1301. package/dist/restorer/engine/recovery.d.ts +0 -22
  1302. package/dist/restorer/engine/recovery.js +0 -24
  1303. package/dist/restorer/engine/recovery.js.map +0 -1
  1304. package/dist/restorer/engine/registry.d.ts +0 -62
  1305. package/dist/restorer/engine/registry.js +0 -73
  1306. package/dist/restorer/engine/registry.js.map +0 -1
  1307. package/dist/restorer/engine/signing.d.ts +0 -30
  1308. package/dist/restorer/engine/signing.js +0 -39
  1309. package/dist/restorer/engine/signing.js.map +0 -1
  1310. package/dist/restorer/engine/state.d.ts +0 -42
  1311. package/dist/restorer/engine/state.js +0 -87
  1312. package/dist/restorer/engine/state.js.map +0 -1
  1313. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +0 -64
  1314. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +0 -1
  1315. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +0 -104
  1316. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +0 -721
  1317. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +0 -1
  1318. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +0 -1
  1319. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +0 -1
  1320. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +0 -97
  1321. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +0 -226
  1322. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +0 -1
  1323. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +0 -44
  1324. package/dist/restorer/impls/claude-mcp-prediction/index.js +0 -239
  1325. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +0 -1
  1326. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +0 -135
  1327. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +0 -1
  1328. package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +0 -8
  1329. package/dist/restorer/impls/claude-mcp-prediction/prompt.js +0 -54
  1330. package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +0 -1
  1331. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +0 -36
  1332. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +0 -137
  1333. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +0 -1
  1334. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +0 -84
  1335. package/dist/restorer/impls/claude-mcp-prediction/types.js +0 -6
  1336. package/dist/restorer/impls/claude-mcp-prediction/types.js.map +0 -1
  1337. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +0 -34
  1338. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +0 -233
  1339. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +0 -1
  1340. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +0 -136
  1341. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +0 -1
  1342. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +0 -7
  1343. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +0 -46
  1344. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +0 -1
  1345. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +0 -27
  1346. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +0 -128
  1347. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +0 -1
  1348. package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +0 -64
  1349. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +0 -6
  1350. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +0 -1
  1351. package/dist/restorer/impls/evaluation-context.d.ts +0 -16
  1352. package/dist/restorer/impls/evaluation-context.js +0 -18
  1353. package/dist/restorer/impls/evaluation-context.js.map +0 -1
  1354. package/dist/restorer/impls/index.d.ts +0 -46
  1355. package/dist/restorer/impls/index.js +0 -88
  1356. package/dist/restorer/impls/index.js.map +0 -1
  1357. package/dist/restorer/impls/legacy-claude/index.d.ts +0 -52
  1358. package/dist/restorer/impls/legacy-claude/index.js +0 -140
  1359. package/dist/restorer/impls/legacy-claude/index.js.map +0 -1
  1360. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +0 -68
  1361. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +0 -117
  1362. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +0 -1
  1363. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +0 -1
  1364. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +0 -78
  1365. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +0 -274
  1366. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +0 -1
  1367. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +0 -23
  1368. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +0 -49
  1369. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +0 -1
  1370. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +0 -25
  1371. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +0 -44
  1372. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +0 -1
  1373. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +0 -17
  1374. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +0 -43
  1375. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +0 -1
  1376. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +0 -44
  1377. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +0 -440
  1378. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +0 -1
  1379. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +0 -1
  1380. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +0 -34
  1381. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +0 -1
  1382. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +0 -40
  1383. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +0 -107
  1384. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +0 -1
  1385. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +0 -1
  1386. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +0 -1
  1387. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +0 -6
  1388. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +0 -11
  1389. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +0 -1
  1390. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +0 -42
  1391. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +0 -208
  1392. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +0 -1
  1393. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +0 -7
  1394. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +0 -29
  1395. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +0 -1
  1396. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +0 -1
  1397. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +0 -1
  1398. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +0 -31
  1399. package/dist/restorer/impls/prediction-v0-baseline/index.js +0 -100
  1400. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +0 -1
  1401. package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +0 -8
  1402. package/dist/restorer/impls/prediction-v0-baseline/strategy.js +0 -41
  1403. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +0 -1
  1404. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +0 -7
  1405. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +0 -1
  1406. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +0 -20
  1407. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +0 -1
  1408. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +0 -9
  1409. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +0 -1
  1410. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +0 -3
  1411. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +0 -1
  1412. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +0 -13
  1413. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +0 -111
  1414. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +0 -1
  1415. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +0 -5
  1416. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +0 -1
  1417. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +0 -36
  1418. package/dist/restorer/impls/prediction-v0-evaluator/index.js +0 -234
  1419. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +0 -1
  1420. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +0 -1
  1421. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +0 -1
  1422. package/dist/restorer/types.d.ts +0 -194
  1423. package/dist/restorer/types.js +0 -28
  1424. package/dist/restorer/types.js.map +0 -1
  1425. package/dist/types/desired-state.d.ts +0 -94
  1426. package/dist/types/desired-state.js +0 -36
  1427. package/dist/types/desired-state.js.map +0 -1
  1428. /package/dist/cli/commands/{plugin-install.d.ts → solver-nets.d.ts} +0 -0
  1429. /package/dist/cli/commands/{submit-intent.d.ts → tasks.d.ts} +0 -0
  1430. /package/dist/{restorer/impls/prediction-apy-v0-baseline → harnesses/impls/claude-code-learner}/types.js +0 -0
  1431. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/api-wallet.js +0 -0
  1432. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +0 -0
  1433. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.js +0 -0
  1434. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.d.ts +0 -0
  1435. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.js +0 -0
  1436. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/mcp-tools.d.ts +0 -0
  1437. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +0 -0
  1438. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.d.ts +0 -0
  1439. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.js +0 -0
  1440. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.d.ts +0 -0
  1441. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.js +0 -0
  1442. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/types.js +0 -0
  1443. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.d.ts +0 -0
  1444. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.js +0 -0
  1445. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/types.d.ts +0 -0
  1446. /package/dist/{restorer/impls/prediction-apy-v0-evaluator → harnesses/impls/prediction-apy-v0-baseline}/types.js +0 -0
  1447. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.d.ts +0 -0
  1448. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.js +0 -0
  1449. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/types.d.ts +0 -0
  1450. /package/dist/{restorer/impls/prediction-v0-baseline → harnesses/impls/prediction-apy-v0-evaluator}/types.js +0 -0
  1451. /package/dist/{restorer/impls/prediction-v0-evaluator → harnesses/impls/prediction-v0-baseline}/types.js +0 -0
  1452. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/canonical-metrics.js +0 -0
  1453. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/availability.js +0 -0
  1454. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/eligibility.js +0 -0
  1455. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/spec.js +0 -0
  1456. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.d.ts +0 -0
  1457. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.js +0 -0
  1458. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/types.d.ts +0 -0
@@ -0,0 +1,723 @@
1
+ /**
2
+ * claude-mcp-hyperliquid — Reference Harness for portfolio.v0 — §8.
3
+ *
4
+ * Spawns Claude Code session(s) with HL-specific MCP tools (§8.2).
5
+ * Safety rails enforced at the tool boundary (§8.3).
6
+ * Sequential session cadence per §8.4.
7
+ * API wallet managed in implStateDir (§8.1).
8
+ *
9
+ * OPERATOR PREREQUISITE (v0):
10
+ * Before this impl can place trades, the operator must:
11
+ * 1. Let the daemon boot once (or call canAttempt()) to generate the API wallet.
12
+ * 2. Approve the generated API wallet address on their HL master account
13
+ * (Settings → API Wallets → Add in the HL UI).
14
+ * 3. Set approved:true in <implStateDir>/api-wallet.json
15
+ *
16
+ * The impl will surface the wallet address and instructions in canAttempt()
17
+ * if the wallet is not yet approved.
18
+ *
19
+ * Programmatic approval is a §8.5 future item.
20
+ */
21
+ import { writeFileSync, mkdirSync, chmodSync, existsSync } from 'node:fs';
22
+ import { homedir } from 'node:os';
23
+ import { join } from 'node:path';
24
+ import { REQUIRES_LIVE_DAEMON_READINESS } from '../../types.js';
25
+ import { HyperliquidClient, HL_MAINNET_BASE_URL, HL_TESTNET_BASE_URL } from '../../../venues/hyperliquid/client.js';
26
+ import { getUnifiedAccountValue } from '../../../venues/hyperliquid/account-value.js';
27
+ import { PortfolioV0TaskSchema, PortfolioV0EligibilitySchema, } from '../../../types/portfolio.js';
28
+ import { equityCurve, equityReturnPct, maxDrawdownPct, closedTradesCount, tradedNotionalMultiple, } from '../portfolio-v0-evaluator/canonical-metrics.js';
29
+ import { provisionApiWallet, loadApiWalletState, markApiWalletApproved, saveApiWalletState, walletStatePath, } from './api-wallet.js';
30
+ import { buildHlTools } from './mcp-tools.js';
31
+ import { createRateLimitState, DEFAULT_SAFETY_CONFIG as DEFAULT_SAFETY_CONFIG_IMPORTED } from './safety-rails.js';
32
+ import { runSessionLoop } from './session-orchestrator.js';
33
+ const DEFAULT_IMPL_STATE_DIR = join(homedir(), '.jinn-client', 'engine', 'impl-state', 'claude-mcp-hyperliquid');
34
+ // ── Impl ───────────────────────────────────────────────────────────────────────
35
+ export class ClaudeMcpHyperliquidImpl {
36
+ name = 'claude-mcp-hyperliquid';
37
+ version = '1.0.0';
38
+ config;
39
+ constructor(config = {}) {
40
+ this.config = config;
41
+ }
42
+ supports(ctx) {
43
+ return ctx.solverType === 'portfolio.v0' && ctx.role !== 'evaluation';
44
+ }
45
+ async canAttempt(task) {
46
+ if (task.solverType !== 'portfolio.v0') {
47
+ return { ok: false, reason: 'solverType is not portfolio.v0' };
48
+ }
49
+ // Validate the task shape
50
+ const parseResult = PortfolioV0TaskSchema.safeParse(task);
51
+ if (!parseResult.success) {
52
+ return {
53
+ ok: false,
54
+ reason: `Invalid portfolio.v0 task: ${parseResult.error.message}`,
55
+ };
56
+ }
57
+ // implStateDir is not available in canAttempt — we can only check
58
+ // if the task is structurally valid. API wallet check is done at run() time.
59
+ return { ok: true };
60
+ }
61
+ /** Resolve the impl state directory used by enable / readiness flows. */
62
+ resolveImplStateDir() {
63
+ return this.config.implStateDir ?? DEFAULT_IMPL_STATE_DIR;
64
+ }
65
+ /** Exposed for tests and operator diagnostics; same as internal resolve path. */
66
+ resolvedImplStateDir() {
67
+ return this.resolveImplStateDir();
68
+ }
69
+ async isReady() {
70
+ if (this.config.stub)
71
+ return { ...REQUIRES_LIVE_DAEMON_READINESS };
72
+ const implStateDir = this.resolveImplStateDir();
73
+ const wallet = loadApiWalletState(implStateDir);
74
+ if (!wallet) {
75
+ return {
76
+ ready: false,
77
+ reason: 'HL api-wallet not provisioned',
78
+ nextStep: {
79
+ description: 'Run `jinn solver-nets enable portfolio --hl-master <your-HL-master-address>` to generate the api-wallet and complete HL approval.',
80
+ cli: 'jinn solver-nets enable portfolio --hl-master 0x...',
81
+ },
82
+ };
83
+ }
84
+ if (!wallet.approved) {
85
+ return {
86
+ ready: false,
87
+ reason: 'HL api-wallet generated but not approved on HL',
88
+ nextStep: {
89
+ description: `Approve address ${wallet.address} on Hyperliquid (Settings → API Wallets → Add), then re-run \`jinn solver-nets enable portfolio --confirm-approved\`.`,
90
+ cli: 'jinn solver-nets enable portfolio --confirm-approved',
91
+ url: 'https://app.hyperliquid-testnet.xyz/API',
92
+ },
93
+ };
94
+ }
95
+ if (!wallet.masterAddress) {
96
+ return {
97
+ ready: false,
98
+ reason: 'HL master address not recorded in api-wallet state',
99
+ nextStep: {
100
+ description: 'Re-run enable with the master address to record it: `jinn solver-nets enable portfolio --hl-master 0x...`.',
101
+ cli: 'jinn solver-nets enable portfolio --hl-master 0x...',
102
+ },
103
+ };
104
+ }
105
+ return { ready: true };
106
+ }
107
+ enableMetadata() {
108
+ return {
109
+ description: 'portfolio.v0 — 24h managed-trading task executed against a Hyperliquid master account. Requires you to (1) bring an HL master with USDC, and (2) approve a generated api-wallet as an HL agent.',
110
+ requiredArgs: [
111
+ { name: 'hl-master', description: 'Your Hyperliquid master address (holds USDC; approves the api-wallet).', required: true },
112
+ ],
113
+ externalResources: [
114
+ { name: 'HL Testnet Settings → API Wallets', url: 'https://app.hyperliquid-testnet.xyz/API' },
115
+ { name: 'HL Mainnet Settings → API Wallets', url: 'https://app.hyperliquid.xyz/API' },
116
+ ],
117
+ };
118
+ }
119
+ async onEnable(ctx) {
120
+ const args = ctx.args;
121
+ const implStateDir = this.resolveImplStateDir();
122
+ const hlMaster = args['hl-master'];
123
+ const confirmApproved = args['confirm-approved'] !== undefined;
124
+ // Ensure the impl state directory exists so we can write the wallet file.
125
+ if (!existsSync(implStateDir)) {
126
+ mkdirSync(implStateDir, { recursive: true, mode: 0o700 });
127
+ }
128
+ const existing = loadApiWalletState(implStateDir);
129
+ // Already enabled: idempotent no-op.
130
+ if (existing && existing.approved && existing.masterAddress) {
131
+ return {
132
+ status: 'ready',
133
+ details: {
134
+ apiWalletAddress: existing.address,
135
+ masterAddress: existing.masterAddress,
136
+ },
137
+ };
138
+ }
139
+ // First invocation: need --hl-master to know which account this wallet belongs to.
140
+ if (!existing && !hlMaster) {
141
+ return {
142
+ status: 'missing_args',
143
+ required: [
144
+ { name: 'hl-master', description: 'Your Hyperliquid master address (holds USDC).', required: true },
145
+ ],
146
+ example: { cli: 'jinn solver-nets enable portfolio --hl-master 0x...' },
147
+ };
148
+ }
149
+ // State transition 1: no wallet yet — generate it and tell the agent to have the operator approve on HL.
150
+ if (!existing) {
151
+ const wallet = provisionApiWallet(implStateDir);
152
+ // Record the master so we don't re-ask on the next invocation.
153
+ saveApiWalletState(implStateDir, { ...wallet, masterAddress: hlMaster });
154
+ return {
155
+ status: 'waiting_for_external_action',
156
+ action: {
157
+ description: `API wallet ${wallet.address} generated. Open the Hyperliquid UI, go to Settings → API Wallets → Add, and approve this address under your master ${hlMaster}. Once done, re-run this command with --confirm-approved.`,
158
+ url: 'https://app.hyperliquid-testnet.xyz/API',
159
+ },
160
+ details: {
161
+ apiWalletAddress: wallet.address,
162
+ masterAddress: hlMaster,
163
+ walletStatePath: walletStatePath(implStateDir),
164
+ },
165
+ nextInvocation: {
166
+ cli: 'jinn solver-nets enable portfolio --confirm-approved',
167
+ purpose: 'Record the operator-confirmed HL approval and enable portfolio.v0 claims.',
168
+ },
169
+ };
170
+ }
171
+ // State transition 2: wallet exists, not yet confirmed — if --confirm-approved is passed, flip the flag.
172
+ if (!existing.approved && !confirmApproved) {
173
+ return {
174
+ status: 'waiting_for_external_action',
175
+ action: {
176
+ description: `Approve api-wallet address ${existing.address} on Hyperliquid under master ${existing.masterAddress ?? hlMaster ?? '<set via --hl-master>'}, then re-run with --confirm-approved.`,
177
+ url: 'https://app.hyperliquid-testnet.xyz/API',
178
+ },
179
+ details: {
180
+ apiWalletAddress: existing.address,
181
+ masterAddress: existing.masterAddress ?? hlMaster,
182
+ },
183
+ nextInvocation: {
184
+ cli: 'jinn solver-nets enable portfolio --confirm-approved',
185
+ purpose: 'Record the operator-confirmed HL approval.',
186
+ },
187
+ };
188
+ }
189
+ // State transition 3: --confirm-approved passed — persist approval and optionally update the master.
190
+ const updated = markApiWalletApproved(implStateDir);
191
+ const resolvedMaster = hlMaster ?? updated.masterAddress;
192
+ if (!resolvedMaster) {
193
+ return {
194
+ status: 'missing_args',
195
+ required: [
196
+ { name: 'hl-master', description: 'Master address was never recorded; pass --hl-master now.', required: true },
197
+ ],
198
+ example: { cli: 'jinn solver-nets enable portfolio --hl-master 0x... --confirm-approved' },
199
+ };
200
+ }
201
+ if (updated.masterAddress !== resolvedMaster) {
202
+ saveApiWalletState(implStateDir, { ...updated, masterAddress: resolvedMaster });
203
+ }
204
+ return {
205
+ status: 'ready',
206
+ details: {
207
+ apiWalletAddress: updated.address,
208
+ masterAddress: resolvedMaster,
209
+ },
210
+ };
211
+ }
212
+ async onDisable() {
213
+ // Intentionally no-op on key material: operators may re-enable later
214
+ // and re-generating the wallet would force a fresh HL approval round-trip.
215
+ // The config-level disable (removing the impl from `harnesses.disabled`)
216
+ // is handled by the `jinn solver-nets disable` verb, not the impl itself.
217
+ }
218
+ async run(ctx) {
219
+ if (this.config.stub) {
220
+ throw new Error('claude-mcp-hyperliquid: stub registry cannot run (requires live daemon)');
221
+ }
222
+ const { task: task, implStateDir, workingDir, log, abort, msUntilEndTs } = ctx;
223
+ const testDeps = this.config._testDeps;
224
+ log({ level: 'info', msg: 'claude-mcp-hyperliquid: starting', data: { implStateDir, workingDir } });
225
+ // ── Parse task ──────────────────────────────────────────────────────────
226
+ const portfolioTask = PortfolioV0TaskSchema.parse(task);
227
+ const { masterAddress, venue } = portfolioTask.spec.account;
228
+ const eligibility = PortfolioV0EligibilitySchema.parse(portfolioTask.eligibility ?? {});
229
+ const window = portfolioTask.window;
230
+ // ── Select HL client ──────────────────────────────────────────────────────
231
+ const hlBaseUrl = venue === 'hyperliquid-mainnet' ? HL_MAINNET_BASE_URL : HL_TESTNET_BASE_URL;
232
+ const hlClient = testDeps?.hlClient ?? new HyperliquidClient(hlBaseUrl);
233
+ // ── Provision API wallet ──────────────────────────────────────────────────
234
+ const walletState = provisionApiWallet(implStateDir);
235
+ if (!walletState.approved && !testDeps) {
236
+ log({
237
+ level: 'warn',
238
+ msg: 'claude-mcp-hyperliquid: API wallet not approved — write tools will fail. Operator action required.',
239
+ data: {
240
+ apiWalletAddress: walletState.address,
241
+ instructions: [
242
+ '1. Go to Hyperliquid Settings → API Wallets → Add',
243
+ `2. Approve address: ${walletState.address}`,
244
+ '3. Set approved:true in <implStateDir>/api-wallet.json',
245
+ ],
246
+ },
247
+ });
248
+ // Continue anyway — read-only sessions still work; write tools will fail at the HL exchange layer
249
+ }
250
+ // Sanity check: the agent key stored in api-wallet.json was approved by a
251
+ // specific master. HL routes trades to THAT master, regardless of what the
252
+ // task's spec says. If the operator switched masters (new wallet, new
253
+ // approval) without updating the task, every trade would silently land
254
+ // on the wrong account and pre/post snapshots would read the wrong equity.
255
+ // Fail fast with a clear remedy.
256
+ if (!testDeps
257
+ && walletState.masterAddress !== undefined
258
+ && walletState.masterAddress.toLowerCase() !== masterAddress.toLowerCase()) {
259
+ throw new Error(`E_MASTER_MISMATCH: api-wallet.json says the agent ${walletState.address} is approved by ` +
260
+ `${walletState.masterAddress}, but the task's spec.account.masterAddress is ${masterAddress}. ` +
261
+ `HL would route trades to the agent's approver (${walletState.masterAddress}) while pre/post ` +
262
+ `snapshots would read from the task's master (${masterAddress}) — silent fund-on-the-wrong-account bug. ` +
263
+ `Remedy: either (a) update ~/.jinn-client/portfolio-v0-task.json to use masterAddress=${walletState.masterAddress}, ` +
264
+ `or (b) approve the agent on the task's master (${masterAddress}) via the HL UI and update ${implStateDir}/api-wallet.json.`);
265
+ }
266
+ // ── Take pre-snapshot ─────────────────────────────────────────────────────
267
+ //
268
+ // Pre/post snapshots source equity from HL's unified view: perps
269
+ // `marginSummary.accountValue` + spot USDC balance. This matches the
270
+ // `portfolio` endpoint's `accountValueHistory` (which reports the unified
271
+ // figure too), so harness-claimed equity and evaluator-rederived grid
272
+ // points compare cleanly — and accounts parked on spot are not ignored.
273
+ log({ level: 'info', msg: 'claude-mcp-hyperliquid: taking pre-snapshot' });
274
+ const preUnified = await getUnifiedAccountValue(hlClient, masterAddress);
275
+ const preSnapshot = {
276
+ capturedAt: Date.now(),
277
+ hlTime: preUnified.clearinghouseState.time,
278
+ payload: buildSnapshotPayload(preUnified),
279
+ };
280
+ log({
281
+ level: 'info',
282
+ msg: 'claude-mcp-hyperliquid: pre-snapshot captured',
283
+ data: {
284
+ accountValue: preUnified.accountValue,
285
+ perpsAccountValue: preUnified.perpsAccountValue,
286
+ spotUsdc: preUnified.spotUsdc,
287
+ },
288
+ });
289
+ // ── Set up session infrastructure ─────────────────────────────────────────
290
+ const writeOps = [];
291
+ const rateLimitState = createRateLimitState();
292
+ // Build HL tools (shared across sessions via closure)
293
+ const hlTools = buildHlTools({
294
+ hlClient,
295
+ hlBaseUrl,
296
+ apiWalletPrivateKey: walletState.privateKey,
297
+ apiWalletAddress: walletState.address,
298
+ masterAddress,
299
+ safetyConfig: this.config.safetyConfig
300
+ ? { ...DEFAULT_SAFETY_CONFIG_IMPORTED, ...this.config.safetyConfig }
301
+ : undefined,
302
+ rateLimitState,
303
+ onWriteOp: (op) => writeOps.push(op),
304
+ });
305
+ // ── MCP config for Claude sessions ────────────────────────────────────────
306
+ // The HL tools are served via an in-process MCP server written to a temp script.
307
+ // We create a per-run MCP config that includes both:
308
+ // 1. The existing jinn-client MCP server (tool: submit_restoration_result etc)
309
+ // 2. A new HL-specific MCP server (tool: hl_*)
310
+ //
311
+ // The HL server is an inline node script that creates a McpServer with the tools.
312
+ // We write it to workingDir/mcp/hl-server.ts and reference it in the config.
313
+ const hlMcpServerPath = join(workingDir, 'mcp', 'hl-server.mjs');
314
+ // Config file path — written by _writeHlMcpServerScript alongside the script
315
+ const hlMcpConfigPath = join(workingDir, 'mcp', 'hl-server-config.json');
316
+ mkdirSync(join(workingDir, 'mcp'), { recursive: true });
317
+ _writeHlMcpServerScript(hlMcpServerPath, {
318
+ hlBaseUrl,
319
+ apiWalletPrivateKey: walletState.privateKey,
320
+ apiWalletAddress: walletState.address,
321
+ masterAddress,
322
+ safetyConfig: this.config.safetyConfig,
323
+ });
324
+ const { command: jinnMcpCommand, args: jinnMcpArgs } = _resolveJinnMcpLauncher();
325
+ const mcpConfigPath = join(workingDir, 'mcp', 'mcp-config.json');
326
+ writeFileSync(mcpConfigPath, JSON.stringify({
327
+ mcpServers: {
328
+ 'jinn-client': {
329
+ command: jinnMcpCommand,
330
+ args: jinnMcpArgs,
331
+ env: {
332
+ DESIRED_STATE_ID: task.id,
333
+ DESIRED_STATE_DESCRIPTION: task.description,
334
+ DESIRED_STATE_CONTEXT: task.context ? JSON.stringify(task.context) : '',
335
+ DESIRED_STATE_TYPE: task.role ?? '',
336
+ RESTORATION_REQUEST_ID: task.restorationRequestId ?? '',
337
+ REQUEST_ID: task.restorationRequestId ?? '',
338
+ },
339
+ },
340
+ 'jinn-hl': {
341
+ command: process.execPath,
342
+ // Pass config file path as argv[2] — private key is in config file, not script body
343
+ args: [hlMcpServerPath, hlMcpConfigPath],
344
+ },
345
+ },
346
+ }));
347
+ // ── Session loop ──────────────────────────────────────────────────────────
348
+ const rationale = [];
349
+ let allSessions = [];
350
+ const claudeModel = ctx.solverNet?.model ?? this.config.claudeModel;
351
+ if (testDeps?.runSession) {
352
+ // Test mode: use injected runner instead of spawning Claude
353
+ allSessions = await _runTestSessions(testDeps.runSession, task, portfolioTask, workingDir, abort, msUntilEndTs, log, { ...this.config, claudeModel });
354
+ }
355
+ else {
356
+ // Production mode: spawn Claude with MCP config
357
+ const preAccountValue = parseFloat(preUnified.accountValue);
358
+ const loopResult = await runSessionLoop((sessionNum, sessionId) => buildSessionPrompt({
359
+ sessionNum,
360
+ sessionId,
361
+ task: portfolioTask,
362
+ preAccountValue,
363
+ msUntilEndTs: msUntilEndTs(),
364
+ }), {
365
+ claudePath: this.config.claudePath ?? 'claude',
366
+ claudeModel,
367
+ mcpConfigPath,
368
+ workingDir,
369
+ abort,
370
+ msUntilEndTs,
371
+ log,
372
+ getMids: () => hlClient.allMids(),
373
+ // Write a per-session outcome.json as soon as each Claude subprocess
374
+ // exits. Consumed by gather-status.ts / portfolio-v0-build.ts to
375
+ // surface `recentClaudeOutcomes` in /v1/status — operators can see
376
+ // trading activity before the 24h window closes.
377
+ //
378
+ // NOTE: the daemon-side `writeOps` closure was initially used for
379
+ // tool-call counts, but the actual MCP tool invocations happen in
380
+ // Claude's hl-server.mjs SUBPROCESS — the daemon's callback is never
381
+ // wired to that server. So the authoritative counter for real trading
382
+ // is HL's own userFillsByTime: ask HL what filled between the
383
+ // session's start/end (±5s padding for clock skew) and report that.
384
+ onSessionEnd: async (sr) => {
385
+ try {
386
+ const outcomePath = join(workingDir, 'sessions', sr.sessionId, 'outcome.json');
387
+ let fillsInWindow = [];
388
+ let fillsQueryError = null;
389
+ try {
390
+ // Give HL a moment to propagate fills before we query.
391
+ await new Promise(r => setTimeout(r, 2000));
392
+ const { fills } = await hlClient.userFillsByTime(masterAddress, sr.startedAt - 5_000, sr.endedAt + 5_000);
393
+ fillsInWindow = fills.map(f => ({ coin: f.coin, dir: f.dir, oid: f.oid }));
394
+ }
395
+ catch (err) {
396
+ fillsQueryError = err instanceof Error ? err.message : String(err);
397
+ }
398
+ const coinCounts = {};
399
+ for (const f of fillsInWindow) {
400
+ coinCounts[f.coin] = (coinCounts[f.coin] ?? 0) + 1;
401
+ }
402
+ const outcome = {
403
+ schemaVersion: 2,
404
+ requestId: ctx.task.restorationRequestId ?? ctx.task.id,
405
+ sessionId: sr.sessionId,
406
+ startedAt: sr.startedAt,
407
+ endedAt: sr.endedAt,
408
+ durationMs: sr.endedAt - sr.startedAt,
409
+ aborted: sr.aborted,
410
+ fillsInSessionWindow: fillsInWindow.length,
411
+ coinCounts,
412
+ ...(fillsQueryError !== null ? { fillsQueryError } : {}),
413
+ };
414
+ writeFileSync(outcomePath, JSON.stringify(outcome, null, 2), { encoding: 'utf-8' });
415
+ }
416
+ catch (err) {
417
+ log({
418
+ level: 'warn',
419
+ msg: 'claude-mcp-hyperliquid: failed to write session outcome.json',
420
+ data: { sessionId: sr.sessionId, err: err instanceof Error ? err.message : String(err) },
421
+ });
422
+ }
423
+ },
424
+ config: {
425
+ cadenceMs: this.config.cadenceMs,
426
+ sessionMaxMs: this.config.sessionMaxMs,
427
+ trackedCoins: [], // could be populated from task context
428
+ },
429
+ });
430
+ allSessions = loopResult.sessions;
431
+ }
432
+ // ── Post-session: match fills to sessions ─────────────────────────────────
433
+ log({ level: 'info', msg: 'claude-mcp-hyperliquid: matching fills to sessions' });
434
+ let windowFills = [];
435
+ try {
436
+ const fillsResult = await hlClient.userFillsByTime(masterAddress, window.startTs, window.endTs);
437
+ windowFills = fillsResult.fills;
438
+ }
439
+ catch (e) {
440
+ log({ level: 'warn', msg: 'claude-mcp-hyperliquid: failed to fetch window fills', data: { err: e instanceof Error ? e.message : String(e) } });
441
+ }
442
+ // Match fills to sessions by timestamp
443
+ for (const session of allSessions) {
444
+ const sessionFillTids = windowFills
445
+ .filter((f) => f.time >= session.startedAt - 5000 && f.time <= session.endedAt + 5000)
446
+ .map((f) => f.tid);
447
+ session.initiatedFillTids = sessionFillTids;
448
+ if (sessionFillTids.length > 0) {
449
+ rationale.push({
450
+ ts: session.startedAt,
451
+ sessionId: session.sessionId,
452
+ note: `Session completed with ${sessionFillTids.length} fills`,
453
+ relatedFillTids: sessionFillTids,
454
+ });
455
+ }
456
+ }
457
+ // ── Take post-snapshot ────────────────────────────────────────────────────
458
+ log({ level: 'info', msg: 'claude-mcp-hyperliquid: taking post-snapshot' });
459
+ let postUnified;
460
+ try {
461
+ postUnified = await getUnifiedAccountValue(hlClient, masterAddress);
462
+ }
463
+ catch (e) {
464
+ log({ level: 'error', msg: 'claude-mcp-hyperliquid: failed to take post-snapshot', data: { err: e instanceof Error ? e.message : String(e) } });
465
+ // Use pre-snapshot as fallback
466
+ postUnified = preUnified;
467
+ }
468
+ const postSnapshot = {
469
+ capturedAt: Date.now(),
470
+ hlTime: postUnified.clearinghouseState.time,
471
+ payload: buildSnapshotPayload(postUnified),
472
+ };
473
+ // ── Compute canonical metrics (import from evaluator — §8 task discipline) ─
474
+ const preValue = parseFloat(preUnified.accountValue);
475
+ const postValue = parseFloat(postUnified.accountValue);
476
+ const fillTimes = windowFills.map((f) => f.time);
477
+ const curve = equityCurve(preSnapshot.capturedAt, preValue, postSnapshot.capturedAt, postValue, fillTimes);
478
+ const equityReturn = equityReturnPct(preValue, postValue);
479
+ const drawdown = maxDrawdownPct(curve);
480
+ const closedTrades = closedTradesCount(windowFills);
481
+ const notional = tradedNotionalMultiple(windowFills, preValue);
482
+ log({
483
+ level: 'info',
484
+ msg: 'claude-mcp-hyperliquid: metrics computed',
485
+ data: { equityReturn, drawdown, closedTrades, notional },
486
+ });
487
+ // ── Build artifacts list (transcripts) ────────────────────────────────────
488
+ const artifacts = allSessions.map((session) => ({
489
+ path: `sessions/${session.sessionId}/transcript.txt`,
490
+ artifactType: 'session_transcript',
491
+ metadata: {
492
+ sessionId: session.sessionId,
493
+ startedAt: session.startedAt,
494
+ endedAt: session.endedAt,
495
+ modelId: claudeModel ?? 'unknown',
496
+ initiatedFillTids: session.initiatedFillTids,
497
+ },
498
+ tags: ['transcript', 'session'],
499
+ access: { priceUsdc: '0' },
500
+ }));
501
+ // ── Return Solution ──────────────────────────────────────────────
502
+ return {
503
+ venueRef: { name: venue === 'hyperliquid-mainnet' ? 'hyperliquid-mainnet' : 'hyperliquid-testnet' },
504
+ preSnapshot,
505
+ postSnapshot,
506
+ fills: windowFills,
507
+ gating: {
508
+ equityReturnPct: String(equityReturn),
509
+ maxDrawdownPct: String(drawdown),
510
+ closedTradesCount: closedTrades,
511
+ tradedNotionalMultiple: String(notional),
512
+ },
513
+ informational: {
514
+ sessionCount: allSessions.length,
515
+ totalWriteOps: writeOps.length,
516
+ preAccountValue: String(preValue),
517
+ postAccountValue: String(postValue),
518
+ windowFillCount: windowFills.length,
519
+ minReturnPct: portfolioTask.spec.target.minReturnPct,
520
+ maxDrawdownConstraint: portfolioTask.spec.constraint.maxDrawdownPct,
521
+ minClosedTrades: eligibility.minClosedTrades,
522
+ minTradedNotionalMultiple: eligibility.minTradedNotionalMultiple,
523
+ },
524
+ artifacts,
525
+ rationale,
526
+ };
527
+ }
528
+ }
529
+ // ── Snapshot payload ──────────────────────────────────────────────────────────
530
+ /**
531
+ * Build the on-manifest snapshot payload from a unified account-value result.
532
+ *
533
+ * The top-level `accountValue` is the canonical figure used for metrics and
534
+ * consistency checks (matches HL's `portfolio` endpoint unified equity).
535
+ * The raw perps and spot payloads are included verbatim for auditability.
536
+ */
537
+ function buildSnapshotPayload(unified) {
538
+ return {
539
+ accountValue: unified.accountValue,
540
+ perpsAccountValue: unified.perpsAccountValue,
541
+ spotUsdc: unified.spotUsdc,
542
+ clearinghouseState: unified.clearinghouseState,
543
+ spotClearinghouseState: unified.spotClearinghouseState,
544
+ };
545
+ }
546
+ function buildSessionPrompt(params) {
547
+ const { sessionNum, sessionId, task, preAccountValue, msUntilEndTs } = params;
548
+ const minsRemaining = Math.round(msUntilEndTs / 60_000);
549
+ const { minReturnPct } = task.spec.target;
550
+ const { maxDrawdownPct } = task.spec.constraint;
551
+ const { masterAddress } = task.spec.account;
552
+ return `EXECUTE IMMEDIATELY. DO NOT WRITE TEXT BEFORE YOUR FIRST TOOL CALL. DO NOT ASK QUESTIONS.
553
+
554
+ Your first action this turn MUST be a tool call to \`hl_account_unified\`. Begin now.
555
+
556
+ You are an autonomous trader managing a Hyperliquid perpetuals portfolio. Every turn, you call tools, observe results, and decide the next action. You never defer to a human — there is no human in the loop. The only way to satisfy the task is to open positions, close them, and repeat enough times to hit the targets below.
557
+
558
+ ## Verdict criteria (ALL four must pass for a PASS verdict)
559
+ - Equity return ≥ ${minReturnPct}% over the 24h window
560
+ - Max drawdown ≤ ${maxDrawdownPct}% peak-to-trough
561
+ - At least 20 closed trades
562
+ - Traded notional ≥ 5× starting equity (~$${(preAccountValue * 5).toFixed(2)})
563
+
564
+ Missing any one → REJECTED → zero rewards. Inaction = REJECTED.
565
+
566
+ ## Context
567
+ - Task: ${task.description}
568
+ - Master account: ${masterAddress}
569
+ - Starting equity: $${preAccountValue.toFixed(2)}
570
+ - Session ${sessionNum} (${sessionId})
571
+ - Time remaining in window: ${minsRemaining} min
572
+ - You run again in ~30 minutes, or sooner on ≥2% mid-move. Use this session fully.
573
+
574
+ ## Tools you will call (all are MCP tools — call them by name)
575
+ Read (prefer these):
576
+ - \`hl_account_unified\` — PREFERRED single-call read: unified equity (perps+spot), positions, open orders
577
+ - \`hl_all_mids\` — current mid prices for all assets
578
+ - \`hl_user_fills\` — recent fills (check turnover + trade count)
579
+ - \`hl_meta\` — asset metadata (max leverage, size decimals)
580
+ Read (niche):
581
+ - \`hl_clearinghouse_state\` — perps-only snapshot; DO NOT use for decisions (hides spot USDC)
582
+ - \`hl_portfolio\` — historical equity curve
583
+ Write: \`hl_open_position\`, \`hl_close_position\`, \`hl_modify_position\`, \`hl_cancel_orders\`
584
+
585
+ ## Risk rails (tool-enforced — not suggestions)
586
+ - Max 25% of account value per position
587
+ - Max 10× leverage
588
+ - Max 50 bps slippage
589
+ - **Every \`hl_open_position\` MUST include both \`tp\` (take-profit) and \`sl\` (stop-loss)**. The tool rejects bare opens with \`TPSL_REQUIRED\` unless you pass \`bypassRiskRails=true\`. Only bypass for a scalp you will close THIS turn. Between turns you're unprotected — ~30 min of tail risk is enough to break the ${maxDrawdownPct}% drawdown on a 5–10× move.
590
+ - Sensible starting ranges: sl at 1–2% adverse from mid; tp at 1–3% favorable. Example long at mid $2300: \`sl=2265\` (−1.5%), \`tp=2345\` (+2%).
591
+ - The tool validates tp/sl are on the correct sides of mid. A long with sl≥mid or tp≤mid returns \`SL_INVALID\`/\`TP_INVALID\`.
592
+
593
+ ## Your turn (do this sequence in tool calls, not prose)
594
+ 1. \`hl_account_unified\` — one call, gives you unified equity + positions + open orders
595
+ 2. \`hl_all_mids\` — current prices for majors (BTC, ETH, SOL, at minimum)
596
+ 3. \`hl_user_fills\` — recent fills so you know your turnover + trade count so far
597
+ 4. Based on the read tool outputs, open/adjust/close positions with the write tools. Aim for at least 2–3 position actions in this session. You have 20+ trades to hit across the window — aggressive, disciplined turnover is required, not careful inaction.
598
+ 5. Emit a ONE-PARAGRAPH rationale as your final text message after the tool calls. Not before.
599
+
600
+ Begin with \`hl_account_unified\` now. No preamble.`;
601
+ }
602
+ // ── Test session runner ────────────────────────────────────────────────────────
603
+ async function _runTestSessions(runSession, task, portfolioTask, workingDir, abort, msUntilEndTs, log, config) {
604
+ const sessions = [];
605
+ let sessionNum = 0;
606
+ // Run a single test session (tests don't need full cadence)
607
+ if (!abort.aborted && msUntilEndTs() > 0) {
608
+ sessionNum++;
609
+ const sessionId = `test-session-${sessionNum}`;
610
+ const startedAt = Date.now();
611
+ const sessionDir = join(workingDir, 'sessions', sessionId);
612
+ mkdirSync(sessionDir, { recursive: true });
613
+ const transcriptPath = join(sessionDir, 'transcript.txt');
614
+ let stdout = '';
615
+ try {
616
+ const result = await runSession(sessionId, `Session ${sessionNum} for ${task.id}`);
617
+ stdout = result.stdout;
618
+ }
619
+ catch (e) {
620
+ log({ level: 'warn', msg: 'claude-mcp-hyperliquid: test session threw', data: { err: e instanceof Error ? e.message : String(e) } });
621
+ }
622
+ writeFileSync(transcriptPath, stdout || '(test session — no output)');
623
+ sessions.push({
624
+ sessionId,
625
+ startedAt,
626
+ endedAt: Date.now(),
627
+ transcriptPath,
628
+ aborted: abort.aborted,
629
+ stdout,
630
+ initiatedFillTids: [],
631
+ });
632
+ }
633
+ return sessions;
634
+ }
635
+ /**
636
+ * Write a thin ESM wrapper script to disk that delegates to the compiled
637
+ * startMcpServer() from this package. This is spawned as a subprocess by
638
+ * Claude's --mcp-config.
639
+ *
640
+ * Security: the config (including apiWalletPrivateKey) is written to a
641
+ * SEPARATE file (hl-server-config.json) with mode 0o600. The script body
642
+ * receives only the config file path via process.argv[2] — no private key
643
+ * or secret data appears in the script source.
644
+ *
645
+ * The import path is resolved at write-time from __dirname (this module's
646
+ * location) so it always points to the compiled mcp-tools.js alongside this
647
+ * file. The daemon MUST run from a compiled build (dist/) — `yarn build`
648
+ * produces `dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js`, which
649
+ * this wrapper imports by absolute path from plain Node. Running from tsx
650
+ * against src/ would leave mcp-tools.js non-existent and cause Claude to
651
+ * silently spawn with no HL tools loaded — hence the explicit existence
652
+ * check and `E_DAEMON_MUST_RUN_FROM_DIST` error below.
653
+ */
654
+ export function _writeHlMcpServerScript(outPath, hlConfig) {
655
+ // Absolute path to the compiled mcp-tools module, alongside this file.
656
+ const mcpToolsPath = join(__dirname, 'mcp-tools.js');
657
+ // Production guardrail: the generated wrapper is loaded by plain Node (the
658
+ // Claude subprocess's --mcp-config launches `node hl-server.mjs`), which
659
+ // can only import `.js`. Running the daemon via tsx against src/ leaves
660
+ // mcp-tools.js non-existent and Claude spawns with zero HL tools — a
661
+ // silent failure that looks like "Claude refused to trade." Skipped under
662
+ // NODE_ENV=test so vitest runs don't need a preceding `yarn build`.
663
+ if (process.env['NODE_ENV'] !== 'test' && !existsSync(mcpToolsPath)) {
664
+ throw new Error(`E_DAEMON_MUST_RUN_FROM_DIST: ${mcpToolsPath} does not exist. ` +
665
+ `The Jinn daemon must run from a compiled build (e.g. \`node dist/bin/jinn.js run\`), ` +
666
+ `not directly via tsx/ts-node against src/. ` +
667
+ `If you're developing, run \`yarn dev\` (build + run alias) instead of \`yarn jinn run\`. ` +
668
+ `If you installed via npm, the compiled artifact ships in the package — reinstall with ` +
669
+ `\`npm install -g @jinn-network/client@latest\` and use the \`jinn\` binary directly.`);
670
+ }
671
+ // Write config (including private key) to a separate file alongside the script,
672
+ // with restricted permissions — private key must not be world-readable.
673
+ const scriptDir = join(outPath, '..');
674
+ const configPath = join(scriptDir, 'hl-server-config.json');
675
+ // Write config with restricted permissions — private key must not be world-readable
676
+ writeFileSync(configPath, JSON.stringify(hlConfig), { encoding: 'utf-8', mode: 0o600 });
677
+ // Explicitly chmod in case the umask relaxed the mode
678
+ chmodSync(configPath, 0o600);
679
+ const script = `#!/usr/bin/env node
680
+ // Auto-generated HL MCP server wrapper — do not edit.
681
+ // Delegates to the compiled mcp-tools module so the real EIP-712 signing path
682
+ // is always active. See: ${mcpToolsPath}
683
+ //
684
+ // The private key is NOT embedded here — it is read from the config file
685
+ // passed as process.argv[2]. The config file is created at mode 0o600.
686
+ //
687
+ // We deliberately do NOT unlink the config file on exit. Each Claude session
688
+ // spawns a fresh hl-server.mjs child (via --mcp-config); deleting the config
689
+ // when session N exits means session N+1 starts with no HL tools and hangs
690
+ // until sessionMaxMs. The working directory is ephemeral — it gets cleared
691
+ // on next attempt — so leaving the mode-0o600 config in place is safe.
692
+ import { readFileSync } from 'node:fs';
693
+ import { startMcpServer } from ${JSON.stringify(mcpToolsPath)};
694
+
695
+ const configPath = process.argv[2];
696
+ if (!configPath) {
697
+ process.stderr.write('Usage: hl-server.mjs <config-file-path>\\n');
698
+ process.exit(1);
699
+ }
700
+
701
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
702
+ await startMcpServer(config);
703
+ `.trim();
704
+ writeFileSync(outPath, script, { encoding: 'utf-8', mode: 0o600 });
705
+ }
706
+ // ── Jinn MCP launcher resolution ──────────────────────────────────────────────
707
+ import { dirname } from 'node:path';
708
+ import { fileURLToPath } from 'node:url';
709
+ const __dirname = dirname(fileURLToPath(import.meta.url));
710
+ function _resolveJinnMcpLauncher() {
711
+ const mcpDir = join(__dirname, '..', '..', '..', 'mcp');
712
+ const js = join(mcpDir, 'server.js');
713
+ const ts = join(mcpDir, 'server.ts');
714
+ if (existsSync(js)) {
715
+ return { command: process.execPath, args: [js] };
716
+ }
717
+ if (existsSync(ts)) {
718
+ return { command: process.execPath, args: ['--import', 'tsx', ts] };
719
+ }
720
+ return { command: process.execPath, args: [js] };
721
+ }
722
+ export default ClaudeMcpHyperliquidImpl;
723
+ //# sourceMappingURL=index.js.map