@jinn-network/client 0.1.2 → 0.1.3-canary.12cf8b76

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 (1266) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CONTRIBUTING.md +8 -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 +33 -15
  15. package/dist/adapters/mech/adapter.js +471 -353
  16. package/dist/adapters/mech/adapter.js.map +1 -1
  17. package/dist/adapters/mech/contracts.d.ts +68 -20
  18. package/dist/adapters/mech/contracts.js +338 -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 +39 -0
  24. package/dist/adapters/mech/safe-revert.js +124 -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/types.d.ts +245 -84
  29. package/dist/adapters/mech/types.js +125 -50
  30. package/dist/adapters/mech/types.js.map +1 -1
  31. package/dist/agent/agent-ws.d.ts +57 -0
  32. package/dist/agent/agent-ws.js +301 -0
  33. package/dist/agent/agent-ws.js.map +1 -0
  34. package/dist/agent/auto-mode-detect.d.ts +6 -0
  35. package/dist/agent/auto-mode-detect.js +44 -0
  36. package/dist/agent/auto-mode-detect.js.map +1 -0
  37. package/dist/agent/operator-claude.d.ts +22 -0
  38. package/dist/agent/operator-claude.js +134 -0
  39. package/dist/agent/operator-claude.js.map +1 -0
  40. package/dist/api/admin-endpoint.d.ts +12 -0
  41. package/dist/api/admin-endpoint.js +71 -0
  42. package/dist/api/admin-endpoint.js.map +1 -0
  43. package/dist/api/agent-binding-endpoint.d.ts +26 -0
  44. package/dist/api/agent-binding-endpoint.js +28 -0
  45. package/dist/api/agent-binding-endpoint.js.map +1 -0
  46. package/dist/api/bootstrap-endpoint.d.ts +24 -0
  47. package/dist/api/bootstrap-endpoint.js +103 -0
  48. package/dist/api/bootstrap-endpoint.js.map +1 -0
  49. package/dist/api/events-endpoint.d.ts +9 -0
  50. package/dist/api/events-endpoint.js +46 -0
  51. package/dist/api/events-endpoint.js.map +1 -0
  52. package/dist/api/fleet-build.d.ts +1 -1
  53. package/dist/api/fleet-build.js +17 -8
  54. package/dist/api/fleet-build.js.map +1 -1
  55. package/dist/api/gather-status.d.ts +16 -1
  56. package/dist/api/gather-status.js +163 -3
  57. package/dist/api/gather-status.js.map +1 -1
  58. package/dist/api/handshake.d.ts +17 -0
  59. package/dist/api/handshake.js +28 -0
  60. package/dist/api/handshake.js.map +1 -0
  61. package/dist/api/harness-status-endpoint.d.ts +20 -0
  62. package/dist/api/harness-status-endpoint.js +13 -0
  63. package/dist/api/harness-status-endpoint.js.map +1 -0
  64. package/dist/api/history-build.d.ts +2 -2
  65. package/dist/api/history-build.js +3 -3
  66. package/dist/api/history-build.js.map +1 -1
  67. package/dist/api/launcher-endpoints.d.ts +43 -0
  68. package/dist/api/launcher-endpoints.js +50 -0
  69. package/dist/api/launcher-endpoints.js.map +1 -0
  70. package/dist/api/launcher-status.d.ts +92 -0
  71. package/dist/api/launcher-status.js +82 -0
  72. package/dist/api/launcher-status.js.map +1 -0
  73. package/dist/api/launcher-tasks.d.ts +104 -0
  74. package/dist/api/launcher-tasks.js +83 -0
  75. package/dist/api/launcher-tasks.js.map +1 -0
  76. package/dist/api/leaderboard-api.d.ts +20 -0
  77. package/dist/api/leaderboard-api.js +18 -0
  78. package/dist/api/leaderboard-api.js.map +1 -0
  79. package/dist/api/peers.js +21 -6
  80. package/dist/api/peers.js.map +1 -1
  81. package/dist/api/portfolio-v0-build.d.ts +16 -10
  82. package/dist/api/portfolio-v0-build.js +36 -31
  83. package/dist/api/portfolio-v0-build.js.map +1 -1
  84. package/dist/api/portfolio-v0-doctor.js +1 -1
  85. package/dist/api/portfolio-v0-doctor.js.map +1 -1
  86. package/dist/api/prediction-v1-build.d.ts +65 -0
  87. package/dist/api/prediction-v1-build.js +73 -0
  88. package/dist/api/prediction-v1-build.js.map +1 -0
  89. package/dist/api/rewards-build.js +3 -8
  90. package/dist/api/rewards-build.js.map +1 -1
  91. package/dist/api/server.d.ts +97 -1
  92. package/dist/api/server.js +334 -16
  93. package/dist/api/server.js.map +1 -1
  94. package/dist/api/setup-endpoints.d.ts +62 -0
  95. package/dist/api/setup-endpoints.js +705 -0
  96. package/dist/api/setup-endpoints.js.map +1 -0
  97. package/dist/api/solvernets-catalog-build.d.ts +37 -0
  98. package/dist/api/solvernets-catalog-build.js +19 -0
  99. package/dist/api/solvernets-catalog-build.js.map +1 -0
  100. package/dist/api/solvernets-endpoint.d.ts +15 -0
  101. package/dist/api/solvernets-endpoint.js +5 -0
  102. package/dist/api/solvernets-endpoint.js.map +1 -0
  103. package/dist/api/solvernets-endpoints.d.ts +104 -0
  104. package/dist/api/solvernets-endpoints.js +1023 -0
  105. package/dist/api/solvernets-endpoints.js.map +1 -0
  106. package/dist/api/status-build.d.ts +15 -2
  107. package/dist/api/status-build.js +45 -9
  108. package/dist/api/status-build.js.map +1 -1
  109. package/dist/api/status-rollup-build.d.ts +46 -1
  110. package/dist/api/status-rollup-build.js +168 -5
  111. package/dist/api/status-rollup-build.js.map +1 -1
  112. package/dist/api/ui-token.d.ts +5 -0
  113. package/dist/api/ui-token.js +36 -0
  114. package/dist/api/ui-token.js.map +1 -0
  115. package/dist/build-info.d.ts +32 -0
  116. package/dist/build-info.js +69 -0
  117. package/dist/build-info.js.map +1 -0
  118. package/dist/build-info.json +6 -0
  119. package/dist/build-meta.json +1 -1
  120. package/dist/cli/command.d.ts +9 -0
  121. package/dist/cli/commands/auth.js +6 -3
  122. package/dist/cli/commands/auth.js.map +1 -1
  123. package/dist/cli/commands/balance.d.ts +7 -0
  124. package/dist/cli/commands/balance.js +38 -32
  125. package/dist/cli/commands/balance.js.map +1 -1
  126. package/dist/cli/commands/bootstrap.d.ts +13 -1
  127. package/dist/cli/commands/bootstrap.js +150 -133
  128. package/dist/cli/commands/bootstrap.js.map +1 -1
  129. package/dist/cli/commands/checkpoint.d.ts +85 -0
  130. package/dist/cli/commands/checkpoint.js +75 -0
  131. package/dist/cli/commands/checkpoint.js.map +1 -0
  132. package/dist/cli/commands/claim-rewards.js +14 -2
  133. package/dist/cli/commands/claim-rewards.js.map +1 -1
  134. package/dist/cli/commands/conformance.d.ts +12 -0
  135. package/dist/cli/commands/conformance.js +140 -0
  136. package/dist/cli/commands/conformance.js.map +1 -0
  137. package/dist/cli/commands/create.d.ts +22 -0
  138. package/dist/cli/commands/create.js +226 -0
  139. package/dist/cli/commands/create.js.map +1 -0
  140. package/dist/cli/commands/doctor.d.ts +49 -1
  141. package/dist/cli/commands/doctor.js +162 -134
  142. package/dist/cli/commands/doctor.js.map +1 -1
  143. package/dist/cli/commands/fleet-scale.d.ts +19 -1
  144. package/dist/cli/commands/fleet-scale.js +378 -361
  145. package/dist/cli/commands/fleet-scale.js.map +1 -1
  146. package/dist/cli/commands/fleet.d.ts +7 -0
  147. package/dist/cli/commands/fleet.js +39 -33
  148. package/dist/cli/commands/fleet.js.map +1 -1
  149. package/dist/cli/commands/fund-requirements.d.ts +14 -1
  150. package/dist/cli/commands/fund-requirements.js +182 -174
  151. package/dist/cli/commands/fund-requirements.js.map +1 -1
  152. package/dist/cli/commands/harnesses.d.ts +38 -0
  153. package/dist/cli/commands/harnesses.js +305 -0
  154. package/dist/cli/commands/harnesses.js.map +1 -0
  155. package/dist/cli/commands/history.d.ts +10 -1
  156. package/dist/cli/commands/history.js +68 -59
  157. package/dist/cli/commands/history.js.map +1 -1
  158. package/dist/cli/commands/init.js +4 -1
  159. package/dist/cli/commands/init.js.map +1 -1
  160. package/dist/cli/commands/integrations.d.ts +13 -0
  161. package/dist/cli/commands/integrations.js +1010 -0
  162. package/dist/cli/commands/integrations.js.map +1 -0
  163. package/dist/cli/commands/logs.d.ts +6 -1
  164. package/dist/cli/commands/logs.js +77 -70
  165. package/dist/cli/commands/logs.js.map +1 -1
  166. package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
  167. package/dist/cli/commands/migrate-agent-id.js +164 -0
  168. package/dist/cli/commands/migrate-agent-id.js.map +1 -0
  169. package/dist/cli/commands/prediction-scoreboard.d.ts +10 -0
  170. package/dist/cli/commands/prediction-scoreboard.js +136 -0
  171. package/dist/cli/commands/prediction-scoreboard.js.map +1 -0
  172. package/dist/cli/commands/quickstart.d.ts +51 -1
  173. package/dist/cli/commands/quickstart.js +514 -296
  174. package/dist/cli/commands/quickstart.js.map +1 -1
  175. package/dist/cli/commands/rewards.d.ts +7 -0
  176. package/dist/cli/commands/rewards.js +46 -40
  177. package/dist/cli/commands/rewards.js.map +1 -1
  178. package/dist/cli/commands/run.d.ts +14 -1
  179. package/dist/cli/commands/run.js +243 -91
  180. package/dist/cli/commands/run.js.map +1 -1
  181. package/dist/cli/commands/solver-nets.js +229 -0
  182. package/dist/cli/commands/solver-nets.js.map +1 -0
  183. package/dist/cli/commands/solver-plugins.d.ts +9 -0
  184. package/dist/cli/commands/solver-plugins.js +186 -0
  185. package/dist/cli/commands/solver-plugins.js.map +1 -0
  186. package/dist/cli/commands/status.d.ts +13 -0
  187. package/dist/cli/commands/status.js +105 -34
  188. package/dist/cli/commands/status.js.map +1 -1
  189. package/dist/cli/commands/tasks.js +405 -0
  190. package/dist/cli/commands/tasks.js.map +1 -0
  191. package/dist/cli/commands/ui.d.ts +3 -0
  192. package/dist/cli/commands/ui.js +45 -0
  193. package/dist/cli/commands/ui.js.map +1 -0
  194. package/dist/cli/commands/update.d.ts +12 -0
  195. package/dist/cli/commands/update.js +321 -91
  196. package/dist/cli/commands/update.js.map +1 -1
  197. package/dist/cli/commands/version.js +3 -2
  198. package/dist/cli/commands/version.js.map +1 -1
  199. package/dist/cli/commands/withdraw.d.ts +21 -1
  200. package/dist/cli/commands/withdraw.js +175 -159
  201. package/dist/cli/commands/withdraw.js.map +1 -1
  202. package/dist/cli/deployment-digest.js +0 -5
  203. package/dist/cli/deployment-digest.js.map +1 -1
  204. package/dist/cli/execution-context.d.ts +1 -1
  205. package/dist/cli/execution-context.js +4 -4
  206. package/dist/cli/execution-context.js.map +1 -1
  207. package/dist/cli/help.js +8 -1
  208. package/dist/cli/help.js.map +1 -1
  209. package/dist/cli/index.d.ts +7 -0
  210. package/dist/cli/index.js +26 -6
  211. package/dist/cli/index.js.map +1 -1
  212. package/dist/cli/introspection-context.js +0 -1
  213. package/dist/cli/introspection-context.js.map +1 -1
  214. package/dist/cli/open-browser.d.ts +1 -0
  215. package/dist/cli/open-browser.js +18 -0
  216. package/dist/cli/open-browser.js.map +1 -0
  217. package/dist/cli/password.d.ts +3 -3
  218. package/dist/cli/password.js +6 -6
  219. package/dist/cli/password.js.map +1 -1
  220. package/dist/cli/task-native-readiness.d.ts +27 -0
  221. package/dist/cli/task-native-readiness.js +170 -0
  222. package/dist/cli/task-native-readiness.js.map +1 -0
  223. package/dist/config.d.ts +1771 -57
  224. package/dist/config.js +527 -31
  225. package/dist/config.js.map +1 -1
  226. package/dist/conformance/checks/artifacts.d.ts +37 -0
  227. package/dist/conformance/checks/artifacts.js +110 -0
  228. package/dist/conformance/checks/artifacts.js.map +1 -0
  229. package/dist/conformance/checks/envelope-schema.d.ts +17 -0
  230. package/dist/conformance/checks/envelope-schema.js +36 -0
  231. package/dist/conformance/checks/envelope-schema.js.map +1 -0
  232. package/dist/conformance/checks/hash-signature.d.ts +26 -0
  233. package/dist/conformance/checks/hash-signature.js +70 -0
  234. package/dist/conformance/checks/hash-signature.js.map +1 -0
  235. package/dist/conformance/checks/payload.d.ts +19 -0
  236. package/dist/conformance/checks/payload.js +52 -0
  237. package/dist/conformance/checks/payload.js.map +1 -0
  238. package/dist/conformance/checks/secret-scrub.d.ts +33 -0
  239. package/dist/conformance/checks/secret-scrub.js +118 -0
  240. package/dist/conformance/checks/secret-scrub.js.map +1 -0
  241. package/dist/conformance/checks/source-runtime.d.ts +43 -0
  242. package/dist/conformance/checks/source-runtime.js +68 -0
  243. package/dist/conformance/checks/source-runtime.js.map +1 -0
  244. package/dist/conformance/checks/source-static.d.ts +61 -0
  245. package/dist/conformance/checks/source-static.js +311 -0
  246. package/dist/conformance/checks/source-static.js.map +1 -0
  247. package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
  248. package/dist/conformance/checks/trajectory-chain.js +51 -0
  249. package/dist/conformance/checks/trajectory-chain.js.map +1 -0
  250. package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
  251. package/dist/conformance/checks/trajectory-profile.js +51 -0
  252. package/dist/conformance/checks/trajectory-profile.js.map +1 -0
  253. package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
  254. package/dist/conformance/checks/trajectory-schema.js +40 -0
  255. package/dist/conformance/checks/trajectory-schema.js.map +1 -0
  256. package/dist/conformance/checks/verdict.d.ts +44 -0
  257. package/dist/conformance/checks/verdict.js +122 -0
  258. package/dist/conformance/checks/verdict.js.map +1 -0
  259. package/dist/conformance/harness.d.ts +32 -0
  260. package/dist/conformance/harness.js +227 -0
  261. package/dist/conformance/harness.js.map +1 -0
  262. package/dist/conformance/types.d.ts +88 -0
  263. package/dist/conformance/types.js +31 -0
  264. package/dist/conformance/types.js.map +1 -0
  265. package/dist/corpus/acquire.d.ts +37 -0
  266. package/dist/corpus/acquire.js +155 -0
  267. package/dist/corpus/acquire.js.map +1 -0
  268. package/dist/corpus/cache.d.ts +14 -0
  269. package/dist/corpus/cache.js +18 -0
  270. package/dist/corpus/cache.js.map +1 -0
  271. package/dist/corpus/envelope-projection.d.ts +12 -0
  272. package/dist/corpus/envelope-projection.js +110 -0
  273. package/dist/corpus/envelope-projection.js.map +1 -0
  274. package/dist/corpus/fetch.d.ts +9 -0
  275. package/dist/corpus/fetch.js +24 -0
  276. package/dist/corpus/fetch.js.map +1 -0
  277. package/dist/corpus/index.d.ts +19 -0
  278. package/dist/corpus/index.js +81 -0
  279. package/dist/corpus/index.js.map +1 -0
  280. package/dist/corpus/prediction-brier-scoreboard-report.d.ts +17 -0
  281. package/dist/corpus/prediction-brier-scoreboard-report.js +148 -0
  282. package/dist/corpus/prediction-brier-scoreboard-report.js.map +1 -0
  283. package/dist/corpus/prediction-brier-scoreboard.d.ts +56 -0
  284. package/dist/corpus/prediction-brier-scoreboard.js +269 -0
  285. package/dist/corpus/prediction-brier-scoreboard.js.map +1 -0
  286. package/dist/corpus/prediction-scoreable-verdicts.d.ts +4 -0
  287. package/dist/corpus/prediction-scoreable-verdicts.js +23 -0
  288. package/dist/corpus/prediction-scoreable-verdicts.js.map +1 -0
  289. package/dist/corpus/query.d.ts +17 -0
  290. package/dist/corpus/query.js +108 -0
  291. package/dist/corpus/query.js.map +1 -0
  292. package/dist/corpus/route-resolver.d.ts +16 -0
  293. package/dist/corpus/route-resolver.js +20 -0
  294. package/dist/corpus/route-resolver.js.map +1 -0
  295. package/dist/corpus/types.d.ts +150 -0
  296. package/dist/corpus/types.js +50 -0
  297. package/dist/corpus/types.js.map +1 -0
  298. package/dist/daemon/balance-topup-loop.js +2 -1
  299. package/dist/daemon/balance-topup-loop.js.map +1 -1
  300. package/dist/daemon/creator.d.ts +7 -7
  301. package/dist/daemon/creator.js +11 -14
  302. package/dist/daemon/creator.js.map +1 -1
  303. package/dist/daemon/daemon.d.ts +83 -31
  304. package/dist/daemon/daemon.js +206 -67
  305. package/dist/daemon/daemon.js.map +1 -1
  306. package/dist/daemon/delivery-watcher.js +50 -4
  307. package/dist/daemon/delivery-watcher.js.map +1 -1
  308. package/dist/daemon/freeze-fence.d.ts +42 -0
  309. package/dist/daemon/freeze-fence.js +71 -0
  310. package/dist/daemon/freeze-fence.js.map +1 -0
  311. package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
  312. package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
  313. package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
  314. package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
  315. package/dist/daemon/jinn-claim-loop-mock.js +122 -0
  316. package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
  317. package/dist/daemon/jinn-claim-loop.d.ts +123 -0
  318. package/dist/daemon/jinn-claim-loop.js +256 -0
  319. package/dist/daemon/jinn-claim-loop.js.map +1 -0
  320. package/dist/daemon/reward-claim-loop.d.ts +2 -0
  321. package/dist/daemon/reward-claim-loop.js +32 -27
  322. package/dist/daemon/reward-claim-loop.js.map +1 -1
  323. package/dist/dashboard/assets/index-C4Vp0vkW.js +76 -0
  324. package/dist/dashboard/assets/index-a0yafmyT.css +32 -0
  325. package/dist/dashboard/index.html +18 -74
  326. package/dist/earning/agent-wallet-binding.d.ts +133 -0
  327. package/dist/earning/agent-wallet-binding.js +202 -0
  328. package/dist/earning/agent-wallet-binding.js.map +1 -0
  329. package/dist/earning/bootstrap.d.ts +88 -1
  330. package/dist/earning/bootstrap.js +409 -56
  331. package/dist/earning/bootstrap.js.map +1 -1
  332. package/dist/earning/contracts.d.ts +328 -6
  333. package/dist/earning/contracts.js +295 -14
  334. package/dist/earning/contracts.js.map +1 -1
  335. package/dist/earning/evidence-simhash.d.ts +1 -1
  336. package/dist/earning/faucet.d.ts +31 -0
  337. package/dist/earning/faucet.js +37 -0
  338. package/dist/earning/faucet.js.map +1 -1
  339. package/dist/earning/funding-plan.d.ts +89 -0
  340. package/dist/earning/funding-plan.js +202 -0
  341. package/dist/earning/funding-plan.js.map +1 -0
  342. package/dist/earning/migrate-agent-id.d.ts +129 -0
  343. package/dist/earning/migrate-agent-id.js +256 -0
  344. package/dist/earning/migrate-agent-id.js.map +1 -0
  345. package/dist/earning/orphan-sweep.d.ts +14 -0
  346. package/dist/earning/orphan-sweep.js +63 -2
  347. package/dist/earning/orphan-sweep.js.map +1 -1
  348. package/dist/earning/reconcile.d.ts +2 -0
  349. package/dist/earning/reconcile.js +30 -0
  350. package/dist/earning/reconcile.js.map +1 -1
  351. package/dist/earning/safe-adapter.js +45 -3
  352. package/dist/earning/safe-adapter.js.map +1 -1
  353. package/dist/earning/stolas-claim.d.ts +86 -6
  354. package/dist/earning/stolas-claim.js +123 -9
  355. package/dist/earning/stolas-claim.js.map +1 -1
  356. package/dist/earning/store.d.ts +47 -0
  357. package/dist/earning/store.js +113 -1
  358. package/dist/earning/store.js.map +1 -1
  359. package/dist/earning/testnet-setup-migration.d.ts +32 -0
  360. package/dist/earning/testnet-setup-migration.js +214 -0
  361. package/dist/earning/testnet-setup-migration.js.map +1 -0
  362. package/dist/earning/types.d.ts +57 -9
  363. package/dist/earning/types.js +51 -2
  364. package/dist/earning/types.js.map +1 -1
  365. package/dist/earning/viem-clients.d.ts +20 -0
  366. package/dist/earning/viem-clients.js +32 -1
  367. package/dist/earning/viem-clients.js.map +1 -1
  368. package/dist/erc8004/abis.d.ts +423 -0
  369. package/dist/erc8004/abis.js +265 -0
  370. package/dist/erc8004/abis.js.map +1 -0
  371. package/dist/erc8004/addresses.d.ts +40 -0
  372. package/dist/erc8004/addresses.js +64 -0
  373. package/dist/erc8004/addresses.js.map +1 -0
  374. package/dist/erc8004/identity.d.ts +273 -0
  375. package/dist/erc8004/identity.js +405 -0
  376. package/dist/erc8004/identity.js.map +1 -0
  377. package/dist/erc8004/index.d.ts +13 -0
  378. package/dist/erc8004/index.js +20 -0
  379. package/dist/erc8004/index.js.map +1 -0
  380. package/dist/erc8004/reputation.d.ts +349 -0
  381. package/dist/erc8004/reputation.js +464 -0
  382. package/dist/erc8004/reputation.js.map +1 -0
  383. package/dist/erc8004/subgraph.d.ts +46 -0
  384. package/dist/erc8004/subgraph.js +37 -0
  385. package/dist/erc8004/subgraph.js.map +1 -0
  386. package/dist/erc8004/validation.d.ts +145 -0
  387. package/dist/erc8004/validation.js +219 -0
  388. package/dist/erc8004/validation.js.map +1 -0
  389. package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
  390. package/dist/errors/persisted-bootstrap-error.js +50 -0
  391. package/dist/errors/persisted-bootstrap-error.js.map +1 -0
  392. package/dist/events/emitter.d.ts +12 -0
  393. package/dist/events/emitter.js +23 -0
  394. package/dist/events/emitter.js.map +1 -0
  395. package/dist/events/ring-buffer.d.ts +25 -0
  396. package/dist/events/ring-buffer.js +46 -0
  397. package/dist/events/ring-buffer.js.map +1 -0
  398. package/dist/events/types.d.ts +42 -0
  399. package/dist/events/types.js +28 -0
  400. package/dist/events/types.js.map +1 -0
  401. package/dist/harnesses/capability/index.d.ts +82 -0
  402. package/dist/harnesses/capability/index.js +12 -0
  403. package/dist/harnesses/capability/index.js.map +1 -0
  404. package/dist/harnesses/capability/scoped-rpc.d.ts +12 -0
  405. package/dist/harnesses/capability/scoped-rpc.js +34 -0
  406. package/dist/harnesses/capability/scoped-rpc.js.map +1 -0
  407. package/dist/harnesses/capability/scoped-secrets.d.ts +8 -0
  408. package/dist/harnesses/capability/scoped-secrets.js +10 -0
  409. package/dist/harnesses/capability/scoped-secrets.js.map +1 -0
  410. package/dist/harnesses/capability/scoped-signer.d.ts +46 -0
  411. package/dist/harnesses/capability/scoped-signer.js +73 -0
  412. package/dist/harnesses/capability/scoped-signer.js.map +1 -0
  413. package/dist/harnesses/engine/canonical-json.d.ts +1 -0
  414. package/dist/harnesses/engine/canonical-json.js +66 -0
  415. package/dist/harnesses/engine/canonical-json.js.map +1 -0
  416. package/dist/harnesses/engine/delivery.d.ts +58 -0
  417. package/dist/harnesses/engine/delivery.js +67 -0
  418. package/dist/harnesses/engine/delivery.js.map +1 -0
  419. package/dist/harnesses/engine/engine.d.ts +516 -0
  420. package/dist/harnesses/engine/engine.js +1544 -0
  421. package/dist/harnesses/engine/engine.js.map +1 -0
  422. package/dist/harnesses/engine/envelope-assembly.d.ts +73 -0
  423. package/dist/harnesses/engine/envelope-assembly.js +60 -0
  424. package/dist/harnesses/engine/envelope-assembly.js.map +1 -0
  425. package/dist/harnesses/engine/packaging.d.ts +87 -0
  426. package/dist/harnesses/engine/packaging.js +376 -0
  427. package/dist/harnesses/engine/packaging.js.map +1 -0
  428. package/dist/harnesses/engine/persistence.d.ts +193 -0
  429. package/dist/harnesses/engine/persistence.js +421 -0
  430. package/dist/harnesses/engine/persistence.js.map +1 -0
  431. package/dist/harnesses/engine/recovery.d.ts +22 -0
  432. package/dist/harnesses/engine/recovery.js +24 -0
  433. package/dist/harnesses/engine/recovery.js.map +1 -0
  434. package/dist/harnesses/engine/registry.d.ts +55 -0
  435. package/dist/harnesses/engine/registry.js +65 -0
  436. package/dist/harnesses/engine/registry.js.map +1 -0
  437. package/dist/harnesses/engine/signing.d.ts +30 -0
  438. package/dist/harnesses/engine/signing.js +39 -0
  439. package/dist/harnesses/engine/signing.js.map +1 -0
  440. package/dist/harnesses/engine/state.d.ts +42 -0
  441. package/dist/harnesses/engine/state.js +87 -0
  442. package/dist/harnesses/engine/state.js.map +1 -0
  443. package/dist/harnesses/engine/validate-manifest.d.ts +23 -0
  444. package/dist/harnesses/engine/validate-manifest.js +49 -0
  445. package/dist/harnesses/engine/validate-manifest.js.map +1 -0
  446. package/dist/harnesses/engine/verification-stub.d.ts +18 -0
  447. package/dist/harnesses/engine/verification-stub.js +18 -0
  448. package/dist/harnesses/engine/verification-stub.js.map +1 -0
  449. package/dist/harnesses/external-impls/index.d.ts +3 -0
  450. package/dist/harnesses/external-impls/index.js +2 -0
  451. package/dist/harnesses/external-impls/index.js.map +1 -0
  452. package/dist/harnesses/external-impls/loader.d.ts +50 -0
  453. package/dist/harnesses/external-impls/loader.js +139 -0
  454. package/dist/harnesses/external-impls/loader.js.map +1 -0
  455. package/dist/harnesses/external-impls/package-hash.d.ts +26 -0
  456. package/dist/harnesses/external-impls/package-hash.js +102 -0
  457. package/dist/harnesses/external-impls/package-hash.js.map +1 -0
  458. package/dist/harnesses/external-impls/types.d.ts +42 -0
  459. package/dist/harnesses/external-impls/types.js +10 -0
  460. package/dist/harnesses/external-impls/types.js.map +1 -0
  461. package/dist/harnesses/freeze.d.ts +34 -0
  462. package/dist/harnesses/freeze.js +60 -0
  463. package/dist/harnesses/freeze.js.map +1 -0
  464. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.d.ts +57 -0
  465. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js +235 -0
  466. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
  467. package/dist/harnesses/impls/claude-code-learner/harness.d.ts +22 -0
  468. package/dist/harnesses/impls/claude-code-learner/harness.js +56 -0
  469. package/dist/harnesses/impls/claude-code-learner/harness.js.map +1 -0
  470. package/dist/harnesses/impls/claude-code-learner/harvest.d.ts +20 -0
  471. package/dist/harnesses/impls/claude-code-learner/harvest.js +426 -0
  472. package/dist/harnesses/impls/claude-code-learner/harvest.js.map +1 -0
  473. package/dist/harnesses/impls/claude-code-learner/index.d.ts +14 -0
  474. package/dist/harnesses/impls/claude-code-learner/index.js +13 -0
  475. package/dist/harnesses/impls/claude-code-learner/index.js.map +1 -0
  476. package/dist/harnesses/impls/claude-code-learner/plugin-path.d.ts +14 -0
  477. package/dist/harnesses/impls/claude-code-learner/plugin-path.js +30 -0
  478. package/dist/harnesses/impls/claude-code-learner/plugin-path.js.map +1 -0
  479. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +50 -0
  480. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +192 -0
  481. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
  482. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
  483. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
  484. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
  485. package/dist/harnesses/impls/claude-code-learner/types.d.ts +112 -0
  486. package/dist/harnesses/impls/claude-code-learner/types.js.map +1 -0
  487. package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
  488. package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  489. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.d.ts +106 -0
  490. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js +723 -0
  491. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  492. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  493. package/dist/harnesses/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  494. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +104 -0
  495. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js +264 -0
  496. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  497. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +44 -0
  498. package/dist/harnesses/impls/claude-mcp-prediction/index.js +250 -0
  499. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -0
  500. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +135 -0
  501. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
  502. package/dist/harnesses/impls/claude-mcp-prediction/prompt.d.ts +8 -0
  503. package/dist/harnesses/impls/claude-mcp-prediction/prompt.js +54 -0
  504. package/dist/harnesses/impls/claude-mcp-prediction/prompt.js.map +1 -0
  505. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +43 -0
  506. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +21 -0
  507. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
  508. package/dist/harnesses/impls/claude-mcp-prediction/types.d.ts +84 -0
  509. package/dist/harnesses/impls/claude-mcp-prediction/types.js +6 -0
  510. package/dist/harnesses/impls/claude-mcp-prediction/types.js.map +1 -0
  511. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.d.ts +36 -0
  512. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +241 -0
  513. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  514. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
  515. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  516. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  517. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js +46 -0
  518. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  519. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +37 -0
  520. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +19 -0
  521. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  522. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
  523. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js +6 -0
  524. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  525. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
  526. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js +206 -0
  527. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
  528. package/dist/harnesses/impls/evaluation-context.d.ts +23 -0
  529. package/dist/harnesses/impls/evaluation-context.js +25 -0
  530. package/dist/harnesses/impls/evaluation-context.js.map +1 -0
  531. package/dist/harnesses/impls/index.d.ts +74 -0
  532. package/dist/harnesses/impls/index.js +112 -0
  533. package/dist/harnesses/impls/index.js.map +1 -0
  534. package/dist/harnesses/impls/legacy-claude/index.d.ts +66 -0
  535. package/dist/harnesses/impls/legacy-claude/index.js +168 -0
  536. package/dist/harnesses/impls/legacy-claude/index.js.map +1 -0
  537. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
  538. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
  539. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  540. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  541. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
  542. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
  543. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  544. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
  545. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
  546. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  547. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
  548. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
  549. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  550. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
  551. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
  552. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  553. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +44 -0
  554. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +569 -0
  555. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -0
  556. package/dist/harnesses/impls/portfolio-v0-evaluator/score.js.map +1 -0
  557. package/dist/harnesses/impls/portfolio-v0-evaluator/types.d.ts +34 -0
  558. package/dist/harnesses/impls/portfolio-v0-evaluator/types.js.map +1 -0
  559. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.d.ts +42 -0
  560. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js +114 -0
  561. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js.map +1 -0
  562. package/dist/harnesses/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
  563. package/dist/harnesses/impls/prediction-apy-v0-baseline/types.js.map +1 -0
  564. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
  565. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
  566. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
  567. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +42 -0
  568. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +346 -0
  569. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
  570. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +16 -0
  571. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js +22 -0
  572. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  573. package/dist/harnesses/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
  574. package/dist/harnesses/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
  575. package/dist/harnesses/impls/prediction-v0-baseline/index.d.ts +33 -0
  576. package/dist/harnesses/impls/prediction-v0-baseline/index.js +109 -0
  577. package/dist/harnesses/impls/prediction-v0-baseline/index.js.map +1 -0
  578. package/dist/harnesses/impls/prediction-v0-baseline/strategy.d.ts +8 -0
  579. package/dist/harnesses/impls/prediction-v0-baseline/strategy.js +41 -0
  580. package/dist/harnesses/impls/prediction-v0-baseline/strategy.js.map +1 -0
  581. package/dist/harnesses/impls/prediction-v0-baseline/types.d.ts +7 -0
  582. package/dist/harnesses/impls/prediction-v0-baseline/types.js.map +1 -0
  583. package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
  584. package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  585. package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
  586. package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  587. package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
  588. package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  589. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.d.ts +15 -0
  590. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
  591. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  592. package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
  593. package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  594. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +36 -0
  595. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +342 -0
  596. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -0
  597. package/dist/harnesses/impls/prediction-v0-evaluator/score.js.map +1 -0
  598. package/dist/harnesses/impls/prediction-v0-evaluator/types.js +2 -0
  599. package/dist/harnesses/impls/prediction-v0-evaluator/types.js.map +1 -0
  600. package/dist/harnesses/impls/prediction-v1-baseline/index.d.ts +31 -0
  601. package/dist/harnesses/impls/prediction-v1-baseline/index.js +79 -0
  602. package/dist/harnesses/impls/prediction-v1-baseline/index.js.map +1 -0
  603. package/dist/harnesses/impls/prediction-v1-evaluator/index.d.ts +32 -0
  604. package/dist/harnesses/impls/prediction-v1-evaluator/index.js +219 -0
  605. package/dist/harnesses/impls/prediction-v1-evaluator/index.js.map +1 -0
  606. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +20 -0
  607. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +88 -0
  608. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -0
  609. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +56 -0
  610. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +40 -0
  611. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -0
  612. package/dist/harnesses/manifest/index.d.ts +3 -0
  613. package/dist/harnesses/manifest/index.js +3 -0
  614. package/dist/harnesses/manifest/index.js.map +1 -0
  615. package/dist/harnesses/manifest/load.d.ts +7 -0
  616. package/dist/harnesses/manifest/load.js +49 -0
  617. package/dist/harnesses/manifest/load.js.map +1 -0
  618. package/dist/harnesses/manifest/types.d.ts +75 -0
  619. package/dist/harnesses/manifest/types.js +8 -0
  620. package/dist/harnesses/manifest/types.js.map +1 -0
  621. package/dist/harnesses/manifest/verify.d.ts +15 -0
  622. package/dist/harnesses/manifest/verify.js +53 -0
  623. package/dist/harnesses/manifest/verify.js.map +1 -0
  624. package/dist/harnesses/mode-state.d.ts +7 -0
  625. package/dist/harnesses/mode-state.js +43 -0
  626. package/dist/harnesses/mode-state.js.map +1 -0
  627. package/dist/harnesses/types.d.ts +274 -0
  628. package/dist/harnesses/types.js +28 -0
  629. package/dist/harnesses/types.js.map +1 -0
  630. package/dist/index.d.ts +1 -1
  631. package/dist/main.d.ts +17 -2
  632. package/dist/main.js +1257 -127
  633. package/dist/main.js.map +1 -1
  634. package/dist/mcp/acquire-artifact.d.ts +39 -0
  635. package/dist/mcp/acquire-artifact.js +163 -0
  636. package/dist/mcp/acquire-artifact.js.map +1 -0
  637. package/dist/mcp/operator-server.d.ts +21 -4
  638. package/dist/mcp/operator-server.js +505 -30
  639. package/dist/mcp/operator-server.js.map +1 -1
  640. package/dist/mcp/search-records.d.ts +92 -0
  641. package/dist/mcp/search-records.js +393 -0
  642. package/dist/mcp/search-records.js.map +1 -0
  643. package/dist/mcp/server.d.ts +4 -4
  644. package/dist/mcp/server.js +148 -61
  645. package/dist/mcp/server.js.map +1 -1
  646. package/dist/observability/emit-event.d.ts +2 -2
  647. package/dist/observability/emit-event.js +2 -2
  648. package/dist/observability/emit-event.js.map +1 -1
  649. package/dist/operator-errors.d.ts +14 -0
  650. package/dist/operator-errors.js +39 -10
  651. package/dist/operator-errors.js.map +1 -1
  652. package/dist/plugins/digest.d.ts +1 -0
  653. package/dist/plugins/digest.js +28 -0
  654. package/dist/plugins/digest.js.map +1 -0
  655. package/dist/plugins/index.d.ts +6 -0
  656. package/dist/plugins/index.js +6 -0
  657. package/dist/plugins/index.js.map +1 -0
  658. package/dist/plugins/manifest.d.ts +7 -0
  659. package/dist/plugins/manifest.js +22 -0
  660. package/dist/plugins/manifest.js.map +1 -0
  661. package/dist/plugins/registry.d.ts +9 -0
  662. package/dist/plugins/registry.js +24 -0
  663. package/dist/plugins/registry.js.map +1 -0
  664. package/dist/plugins/resolvers.d.ts +2 -0
  665. package/dist/plugins/resolvers.js +126 -0
  666. package/dist/plugins/resolvers.js.map +1 -0
  667. package/dist/plugins/types.d.ts +35 -0
  668. package/dist/plugins/types.js +2 -0
  669. package/dist/plugins/types.js.map +1 -0
  670. package/dist/plugins/validator.d.ts +3 -0
  671. package/dist/plugins/validator.js +50 -0
  672. package/dist/plugins/validator.js.map +1 -0
  673. package/dist/preflight/claude-auth.d.ts +14 -12
  674. package/dist/preflight/claude-auth.js +23 -37
  675. package/dist/preflight/claude-auth.js.map +1 -1
  676. package/dist/runner/claude.d.ts +3 -3
  677. package/dist/runner/claude.js +62 -26
  678. package/dist/runner/claude.js.map +1 -1
  679. package/dist/runner/runner.d.ts +29 -2
  680. package/dist/runner/simple.d.ts +2 -2
  681. package/dist/runner/simple.js +2 -2
  682. package/dist/runner/simple.js.map +1 -1
  683. package/dist/scripts/fix-node-pty.mjs +62 -0
  684. package/dist/setup/claude-code-install.d.ts +19 -0
  685. package/dist/setup/claude-code-install.js +51 -0
  686. package/dist/setup/claude-code-install.js.map +1 -0
  687. package/dist/setup-mode.d.ts +34 -0
  688. package/dist/setup-mode.js +49 -0
  689. package/dist/setup-mode.js.map +1 -0
  690. package/dist/solver-nets/contracts.d.ts +2 -0
  691. package/dist/solver-nets/contracts.js +2 -0
  692. package/dist/solver-nets/contracts.js.map +1 -0
  693. package/dist/solver-nets/prediction-operator-ux.d.ts +112 -0
  694. package/dist/solver-nets/prediction-operator-ux.js +456 -0
  695. package/dist/solver-nets/prediction-operator-ux.js.map +1 -0
  696. package/dist/solver-nets/registry.d.ts +50 -0
  697. package/dist/solver-nets/registry.js +150 -0
  698. package/dist/solver-nets/registry.js.map +1 -0
  699. package/dist/solver-types/_swe-rebench-v2-aggregate.d.ts +31 -0
  700. package/dist/solver-types/_swe-rebench-v2-aggregate.js +49 -0
  701. package/dist/solver-types/_swe-rebench-v2-aggregate.js.map +1 -0
  702. package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +27 -0
  703. package/dist/solver-types/_swe-rebench-v2-escrow.js +26 -0
  704. package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -0
  705. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +39 -0
  706. package/dist/solver-types/_swe-rebench-v2-pool.js +66 -0
  707. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -0
  708. package/dist/solver-types/_swe-rebench-v2-state.d.ts +24 -0
  709. package/dist/solver-types/_swe-rebench-v2-state.js +54 -0
  710. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -0
  711. package/dist/solver-types/constants.d.ts +5 -0
  712. package/dist/solver-types/constants.js +6 -0
  713. package/dist/solver-types/constants.js.map +1 -0
  714. package/dist/solver-types/index.d.ts +10 -0
  715. package/dist/solver-types/index.js +30 -0
  716. package/dist/solver-types/index.js.map +1 -0
  717. package/dist/solver-types/learner-loop-test.d.ts +2 -0
  718. package/dist/solver-types/learner-loop-test.js +39 -0
  719. package/dist/solver-types/learner-loop-test.js.map +1 -0
  720. package/dist/solver-types/portfolio-v0.d.ts +2 -0
  721. package/dist/solver-types/portfolio-v0.js +13 -0
  722. package/dist/solver-types/portfolio-v0.js.map +1 -0
  723. package/dist/solver-types/prediction-apy-v0-auto.d.ts +27 -0
  724. package/dist/solver-types/prediction-apy-v0-auto.js +109 -0
  725. package/dist/solver-types/prediction-apy-v0-auto.js.map +1 -0
  726. package/dist/solver-types/prediction-apy-v0-template.d.ts +8 -0
  727. package/dist/solver-types/prediction-apy-v0-template.js +22 -0
  728. package/dist/solver-types/prediction-apy-v0-template.js.map +1 -0
  729. package/dist/solver-types/prediction-apy-v0.d.ts +3 -0
  730. package/dist/solver-types/prediction-apy-v0.js +25 -0
  731. package/dist/solver-types/prediction-apy-v0.js.map +1 -0
  732. package/dist/solver-types/prediction-v0-auto.d.ts +69 -0
  733. package/dist/solver-types/prediction-v0-auto.js +146 -0
  734. package/dist/solver-types/prediction-v0-auto.js.map +1 -0
  735. package/dist/solver-types/prediction-v0-template.d.ts +70 -0
  736. package/dist/solver-types/prediction-v0-template.js +145 -0
  737. package/dist/solver-types/prediction-v0-template.js.map +1 -0
  738. package/dist/solver-types/prediction-v0.d.ts +13 -0
  739. package/dist/solver-types/prediction-v0.js +31 -0
  740. package/dist/solver-types/prediction-v0.js.map +1 -0
  741. package/dist/solver-types/prediction-v1-auto.d.ts +122 -0
  742. package/dist/solver-types/prediction-v1-auto.js +366 -0
  743. package/dist/solver-types/prediction-v1-auto.js.map +1 -0
  744. package/dist/solver-types/prediction-v1.d.ts +11 -0
  745. package/dist/solver-types/prediction-v1.js +27 -0
  746. package/dist/solver-types/prediction-v1.js.map +1 -0
  747. package/dist/solver-types/solver-type.d.ts +53 -0
  748. package/dist/solver-types/solver-type.js +6 -0
  749. package/dist/solver-types/solver-type.js.map +1 -0
  750. package/dist/solver-types/swe-rebench-v2-auto.d.ts +38 -0
  751. package/dist/solver-types/swe-rebench-v2-auto.js +56 -0
  752. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -0
  753. package/dist/solver-types/swe-rebench-v2.d.ts +24 -0
  754. package/dist/solver-types/swe-rebench-v2.js +146 -0
  755. package/dist/solver-types/swe-rebench-v2.js.map +1 -0
  756. package/dist/solvernets/daemon-init.d.ts +291 -0
  757. package/dist/solvernets/daemon-init.js +431 -0
  758. package/dist/solvernets/daemon-init.js.map +1 -0
  759. package/dist/solvernets/launch-state-machine.d.ts +165 -0
  760. package/dist/solvernets/launch-state-machine.js +406 -0
  761. package/dist/solvernets/launch-state-machine.js.map +1 -0
  762. package/dist/solvernets/lifecycle-transitions.d.ts +183 -0
  763. package/dist/solvernets/lifecycle-transitions.js +386 -0
  764. package/dist/solvernets/lifecycle-transitions.js.map +1 -0
  765. package/dist/solvernets/manifest.d.ts +120 -0
  766. package/dist/solvernets/manifest.js +166 -0
  767. package/dist/solvernets/manifest.js.map +1 -0
  768. package/dist/solvernets/most-recent-wins.d.ts +77 -0
  769. package/dist/solvernets/most-recent-wins.js +82 -0
  770. package/dist/solvernets/most-recent-wins.js.map +1 -0
  771. package/dist/solvernets/registry-client-erc8004.d.ts +239 -0
  772. package/dist/solvernets/registry-client-erc8004.js +382 -0
  773. package/dist/solvernets/registry-client-erc8004.js.map +1 -0
  774. package/dist/solvernets/registry-client.d.ts +121 -0
  775. package/dist/solvernets/registry-client.js +19 -0
  776. package/dist/solvernets/registry-client.js.map +1 -0
  777. package/dist/solvernets/store.d.ts +298 -0
  778. package/dist/solvernets/store.js +271 -0
  779. package/dist/solvernets/store.js.map +1 -0
  780. package/dist/store/store.d.ts +175 -21
  781. package/dist/store/store.js +711 -46
  782. package/dist/store/store.js.map +1 -1
  783. package/dist/tasks/posting-service.d.ts +25 -0
  784. package/dist/tasks/posting-service.js +149 -0
  785. package/dist/tasks/posting-service.js.map +1 -0
  786. package/dist/tasks/signing.d.ts +4 -0
  787. package/dist/tasks/signing.js +18 -0
  788. package/dist/tasks/signing.js.map +1 -0
  789. package/dist/tasks/sources.d.ts +46 -0
  790. package/dist/tasks/sources.js +45 -0
  791. package/dist/tasks/sources.js.map +1 -0
  792. package/dist/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  793. package/dist/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  794. package/dist/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  795. package/dist/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  796. package/dist/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  797. package/dist/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  798. package/dist/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  799. package/dist/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  800. package/dist/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  801. package/dist/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  802. package/dist/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  803. package/dist/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  804. package/dist/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  805. package/dist/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  806. package/dist/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  807. package/dist/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  808. package/dist/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  809. package/dist/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  810. package/dist/templates/harnesses/evaluator/README.md.tmpl +36 -0
  811. package/dist/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  812. package/dist/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  813. package/dist/templates/harnesses/evaluator/package.json.tmpl +26 -0
  814. package/dist/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  815. package/dist/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  816. package/dist/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  817. package/dist/templates/harnesses/forecaster/README.md.tmpl +25 -0
  818. package/dist/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  819. package/dist/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  820. package/dist/templates/harnesses/forecaster/package.json.tmpl +26 -0
  821. package/dist/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  822. package/dist/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  823. package/dist/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  824. package/dist/trajectory/collector.d.ts +49 -0
  825. package/dist/trajectory/collector.js +86 -0
  826. package/dist/trajectory/collector.js.map +1 -0
  827. package/dist/trajectory/emit.d.ts +27 -0
  828. package/dist/trajectory/emit.js +40 -0
  829. package/dist/trajectory/emit.js.map +1 -0
  830. package/dist/trajectory/hash-chain.d.ts +18 -0
  831. package/dist/trajectory/hash-chain.js +23 -0
  832. package/dist/trajectory/hash-chain.js.map +1 -0
  833. package/dist/trajectory/index.d.ts +22 -0
  834. package/dist/trajectory/index.js +23 -0
  835. package/dist/trajectory/index.js.map +1 -0
  836. package/dist/trajectory/schema.d.ts +14 -14
  837. package/dist/trajectory/secret-scrub.d.ts +32 -0
  838. package/dist/trajectory/secret-scrub.js +51 -0
  839. package/dist/trajectory/secret-scrub.js.map +1 -0
  840. package/dist/trajectory/span-profile.d.ts +27 -0
  841. package/dist/trajectory/span-profile.js +51 -0
  842. package/dist/trajectory/span-profile.js.map +1 -0
  843. package/dist/trajectory/wrappers/http.d.ts +37 -0
  844. package/dist/trajectory/wrappers/http.js +85 -0
  845. package/dist/trajectory/wrappers/http.js.map +1 -0
  846. package/dist/trajectory/wrappers/mcp.d.ts +17 -0
  847. package/dist/trajectory/wrappers/mcp.js +58 -0
  848. package/dist/trajectory/wrappers/mcp.js.map +1 -0
  849. package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
  850. package/dist/trajectory/wrappers/subprocess.js +70 -0
  851. package/dist/trajectory/wrappers/subprocess.js.map +1 -0
  852. package/dist/tx-retry.js +34 -9
  853. package/dist/tx-retry.js.map +1 -1
  854. package/dist/types/envelope.d.ts +1659 -0
  855. package/dist/types/envelope.js +133 -0
  856. package/dist/types/envelope.js.map +1 -0
  857. package/dist/types/index.d.ts +4 -4
  858. package/dist/types/index.js +4 -4
  859. package/dist/types/index.js.map +1 -1
  860. package/dist/types/payloads/index.d.ts +12 -0
  861. package/dist/types/payloads/index.js +60 -0
  862. package/dist/types/payloads/index.js.map +1 -0
  863. package/dist/types/payloads/portfolio-v0.d.ts +481 -0
  864. package/dist/types/payloads/portfolio-v0.js +94 -0
  865. package/dist/types/payloads/portfolio-v0.js.map +1 -0
  866. package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
  867. package/dist/types/payloads/prediction-apy-v0.js +63 -0
  868. package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
  869. package/dist/types/payloads/prediction-v0.d.ts +262 -0
  870. package/dist/types/payloads/prediction-v0.js +73 -0
  871. package/dist/types/payloads/prediction-v0.js.map +1 -0
  872. package/dist/types/payloads/prediction-v1.d.ts +2 -0
  873. package/dist/types/payloads/prediction-v1.js +2 -0
  874. package/dist/types/payloads/prediction-v1.js.map +1 -0
  875. package/dist/types/portfolio.d.ts +31 -698
  876. package/dist/types/portfolio.js +20 -110
  877. package/dist/types/portfolio.js.map +1 -1
  878. package/dist/types/prediction-apy.d.ts +26 -366
  879. package/dist/types/prediction-apy.js +12 -68
  880. package/dist/types/prediction-apy.js.map +1 -1
  881. package/dist/types/prediction-v1.d.ts +2 -0
  882. package/dist/types/prediction-v1.js +2 -0
  883. package/dist/types/prediction-v1.js.map +1 -0
  884. package/dist/types/prediction.d.ts +546 -382
  885. package/dist/types/prediction.js +16 -87
  886. package/dist/types/prediction.js.map +1 -1
  887. package/dist/types/task-document.d.ts +1121 -0
  888. package/dist/types/task-document.js +99 -0
  889. package/dist/types/task-document.js.map +1 -0
  890. package/dist/types/task.d.ts +805 -0
  891. package/dist/types/task.js +88 -0
  892. package/dist/types/task.js.map +1 -0
  893. package/dist/types/window.d.ts +12 -0
  894. package/dist/types/window.js +6 -0
  895. package/dist/types/window.js.map +1 -0
  896. package/dist/util/path-safety.d.ts +21 -0
  897. package/dist/util/path-safety.js +28 -0
  898. package/dist/util/path-safety.js.map +1 -0
  899. package/dist/util/redact-rpc-urls.d.ts +5 -0
  900. package/dist/util/redact-rpc-urls.js +9 -0
  901. package/dist/util/redact-rpc-urls.js.map +1 -0
  902. package/dist/vendor/@jinn-network/sdk/README.md +89 -0
  903. package/dist/vendor/@jinn-network/sdk/dist/capabilities.d.ts +52 -0
  904. package/dist/vendor/@jinn-network/sdk/dist/capabilities.js +1 -0
  905. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +120 -0
  906. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +39 -0
  907. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +144 -0
  908. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +248 -0
  909. package/dist/vendor/@jinn-network/sdk/dist/harness.d.ts +120 -0
  910. package/dist/vendor/@jinn-network/sdk/dist/harness.js +31 -0
  911. package/dist/vendor/@jinn-network/sdk/dist/index.d.ts +2 -0
  912. package/dist/vendor/@jinn-network/sdk/dist/index.js +5 -0
  913. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +32 -0
  914. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +131 -0
  915. package/dist/vendor/@jinn-network/sdk/dist/manifest.d.ts +69 -0
  916. package/dist/vendor/@jinn-network/sdk/dist/manifest.js +3 -0
  917. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +223 -0
  918. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +64 -0
  919. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +107 -0
  920. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +51 -0
  921. package/dist/vendor/@jinn-network/sdk/dist/plugins.d.ts +36 -0
  922. package/dist/vendor/@jinn-network/sdk/dist/plugins.js +54 -0
  923. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +870 -0
  924. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +80 -0
  925. package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.d.ts +6 -0
  926. package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.js +8 -0
  927. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +559 -0
  928. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +126 -0
  929. package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.d.ts +6 -0
  930. package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.js +3 -0
  931. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +4 -0
  932. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +2 -0
  933. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +66 -0
  934. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +44 -0
  935. package/dist/vendor/@jinn-network/sdk/dist/types.d.ts +116 -0
  936. package/dist/vendor/@jinn-network/sdk/dist/types.js +21 -0
  937. package/dist/vendor/@jinn-network/sdk/package.json +43 -0
  938. package/dist/venues/hyperliquid/account-value.d.ts +1 -1
  939. package/dist/venues/hyperliquid/account-value.js +1 -1
  940. package/dist/venues/polymarket/client.d.ts +77 -0
  941. package/dist/venues/polymarket/client.js +309 -0
  942. package/dist/venues/polymarket/client.js.map +1 -0
  943. package/dist/withdraw/run-withdraw-plan.js +0 -2
  944. package/dist/withdraw/run-withdraw-plan.js.map +1 -1
  945. package/dist/x402/acquire.d.ts +14 -3
  946. package/dist/x402/acquire.js +28 -11
  947. package/dist/x402/acquire.js.map +1 -1
  948. package/dist/x402/handler.d.ts +15 -3
  949. package/dist/x402/handler.js +67 -24
  950. package/dist/x402/handler.js.map +1 -1
  951. package/package.json +46 -15
  952. package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
  953. package/plugins/claude-code-learner/AGENTS.md +31 -0
  954. package/plugins/claude-code-learner/CLAUDE.md +33 -0
  955. package/plugins/claude-code-learner/README.md +57 -0
  956. package/plugins/claude-code-learner/hooks/hooks.json +16 -0
  957. package/plugins/claude-code-learner/hooks/session-start +38 -0
  958. package/plugins/claude-code-learner/skills/learn/SKILL.md +405 -0
  959. package/plugins/claude-code-learner/skills/learn/analyst-prompt.md +68 -0
  960. package/plugins/claude-code-learner/skills/learn/consolidator-prompt.md +94 -0
  961. package/plugins/claude-code-learner/skills/learn/explorer-prompt.md +53 -0
  962. package/plugins/claude-code-learner/skills/learn/planner-prompt.md +87 -0
  963. package/plugins/claude-code-learner/skills/learn/promoter-prompt.md +113 -0
  964. package/plugins/claude-code-learner/skills/learn/step-worker-prompt.md +47 -0
  965. package/plugins/claude-code-learner/skills/learn/strategist-prompt.md +85 -0
  966. package/plugins/jinn-prediction-plugin/.claude-plugin/plugin.json +19 -0
  967. package/plugins/jinn-prediction-plugin/.mcp.json +8 -0
  968. package/plugins/jinn-prediction-plugin/GEMINI.md +7 -0
  969. package/plugins/jinn-prediction-plugin/gemini-extension.json +13 -0
  970. package/plugins/jinn-prediction-plugin/jinn.plugin.json +26 -0
  971. package/plugins/jinn-prediction-plugin/mcp/polymarket-server.mjs +322 -0
  972. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-solution.schema.json +12 -0
  973. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-task.schema.json +25 -0
  974. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-verdict.schema.json +11 -0
  975. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-solution.schema.json +34 -0
  976. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-task.schema.json +118 -0
  977. package/plugins/jinn-prediction-plugin/schemas/prediction-v1-verdict.schema.json +84 -0
  978. package/plugins/jinn-prediction-plugin/skills/base-rate-forecasting/SKILL.md +3 -0
  979. package/plugins/jinn-prediction-plugin/skills/calibration/SKILL.md +3 -0
  980. package/plugins/jinn-prediction-plugin/skills/common-biases/SKILL.md +3 -0
  981. package/plugins/jinn-prediction-plugin/skills/polymarket-task-handling/SKILL.md +5 -0
  982. package/plugins/jinn-prediction-plugin/skills/prediction-corpus-retrieval/SKILL.md +35 -0
  983. package/plugins/network-tools/.claude-plugin/plugin.json +12 -0
  984. package/plugins/network-tools/jinn.plugin.json +29 -0
  985. package/plugins/network-tools/mcp/jinn-client-server.mjs +110 -0
  986. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +9 -0
  987. package/plugins/swe-rebench-v2-runtime/README.md +11 -0
  988. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +12 -0
  989. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +25 -0
  990. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +24 -0
  991. package/skills/jinn-operator/SKILL.md +120 -101
  992. package/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  993. package/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  994. package/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  995. package/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  996. package/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  997. package/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  998. package/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  999. package/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  1000. package/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  1001. package/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  1002. package/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  1003. package/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  1004. package/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  1005. package/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  1006. package/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  1007. package/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  1008. package/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  1009. package/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  1010. package/templates/harnesses/evaluator/README.md.tmpl +36 -0
  1011. package/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  1012. package/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  1013. package/templates/harnesses/evaluator/package.json.tmpl +26 -0
  1014. package/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  1015. package/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  1016. package/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  1017. package/templates/harnesses/forecaster/README.md.tmpl +25 -0
  1018. package/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  1019. package/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  1020. package/templates/harnesses/forecaster/package.json.tmpl +26 -0
  1021. package/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  1022. package/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  1023. package/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  1024. package/dist/adapters/claim-registry/abi.d.ts +0 -127
  1025. package/dist/adapters/claim-registry/abi.js +0 -93
  1026. package/dist/adapters/claim-registry/abi.js.map +0 -1
  1027. package/dist/adapters/claim-registry/client.d.ts +0 -89
  1028. package/dist/adapters/claim-registry/client.js +0 -205
  1029. package/dist/adapters/claim-registry/client.js.map +0 -1
  1030. package/dist/adapters/mech/claim-policy.d.ts +0 -40
  1031. package/dist/adapters/mech/claim-policy.js +0 -104
  1032. package/dist/adapters/mech/claim-policy.js.map +0 -1
  1033. package/dist/bin/jinn-mcp.d.ts +0 -2
  1034. package/dist/bin/jinn-mcp.js +0 -10
  1035. package/dist/bin/jinn-mcp.js.map +0 -1
  1036. package/dist/cli/commands/intents.d.ts +0 -17
  1037. package/dist/cli/commands/intents.js +0 -489
  1038. package/dist/cli/commands/intents.js.map +0 -1
  1039. package/dist/cli/commands/plugin-install.js +0 -803
  1040. package/dist/cli/commands/plugin-install.js.map +0 -1
  1041. package/dist/cli/commands/submit-intent.js +0 -245
  1042. package/dist/cli/commands/submit-intent.js.map +0 -1
  1043. package/dist/cli/intent-registry-access.d.ts +0 -62
  1044. package/dist/cli/intent-registry-access.js +0 -165
  1045. package/dist/cli/intent-registry-access.js.map +0 -1
  1046. package/dist/discovery/registry.d.ts +0 -97
  1047. package/dist/discovery/registry.js +0 -177
  1048. package/dist/discovery/registry.js.map +0 -1
  1049. package/dist/discovery/subgraph.d.ts +0 -37
  1050. package/dist/discovery/subgraph.js +0 -87
  1051. package/dist/discovery/subgraph.js.map +0 -1
  1052. package/dist/intents/kinds/constants.d.ts +0 -5
  1053. package/dist/intents/kinds/constants.js +0 -6
  1054. package/dist/intents/kinds/constants.js.map +0 -1
  1055. package/dist/intents/kinds/index.d.ts +0 -28
  1056. package/dist/intents/kinds/index.js +0 -50
  1057. package/dist/intents/kinds/index.js.map +0 -1
  1058. package/dist/intents/kinds/portfolio-v0.d.ts +0 -2
  1059. package/dist/intents/kinds/portfolio-v0.js +0 -13
  1060. package/dist/intents/kinds/portfolio-v0.js.map +0 -1
  1061. package/dist/intents/kinds/prediction-apy-v0.d.ts +0 -3
  1062. package/dist/intents/kinds/prediction-apy-v0.js +0 -21
  1063. package/dist/intents/kinds/prediction-apy-v0.js.map +0 -1
  1064. package/dist/intents/kinds/prediction-v0.d.ts +0 -3
  1065. package/dist/intents/kinds/prediction-v0.js +0 -32
  1066. package/dist/intents/kinds/prediction-v0.js.map +0 -1
  1067. package/dist/intents/kinds/spec-kind.d.ts +0 -38
  1068. package/dist/intents/kinds/spec-kind.js +0 -6
  1069. package/dist/intents/kinds/spec-kind.js.map +0 -1
  1070. package/dist/intents/posting-service.d.ts +0 -26
  1071. package/dist/intents/posting-service.js +0 -218
  1072. package/dist/intents/posting-service.js.map +0 -1
  1073. package/dist/intents/prediction-apy-v0-auto.d.ts +0 -11
  1074. package/dist/intents/prediction-apy-v0-auto.js +0 -46
  1075. package/dist/intents/prediction-apy-v0-auto.js.map +0 -1
  1076. package/dist/intents/prediction-apy-v0-template.d.ts +0 -8
  1077. package/dist/intents/prediction-apy-v0-template.js +0 -22
  1078. package/dist/intents/prediction-apy-v0-template.js.map +0 -1
  1079. package/dist/intents/prediction-v0-auto.d.ts +0 -53
  1080. package/dist/intents/prediction-v0-auto.js +0 -84
  1081. package/dist/intents/prediction-v0-auto.js.map +0 -1
  1082. package/dist/intents/prediction-v0-template.d.ts +0 -70
  1083. package/dist/intents/prediction-v0-template.js +0 -145
  1084. package/dist/intents/prediction-v0-template.js.map +0 -1
  1085. package/dist/intents/sources.d.ts +0 -39
  1086. package/dist/intents/sources.js +0 -42
  1087. package/dist/intents/sources.js.map +0 -1
  1088. package/dist/restorer/engine/canonical-json.d.ts +0 -18
  1089. package/dist/restorer/engine/canonical-json.js +0 -59
  1090. package/dist/restorer/engine/canonical-json.js.map +0 -1
  1091. package/dist/restorer/engine/claim.d.ts +0 -69
  1092. package/dist/restorer/engine/claim.js +0 -104
  1093. package/dist/restorer/engine/claim.js.map +0 -1
  1094. package/dist/restorer/engine/delivery.d.ts +0 -52
  1095. package/dist/restorer/engine/delivery.js +0 -63
  1096. package/dist/restorer/engine/delivery.js.map +0 -1
  1097. package/dist/restorer/engine/engine.d.ts +0 -213
  1098. package/dist/restorer/engine/engine.js +0 -769
  1099. package/dist/restorer/engine/engine.js.map +0 -1
  1100. package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
  1101. package/dist/restorer/engine/manifest-assembly.js +0 -79
  1102. package/dist/restorer/engine/manifest-assembly.js.map +0 -1
  1103. package/dist/restorer/engine/packaging.d.ts +0 -87
  1104. package/dist/restorer/engine/packaging.js +0 -350
  1105. package/dist/restorer/engine/packaging.js.map +0 -1
  1106. package/dist/restorer/engine/persistence.d.ts +0 -170
  1107. package/dist/restorer/engine/persistence.js +0 -381
  1108. package/dist/restorer/engine/persistence.js.map +0 -1
  1109. package/dist/restorer/engine/recovery.d.ts +0 -22
  1110. package/dist/restorer/engine/recovery.js +0 -24
  1111. package/dist/restorer/engine/recovery.js.map +0 -1
  1112. package/dist/restorer/engine/registry.d.ts +0 -62
  1113. package/dist/restorer/engine/registry.js +0 -73
  1114. package/dist/restorer/engine/registry.js.map +0 -1
  1115. package/dist/restorer/engine/signing.d.ts +0 -30
  1116. package/dist/restorer/engine/signing.js +0 -39
  1117. package/dist/restorer/engine/signing.js.map +0 -1
  1118. package/dist/restorer/engine/state.d.ts +0 -42
  1119. package/dist/restorer/engine/state.js +0 -87
  1120. package/dist/restorer/engine/state.js.map +0 -1
  1121. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +0 -64
  1122. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +0 -1
  1123. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +0 -104
  1124. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +0 -721
  1125. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +0 -1
  1126. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +0 -1
  1127. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +0 -1
  1128. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +0 -97
  1129. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +0 -226
  1130. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +0 -1
  1131. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +0 -44
  1132. package/dist/restorer/impls/claude-mcp-prediction/index.js +0 -239
  1133. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +0 -1
  1134. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +0 -135
  1135. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +0 -1
  1136. package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +0 -8
  1137. package/dist/restorer/impls/claude-mcp-prediction/prompt.js +0 -54
  1138. package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +0 -1
  1139. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +0 -36
  1140. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +0 -137
  1141. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +0 -1
  1142. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +0 -84
  1143. package/dist/restorer/impls/claude-mcp-prediction/types.js +0 -6
  1144. package/dist/restorer/impls/claude-mcp-prediction/types.js.map +0 -1
  1145. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +0 -34
  1146. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +0 -233
  1147. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +0 -1
  1148. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +0 -136
  1149. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +0 -1
  1150. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +0 -7
  1151. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +0 -46
  1152. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +0 -1
  1153. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +0 -27
  1154. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +0 -128
  1155. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +0 -1
  1156. package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +0 -64
  1157. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +0 -6
  1158. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +0 -1
  1159. package/dist/restorer/impls/evaluation-context.d.ts +0 -16
  1160. package/dist/restorer/impls/evaluation-context.js +0 -18
  1161. package/dist/restorer/impls/evaluation-context.js.map +0 -1
  1162. package/dist/restorer/impls/index.d.ts +0 -46
  1163. package/dist/restorer/impls/index.js +0 -88
  1164. package/dist/restorer/impls/index.js.map +0 -1
  1165. package/dist/restorer/impls/legacy-claude/index.d.ts +0 -52
  1166. package/dist/restorer/impls/legacy-claude/index.js +0 -140
  1167. package/dist/restorer/impls/legacy-claude/index.js.map +0 -1
  1168. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +0 -68
  1169. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +0 -117
  1170. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +0 -1
  1171. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +0 -1
  1172. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +0 -78
  1173. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +0 -274
  1174. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +0 -1
  1175. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +0 -23
  1176. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +0 -49
  1177. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +0 -1
  1178. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +0 -25
  1179. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +0 -44
  1180. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +0 -1
  1181. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +0 -17
  1182. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +0 -43
  1183. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +0 -1
  1184. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +0 -44
  1185. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +0 -440
  1186. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +0 -1
  1187. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +0 -1
  1188. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +0 -34
  1189. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +0 -1
  1190. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +0 -40
  1191. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +0 -107
  1192. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +0 -1
  1193. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +0 -1
  1194. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +0 -1
  1195. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +0 -6
  1196. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +0 -11
  1197. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +0 -1
  1198. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +0 -42
  1199. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +0 -208
  1200. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +0 -1
  1201. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +0 -7
  1202. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +0 -29
  1203. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +0 -1
  1204. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +0 -1
  1205. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +0 -1
  1206. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +0 -31
  1207. package/dist/restorer/impls/prediction-v0-baseline/index.js +0 -100
  1208. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +0 -1
  1209. package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +0 -8
  1210. package/dist/restorer/impls/prediction-v0-baseline/strategy.js +0 -41
  1211. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +0 -1
  1212. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +0 -7
  1213. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +0 -1
  1214. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +0 -20
  1215. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +0 -1
  1216. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +0 -9
  1217. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +0 -1
  1218. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +0 -3
  1219. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +0 -1
  1220. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +0 -13
  1221. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +0 -111
  1222. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +0 -1
  1223. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +0 -5
  1224. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +0 -1
  1225. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +0 -36
  1226. package/dist/restorer/impls/prediction-v0-evaluator/index.js +0 -234
  1227. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +0 -1
  1228. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +0 -1
  1229. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +0 -1
  1230. package/dist/restorer/types.d.ts +0 -194
  1231. package/dist/restorer/types.js +0 -28
  1232. package/dist/restorer/types.js.map +0 -1
  1233. package/dist/types/desired-state.d.ts +0 -94
  1234. package/dist/types/desired-state.js +0 -36
  1235. package/dist/types/desired-state.js.map +0 -1
  1236. /package/dist/cli/commands/{plugin-install.d.ts → solver-nets.d.ts} +0 -0
  1237. /package/dist/cli/commands/{submit-intent.d.ts → tasks.d.ts} +0 -0
  1238. /package/dist/{restorer/impls/prediction-apy-v0-baseline → harnesses/impls/claude-code-learner}/types.js +0 -0
  1239. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/api-wallet.js +0 -0
  1240. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +0 -0
  1241. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.js +0 -0
  1242. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.d.ts +0 -0
  1243. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.js +0 -0
  1244. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/mcp-tools.d.ts +0 -0
  1245. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +0 -0
  1246. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.d.ts +0 -0
  1247. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.js +0 -0
  1248. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.d.ts +0 -0
  1249. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.js +0 -0
  1250. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/types.js +0 -0
  1251. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.d.ts +0 -0
  1252. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.js +0 -0
  1253. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/types.d.ts +0 -0
  1254. /package/dist/{restorer/impls/prediction-apy-v0-evaluator → harnesses/impls/prediction-apy-v0-baseline}/types.js +0 -0
  1255. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.d.ts +0 -0
  1256. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.js +0 -0
  1257. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/types.d.ts +0 -0
  1258. /package/dist/{restorer/impls/prediction-v0-baseline → harnesses/impls/prediction-apy-v0-evaluator}/types.js +0 -0
  1259. /package/dist/{restorer/impls/prediction-v0-evaluator → harnesses/impls/prediction-v0-baseline}/types.js +0 -0
  1260. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/canonical-metrics.js +0 -0
  1261. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/availability.js +0 -0
  1262. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/eligibility.js +0 -0
  1263. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/spec.js +0 -0
  1264. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.d.ts +0 -0
  1265. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.js +0 -0
  1266. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/types.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import Database from 'better-sqlite3';
2
2
  import { mkdirSync } from 'node:fs';
3
3
  import { dirname } from 'node:path';
4
- import { RESTORATION_INTENTS_SCHEMA } from '../restorer/engine/persistence.js';
4
+ import { TASK_RUNS_SCHEMA } from '../harnesses/engine/persistence.js';
5
5
  const SCHEMA = `
6
6
  CREATE TABLE IF NOT EXISTS own_activity (
7
7
  request_id TEXT PRIMARY KEY,
@@ -15,7 +15,9 @@ CREATE TABLE IF NOT EXISTS config (
15
15
 
16
16
  CREATE TABLE IF NOT EXISTS artifacts (
17
17
  id TEXT PRIMARY KEY,
18
- desired_state_id TEXT NOT NULL,
18
+ task_id TEXT NOT NULL,
19
+ protocol_task_id TEXT,
20
+ task_cid TEXT,
19
21
  request_id TEXT NOT NULL,
20
22
  title TEXT NOT NULL,
21
23
  content TEXT,
@@ -28,7 +30,6 @@ CREATE TABLE IF NOT EXISTS artifacts (
28
30
  created_at TEXT NOT NULL DEFAULT (datetime('now'))
29
31
  );
30
32
 
31
- CREATE INDEX IF NOT EXISTS idx_artifacts_desired_state ON artifacts (desired_state_id);
32
33
  CREATE INDEX IF NOT EXISTS idx_artifacts_outcome ON artifacts (outcome);
33
34
  CREATE INDEX IF NOT EXISTS idx_artifacts_remote ON artifacts (remote);
34
35
 
@@ -39,7 +40,7 @@ CREATE TABLE IF NOT EXISTS activity_events (
39
40
  request_id TEXT,
40
41
  service_index INTEGER,
41
42
  tx_hash TEXT,
42
- spec_kind TEXT,
43
+ solver_type TEXT,
43
44
  outcome TEXT,
44
45
  detail TEXT
45
46
  );
@@ -71,21 +72,92 @@ CREATE TABLE IF NOT EXISTS balance_cache (
71
72
  error TEXT
72
73
  );
73
74
 
74
- CREATE TABLE IF NOT EXISTS intent_posts (
75
+ CREATE TABLE IF NOT EXISTS task_posts (
75
76
  creator_safe_address TEXT NOT NULL,
76
77
  source_key TEXT NOT NULL,
77
78
  policy_type TEXT NOT NULL CHECK (policy_type IN ('once_per_safe', 'once_per_bucket', 'interval')),
78
79
  scope_key TEXT NOT NULL DEFAULT '',
79
- desired_state_id TEXT NOT NULL,
80
+ task_id TEXT NOT NULL,
80
81
  request_id TEXT NOT NULL,
81
82
  first_posted_at TEXT NOT NULL,
82
83
  last_posted_at TEXT NOT NULL,
83
84
  post_count INTEGER NOT NULL DEFAULT 1,
84
85
  PRIMARY KEY (creator_safe_address, source_key, policy_type, scope_key)
85
86
  );
86
- CREATE INDEX IF NOT EXISTS idx_intent_posts_desired_state ON intent_posts (desired_state_id);
87
87
 
88
- CREATE TABLE IF NOT EXISTS intent_post_locks (
88
+ CREATE TABLE IF NOT EXISTS served_artifacts (
89
+ sha256 TEXT PRIMARY KEY,
90
+ artifact_type TEXT NOT NULL,
91
+ request_id TEXT,
92
+ envelope_cid TEXT,
93
+ content BLOB NOT NULL,
94
+ content_size INTEGER NOT NULL,
95
+ price_usdc TEXT NOT NULL,
96
+ created_at TEXT NOT NULL
97
+ );
98
+ CREATE INDEX IF NOT EXISTS idx_served_artifacts_request ON served_artifacts (request_id);
99
+ CREATE INDEX IF NOT EXISTS idx_served_artifacts_envelope ON served_artifacts (envelope_cid);
100
+ CREATE INDEX IF NOT EXISTS idx_served_artifacts_artifact_type ON served_artifacts (artifact_type);
101
+
102
+ CREATE TABLE IF NOT EXISTS network_artifacts (
103
+ sha256 TEXT PRIMARY KEY,
104
+ artifact_type TEXT NOT NULL,
105
+ envelope_cid TEXT,
106
+ content BLOB NOT NULL,
107
+ content_size INTEGER NOT NULL,
108
+ source TEXT NOT NULL CHECK (source IN ('origin', 'route-resolver', 'self-store-mirror')),
109
+ source_operator TEXT,
110
+ source_endpoint TEXT,
111
+ paid_amount_usdc TEXT NOT NULL,
112
+ fetched_at TEXT NOT NULL,
113
+ last_used_at TEXT NOT NULL,
114
+ peer_catalog_id TEXT
115
+ );
116
+ CREATE INDEX IF NOT EXISTS idx_network_artifacts_envelope ON network_artifacts (envelope_cid);
117
+ CREATE INDEX IF NOT EXISTS idx_network_artifacts_artifact_type ON network_artifacts (artifact_type);
118
+ CREATE INDEX IF NOT EXISTS idx_network_artifacts_last_used ON network_artifacts (last_used_at DESC);
119
+
120
+ CREATE TABLE IF NOT EXISTS envelope_projections (
121
+ envelope_id TEXT PRIMARY KEY,
122
+ envelope_cid TEXT,
123
+ envelope_sha256 TEXT,
124
+ signature_hash TEXT NOT NULL,
125
+ solver_type TEXT NOT NULL,
126
+ role TEXT NOT NULL,
127
+ task_cid TEXT,
128
+ task_id TEXT,
129
+ request_id TEXT,
130
+ generated_at INTEGER NOT NULL,
131
+ evidence_tier TEXT NOT NULL,
132
+ participant_safe_address TEXT,
133
+ participant_agent_eoa TEXT,
134
+ executor_impl_name TEXT,
135
+ executor_impl_version TEXT,
136
+ executor_runtime_bundle_digest TEXT,
137
+ executor_plugins_json TEXT NOT NULL DEFAULT '[]',
138
+ solution_envelope_cid TEXT,
139
+ solution_envelope_sha256 TEXT,
140
+ solution_envelope_ref TEXT,
141
+ metadata_json TEXT NOT NULL DEFAULT '{}',
142
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
143
+ );
144
+ CREATE INDEX IF NOT EXISTS idx_envelope_projections_solver_role ON envelope_projections (solver_type, role);
145
+ CREATE INDEX IF NOT EXISTS idx_envelope_projections_task_cid ON envelope_projections (task_cid);
146
+ CREATE INDEX IF NOT EXISTS idx_envelope_projections_request ON envelope_projections (request_id);
147
+ CREATE INDEX IF NOT EXISTS idx_envelope_projections_generated ON envelope_projections (generated_at DESC);
148
+
149
+ CREATE TABLE IF NOT EXISTS envelope_projection_metadata (
150
+ envelope_id TEXT NOT NULL,
151
+ key TEXT NOT NULL,
152
+ value_text TEXT NOT NULL,
153
+ value_type TEXT NOT NULL CHECK (value_type IN ('string', 'number', 'boolean')),
154
+ PRIMARY KEY (envelope_id, key),
155
+ FOREIGN KEY (envelope_id) REFERENCES envelope_projections(envelope_id) ON DELETE CASCADE
156
+ );
157
+ CREATE INDEX IF NOT EXISTS idx_envelope_projection_metadata_key_value
158
+ ON envelope_projection_metadata (key, value_text);
159
+
160
+ CREATE TABLE IF NOT EXISTS task_post_locks (
89
161
  creator_safe_address TEXT NOT NULL,
90
162
  source_key TEXT NOT NULL,
91
163
  policy_type TEXT NOT NULL CHECK (policy_type IN ('once_per_safe', 'once_per_bucket', 'interval')),
@@ -108,9 +180,119 @@ export class Store {
108
180
  this.db = new Database(dbPath);
109
181
  this.db.pragma('journal_mode = WAL');
110
182
  this.db.exec(SCHEMA);
111
- this.db.exec(RESTORATION_INTENTS_SCHEMA);
183
+ this.db.exec(TASK_RUNS_SCHEMA);
184
+ this.ensureArtifactsTaskColumns();
112
185
  this.ensureRewardClaimsTxIndex();
186
+ this.ensureNetworkArtifactsPeerCatalogId();
187
+ this.ensureTaskPostsTaskCoordinatorColumns();
188
+ this.ensureEnvelopeProjectionColumns();
113
189
  this.backfillActivityEvents();
190
+ this.recordLegacyRestorationIntentsIgnored();
191
+ }
192
+ /** Older request-first DBs keyed artifacts by desired_state_id before Task-native IDs landed. */
193
+ ensureArtifactsTaskColumns() {
194
+ const cols = this.db.prepare(`PRAGMA table_info(artifacts)`).all();
195
+ const names = new Set(cols.map((c) => c.name));
196
+ if (!names.has('task_id')) {
197
+ this.db.exec(`ALTER TABLE artifacts ADD COLUMN task_id TEXT`);
198
+ if (names.has('desired_state_id')) {
199
+ this.db.exec(`UPDATE artifacts SET task_id = desired_state_id WHERE task_id IS NULL`);
200
+ }
201
+ }
202
+ if (!names.has('protocol_task_id')) {
203
+ this.db.exec(`ALTER TABLE artifacts ADD COLUMN protocol_task_id TEXT`);
204
+ }
205
+ if (!names.has('task_cid')) {
206
+ this.db.exec(`ALTER TABLE artifacts ADD COLUMN task_cid TEXT`);
207
+ }
208
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_artifacts_task ON artifacts (task_id)`);
209
+ }
210
+ /** Older on-disk DBs predate `peer_catalog_id` on network_artifacts. */
211
+ ensureNetworkArtifactsPeerCatalogId() {
212
+ const cols = this.db.prepare(`PRAGMA table_info(network_artifacts)`).all();
213
+ if (!cols.some((c) => c.name === 'peer_catalog_id')) {
214
+ this.db.exec(`ALTER TABLE network_artifacts ADD COLUMN peer_catalog_id TEXT`);
215
+ }
216
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_network_artifacts_peer_catalog ON network_artifacts (peer_catalog_id)`);
217
+ }
218
+ /** Fresh v1 state is Task-first; older local DBs get additive columns only. */
219
+ ensureTaskPostsTaskCoordinatorColumns() {
220
+ const cols = this.db.prepare(`PRAGMA table_info(task_posts)`).all();
221
+ const names = new Set(cols.map((c) => c.name));
222
+ if (!names.has('task_id')) {
223
+ this.db.exec(`ALTER TABLE task_posts ADD COLUMN task_id TEXT`);
224
+ }
225
+ if (!names.has('protocol_task_id')) {
226
+ this.db.exec(`ALTER TABLE task_posts ADD COLUMN protocol_task_id TEXT`);
227
+ }
228
+ if (!names.has('task_cid')) {
229
+ this.db.exec(`ALTER TABLE task_posts ADD COLUMN task_cid TEXT`);
230
+ }
231
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_task_posts_task ON task_posts (task_id)`);
232
+ }
233
+ /** Older local DBs may have the projection table from before Task grouping fields landed. */
234
+ ensureEnvelopeProjectionColumns() {
235
+ const cols = this.db.prepare(`PRAGMA table_info(envelope_projections)`).all();
236
+ const names = new Set(cols.map((c) => c.name));
237
+ const addColumn = (name, ddl) => {
238
+ if (!names.has(name))
239
+ this.db.exec(`ALTER TABLE envelope_projections ADD COLUMN ${ddl}`);
240
+ };
241
+ addColumn('task_id', 'task_id TEXT');
242
+ addColumn('executor_runtime_bundle_digest', 'executor_runtime_bundle_digest TEXT');
243
+ addColumn('executor_plugins_json', `executor_plugins_json TEXT NOT NULL DEFAULT '[]'`);
244
+ addColumn('solution_envelope_cid', 'solution_envelope_cid TEXT');
245
+ addColumn('solution_envelope_sha256', 'solution_envelope_sha256 TEXT');
246
+ addColumn('solution_envelope_ref', 'solution_envelope_ref TEXT');
247
+ addColumn('metadata_json', `metadata_json TEXT NOT NULL DEFAULT '{}'`);
248
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_task_id ON envelope_projections (task_id)`);
249
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_solution_ref ON envelope_projections (solution_envelope_ref)`);
250
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_generated ON envelope_projections (generated_at DESC)`);
251
+ }
252
+ /**
253
+ * Task-native startup ignores the retired request-first `restoration_intents`
254
+ * table. Keep a one-time local marker when old in-flight rows are present so
255
+ * operators can see why they were not resumed without blocking Store startup.
256
+ */
257
+ recordLegacyRestorationIntentsIgnored() {
258
+ const table = this.db.prepare(`SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'restoration_intents'`).get();
259
+ if (!table)
260
+ return;
261
+ const cols = this.db.prepare(`PRAGMA table_info(restoration_intents)`).all();
262
+ const names = new Set(cols.map((c) => c.name));
263
+ if (!names.has('state'))
264
+ return;
265
+ try {
266
+ const row = this.db.prepare(`SELECT COUNT(*) AS count
267
+ FROM restoration_intents
268
+ WHERE state NOT IN ('COMPLETE', 'FAILED')`).get();
269
+ const count = row?.count ?? 0;
270
+ if (count <= 0)
271
+ return;
272
+ const detail = `Ignored ${count} legacy request-first restoration_intents row${count === 1 ? '' : 's'}; ` +
273
+ 'Task-native recovery does not resume ClaimRegistry/request-first jobs.';
274
+ const ts = new Date().toISOString();
275
+ const marker = {
276
+ schemaVersion: 1,
277
+ ignoredAt: ts,
278
+ table: 'restoration_intents',
279
+ inFlightRows: count,
280
+ reason: 'legacy_request_first_task_native_update',
281
+ };
282
+ const tx = this.db.transaction(() => {
283
+ this.db.prepare(`INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)`).run('legacy_restoration_intents_ignored_v1', JSON.stringify(marker));
284
+ this.db.prepare(`INSERT INTO activity_events (ts, kind, outcome, detail)
285
+ SELECT @ts, 'legacy_ignored', 'ignored', @detail
286
+ WHERE NOT EXISTS (
287
+ SELECT 1 FROM activity_events
288
+ WHERE kind = 'legacy_ignored' AND detail = @detail
289
+ )`).run({ ts, detail });
290
+ });
291
+ tx();
292
+ }
293
+ catch {
294
+ // Legacy schemas varied. Never let stale request-first state block Store startup.
295
+ }
114
296
  }
115
297
  /** Idempotent: older DBs before idx_reward_claims_tx may lack the unique index. */
116
298
  ensureRewardClaimsTxIndex() {
@@ -147,10 +329,11 @@ export class Store {
147
329
  setConfigValue(key, value) {
148
330
  this.db.prepare('INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)').run(key, value);
149
331
  }
150
- getIntentPostRecord(args) {
151
- const row = this.db.prepare(`SELECT creator_safe_address, source_key, policy_type, scope_key, desired_state_id, request_id,
332
+ getTaskPostRecord(args) {
333
+ const row = this.db.prepare(`SELECT creator_safe_address, source_key, policy_type, scope_key, task_id,
334
+ protocol_task_id, task_cid, request_id,
152
335
  first_posted_at, last_posted_at, post_count
153
- FROM intent_posts
336
+ FROM task_posts
154
337
  WHERE creator_safe_address = @creatorSafeAddress
155
338
  AND source_key = @sourceKey
156
339
  AND policy_type = @policyType
@@ -162,37 +345,125 @@ export class Store {
162
345
  sourceKey: row.source_key,
163
346
  policyType: row.policy_type,
164
347
  scopeKey: row.scope_key,
165
- desiredStateId: row.desired_state_id,
348
+ taskId: row.task_id,
349
+ protocolTaskId: row.protocol_task_id,
350
+ taskCid: row.task_cid,
166
351
  requestId: row.request_id,
167
352
  firstPostedAt: row.first_posted_at,
168
353
  lastPostedAt: row.last_posted_at,
169
354
  postCount: row.post_count,
170
355
  };
171
356
  }
172
- upsertIntentPostRecord(record) {
173
- this.db.prepare(`INSERT INTO intent_posts
174
- (creator_safe_address, source_key, policy_type, scope_key, desired_state_id, request_id,
357
+ /**
358
+ * Posted Tasks for the launcher mode (`GET /v1/launcher/tasks`,
359
+ * spec/2026-05-05-launcher-role-and-mode.md §5.3). Returns rows from
360
+ * `task_posts` filtered by creator Safe address, sorted by `last_posted_at
361
+ * DESC` (most recent first). The `solverType` is denormalised in by joining
362
+ * `activity_events` on `request_id` for the `task_posted` kind — that's
363
+ * where `posting-service.ts` writes the SolverType when the post lands.
364
+ *
365
+ * `before` filters to rows with `last_posted_at < before` (ISO-8601). When
366
+ * `before` is undefined, returns the most recent `limit` rows.
367
+ *
368
+ * Caller-side: `gatherLauncherTasks` (`api/launcher-tasks.ts`) maps the
369
+ * solver_type back to the operator's SolverNet name via config lookup.
370
+ */
371
+ listPostedTasksByCreator(args) {
372
+ const limit = Math.max(0, Math.min(args.limit, 1000));
373
+ if (limit === 0)
374
+ return [];
375
+ const params = {
376
+ creator: args.creatorSafeAddress,
377
+ limit,
378
+ };
379
+ let beforeClause = '';
380
+ if (args.before) {
381
+ beforeClause = ' AND tp.last_posted_at < @before';
382
+ params['before'] = args.before;
383
+ }
384
+ // LEFT JOIN: a stale `task_posts` row from before activity_events backfill
385
+ // (or one whose event was lost to `recordActivityEvent` failure) still
386
+ // surfaces with a NULL solver_type — the gather function falls back to
387
+ // `solverNet: 'unknown'` rather than dropping the row, because the
388
+ // operator should still see the Task they posted.
389
+ const rows = this.db.prepare(`SELECT
390
+ tp.task_id,
391
+ tp.task_cid,
392
+ tp.protocol_task_id,
393
+ tp.request_id,
394
+ tp.last_posted_at,
395
+ (
396
+ SELECT ae.solver_type
397
+ FROM activity_events ae
398
+ WHERE ae.request_id = tp.request_id
399
+ AND ae.kind = 'task_posted'
400
+ AND ae.solver_type IS NOT NULL
401
+ ORDER BY ae.id DESC
402
+ LIMIT 1
403
+ ) AS solver_type
404
+ FROM task_posts tp
405
+ WHERE tp.creator_safe_address = @creator${beforeClause}
406
+ ORDER BY tp.last_posted_at DESC
407
+ LIMIT @limit`).all(params);
408
+ return rows.map((r) => ({
409
+ // task_id was added by an additive migration; the column exists on every
410
+ // post-migration insert (posting-service.ts always writes it). Older
411
+ // rows fall back to protocol_task_id (chain Task ID) and finally
412
+ // request_id so the response shape's `taskId` is always populated.
413
+ taskId: r.task_id ?? r.protocol_task_id ?? r.request_id,
414
+ taskCid: r.task_cid ?? '',
415
+ solverType: r.solver_type,
416
+ requestId: r.request_id,
417
+ postedAt: r.last_posted_at,
418
+ }));
419
+ }
420
+ /** Count of posted Tasks for this creator with the given solver_type. v1
421
+ * treats every posted Task as in-flight (state derivation lands with
422
+ * router-watcher hardening, jinn-mono-l2zl.12). */
423
+ countPostedTasksByCreatorAndSolverType(args) {
424
+ const row = this.db.prepare(`SELECT COUNT(DISTINCT tp.task_id) AS c
425
+ FROM task_posts tp
426
+ INNER JOIN activity_events ae
427
+ ON ae.request_id = tp.request_id
428
+ AND ae.kind = 'task_posted'
429
+ WHERE tp.creator_safe_address = @creator
430
+ AND ae.solver_type = @solverType`).get({
431
+ creator: args.creatorSafeAddress,
432
+ solverType: args.solverType,
433
+ });
434
+ return row?.c ?? 0;
435
+ }
436
+ upsertTaskPostRecord(record) {
437
+ const params = {
438
+ ...record,
439
+ protocolTaskId: record.protocolTaskId ?? null,
440
+ taskCid: record.taskCid ?? null,
441
+ };
442
+ this.db.prepare(`INSERT INTO task_posts
443
+ (creator_safe_address, source_key, policy_type, scope_key, task_id, protocol_task_id, task_cid, request_id,
175
444
  first_posted_at, last_posted_at, post_count)
176
445
  VALUES
177
- (@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @desiredStateId, @requestId,
446
+ (@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @taskId, @protocolTaskId, @taskCid, @requestId,
178
447
  @firstPostedAt, @lastPostedAt, @postCount)
179
448
  ON CONFLICT(creator_safe_address, source_key, policy_type, scope_key) DO UPDATE SET
180
- desired_state_id = excluded.desired_state_id,
449
+ task_id = excluded.task_id,
450
+ protocol_task_id = excluded.protocol_task_id,
451
+ task_cid = excluded.task_cid,
181
452
  request_id = excluded.request_id,
182
453
  first_posted_at = excluded.first_posted_at,
183
454
  last_posted_at = excluded.last_posted_at,
184
- post_count = excluded.post_count`).run(record);
455
+ post_count = excluded.post_count`).run(params);
185
456
  }
186
- acquireIntentPostLock(args) {
457
+ acquireTaskPostLock(args) {
187
458
  const tx = this.db.transaction((params) => {
188
459
  const existing = this.db.prepare(`SELECT owner_token, locked_at
189
- FROM intent_post_locks
460
+ FROM task_post_locks
190
461
  WHERE creator_safe_address = @creatorSafeAddress
191
462
  AND source_key = @sourceKey
192
463
  AND policy_type = @policyType
193
464
  AND scope_key = @scopeKey`).get(params);
194
465
  if (!existing) {
195
- this.db.prepare(`INSERT INTO intent_post_locks
466
+ this.db.prepare(`INSERT INTO task_post_locks
196
467
  (creator_safe_address, source_key, policy_type, scope_key, owner_token, locked_at)
197
468
  VALUES
198
469
  (@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @ownerToken, @lockedAt)`).run(params);
@@ -206,7 +477,7 @@ export class Store {
206
477
  if (!isStale) {
207
478
  return false;
208
479
  }
209
- this.db.prepare(`UPDATE intent_post_locks
480
+ this.db.prepare(`UPDATE task_post_locks
210
481
  SET owner_token = @ownerToken, locked_at = @lockedAt
211
482
  WHERE creator_safe_address = @creatorSafeAddress
212
483
  AND source_key = @sourceKey
@@ -216,8 +487,8 @@ export class Store {
216
487
  });
217
488
  return tx(args);
218
489
  }
219
- releaseIntentPostLock(args) {
220
- this.db.prepare(`DELETE FROM intent_post_locks
490
+ releaseTaskPostLock(args) {
491
+ this.db.prepare(`DELETE FROM task_post_locks
221
492
  WHERE creator_safe_address = @creatorSafeAddress
222
493
  AND source_key = @sourceKey
223
494
  AND policy_type = @policyType
@@ -244,14 +515,14 @@ export class Store {
244
515
  return legacyRows.map(r => ({ requestId: r.request_id, role: r.role }));
245
516
  }
246
517
  recordActivityEvent(event) {
247
- this.db.prepare(`INSERT INTO activity_events (ts, kind, request_id, service_index, tx_hash, spec_kind, outcome, detail)
248
- VALUES (@ts, @kind, @requestId, @serviceIndex, @txHash, @specKind, @outcome, @detail)`).run({
518
+ this.db.prepare(`INSERT INTO activity_events (ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail)
519
+ VALUES (@ts, @kind, @requestId, @serviceIndex, @txHash, @solverType, @outcome, @detail)`).run({
249
520
  ts: event.ts ?? null,
250
521
  kind: event.kind,
251
522
  requestId: event.requestId ?? null,
252
523
  serviceIndex: event.serviceIndex ?? null,
253
524
  txHash: event.txHash ?? null,
254
- specKind: event.specKind ?? null,
525
+ solverType: event.solverType ?? null,
255
526
  outcome: event.outcome ?? null,
256
527
  detail: event.detail ?? null,
257
528
  });
@@ -269,7 +540,7 @@ export class Store {
269
540
  params['cursor'] = opts.cursor;
270
541
  }
271
542
  const where = clauses.length > 0 ? `WHERE ${clauses.join(' AND ')}` : '';
272
- const rows = this.db.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, spec_kind, outcome, detail
543
+ const rows = this.db.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail
273
544
  FROM activity_events
274
545
  ${where}
275
546
  ORDER BY id DESC
@@ -281,7 +552,7 @@ export class Store {
281
552
  requestId: r.request_id,
282
553
  serviceIndex: r.service_index,
283
554
  txHash: r.tx_hash,
284
- specKind: r.spec_kind,
555
+ solverType: r.solver_type,
285
556
  outcome: r.outcome,
286
557
  detail: r.detail,
287
558
  }));
@@ -290,7 +561,7 @@ export class Store {
290
561
  getActivityEventsAfterId(afterId, limit) {
291
562
  const effectiveLimit = Math.max(0, Math.min(limit, 1000));
292
563
  const rows = this.db
293
- .prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, spec_kind, outcome, detail
564
+ .prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail
294
565
  FROM activity_events
295
566
  WHERE id > @afterId
296
567
  ORDER BY id ASC
@@ -303,7 +574,7 @@ export class Store {
303
574
  requestId: r.request_id,
304
575
  serviceIndex: r.service_index,
305
576
  txHash: r.tx_hash,
306
- specKind: r.spec_kind,
577
+ solverType: r.solver_type,
307
578
  outcome: r.outcome,
308
579
  detail: r.detail,
309
580
  }));
@@ -410,6 +681,10 @@ export class Store {
410
681
  });
411
682
  tx();
412
683
  }
684
+ getTaskEvidenceHash(requestId) {
685
+ const row = this.db.prepare('SELECT evidence_hash FROM task_runs WHERE request_id = ?').get(requestId);
686
+ return row?.evidence_hash ?? null;
687
+ }
413
688
  getLastProcessedBlock() {
414
689
  const row = this.db.prepare('SELECT value FROM config WHERE key = ?').get('last_processed_block');
415
690
  return row?.value ? BigInt(row.value) : null;
@@ -419,8 +694,8 @@ export class Store {
419
694
  }
420
695
  insertArtifact(artifact) {
421
696
  this.db.prepare(`
422
- INSERT OR REPLACE INTO artifacts (id, desired_state_id, request_id, title, content, tags, outcome)
423
- VALUES (@id, @desiredStateId, @requestId, @title, @content, @tags, @outcome)
697
+ INSERT OR REPLACE INTO artifacts (id, task_id, request_id, title, content, tags, outcome)
698
+ VALUES (@id, @taskId, @requestId, @title, @content, @tags, @outcome)
424
699
  `).run({
425
700
  ...artifact,
426
701
  tags: JSON.stringify(artifact.tags),
@@ -437,9 +712,9 @@ export class Store {
437
712
  conditions.push('request_id = @requestId');
438
713
  params['requestId'] = query.requestId;
439
714
  }
440
- if (query.desiredStateId) {
441
- conditions.push('desired_state_id = @desiredStateId');
442
- params['desiredStateId'] = query.desiredStateId;
715
+ if (query.taskId) {
716
+ conditions.push('task_id = @taskId');
717
+ params['taskId'] = query.taskId;
443
718
  }
444
719
  if (query.after) {
445
720
  conditions.push('created_at >= @after');
@@ -457,7 +732,7 @@ export class Store {
457
732
  }
458
733
  const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
459
734
  const limit = query.limit ?? 50;
460
- const rows = this.db.prepare(`SELECT id, title, content, tags, outcome, request_id, desired_state_id, created_at FROM artifacts ${where} ORDER BY created_at DESC LIMIT ${limit}`).all(params);
735
+ const rows = this.db.prepare(`SELECT id, title, content, tags, outcome, request_id, task_id, created_at FROM artifacts ${where} ORDER BY created_at DESC LIMIT ${limit}`).all(params);
461
736
  return rows.map(row => ({
462
737
  ...row,
463
738
  tags: JSON.parse(row.tags),
@@ -465,19 +740,29 @@ export class Store {
465
740
  }
466
741
  insertRemoteArtifact(artifact) {
467
742
  this.db.prepare(`
468
- INSERT OR REPLACE INTO artifacts (id, desired_state_id, request_id, title, tags, outcome, remote, owner_address, endpoint, price)
469
- VALUES (@id, @desiredStateId, @requestId, @title, @tags, @outcome, 1, @ownerAddress, @endpoint, @price)
743
+ INSERT OR REPLACE INTO artifacts (id, task_id, request_id, title, tags, outcome, remote, owner_address, endpoint, price)
744
+ VALUES (@id, @taskId, @requestId, @title, @tags, @outcome, 1, @ownerAddress, @endpoint, @price)
470
745
  `).run({
471
746
  ...artifact,
472
747
  tags: JSON.stringify(artifact.tags),
473
748
  price: artifact.price ?? null,
474
749
  });
475
750
  }
476
- getArtifactContent(id) {
477
- const row = this.db.prepare('SELECT content FROM artifacts WHERE id = ?').get(id);
478
- return row?.content ?? null;
751
+ /**
752
+ * Text body for a catalog artifact id: local `artifacts.content`, else a peer-cached
753
+ * blob in `network_artifacts` (via `peer_catalog_id`).
754
+ */
755
+ resolveCatalogArtifactContent(id) {
756
+ const local = this.db.prepare('SELECT content FROM artifacts WHERE id = ?').get(id);
757
+ if (local?.content != null)
758
+ return local.content;
759
+ const net = this.db.prepare(`SELECT content FROM network_artifacts WHERE peer_catalog_id = ? ORDER BY fetched_at DESC LIMIT 1`).get(id);
760
+ if (!net)
761
+ return null;
762
+ return net.content.toString('utf-8');
479
763
  }
480
- getRemoteArtifactInfo(id) {
764
+ /** Endpoint / owner for a remote (peer-synced) catalog row in `artifacts`. */
765
+ getRemoteDiscoveryMetadata(id) {
481
766
  const row = this.db.prepare('SELECT endpoint, owner_address, price FROM artifacts WHERE id = ? AND remote = 1').get(id);
482
767
  if (!row)
483
768
  return null;
@@ -493,11 +778,391 @@ export class Store {
493
778
  return null;
494
779
  return { ...row, tags: JSON.parse(row.tags) };
495
780
  }
496
- cacheRemoteContent(id, content) {
497
- this.db.prepare('UPDATE artifacts SET content = ? WHERE id = ?').run(content, id);
781
+ saveServedArtifact(input) {
782
+ this.db.prepare(`INSERT OR REPLACE INTO served_artifacts
783
+ (sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at)
784
+ VALUES
785
+ (@sha256, @artifactType, @requestId, @envelopeCid, @content, @contentSize, @priceUsdc, @createdAt)`).run({
786
+ sha256: input.sha256,
787
+ artifactType: input.artifactType,
788
+ requestId: input.requestId ?? null,
789
+ envelopeCid: input.envelopeCid ?? null,
790
+ content: input.content,
791
+ contentSize: input.content.length,
792
+ priceUsdc: input.priceUsdc,
793
+ createdAt: input.createdAt,
794
+ });
795
+ }
796
+ getServedArtifact(sha256) {
797
+ const row = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at
798
+ FROM served_artifacts WHERE sha256 = ?`).get(sha256);
799
+ if (!row)
800
+ return null;
801
+ return {
802
+ sha256: row.sha256,
803
+ artifactType: row.artifact_type,
804
+ requestId: row.request_id,
805
+ envelopeCid: row.envelope_cid,
806
+ content: row.content,
807
+ contentSize: row.content_size,
808
+ priceUsdc: row.price_usdc,
809
+ createdAt: row.created_at,
810
+ };
811
+ }
812
+ getServedArtifactMetadata(sha256) {
813
+ const row = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content_size, price_usdc, created_at
814
+ FROM served_artifacts WHERE sha256 = ?`).get(sha256);
815
+ if (!row)
816
+ return null;
817
+ return {
818
+ sha256: row.sha256,
819
+ artifactType: row.artifact_type,
820
+ requestId: row.request_id,
821
+ envelopeCid: row.envelope_cid,
822
+ contentSize: row.content_size,
823
+ priceUsdc: row.price_usdc,
824
+ createdAt: row.created_at,
825
+ };
826
+ }
827
+ setServedArtifactEnvelopeCid(sha256, envelopeCid) {
828
+ this.db.prepare(`UPDATE served_artifacts SET envelope_cid = ? WHERE sha256 = ?`).run(envelopeCid, sha256);
829
+ }
830
+ getServedArtifactsByRequestId(requestId) {
831
+ const rows = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at
832
+ FROM served_artifacts WHERE request_id = ? ORDER BY created_at ASC`).all(requestId);
833
+ return rows.map((row) => ({
834
+ sha256: row.sha256,
835
+ artifactType: row.artifact_type,
836
+ requestId: row.request_id,
837
+ envelopeCid: row.envelope_cid,
838
+ content: row.content,
839
+ contentSize: row.content_size,
840
+ priceUsdc: row.price_usdc,
841
+ createdAt: row.created_at,
842
+ }));
843
+ }
844
+ saveNetworkArtifact(input) {
845
+ if (input.peerCatalogId) {
846
+ this.db.prepare(`DELETE FROM network_artifacts WHERE peer_catalog_id = ?`).run(input.peerCatalogId);
847
+ }
848
+ this.db.prepare(`INSERT OR REPLACE INTO network_artifacts
849
+ (sha256, artifact_type, envelope_cid, content, content_size, source,
850
+ source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at, peer_catalog_id)
851
+ VALUES
852
+ (@sha256, @artifactType, @envelopeCid, @content, @contentSize, @source,
853
+ @sourceOperator, @sourceEndpoint, @paidAmountUsdc, @fetchedAt, @fetchedAt, @peerCatalogId)`).run({
854
+ sha256: input.sha256,
855
+ artifactType: input.artifactType,
856
+ envelopeCid: input.envelopeCid ?? null,
857
+ content: input.content,
858
+ contentSize: input.content.length,
859
+ source: input.source,
860
+ sourceOperator: input.sourceOperator ?? null,
861
+ sourceEndpoint: input.sourceEndpoint ?? null,
862
+ paidAmountUsdc: input.paidAmountUsdc,
863
+ fetchedAt: input.fetchedAt,
864
+ peerCatalogId: input.peerCatalogId ?? null,
865
+ });
866
+ }
867
+ getNetworkArtifact(sha256) {
868
+ const row = this.db.prepare(`SELECT sha256, artifact_type, envelope_cid, content, content_size, source,
869
+ source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at,
870
+ peer_catalog_id
871
+ FROM network_artifacts WHERE sha256 = ?`).get(sha256);
872
+ if (!row)
873
+ return null;
874
+ return {
875
+ sha256: row.sha256,
876
+ artifactType: row.artifact_type,
877
+ envelopeCid: row.envelope_cid,
878
+ content: row.content,
879
+ contentSize: row.content_size,
880
+ source: row.source,
881
+ sourceOperator: row.source_operator,
882
+ sourceEndpoint: row.source_endpoint,
883
+ paidAmountUsdc: row.paid_amount_usdc,
884
+ fetchedAt: row.fetched_at,
885
+ lastUsedAt: row.last_used_at,
886
+ peerCatalogId: row.peer_catalog_id,
887
+ };
888
+ }
889
+ getNetworkArtifactMetadata(sha256) {
890
+ const row = this.db.prepare(`SELECT sha256, artifact_type, envelope_cid, content_size, source,
891
+ source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at,
892
+ peer_catalog_id
893
+ FROM network_artifacts WHERE sha256 = ?`).get(sha256);
894
+ if (!row)
895
+ return null;
896
+ return {
897
+ sha256: row.sha256,
898
+ artifactType: row.artifact_type,
899
+ envelopeCid: row.envelope_cid,
900
+ contentSize: row.content_size,
901
+ source: row.source,
902
+ sourceOperator: row.source_operator,
903
+ sourceEndpoint: row.source_endpoint,
904
+ paidAmountUsdc: row.paid_amount_usdc,
905
+ fetchedAt: row.fetched_at,
906
+ lastUsedAt: row.last_used_at,
907
+ peerCatalogId: row.peer_catalog_id,
908
+ };
909
+ }
910
+ touchNetworkArtifactUsage(sha256, ts) {
911
+ this.db.prepare(`UPDATE network_artifacts SET last_used_at = ? WHERE sha256 = ?`).run(ts, sha256);
912
+ }
913
+ /**
914
+ * Local fast-path search across own (served) artifacts and cached (network)
915
+ * artifacts. Used by MCP record search to prepend locally held matches to
916
+ * corpus query results without loading artifact bytes.
917
+ */
918
+ searchOwnAndCached(filter) {
919
+ const limit = Math.min(Math.max(1, filter.limit), 500);
920
+ const ownSql = filter.artifactType
921
+ ? `SELECT sha256, artifact_type, envelope_cid, content_size, price_usdc, created_at FROM served_artifacts WHERE artifact_type = @type ORDER BY created_at DESC LIMIT @limit`
922
+ : `SELECT sha256, artifact_type, envelope_cid, content_size, price_usdc, created_at FROM served_artifacts ORDER BY created_at DESC LIMIT @limit`;
923
+ const cachedSql = filter.artifactType
924
+ ? `SELECT sha256, artifact_type, envelope_cid, content_size, source_operator, source_endpoint, paid_amount_usdc, fetched_at FROM network_artifacts WHERE artifact_type = @type ORDER BY fetched_at DESC LIMIT @limit`
925
+ : `SELECT sha256, artifact_type, envelope_cid, content_size, source_operator, source_endpoint, paid_amount_usdc, fetched_at FROM network_artifacts ORDER BY fetched_at DESC LIMIT @limit`;
926
+ const params = { limit };
927
+ if (filter.artifactType)
928
+ params['type'] = filter.artifactType;
929
+ const own = this.db.prepare(ownSql).all(params);
930
+ const cached = this.db.prepare(cachedSql).all(params);
931
+ return [
932
+ ...own.map((r) => ({
933
+ sha256: r.sha256,
934
+ artifactType: r.artifact_type,
935
+ source: 'served',
936
+ envelopeCid: r.envelope_cid,
937
+ createdAt: r.created_at,
938
+ contentSize: r.content_size,
939
+ priceUsdc: r.price_usdc,
940
+ })),
941
+ ...cached.map((r) => ({
942
+ sha256: r.sha256,
943
+ artifactType: r.artifact_type,
944
+ source: 'network',
945
+ envelopeCid: r.envelope_cid,
946
+ createdAt: r.fetched_at,
947
+ contentSize: r.content_size,
948
+ sourceEndpoint: r.source_endpoint,
949
+ sourceOperator: r.source_operator,
950
+ paidAmountUsdc: r.paid_amount_usdc,
951
+ })),
952
+ ];
953
+ }
954
+ saveEnvelopeProjection(projection) {
955
+ const tx = this.db.transaction((p) => {
956
+ this.db.prepare(`INSERT INTO envelope_projections
957
+ (envelope_id, envelope_cid, envelope_sha256, signature_hash, solver_type, role,
958
+ task_cid, task_id, request_id, generated_at, evidence_tier,
959
+ participant_safe_address, participant_agent_eoa,
960
+ executor_impl_name, executor_impl_version, executor_runtime_bundle_digest,
961
+ executor_plugins_json, solution_envelope_cid, solution_envelope_sha256,
962
+ solution_envelope_ref, metadata_json)
963
+ VALUES
964
+ (@envelopeId, @envelopeCid, @envelopeSha256, @signatureHash, @solverType, @role,
965
+ @taskCid, @taskId, @requestId, @generatedAt, @evidenceTier,
966
+ @participantSafeAddress, @participantAgentEoa,
967
+ @executorImplName, @executorImplVersion, @executorRuntimeBundleDigest,
968
+ @executorPluginsJson, @solutionEnvelopeCid, @solutionEnvelopeSha256,
969
+ @solutionEnvelopeRef, @metadataJson)
970
+ ON CONFLICT(envelope_id) DO UPDATE SET
971
+ envelope_cid = excluded.envelope_cid,
972
+ envelope_sha256 = excluded.envelope_sha256,
973
+ signature_hash = excluded.signature_hash,
974
+ solver_type = excluded.solver_type,
975
+ role = excluded.role,
976
+ task_cid = excluded.task_cid,
977
+ task_id = excluded.task_id,
978
+ request_id = excluded.request_id,
979
+ generated_at = excluded.generated_at,
980
+ evidence_tier = excluded.evidence_tier,
981
+ participant_safe_address = excluded.participant_safe_address,
982
+ participant_agent_eoa = excluded.participant_agent_eoa,
983
+ executor_impl_name = excluded.executor_impl_name,
984
+ executor_impl_version = excluded.executor_impl_version,
985
+ executor_runtime_bundle_digest = excluded.executor_runtime_bundle_digest,
986
+ executor_plugins_json = excluded.executor_plugins_json,
987
+ solution_envelope_cid = excluded.solution_envelope_cid,
988
+ solution_envelope_sha256 = excluded.solution_envelope_sha256,
989
+ solution_envelope_ref = excluded.solution_envelope_ref,
990
+ metadata_json = excluded.metadata_json`).run({
991
+ envelopeId: p.envelopeId,
992
+ envelopeCid: p.envelopeCid,
993
+ envelopeSha256: p.envelopeSha256,
994
+ signatureHash: p.signatureHash,
995
+ solverType: p.solverType,
996
+ role: p.role,
997
+ taskCid: p.taskCid,
998
+ taskId: p.taskId,
999
+ requestId: p.requestId,
1000
+ generatedAt: p.generatedAt,
1001
+ evidenceTier: p.evidenceTier,
1002
+ participantSafeAddress: p.participantSafeAddress,
1003
+ participantAgentEoa: p.participantAgentEoa,
1004
+ executorImplName: p.executorImplName,
1005
+ executorImplVersion: p.executorImplVersion,
1006
+ executorRuntimeBundleDigest: p.executorRuntimeBundleDigest,
1007
+ executorPluginsJson: JSON.stringify(p.executorPlugins),
1008
+ solutionEnvelopeCid: p.solutionEnvelopeCid,
1009
+ solutionEnvelopeSha256: p.solutionEnvelopeSha256,
1010
+ solutionEnvelopeRef: p.solutionEnvelopeRef,
1011
+ metadataJson: JSON.stringify(p.metadata),
1012
+ });
1013
+ this.db.prepare(`DELETE FROM envelope_projection_metadata WHERE envelope_id = ?`).run(p.envelopeId);
1014
+ const insertMetadata = this.db.prepare(`INSERT INTO envelope_projection_metadata (envelope_id, key, value_text, value_type)
1015
+ VALUES (@envelopeId, @key, @valueText, @valueType)`);
1016
+ for (const [key, value] of Object.entries(p.metadata)) {
1017
+ insertMetadata.run({
1018
+ envelopeId: p.envelopeId,
1019
+ key,
1020
+ valueText: metadataValueText(value),
1021
+ valueType: typeof value,
1022
+ });
1023
+ }
1024
+ });
1025
+ tx(projection);
1026
+ }
1027
+ queryEnvelopeProjections(query = {}) {
1028
+ const conditions = [];
1029
+ const params = {};
1030
+ if (query.envelopeRefs && query.envelopeRefs.length > 0) {
1031
+ const placeholders = query.envelopeRefs.map((ref, index) => {
1032
+ const key = `envelopeRef${index}`;
1033
+ params[key] = ref;
1034
+ return `@${key}`;
1035
+ }).join(', ');
1036
+ conditions.push(`(envelope_id IN (${placeholders})
1037
+ OR envelope_cid IN (${placeholders})
1038
+ OR envelope_sha256 IN (${placeholders})
1039
+ OR signature_hash IN (${placeholders}))`);
1040
+ }
1041
+ if (query.solverType) {
1042
+ conditions.push('solver_type = @solverType');
1043
+ params['solverType'] = query.solverType;
1044
+ }
1045
+ if (query.role) {
1046
+ conditions.push('role = @role');
1047
+ params['role'] = query.role;
1048
+ }
1049
+ if (query.taskCid) {
1050
+ conditions.push('task_cid = @taskCid');
1051
+ params['taskCid'] = query.taskCid;
1052
+ }
1053
+ if (query.taskId) {
1054
+ conditions.push('task_id = @taskId');
1055
+ params['taskId'] = query.taskId;
1056
+ }
1057
+ if (query.requestId) {
1058
+ conditions.push('request_id = @requestId');
1059
+ params['requestId'] = query.requestId;
1060
+ }
1061
+ if (query.participant?.safeAddress) {
1062
+ conditions.push('participant_safe_address = @participantSafeAddress');
1063
+ params['participantSafeAddress'] = query.participant.safeAddress;
1064
+ }
1065
+ if (query.participant?.agentEoa) {
1066
+ conditions.push('participant_agent_eoa = @participantAgentEoa');
1067
+ params['participantAgentEoa'] = query.participant.agentEoa;
1068
+ }
1069
+ if (query.solutionEnvelopeRef) {
1070
+ conditions.push('solution_envelope_ref = @solutionEnvelopeRef');
1071
+ params['solutionEnvelopeRef'] = query.solutionEnvelopeRef;
1072
+ }
1073
+ if (query.generatedAfter !== undefined) {
1074
+ conditions.push('generated_at >= @generatedAfter');
1075
+ params['generatedAfter'] = query.generatedAfter;
1076
+ }
1077
+ if (query.generatedBefore !== undefined) {
1078
+ conditions.push('generated_at <= @generatedBefore');
1079
+ params['generatedBefore'] = query.generatedBefore;
1080
+ }
1081
+ let metadataIndex = 0;
1082
+ for (const [key, value] of Object.entries(query.metadata ?? {})) {
1083
+ const keyParam = `metadataKey${metadataIndex}`;
1084
+ const valueParam = `metadataValue${metadataIndex}`;
1085
+ conditions.push(`EXISTS (
1086
+ SELECT 1 FROM envelope_projection_metadata m${metadataIndex}
1087
+ WHERE m${metadataIndex}.envelope_id = envelope_projections.envelope_id
1088
+ AND m${metadataIndex}.key = @${keyParam}
1089
+ AND m${metadataIndex}.value_text = @${valueParam}
1090
+ )`);
1091
+ params[keyParam] = key;
1092
+ params[valueParam] = metadataValueText(value);
1093
+ metadataIndex += 1;
1094
+ }
1095
+ const limit = Math.max(0, Math.min(query.limit ?? 100, 1000));
1096
+ params['limit'] = limit;
1097
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
1098
+ const rows = this.db.prepare(`SELECT envelope_id, envelope_cid, envelope_sha256, signature_hash, solver_type, role,
1099
+ task_cid, task_id, request_id, generated_at, evidence_tier,
1100
+ participant_safe_address, participant_agent_eoa,
1101
+ executor_impl_name, executor_impl_version, executor_runtime_bundle_digest,
1102
+ executor_plugins_json, solution_envelope_cid, solution_envelope_sha256,
1103
+ solution_envelope_ref, metadata_json
1104
+ FROM envelope_projections
1105
+ ${where}
1106
+ ORDER BY generated_at DESC, envelope_id ASC
1107
+ LIMIT @limit`).all(params);
1108
+ return rows.map(rowToEnvelopeProjection);
498
1109
  }
499
1110
  close() {
500
1111
  this.db.close();
501
1112
  }
502
1113
  }
1114
+ function rowToEnvelopeProjection(row) {
1115
+ return {
1116
+ envelopeId: row.envelope_id,
1117
+ envelopeCid: row.envelope_cid,
1118
+ envelopeSha256: row.envelope_sha256,
1119
+ signatureHash: row.signature_hash,
1120
+ solverType: row.solver_type,
1121
+ role: row.role,
1122
+ taskCid: row.task_cid,
1123
+ taskId: row.task_id,
1124
+ requestId: row.request_id,
1125
+ generatedAt: row.generated_at,
1126
+ evidenceTier: row.evidence_tier,
1127
+ participantSafeAddress: row.participant_safe_address,
1128
+ participantAgentEoa: row.participant_agent_eoa,
1129
+ executorImplName: row.executor_impl_name,
1130
+ executorImplVersion: row.executor_impl_version,
1131
+ executorRuntimeBundleDigest: row.executor_runtime_bundle_digest,
1132
+ executorPlugins: parseStringArray(row.executor_plugins_json),
1133
+ solutionEnvelopeCid: row.solution_envelope_cid,
1134
+ solutionEnvelopeSha256: row.solution_envelope_sha256,
1135
+ solutionEnvelopeRef: row.solution_envelope_ref,
1136
+ metadata: parseMetadata(row.metadata_json),
1137
+ };
1138
+ }
1139
+ function metadataValueText(value) {
1140
+ return String(value);
1141
+ }
1142
+ function parseStringArray(json) {
1143
+ try {
1144
+ const parsed = JSON.parse(json);
1145
+ return Array.isArray(parsed) ? parsed.filter((value) => typeof value === 'string') : [];
1146
+ }
1147
+ catch {
1148
+ return [];
1149
+ }
1150
+ }
1151
+ function parseMetadata(json) {
1152
+ try {
1153
+ const parsed = JSON.parse(json);
1154
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
1155
+ return {};
1156
+ const out = {};
1157
+ for (const [key, value] of Object.entries(parsed)) {
1158
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
1159
+ out[key] = value;
1160
+ }
1161
+ }
1162
+ return out;
1163
+ }
1164
+ catch {
1165
+ return {};
1166
+ }
1167
+ }
503
1168
  //# sourceMappingURL=store.js.map