@jinn-network/client 0.1.2 → 0.1.3-canary.2d6b2676

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 (995) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CONTRIBUTING.md +8 -2
  3. package/README.md +68 -42
  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/dist/adapters/adapter.d.ts +7 -7
  10. package/dist/adapters/claim-registry/client.d.ts +9 -0
  11. package/dist/adapters/claim-registry/client.js +22 -2
  12. package/dist/adapters/claim-registry/client.js.map +1 -1
  13. package/dist/adapters/local/adapter.d.ts +4 -4
  14. package/dist/adapters/local/adapter.js +10 -10
  15. package/dist/adapters/local/adapter.js.map +1 -1
  16. package/dist/adapters/mech/adapter.d.ts +8 -6
  17. package/dist/adapters/mech/adapter.js +159 -95
  18. package/dist/adapters/mech/adapter.js.map +1 -1
  19. package/dist/adapters/mech/contracts.d.ts +8 -6
  20. package/dist/adapters/mech/contracts.js +119 -15
  21. package/dist/adapters/mech/contracts.js.map +1 -1
  22. package/dist/adapters/mech/ipfs.d.ts +66 -12
  23. package/dist/adapters/mech/ipfs.js +165 -30
  24. package/dist/adapters/mech/ipfs.js.map +1 -1
  25. package/dist/adapters/mech/safe-revert.d.ts +39 -0
  26. package/dist/adapters/mech/safe-revert.js +130 -0
  27. package/dist/adapters/mech/safe-revert.js.map +1 -0
  28. package/dist/adapters/mech/safe.js +48 -22
  29. package/dist/adapters/mech/safe.js.map +1 -1
  30. package/dist/adapters/mech/types.d.ts +8 -0
  31. package/dist/adapters/mech/types.js.map +1 -1
  32. package/dist/agent/agent-ws.d.ts +55 -0
  33. package/dist/agent/agent-ws.js +288 -0
  34. package/dist/agent/agent-ws.js.map +1 -0
  35. package/dist/agent/auto-mode-detect.d.ts +6 -0
  36. package/dist/agent/auto-mode-detect.js +44 -0
  37. package/dist/agent/auto-mode-detect.js.map +1 -0
  38. package/dist/agent/operator-claude.d.ts +22 -0
  39. package/dist/agent/operator-claude.js +130 -0
  40. package/dist/agent/operator-claude.js.map +1 -0
  41. package/dist/api/admin-endpoint.d.ts +12 -0
  42. package/dist/api/admin-endpoint.js +71 -0
  43. package/dist/api/admin-endpoint.js.map +1 -0
  44. package/dist/api/bootstrap-endpoint.d.ts +16 -0
  45. package/dist/api/bootstrap-endpoint.js +78 -0
  46. package/dist/api/bootstrap-endpoint.js.map +1 -0
  47. package/dist/api/events-endpoint.d.ts +9 -0
  48. package/dist/api/events-endpoint.js +46 -0
  49. package/dist/api/events-endpoint.js.map +1 -0
  50. package/dist/api/fleet-build.d.ts +1 -1
  51. package/dist/api/fleet-build.js +17 -8
  52. package/dist/api/fleet-build.js.map +1 -1
  53. package/dist/api/gather-status.js +6 -2
  54. package/dist/api/gather-status.js.map +1 -1
  55. package/dist/api/handshake.d.ts +17 -0
  56. package/dist/api/handshake.js +28 -0
  57. package/dist/api/handshake.js.map +1 -0
  58. package/dist/api/history-build.d.ts +2 -2
  59. package/dist/api/history-build.js +3 -3
  60. package/dist/api/history-build.js.map +1 -1
  61. package/dist/api/peers.js +21 -6
  62. package/dist/api/peers.js.map +1 -1
  63. package/dist/api/portfolio-v0-build.d.ts +16 -10
  64. package/dist/api/portfolio-v0-build.js +36 -31
  65. package/dist/api/portfolio-v0-build.js.map +1 -1
  66. package/dist/api/portfolio-v0-doctor.js +1 -1
  67. package/dist/api/portfolio-v0-doctor.js.map +1 -1
  68. package/dist/api/rewards-build.js +3 -8
  69. package/dist/api/rewards-build.js.map +1 -1
  70. package/dist/api/server.d.ts +55 -1
  71. package/dist/api/server.js +243 -17
  72. package/dist/api/server.js.map +1 -1
  73. package/dist/api/setup-endpoints.d.ts +34 -0
  74. package/dist/api/setup-endpoints.js +188 -0
  75. package/dist/api/setup-endpoints.js.map +1 -0
  76. package/dist/api/status-build.d.ts +10 -2
  77. package/dist/api/status-build.js +44 -9
  78. package/dist/api/status-build.js.map +1 -1
  79. package/dist/api/status-rollup-build.d.ts +46 -1
  80. package/dist/api/status-rollup-build.js +168 -5
  81. package/dist/api/status-rollup-build.js.map +1 -1
  82. package/dist/api/ui-token.d.ts +5 -0
  83. package/dist/api/ui-token.js +36 -0
  84. package/dist/api/ui-token.js.map +1 -0
  85. package/dist/build-info.d.ts +32 -0
  86. package/dist/build-info.js +69 -0
  87. package/dist/build-info.js.map +1 -0
  88. package/dist/build-info.json +6 -0
  89. package/dist/build-meta.json +1 -1
  90. package/dist/cli/command.d.ts +9 -0
  91. package/dist/cli/commands/balance.d.ts +7 -0
  92. package/dist/cli/commands/balance.js +38 -32
  93. package/dist/cli/commands/balance.js.map +1 -1
  94. package/dist/cli/commands/bootstrap.d.ts +13 -1
  95. package/dist/cli/commands/bootstrap.js +150 -132
  96. package/dist/cli/commands/bootstrap.js.map +1 -1
  97. package/dist/cli/commands/claim-rewards.js +14 -2
  98. package/dist/cli/commands/claim-rewards.js.map +1 -1
  99. package/dist/cli/commands/conformance.d.ts +12 -0
  100. package/dist/cli/commands/conformance.js +140 -0
  101. package/dist/cli/commands/conformance.js.map +1 -0
  102. package/dist/cli/commands/create.d.ts +22 -0
  103. package/dist/cli/commands/create.js +226 -0
  104. package/dist/cli/commands/create.js.map +1 -0
  105. package/dist/cli/commands/doctor.d.ts +34 -1
  106. package/dist/cli/commands/doctor.js +138 -123
  107. package/dist/cli/commands/doctor.js.map +1 -1
  108. package/dist/cli/commands/fleet-scale.d.ts +19 -1
  109. package/dist/cli/commands/fleet-scale.js +379 -361
  110. package/dist/cli/commands/fleet-scale.js.map +1 -1
  111. package/dist/cli/commands/fleet.d.ts +7 -0
  112. package/dist/cli/commands/fleet.js +39 -33
  113. package/dist/cli/commands/fleet.js.map +1 -1
  114. package/dist/cli/commands/fund-requirements.d.ts +14 -1
  115. package/dist/cli/commands/fund-requirements.js +183 -174
  116. package/dist/cli/commands/fund-requirements.js.map +1 -1
  117. package/dist/cli/commands/harnesses.d.ts +18 -0
  118. package/dist/cli/commands/harnesses.js +208 -0
  119. package/dist/cli/commands/harnesses.js.map +1 -0
  120. package/dist/cli/commands/history.d.ts +10 -1
  121. package/dist/cli/commands/history.js +68 -59
  122. package/dist/cli/commands/history.js.map +1 -1
  123. package/dist/cli/commands/init.js +4 -1
  124. package/dist/cli/commands/init.js.map +1 -1
  125. package/dist/cli/commands/integrations.d.ts +13 -0
  126. package/dist/cli/commands/{plugin-install.js → integrations.js} +240 -33
  127. package/dist/cli/commands/integrations.js.map +1 -0
  128. package/dist/cli/commands/logs.d.ts +6 -1
  129. package/dist/cli/commands/logs.js +77 -70
  130. package/dist/cli/commands/logs.js.map +1 -1
  131. package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
  132. package/dist/cli/commands/migrate-agent-id.js +165 -0
  133. package/dist/cli/commands/migrate-agent-id.js.map +1 -0
  134. package/dist/cli/commands/quickstart.d.ts +51 -1
  135. package/dist/cli/commands/quickstart.js +514 -296
  136. package/dist/cli/commands/quickstart.js.map +1 -1
  137. package/dist/cli/commands/rewards.d.ts +7 -0
  138. package/dist/cli/commands/rewards.js +46 -40
  139. package/dist/cli/commands/rewards.js.map +1 -1
  140. package/dist/cli/commands/run.d.ts +14 -1
  141. package/dist/cli/commands/run.js +233 -91
  142. package/dist/cli/commands/run.js.map +1 -1
  143. package/dist/cli/commands/solver-nets.js +207 -0
  144. package/dist/cli/commands/solver-nets.js.map +1 -0
  145. package/dist/cli/commands/solver-plugins.d.ts +9 -0
  146. package/dist/cli/commands/solver-plugins.js +184 -0
  147. package/dist/cli/commands/solver-plugins.js.map +1 -0
  148. package/dist/cli/commands/status.d.ts +10 -0
  149. package/dist/cli/commands/status.js +97 -34
  150. package/dist/cli/commands/status.js.map +1 -1
  151. package/dist/cli/commands/tasks.js +365 -0
  152. package/dist/cli/commands/tasks.js.map +1 -0
  153. package/dist/cli/commands/ui.d.ts +3 -0
  154. package/dist/cli/commands/ui.js +45 -0
  155. package/dist/cli/commands/ui.js.map +1 -0
  156. package/dist/cli/commands/update.d.ts +5 -0
  157. package/dist/cli/commands/update.js +110 -105
  158. package/dist/cli/commands/update.js.map +1 -1
  159. package/dist/cli/commands/version.js +3 -1
  160. package/dist/cli/commands/version.js.map +1 -1
  161. package/dist/cli/commands/withdraw.d.ts +21 -1
  162. package/dist/cli/commands/withdraw.js +175 -159
  163. package/dist/cli/commands/withdraw.js.map +1 -1
  164. package/dist/cli/execution-context.d.ts +1 -1
  165. package/dist/cli/execution-context.js +4 -3
  166. package/dist/cli/execution-context.js.map +1 -1
  167. package/dist/cli/help.js +8 -1
  168. package/dist/cli/help.js.map +1 -1
  169. package/dist/cli/index.d.ts +7 -0
  170. package/dist/cli/index.js +24 -6
  171. package/dist/cli/index.js.map +1 -1
  172. package/dist/cli/open-browser.d.ts +1 -0
  173. package/dist/cli/open-browser.js +18 -0
  174. package/dist/cli/open-browser.js.map +1 -0
  175. package/dist/cli/password.d.ts +3 -3
  176. package/dist/cli/password.js +6 -6
  177. package/dist/cli/password.js.map +1 -1
  178. package/dist/config.d.ts +1232 -53
  179. package/dist/config.js +558 -24
  180. package/dist/config.js.map +1 -1
  181. package/dist/conformance/checks/artifacts.d.ts +37 -0
  182. package/dist/conformance/checks/artifacts.js +110 -0
  183. package/dist/conformance/checks/artifacts.js.map +1 -0
  184. package/dist/conformance/checks/envelope-schema.d.ts +17 -0
  185. package/dist/conformance/checks/envelope-schema.js +36 -0
  186. package/dist/conformance/checks/envelope-schema.js.map +1 -0
  187. package/dist/conformance/checks/hash-signature.d.ts +26 -0
  188. package/dist/conformance/checks/hash-signature.js +70 -0
  189. package/dist/conformance/checks/hash-signature.js.map +1 -0
  190. package/dist/conformance/checks/payload.d.ts +19 -0
  191. package/dist/conformance/checks/payload.js +52 -0
  192. package/dist/conformance/checks/payload.js.map +1 -0
  193. package/dist/conformance/checks/secret-scrub.d.ts +33 -0
  194. package/dist/conformance/checks/secret-scrub.js +118 -0
  195. package/dist/conformance/checks/secret-scrub.js.map +1 -0
  196. package/dist/conformance/checks/source-runtime.d.ts +43 -0
  197. package/dist/conformance/checks/source-runtime.js +68 -0
  198. package/dist/conformance/checks/source-runtime.js.map +1 -0
  199. package/dist/conformance/checks/source-static.d.ts +61 -0
  200. package/dist/conformance/checks/source-static.js +311 -0
  201. package/dist/conformance/checks/source-static.js.map +1 -0
  202. package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
  203. package/dist/conformance/checks/trajectory-chain.js +51 -0
  204. package/dist/conformance/checks/trajectory-chain.js.map +1 -0
  205. package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
  206. package/dist/conformance/checks/trajectory-profile.js +51 -0
  207. package/dist/conformance/checks/trajectory-profile.js.map +1 -0
  208. package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
  209. package/dist/conformance/checks/trajectory-schema.js +40 -0
  210. package/dist/conformance/checks/trajectory-schema.js.map +1 -0
  211. package/dist/conformance/checks/verdict.d.ts +44 -0
  212. package/dist/conformance/checks/verdict.js +122 -0
  213. package/dist/conformance/checks/verdict.js.map +1 -0
  214. package/dist/conformance/harness.d.ts +32 -0
  215. package/dist/conformance/harness.js +227 -0
  216. package/dist/conformance/harness.js.map +1 -0
  217. package/dist/conformance/types.d.ts +88 -0
  218. package/dist/conformance/types.js +31 -0
  219. package/dist/conformance/types.js.map +1 -0
  220. package/dist/corpus/acquire.d.ts +37 -0
  221. package/dist/corpus/acquire.js +155 -0
  222. package/dist/corpus/acquire.js.map +1 -0
  223. package/dist/corpus/cache.d.ts +14 -0
  224. package/dist/corpus/cache.js +18 -0
  225. package/dist/corpus/cache.js.map +1 -0
  226. package/dist/corpus/fetch.d.ts +9 -0
  227. package/dist/corpus/fetch.js +24 -0
  228. package/dist/corpus/fetch.js.map +1 -0
  229. package/dist/corpus/index.d.ts +16 -0
  230. package/dist/corpus/index.js +78 -0
  231. package/dist/corpus/index.js.map +1 -0
  232. package/dist/corpus/query.d.ts +17 -0
  233. package/dist/corpus/query.js +108 -0
  234. package/dist/corpus/query.js.map +1 -0
  235. package/dist/corpus/route-resolver.d.ts +16 -0
  236. package/dist/corpus/route-resolver.js +20 -0
  237. package/dist/corpus/route-resolver.js.map +1 -0
  238. package/dist/corpus/types.d.ts +108 -0
  239. package/dist/corpus/types.js +50 -0
  240. package/dist/corpus/types.js.map +1 -0
  241. package/dist/daemon/balance-topup-loop.js +2 -1
  242. package/dist/daemon/balance-topup-loop.js.map +1 -1
  243. package/dist/daemon/creator.d.ts +5 -5
  244. package/dist/daemon/creator.js +8 -11
  245. package/dist/daemon/creator.js.map +1 -1
  246. package/dist/daemon/daemon.d.ts +84 -29
  247. package/dist/daemon/daemon.js +181 -63
  248. package/dist/daemon/daemon.js.map +1 -1
  249. package/dist/daemon/delivery-watcher.js +34 -4
  250. package/dist/daemon/delivery-watcher.js.map +1 -1
  251. package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
  252. package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
  253. package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
  254. package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
  255. package/dist/daemon/jinn-claim-loop-mock.js +122 -0
  256. package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
  257. package/dist/daemon/jinn-claim-loop.d.ts +123 -0
  258. package/dist/daemon/jinn-claim-loop.js +256 -0
  259. package/dist/daemon/jinn-claim-loop.js.map +1 -0
  260. package/dist/daemon/reward-claim-loop.d.ts +2 -0
  261. package/dist/daemon/reward-claim-loop.js +32 -27
  262. package/dist/daemon/reward-claim-loop.js.map +1 -1
  263. package/dist/dashboard/assets/index-Bxlk5qpa.js +68 -0
  264. package/dist/dashboard/assets/index-DQ3u_vP5.css +32 -0
  265. package/dist/dashboard/index.html +18 -74
  266. package/dist/earning/agent-wallet-binding.d.ts +133 -0
  267. package/dist/earning/agent-wallet-binding.js +202 -0
  268. package/dist/earning/agent-wallet-binding.js.map +1 -0
  269. package/dist/earning/bootstrap.d.ts +64 -0
  270. package/dist/earning/bootstrap.js +325 -32
  271. package/dist/earning/bootstrap.js.map +1 -1
  272. package/dist/earning/contracts.d.ts +323 -0
  273. package/dist/earning/contracts.js +276 -0
  274. package/dist/earning/contracts.js.map +1 -1
  275. package/dist/earning/evidence-simhash.d.ts +1 -1
  276. package/dist/earning/funding-plan.d.ts +90 -0
  277. package/dist/earning/funding-plan.js +203 -0
  278. package/dist/earning/funding-plan.js.map +1 -0
  279. package/dist/earning/migrate-agent-id.d.ts +130 -0
  280. package/dist/earning/migrate-agent-id.js +257 -0
  281. package/dist/earning/migrate-agent-id.js.map +1 -0
  282. package/dist/earning/orphan-sweep.d.ts +14 -0
  283. package/dist/earning/orphan-sweep.js +63 -2
  284. package/dist/earning/orphan-sweep.js.map +1 -1
  285. package/dist/earning/reconcile.d.ts +2 -0
  286. package/dist/earning/reconcile.js +30 -0
  287. package/dist/earning/reconcile.js.map +1 -1
  288. package/dist/earning/stolas-claim.d.ts +86 -6
  289. package/dist/earning/stolas-claim.js +123 -9
  290. package/dist/earning/stolas-claim.js.map +1 -1
  291. package/dist/earning/store.d.ts +39 -0
  292. package/dist/earning/store.js +72 -1
  293. package/dist/earning/store.js.map +1 -1
  294. package/dist/earning/testnet-setup-migration.d.ts +32 -0
  295. package/dist/earning/testnet-setup-migration.js +214 -0
  296. package/dist/earning/testnet-setup-migration.js.map +1 -0
  297. package/dist/earning/types.d.ts +53 -9
  298. package/dist/earning/types.js +51 -2
  299. package/dist/earning/types.js.map +1 -1
  300. package/dist/earning/viem-clients.d.ts +20 -0
  301. package/dist/earning/viem-clients.js +32 -1
  302. package/dist/earning/viem-clients.js.map +1 -1
  303. package/dist/erc8004/abis.d.ts +381 -0
  304. package/dist/erc8004/abis.js +238 -0
  305. package/dist/erc8004/abis.js.map +1 -0
  306. package/dist/erc8004/addresses.d.ts +40 -0
  307. package/dist/erc8004/addresses.js +64 -0
  308. package/dist/erc8004/addresses.js.map +1 -0
  309. package/dist/erc8004/identity.d.ts +202 -0
  310. package/dist/erc8004/identity.js +305 -0
  311. package/dist/erc8004/identity.js.map +1 -0
  312. package/dist/erc8004/index.d.ts +13 -0
  313. package/dist/erc8004/index.js +20 -0
  314. package/dist/erc8004/index.js.map +1 -0
  315. package/dist/erc8004/reputation.d.ts +349 -0
  316. package/dist/erc8004/reputation.js +464 -0
  317. package/dist/erc8004/reputation.js.map +1 -0
  318. package/dist/erc8004/subgraph.d.ts +46 -0
  319. package/dist/erc8004/subgraph.js +37 -0
  320. package/dist/erc8004/subgraph.js.map +1 -0
  321. package/dist/erc8004/validation.d.ts +145 -0
  322. package/dist/erc8004/validation.js +219 -0
  323. package/dist/erc8004/validation.js.map +1 -0
  324. package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
  325. package/dist/errors/persisted-bootstrap-error.js +50 -0
  326. package/dist/errors/persisted-bootstrap-error.js.map +1 -0
  327. package/dist/events/emitter.d.ts +12 -0
  328. package/dist/events/emitter.js +23 -0
  329. package/dist/events/emitter.js.map +1 -0
  330. package/dist/events/ring-buffer.d.ts +25 -0
  331. package/dist/events/ring-buffer.js +46 -0
  332. package/dist/events/ring-buffer.js.map +1 -0
  333. package/dist/events/types.d.ts +42 -0
  334. package/dist/events/types.js +28 -0
  335. package/dist/events/types.js.map +1 -0
  336. package/dist/harnesses/capability/index.d.ts +82 -0
  337. package/dist/harnesses/capability/index.js +12 -0
  338. package/dist/harnesses/capability/index.js.map +1 -0
  339. package/dist/harnesses/capability/scoped-rpc.d.ts +12 -0
  340. package/dist/harnesses/capability/scoped-rpc.js +34 -0
  341. package/dist/harnesses/capability/scoped-rpc.js.map +1 -0
  342. package/dist/harnesses/capability/scoped-secrets.d.ts +8 -0
  343. package/dist/harnesses/capability/scoped-secrets.js +10 -0
  344. package/dist/harnesses/capability/scoped-secrets.js.map +1 -0
  345. package/dist/harnesses/capability/scoped-signer.d.ts +46 -0
  346. package/dist/harnesses/capability/scoped-signer.js +73 -0
  347. package/dist/harnesses/capability/scoped-signer.js.map +1 -0
  348. package/dist/harnesses/engine/canonical-json.d.ts +1 -0
  349. package/dist/harnesses/engine/canonical-json.js +66 -0
  350. package/dist/harnesses/engine/canonical-json.js.map +1 -0
  351. package/dist/{restorer → harnesses}/engine/claim.d.ts +7 -7
  352. package/dist/{restorer → harnesses}/engine/claim.js +14 -7
  353. package/dist/harnesses/engine/claim.js.map +1 -0
  354. package/dist/{restorer → harnesses}/engine/delivery.d.ts +3 -1
  355. package/dist/{restorer → harnesses}/engine/delivery.js +8 -8
  356. package/dist/harnesses/engine/delivery.js.map +1 -0
  357. package/dist/harnesses/engine/engine.d.ts +341 -0
  358. package/dist/harnesses/engine/engine.js +1203 -0
  359. package/dist/harnesses/engine/engine.js.map +1 -0
  360. package/dist/harnesses/engine/envelope-assembly.d.ts +72 -0
  361. package/dist/harnesses/engine/envelope-assembly.js +60 -0
  362. package/dist/harnesses/engine/envelope-assembly.js.map +1 -0
  363. package/dist/harnesses/engine/packaging.d.ts +87 -0
  364. package/dist/{restorer → harnesses}/engine/packaging.js +83 -57
  365. package/dist/harnesses/engine/packaging.js.map +1 -0
  366. package/dist/harnesses/engine/persistence.d.ts +172 -0
  367. package/dist/{restorer → harnesses}/engine/persistence.js +78 -71
  368. package/dist/harnesses/engine/persistence.js.map +1 -0
  369. package/dist/harnesses/engine/recovery.d.ts +22 -0
  370. package/dist/{restorer → harnesses}/engine/recovery.js +5 -5
  371. package/dist/harnesses/engine/recovery.js.map +1 -0
  372. package/dist/harnesses/engine/registry.d.ts +53 -0
  373. package/dist/harnesses/engine/registry.js +62 -0
  374. package/dist/harnesses/engine/registry.js.map +1 -0
  375. package/dist/{restorer → harnesses}/engine/signing.d.ts +1 -1
  376. package/dist/{restorer → harnesses}/engine/signing.js +1 -1
  377. package/dist/harnesses/engine/signing.js.map +1 -0
  378. package/dist/{restorer → harnesses}/engine/state.d.ts +8 -8
  379. package/dist/{restorer → harnesses}/engine/state.js +23 -23
  380. package/dist/harnesses/engine/state.js.map +1 -0
  381. package/dist/harnesses/engine/validate-manifest.d.ts +23 -0
  382. package/dist/harnesses/engine/validate-manifest.js +49 -0
  383. package/dist/harnesses/engine/validate-manifest.js.map +1 -0
  384. package/dist/harnesses/engine/verification-stub.d.ts +18 -0
  385. package/dist/harnesses/engine/verification-stub.js +18 -0
  386. package/dist/harnesses/engine/verification-stub.js.map +1 -0
  387. package/dist/harnesses/external-impls/index.d.ts +3 -0
  388. package/dist/harnesses/external-impls/index.js +2 -0
  389. package/dist/harnesses/external-impls/index.js.map +1 -0
  390. package/dist/harnesses/external-impls/loader.d.ts +50 -0
  391. package/dist/harnesses/external-impls/loader.js +139 -0
  392. package/dist/harnesses/external-impls/loader.js.map +1 -0
  393. package/dist/harnesses/external-impls/package-hash.d.ts +26 -0
  394. package/dist/harnesses/external-impls/package-hash.js +102 -0
  395. package/dist/harnesses/external-impls/package-hash.js.map +1 -0
  396. package/dist/harnesses/external-impls/types.d.ts +42 -0
  397. package/dist/harnesses/external-impls/types.js +10 -0
  398. package/dist/harnesses/external-impls/types.js.map +1 -0
  399. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.d.ts +38 -0
  400. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js +159 -0
  401. package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
  402. package/dist/harnesses/impls/claude-code-learner/harness.d.ts +22 -0
  403. package/dist/harnesses/impls/claude-code-learner/harness.js +44 -0
  404. package/dist/harnesses/impls/claude-code-learner/harness.js.map +1 -0
  405. package/dist/harnesses/impls/claude-code-learner/harvest.d.ts +19 -0
  406. package/dist/harnesses/impls/claude-code-learner/harvest.js +146 -0
  407. package/dist/harnesses/impls/claude-code-learner/harvest.js.map +1 -0
  408. package/dist/harnesses/impls/claude-code-learner/index.d.ts +14 -0
  409. package/dist/harnesses/impls/claude-code-learner/index.js +13 -0
  410. package/dist/harnesses/impls/claude-code-learner/index.js.map +1 -0
  411. package/dist/harnesses/impls/claude-code-learner/plugin-path.d.ts +14 -0
  412. package/dist/harnesses/impls/claude-code-learner/plugin-path.js +30 -0
  413. package/dist/harnesses/impls/claude-code-learner/plugin-path.js.map +1 -0
  414. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +19 -0
  415. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +111 -0
  416. package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
  417. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
  418. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
  419. package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
  420. package/dist/harnesses/impls/claude-code-learner/types.d.ts +102 -0
  421. package/dist/harnesses/impls/claude-code-learner/types.js.map +1 -0
  422. package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/api-wallet.d.ts +1 -1
  423. package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  424. package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/index.d.ts +16 -14
  425. package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/index.js +62 -61
  426. package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  427. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  428. package/dist/harnesses/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  429. package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +7 -0
  430. package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/session-orchestrator.js +38 -0
  431. package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  432. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/index.d.ts +11 -11
  433. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/index.js +26 -16
  434. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -0
  435. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/mcp-tools.js +1 -1
  436. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
  437. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/prompt.d.ts +2 -2
  438. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/prompt.js +5 -5
  439. package/dist/harnesses/impls/claude-mcp-prediction/prompt.js.map +1 -0
  440. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/session-orchestrator.d.ts +9 -2
  441. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +21 -0
  442. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
  443. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/types.d.ts +3 -3
  444. package/dist/harnesses/impls/claude-mcp-prediction/types.js +6 -0
  445. package/dist/harnesses/impls/claude-mcp-prediction/types.js.map +1 -0
  446. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.d.ts +36 -0
  447. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/index.js +22 -15
  448. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  449. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/mcp-tools.js +1 -1
  450. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  451. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  452. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/prompt.js +5 -5
  453. package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  454. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +10 -0
  455. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +19 -0
  456. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  457. package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/types.d.ts +1 -1
  458. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js +6 -0
  459. package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  460. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
  461. package/dist/{restorer/impls/claude-mcp-prediction/session-orchestrator.js → harnesses/impls/claude-mcp-shared/single-session-orchestrator.js} +85 -16
  462. package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
  463. package/dist/harnesses/impls/evaluation-context.d.ts +23 -0
  464. package/dist/harnesses/impls/evaluation-context.js +25 -0
  465. package/dist/harnesses/impls/evaluation-context.js.map +1 -0
  466. package/dist/harnesses/impls/index.d.ts +74 -0
  467. package/dist/{restorer → harnesses}/impls/index.js +32 -7
  468. package/dist/harnesses/impls/index.js.map +1 -0
  469. package/dist/harnesses/impls/legacy-claude/index.d.ts +66 -0
  470. package/dist/{restorer → harnesses}/impls/legacy-claude/index.js +47 -19
  471. package/dist/harnesses/impls/legacy-claude/index.js.map +1 -0
  472. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +2 -2
  473. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/canonical-metrics.js +2 -2
  474. package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  475. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  476. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/consistency.d.ts +1 -1
  477. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/consistency.js +1 -1
  478. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  479. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +2 -2
  480. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/eligibility.js +2 -2
  481. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  482. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/integrity.d.ts +2 -2
  483. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/integrity.js +2 -2
  484. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  485. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/spec.d.ts +2 -2
  486. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/spec.js +2 -2
  487. package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  488. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +44 -0
  489. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/index.js +217 -88
  490. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -0
  491. package/dist/harnesses/impls/portfolio-v0-evaluator/score.js.map +1 -0
  492. package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/types.d.ts +1 -1
  493. package/dist/harnesses/impls/portfolio-v0-evaluator/types.js.map +1 -0
  494. package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/index.d.ts +10 -8
  495. package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/index.js +15 -8
  496. package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js.map +1 -0
  497. package/dist/harnesses/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
  498. package/dist/harnesses/impls/prediction-apy-v0-baseline/types.js.map +1 -0
  499. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
  500. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
  501. package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
  502. package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/index.d.ts +9 -9
  503. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +346 -0
  504. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
  505. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +16 -0
  506. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js +22 -0
  507. package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  508. package/dist/harnesses/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
  509. package/dist/harnesses/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
  510. package/dist/harnesses/impls/prediction-v0-baseline/index.d.ts +33 -0
  511. package/dist/{restorer → harnesses}/impls/prediction-v0-baseline/index.js +25 -16
  512. package/dist/harnesses/impls/prediction-v0-baseline/index.js.map +1 -0
  513. package/dist/{restorer → harnesses}/impls/prediction-v0-baseline/strategy.d.ts +2 -2
  514. package/dist/{restorer → harnesses}/impls/prediction-v0-baseline/strategy.js +2 -2
  515. package/dist/harnesses/impls/prediction-v0-baseline/strategy.js.map +1 -0
  516. package/dist/harnesses/impls/prediction-v0-baseline/types.d.ts +7 -0
  517. package/dist/harnesses/impls/prediction-v0-baseline/types.js.map +1 -0
  518. package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/canonical-metrics.d.ts +2 -2
  519. package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  520. package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  521. package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/eligibility.d.ts +1 -1
  522. package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  523. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.d.ts +15 -0
  524. package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/integrity.js +12 -12
  525. package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  526. package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/spec.d.ts +2 -2
  527. package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  528. package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/index.d.ts +10 -10
  529. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +342 -0
  530. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -0
  531. package/dist/harnesses/impls/prediction-v0-evaluator/score.js.map +1 -0
  532. package/dist/harnesses/impls/prediction-v0-evaluator/types.js +2 -0
  533. package/dist/harnesses/impls/prediction-v0-evaluator/types.js.map +1 -0
  534. package/dist/harnesses/manifest/index.d.ts +3 -0
  535. package/dist/harnesses/manifest/index.js +3 -0
  536. package/dist/harnesses/manifest/index.js.map +1 -0
  537. package/dist/harnesses/manifest/load.d.ts +7 -0
  538. package/dist/harnesses/manifest/load.js +49 -0
  539. package/dist/harnesses/manifest/load.js.map +1 -0
  540. package/dist/harnesses/manifest/types.d.ts +75 -0
  541. package/dist/harnesses/manifest/types.js +8 -0
  542. package/dist/harnesses/manifest/types.js.map +1 -0
  543. package/dist/harnesses/manifest/verify.d.ts +15 -0
  544. package/dist/harnesses/manifest/verify.js +53 -0
  545. package/dist/harnesses/manifest/verify.js.map +1 -0
  546. package/dist/harnesses/types.d.ts +263 -0
  547. package/dist/{restorer → harnesses}/types.js +3 -3
  548. package/dist/harnesses/types.js.map +1 -0
  549. package/dist/index.d.ts +1 -1
  550. package/dist/main.d.ts +5 -2
  551. package/dist/main.js +793 -96
  552. package/dist/main.js.map +1 -1
  553. package/dist/mcp/acquire-artifact.d.ts +39 -0
  554. package/dist/mcp/acquire-artifact.js +163 -0
  555. package/dist/mcp/acquire-artifact.js.map +1 -0
  556. package/dist/mcp/operator-server.d.ts +21 -4
  557. package/dist/mcp/operator-server.js +505 -30
  558. package/dist/mcp/operator-server.js.map +1 -1
  559. package/dist/mcp/search-artifacts.d.ts +31 -0
  560. package/dist/mcp/search-artifacts.js +40 -0
  561. package/dist/mcp/search-artifacts.js.map +1 -0
  562. package/dist/mcp/server.d.ts +4 -4
  563. package/dist/mcp/server.js +110 -64
  564. package/dist/mcp/server.js.map +1 -1
  565. package/dist/observability/emit-event.d.ts +2 -2
  566. package/dist/observability/emit-event.js +2 -2
  567. package/dist/observability/emit-event.js.map +1 -1
  568. package/dist/operator-errors.js +4 -5
  569. package/dist/operator-errors.js.map +1 -1
  570. package/dist/plugins/digest.d.ts +1 -0
  571. package/dist/plugins/digest.js +28 -0
  572. package/dist/plugins/digest.js.map +1 -0
  573. package/dist/plugins/index.d.ts +6 -0
  574. package/dist/plugins/index.js +6 -0
  575. package/dist/plugins/index.js.map +1 -0
  576. package/dist/plugins/manifest.d.ts +7 -0
  577. package/dist/plugins/manifest.js +22 -0
  578. package/dist/plugins/manifest.js.map +1 -0
  579. package/dist/plugins/registry.d.ts +9 -0
  580. package/dist/plugins/registry.js +24 -0
  581. package/dist/plugins/registry.js.map +1 -0
  582. package/dist/plugins/resolvers.d.ts +2 -0
  583. package/dist/plugins/resolvers.js +87 -0
  584. package/dist/plugins/resolvers.js.map +1 -0
  585. package/dist/plugins/types.d.ts +39 -0
  586. package/dist/plugins/types.js +2 -0
  587. package/dist/plugins/types.js.map +1 -0
  588. package/dist/plugins/validator.d.ts +3 -0
  589. package/dist/plugins/validator.js +44 -0
  590. package/dist/plugins/validator.js.map +1 -0
  591. package/dist/preflight/claude-auth.d.ts +11 -11
  592. package/dist/preflight/claude-auth.js +18 -32
  593. package/dist/preflight/claude-auth.js.map +1 -1
  594. package/dist/runner/claude.d.ts +3 -3
  595. package/dist/runner/claude.js +62 -26
  596. package/dist/runner/claude.js.map +1 -1
  597. package/dist/runner/runner.d.ts +29 -2
  598. package/dist/runner/simple.d.ts +2 -2
  599. package/dist/runner/simple.js +2 -2
  600. package/dist/runner/simple.js.map +1 -1
  601. package/dist/scripts/fix-node-pty.mjs +62 -0
  602. package/dist/setup-mode.d.ts +34 -0
  603. package/dist/setup-mode.js +49 -0
  604. package/dist/setup-mode.js.map +1 -0
  605. package/dist/solver-nets/registry.d.ts +33 -0
  606. package/dist/solver-nets/registry.js +66 -0
  607. package/dist/solver-nets/registry.js.map +1 -0
  608. package/dist/solver-types/constants.js.map +1 -0
  609. package/dist/solver-types/index.d.ts +38 -0
  610. package/dist/solver-types/index.js +57 -0
  611. package/dist/solver-types/index.js.map +1 -0
  612. package/dist/solver-types/learner-loop-test.d.ts +2 -0
  613. package/dist/solver-types/learner-loop-test.js +39 -0
  614. package/dist/solver-types/learner-loop-test.js.map +1 -0
  615. package/dist/solver-types/portfolio-v0.d.ts +2 -0
  616. package/dist/solver-types/portfolio-v0.js +13 -0
  617. package/dist/solver-types/portfolio-v0.js.map +1 -0
  618. package/dist/solver-types/prediction-apy-v0-auto.d.ts +21 -0
  619. package/dist/solver-types/prediction-apy-v0-auto.js +80 -0
  620. package/dist/solver-types/prediction-apy-v0-auto.js.map +1 -0
  621. package/dist/{intents → solver-types}/prediction-apy-v0-template.d.ts +2 -2
  622. package/dist/{intents → solver-types}/prediction-apy-v0-template.js +2 -2
  623. package/dist/solver-types/prediction-apy-v0-template.js.map +1 -0
  624. package/dist/solver-types/prediction-apy-v0.d.ts +3 -0
  625. package/dist/solver-types/prediction-apy-v0.js +25 -0
  626. package/dist/solver-types/prediction-apy-v0.js.map +1 -0
  627. package/dist/{intents → solver-types}/prediction-v0-auto.d.ts +17 -7
  628. package/dist/{intents → solver-types}/prediction-v0-auto.js +41 -8
  629. package/dist/solver-types/prediction-v0-auto.js.map +1 -0
  630. package/dist/{intents → solver-types}/prediction-v0-template.d.ts +9 -9
  631. package/dist/{intents → solver-types}/prediction-v0-template.js +10 -10
  632. package/dist/solver-types/prediction-v0-template.js.map +1 -0
  633. package/dist/solver-types/prediction-v0.d.ts +3 -0
  634. package/dist/{intents/kinds → solver-types}/prediction-v0.js +11 -6
  635. package/dist/solver-types/prediction-v0.js.map +1 -0
  636. package/dist/solver-types/solver-type.d.ts +55 -0
  637. package/dist/solver-types/solver-type.js +6 -0
  638. package/dist/solver-types/solver-type.js.map +1 -0
  639. package/dist/store/store.d.ts +97 -21
  640. package/dist/store/store.js +228 -45
  641. package/dist/store/store.js.map +1 -1
  642. package/dist/tasks/posting-service.d.ts +22 -0
  643. package/dist/tasks/posting-service.js +143 -0
  644. package/dist/tasks/posting-service.js.map +1 -0
  645. package/dist/tasks/signing.d.ts +4 -0
  646. package/dist/tasks/signing.js +18 -0
  647. package/dist/tasks/signing.js.map +1 -0
  648. package/dist/tasks/sources.d.ts +46 -0
  649. package/dist/tasks/sources.js +42 -0
  650. package/dist/tasks/sources.js.map +1 -0
  651. package/dist/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  652. package/dist/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  653. package/dist/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  654. package/dist/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  655. package/dist/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  656. package/dist/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  657. package/dist/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  658. package/dist/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  659. package/dist/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  660. package/dist/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  661. package/dist/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  662. package/dist/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  663. package/dist/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  664. package/dist/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  665. package/dist/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  666. package/dist/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  667. package/dist/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  668. package/dist/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  669. package/dist/templates/harnesses/evaluator/README.md.tmpl +36 -0
  670. package/dist/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  671. package/dist/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  672. package/dist/templates/harnesses/evaluator/package.json.tmpl +26 -0
  673. package/dist/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  674. package/dist/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  675. package/dist/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  676. package/dist/templates/harnesses/forecaster/README.md.tmpl +25 -0
  677. package/dist/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  678. package/dist/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  679. package/dist/templates/harnesses/forecaster/package.json.tmpl +26 -0
  680. package/dist/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  681. package/dist/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  682. package/dist/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  683. package/dist/trajectory/collector.d.ts +49 -0
  684. package/dist/trajectory/collector.js +86 -0
  685. package/dist/trajectory/collector.js.map +1 -0
  686. package/dist/trajectory/emit.d.ts +27 -0
  687. package/dist/trajectory/emit.js +40 -0
  688. package/dist/trajectory/emit.js.map +1 -0
  689. package/dist/trajectory/hash-chain.d.ts +18 -0
  690. package/dist/trajectory/hash-chain.js +23 -0
  691. package/dist/trajectory/hash-chain.js.map +1 -0
  692. package/dist/trajectory/index.d.ts +22 -0
  693. package/dist/trajectory/index.js +23 -0
  694. package/dist/trajectory/index.js.map +1 -0
  695. package/dist/trajectory/schema.d.ts +14 -14
  696. package/dist/trajectory/secret-scrub.d.ts +32 -0
  697. package/dist/trajectory/secret-scrub.js +51 -0
  698. package/dist/trajectory/secret-scrub.js.map +1 -0
  699. package/dist/trajectory/span-profile.d.ts +27 -0
  700. package/dist/trajectory/span-profile.js +51 -0
  701. package/dist/trajectory/span-profile.js.map +1 -0
  702. package/dist/trajectory/wrappers/http.d.ts +37 -0
  703. package/dist/trajectory/wrappers/http.js +85 -0
  704. package/dist/trajectory/wrappers/http.js.map +1 -0
  705. package/dist/trajectory/wrappers/mcp.d.ts +17 -0
  706. package/dist/trajectory/wrappers/mcp.js +58 -0
  707. package/dist/trajectory/wrappers/mcp.js.map +1 -0
  708. package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
  709. package/dist/trajectory/wrappers/subprocess.js +70 -0
  710. package/dist/trajectory/wrappers/subprocess.js.map +1 -0
  711. package/dist/tx-retry.js +23 -9
  712. package/dist/tx-retry.js.map +1 -1
  713. package/dist/types/envelope.d.ts +1619 -0
  714. package/dist/types/envelope.js +121 -0
  715. package/dist/types/envelope.js.map +1 -0
  716. package/dist/types/index.d.ts +4 -4
  717. package/dist/types/index.js +4 -4
  718. package/dist/types/index.js.map +1 -1
  719. package/dist/types/payloads/index.d.ts +11 -0
  720. package/dist/types/payloads/index.js +46 -0
  721. package/dist/types/payloads/index.js.map +1 -0
  722. package/dist/types/payloads/portfolio-v0.d.ts +481 -0
  723. package/dist/types/payloads/portfolio-v0.js +94 -0
  724. package/dist/types/payloads/portfolio-v0.js.map +1 -0
  725. package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
  726. package/dist/types/payloads/prediction-apy-v0.js +63 -0
  727. package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
  728. package/dist/types/payloads/prediction-v0.d.ts +262 -0
  729. package/dist/types/payloads/prediction-v0.js +73 -0
  730. package/dist/types/payloads/prediction-v0.js.map +1 -0
  731. package/dist/types/portfolio.d.ts +31 -698
  732. package/dist/types/portfolio.js +20 -110
  733. package/dist/types/portfolio.js.map +1 -1
  734. package/dist/types/prediction-apy.d.ts +26 -366
  735. package/dist/types/prediction-apy.js +12 -68
  736. package/dist/types/prediction-apy.js.map +1 -1
  737. package/dist/types/prediction.d.ts +40 -416
  738. package/dist/types/prediction.js +9 -83
  739. package/dist/types/prediction.js.map +1 -1
  740. package/dist/types/task-document.d.ts +498 -0
  741. package/dist/types/task-document.js +69 -0
  742. package/dist/types/task-document.js.map +1 -0
  743. package/dist/types/task.d.ts +455 -0
  744. package/dist/types/task.js +58 -0
  745. package/dist/types/task.js.map +1 -0
  746. package/dist/types/window.d.ts +12 -0
  747. package/dist/types/window.js +6 -0
  748. package/dist/types/window.js.map +1 -0
  749. package/dist/util/path-safety.d.ts +21 -0
  750. package/dist/util/path-safety.js +28 -0
  751. package/dist/util/path-safety.js.map +1 -0
  752. package/dist/util/redact-rpc-urls.d.ts +5 -0
  753. package/dist/util/redact-rpc-urls.js +9 -0
  754. package/dist/util/redact-rpc-urls.js.map +1 -0
  755. package/dist/venues/hyperliquid/account-value.d.ts +1 -1
  756. package/dist/venues/hyperliquid/account-value.js +1 -1
  757. package/dist/x402/acquire.d.ts +14 -3
  758. package/dist/x402/acquire.js +28 -11
  759. package/dist/x402/acquire.js.map +1 -1
  760. package/dist/x402/handler.d.ts +15 -3
  761. package/dist/x402/handler.js +67 -24
  762. package/dist/x402/handler.js.map +1 -1
  763. package/package.json +38 -13
  764. package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
  765. package/plugins/claude-code-learner/AGENTS.md +30 -0
  766. package/plugins/claude-code-learner/CLAUDE.md +31 -0
  767. package/plugins/claude-code-learner/README.md +58 -0
  768. package/plugins/claude-code-learner/agents/analyst.md +69 -0
  769. package/plugins/claude-code-learner/agents/consolidator.md +95 -0
  770. package/plugins/claude-code-learner/agents/explorer.md +54 -0
  771. package/plugins/claude-code-learner/agents/planner.md +88 -0
  772. package/plugins/claude-code-learner/agents/promoter.md +114 -0
  773. package/plugins/claude-code-learner/agents/step-worker.md +48 -0
  774. package/plugins/claude-code-learner/agents/strategist.md +86 -0
  775. package/plugins/claude-code-learner/hooks/hooks.json +16 -0
  776. package/plugins/claude-code-learner/hooks/session-start +38 -0
  777. package/plugins/claude-code-learner/skills/coordinator/SKILL.md +111 -0
  778. package/plugins/claude-code-learner/skills/debrief/SKILL.md +63 -0
  779. package/plugins/claude-code-learner/skills/execute/SKILL.md +87 -0
  780. package/plugins/claude-code-learner/skills/improve/SKILL.md +53 -0
  781. package/plugins/claude-code-learner/skills/memory-consolidation/SKILL.md +49 -0
  782. package/plugins/claude-code-learner/skills/orient/SKILL.md +71 -0
  783. package/plugins/claude-code-learner/skills/plan/SKILL.md +50 -0
  784. package/plugins/claude-code-learner/skills/strategize/SKILL.md +53 -0
  785. package/plugins/jinn-prediction-plugin/.claude-plugin/plugin.json +89 -0
  786. package/plugins/jinn-prediction-plugin/mcp/polymarket-server.mjs +2 -0
  787. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-solution.schema.json +12 -0
  788. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-task.schema.json +25 -0
  789. package/plugins/jinn-prediction-plugin/schemas/prediction-v0-verdict.schema.json +11 -0
  790. package/plugins/jinn-prediction-plugin/skills/base-rate-forecasting/SKILL.md +3 -0
  791. package/plugins/jinn-prediction-plugin/skills/calibration/SKILL.md +3 -0
  792. package/skills/jinn-operator/SKILL.md +120 -101
  793. package/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
  794. package/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
  795. package/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
  796. package/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
  797. package/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
  798. package/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
  799. package/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
  800. package/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
  801. package/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
  802. package/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
  803. package/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
  804. package/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
  805. package/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
  806. package/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
  807. package/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
  808. package/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
  809. package/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
  810. package/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
  811. package/templates/harnesses/evaluator/README.md.tmpl +36 -0
  812. package/templates/harnesses/evaluator/gitignore.tmpl +3 -0
  813. package/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
  814. package/templates/harnesses/evaluator/package.json.tmpl +26 -0
  815. package/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
  816. package/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
  817. package/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
  818. package/templates/harnesses/forecaster/README.md.tmpl +25 -0
  819. package/templates/harnesses/forecaster/gitignore.tmpl +5 -0
  820. package/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
  821. package/templates/harnesses/forecaster/package.json.tmpl +26 -0
  822. package/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
  823. package/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
  824. package/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
  825. package/dist/bin/jinn-mcp.d.ts +0 -2
  826. package/dist/bin/jinn-mcp.js +0 -10
  827. package/dist/bin/jinn-mcp.js.map +0 -1
  828. package/dist/cli/commands/intents.d.ts +0 -17
  829. package/dist/cli/commands/intents.js +0 -489
  830. package/dist/cli/commands/intents.js.map +0 -1
  831. package/dist/cli/commands/plugin-install.js.map +0 -1
  832. package/dist/cli/commands/submit-intent.js +0 -245
  833. package/dist/cli/commands/submit-intent.js.map +0 -1
  834. package/dist/cli/intent-registry-access.d.ts +0 -62
  835. package/dist/cli/intent-registry-access.js +0 -165
  836. package/dist/cli/intent-registry-access.js.map +0 -1
  837. package/dist/discovery/registry.d.ts +0 -97
  838. package/dist/discovery/registry.js +0 -177
  839. package/dist/discovery/registry.js.map +0 -1
  840. package/dist/discovery/subgraph.d.ts +0 -37
  841. package/dist/discovery/subgraph.js +0 -87
  842. package/dist/discovery/subgraph.js.map +0 -1
  843. package/dist/intents/kinds/constants.js.map +0 -1
  844. package/dist/intents/kinds/index.d.ts +0 -28
  845. package/dist/intents/kinds/index.js +0 -50
  846. package/dist/intents/kinds/index.js.map +0 -1
  847. package/dist/intents/kinds/portfolio-v0.d.ts +0 -2
  848. package/dist/intents/kinds/portfolio-v0.js +0 -13
  849. package/dist/intents/kinds/portfolio-v0.js.map +0 -1
  850. package/dist/intents/kinds/prediction-apy-v0.d.ts +0 -3
  851. package/dist/intents/kinds/prediction-apy-v0.js +0 -21
  852. package/dist/intents/kinds/prediction-apy-v0.js.map +0 -1
  853. package/dist/intents/kinds/prediction-v0.d.ts +0 -3
  854. package/dist/intents/kinds/prediction-v0.js.map +0 -1
  855. package/dist/intents/kinds/spec-kind.d.ts +0 -38
  856. package/dist/intents/kinds/spec-kind.js +0 -6
  857. package/dist/intents/kinds/spec-kind.js.map +0 -1
  858. package/dist/intents/posting-service.d.ts +0 -26
  859. package/dist/intents/posting-service.js +0 -218
  860. package/dist/intents/posting-service.js.map +0 -1
  861. package/dist/intents/prediction-apy-v0-auto.d.ts +0 -11
  862. package/dist/intents/prediction-apy-v0-auto.js +0 -46
  863. package/dist/intents/prediction-apy-v0-auto.js.map +0 -1
  864. package/dist/intents/prediction-apy-v0-template.js.map +0 -1
  865. package/dist/intents/prediction-v0-auto.js.map +0 -1
  866. package/dist/intents/prediction-v0-template.js.map +0 -1
  867. package/dist/intents/sources.d.ts +0 -39
  868. package/dist/intents/sources.js +0 -42
  869. package/dist/intents/sources.js.map +0 -1
  870. package/dist/restorer/engine/canonical-json.d.ts +0 -18
  871. package/dist/restorer/engine/canonical-json.js +0 -59
  872. package/dist/restorer/engine/canonical-json.js.map +0 -1
  873. package/dist/restorer/engine/claim.js.map +0 -1
  874. package/dist/restorer/engine/delivery.js.map +0 -1
  875. package/dist/restorer/engine/engine.d.ts +0 -213
  876. package/dist/restorer/engine/engine.js +0 -769
  877. package/dist/restorer/engine/engine.js.map +0 -1
  878. package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
  879. package/dist/restorer/engine/manifest-assembly.js +0 -79
  880. package/dist/restorer/engine/manifest-assembly.js.map +0 -1
  881. package/dist/restorer/engine/packaging.d.ts +0 -87
  882. package/dist/restorer/engine/packaging.js.map +0 -1
  883. package/dist/restorer/engine/persistence.d.ts +0 -170
  884. package/dist/restorer/engine/persistence.js.map +0 -1
  885. package/dist/restorer/engine/recovery.d.ts +0 -22
  886. package/dist/restorer/engine/recovery.js.map +0 -1
  887. package/dist/restorer/engine/registry.d.ts +0 -62
  888. package/dist/restorer/engine/registry.js +0 -73
  889. package/dist/restorer/engine/registry.js.map +0 -1
  890. package/dist/restorer/engine/signing.js.map +0 -1
  891. package/dist/restorer/engine/state.js.map +0 -1
  892. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +0 -1
  893. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +0 -1
  894. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +0 -1
  895. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +0 -1
  896. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +0 -1
  897. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +0 -1
  898. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +0 -1
  899. package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +0 -1
  900. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +0 -1
  901. package/dist/restorer/impls/claude-mcp-prediction/types.js +0 -6
  902. package/dist/restorer/impls/claude-mcp-prediction/types.js.map +0 -1
  903. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +0 -34
  904. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +0 -1
  905. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +0 -1
  906. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +0 -7
  907. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +0 -1
  908. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +0 -128
  909. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +0 -1
  910. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +0 -6
  911. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +0 -1
  912. package/dist/restorer/impls/evaluation-context.d.ts +0 -16
  913. package/dist/restorer/impls/evaluation-context.js +0 -18
  914. package/dist/restorer/impls/evaluation-context.js.map +0 -1
  915. package/dist/restorer/impls/index.d.ts +0 -46
  916. package/dist/restorer/impls/index.js.map +0 -1
  917. package/dist/restorer/impls/legacy-claude/index.d.ts +0 -52
  918. package/dist/restorer/impls/legacy-claude/index.js.map +0 -1
  919. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +0 -1
  920. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +0 -1
  921. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +0 -1
  922. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +0 -1
  923. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +0 -1
  924. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +0 -1
  925. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +0 -44
  926. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +0 -1
  927. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +0 -1
  928. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +0 -1
  929. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +0 -1
  930. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +0 -1
  931. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +0 -1
  932. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +0 -6
  933. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +0 -11
  934. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +0 -1
  935. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +0 -208
  936. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +0 -1
  937. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +0 -7
  938. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +0 -29
  939. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +0 -1
  940. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +0 -1
  941. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +0 -1
  942. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +0 -31
  943. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +0 -1
  944. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +0 -1
  945. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +0 -7
  946. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +0 -1
  947. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +0 -1
  948. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +0 -1
  949. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +0 -1
  950. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +0 -13
  951. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +0 -1
  952. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +0 -1
  953. package/dist/restorer/impls/prediction-v0-evaluator/index.js +0 -234
  954. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +0 -1
  955. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +0 -1
  956. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +0 -1
  957. package/dist/restorer/types.d.ts +0 -194
  958. package/dist/restorer/types.js.map +0 -1
  959. package/dist/types/desired-state.d.ts +0 -94
  960. package/dist/types/desired-state.js +0 -36
  961. package/dist/types/desired-state.js.map +0 -1
  962. /package/dist/cli/commands/{plugin-install.d.ts → solver-nets.d.ts} +0 -0
  963. /package/dist/cli/commands/{submit-intent.d.ts → tasks.d.ts} +0 -0
  964. /package/dist/{restorer/impls/prediction-apy-v0-baseline → harnesses/impls/claude-code-learner}/types.js +0 -0
  965. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/api-wallet.js +0 -0
  966. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +0 -0
  967. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.js +0 -0
  968. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.d.ts +0 -0
  969. /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.js +0 -0
  970. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/mcp-tools.d.ts +0 -0
  971. /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +0 -0
  972. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.d.ts +0 -0
  973. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.js +0 -0
  974. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.d.ts +0 -0
  975. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.js +0 -0
  976. /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/types.js +0 -0
  977. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.d.ts +0 -0
  978. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.js +0 -0
  979. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/types.d.ts +0 -0
  980. /package/dist/{restorer/impls/prediction-apy-v0-evaluator → harnesses/impls/prediction-apy-v0-baseline}/types.js +0 -0
  981. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.d.ts +0 -0
  982. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.js +0 -0
  983. /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/types.d.ts +0 -0
  984. /package/dist/{restorer/impls/prediction-v0-baseline → harnesses/impls/prediction-apy-v0-evaluator}/types.js +0 -0
  985. /package/dist/{restorer/impls/prediction-v0-evaluator → harnesses/impls/prediction-v0-baseline}/types.js +0 -0
  986. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/canonical-metrics.js +0 -0
  987. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/availability.d.ts +0 -0
  988. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/availability.js +0 -0
  989. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/eligibility.js +0 -0
  990. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/spec.js +0 -0
  991. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.d.ts +0 -0
  992. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.js +0 -0
  993. /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/types.d.ts +0 -0
  994. /package/dist/{intents/kinds → solver-types}/constants.d.ts +0 -0
  995. /package/dist/{intents/kinds → solver-types}/constants.js +0 -0
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Harness engine — SQLite persistence helpers.
3
+ *
4
+ * §6.4 of spec/2026-04-17-portfolio-v0-design.md
5
+ *
6
+ * Wraps the Store's underlying Database instance via the Store class — the
7
+ * Store itself holds the DB handle; we extend it with engine-specific queries.
8
+ * To keep concerns clean, this module exports a standalone `TaskRunPersistence`
9
+ * class that is constructed with a `Database` instance (passed from Store).
10
+ */
11
+ import type Database from 'better-sqlite3';
12
+ import { type TaskRunState } from './state.js';
13
+ import type { Task } from '../../types/task.js';
14
+ /**
15
+ * Thrown by `transition()` and `markFailed()` when the DB row has already been
16
+ * updated by a concurrent call before the UPDATE could land.
17
+ *
18
+ * Callers should treat this as a signal to retry from the fresh DB state or
19
+ * abandon the operation (the concurrent call has already advanced the task).
20
+ */
21
+ export declare class ConcurrentTransitionError extends Error {
22
+ readonly requestId: string;
23
+ readonly expectedState: TaskRunState;
24
+ readonly attemptedNewState: string;
25
+ constructor(requestId: string, expectedState: TaskRunState, attemptedNewState: string);
26
+ }
27
+ export declare const TASK_RUNS_SCHEMA = "\nCREATE TABLE IF NOT EXISTS task_runs (\n request_id TEXT PRIMARY KEY,\n task_cid TEXT NOT NULL,\n onchain_creation_tx TEXT NOT NULL,\n onchain_creation_block INTEGER NOT NULL,\n solver_type TEXT,\n task_role TEXT, -- 'restoration' | 'evaluation' | NULL (legacy)\n impl_name TEXT,\n\n state TEXT NOT NULL,\n state_updated_at INTEGER NOT NULL,\n\n working_dir TEXT,\n impl_state_dir TEXT,\n\n window_start_ts INTEGER NOT NULL,\n window_end_ts INTEGER NOT NULL,\n\n pre_snapshot_captured_at INTEGER,\n pre_snapshot_payload TEXT,\n post_snapshot_captured_at INTEGER,\n post_snapshot_payload TEXT,\n fills_payload TEXT,\n gating_claim TEXT,\n informational_claim TEXT,\n\n artifact_cids TEXT,\n manifest_cid TEXT,\n delivery_tx_hash TEXT,\n\n -- Additive columns (schema migration 2026-04-17):\n -- manifest_generated_at: persisted once at first PACKAGING entry; reused on\n -- retry to keep manifest CID deterministic (idempotent PACKAGING).\n -- evidence_hash: keccak256 of the signed manifest canonical JSON; dedicated\n -- column replaces the former _evidenceHash stash in informational_claim.\n manifest_generated_at INTEGER,\n evidence_hash TEXT,\n\n -- Additive column (schema migration 2026-04-17, full Task threading):\n -- task_payload: full Task JSON, captured at observe() time.\n -- NULL for pre-migration rows (legacy fallback in engine consumers).\n task_payload TEXT,\n\n -- Additive column (added by WT-C for PACKAGING recovery fidelity):\n -- solution_outputs_json: serialised Solution persisted before the\n -- RUNNING \u2192 PACKAGING transition. Enables pack() to recover solution outputs\n -- after a crash without re-executing the impl. NULL once pack() succeeds.\n solution_outputs_json TEXT,\n runtime_plugins_json TEXT,\n\n failure_reason TEXT,\n failure_at INTEGER\n);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_state\n ON task_runs(state);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_window_start_ts\n ON task_runs(window_start_ts);\n";
28
+ /** Input when first observing an task from an on-chain event. */
29
+ export interface PersistedTaskRunInput {
30
+ requestId: string;
31
+ taskCid: string;
32
+ onchainCreationTx: string;
33
+ onchainCreationBlock: number;
34
+ solverType?: string;
35
+ /** 'restoration' (default) or 'evaluation'. Captured from Task.type at observe() time. */
36
+ taskRole?: 'restoration' | 'evaluation';
37
+ windowStartTs: number;
38
+ windowEndTs: number;
39
+ /**
40
+ * Full Task payload, captured at observe() time.
41
+ * Required: production callers always thread it (daemon.ts); making this
42
+ * required provides a type-level guarantee against silent regression to the
43
+ * stub path. Tests that need to exercise the pre-migration NULL row path
44
+ * must use a direct raw SQL INSERT.
45
+ */
46
+ task: Task;
47
+ }
48
+ /** Full persisted task row (all columns). */
49
+ export interface PersistedTaskRun {
50
+ requestId: string;
51
+ taskCid: string;
52
+ onchainCreationTx: string;
53
+ onchainCreationBlock: number;
54
+ solverType: string | null;
55
+ taskRole: 'restoration' | 'evaluation' | null;
56
+ implName: string | null;
57
+ state: TaskRunState;
58
+ stateUpdatedAt: number;
59
+ workingDir: string | null;
60
+ implStateDir: string | null;
61
+ windowStartTs: number;
62
+ windowEndTs: number;
63
+ preSnapshotCapturedAt: number | null;
64
+ preSnapshotPayload: unknown | null;
65
+ postSnapshotCapturedAt: number | null;
66
+ postSnapshotPayload: unknown | null;
67
+ fillsPayload: unknown[] | null;
68
+ gatingClaim: Record<string, unknown> | null;
69
+ informationalClaim: Record<string, unknown> | null;
70
+ artifactCids: Record<string, string> | null;
71
+ manifestCid: string | null;
72
+ deliveryTxHash: string | null;
73
+ /** Persisted once at first PACKAGING entry; reused on retry for manifest CID determinism. */
74
+ manifestGeneratedAt: number | null;
75
+ /** keccak256 of signed manifest canonical JSON; used by deliver() as evidenceHash. */
76
+ evidenceHash: string | null;
77
+ /** Full Task payload as recorded at observe() time; null for pre-migration rows. */
78
+ task: Task | null;
79
+ /**
80
+ * Serialised Solution from runImpl, persisted before the
81
+ * RUNNING → PACKAGING transition. Used by pack() to recover solution outputs
82
+ * after a crash so the manifest CID remains deterministic. Null for
83
+ * pre-migration rows and tasks that have already been packed.
84
+ * Added by WT-C for PACKAGING recovery fidelity.
85
+ */
86
+ solutionOutputsJson: string | null;
87
+ runtimePluginsJson: string | null;
88
+ failureReason: string | null;
89
+ failureAt: number | null;
90
+ }
91
+ /**
92
+ * Fields that can be patched during a transition.
93
+ * Only lists fields that `transition()` actually writes — attempting to patch
94
+ * other fields (e.g. `solverType`, window timestamps) gives a compile-time error
95
+ * instead of silently dropping the value.
96
+ */
97
+ export type TaskRunPatch = Partial<{
98
+ implName: string | null;
99
+ workingDir: string | null;
100
+ implStateDir: string | null;
101
+ preSnapshotCapturedAt: number | null;
102
+ preSnapshotPayload: unknown;
103
+ postSnapshotCapturedAt: number | null;
104
+ postSnapshotPayload: unknown;
105
+ fillsPayload: unknown;
106
+ gatingClaim: unknown;
107
+ informationalClaim: unknown;
108
+ artifactCids: Record<string, string> | null;
109
+ manifestCid: string | null;
110
+ deliveryTxHash: string | null;
111
+ /** Persisted once at first PACKAGING entry; reused on retry. */
112
+ manifestGeneratedAt: number | null;
113
+ /** keccak256 of signed manifest canonical JSON (evidenceHash for claimDelivery). */
114
+ evidenceHash: string | null;
115
+ /**
116
+ * Serialised Solution JSON, persisted before RUNNING → PACKAGING.
117
+ * Enables pack() to recover solution outputs after a crash without re-executing
118
+ * the impl. Set by engine.runImpl(); cleared by engine after successful pack().
119
+ * Added by WT-C for PACKAGING recovery fidelity.
120
+ */
121
+ solutionOutputsJson: string | null;
122
+ runtimePluginsJson: string | null;
123
+ }>;
124
+ /**
125
+ * Low-level CRUD helpers for `task_runs`.
126
+ *
127
+ * Constructed with the raw better-sqlite3 `Database` instance. The `Store`
128
+ * class exposes it via `store.db` — callers that have a `Store` can pass
129
+ * `store.db` here.
130
+ */
131
+ export declare class TaskRunPersistence {
132
+ private readonly db;
133
+ constructor(db: Database.Database);
134
+ /**
135
+ * Insert a DISCOVERED task row. Idempotent: if a row with the same
136
+ * `requestId` already exists, this is a no-op (INSERT OR IGNORE).
137
+ */
138
+ insertDiscovered(input: PersistedTaskRunInput): void;
139
+ /**
140
+ * Transition an task to a new state. Validates the transition and writes
141
+ * the new state + optional patch fields atomically (persist-before-invoke).
142
+ */
143
+ transition(requestId: string, toState: TaskRunState, patch?: TaskRunPatch): void;
144
+ /** Fetch a single task by request ID. Returns null if not found. */
145
+ getByRequestId(requestId: string): PersistedTaskRun | null;
146
+ /**
147
+ * Fetch a single task by request ID. Throws if not found.
148
+ * Use this in code paths where the task is guaranteed to exist
149
+ * (e.g. immediately after a successful `transition()` call).
150
+ */
151
+ getOrThrow(requestId: string): PersistedTaskRun;
152
+ /** Fetch all tasks in a given state. */
153
+ getByState(state: TaskRunState): PersistedTaskRun[];
154
+ /** Fetch all in-flight tasks (not in any terminal state). */
155
+ getInFlight(): PersistedTaskRun[];
156
+ /**
157
+ * Persist `deliveryTxHash` without triggering a state transition (state
158
+ * remains DELIVERING). Called after deliverToMarketplace lands on-chain but
159
+ * before claimDelivery runs, so that a crash between the two steps can be
160
+ * recovered without re-submitting the deliver transaction.
161
+ */
162
+ setDeliveryTxHash(requestId: string, deliveryTxHash: string): void;
163
+ /**
164
+ * Persist `manifestGeneratedAt` for the first time without triggering a
165
+ * state transition. Used by pack() to lock in the generatedAt timestamp
166
+ * before assembling the manifest, ensuring idempotent CID on retry.
167
+ * No-op if already set.
168
+ */
169
+ setManifestGeneratedAt(requestId: string, generatedAt: number): void;
170
+ /** Mark an task FAILED with a reason (valid from any non-terminal state). */
171
+ markFailed(requestId: string, reason: string): void;
172
+ }
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Restorer engine — SQLite persistence helpers.
2
+ * Harness engine — SQLite persistence helpers.
3
3
  *
4
4
  * §6.4 of spec/2026-04-17-portfolio-v0-design.md
5
5
  *
6
6
  * Wraps the Store's underlying Database instance via the Store class — the
7
7
  * Store itself holds the DB handle; we extend it with engine-specific queries.
8
- * To keep concerns clean, this module exports a standalone `IntentPersistence`
8
+ * To keep concerns clean, this module exports a standalone `TaskRunPersistence`
9
9
  * class that is constructed with a `Database` instance (passed from Store).
10
10
  */
11
11
  import { assertValidTransition, TERMINAL_STATES } from './state.js';
@@ -15,7 +15,7 @@ import { assertValidTransition, TERMINAL_STATES } from './state.js';
15
15
  * updated by a concurrent call before the UPDATE could land.
16
16
  *
17
17
  * Callers should treat this as a signal to retry from the fresh DB state or
18
- * abandon the operation (the concurrent call has already advanced the intent).
18
+ * abandon the operation (the concurrent call has already advanced the task).
19
19
  */
20
20
  export class ConcurrentTransitionError extends Error {
21
21
  requestId;
@@ -30,14 +30,14 @@ export class ConcurrentTransitionError extends Error {
30
30
  }
31
31
  }
32
32
  // ── Schema ────────────────────────────────────────────────────────────────────
33
- export const RESTORATION_INTENTS_SCHEMA = `
34
- CREATE TABLE IF NOT EXISTS restoration_intents (
33
+ export const TASK_RUNS_SCHEMA = `
34
+ CREATE TABLE IF NOT EXISTS task_runs (
35
35
  request_id TEXT PRIMARY KEY,
36
- intent_cid TEXT NOT NULL,
36
+ task_cid TEXT NOT NULL,
37
37
  onchain_creation_tx TEXT NOT NULL,
38
38
  onchain_creation_block INTEGER NOT NULL,
39
- spec_kind TEXT,
40
- intent_type TEXT, -- 'restoration' | 'evaluation' | NULL (legacy)
39
+ solver_type TEXT,
40
+ task_role TEXT, -- 'restoration' | 'evaluation' | NULL (legacy)
41
41
  impl_name TEXT,
42
42
 
43
43
  state TEXT NOT NULL,
@@ -69,30 +69,31 @@ CREATE TABLE IF NOT EXISTS restoration_intents (
69
69
  manifest_generated_at INTEGER,
70
70
  evidence_hash TEXT,
71
71
 
72
- -- Additive column (schema migration 2026-04-17, full DesiredState threading):
73
- -- desired_state_payload: full DesiredState JSON, captured at observe() time.
72
+ -- Additive column (schema migration 2026-04-17, full Task threading):
73
+ -- task_payload: full Task JSON, captured at observe() time.
74
74
  -- NULL for pre-migration rows (legacy fallback in engine consumers).
75
- desired_state_payload TEXT,
75
+ task_payload TEXT,
76
76
 
77
77
  -- Additive column (added by WT-C for PACKAGING recovery fidelity):
78
- -- impl_outputs_json: serialised RestorationOutput persisted before the
79
- -- RUNNING → PACKAGING transition. Enables pack() to recover impl outputs
78
+ -- solution_outputs_json: serialised Solution persisted before the
79
+ -- RUNNING → PACKAGING transition. Enables pack() to recover solution outputs
80
80
  -- after a crash without re-executing the impl. NULL once pack() succeeds.
81
- impl_outputs_json TEXT,
81
+ solution_outputs_json TEXT,
82
+ runtime_plugins_json TEXT,
82
83
 
83
84
  failure_reason TEXT,
84
85
  failure_at INTEGER
85
86
  );
86
87
 
87
- CREATE INDEX IF NOT EXISTS idx_restoration_intents_state
88
- ON restoration_intents(state);
88
+ CREATE INDEX IF NOT EXISTS idx_task_runs_state
89
+ ON task_runs(state);
89
90
 
90
- CREATE INDEX IF NOT EXISTS idx_restoration_intents_window_start_ts
91
- ON restoration_intents(window_start_ts);
91
+ CREATE INDEX IF NOT EXISTS idx_task_runs_window_start_ts
92
+ ON task_runs(window_start_ts);
92
93
  `;
93
94
  // ── Migrations ────────────────────────────────────────────────────────────────
94
95
  /**
95
- * Idempotent additive migrations for `restoration_intents`.
96
+ * Idempotent additive migrations for `task_runs`.
96
97
  *
97
98
  * better-sqlite3 throws on duplicate column from ALTER TABLE ADD COLUMN; we
98
99
  * swallow that specific error so this is safe to invoke on every startup.
@@ -100,17 +101,18 @@ CREATE INDEX IF NOT EXISTS idx_restoration_intents_window_start_ts
100
101
  */
101
102
  function runAdditiveMigrations(db) {
102
103
  const additions = [
103
- { column: 'desired_state_payload', ddl: 'ALTER TABLE restoration_intents ADD COLUMN desired_state_payload TEXT' },
104
- { column: 'manifest_generated_at', ddl: 'ALTER TABLE restoration_intents ADD COLUMN manifest_generated_at TEXT NULL' },
105
- { column: 'evidence_hash', ddl: 'ALTER TABLE restoration_intents ADD COLUMN evidence_hash TEXT NULL' },
106
- // Persists impl outputs so pack() can recover a deterministic manifest CID
107
- // after a process restart (otherwise in-memory implOutputs is lost).
108
- { column: 'impl_outputs_json', ddl: 'ALTER TABLE restoration_intents ADD COLUMN impl_outputs_json TEXT' },
109
- { column: 'intent_type', ddl: 'ALTER TABLE restoration_intents ADD COLUMN intent_type TEXT' },
104
+ { column: 'task_payload', ddl: 'ALTER TABLE task_runs ADD COLUMN task_payload TEXT' },
105
+ { column: 'manifest_generated_at', ddl: 'ALTER TABLE task_runs ADD COLUMN manifest_generated_at TEXT NULL' },
106
+ { column: 'evidence_hash', ddl: 'ALTER TABLE task_runs ADD COLUMN evidence_hash TEXT NULL' },
107
+ // Persists solution outputs so pack() can recover a deterministic manifest CID
108
+ // after a process restart (otherwise in-memory solutionOutputs is lost).
109
+ { column: 'solution_outputs_json', ddl: 'ALTER TABLE task_runs ADD COLUMN solution_outputs_json TEXT' },
110
+ { column: 'runtime_plugins_json', ddl: 'ALTER TABLE task_runs ADD COLUMN runtime_plugins_json TEXT' },
111
+ { column: 'task_role', ddl: 'ALTER TABLE task_runs ADD COLUMN task_role TEXT' },
110
112
  ];
111
113
  // Fetch existing column names once so each ALTER is a no-op if the column
112
114
  // already exists (avoids duplicate-column-name errors on newer DBs).
113
- const existingColumns = new Set(db.pragma('table_info(restoration_intents)')
115
+ const existingColumns = new Set(db.pragma('table_info(task_runs)')
114
116
  .map(r => r.name));
115
117
  for (const { column, ddl } of additions) {
116
118
  if (existingColumns.has(column))
@@ -131,14 +133,14 @@ function parseJson(raw) {
131
133
  return null;
132
134
  return JSON.parse(raw);
133
135
  }
134
- function rowToIntent(row) {
136
+ function rowToTaskRun(row) {
135
137
  return {
136
138
  requestId: row.request_id,
137
- intentCid: row.intent_cid,
139
+ taskCid: row.task_cid,
138
140
  onchainCreationTx: row.onchain_creation_tx,
139
141
  onchainCreationBlock: row.onchain_creation_block,
140
- specKind: row.spec_kind,
141
- intentType: (row.intent_type ?? null),
142
+ solverType: row.solver_type,
143
+ taskRole: (row.task_role ?? null),
142
144
  implName: row.impl_name,
143
145
  state: row.state,
144
146
  stateUpdatedAt: row.state_updated_at,
@@ -158,62 +160,63 @@ function rowToIntent(row) {
158
160
  deliveryTxHash: row.delivery_tx_hash,
159
161
  manifestGeneratedAt: row.manifest_generated_at,
160
162
  evidenceHash: row.evidence_hash,
161
- desiredState: parseJson(row.desired_state_payload),
162
- implOutputsJson: row.impl_outputs_json,
163
+ task: parseJson(row.task_payload),
164
+ solutionOutputsJson: row.solution_outputs_json,
165
+ runtimePluginsJson: row.runtime_plugins_json,
163
166
  failureReason: row.failure_reason,
164
167
  failureAt: row.failure_at,
165
168
  };
166
169
  }
167
- // ── IntentPersistence ─────────────────────────────────────────────────────────
170
+ // ── TaskRunPersistence ─────────────────────────────────────────────────────────
168
171
  /**
169
- * Low-level CRUD helpers for `restoration_intents`.
172
+ * Low-level CRUD helpers for `task_runs`.
170
173
  *
171
174
  * Constructed with the raw better-sqlite3 `Database` instance. The `Store`
172
175
  * class exposes it via `store.db` — callers that have a `Store` can pass
173
176
  * `store.db` here.
174
177
  */
175
- export class IntentPersistence {
178
+ export class TaskRunPersistence {
176
179
  db;
177
180
  constructor(db) {
178
181
  this.db = db;
179
182
  runAdditiveMigrations(db);
180
183
  }
181
184
  /**
182
- * Insert a DISCOVERED intent row. Idempotent: if a row with the same
185
+ * Insert a DISCOVERED task row. Idempotent: if a row with the same
183
186
  * `requestId` already exists, this is a no-op (INSERT OR IGNORE).
184
187
  */
185
188
  insertDiscovered(input) {
186
189
  this.db.prepare(`
187
- INSERT OR IGNORE INTO restoration_intents (
188
- request_id, intent_cid, onchain_creation_tx, onchain_creation_block,
189
- spec_kind, intent_type, state, state_updated_at, window_start_ts, window_end_ts,
190
- desired_state_payload
190
+ INSERT OR IGNORE INTO task_runs (
191
+ request_id, task_cid, onchain_creation_tx, onchain_creation_block,
192
+ solver_type, task_role, state, state_updated_at, window_start_ts, window_end_ts,
193
+ task_payload
191
194
  ) VALUES (
192
- @requestId, @intentCid, @onchainCreationTx, @onchainCreationBlock,
193
- @specKind, @intentType, 'DISCOVERED', @now, @windowStartTs, @windowEndTs,
194
- @desiredStatePayload
195
+ @requestId, @taskCid, @onchainCreationTx, @onchainCreationBlock,
196
+ @solverType, @taskRole, 'DISCOVERED', @now, @windowStartTs, @windowEndTs,
197
+ @taskPayload
195
198
  )
196
199
  `).run({
197
200
  requestId: input.requestId,
198
- intentCid: input.intentCid,
201
+ taskCid: input.taskCid,
199
202
  onchainCreationTx: input.onchainCreationTx,
200
203
  onchainCreationBlock: input.onchainCreationBlock,
201
- specKind: input.specKind ?? null,
202
- intentType: input.intentType ?? null,
204
+ solverType: input.solverType ?? null,
205
+ taskRole: input.taskRole ?? null,
203
206
  now: Date.now(),
204
207
  windowStartTs: input.windowStartTs,
205
208
  windowEndTs: input.windowEndTs,
206
- desiredStatePayload: input.desiredState ? JSON.stringify(input.desiredState) : null,
209
+ taskPayload: input.task ? JSON.stringify(input.task) : null,
207
210
  });
208
211
  }
209
212
  /**
210
- * Transition an intent to a new state. Validates the transition and writes
213
+ * Transition an task to a new state. Validates the transition and writes
211
214
  * the new state + optional patch fields atomically (persist-before-invoke).
212
215
  */
213
216
  transition(requestId, toState, patch = {}) {
214
217
  const existing = this.getByRequestId(requestId);
215
218
  if (!existing) {
216
- throw new Error(`Intent not found: ${requestId}`);
219
+ throw new Error(`Task run not found: ${requestId}`);
217
220
  }
218
221
  assertValidTransition(existing.state, toState);
219
222
  const setClauses = ['state = @state', 'state_updated_at = @stateUpdatedAt'];
@@ -288,53 +291,57 @@ export class IntentPersistence {
288
291
  setClauses.push('evidence_hash = @evidenceHash');
289
292
  params['evidenceHash'] = patch.evidenceHash;
290
293
  }
291
- if (patch.implOutputsJson !== undefined) {
292
- setClauses.push('impl_outputs_json = @implOutputsJson');
293
- params['implOutputsJson'] = patch.implOutputsJson;
294
+ if (patch.solutionOutputsJson !== undefined) {
295
+ setClauses.push('solution_outputs_json = @solutionOutputsJson');
296
+ params['solutionOutputsJson'] = patch.solutionOutputsJson;
297
+ }
298
+ if (patch.runtimePluginsJson !== undefined) {
299
+ setClauses.push('runtime_plugins_json = @runtimePluginsJson');
300
+ params['runtimePluginsJson'] = patch.runtimePluginsJson;
294
301
  }
295
302
  // Optimistic concurrency: include AND state = @expectedState in the WHERE
296
303
  // clause so a concurrent call that already advanced the row results in 0
297
304
  // changed rows rather than a silent double-write.
298
305
  params['expectedState'] = existing.state;
299
306
  const result = this.db.prepare(`
300
- UPDATE restoration_intents SET ${setClauses.join(', ')}
307
+ UPDATE task_runs SET ${setClauses.join(', ')}
301
308
  WHERE request_id = @requestId AND state = @expectedState
302
309
  `).run(params);
303
310
  if (result.changes === 0) {
304
311
  throw new ConcurrentTransitionError(requestId, existing.state, toState);
305
312
  }
306
313
  }
307
- /** Fetch a single intent by request ID. Returns null if not found. */
314
+ /** Fetch a single task by request ID. Returns null if not found. */
308
315
  getByRequestId(requestId) {
309
- const row = this.db.prepare('SELECT * FROM restoration_intents WHERE request_id = ?').get(requestId);
316
+ const row = this.db.prepare('SELECT * FROM task_runs WHERE request_id = ?').get(requestId);
310
317
  if (!row)
311
318
  return null;
312
- return rowToIntent(row);
319
+ return rowToTaskRun(row);
313
320
  }
314
321
  /**
315
- * Fetch a single intent by request ID. Throws if not found.
316
- * Use this in code paths where the intent is guaranteed to exist
322
+ * Fetch a single task by request ID. Throws if not found.
323
+ * Use this in code paths where the task is guaranteed to exist
317
324
  * (e.g. immediately after a successful `transition()` call).
318
325
  */
319
326
  getOrThrow(requestId) {
320
327
  const row = this.getByRequestId(requestId);
321
328
  if (!row) {
322
- throw new Error(`No persisted intent for requestId ${requestId}`);
329
+ throw new Error(`No persisted task run for requestId ${requestId}`);
323
330
  }
324
331
  return row;
325
332
  }
326
- /** Fetch all intents in a given state. */
333
+ /** Fetch all tasks in a given state. */
327
334
  getByState(state) {
328
- const rows = this.db.prepare('SELECT * FROM restoration_intents WHERE state = ? ORDER BY window_start_ts ASC').all(state);
329
- return rows.map(rowToIntent);
335
+ const rows = this.db.prepare('SELECT * FROM task_runs WHERE state = ? ORDER BY window_start_ts ASC').all(state);
336
+ return rows.map(rowToTaskRun);
330
337
  }
331
- /** Fetch all in-flight intents (not in any terminal state). */
338
+ /** Fetch all in-flight tasks (not in any terminal state). */
332
339
  getInFlight() {
333
340
  const terminalList = [...TERMINAL_STATES];
334
341
  const placeholders = terminalList.map(() => '?').join(', ');
335
- const sql = `SELECT * FROM restoration_intents WHERE state NOT IN (${placeholders}) ORDER BY window_start_ts ASC`;
342
+ const sql = `SELECT * FROM task_runs WHERE state NOT IN (${placeholders}) ORDER BY window_start_ts ASC`;
336
343
  const rows = this.db.prepare(sql).all(...terminalList);
337
- return rows.map(rowToIntent);
344
+ return rows.map(rowToTaskRun);
338
345
  }
339
346
  /**
340
347
  * Persist `deliveryTxHash` without triggering a state transition (state
@@ -343,7 +350,7 @@ export class IntentPersistence {
343
350
  * recovered without re-submitting the deliver transaction.
344
351
  */
345
352
  setDeliveryTxHash(requestId, deliveryTxHash) {
346
- this.db.prepare('UPDATE restoration_intents SET delivery_tx_hash = ? WHERE request_id = ?').run(deliveryTxHash, requestId);
353
+ this.db.prepare('UPDATE task_runs SET delivery_tx_hash = ? WHERE request_id = ?').run(deliveryTxHash, requestId);
347
354
  }
348
355
  /**
349
356
  * Persist `manifestGeneratedAt` for the first time without triggering a
@@ -352,13 +359,13 @@ export class IntentPersistence {
352
359
  * No-op if already set.
353
360
  */
354
361
  setManifestGeneratedAt(requestId, generatedAt) {
355
- this.db.prepare('UPDATE restoration_intents SET manifest_generated_at = ? WHERE request_id = ? AND manifest_generated_at IS NULL').run(generatedAt, requestId);
362
+ this.db.prepare('UPDATE task_runs SET manifest_generated_at = ? WHERE request_id = ? AND manifest_generated_at IS NULL').run(generatedAt, requestId);
356
363
  }
357
- /** Mark an intent FAILED with a reason (valid from any non-terminal state). */
364
+ /** Mark an task FAILED with a reason (valid from any non-terminal state). */
358
365
  markFailed(requestId, reason) {
359
366
  const existing = this.getByRequestId(requestId);
360
367
  if (!existing) {
361
- throw new Error(`Intent not found: ${requestId}`);
368
+ throw new Error(`Task run not found: ${requestId}`);
362
369
  }
363
370
  if (existing.state === 'COMPLETE' || existing.state === 'FAILED') {
364
371
  // Already terminal — no-op (idempotent)
@@ -369,7 +376,7 @@ export class IntentPersistence {
369
376
  // concurrent transition that has already advanced the row doesn't get
370
377
  // silently overwritten.
371
378
  const result = this.db.prepare(`
372
- UPDATE restoration_intents
379
+ UPDATE task_runs
373
380
  SET state = 'FAILED', state_updated_at = ?, failure_reason = ?, failure_at = ?
374
381
  WHERE request_id = ? AND state = ?
375
382
  `).run(now, reason, now, requestId, existing.state);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/harnesses/engine/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Harness engine — startup crash recovery.
3
+ *
4
+ * §6.5 of spec/2026-04-17-portfolio-v0-design.md
5
+ *
6
+ * This module re-exports the `recoverInFlight` capability cleanly for callers
7
+ * that want a standalone function rather than calling the engine method directly.
8
+ * The recovery algorithm lives in `TaskEngine._recoverDispatch`; this
9
+ * module is a thin adapter for dependency-injection friendly usage.
10
+ */
11
+ import type { TaskEngine, RecoveryReport } from './engine.js';
12
+ /**
13
+ * Run startup recovery pass on the given engine.
14
+ *
15
+ * Scans all in-flight tasks from the persistence layer and dispatches each
16
+ * one to the appropriate resume handler based on current state. Errors are
17
+ * collected per-task (failed tasks are marked FAILED in the DB); the
18
+ * function itself does not throw.
19
+ *
20
+ * @returns Array of per-task recovery reports (outcome 'ok' or 'failed').
21
+ */
22
+ export declare function recoverInFlight(engine: TaskEngine): Promise<RecoveryReport[]>;
@@ -1,22 +1,22 @@
1
1
  /**
2
- * Restorer engine — startup crash recovery.
2
+ * Harness engine — startup crash recovery.
3
3
  *
4
4
  * §6.5 of spec/2026-04-17-portfolio-v0-design.md
5
5
  *
6
6
  * This module re-exports the `recoverInFlight` capability cleanly for callers
7
7
  * that want a standalone function rather than calling the engine method directly.
8
- * The recovery algorithm lives in `RestorationEngine._recoverDispatch`; this
8
+ * The recovery algorithm lives in `TaskEngine._recoverDispatch`; this
9
9
  * module is a thin adapter for dependency-injection friendly usage.
10
10
  */
11
11
  /**
12
12
  * Run startup recovery pass on the given engine.
13
13
  *
14
- * Scans all in-flight intents from the persistence layer and dispatches each
14
+ * Scans all in-flight tasks from the persistence layer and dispatches each
15
15
  * one to the appropriate resume handler based on current state. Errors are
16
- * collected per-intent (failed intents are marked FAILED in the DB); the
16
+ * collected per-task (failed tasks are marked FAILED in the DB); the
17
17
  * function itself does not throw.
18
18
  *
19
- * @returns Array of per-intent recovery reports (outcome 'ok' or 'failed').
19
+ * @returns Array of per-task recovery reports (outcome 'ok' or 'failed').
20
20
  */
21
21
  export async function recoverInFlight(engine) {
22
22
  return engine.recoverInFlight();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../src/harnesses/engine/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAkB;IAElB,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * HarnessRegistry — Harness registration + SolverNet-aware dispatch.
3
+ *
4
+ * §6.7 of spec/2026-04-17-portfolio-v0-design.md
5
+ *
6
+ * Dispatch priority:
7
+ * 1. solverTypeHarnesses[task.solverType] — SolverNet-selected Harness
8
+ * 2. config.default — named fallback impl
9
+ * 3. First-match — iterate registered Harnesses, return first whose supports()
10
+ * returns true
11
+ *
12
+ * Disabled Harnesses (config.disabled[]) are filtered out before dispatch.
13
+ */
14
+ import type { Harness } from '../types.js';
15
+ import type { ImplRegistry } from './engine.js';
16
+ export interface HarnessDispatchConfig {
17
+ /**
18
+ * Explicit solverType → Harness name mapping.
19
+ * e.g. { "portfolio.v0": "claude-mcp-hyperliquid" }
20
+ */
21
+ solverTypeHarnesses?: Record<string, string>;
22
+ /**
23
+ * Fallback Harness name when no solverType-specific match is found.
24
+ */
25
+ default?: string;
26
+ /**
27
+ * Harness names to exclude from dispatch entirely.
28
+ */
29
+ disabled?: string[];
30
+ }
31
+ export declare class HarnessRegistry implements ImplRegistry {
32
+ private readonly harnesses;
33
+ private readonly config;
34
+ constructor(config?: HarnessDispatchConfig);
35
+ /**
36
+ * Register a Harness. Later registrations appear later in the list for
37
+ * first-match fallback dispatch.
38
+ */
39
+ register(harness: Harness): void;
40
+ /**
41
+ * Find the Harness to use for the given solverType, applying operator config
42
+ * dispatch rules.
43
+ *
44
+ * Returns undefined if no suitable impl is found (all disabled, none
45
+ * support the kind, or registry is empty).
46
+ */
47
+ findFor(ctx: {
48
+ solverType: string;
49
+ role?: 'restoration' | 'evaluation';
50
+ }): Harness | undefined;
51
+ /** All registered Harnesses (including disabled ones). */
52
+ list(): Harness[];
53
+ }