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

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