@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
@@ -1 +1 @@
1
- {"version":3,"file":"gather-status.js","sourceRoot":"","sources":["../../src/api/gather-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gather-status.js","sourceRoot":"","sources":["../../src/api/gather-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * portfolio.v0 dashboard data assembly (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
3
+ *
4
+ * Collects in-flight restoration intents, recent verdicts (COMPLETE / FAILED
5
+ * terminal intents), and recent system_snapshot artifacts for the /v1/status
6
+ * response under the `portfolioV0` key.
7
+ *
8
+ * Designed to be called from gather-status.ts with the Store instance. Does not
9
+ * hit the network — all data comes from SQLite.
10
+ */
11
+ import type { Store } from '../store/store.js';
12
+ export interface InFlightIntentSummary {
13
+ requestId: string;
14
+ state: string;
15
+ specKind: string | null;
16
+ implName: string | null;
17
+ windowStartTs: number;
18
+ windowEndTs: number;
19
+ /** Unix ms when the state was last updated. */
20
+ stateUpdatedAt: number;
21
+ lastError: string | null;
22
+ }
23
+ export interface VerdictSummary {
24
+ requestId: string;
25
+ state: 'COMPLETE' | 'FAILED';
26
+ implName: string | null;
27
+ specKind: string | null;
28
+ windowStartTs: number;
29
+ windowEndTs: number;
30
+ stateUpdatedAt: number;
31
+ failureReason: string | null;
32
+ manifestCid: string | null;
33
+ deliveryTxHash: string | null;
34
+ }
35
+ export interface SnapshotSummary {
36
+ id: string;
37
+ requestId: string;
38
+ title: string;
39
+ outcome: string;
40
+ createdAt: string;
41
+ }
42
+ export interface ClaudeOutcomeSummary {
43
+ requestId: string;
44
+ sessionId: string;
45
+ startedAt: number;
46
+ endedAt: number;
47
+ durationMs: number;
48
+ aborted: boolean;
49
+ /**
50
+ * Count of HL fills that occurred during the session's window (±5s padding).
51
+ * Authoritative measure of whether Claude actually traded — sourced from
52
+ * HL's userFillsByTime, not the in-process tool-call counter (which lives
53
+ * in the daemon process while actual trades happen in the MCP subprocess).
54
+ */
55
+ fillsInSessionWindow: number;
56
+ /** Per-coin fill counts for the session window (e.g., {"ETH": 4, "BTC": 2}). */
57
+ coinCounts: Record<string, number>;
58
+ /** Present only if the HL fills query failed — outcome still usable for timing. */
59
+ fillsQueryError?: string;
60
+ }
61
+ export interface PortfolioV0Status {
62
+ /** Intents currently being processed (not in a terminal state). */
63
+ inFlight: InFlightIntentSummary[];
64
+ /** Last N completed or failed intents — most recent first. */
65
+ recentVerdicts: VerdictSummary[];
66
+ /** Recent system_snapshot artifacts from the store — most recent first. */
67
+ recentSnapshots: SnapshotSummary[];
68
+ /**
69
+ * Last N Claude session outcomes (per-session telemetry). Populated
70
+ * in-flight: each session writes `outcome.json` to its working dir as
71
+ * soon as it exits, so operators can observe trading activity without
72
+ * waiting for the window to close.
73
+ */
74
+ recentClaudeOutcomes: ClaudeOutcomeSummary[];
75
+ }
76
+ /**
77
+ * Gather portfolio.v0 dashboard data from SQLite. Safe to call even when the
78
+ * restoration_intents table does not exist yet (table created on first Store
79
+ * construction, so this is always present when the daemon is running).
80
+ */
81
+ export declare function gatherPortfolioV0Status(store: Store): PortfolioV0Status;
@@ -0,0 +1,141 @@
1
+ /**
2
+ * portfolio.v0 dashboard data assembly (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
3
+ *
4
+ * Collects in-flight restoration intents, recent verdicts (COMPLETE / FAILED
5
+ * terminal intents), and recent system_snapshot artifacts for the /v1/status
6
+ * response under the `portfolioV0` key.
7
+ *
8
+ * Designed to be called from gather-status.ts with the Store instance. Does not
9
+ * hit the network — all data comes from SQLite.
10
+ */
11
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
12
+ import { join } from 'node:path';
13
+ import { IntentPersistence } from '../restorer/engine/persistence.js';
14
+ const WORKING_DIR_ROOT = '/tmp/jinn-engine-working';
15
+ const RECENT_CLAUDE_OUTCOMES_LIMIT = 10;
16
+ // ── Internal helpers ──────────────────────────────────────────────────────────
17
+ const RECENT_VERDICTS_LIMIT = 10;
18
+ const RECENT_SNAPSHOTS_LIMIT = 5;
19
+ function toInFlight(intent) {
20
+ return {
21
+ requestId: intent.requestId,
22
+ state: intent.state,
23
+ specKind: intent.specKind,
24
+ implName: intent.implName,
25
+ windowStartTs: intent.windowStartTs,
26
+ windowEndTs: intent.windowEndTs,
27
+ stateUpdatedAt: intent.stateUpdatedAt,
28
+ lastError: intent.failureReason,
29
+ };
30
+ }
31
+ function toVerdict(intent) {
32
+ return {
33
+ requestId: intent.requestId,
34
+ state: intent.state,
35
+ implName: intent.implName,
36
+ specKind: intent.specKind,
37
+ windowStartTs: intent.windowStartTs,
38
+ windowEndTs: intent.windowEndTs,
39
+ stateUpdatedAt: intent.stateUpdatedAt,
40
+ failureReason: intent.failureReason,
41
+ manifestCid: intent.manifestCid,
42
+ deliveryTxHash: intent.deliveryTxHash,
43
+ };
44
+ }
45
+ // ── Public API ────────────────────────────────────────────────────────────────
46
+ /**
47
+ * Gather portfolio.v0 dashboard data from SQLite. Safe to call even when the
48
+ * restoration_intents table does not exist yet (table created on first Store
49
+ * construction, so this is always present when the daemon is running).
50
+ */
51
+ export function gatherPortfolioV0Status(store) {
52
+ const persistence = new IntentPersistence(store.db);
53
+ // In-flight: all non-terminal intents
54
+ const inFlight = persistence.getInFlight().map(toInFlight);
55
+ // Recent verdicts: last N COMPLETE + FAILED intents combined, newest first
56
+ const complete = persistence.getByState('COMPLETE');
57
+ const failed = persistence.getByState('FAILED');
58
+ const allTerminal = [...complete, ...failed].sort((a, b) => b.stateUpdatedAt - a.stateUpdatedAt);
59
+ const recentVerdicts = allTerminal.slice(0, RECENT_VERDICTS_LIMIT).map(toVerdict);
60
+ // Recent system_snapshot artifacts (tagged with 'system_snapshot')
61
+ let recentSnapshots = [];
62
+ try {
63
+ const snapshotArtifacts = store.searchArtifacts({
64
+ tags: ['system_snapshot'],
65
+ limit: RECENT_SNAPSHOTS_LIMIT,
66
+ });
67
+ recentSnapshots = snapshotArtifacts.map((a) => ({
68
+ id: a.id,
69
+ requestId: a.request_id,
70
+ title: a.title,
71
+ outcome: a.outcome,
72
+ createdAt: a.created_at,
73
+ }));
74
+ }
75
+ catch {
76
+ // searchArtifacts should never throw, but guard defensively
77
+ recentSnapshots = [];
78
+ }
79
+ const recentClaudeOutcomes = gatherRecentClaudeOutcomes();
80
+ return { inFlight, recentVerdicts, recentSnapshots, recentClaudeOutcomes };
81
+ }
82
+ /**
83
+ * Scan the session outcome files under `/tmp/jinn-engine-working/*\/sessions/*\/outcome.json`
84
+ * and return the most recent N. Swallows all filesystem errors so a missing or
85
+ * malformed working dir never breaks the status endpoint.
86
+ */
87
+ function gatherRecentClaudeOutcomes() {
88
+ if (!existsSync(WORKING_DIR_ROOT))
89
+ return [];
90
+ const outcomes = [];
91
+ let intentDirs;
92
+ try {
93
+ intentDirs = readdirSync(WORKING_DIR_ROOT);
94
+ }
95
+ catch {
96
+ return [];
97
+ }
98
+ for (const intentDir of intentDirs) {
99
+ const sessionsDir = join(WORKING_DIR_ROOT, intentDir, 'sessions');
100
+ if (!existsSync(sessionsDir))
101
+ continue;
102
+ let sessionDirs;
103
+ try {
104
+ sessionDirs = readdirSync(sessionsDir);
105
+ }
106
+ catch {
107
+ continue;
108
+ }
109
+ for (const sessionDir of sessionDirs) {
110
+ const outcomePath = join(sessionsDir, sessionDir, 'outcome.json');
111
+ if (!existsSync(outcomePath))
112
+ continue;
113
+ try {
114
+ const raw = readFileSync(outcomePath, 'utf-8');
115
+ const parsed = JSON.parse(raw);
116
+ if (typeof parsed.requestId === 'string' &&
117
+ typeof parsed.sessionId === 'string' &&
118
+ typeof parsed.startedAt === 'number' &&
119
+ typeof parsed.endedAt === 'number') {
120
+ outcomes.push({
121
+ requestId: parsed.requestId,
122
+ sessionId: parsed.sessionId,
123
+ startedAt: parsed.startedAt,
124
+ endedAt: parsed.endedAt,
125
+ durationMs: parsed.durationMs ?? (parsed.endedAt - parsed.startedAt),
126
+ aborted: parsed.aborted ?? false,
127
+ fillsInSessionWindow: parsed.fillsInSessionWindow ?? 0,
128
+ coinCounts: parsed.coinCounts ?? {},
129
+ ...(parsed.fillsQueryError !== undefined ? { fillsQueryError: parsed.fillsQueryError } : {}),
130
+ });
131
+ }
132
+ }
133
+ catch {
134
+ // Malformed outcome file — skip.
135
+ }
136
+ }
137
+ }
138
+ outcomes.sort((a, b) => b.endedAt - a.endedAt);
139
+ return outcomes.slice(0, RECENT_CLAUDE_OUTCOMES_LIMIT);
140
+ }
141
+ //# sourceMappingURL=portfolio-v0-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-v0-build.js","sourceRoot":"","sources":["../../src/api/portfolio-v0-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * portfolio.v0 doctor checks (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
3
+ *
4
+ * Returns structured check results without hitting the network — all checks are
5
+ * local filesystem reads. Each check is safe to call independently.
6
+ *
7
+ * Note: The HL master account deposit check (verifying on-chain deposit via HL
8
+ * API) is intentionally skipped in v0 — it would require an external network
9
+ * call with no existing client dependency. Operators should verify the deposit
10
+ * manually via the Hyperliquid UI.
11
+ */
12
+ export interface DoctorCheckResult {
13
+ name: string;
14
+ ok: boolean;
15
+ detail: string;
16
+ remedy?: string;
17
+ }
18
+ /**
19
+ * Check that the implStateDir for the HL impl is accessible and looks healthy.
20
+ *
21
+ * @param implStateDir - path to the impl state directory (e.g. ~/.jinn-client/impl/claude-mcp-hyperliquid)
22
+ */
23
+ export declare function checkImplStateDir(implStateDir: string | undefined): DoctorCheckResult;
24
+ /**
25
+ * Check that an HL API wallet is present in implStateDir and whether it has
26
+ * been approved by the operator.
27
+ *
28
+ * Returns ok=true even when not yet approved (that is an operator action, not
29
+ * a system error) — the detail string makes the status clear.
30
+ */
31
+ export declare function checkHlApiWallet(implStateDir: string | undefined): DoctorCheckResult;
32
+ /**
33
+ * Run all portfolio.v0 doctor checks given an optional implStateDir.
34
+ * Safe to call even when HL impl is not configured — checks gracefully handle
35
+ * the undefined case.
36
+ */
37
+ export declare function runPortfolioV0DoctorChecks(implStateDir: string | undefined): DoctorCheckResult[];
@@ -0,0 +1,123 @@
1
+ /**
2
+ * portfolio.v0 doctor checks (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
3
+ *
4
+ * Returns structured check results without hitting the network — all checks are
5
+ * local filesystem reads. Each check is safe to call independently.
6
+ *
7
+ * Note: The HL master account deposit check (verifying on-chain deposit via HL
8
+ * API) is intentionally skipped in v0 — it would require an external network
9
+ * call with no existing client dependency. Operators should verify the deposit
10
+ * manually via the Hyperliquid UI.
11
+ */
12
+ import { existsSync, statSync, accessSync, constants } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ import { loadApiWalletState } from '../restorer/impls/claude-mcp-hyperliquid/api-wallet.js';
15
+ // ── Checks ────────────────────────────────────────────────────────────────────
16
+ /**
17
+ * Check that the implStateDir for the HL impl is accessible and looks healthy.
18
+ *
19
+ * @param implStateDir - path to the impl state directory (e.g. ~/.jinn-client/impl/claude-mcp-hyperliquid)
20
+ */
21
+ export function checkImplStateDir(implStateDir) {
22
+ if (!implStateDir) {
23
+ return {
24
+ name: 'portfolio_impl_state_dir',
25
+ ok: false,
26
+ detail: 'implStateDir not configured',
27
+ remedy: 'Set implStateDir in your config or pass --impl-state-dir to the daemon.',
28
+ };
29
+ }
30
+ if (!existsSync(implStateDir)) {
31
+ return {
32
+ name: 'portfolio_impl_state_dir',
33
+ ok: false,
34
+ detail: `directory does not exist: ${implStateDir}`,
35
+ remedy: 'Run the daemon at least once to initialise the impl state directory.',
36
+ };
37
+ }
38
+ try {
39
+ const stat = statSync(implStateDir);
40
+ if (!stat.isDirectory()) {
41
+ return {
42
+ name: 'portfolio_impl_state_dir',
43
+ ok: false,
44
+ detail: `path exists but is not a directory: ${implStateDir}`,
45
+ remedy: 'Remove the file at that path and let the daemon recreate the directory.',
46
+ };
47
+ }
48
+ accessSync(implStateDir, constants.R_OK);
49
+ }
50
+ catch (e) {
51
+ return {
52
+ name: 'portfolio_impl_state_dir',
53
+ ok: false,
54
+ detail: `directory not readable: ${e instanceof Error ? e.message : String(e)}`,
55
+ remedy: 'Check filesystem permissions on the impl state directory.',
56
+ };
57
+ }
58
+ return {
59
+ name: 'portfolio_impl_state_dir',
60
+ ok: true,
61
+ detail: `directory present and readable: ${implStateDir}`,
62
+ };
63
+ }
64
+ /**
65
+ * Check that an HL API wallet is present in implStateDir and whether it has
66
+ * been approved by the operator.
67
+ *
68
+ * Returns ok=true even when not yet approved (that is an operator action, not
69
+ * a system error) — the detail string makes the status clear.
70
+ */
71
+ export function checkHlApiWallet(implStateDir) {
72
+ if (!implStateDir) {
73
+ return {
74
+ name: 'hl_api_wallet',
75
+ ok: false,
76
+ detail: 'implStateDir not configured — cannot locate API wallet',
77
+ remedy: 'Configure implStateDir and run the daemon at least once.',
78
+ };
79
+ }
80
+ const walletPath = join(implStateDir, 'api-wallet.json');
81
+ if (!existsSync(walletPath)) {
82
+ return {
83
+ name: 'hl_api_wallet',
84
+ ok: false,
85
+ detail: 'api-wallet.json not found in implStateDir',
86
+ remedy: 'Run the daemon at least once so the API wallet is generated, then approve it via the HL UI.',
87
+ };
88
+ }
89
+ const state = loadApiWalletState(implStateDir);
90
+ if (!state) {
91
+ return {
92
+ name: 'hl_api_wallet',
93
+ ok: false,
94
+ detail: 'api-wallet.json exists but could not be parsed',
95
+ remedy: 'Inspect the file for corruption, or delete it and let the daemon regenerate it.',
96
+ };
97
+ }
98
+ if (!state.approved) {
99
+ return {
100
+ name: 'hl_api_wallet',
101
+ ok: false,
102
+ detail: `API wallet present but not approved — address: ${state.address}`,
103
+ remedy: 'Approve this address as an API wallet on your HL master account (Settings → API Wallets → Add).',
104
+ };
105
+ }
106
+ return {
107
+ name: 'hl_api_wallet',
108
+ ok: true,
109
+ detail: `API wallet present and approved — address: ${state.address}`,
110
+ };
111
+ }
112
+ /**
113
+ * Run all portfolio.v0 doctor checks given an optional implStateDir.
114
+ * Safe to call even when HL impl is not configured — checks gracefully handle
115
+ * the undefined case.
116
+ */
117
+ export function runPortfolioV0DoctorChecks(implStateDir) {
118
+ return [
119
+ checkImplStateDir(implStateDir),
120
+ checkHlApiWallet(implStateDir),
121
+ ];
122
+ }
123
+ //# sourceMappingURL=portfolio-v0-doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portfolio-v0-doctor.js","sourceRoot":"","sources":["../../src/api/portfolio-v0-doctor.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export function assembleRewardsV1(raw) {
35
35
  schemaVersion: 1,
36
36
  generatedAt: new Date().toISOString(),
37
37
  lastClaimAt: raw.lastRewardClaimTickAt,
38
- nextCheckpointAt: null,
38
+ nextCheckpointAt: raw.nextCheckpointAt ?? null,
39
39
  services,
40
40
  };
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rewards-build.js","sourceRoot":"","sources":["../../src/api/rewards-build.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,eAAe;IACf,UAAU;IACV,gBAAgB;CACjB,CAAC,CAAC;AAiBH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GACX,cAAc,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC,KAAK,CAAC;gBACP,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG;YACP,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS;gBAC7B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC;YACpC,OAAO;YACP,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,QAAiB;SACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,GAAG,CAAC,qBAAqB;QACtC,gBAAgB,EAAE,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rewards-build.js","sourceRoot":"","sources":["../../src/api/rewards-build.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,eAAe;IACf,UAAU;IACV,gBAAgB;CACjB,CAAC,CAAC;AAiBH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GACX,cAAc,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC,KAAK,CAAC;gBACP,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG;YACP,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS;gBAC7B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC;YACpC,OAAO;YACP,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,QAAiB;SACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,GAAG,CAAC,qBAAqB;QACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC9C,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * Pure assembly for GET /v1/status JSON (testable without RPC or filesystem).
3
3
  */
4
4
  import type { FleetState } from '../earning/types.js';
5
+ import type { PortfolioV0Status } from './portfolio-v0-build.js';
5
6
  export type StatusHintsScope = 'full' | 'sqlite_only';
6
7
  export interface GatheredStatusRaw {
7
8
  /** sqlite_only: only SQLite-backed fields (e2e / API without fleet context). */
@@ -30,10 +31,14 @@ export interface GatheredStatusRaw {
30
31
  };
31
32
  pendingStakingRewardsWei?: string;
32
33
  pendingRewardsError?: string;
34
+ /** ISO timestamp when the staking contract will next accept a checkpoint. */
35
+ nextCheckpointAt?: string;
33
36
  pollIntervalMs: number;
34
37
  /** Resolved daily burn estimate for runway (wei string). */
35
38
  masterDailyEstimateWei: string;
36
39
  minMasterEthWei?: string;
40
+ /** portfolio.v0 lifecycle data — populated by gather-status from the SQLite store. */
41
+ portfolioV0?: PortfolioV0Status;
37
42
  }
38
43
  export interface StatusV1Response {
39
44
  statusMode: 'full' | 'sqlite_only';
@@ -85,6 +90,8 @@ export interface StatusV1Response {
85
90
  hint: string;
86
91
  };
87
92
  nextActions: string[];
93
+ /** portfolio.v0 lifecycle data — optional, absent when not available. */
94
+ portfolioV0?: PortfolioV0Status;
88
95
  }
89
96
  /**
90
97
  * Match bootstrap heuristic for master daily gas when config omits JINN_MASTER_ETH_DAILY_WEI.
@@ -170,6 +170,7 @@ export function assembleStatusV1(raw) {
170
170
  hint: buildEarningsHint(raw, fleetSum),
171
171
  },
172
172
  nextActions: buildNextActions(raw, fleetSum),
173
+ ...(raw.portfolioV0 !== undefined ? { portfolioV0: raw.portfolioV0 } : {}),
173
174
  };
174
175
  }
175
176
  //# sourceMappingURL=status-build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-build.js","sourceRoot":"","sources":["../../src/api/status-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-build.js","sourceRoot":"","sources":["../../src/api/status-build.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,2 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * jinn-mcp — standalone MCP server exposing operator-level tools.
4
- *
5
- * Designed to be launched by an MCP-aware host (Claude Desktop, Cursor, etc.)
6
- * via stdio transport. Each tool delegates to the same command modules that
7
- * the `jinn` CLI uses, so behaviour is always consistent.
8
- *
9
- * Usage (in an MCP host config):
10
- * { "command": "jinn-mcp" }
11
- *
12
- * Context: docs/research/2026-04-agent-packaging.md sections 2.2, 5.1-5.3
13
- */
14
2
  export {};
@@ -1,19 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * jinn-mcp standalone MCP server exposing operator-level tools.
3
+ * Temporary compatibility shim for the old `jinn-mcp` bin.
4
4
  *
5
- * Designed to be launched by an MCP-aware host (Claude Desktop, Cursor, etc.)
6
- * via stdio transport. Each tool delegates to the same command modules that
7
- * the `jinn` CLI uses, so behaviour is always consistent.
8
- *
9
- * Usage (in an MCP host config):
10
- * { "command": "jinn-mcp" }
11
- *
12
- * Context: docs/research/2026-04-agent-packaging.md sections 2.2, 5.1-5.3
5
+ * The canonical entrypoint is now `jinn mcp`.
13
6
  */
14
- import { createOperatorServer } from '../mcp/operator-server.js';
15
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
16
- const server = createOperatorServer();
17
- const transport = new StdioServerTransport();
18
- await server.connect(transport);
7
+ import { runCli } from '../cli/index.js';
8
+ console.error('[jinn-mcp] deprecated: use `jinn mcp` instead.');
9
+ await runCli(['mcp', ...process.argv.slice(2)]);
19
10
  //# sourceMappingURL=jinn-mcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jinn-mcp.js","sourceRoot":"","sources":["../../src/bin/jinn-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;AACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"jinn-mcp.js","sourceRoot":"","sources":["../../src/bin/jinn-mcp.ts"],"names":[],"mappings":";AACA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,MAAM,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "8e0a05c1197c9343665f90ef62c652d4fe7aee36"
2
+ "commit": "d6e72dfdae495dc07a10ad760e43465a3289df9e"
3
3
  }