@jinn-network/client 0.1.1 → 0.1.2-canary.d6e72dfd

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 (317) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/CONTRIBUTING.md +123 -0
  3. package/README.md +210 -37
  4. package/deployments/deployment-claim-registry-baseSepolia.json +13 -0
  5. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -0
  6. package/dist/adapters/claim-registry/abi.d.ts +127 -0
  7. package/dist/adapters/claim-registry/abi.js +93 -0
  8. package/dist/adapters/claim-registry/abi.js.map +1 -0
  9. package/dist/adapters/claim-registry/client.d.ts +89 -0
  10. package/dist/adapters/claim-registry/client.js +205 -0
  11. package/dist/adapters/claim-registry/client.js.map +1 -0
  12. package/dist/adapters/mech/adapter.d.ts +1 -0
  13. package/dist/adapters/mech/adapter.js +75 -41
  14. package/dist/adapters/mech/adapter.js.map +1 -1
  15. package/dist/adapters/mech/contracts.d.ts +2 -0
  16. package/dist/adapters/mech/contracts.js +57 -7
  17. package/dist/adapters/mech/contracts.js.map +1 -1
  18. package/dist/adapters/mech/ipfs.d.ts +8 -0
  19. package/dist/adapters/mech/ipfs.js +12 -0
  20. package/dist/adapters/mech/ipfs.js.map +1 -1
  21. package/dist/adapters/mech/types.d.ts +20 -46
  22. package/dist/adapters/mech/types.js +16 -35
  23. package/dist/adapters/mech/types.js.map +1 -1
  24. package/dist/api/gather-status.d.ts +1 -0
  25. package/dist/api/gather-status.js +33 -1
  26. package/dist/api/gather-status.js.map +1 -1
  27. package/dist/api/portfolio-v0-build.d.ts +81 -0
  28. package/dist/api/portfolio-v0-build.js +141 -0
  29. package/dist/api/portfolio-v0-build.js.map +1 -0
  30. package/dist/api/portfolio-v0-doctor.d.ts +37 -0
  31. package/dist/api/portfolio-v0-doctor.js +123 -0
  32. package/dist/api/portfolio-v0-doctor.js.map +1 -0
  33. package/dist/api/rewards-build.js +1 -1
  34. package/dist/api/rewards-build.js.map +1 -1
  35. package/dist/api/status-build.d.ts +7 -0
  36. package/dist/api/status-build.js +1 -0
  37. package/dist/api/status-build.js.map +1 -1
  38. package/dist/bin/jinn-mcp.d.ts +0 -12
  39. package/dist/bin/jinn-mcp.js +5 -14
  40. package/dist/bin/jinn-mcp.js.map +1 -1
  41. package/dist/build-meta.json +1 -1
  42. package/dist/cli/commands/auth.js +115 -25
  43. package/dist/cli/commands/auth.js.map +1 -1
  44. package/dist/cli/commands/bootstrap.js +1 -0
  45. package/dist/cli/commands/bootstrap.js.map +1 -1
  46. package/dist/cli/commands/doctor.js +130 -14
  47. package/dist/cli/commands/doctor.js.map +1 -1
  48. package/dist/cli/commands/fleet-scale.js +1 -0
  49. package/dist/cli/commands/fleet-scale.js.map +1 -1
  50. package/dist/cli/commands/fund-requirements.js +2 -0
  51. package/dist/cli/commands/fund-requirements.js.map +1 -1
  52. package/dist/cli/commands/intents.d.ts +17 -0
  53. package/dist/cli/commands/intents.js +489 -0
  54. package/dist/cli/commands/intents.js.map +1 -0
  55. package/dist/cli/commands/keys-backup.js +13 -11
  56. package/dist/cli/commands/keys-backup.js.map +1 -1
  57. package/dist/cli/commands/mcp.d.ts +3 -0
  58. package/dist/cli/commands/mcp.js +19 -0
  59. package/dist/cli/commands/mcp.js.map +1 -0
  60. package/dist/cli/commands/plugin-install.js +8 -4
  61. package/dist/cli/commands/plugin-install.js.map +1 -1
  62. package/dist/cli/commands/quickstart.js +60 -4
  63. package/dist/cli/commands/quickstart.js.map +1 -1
  64. package/dist/cli/commands/rewards.js +27 -1
  65. package/dist/cli/commands/rewards.js.map +1 -1
  66. package/dist/cli/commands/submit-intent.js +108 -5
  67. package/dist/cli/commands/submit-intent.js.map +1 -1
  68. package/dist/cli/commands/version.js +1 -0
  69. package/dist/cli/commands/version.js.map +1 -1
  70. package/dist/cli/deployment-digest.js +5 -0
  71. package/dist/cli/deployment-digest.js.map +1 -1
  72. package/dist/cli/execution-context.js +1 -0
  73. package/dist/cli/execution-context.js.map +1 -1
  74. package/dist/cli/index.js +4 -0
  75. package/dist/cli/index.js.map +1 -1
  76. package/dist/cli/intent-registry-access.d.ts +64 -0
  77. package/dist/cli/intent-registry-access.js +187 -0
  78. package/dist/cli/intent-registry-access.js.map +1 -0
  79. package/dist/cli/introspection-context.js +1 -0
  80. package/dist/cli/introspection-context.js.map +1 -1
  81. package/dist/cli/password.d.ts +21 -9
  82. package/dist/cli/password.js +45 -24
  83. package/dist/cli/password.js.map +1 -1
  84. package/dist/config.d.ts +110 -8
  85. package/dist/config.js +41 -12
  86. package/dist/config.js.map +1 -1
  87. package/dist/daemon/creator.d.ts +7 -1
  88. package/dist/daemon/creator.js +38 -3
  89. package/dist/daemon/creator.js.map +1 -1
  90. package/dist/daemon/daemon.d.ts +43 -0
  91. package/dist/daemon/daemon.js +87 -2
  92. package/dist/daemon/daemon.js.map +1 -1
  93. package/dist/earning/bootstrap.d.ts +2 -1
  94. package/dist/earning/bootstrap.js +72 -4
  95. package/dist/earning/bootstrap.js.map +1 -1
  96. package/dist/earning/contracts.d.ts +10 -0
  97. package/dist/earning/contracts.js +24 -0
  98. package/dist/earning/contracts.js.map +1 -1
  99. package/dist/earning/jinn-rewards.d.ts +9 -0
  100. package/dist/earning/jinn-rewards.js +7 -0
  101. package/dist/earning/jinn-rewards.js.map +1 -1
  102. package/dist/intents/prediction-apy-v0-auto.d.ts +11 -0
  103. package/dist/intents/prediction-apy-v0-auto.js +46 -0
  104. package/dist/intents/prediction-apy-v0-auto.js.map +1 -0
  105. package/dist/intents/prediction-apy-v0-template.d.ts +8 -0
  106. package/dist/intents/prediction-apy-v0-template.js +22 -0
  107. package/dist/intents/prediction-apy-v0-template.js.map +1 -0
  108. package/dist/intents/prediction-v0-auto.d.ts +53 -0
  109. package/dist/intents/prediction-v0-auto.js +84 -0
  110. package/dist/intents/prediction-v0-auto.js.map +1 -0
  111. package/dist/intents/prediction-v0-template.d.ts +65 -0
  112. package/dist/intents/prediction-v0-template.js +125 -0
  113. package/dist/intents/prediction-v0-template.js.map +1 -0
  114. package/dist/main.js +149 -1
  115. package/dist/main.js.map +1 -1
  116. package/dist/mcp/operator-server.d.ts +1 -1
  117. package/dist/mcp/operator-server.js +1 -1
  118. package/dist/preflight/claude-auth.d.ts +12 -1
  119. package/dist/preflight/claude-auth.js +21 -3
  120. package/dist/preflight/claude-auth.js.map +1 -1
  121. package/dist/restorer/engine/canonical-json.d.ts +18 -0
  122. package/dist/restorer/engine/canonical-json.js +59 -0
  123. package/dist/restorer/engine/canonical-json.js.map +1 -0
  124. package/dist/restorer/engine/claim.d.ts +69 -0
  125. package/dist/restorer/engine/claim.js +104 -0
  126. package/dist/restorer/engine/claim.js.map +1 -0
  127. package/dist/restorer/engine/delivery.d.ts +52 -0
  128. package/dist/restorer/engine/delivery.js +63 -0
  129. package/dist/restorer/engine/delivery.js.map +1 -0
  130. package/dist/restorer/engine/engine.d.ts +203 -0
  131. package/dist/restorer/engine/engine.js +753 -0
  132. package/dist/restorer/engine/engine.js.map +1 -0
  133. package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
  134. package/dist/restorer/engine/manifest-assembly.js +79 -0
  135. package/dist/restorer/engine/manifest-assembly.js.map +1 -0
  136. package/dist/restorer/engine/packaging.d.ts +87 -0
  137. package/dist/restorer/engine/packaging.js +350 -0
  138. package/dist/restorer/engine/packaging.js.map +1 -0
  139. package/dist/restorer/engine/persistence.d.ts +170 -0
  140. package/dist/restorer/engine/persistence.js +381 -0
  141. package/dist/restorer/engine/persistence.js.map +1 -0
  142. package/dist/restorer/engine/recovery.d.ts +22 -0
  143. package/dist/restorer/engine/recovery.js +24 -0
  144. package/dist/restorer/engine/recovery.js.map +1 -0
  145. package/dist/restorer/engine/registry.d.ts +62 -0
  146. package/dist/restorer/engine/registry.js +73 -0
  147. package/dist/restorer/engine/registry.js.map +1 -0
  148. package/dist/restorer/engine/signing.d.ts +30 -0
  149. package/dist/restorer/engine/signing.js +39 -0
  150. package/dist/restorer/engine/signing.js.map +1 -0
  151. package/dist/restorer/engine/state.d.ts +42 -0
  152. package/dist/restorer/engine/state.js +87 -0
  153. package/dist/restorer/engine/state.js.map +1 -0
  154. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
  155. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
  156. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  157. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +101 -0
  158. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +710 -0
  159. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  160. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
  161. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
  162. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  163. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
  164. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
  165. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  166. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
  167. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
  168. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  169. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +43 -0
  170. package/dist/restorer/impls/claude-mcp-prediction/index.js +230 -0
  171. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -0
  172. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.d.ts +38 -0
  173. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +135 -0
  174. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
  175. package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +8 -0
  176. package/dist/restorer/impls/claude-mcp-prediction/prompt.js +54 -0
  177. package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +1 -0
  178. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +36 -0
  179. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +137 -0
  180. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
  181. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +82 -0
  182. package/dist/restorer/impls/claude-mcp-prediction/types.js +6 -0
  183. package/dist/restorer/impls/claude-mcp-prediction/types.js.map +1 -0
  184. package/dist/restorer/impls/legacy-claude/index.d.ts +45 -0
  185. package/dist/restorer/impls/legacy-claude/index.js +71 -0
  186. package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
  187. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
  188. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
  189. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  190. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
  191. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
  192. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  193. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
  194. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
  195. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  196. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
  197. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
  198. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  199. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
  200. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
  201. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  202. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
  203. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
  204. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  205. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +43 -0
  206. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +431 -0
  207. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
  208. package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
  209. package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
  210. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
  211. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +32 -0
  212. package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
  213. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
  214. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +39 -0
  215. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +98 -0
  216. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -0
  217. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.d.ts +2 -0
  218. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js +7 -0
  219. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
  220. package/dist/restorer/impls/prediction-apy-v0-baseline/types.d.ts +4 -0
  221. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js +2 -0
  222. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +1 -0
  223. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +2 -0
  224. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +7 -0
  225. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
  226. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +39 -0
  227. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +186 -0
  228. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
  229. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.d.ts +9 -0
  230. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js +20 -0
  231. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
  232. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +7 -0
  233. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js +2 -0
  234. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
  235. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +29 -0
  236. package/dist/restorer/impls/prediction-v0-baseline/index.js +94 -0
  237. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
  238. package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
  239. package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
  240. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
  241. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
  242. package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
  243. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
  244. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
  245. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
  246. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  247. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
  248. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
  249. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  250. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
  251. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
  252. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  253. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +7 -0
  254. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +93 -0
  255. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  256. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
  257. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
  258. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  259. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +33 -0
  260. package/dist/restorer/impls/prediction-v0-evaluator/index.js +208 -0
  261. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
  262. package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
  263. package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
  264. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
  265. package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
  266. package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
  267. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
  268. package/dist/restorer/types.d.ts +177 -0
  269. package/dist/restorer/types.js +7 -0
  270. package/dist/restorer/types.js.map +1 -0
  271. package/dist/store/store.d.ts +3 -1
  272. package/dist/store/store.js +3 -0
  273. package/dist/store/store.js.map +1 -1
  274. package/dist/types/desired-state.d.ts +53 -0
  275. package/dist/types/desired-state.js +20 -0
  276. package/dist/types/desired-state.js.map +1 -1
  277. package/dist/types/index.d.ts +4 -1
  278. package/dist/types/index.js +4 -1
  279. package/dist/types/index.js.map +1 -1
  280. package/dist/types/portfolio.d.ts +1000 -0
  281. package/dist/types/portfolio.js +168 -0
  282. package/dist/types/portfolio.js.map +1 -0
  283. package/dist/types/prediction-apy.d.ts +919 -0
  284. package/dist/types/prediction-apy.js +121 -0
  285. package/dist/types/prediction-apy.js.map +1 -0
  286. package/dist/types/prediction.d.ts +925 -0
  287. package/dist/types/prediction.js +140 -0
  288. package/dist/types/prediction.js.map +1 -0
  289. package/dist/venues/aave-v3/addresses.d.ts +6 -0
  290. package/dist/venues/aave-v3/addresses.js +19 -0
  291. package/dist/venues/aave-v3/addresses.js.map +1 -0
  292. package/dist/venues/aave-v3/client.d.ts +81 -0
  293. package/dist/venues/aave-v3/client.js +97 -0
  294. package/dist/venues/aave-v3/client.js.map +1 -0
  295. package/dist/venues/chainlink/client.d.ts +99 -0
  296. package/dist/venues/chainlink/client.js +130 -0
  297. package/dist/venues/chainlink/client.js.map +1 -0
  298. package/dist/venues/chainlink/feeds.d.ts +8 -0
  299. package/dist/venues/chainlink/feeds.js +9 -0
  300. package/dist/venues/chainlink/feeds.js.map +1 -0
  301. package/dist/venues/hyperliquid/account-value.d.ts +30 -0
  302. package/dist/venues/hyperliquid/account-value.js +30 -0
  303. package/dist/venues/hyperliquid/account-value.js.map +1 -0
  304. package/dist/venues/hyperliquid/client.d.ts +63 -0
  305. package/dist/venues/hyperliquid/client.js +135 -0
  306. package/dist/venues/hyperliquid/client.js.map +1 -0
  307. package/dist/venues/hyperliquid/grid.d.ts +36 -0
  308. package/dist/venues/hyperliquid/grid.js +61 -0
  309. package/dist/venues/hyperliquid/grid.js.map +1 -0
  310. package/dist/venues/hyperliquid/types.d.ts +81 -0
  311. package/dist/venues/hyperliquid/types.js +8 -0
  312. package/dist/venues/hyperliquid/types.js.map +1 -0
  313. package/dist/withdraw/run-withdraw-plan.js +2 -0
  314. package/dist/withdraw/run-withdraw-plan.js.map +1 -1
  315. package/docker-compose.yml +44 -0
  316. package/package.json +12 -1
  317. package/skills/jinn-operator/SKILL.md +85 -0
package/dist/config.d.ts CHANGED
@@ -14,6 +14,7 @@
14
14
  * (mainnet V1, testnet V2) for JinnRouter claimDelivery encoding.
15
15
  */
16
16
  import { z } from 'zod';
17
+ import type { DesiredState } from './types/desired-state.js';
17
18
  export declare const JinnConfigSchema: z.ZodObject<{
18
19
  /**
19
20
  * Network to connect to.
@@ -29,6 +30,7 @@ export declare const JinnConfigSchema: z.ZodObject<{
29
30
  * https://sepolia.base.org for 'testnet'. Set explicitly to override.
30
31
  */
31
32
  rpcUrl: z.ZodOptional<z.ZodString>;
33
+ archiveRpcUrl: z.ZodOptional<z.ZodString>;
32
34
  /** Earning state directory */
33
35
  earningDir: z.ZodDefault<z.ZodString>;
34
36
  /** SQLite database path */
@@ -54,25 +56,68 @@ export declare const JinnConfigSchema: z.ZodObject<{
54
56
  claudePath: z.ZodDefault<z.ZodString>;
55
57
  /** Model for restoration/evaluation agent */
56
58
  claudeModel: z.ZodDefault<z.ZodString>;
59
+ /**
60
+ * How the operator runs the daemon. Set once at `jinn auth`, read by every
61
+ * command that probes the Claude CLI or spawns a subprocess. Leaving it
62
+ * unset falls back to filesystem-based detection (docker-compose.yml near
63
+ * cwd, /.dockerenv, etc.) which is error-prone inside a checkout of the
64
+ * repo itself.
65
+ * Env override: JINN_RUNTIME_MODE.
66
+ */
67
+ runtimeMode: z.ZodOptional<z.ZodEnum<["bare", "docker-compose", "container"]>>;
57
68
  /** Comma-separated or array of peer URLs */
58
69
  peers: z.ZodDefault<z.ZodUnion<[z.ZodEffects<z.ZodString, string[], string>, z.ZodArray<z.ZodString, "many">]>>;
59
70
  /** The Graph subgraph URL for artifact discovery */
60
71
  subgraphUrl: z.ZodOptional<z.ZodString>;
61
72
  /** This node's public HTTP endpoint (for 8004 registration) */
62
73
  nodeEndpoint: z.ZodOptional<z.ZodString>;
63
- /** Desired states to create and restore */
74
+ /** Desired states to create and restore. Empty by default; testnet auto-intents fill the loop. */
64
75
  desiredStates: z.ZodDefault<z.ZodArray<z.ZodObject<{
65
- id: z.ZodString;
76
+ id: z.ZodOptional<z.ZodString>;
66
77
  description: z.ZodString;
67
78
  context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
79
+ window: z.ZodOptional<z.ZodObject<{
80
+ startTs: z.ZodNumber;
81
+ endTs: z.ZodNumber;
82
+ }, "strip", z.ZodTypeAny, {
83
+ startTs: number;
84
+ endTs: number;
85
+ }, {
86
+ startTs: number;
87
+ endTs: number;
88
+ }>>;
89
+ spec: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
90
+ kind: z.ZodString;
91
+ }, "strip", z.ZodTypeAny, {
92
+ kind: string;
93
+ }, {
94
+ kind: string;
95
+ }>, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
96
+ eligibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
97
  }, "strip", z.ZodTypeAny, {
69
- id: string;
70
98
  description: string;
99
+ id?: string | undefined;
71
100
  context?: Record<string, unknown> | undefined;
101
+ window?: {
102
+ startTs: number;
103
+ endTs: number;
104
+ } | undefined;
105
+ spec?: ({
106
+ kind: string;
107
+ } & Record<string, unknown>) | undefined;
108
+ eligibility?: Record<string, unknown> | undefined;
72
109
  }, {
73
- id: string;
74
110
  description: string;
111
+ id?: string | undefined;
75
112
  context?: Record<string, unknown> | undefined;
113
+ window?: {
114
+ startTs: number;
115
+ endTs: number;
116
+ } | undefined;
117
+ spec?: ({
118
+ kind: string;
119
+ } & Record<string, unknown>) | undefined;
120
+ eligibility?: Record<string, unknown> | undefined;
76
121
  }>, "many">>;
77
122
  /** IPFS upload endpoint */
78
123
  ipfsRegistryUrl: z.ZodDefault<z.ZodString>;
@@ -86,6 +131,8 @@ export declare const JinnConfigSchema: z.ZodObject<{
86
131
  testnetMechDeploymentPath: z.ZodOptional<z.ZodString>;
87
132
  /** Optional Base Sepolia stOLAS deployment artifact path */
88
133
  testnetStolasDeploymentPath: z.ZodOptional<z.ZodString>;
134
+ /** Optional Base Sepolia ClaimRegistry deployment artifact path */
135
+ testnetClaimRegistryDeploymentPath: z.ZodOptional<z.ZodString>;
89
136
  /** Staking mode: 'standard' uses stOLAS (no OLAS needed), 'self-bond' uses operator-provided OLAS. */
90
137
  stakingMode: z.ZodDefault<z.ZodEnum<["standard", "self-bond"]>>;
91
138
  /** Number of services to bootstrap and run. */
@@ -100,6 +147,28 @@ export declare const JinnConfigSchema: z.ZodObject<{
100
147
  * Default is applied in bootstrap when unset. Env: JINN_MASTER_ETH_DAILY_WEI
101
148
  */
102
149
  masterEthDailyEstimateWei: z.ZodOptional<z.ZodString>;
150
+ /**
151
+ * Operator-controlled impl dispatch for the restorer engine.
152
+ *
153
+ * Wired by daemon (jinn-mono-bv5); engine consumes via RestorerImplRegistry config.
154
+ *
155
+ * byKind: explicit spec.kind → impl name mapping (highest priority)
156
+ * default: fallback impl name when no kind-specific match is found
157
+ * disabled: impl names to exclude from dispatch entirely
158
+ */
159
+ restorers: z.ZodOptional<z.ZodObject<{
160
+ byKind: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
161
+ default: z.ZodOptional<z.ZodString>;
162
+ disabled: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ byKind?: Record<string, string> | undefined;
165
+ default?: string | undefined;
166
+ disabled?: string[] | undefined;
167
+ }, {
168
+ byKind?: Record<string, string> | undefined;
169
+ default?: string | undefined;
170
+ disabled?: string[] | undefined;
171
+ }>>;
103
172
  }, "strip", z.ZodTypeAny, {
104
173
  network: "testnet" | "mainnet";
105
174
  earningDir: string;
@@ -112,9 +181,17 @@ export declare const JinnConfigSchema: z.ZodObject<{
112
181
  claudeModel: string;
113
182
  peers: string[];
114
183
  desiredStates: {
115
- id: string;
116
184
  description: string;
185
+ id?: string | undefined;
117
186
  context?: Record<string, unknown> | undefined;
187
+ window?: {
188
+ startTs: number;
189
+ endTs: number;
190
+ } | undefined;
191
+ spec?: ({
192
+ kind: string;
193
+ } & Record<string, unknown>) | undefined;
194
+ eligibility?: Record<string, unknown> | undefined;
118
195
  }[];
119
196
  ipfsRegistryUrl: string;
120
197
  ipfsGatewayUrl: string;
@@ -122,16 +199,25 @@ export declare const JinnConfigSchema: z.ZodObject<{
122
199
  targetServices: number;
123
200
  debug: boolean;
124
201
  rpcUrl?: string | undefined;
202
+ archiveRpcUrl?: string | undefined;
203
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
125
204
  subgraphUrl?: string | undefined;
126
205
  nodeEndpoint?: string | undefined;
127
206
  testnetL2DeploymentPath?: string | undefined;
128
207
  testnetL2TokenDeploymentPath?: string | undefined;
129
208
  testnetMechDeploymentPath?: string | undefined;
130
209
  testnetStolasDeploymentPath?: string | undefined;
210
+ testnetClaimRegistryDeploymentPath?: string | undefined;
131
211
  masterEthDailyEstimateWei?: string | undefined;
212
+ restorers?: {
213
+ byKind?: Record<string, string> | undefined;
214
+ default?: string | undefined;
215
+ disabled?: string[] | undefined;
216
+ } | undefined;
132
217
  }, {
133
218
  network?: "testnet" | "mainnet" | undefined;
134
219
  rpcUrl?: string | undefined;
220
+ archiveRpcUrl?: string | undefined;
135
221
  earningDir?: string | undefined;
136
222
  dbPath?: string | undefined;
137
223
  pollIntervalMs?: number | undefined;
@@ -140,13 +226,22 @@ export declare const JinnConfigSchema: z.ZodObject<{
140
226
  apiPort?: number | undefined;
141
227
  claudePath?: string | undefined;
142
228
  claudeModel?: string | undefined;
229
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
143
230
  peers?: string | string[] | undefined;
144
231
  subgraphUrl?: string | undefined;
145
232
  nodeEndpoint?: string | undefined;
146
233
  desiredStates?: {
147
- id: string;
148
234
  description: string;
235
+ id?: string | undefined;
149
236
  context?: Record<string, unknown> | undefined;
237
+ window?: {
238
+ startTs: number;
239
+ endTs: number;
240
+ } | undefined;
241
+ spec?: ({
242
+ kind: string;
243
+ } & Record<string, unknown>) | undefined;
244
+ eligibility?: Record<string, unknown> | undefined;
150
245
  }[] | undefined;
151
246
  ipfsRegistryUrl?: string | undefined;
152
247
  ipfsGatewayUrl?: string | undefined;
@@ -154,14 +249,21 @@ export declare const JinnConfigSchema: z.ZodObject<{
154
249
  testnetL2TokenDeploymentPath?: string | undefined;
155
250
  testnetMechDeploymentPath?: string | undefined;
156
251
  testnetStolasDeploymentPath?: string | undefined;
252
+ testnetClaimRegistryDeploymentPath?: string | undefined;
157
253
  stakingMode?: "standard" | "self-bond" | undefined;
158
254
  targetServices?: number | undefined;
159
255
  debug?: boolean | undefined;
160
256
  masterEthDailyEstimateWei?: string | undefined;
257
+ restorers?: {
258
+ byKind?: Record<string, string> | undefined;
259
+ default?: string | undefined;
260
+ disabled?: string[] | undefined;
261
+ } | undefined;
161
262
  }>;
162
- /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined). */
163
- export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl'> & {
263
+ /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and desiredStates with id always assigned. */
264
+ export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'desiredStates'> & {
164
265
  rpcUrl: string;
266
+ desiredStates: DesiredState[];
165
267
  };
166
268
  export type ConfigLoadErrorCode = 'config_file_not_found' | 'config_json_invalid' | 'desired_states_file_not_found' | 'desired_states_json_invalid' | 'config_invalid';
167
269
  export declare class ConfigLoadError extends Error {
package/dist/config.js CHANGED
@@ -17,12 +17,8 @@ import { existsSync, readFileSync } from 'node:fs';
17
17
  import { homedir } from 'node:os';
18
18
  import { join } from 'node:path';
19
19
  import { z } from 'zod';
20
+ import { DesiredStateSchema, parseDesiredState } from './types/desired-state.js';
20
21
  // ── Schema ──────────────────────────────────────────────────────────────────
21
- const DesiredStateSchema = z.object({
22
- id: z.string(),
23
- description: z.string().min(1),
24
- context: z.record(z.unknown()).optional(),
25
- });
26
22
  export const JinnConfigSchema = z.object({
27
23
  /**
28
24
  * Network to connect to.
@@ -38,6 +34,7 @@ export const JinnConfigSchema = z.object({
38
34
  * https://sepolia.base.org for 'testnet'. Set explicitly to override.
39
35
  */
40
36
  rpcUrl: z.string().optional(),
37
+ archiveRpcUrl: z.string().optional(),
41
38
  /** Earning state directory */
42
39
  earningDir: z.string().default(join(homedir(), '.jinn-client', 'earning')),
43
40
  /** SQLite database path */
@@ -63,6 +60,15 @@ export const JinnConfigSchema = z.object({
63
60
  claudePath: z.string().default('claude'),
64
61
  /** Model for restoration/evaluation agent */
65
62
  claudeModel: z.string().default('claude-haiku-4-5-20251001'),
63
+ /**
64
+ * How the operator runs the daemon. Set once at `jinn auth`, read by every
65
+ * command that probes the Claude CLI or spawns a subprocess. Leaving it
66
+ * unset falls back to filesystem-based detection (docker-compose.yml near
67
+ * cwd, /.dockerenv, etc.) which is error-prone inside a checkout of the
68
+ * repo itself.
69
+ * Env override: JINN_RUNTIME_MODE.
70
+ */
71
+ runtimeMode: z.enum(['bare', 'docker-compose', 'container']).optional(),
66
72
  /** Comma-separated or array of peer URLs */
67
73
  peers: z.union([
68
74
  z.string().transform(s => s.split(',').filter(Boolean)),
@@ -72,13 +78,8 @@ export const JinnConfigSchema = z.object({
72
78
  subgraphUrl: z.string().optional(),
73
79
  /** This node's public HTTP endpoint (for 8004 registration) */
74
80
  nodeEndpoint: z.string().optional(),
75
- /** Desired states to create and restore */
76
- desiredStates: z.array(DesiredStateSchema).default([
77
- {
78
- id: 'health-check',
79
- description: 'The service is running and participating in the Jinn protocol loop.',
80
- },
81
- ]),
81
+ /** Desired states to create and restore. Empty by default; testnet auto-intents fill the loop. */
82
+ desiredStates: z.array(DesiredStateSchema).default([]),
82
83
  /** IPFS upload endpoint */
83
84
  ipfsRegistryUrl: z.string().default('https://registry.autonolas.tech'),
84
85
  /** IPFS read endpoint */
@@ -91,6 +92,8 @@ export const JinnConfigSchema = z.object({
91
92
  testnetMechDeploymentPath: z.string().optional(),
92
93
  /** Optional Base Sepolia stOLAS deployment artifact path */
93
94
  testnetStolasDeploymentPath: z.string().optional(),
95
+ /** Optional Base Sepolia ClaimRegistry deployment artifact path */
96
+ testnetClaimRegistryDeploymentPath: z.string().optional(),
94
97
  /** Staking mode: 'standard' uses stOLAS (no OLAS needed), 'self-bond' uses operator-provided OLAS. */
95
98
  stakingMode: z.enum(['standard', 'self-bond']).default('standard'),
96
99
  /** Number of services to bootstrap and run. */
@@ -108,6 +111,22 @@ export const JinnConfigSchema = z.object({
108
111
  .string()
109
112
  .regex(/^\d+$/, 'must be a non-negative integer string')
110
113
  .optional(),
114
+ /**
115
+ * Operator-controlled impl dispatch for the restorer engine.
116
+ *
117
+ * Wired by daemon (jinn-mono-bv5); engine consumes via RestorerImplRegistry config.
118
+ *
119
+ * byKind: explicit spec.kind → impl name mapping (highest priority)
120
+ * default: fallback impl name when no kind-specific match is found
121
+ * disabled: impl names to exclude from dispatch entirely
122
+ */
123
+ restorers: z
124
+ .object({
125
+ byKind: z.record(z.string()).optional(),
126
+ default: z.string().optional(),
127
+ disabled: z.array(z.string()).optional(),
128
+ })
129
+ .optional(),
111
130
  });
112
131
  // ── Defaults ────────────────────────────────────────────────────────────────
113
132
  const DEFAULT_DIR = join(homedir(), '.jinn-client');
@@ -173,6 +192,8 @@ export function loadConfig(configPath) {
173
192
  merged.claudePath = env['JINN_CLAUDE_PATH'];
174
193
  if (env['JINN_CLAUDE_MODEL'])
175
194
  merged.claudeModel = env['JINN_CLAUDE_MODEL'];
195
+ if (env['JINN_RUNTIME_MODE'])
196
+ merged.runtimeMode = env['JINN_RUNTIME_MODE'];
176
197
  if (env['JINN_PEERS'])
177
198
  merged.peers = env['JINN_PEERS'];
178
199
  if (env['JINN_SUBGRAPH_URL'])
@@ -189,6 +210,9 @@ export function loadConfig(configPath) {
189
210
  merged.testnetL2TokenDeploymentPath = env['JINN_TESTNET_TOKEN_DEPLOYMENT'];
190
211
  if (env['JINN_TESTNET_MECH_DEPLOYMENT'])
191
212
  merged.testnetMechDeploymentPath = env['JINN_TESTNET_MECH_DEPLOYMENT'];
213
+ if (env['JINN_TESTNET_CLAIM_REGISTRY_DEPLOYMENT']) {
214
+ merged.testnetClaimRegistryDeploymentPath = env['JINN_TESTNET_CLAIM_REGISTRY_DEPLOYMENT'];
215
+ }
192
216
  if (env['JINN_STAKING_MODE'])
193
217
  merged.stakingMode = env['JINN_STAKING_MODE'];
194
218
  if (env['JINN_TARGET_SERVICES'])
@@ -214,6 +238,9 @@ export function loadConfig(configPath) {
214
238
  else if (env['BASE_RPC_URL']) {
215
239
  merged.rpcUrl = env['BASE_RPC_URL'];
216
240
  }
241
+ if (env['JINN_ARCHIVE_RPC_URL']) {
242
+ merged.archiveRpcUrl = env['JINN_ARCHIVE_RPC_URL'];
243
+ }
217
244
  // desiredStates from env points to a JSON file
218
245
  if (env['JINN_DESIRED_STATES']) {
219
246
  const statesPath = env['JINN_DESIRED_STATES'];
@@ -248,6 +275,8 @@ export function loadConfig(configPath) {
248
275
  return {
249
276
  ...parsed,
250
277
  rpcUrl: parsed.rpcUrl ?? defaultRpcUrl,
278
+ // parseDesiredState assigns a UUID to any entry missing an id
279
+ desiredStates: parsed.desiredStates.map(parseDesiredState),
251
280
  };
252
281
  }
253
282
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAE1D;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B,8BAA8B;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAE1E,2BAA2B;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAEtE,gCAAgC;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAE/D;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEhE,oBAAoB;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAElD,gCAAgC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAExC,6CAA6C;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAE5D,4CAA4C;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;QACb,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAEd,oDAAoD;IACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,+DAA+D;IAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC,2CAA2C;IAC3C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;QACjD;YACE,EAAE,EAAE,cAAc;YAClB,WAAW,EAAE,qEAAqE;SACnF;KACF,CAAC;IAEF,2BAA2B;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;IAEtE,yBAAyB;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;IAEpE,sEAAsE;IACtE,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9C,oEAAoE;IACpE,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnD,sEAAsE;IACtE,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhD,4DAA4D;IAC5D,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElD,sGAAsG;IACtG,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAElE,+CAA+C;IAC/C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEjC;;;OAGG;IACH,yBAAyB,EAAE,CAAC;SACzB,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,EAAE,uCAAuC,CAAC;SACvD,QAAQ,EAAE;CACd,CAAC,CAAC;AAOH,+EAA+E;AAE/E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACpD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAS7D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAsB;IAC1B,OAAO,CAA2B;IAE3C,YAAY,IAAyB,EAAE,OAAe,EAAE,OAAiC;QACvF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC5C,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,UAAU,IAAI,mBAAmB,CAAC;IACnD,IAAI,UAAU,GAA4B,EAAE,CAAC;IAE7C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CACvB,qBAAqB,EACrB,gCAAgC,QAAQ,EAAE,EAC1C;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,0BAA0B,UAAU,EAAE,EAAE;YACzF,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAE,CAAC;IAE1D,IAAI,GAAG,CAAC,cAAc,CAAC;QAAY,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,GAAG,CAAC,kBAAkB,CAAC;QAAQ,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/E,IAAI,GAAG,CAAC,cAAc,CAAC;QAAY,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACvE,IAAI,GAAG,CAAC,uBAAuB,CAAC;QAAG,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC;IACtG,IAAI,GAAG,CAAC,+BAA+B,CAAC,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,CAAC,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,GAAG,CAAC,gCAAgC,CAAC;QAAE,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtI,IAAI,GAAG,CAAC,eAAe,CAAC;QAAW,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;IACvF,IAAI,GAAG,CAAC,kBAAkB,CAAC;QAAQ,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/E,IAAI,GAAG,CAAC,mBAAmB,CAAC;QAAO,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjF,IAAI,GAAG,CAAC,YAAY,CAAC;QAAc,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,GAAG,CAAC,mBAAmB,CAAC;QAAO,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjF,IAAI,GAAG,CAAC,oBAAoB,CAAC;QAAM,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnF,IAAI,GAAG,CAAC,wBAAwB,CAAC;QAAE,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,uBAAuB,CAAC;QAAG,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACxF,IAAI,GAAG,CAAC,4BAA4B,CAAC;QAAE,MAAM,CAAC,uBAAuB,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1G,IAAI,GAAG,CAAC,+BAA+B,CAAC;QAAE,MAAM,CAAC,4BAA4B,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACrH,IAAI,GAAG,CAAC,8BAA8B,CAAC;QAAE,MAAM,CAAC,yBAAyB,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAChH,IAAI,GAAG,CAAC,mBAAmB,CAAC;QAAY,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACtF,IAAI,GAAG,CAAC,sBAAsB,CAAC;QAAK,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,yBAAyB,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,+CAA+C;IAC/C,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,+BAA+B,EAC/B,uCAAuC,UAAU,EAAE,EACnD,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CACvB,6BAA6B,EAC7B,6CAA6C,UAAU,EAAE,EACzD;gBACE,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,iBAAiB,EACjB;YACE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;SACJ,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS;QAChD,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,0BAA0B,CAAC;IAE/B,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAiB,OAAO,CAAC,IAAI;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -7,17 +7,23 @@ export interface ActiveAttempt {
7
7
  restorationRequestId: string;
8
8
  status: 'pending' | 'resolved';
9
9
  }
10
+ /** Returns a freshly-built DesiredState for this tick, or null to skip. */
11
+ export type IntentGenerator = () => Promise<DesiredState | null>;
10
12
  export declare class CreatorLoop {
11
13
  private readonly adapter;
12
14
  private readonly desiredStates;
13
15
  private readonly store;
16
+ private readonly safeAddress?;
14
17
  private stopped;
15
18
  private posted;
16
19
  private attempts;
17
20
  private stopResolve;
18
21
  private stopPromise;
22
+ private readonly generators;
19
23
  private static readonly REPOST_INTERVAL_MS;
20
- constructor(adapter: ExecutionAdapter, desiredStates: DesiredState[], store: Store);
24
+ /** SQLite config key for durable idempotency across daemon restarts. */
25
+ private static cacheKey;
26
+ constructor(adapter: ExecutionAdapter, desiredStates: DesiredState[], store: Store, generators?: IntentGenerator[], safeAddress?: string | undefined);
21
27
  tick(): Promise<RequestId | null>;
22
28
  run(): Promise<void>;
23
29
  stop(): void;
@@ -4,29 +4,63 @@ export class CreatorLoop {
4
4
  adapter;
5
5
  desiredStates;
6
6
  store;
7
+ safeAddress;
7
8
  stopped = false;
8
- posted = new Map(); // stateId → timestamp of last post
9
+ posted = new Map(); // stateId → timestamp of last post (in-memory fast-path)
9
10
  attempts = new Map();
10
11
  stopResolve = null;
11
12
  stopPromise;
13
+ generators;
12
14
  // Minimum interval between posting the same desired state (ms).
13
15
  // ~20 activities/day needed; each cycle = 4 activities; 5 cycles/day = 1 every ~4.8h.
14
16
  // Use 4h to provide safety margin.
15
17
  static REPOST_INTERVAL_MS = 4 * 60 * 60 * 1000;
16
- constructor(adapter, desiredStates, store) {
18
+ /** SQLite config key for durable idempotency across daemon restarts. */
19
+ static cacheKey(state, safeAddress) {
20
+ const prefix = safeAddress ? `created_intent:${safeAddress}` : 'created_intent';
21
+ return `${prefix}:${state.id}`;
22
+ }
23
+ constructor(adapter, desiredStates, store, generators = [], safeAddress) {
17
24
  this.adapter = adapter;
18
25
  this.desiredStates = desiredStates;
19
26
  this.store = store;
27
+ this.safeAddress = safeAddress;
28
+ this.generators = generators;
20
29
  this.stopPromise = new Promise(resolve => {
21
30
  this.stopResolve = resolve;
22
31
  });
23
32
  }
24
33
  async tick() {
25
34
  const now = Date.now();
26
- for (const state of this.desiredStates) {
35
+ // Compose candidates: static configured states + freshly generated ones.
36
+ // Generators returning null are filtered (e.g. Chainlink read failure).
37
+ const generated = [];
38
+ for (const gen of this.generators) {
39
+ try {
40
+ const result = await gen();
41
+ if (result)
42
+ generated.push(result);
43
+ }
44
+ catch (err) {
45
+ console.error('[creator] generator error (skipping this tick):', err);
46
+ }
47
+ }
48
+ const candidates = [...this.desiredStates, ...generated];
49
+ for (const state of candidates) {
50
+ // In-memory fast-path: posted within the 4h window → skip.
27
51
  const lastPosted = this.posted.get(state.id);
28
52
  if (lastPosted && (now - lastPosted) < CreatorLoop.REPOST_INTERVAL_MS)
29
53
  continue;
54
+ // Durable idempotency: SQLite cache survives daemon restarts. If we
55
+ // already posted this state.id before (and it's still within the repost
56
+ // window OR the id is stable-per-hour like auto-generators), skip.
57
+ const cacheKey = CreatorLoop.cacheKey(state, this.safeAddress);
58
+ const cachedRequestId = this.store.getConfigValue(cacheKey);
59
+ if (cachedRequestId) {
60
+ // Refresh the in-memory tracker so subsequent ticks hit the fast-path.
61
+ this.posted.set(state.id, now);
62
+ continue;
63
+ }
30
64
  try {
31
65
  const prev = this.attempts.get(state.id);
32
66
  const attemptNumber = prev ? prev.attemptNumber + 1 : 1;
@@ -46,6 +80,7 @@ export class CreatorLoop {
46
80
  status: 'pending',
47
81
  });
48
82
  this.store.recordOwnActivity(requestId, 'created');
83
+ this.store.setConfigValue(cacheKey, requestId);
49
84
  return requestId;
50
85
  }
51
86
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/daemon/creator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/daemon/creator.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type { ExecutionAdapter } from '../adapters/adapter.js';
2
2
  import type { Runner } from '../runner/runner.js';
3
3
  import type { DesiredState } from '../types/index.js';
4
+ import { type IntentGenerator } from './creator.js';
4
5
  import type { StatusGatherConfig } from '../api/gather-status.js';
5
6
  import type { EthHttpSigner } from '../auth/erc8128.js';
6
7
  import { type RegistryConfig } from '../discovery/registry.js';
7
8
  import type { X402Config } from '../x402/handler.js';
8
9
  import { type RewardClaimLoopConfig } from './reward-claim-loop.js';
10
+ import { type RestorationEngineOptions } from '../restorer/engine/engine.js';
9
11
  import { type BalanceTopupLoopConfig } from './balance-topup-loop.js';
10
12
  export interface DaemonConfig {
11
13
  adapter: ExecutionAdapter;
@@ -13,6 +15,8 @@ export interface DaemonConfig {
13
15
  desiredStates: DesiredState[];
14
16
  dbPath: string;
15
17
  shutdownTimeoutMs?: number;
18
+ /** Engine tick interval (ms) for re-driving in-flight intents. Defaults to 5000. */
19
+ pollIntervalMs?: number;
16
20
  apiPort?: number;
17
21
  peers?: string[];
18
22
  signer?: EthHttpSigner;
@@ -33,12 +37,37 @@ export interface DaemonConfig {
33
37
  balanceTopup?: BalanceTopupLoopConfig;
34
38
  /** Passed to HTTP API for GET /v1/status (fleet + RPC hints). */
35
39
  status?: StatusGatherConfig;
40
+ /**
41
+ * Extra intent generators called each CreatorLoop tick. Each returns a
42
+ * freshly-built DesiredState (or null to skip this tick). Used e.g. for
43
+ * auto-posting price-aware prediction.v0 intents on testnet.
44
+ */
45
+ intentGenerators?: IntentGenerator[];
46
+ /**
47
+ * Creator Safe address — used to scope CreatorLoop's SQLite idempotency
48
+ * cache keys per-Safe. Without this, two co-located daemons on the same
49
+ * DB would collide. Optional for backwards compatibility.
50
+ */
51
+ creatorSafeAddress?: string;
52
+ /**
53
+ * When provided, the daemon uses RestorationEngine (new engine path) instead
54
+ * of the legacy RestorerLoop for intent dispatch.
55
+ *
56
+ * Required for portfolio.v0 spec kind (both restoration and evaluation).
57
+ * Evaluation intents (type === 'evaluation') are dispatched via supports() to
58
+ * portfolio-v0-evaluator; legacy health-check intents (no spec) fall back to
59
+ * legacy-claude via the default impl in the registry.
60
+ */
61
+ restorationEngine?: Omit<RestorationEngineOptions, 'store'>;
36
62
  }
37
63
  export declare class Daemon {
38
64
  private readonly config;
39
65
  private store;
40
66
  private creatorLoop;
67
+ /** @deprecated Kept for backwards compatibility (test suite). Not started when restorationEngine is configured. */
41
68
  private restorerLoop;
69
+ private restorationEngine?;
70
+ private engineStopped;
42
71
  private deliveryWatcherLoop;
43
72
  private adapter;
44
73
  private loopPromises;
@@ -53,6 +82,20 @@ export declare class Daemon {
53
82
  start(): Promise<void>;
54
83
  stop(): Promise<void>;
55
84
  getShutdownState(): string | null;
85
+ /**
86
+ * Bridge loop: consumes adapter.watchForRequests() and routes each request to
87
+ * the RestorationEngine via observe() + process().
88
+ *
89
+ * For legacy intents (no spec), the engine dispatches to the legacy-claude impl.
90
+ * For portfolio.v0 intents, the engine dispatches to claude-mcp-hyperliquid.
91
+ * For portfolio.v0.eval intents, the engine dispatches to portfolio-v0-evaluator.
92
+ *
93
+ * On-chain provenance (intentCid, onchainCreationTx, onchainCreationBlock) is
94
+ * populated from the RestorationRequest when available (MechAdapter sets these
95
+ * from the MarketplaceRequest event log). Legacy paths that don't populate them
96
+ * fall back to safe defaults with a warning.
97
+ */
98
+ private _runEngineWatcherLoop;
56
99
  /**
57
100
  * Register an artifact on the 8004 registry (fire-and-forget).
58
101
  * Called after local artifact publish if registry is configured.