@jinn-network/client 0.1.1 → 0.1.2-canary.6237288d

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 (424) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CONTRIBUTING.md +123 -0
  3. package/README.md +213 -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/adapter.d.ts +7 -0
  7. package/dist/adapters/claim-registry/abi.d.ts +127 -0
  8. package/dist/adapters/claim-registry/abi.js +93 -0
  9. package/dist/adapters/claim-registry/abi.js.map +1 -0
  10. package/dist/adapters/claim-registry/client.d.ts +89 -0
  11. package/dist/adapters/claim-registry/client.js +205 -0
  12. package/dist/adapters/claim-registry/client.js.map +1 -0
  13. package/dist/adapters/mech/adapter.d.ts +5 -0
  14. package/dist/adapters/mech/adapter.js +211 -56
  15. package/dist/adapters/mech/adapter.js.map +1 -1
  16. package/dist/adapters/mech/contracts.d.ts +19 -1
  17. package/dist/adapters/mech/contracts.js +112 -8
  18. package/dist/adapters/mech/contracts.js.map +1 -1
  19. package/dist/adapters/mech/ipfs.d.ts +38 -5
  20. package/dist/adapters/mech/ipfs.js +174 -17
  21. package/dist/adapters/mech/ipfs.js.map +1 -1
  22. package/dist/adapters/mech/safe.js +8 -6
  23. package/dist/adapters/mech/safe.js.map +1 -1
  24. package/dist/adapters/mech/types.d.ts +22 -46
  25. package/dist/adapters/mech/types.js +16 -35
  26. package/dist/adapters/mech/types.js.map +1 -1
  27. package/dist/api/balance-build.js +3 -3
  28. package/dist/api/balance-build.js.map +1 -1
  29. package/dist/api/fleet-build.js +35 -40
  30. package/dist/api/fleet-build.js.map +1 -1
  31. package/dist/api/gather-status.d.ts +6 -0
  32. package/dist/api/gather-status.js +187 -4
  33. package/dist/api/gather-status.js.map +1 -1
  34. package/dist/api/history-build.d.ts +5 -1
  35. package/dist/api/history-build.js +51 -26
  36. package/dist/api/history-build.js.map +1 -1
  37. package/dist/api/portfolio-v0-build.d.ts +83 -0
  38. package/dist/api/portfolio-v0-build.js +143 -0
  39. package/dist/api/portfolio-v0-build.js.map +1 -0
  40. package/dist/api/portfolio-v0-doctor.d.ts +37 -0
  41. package/dist/api/portfolio-v0-doctor.js +123 -0
  42. package/dist/api/portfolio-v0-doctor.js.map +1 -0
  43. package/dist/api/rewards-build.js +30 -14
  44. package/dist/api/rewards-build.js.map +1 -1
  45. package/dist/api/status-build.d.ts +39 -6
  46. package/dist/api/status-build.js +3 -1
  47. package/dist/api/status-build.js.map +1 -1
  48. package/dist/api/status-rollup-build.d.ts +2 -0
  49. package/dist/api/status-rollup-build.js +30 -3
  50. package/dist/api/status-rollup-build.js.map +1 -1
  51. package/dist/bin/jinn-mcp.d.ts +0 -12
  52. package/dist/bin/jinn-mcp.js +5 -14
  53. package/dist/bin/jinn-mcp.js.map +1 -1
  54. package/dist/build-meta.json +1 -1
  55. package/dist/cli/commands/auth.js +137 -25
  56. package/dist/cli/commands/auth.js.map +1 -1
  57. package/dist/cli/commands/balance.js +8 -1
  58. package/dist/cli/commands/balance.js.map +1 -1
  59. package/dist/cli/commands/bootstrap.js +23 -0
  60. package/dist/cli/commands/bootstrap.js.map +1 -1
  61. package/dist/cli/commands/doctor.js +160 -14
  62. package/dist/cli/commands/doctor.js.map +1 -1
  63. package/dist/cli/commands/fleet-scale.js +1 -0
  64. package/dist/cli/commands/fleet-scale.js.map +1 -1
  65. package/dist/cli/commands/fleet.js +10 -1
  66. package/dist/cli/commands/fleet.js.map +1 -1
  67. package/dist/cli/commands/fund-requirements.js +2 -0
  68. package/dist/cli/commands/fund-requirements.js.map +1 -1
  69. package/dist/cli/commands/history.js +25 -6
  70. package/dist/cli/commands/history.js.map +1 -1
  71. package/dist/cli/commands/intents.d.ts +17 -0
  72. package/dist/cli/commands/intents.js +489 -0
  73. package/dist/cli/commands/intents.js.map +1 -0
  74. package/dist/cli/commands/keys-backup.js +13 -11
  75. package/dist/cli/commands/keys-backup.js.map +1 -1
  76. package/dist/cli/commands/logs.js +35 -11
  77. package/dist/cli/commands/logs.js.map +1 -1
  78. package/dist/cli/commands/mcp.d.ts +3 -0
  79. package/dist/cli/commands/mcp.js +19 -0
  80. package/dist/cli/commands/mcp.js.map +1 -0
  81. package/dist/cli/commands/plugin-install.js +8 -4
  82. package/dist/cli/commands/plugin-install.js.map +1 -1
  83. package/dist/cli/commands/quickstart.js +99 -5
  84. package/dist/cli/commands/quickstart.js.map +1 -1
  85. package/dist/cli/commands/rewards.js +27 -1
  86. package/dist/cli/commands/rewards.js.map +1 -1
  87. package/dist/cli/commands/run.js +38 -0
  88. package/dist/cli/commands/run.js.map +1 -1
  89. package/dist/cli/commands/status.js +11 -1
  90. package/dist/cli/commands/status.js.map +1 -1
  91. package/dist/cli/commands/submit-intent.js +110 -44
  92. package/dist/cli/commands/submit-intent.js.map +1 -1
  93. package/dist/cli/commands/version.js +1 -0
  94. package/dist/cli/commands/version.js.map +1 -1
  95. package/dist/cli/deployment-digest.js +5 -0
  96. package/dist/cli/deployment-digest.js.map +1 -1
  97. package/dist/cli/execution-context.js +1 -0
  98. package/dist/cli/execution-context.js.map +1 -1
  99. package/dist/cli/index.js +4 -0
  100. package/dist/cli/index.js.map +1 -1
  101. package/dist/cli/intent-registry-access.d.ts +62 -0
  102. package/dist/cli/intent-registry-access.js +165 -0
  103. package/dist/cli/intent-registry-access.js.map +1 -0
  104. package/dist/cli/introspection-context.js +12 -8
  105. package/dist/cli/introspection-context.js.map +1 -1
  106. package/dist/cli/password.d.ts +21 -9
  107. package/dist/cli/password.js +45 -24
  108. package/dist/cli/password.js.map +1 -1
  109. package/dist/config.d.ts +137 -8
  110. package/dist/config.js +70 -12
  111. package/dist/config.js.map +1 -1
  112. package/dist/daemon/balance-topup-loop.js +32 -4
  113. package/dist/daemon/balance-topup-loop.js.map +1 -1
  114. package/dist/daemon/creator.d.ts +7 -4
  115. package/dist/daemon/creator.js +55 -26
  116. package/dist/daemon/creator.js.map +1 -1
  117. package/dist/daemon/daemon.d.ts +35 -3
  118. package/dist/daemon/daemon.js +99 -7
  119. package/dist/daemon/daemon.js.map +1 -1
  120. package/dist/daemon/delivery-watcher.d.ts +3 -1
  121. package/dist/daemon/delivery-watcher.js +19 -1
  122. package/dist/daemon/delivery-watcher.js.map +1 -1
  123. package/dist/daemon/reward-claim-loop.js +38 -1
  124. package/dist/daemon/reward-claim-loop.js.map +1 -1
  125. package/dist/dashboard/index.html +71 -496
  126. package/dist/discovery/registry.d.ts +54 -0
  127. package/dist/discovery/registry.js +73 -0
  128. package/dist/discovery/registry.js.map +1 -1
  129. package/dist/earning/bootstrap.d.ts +2 -1
  130. package/dist/earning/bootstrap.js +71 -33
  131. package/dist/earning/bootstrap.js.map +1 -1
  132. package/dist/earning/contracts.d.ts +10 -0
  133. package/dist/earning/contracts.js +24 -0
  134. package/dist/earning/contracts.js.map +1 -1
  135. package/dist/earning/jinn-rewards.d.ts +9 -0
  136. package/dist/earning/jinn-rewards.js +7 -0
  137. package/dist/earning/jinn-rewards.js.map +1 -1
  138. package/dist/earning/stolas-claim.d.ts +6 -0
  139. package/dist/earning/stolas-claim.js +7 -0
  140. package/dist/earning/stolas-claim.js.map +1 -1
  141. package/dist/intents/kinds/constants.d.ts +5 -0
  142. package/dist/intents/kinds/constants.js +6 -0
  143. package/dist/intents/kinds/constants.js.map +1 -0
  144. package/dist/intents/kinds/index.d.ts +28 -0
  145. package/dist/intents/kinds/index.js +50 -0
  146. package/dist/intents/kinds/index.js.map +1 -0
  147. package/dist/intents/kinds/portfolio-v0.d.ts +2 -0
  148. package/dist/intents/kinds/portfolio-v0.js +13 -0
  149. package/dist/intents/kinds/portfolio-v0.js.map +1 -0
  150. package/dist/intents/kinds/prediction-apy-v0.d.ts +3 -0
  151. package/dist/intents/kinds/prediction-apy-v0.js +21 -0
  152. package/dist/intents/kinds/prediction-apy-v0.js.map +1 -0
  153. package/dist/intents/kinds/prediction-v0.d.ts +3 -0
  154. package/dist/intents/kinds/prediction-v0.js +32 -0
  155. package/dist/intents/kinds/prediction-v0.js.map +1 -0
  156. package/dist/intents/kinds/spec-kind.d.ts +38 -0
  157. package/dist/intents/kinds/spec-kind.js +6 -0
  158. package/dist/intents/kinds/spec-kind.js.map +1 -0
  159. package/dist/intents/posting-service.d.ts +26 -0
  160. package/dist/intents/posting-service.js +218 -0
  161. package/dist/intents/posting-service.js.map +1 -0
  162. package/dist/intents/prediction-apy-v0-auto.d.ts +11 -0
  163. package/dist/intents/prediction-apy-v0-auto.js +46 -0
  164. package/dist/intents/prediction-apy-v0-auto.js.map +1 -0
  165. package/dist/intents/prediction-apy-v0-template.d.ts +8 -0
  166. package/dist/intents/prediction-apy-v0-template.js +22 -0
  167. package/dist/intents/prediction-apy-v0-template.js.map +1 -0
  168. package/dist/intents/prediction-v0-auto.d.ts +53 -0
  169. package/dist/intents/prediction-v0-auto.js +84 -0
  170. package/dist/intents/prediction-v0-auto.js.map +1 -0
  171. package/dist/intents/prediction-v0-template.d.ts +70 -0
  172. package/dist/intents/prediction-v0-template.js +145 -0
  173. package/dist/intents/prediction-v0-template.js.map +1 -0
  174. package/dist/intents/sources.d.ts +39 -0
  175. package/dist/intents/sources.js +42 -0
  176. package/dist/intents/sources.js.map +1 -0
  177. package/dist/main.js +175 -3
  178. package/dist/main.js.map +1 -1
  179. package/dist/mcp/operator-server.d.ts +1 -1
  180. package/dist/mcp/operator-server.js +1 -1
  181. package/dist/mcp/server.js +8 -4
  182. package/dist/mcp/server.js.map +1 -1
  183. package/dist/observability/emit-event.d.ts +12 -0
  184. package/dist/observability/emit-event.js +27 -0
  185. package/dist/observability/emit-event.js.map +1 -0
  186. package/dist/preflight/api-port.d.ts +13 -0
  187. package/dist/preflight/api-port.js +32 -0
  188. package/dist/preflight/api-port.js.map +1 -0
  189. package/dist/preflight/claude-auth.d.ts +12 -1
  190. package/dist/preflight/claude-auth.js +21 -3
  191. package/dist/preflight/claude-auth.js.map +1 -1
  192. package/dist/preflight/rpc-network.d.ts +44 -0
  193. package/dist/preflight/rpc-network.js +121 -0
  194. package/dist/preflight/rpc-network.js.map +1 -0
  195. package/dist/restorer/engine/canonical-json.d.ts +18 -0
  196. package/dist/restorer/engine/canonical-json.js +59 -0
  197. package/dist/restorer/engine/canonical-json.js.map +1 -0
  198. package/dist/restorer/engine/claim.d.ts +69 -0
  199. package/dist/restorer/engine/claim.js +104 -0
  200. package/dist/restorer/engine/claim.js.map +1 -0
  201. package/dist/restorer/engine/delivery.d.ts +52 -0
  202. package/dist/restorer/engine/delivery.js +63 -0
  203. package/dist/restorer/engine/delivery.js.map +1 -0
  204. package/dist/restorer/engine/engine.d.ts +213 -0
  205. package/dist/restorer/engine/engine.js +769 -0
  206. package/dist/restorer/engine/engine.js.map +1 -0
  207. package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
  208. package/dist/restorer/engine/manifest-assembly.js +79 -0
  209. package/dist/restorer/engine/manifest-assembly.js.map +1 -0
  210. package/dist/restorer/engine/packaging.d.ts +87 -0
  211. package/dist/restorer/engine/packaging.js +350 -0
  212. package/dist/restorer/engine/packaging.js.map +1 -0
  213. package/dist/restorer/engine/persistence.d.ts +170 -0
  214. package/dist/restorer/engine/persistence.js +381 -0
  215. package/dist/restorer/engine/persistence.js.map +1 -0
  216. package/dist/restorer/engine/recovery.d.ts +22 -0
  217. package/dist/restorer/engine/recovery.js +24 -0
  218. package/dist/restorer/engine/recovery.js.map +1 -0
  219. package/dist/restorer/engine/registry.d.ts +62 -0
  220. package/dist/restorer/engine/registry.js +73 -0
  221. package/dist/restorer/engine/registry.js.map +1 -0
  222. package/dist/restorer/engine/signing.d.ts +30 -0
  223. package/dist/restorer/engine/signing.js +39 -0
  224. package/dist/restorer/engine/signing.js.map +1 -0
  225. package/dist/restorer/engine/state.d.ts +42 -0
  226. package/dist/restorer/engine/state.js +87 -0
  227. package/dist/restorer/engine/state.js.map +1 -0
  228. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
  229. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
  230. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  231. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +104 -0
  232. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +721 -0
  233. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  234. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
  235. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
  236. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  237. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
  238. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
  239. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  240. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
  241. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
  242. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  243. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +44 -0
  244. package/dist/restorer/impls/claude-mcp-prediction/index.js +239 -0
  245. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -0
  246. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.d.ts +38 -0
  247. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +135 -0
  248. package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
  249. package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +8 -0
  250. package/dist/restorer/impls/claude-mcp-prediction/prompt.js +54 -0
  251. package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +1 -0
  252. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +36 -0
  253. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +137 -0
  254. package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
  255. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +84 -0
  256. package/dist/restorer/impls/claude-mcp-prediction/types.js +6 -0
  257. package/dist/restorer/impls/claude-mcp-prediction/types.js.map +1 -0
  258. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +34 -0
  259. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +233 -0
  260. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  261. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +18 -0
  262. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
  263. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  264. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  265. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +46 -0
  266. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  267. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +27 -0
  268. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +128 -0
  269. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  270. package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
  271. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +6 -0
  272. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  273. package/dist/restorer/impls/evaluation-context.d.ts +16 -0
  274. package/dist/restorer/impls/evaluation-context.js +18 -0
  275. package/dist/restorer/impls/evaluation-context.js.map +1 -0
  276. package/dist/restorer/impls/index.d.ts +46 -0
  277. package/dist/restorer/impls/index.js +88 -0
  278. package/dist/restorer/impls/index.js.map +1 -0
  279. package/dist/restorer/impls/legacy-claude/index.d.ts +52 -0
  280. package/dist/restorer/impls/legacy-claude/index.js +140 -0
  281. package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
  282. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
  283. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
  284. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  285. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
  286. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
  287. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  288. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
  289. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
  290. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  291. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
  292. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
  293. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  294. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
  295. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
  296. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  297. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
  298. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
  299. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  300. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +44 -0
  301. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +440 -0
  302. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
  303. package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
  304. package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
  305. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
  306. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +34 -0
  307. package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
  308. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
  309. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +40 -0
  310. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +107 -0
  311. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -0
  312. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.d.ts +2 -0
  313. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js +7 -0
  314. package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
  315. package/dist/restorer/impls/prediction-apy-v0-baseline/types.d.ts +4 -0
  316. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js +2 -0
  317. package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +1 -0
  318. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
  319. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
  320. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
  321. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +42 -0
  322. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +208 -0
  323. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
  324. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +7 -0
  325. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +29 -0
  326. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  327. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.d.ts +9 -0
  328. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js +20 -0
  329. package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
  330. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +7 -0
  331. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js +2 -0
  332. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
  333. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +31 -0
  334. package/dist/restorer/impls/prediction-v0-baseline/index.js +100 -0
  335. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
  336. package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
  337. package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
  338. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
  339. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
  340. package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
  341. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
  342. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
  343. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
  344. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  345. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
  346. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
  347. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  348. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
  349. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
  350. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  351. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +13 -0
  352. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
  353. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  354. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
  355. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
  356. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  357. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +36 -0
  358. package/dist/restorer/impls/prediction-v0-evaluator/index.js +234 -0
  359. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
  360. package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
  361. package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
  362. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
  363. package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
  364. package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
  365. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
  366. package/dist/restorer/types.d.ts +194 -0
  367. package/dist/restorer/types.js +28 -0
  368. package/dist/restorer/types.js.map +1 -0
  369. package/dist/rpc-error-context.d.ts +10 -0
  370. package/dist/rpc-error-context.js +26 -0
  371. package/dist/rpc-error-context.js.map +1 -0
  372. package/dist/store/store.d.ts +101 -1
  373. package/dist/store/store.js +334 -4
  374. package/dist/store/store.js.map +1 -1
  375. package/dist/trajectory/schema.d.ts +510 -0
  376. package/dist/trajectory/schema.js +74 -0
  377. package/dist/trajectory/schema.js.map +1 -0
  378. package/dist/types/desired-state.d.ts +53 -0
  379. package/dist/types/desired-state.js +20 -0
  380. package/dist/types/desired-state.js.map +1 -1
  381. package/dist/types/index.d.ts +4 -1
  382. package/dist/types/index.js +4 -1
  383. package/dist/types/index.js.map +1 -1
  384. package/dist/types/portfolio.d.ts +1000 -0
  385. package/dist/types/portfolio.js +168 -0
  386. package/dist/types/portfolio.js.map +1 -0
  387. package/dist/types/prediction-apy.d.ts +930 -0
  388. package/dist/types/prediction-apy.js +133 -0
  389. package/dist/types/prediction-apy.js.map +1 -0
  390. package/dist/types/prediction.d.ts +926 -0
  391. package/dist/types/prediction.js +141 -0
  392. package/dist/types/prediction.js.map +1 -0
  393. package/dist/venues/aave-v3/addresses.d.ts +6 -0
  394. package/dist/venues/aave-v3/addresses.js +19 -0
  395. package/dist/venues/aave-v3/addresses.js.map +1 -0
  396. package/dist/venues/aave-v3/client.d.ts +85 -0
  397. package/dist/venues/aave-v3/client.js +106 -0
  398. package/dist/venues/aave-v3/client.js.map +1 -0
  399. package/dist/venues/chainlink/client.d.ts +99 -0
  400. package/dist/venues/chainlink/client.js +130 -0
  401. package/dist/venues/chainlink/client.js.map +1 -0
  402. package/dist/venues/chainlink/feeds.d.ts +8 -0
  403. package/dist/venues/chainlink/feeds.js +9 -0
  404. package/dist/venues/chainlink/feeds.js.map +1 -0
  405. package/dist/venues/hyperliquid/account-value.d.ts +30 -0
  406. package/dist/venues/hyperliquid/account-value.js +30 -0
  407. package/dist/venues/hyperliquid/account-value.js.map +1 -0
  408. package/dist/venues/hyperliquid/client.d.ts +63 -0
  409. package/dist/venues/hyperliquid/client.js +135 -0
  410. package/dist/venues/hyperliquid/client.js.map +1 -0
  411. package/dist/venues/hyperliquid/grid.d.ts +36 -0
  412. package/dist/venues/hyperliquid/grid.js +61 -0
  413. package/dist/venues/hyperliquid/grid.js.map +1 -0
  414. package/dist/venues/hyperliquid/types.d.ts +81 -0
  415. package/dist/venues/hyperliquid/types.js +8 -0
  416. package/dist/venues/hyperliquid/types.js.map +1 -0
  417. package/dist/withdraw/run-withdraw-plan.js +2 -0
  418. package/dist/withdraw/run-withdraw-plan.js.map +1 -1
  419. package/docker-compose.yml +44 -0
  420. package/package.json +15 -3
  421. package/skills/jinn-operator/SKILL.md +85 -0
  422. package/dist/daemon/restorer.d.ts +0 -19
  423. package/dist/daemon/restorer.js +0 -82
  424. package/dist/daemon/restorer.js.map +0 -1
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Shared helpers for the `jinn intents` CLI surface.
3
+ *
4
+ * - Builds a RestorerImplRegistry populated with the same impls the daemon
5
+ * registers at boot (minus the ones that need live dependencies like a
6
+ * running master wallet). The generic `intents list/status/enable/disable`
7
+ * verbs use this to dispatch to per-impl onEnable / isReady logic without
8
+ * standing up the full daemon.
9
+ *
10
+ * - Reads/writes the `restorers.disabled[]` list in the operator's config
11
+ * file so `enable` / `disable` can flip per-impl participation.
12
+ */
13
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
14
+ import { dirname, join } from 'node:path';
15
+ import { homedir } from 'node:os';
16
+ import { RestorerImplRegistry } from '../restorer/engine/registry.js';
17
+ import { buildRestorerImpls } from '../restorer/impls/index.js';
18
+ /**
19
+ * Impls that ship default-disabled because they require external dependencies
20
+ * (credentials, exchange approvals, etc.) the operator must opt into. Kept in
21
+ * one place so `main.ts` and the `intents` CLI share a single source of truth.
22
+ */
23
+ export const DEFAULT_DISABLED_IMPLS = ['claude-mcp-hyperliquid'];
24
+ export const DEFAULT_BY_KIND = {
25
+ 'portfolio.v0': 'claude-mcp-hyperliquid',
26
+ 'prediction.v0': 'prediction-v0-baseline',
27
+ 'prediction.apy.v0': 'prediction-apy-v0-baseline',
28
+ };
29
+ const DEFAULT_CONFIG_PATH = join(homedir(), '.jinn-client', 'config.json');
30
+ export function resolveConfigPath(explicit) {
31
+ return explicit ?? DEFAULT_CONFIG_PATH;
32
+ }
33
+ /**
34
+ * Uses {@link buildRestorerImpls} with `stub: true` and no runner (no
35
+ * `legacy-claude` — requires the daemon process + Claude runner).
36
+ * Honest readiness for stub is refined in 7ee.2.
37
+ */
38
+ export function buildIntentsCliRegistry(config) {
39
+ const registry = new RestorerImplRegistry({
40
+ byKind: resolveEffectiveByKind(config),
41
+ default: 'legacy-claude',
42
+ disabled: resolveEffectiveDisabled(config),
43
+ });
44
+ // `implStateDirRoot` matches daemon/doctor construction; stub `isReady()` is
45
+ // not HL disk-sensitive today, but the path is consistent if that changes.
46
+ for (const impl of buildRestorerImpls({
47
+ stub: true,
48
+ rpcUrl: config.rpcUrl,
49
+ archiveRpcUrl: config.archiveRpcUrl,
50
+ claudePath: config.claudePath,
51
+ claudeModel: config.claudeModel,
52
+ implStateDirRoot: config.engine.implStateDirRoot,
53
+ })) {
54
+ registry.register(impl);
55
+ }
56
+ return registry;
57
+ }
58
+ /**
59
+ * Resolve the effective disabled list, applying the ship-default plus any
60
+ * operator overrides. Semantics match main.ts: user config fully replaces
61
+ * the default, so operators who have already curated a list aren't
62
+ * surprised by new defaults sneaking in.
63
+ */
64
+ export function resolveEffectiveDisabled(config) {
65
+ const userDisabled = config.restorers?.disabled;
66
+ if (userDisabled !== undefined)
67
+ return [...userDisabled];
68
+ return [...DEFAULT_DISABLED_IMPLS];
69
+ }
70
+ /** Resolve effective kind → impl mapping, applying operator overrides over ship defaults. */
71
+ export function resolveEffectiveByKind(config) {
72
+ return {
73
+ ...DEFAULT_BY_KIND,
74
+ ...(config.restorers?.byKind ?? {}),
75
+ };
76
+ }
77
+ /** Is an impl currently disabled in the effective config? */
78
+ export function isImplDisabled(implName, config) {
79
+ return resolveEffectiveDisabled(config).includes(implName);
80
+ }
81
+ /**
82
+ * Patch the user's config file to add/remove an impl from the `restorers.disabled[]`
83
+ * list.
84
+ *
85
+ * Semantics (important): since user config fully replaces the default list,
86
+ * we always rebuild `disabled` from `DEFAULT_DISABLED_IMPLS ∪ user additions`
87
+ * minus the currently-enabled impl, not from whatever list the user last
88
+ * wrote. Concretely: if we later add a new default-disabled impl, an operator
89
+ * who previously enabled X won't silently auto-enable the new one — their
90
+ * written list always reflects "every current default off, minus what I've
91
+ * explicitly enabled." Extra operator-added disables are preserved verbatim.
92
+ *
93
+ * Returns the new disabled list for the caller to surface.
94
+ */
95
+ export function setImplEnabledInConfig(implName, enabled, configPath = DEFAULT_CONFIG_PATH) {
96
+ let current = {};
97
+ if (existsSync(configPath)) {
98
+ try {
99
+ current = JSON.parse(readFileSync(configPath, 'utf-8'));
100
+ }
101
+ catch {
102
+ current = {};
103
+ }
104
+ }
105
+ const restorers = (current['restorers'] ?? {});
106
+ const existing = new Set(restorers.disabled ?? []);
107
+ // Operator-added extras: anything they've explicitly disabled that isn't a ship default.
108
+ const defaults = new Set(DEFAULT_DISABLED_IMPLS);
109
+ const operatorExtras = new Set([...existing].filter((n) => !defaults.has(n)));
110
+ // Rebuild from first principles so future default additions stay disabled
111
+ // unless the operator explicitly enables them too.
112
+ const rebuilt = new Set([...defaults, ...operatorExtras]);
113
+ if (enabled) {
114
+ rebuilt.delete(implName);
115
+ }
116
+ else {
117
+ rebuilt.add(implName);
118
+ }
119
+ const next = [...rebuilt];
120
+ restorers.disabled = next;
121
+ current['restorers'] = restorers;
122
+ mkdirSync(dirname(configPath), { recursive: true });
123
+ writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
124
+ return next;
125
+ }
126
+ /** Persist an explicit impl mapping for a specific intent kind. */
127
+ export function setImplForKindInConfig(kind, implName, configPath = DEFAULT_CONFIG_PATH) {
128
+ let current = {};
129
+ if (existsSync(configPath)) {
130
+ try {
131
+ current = JSON.parse(readFileSync(configPath, 'utf-8'));
132
+ }
133
+ catch {
134
+ current = {};
135
+ }
136
+ }
137
+ const restorers = (current['restorers'] ?? {});
138
+ restorers.byKind = {
139
+ ...(restorers.byKind ?? {}),
140
+ [kind]: implName,
141
+ };
142
+ current['restorers'] = restorers;
143
+ mkdirSync(dirname(configPath), { recursive: true });
144
+ writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
145
+ }
146
+ /** Remove an explicit impl mapping for one kind, reverting to ship default. */
147
+ export function resetImplForKindInConfig(kind, configPath = DEFAULT_CONFIG_PATH) {
148
+ let current = {};
149
+ if (existsSync(configPath)) {
150
+ try {
151
+ current = JSON.parse(readFileSync(configPath, 'utf-8'));
152
+ }
153
+ catch {
154
+ current = {};
155
+ }
156
+ }
157
+ const restorers = (current['restorers'] ?? {});
158
+ const byKind = { ...(restorers.byKind ?? {}) };
159
+ delete byKind[kind];
160
+ restorers.byKind = byKind;
161
+ current['restorers'] = restorers;
162
+ mkdirSync(dirname(configPath), { recursive: true });
163
+ writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
164
+ }
165
+ //# sourceMappingURL=intent-registry-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-registry-access.js","sourceRoot":"","sources":["../../src/cli/intent-registry-access.ts"],"names":[],"mappings":"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"}
@@ -16,17 +16,20 @@ async function tryMergeStatusFromHttp(config, local) {
16
16
  if (!res.ok)
17
17
  return local;
18
18
  const remote = (await res.json());
19
+ const next = {
20
+ ...local,
21
+ shutdownState: remote.daemon?.shutdownState ?? local.shutdownState,
22
+ daemonStartedAt: remote.daemon?.startedAt ?? local.daemonStartedAt,
23
+ };
19
24
  if (remote.rpc?.ok && !local.rpc.ok) {
20
- return {
21
- ...local,
22
- rpc: {
23
- ok: remote.rpc.ok,
24
- chainId: remote.rpc.chainId,
25
- blockNumber: remote.rpc.blockNumber,
26
- ...(remote.rpc.error ? { error: remote.rpc.error } : {}),
27
- },
25
+ next.rpc = {
26
+ ok: remote.rpc.ok,
27
+ chainId: remote.rpc.chainId,
28
+ blockNumber: remote.rpc.blockNumber,
29
+ ...(remote.rpc.error ? { error: remote.rpc.error } : {}),
28
30
  };
29
31
  }
32
+ return next;
30
33
  }
31
34
  catch {
32
35
  /* ignore — local gather is authoritative */
@@ -53,6 +56,7 @@ export async function gatherIntrospectionRaw(opts) {
53
56
  testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
54
57
  testnetMechDeploymentPath: config.testnetMechDeploymentPath,
55
58
  testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
59
+ testnetClaimRegistryDeploymentPath: config.testnetClaimRegistryDeploymentPath,
56
60
  };
57
61
  const local = await gatherGatheredStatusRaw(store, status);
58
62
  return tryMergeStatusFromHttp(config, local);
@@ -1 +1 @@
1
- {"version":3,"file":"introspection-context.js","sourceRoot":"","sources":["../../src/cli/introspection-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"introspection-context.js","sourceRoot":"","sources":["../../src/cli/introspection-context.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,25 @@
1
1
  /**
2
- * CLI password resolution: JINN_PASSWORD env or --password-fd N (reads once, trims).
2
+ * CLI password resolution.
3
+ *
4
+ * Priority order for `resolveCliPassword`:
5
+ * 1. `--password-fd N` (explicit, scripted/CI use)
6
+ * 2. `JINN_PASSWORD` env var (explicit, operator-set)
7
+ * 3. `~/.jinn-client/keystore-password` file (auto-generated by `jinn quickstart`)
8
+ * 4. Error
9
+ *
10
+ * SECURITY TRADE-OFF (known, accepted for Phase 1b testers):
11
+ * When `jinn quickstart` auto-generates a password, it writes the plaintext
12
+ * value to `~/.jinn-client/keystore-password` (mode 0o600) and the encrypted
13
+ * keystore to `~/.jinn-client/earning/master_keystore.json`. An attacker with
14
+ * shell access to the host can read both and decrypt the mnemonic — the
15
+ * encryption provides defense only against casual filesystem snooping,
16
+ * snapshot/backup inclusion policies, and logs. It is NOT protection against
17
+ * a local attacker.
18
+ *
19
+ * The quickstart summary warns operators to treat this wallet as hot and to
20
+ * keep funds to the gas + rewards minimum. The real fix is OS-native secret
21
+ * storage (macOS Keychain, libsecret, Windows Credential Manager) or a
22
+ * hardware-backed signer; tracked as future work.
3
23
  */
4
24
  export declare function parsePasswordFdFromArgv(argv: string[]): number | undefined;
5
25
  export declare function readPasswordFromFd(fd: number): string;
@@ -10,14 +30,6 @@ export declare function resolveCliPassword(argv?: string[], env?: NodeJS.Process
10
30
  ok: false;
11
31
  message: string;
12
32
  };
13
- export declare function resolveCurrentPassword(argv: string[], env: Record<string, string | undefined>): {
14
- ok: true;
15
- password: string;
16
- fromFile: boolean;
17
- } | {
18
- ok: false;
19
- message: string;
20
- };
21
33
  export declare function resolveNewPassword(env: Record<string, string | undefined>): {
22
34
  ok: true;
23
35
  password: string;
@@ -1,5 +1,25 @@
1
1
  /**
2
- * CLI password resolution: JINN_PASSWORD env or --password-fd N (reads once, trims).
2
+ * CLI password resolution.
3
+ *
4
+ * Priority order for `resolveCliPassword`:
5
+ * 1. `--password-fd N` (explicit, scripted/CI use)
6
+ * 2. `JINN_PASSWORD` env var (explicit, operator-set)
7
+ * 3. `~/.jinn-client/keystore-password` file (auto-generated by `jinn quickstart`)
8
+ * 4. Error
9
+ *
10
+ * SECURITY TRADE-OFF (known, accepted for Phase 1b testers):
11
+ * When `jinn quickstart` auto-generates a password, it writes the plaintext
12
+ * value to `~/.jinn-client/keystore-password` (mode 0o600) and the encrypted
13
+ * keystore to `~/.jinn-client/earning/master_keystore.json`. An attacker with
14
+ * shell access to the host can read both and decrypt the mnemonic — the
15
+ * encryption provides defense only against casual filesystem snooping,
16
+ * snapshot/backup inclusion policies, and logs. It is NOT protection against
17
+ * a local attacker.
18
+ *
19
+ * The quickstart summary warns operators to treat this wallet as hot and to
20
+ * keep funds to the gas + rewards minimum. The real fix is OS-native secret
21
+ * storage (macOS Keychain, libsecret, Windows Credential Manager) or a
22
+ * hardware-backed signer; tracked as future work.
3
23
  */
4
24
  import { existsSync, readFileSync } from 'node:fs';
5
25
  import { homedir } from 'node:os';
@@ -23,7 +43,19 @@ function mergeArgv(argv) {
23
43
  const fromProcess = typeof process !== 'undefined' ? process.argv.slice(2) : [];
24
44
  return [...fromVerb, ...fromProcess];
25
45
  }
46
+ function passwordFilePath(env) {
47
+ const home = env['HOME'] ?? homedir();
48
+ return join(home, '.jinn-client', 'keystore-password');
49
+ }
50
+ function readPasswordFile(env) {
51
+ const path = passwordFilePath(env);
52
+ if (!existsSync(path))
53
+ return undefined;
54
+ const value = readFileSync(path, 'utf-8').trim();
55
+ return value.length > 0 ? value : undefined;
56
+ }
26
57
  export function resolveCliPassword(argv, env = process.env) {
58
+ // 1. --password-fd wins (explicit scripted intent).
27
59
  const merged = mergeArgv(argv);
28
60
  const fd = parsePasswordFdFromArgv(merged);
29
61
  if (fd !== undefined) {
@@ -41,29 +73,18 @@ export function resolveCliPassword(argv, env = process.env) {
41
73
  };
42
74
  }
43
75
  }
44
- const p = env['JINN_PASSWORD'];
45
- if (!p) {
46
- return {
47
- ok: false,
48
- message: 'Set JINN_PASSWORD or pass --password-fd N with a readable file descriptor.',
49
- };
50
- }
51
- return { ok: true, password: p };
52
- }
53
- export function resolveCurrentPassword(argv, env) {
54
- // 1. Check keystore-password file
55
- const home = env['HOME'] ?? homedir();
56
- const passwordFilePath = join(home, '.jinn-client', 'keystore-password');
57
- if (existsSync(passwordFilePath)) {
58
- const password = readFileSync(passwordFilePath, 'utf-8').trim();
59
- if (password)
60
- return { ok: true, password, fromFile: true };
61
- }
62
- // 2. Fall through to existing resolveCliPassword
63
- const result = resolveCliPassword(argv, env);
64
- if (result.ok)
65
- return { ok: true, password: result.password, fromFile: false };
66
- return { ok: false, message: result.message };
76
+ // 2. JINN_PASSWORD env (explicit operator-set).
77
+ const envPassword = env['JINN_PASSWORD'];
78
+ if (envPassword)
79
+ return { ok: true, password: envPassword };
80
+ // 3. Auto-generated password file from `jinn quickstart`.
81
+ const filePassword = readPasswordFile(env);
82
+ if (filePassword)
83
+ return { ok: true, password: filePassword };
84
+ return {
85
+ ok: false,
86
+ message: 'No keystore password found. Set JINN_PASSWORD, pass --password-fd N, or run `jinn quickstart` to auto-generate one.',
87
+ };
67
88
  }
68
89
  export function resolveNewPassword(env) {
69
90
  const newPass = env['JINN_NEW_PASSWORD'];
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/cli/password.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/cli/password.ts"],"names":[],"mappings":"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"}
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,43 @@ 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
+ }>>;
172
+ /**
173
+ * Restoration engine durable directories (per-intent work + impl state).
174
+ * Defaults under ~/.jinn-client/engine/. Env: JINN_ENGINE_WORKING_DIR_ROOT,
175
+ * JINN_ENGINE_IMPL_STATE_DIR_ROOT.
176
+ */
177
+ engine: z.ZodOptional<z.ZodObject<{
178
+ workingDirRoot: z.ZodOptional<z.ZodString>;
179
+ implStateDirRoot: z.ZodOptional<z.ZodString>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ workingDirRoot?: string | undefined;
182
+ implStateDirRoot?: string | undefined;
183
+ }, {
184
+ workingDirRoot?: string | undefined;
185
+ implStateDirRoot?: string | undefined;
186
+ }>>;
103
187
  }, "strip", z.ZodTypeAny, {
104
188
  network: "testnet" | "mainnet";
105
189
  earningDir: string;
@@ -112,9 +196,17 @@ export declare const JinnConfigSchema: z.ZodObject<{
112
196
  claudeModel: string;
113
197
  peers: string[];
114
198
  desiredStates: {
115
- id: string;
116
199
  description: string;
200
+ id?: string | undefined;
117
201
  context?: Record<string, unknown> | undefined;
202
+ window?: {
203
+ startTs: number;
204
+ endTs: number;
205
+ } | undefined;
206
+ spec?: ({
207
+ kind: string;
208
+ } & Record<string, unknown>) | undefined;
209
+ eligibility?: Record<string, unknown> | undefined;
118
210
  }[];
119
211
  ipfsRegistryUrl: string;
120
212
  ipfsGatewayUrl: string;
@@ -122,16 +214,29 @@ export declare const JinnConfigSchema: z.ZodObject<{
122
214
  targetServices: number;
123
215
  debug: boolean;
124
216
  rpcUrl?: string | undefined;
217
+ archiveRpcUrl?: string | undefined;
218
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
125
219
  subgraphUrl?: string | undefined;
126
220
  nodeEndpoint?: string | undefined;
127
221
  testnetL2DeploymentPath?: string | undefined;
128
222
  testnetL2TokenDeploymentPath?: string | undefined;
129
223
  testnetMechDeploymentPath?: string | undefined;
130
224
  testnetStolasDeploymentPath?: string | undefined;
225
+ testnetClaimRegistryDeploymentPath?: string | undefined;
131
226
  masterEthDailyEstimateWei?: string | undefined;
227
+ restorers?: {
228
+ byKind?: Record<string, string> | undefined;
229
+ default?: string | undefined;
230
+ disabled?: string[] | undefined;
231
+ } | undefined;
232
+ engine?: {
233
+ workingDirRoot?: string | undefined;
234
+ implStateDirRoot?: string | undefined;
235
+ } | undefined;
132
236
  }, {
133
237
  network?: "testnet" | "mainnet" | undefined;
134
238
  rpcUrl?: string | undefined;
239
+ archiveRpcUrl?: string | undefined;
135
240
  earningDir?: string | undefined;
136
241
  dbPath?: string | undefined;
137
242
  pollIntervalMs?: number | undefined;
@@ -140,13 +245,22 @@ export declare const JinnConfigSchema: z.ZodObject<{
140
245
  apiPort?: number | undefined;
141
246
  claudePath?: string | undefined;
142
247
  claudeModel?: string | undefined;
248
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
143
249
  peers?: string | string[] | undefined;
144
250
  subgraphUrl?: string | undefined;
145
251
  nodeEndpoint?: string | undefined;
146
252
  desiredStates?: {
147
- id: string;
148
253
  description: string;
254
+ id?: string | undefined;
149
255
  context?: Record<string, unknown> | undefined;
256
+ window?: {
257
+ startTs: number;
258
+ endTs: number;
259
+ } | undefined;
260
+ spec?: ({
261
+ kind: string;
262
+ } & Record<string, unknown>) | undefined;
263
+ eligibility?: Record<string, unknown> | undefined;
150
264
  }[] | undefined;
151
265
  ipfsRegistryUrl?: string | undefined;
152
266
  ipfsGatewayUrl?: string | undefined;
@@ -154,14 +268,29 @@ export declare const JinnConfigSchema: z.ZodObject<{
154
268
  testnetL2TokenDeploymentPath?: string | undefined;
155
269
  testnetMechDeploymentPath?: string | undefined;
156
270
  testnetStolasDeploymentPath?: string | undefined;
271
+ testnetClaimRegistryDeploymentPath?: string | undefined;
157
272
  stakingMode?: "standard" | "self-bond" | undefined;
158
273
  targetServices?: number | undefined;
159
274
  debug?: boolean | undefined;
160
275
  masterEthDailyEstimateWei?: string | undefined;
276
+ restorers?: {
277
+ byKind?: Record<string, string> | undefined;
278
+ default?: string | undefined;
279
+ disabled?: string[] | undefined;
280
+ } | undefined;
281
+ engine?: {
282
+ workingDirRoot?: string | undefined;
283
+ implStateDirRoot?: string | undefined;
284
+ } | undefined;
161
285
  }>;
162
- /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined). */
163
- export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl'> & {
286
+ /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and desiredStates with id always assigned. */
287
+ export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'desiredStates' | 'engine'> & {
164
288
  rpcUrl: string;
289
+ desiredStates: DesiredState[];
290
+ engine: {
291
+ workingDirRoot: string;
292
+ implStateDirRoot: string;
293
+ };
165
294
  };
166
295
  export type ConfigLoadErrorCode = 'config_file_not_found' | 'config_json_invalid' | 'desired_states_file_not_found' | 'desired_states_json_invalid' | 'config_invalid';
167
296
  export declare class ConfigLoadError extends Error {