@jinn-network/client 0.1.0 → 0.1.1-canary.4a6ed8b2

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 (269) hide show
  1. package/README.md +98 -11
  2. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -0
  3. package/dist/adapters/claim-registry/abi.d.ts +127 -0
  4. package/dist/adapters/claim-registry/abi.js +93 -0
  5. package/dist/adapters/claim-registry/abi.js.map +1 -0
  6. package/dist/adapters/claim-registry/client.d.ts +89 -0
  7. package/dist/adapters/claim-registry/client.js +205 -0
  8. package/dist/adapters/claim-registry/client.js.map +1 -0
  9. package/dist/adapters/mech/adapter.d.ts +2 -0
  10. package/dist/adapters/mech/adapter.js +110 -41
  11. package/dist/adapters/mech/adapter.js.map +1 -1
  12. package/dist/adapters/mech/contracts.d.ts +2 -0
  13. package/dist/adapters/mech/contracts.js +32 -7
  14. package/dist/adapters/mech/contracts.js.map +1 -1
  15. package/dist/adapters/mech/ipfs.d.ts +8 -0
  16. package/dist/adapters/mech/ipfs.js +12 -0
  17. package/dist/adapters/mech/ipfs.js.map +1 -1
  18. package/dist/adapters/mech/types.d.ts +20 -46
  19. package/dist/adapters/mech/types.js +16 -35
  20. package/dist/adapters/mech/types.js.map +1 -1
  21. package/dist/api/gather-status.js +11 -0
  22. package/dist/api/gather-status.js.map +1 -1
  23. package/dist/api/portfolio-v0-build.d.ts +81 -0
  24. package/dist/api/portfolio-v0-build.js +141 -0
  25. package/dist/api/portfolio-v0-build.js.map +1 -0
  26. package/dist/api/portfolio-v0-doctor.d.ts +37 -0
  27. package/dist/api/portfolio-v0-doctor.js +123 -0
  28. package/dist/api/portfolio-v0-doctor.js.map +1 -0
  29. package/dist/api/server.js +12 -0
  30. package/dist/api/server.js.map +1 -1
  31. package/dist/api/status-build.d.ts +6 -0
  32. package/dist/api/status-build.js +1 -0
  33. package/dist/api/status-build.js.map +1 -1
  34. package/dist/api/status-rollup-build.d.ts +4 -0
  35. package/dist/api/status-rollup-build.js +4 -0
  36. package/dist/api/status-rollup-build.js.map +1 -1
  37. package/dist/bin/jinn-mcp.d.ts +14 -0
  38. package/dist/bin/jinn-mcp.js +19 -0
  39. package/dist/bin/jinn-mcp.js.map +1 -0
  40. package/dist/build-meta.json +1 -1
  41. package/dist/cli/commands/auth.d.ts +3 -0
  42. package/dist/cli/commands/auth.js +236 -0
  43. package/dist/cli/commands/auth.js.map +1 -0
  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 +148 -15
  47. package/dist/cli/commands/doctor.js.map +1 -1
  48. package/dist/cli/commands/fund-requirements.js +69 -1
  49. package/dist/cli/commands/fund-requirements.js.map +1 -1
  50. package/dist/cli/commands/history.js +1 -0
  51. package/dist/cli/commands/history.js.map +1 -1
  52. package/dist/cli/commands/init.js +31 -7
  53. package/dist/cli/commands/init.js.map +1 -1
  54. package/dist/cli/commands/keys-backup.js +142 -10
  55. package/dist/cli/commands/keys-backup.js.map +1 -1
  56. package/dist/cli/commands/logs.js +28 -13
  57. package/dist/cli/commands/logs.js.map +1 -1
  58. package/dist/cli/commands/plugin-install.d.ts +3 -0
  59. package/dist/cli/commands/plugin-install.js +799 -0
  60. package/dist/cli/commands/plugin-install.js.map +1 -0
  61. package/dist/cli/commands/quickstart.d.ts +3 -0
  62. package/dist/cli/commands/quickstart.js +236 -0
  63. package/dist/cli/commands/quickstart.js.map +1 -0
  64. package/dist/cli/commands/run.js +6 -0
  65. package/dist/cli/commands/run.js.map +1 -1
  66. package/dist/cli/commands/stop.js +1 -0
  67. package/dist/cli/commands/stop.js.map +1 -1
  68. package/dist/cli/commands/submit-intent.js +79 -5
  69. package/dist/cli/commands/submit-intent.js.map +1 -1
  70. package/dist/cli/commands/update.d.ts +3 -0
  71. package/dist/cli/commands/update.js +154 -0
  72. package/dist/cli/commands/update.js.map +1 -0
  73. package/dist/cli/commands/version.js +15 -1
  74. package/dist/cli/commands/version.js.map +1 -1
  75. package/dist/cli/deployment-digest.js +20 -4
  76. package/dist/cli/deployment-digest.js.map +1 -1
  77. package/dist/cli/index.js +8 -0
  78. package/dist/cli/index.js.map +1 -1
  79. package/dist/cli/password.d.ts +15 -0
  80. package/dist/cli/password.js +29 -1
  81. package/dist/cli/password.js.map +1 -1
  82. package/dist/config.d.ts +110 -7
  83. package/dist/config.js +38 -5
  84. package/dist/config.js.map +1 -1
  85. package/dist/daemon/balance-topup-loop.d.ts +40 -0
  86. package/dist/daemon/balance-topup-loop.js +96 -0
  87. package/dist/daemon/balance-topup-loop.js.map +1 -0
  88. package/dist/daemon/daemon.d.ts +37 -0
  89. package/dist/daemon/daemon.js +98 -1
  90. package/dist/daemon/daemon.js.map +1 -1
  91. package/dist/dashboard/index.html +500 -0
  92. package/dist/earning/bootstrap.d.ts +3 -1
  93. package/dist/earning/bootstrap.js +138 -17
  94. package/dist/earning/bootstrap.js.map +1 -1
  95. package/dist/earning/contracts.d.ts +24 -0
  96. package/dist/earning/contracts.js +20 -1
  97. package/dist/earning/contracts.js.map +1 -1
  98. package/dist/earning/faucet.d.ts +15 -0
  99. package/dist/earning/faucet.js +64 -0
  100. package/dist/earning/faucet.js.map +1 -0
  101. package/dist/earning/store.d.ts +5 -0
  102. package/dist/earning/store.js +7 -3
  103. package/dist/earning/store.js.map +1 -1
  104. package/dist/errors/unauthorized-account.d.ts +10 -0
  105. package/dist/errors/unauthorized-account.js +14 -0
  106. package/dist/errors/unauthorized-account.js.map +1 -0
  107. package/dist/main.js +128 -1
  108. package/dist/main.js.map +1 -1
  109. package/dist/mcp/operator-server.d.ts +34 -0
  110. package/dist/mcp/operator-server.js +219 -0
  111. package/dist/mcp/operator-server.js.map +1 -0
  112. package/dist/operator-errors.js +11 -0
  113. package/dist/operator-errors.js.map +1 -1
  114. package/dist/preflight/claude-auth.d.ts +68 -0
  115. package/dist/preflight/claude-auth.js +171 -0
  116. package/dist/preflight/claude-auth.js.map +1 -0
  117. package/dist/restorer/engine/canonical-json.d.ts +18 -0
  118. package/dist/restorer/engine/canonical-json.js +59 -0
  119. package/dist/restorer/engine/canonical-json.js.map +1 -0
  120. package/dist/restorer/engine/claim.d.ts +69 -0
  121. package/dist/restorer/engine/claim.js +104 -0
  122. package/dist/restorer/engine/claim.js.map +1 -0
  123. package/dist/restorer/engine/delivery.d.ts +52 -0
  124. package/dist/restorer/engine/delivery.js +63 -0
  125. package/dist/restorer/engine/delivery.js.map +1 -0
  126. package/dist/restorer/engine/engine.d.ts +203 -0
  127. package/dist/restorer/engine/engine.js +658 -0
  128. package/dist/restorer/engine/engine.js.map +1 -0
  129. package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
  130. package/dist/restorer/engine/manifest-assembly.js +79 -0
  131. package/dist/restorer/engine/manifest-assembly.js.map +1 -0
  132. package/dist/restorer/engine/packaging.d.ts +87 -0
  133. package/dist/restorer/engine/packaging.js +350 -0
  134. package/dist/restorer/engine/packaging.js.map +1 -0
  135. package/dist/restorer/engine/persistence.d.ts +170 -0
  136. package/dist/restorer/engine/persistence.js +381 -0
  137. package/dist/restorer/engine/persistence.js.map +1 -0
  138. package/dist/restorer/engine/recovery.d.ts +22 -0
  139. package/dist/restorer/engine/recovery.js +24 -0
  140. package/dist/restorer/engine/recovery.js.map +1 -0
  141. package/dist/restorer/engine/registry.d.ts +62 -0
  142. package/dist/restorer/engine/registry.js +73 -0
  143. package/dist/restorer/engine/registry.js.map +1 -0
  144. package/dist/restorer/engine/signing.d.ts +30 -0
  145. package/dist/restorer/engine/signing.js +39 -0
  146. package/dist/restorer/engine/signing.js.map +1 -0
  147. package/dist/restorer/engine/state.d.ts +42 -0
  148. package/dist/restorer/engine/state.js +87 -0
  149. package/dist/restorer/engine/state.js.map +1 -0
  150. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
  151. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
  152. package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
  153. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +88 -0
  154. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +560 -0
  155. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
  156. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
  157. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
  158. package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
  159. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
  160. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
  161. package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
  162. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
  163. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
  164. package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
  165. package/dist/restorer/impls/legacy-claude/index.d.ts +42 -0
  166. package/dist/restorer/impls/legacy-claude/index.js +60 -0
  167. package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
  168. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
  169. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
  170. package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
  171. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
  172. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
  173. package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
  174. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
  175. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
  176. package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
  177. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
  178. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
  179. package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
  180. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
  181. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
  182. package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
  183. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
  184. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
  185. package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
  186. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +43 -0
  187. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +431 -0
  188. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
  189. package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
  190. package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
  191. package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
  192. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +32 -0
  193. package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
  194. package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
  195. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +26 -0
  196. package/dist/restorer/impls/prediction-v0-baseline/index.js +82 -0
  197. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
  198. package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
  199. package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
  200. package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
  201. package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
  202. package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
  203. package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
  204. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
  205. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
  206. package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
  207. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
  208. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
  209. package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
  210. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
  211. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
  212. package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
  213. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +7 -0
  214. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +74 -0
  215. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
  216. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
  217. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
  218. package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
  219. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +33 -0
  220. package/dist/restorer/impls/prediction-v0-evaluator/index.js +179 -0
  221. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
  222. package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
  223. package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
  224. package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
  225. package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
  226. package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
  227. package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
  228. package/dist/restorer/types.d.ts +62 -0
  229. package/dist/restorer/types.js +7 -0
  230. package/dist/restorer/types.js.map +1 -0
  231. package/dist/runner/claude.js +15 -0
  232. package/dist/runner/claude.js.map +1 -1
  233. package/dist/store/store.d.ts +3 -1
  234. package/dist/store/store.js +8 -0
  235. package/dist/store/store.js.map +1 -1
  236. package/dist/tx-retry.js +11 -1
  237. package/dist/tx-retry.js.map +1 -1
  238. package/dist/types/desired-state.d.ts +53 -0
  239. package/dist/types/desired-state.js +20 -0
  240. package/dist/types/desired-state.js.map +1 -1
  241. package/dist/types/index.d.ts +3 -1
  242. package/dist/types/index.js +3 -1
  243. package/dist/types/index.js.map +1 -1
  244. package/dist/types/portfolio.d.ts +1000 -0
  245. package/dist/types/portfolio.js +168 -0
  246. package/dist/types/portfolio.js.map +1 -0
  247. package/dist/types/prediction.d.ts +751 -0
  248. package/dist/types/prediction.js +128 -0
  249. package/dist/types/prediction.js.map +1 -0
  250. package/dist/venues/chainlink/client.d.ts +99 -0
  251. package/dist/venues/chainlink/client.js +130 -0
  252. package/dist/venues/chainlink/client.js.map +1 -0
  253. package/dist/venues/chainlink/feeds.d.ts +8 -0
  254. package/dist/venues/chainlink/feeds.js +9 -0
  255. package/dist/venues/chainlink/feeds.js.map +1 -0
  256. package/dist/venues/hyperliquid/account-value.d.ts +30 -0
  257. package/dist/venues/hyperliquid/account-value.js +30 -0
  258. package/dist/venues/hyperliquid/account-value.js.map +1 -0
  259. package/dist/venues/hyperliquid/client.d.ts +63 -0
  260. package/dist/venues/hyperliquid/client.js +135 -0
  261. package/dist/venues/hyperliquid/client.js.map +1 -0
  262. package/dist/venues/hyperliquid/grid.d.ts +36 -0
  263. package/dist/venues/hyperliquid/grid.js +61 -0
  264. package/dist/venues/hyperliquid/grid.js.map +1 -0
  265. package/dist/venues/hyperliquid/types.d.ts +81 -0
  266. package/dist/venues/hyperliquid/types.js +8 -0
  267. package/dist/venues/hyperliquid/types.js.map +1 -0
  268. package/package.json +18 -3
  269. package/skills/jinn-operator/SKILL.md +213 -0
@@ -0,0 +1,154 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { parseArgs } from 'node:util';
3
+ import { COMMON_FLAGS } from '../command.js';
4
+ import { emitResult } from '../output.js';
5
+ import { emitEnvelope } from '../../errors/envelope.js';
6
+ import pluginCommand from './plugin-install.js';
7
+ class StringWriter {
8
+ chunks = [];
9
+ write(s) { this.chunks.push(s); return true; }
10
+ toString() { return this.chunks.join(''); }
11
+ }
12
+ function summarizePluginInstall(output, exitCode) {
13
+ if (exitCode !== null && exitCode !== 0) {
14
+ return { status: 'error', detail: output || `plugin install exited with code ${exitCode}` };
15
+ }
16
+ try {
17
+ const parsed = JSON.parse(output);
18
+ const results = Array.isArray(parsed.results) ? parsed.results : [];
19
+ const failures = results.flatMap((result) => {
20
+ const failedParts = [];
21
+ if (result.mcp.status === 'error')
22
+ failedParts.push(`MCP: ${result.mcp.detail}`);
23
+ if (result.skill.status === 'error')
24
+ failedParts.push(`Skill: ${result.skill.detail}`);
25
+ if (failedParts.length === 0)
26
+ return [];
27
+ return [`${result.target} (${failedParts.join('; ')})`];
28
+ });
29
+ if (failures.length > 0) {
30
+ return { status: 'error', detail: failures.join(' | ') };
31
+ }
32
+ return { status: 'ok', detail: 'Plugins updated' };
33
+ }
34
+ catch {
35
+ return { status: 'error', detail: output || 'Unexpected plugin install output' };
36
+ }
37
+ }
38
+ async function run(ctx) {
39
+ let parsed;
40
+ try {
41
+ parsed = parseArgs({
42
+ args: ctx.argv,
43
+ options: {
44
+ ...COMMON_FLAGS,
45
+ 'skip-npm': { type: 'boolean', default: false },
46
+ 'skip-plugins': { type: 'boolean', default: false },
47
+ },
48
+ allowPositionals: false,
49
+ });
50
+ }
51
+ catch (err) {
52
+ emitEnvelope({
53
+ code: 'invalid_invocation',
54
+ message: err instanceof Error ? err.message : String(err),
55
+ exampleCli: 'jinn update',
56
+ details: { field: 'flags' },
57
+ }, { writer: ctx.writer, exit: ctx.exit });
58
+ return;
59
+ }
60
+ const skipNpm = parsed.values['skip-npm'];
61
+ const skipPlugins = parsed.values['skip-plugins'];
62
+ const steps = [];
63
+ // ── Step 1: Update the npm package ──
64
+ if (!skipNpm) {
65
+ console.error('[update] Updating @jinn-network/client...');
66
+ try {
67
+ const output = execSync('npm update -g @jinn-network/client 2>&1', {
68
+ encoding: 'utf-8',
69
+ timeout: 120_000,
70
+ });
71
+ steps.push({ step: 'npm-update', status: 'ok', detail: output.trim() || 'Package updated' });
72
+ console.error('[update] Package updated.');
73
+ }
74
+ catch (err) {
75
+ const message = err instanceof Error ? err.message : String(err);
76
+ steps.push({ step: 'npm-update', status: 'error', detail: message });
77
+ console.error(`[update] npm update failed: ${message}`);
78
+ // Continue — plugin install may still be useful even if npm update failed
79
+ }
80
+ }
81
+ else {
82
+ steps.push({ step: 'npm-update', status: 'skipped', detail: '--skip-npm' });
83
+ }
84
+ // ── Step 2: Re-install plugins (propagates skill updates) ──
85
+ if (!skipPlugins) {
86
+ console.error('[update] Updating plugins...');
87
+ const pluginWriter = new StringWriter();
88
+ let pluginExitCode = null;
89
+ await pluginCommand.run({
90
+ argv: ['install', '--json'],
91
+ stdoutIsTty: false,
92
+ writer: pluginWriter,
93
+ exit: (code) => { pluginExitCode = code; },
94
+ env: ctx.env,
95
+ });
96
+ const pluginOutput = pluginWriter.toString().trim();
97
+ const pluginResult = summarizePluginInstall(pluginOutput, pluginExitCode);
98
+ if (pluginResult.status === 'ok') {
99
+ steps.push({ step: 'plugin-install', status: 'ok', detail: pluginResult.detail });
100
+ console.error('[update] Plugins updated.');
101
+ }
102
+ else {
103
+ steps.push({ step: 'plugin-install', status: 'error', detail: pluginResult.detail });
104
+ console.error('[update] Plugin update had issues.');
105
+ }
106
+ }
107
+ else {
108
+ steps.push({ step: 'plugin-install', status: 'skipped', detail: '--skip-plugins' });
109
+ }
110
+ const allOk = steps.every((s) => s.status === 'ok' || s.status === 'skipped');
111
+ emitResult({
112
+ schemaVersion: 1,
113
+ generatedAt: new Date().toISOString(),
114
+ verb: 'update',
115
+ ok: allOk,
116
+ steps,
117
+ }, (v) => {
118
+ const value = v;
119
+ const lines = value.steps.map((s) => ` ${s.step.padEnd(16)} ${s.status}${s.status === 'error' ? `: ${s.detail}` : ''}`);
120
+ return `Update ${value.ok ? 'complete' : 'completed with errors'}:\n${lines.join('\n')}`;
121
+ }, {
122
+ json: Boolean(parsed.values.json),
123
+ human: Boolean(parsed.values.human),
124
+ writer: ctx.writer,
125
+ stdoutIsTty: ctx.stdoutIsTty,
126
+ noColor: Boolean(ctx.env['NO_COLOR']),
127
+ });
128
+ }
129
+ const command = {
130
+ name: 'update',
131
+ summary: 'Update the client package and refresh plugins in all configured AI tools',
132
+ helpText: `Usage: jinn update [--human] [--skip-npm] [--skip-plugins]
133
+
134
+ Two steps:
135
+ 1. npm update -g @jinn-network/client (updates binary + MCP server + skill source)
136
+ 2. jinn plugin install (refreshes skills in all configured tools)
137
+
138
+ The MCP server updates automatically (it's a binary on PATH).
139
+ Skills need re-installation because they are copied into each tool's
140
+ config directory.
141
+
142
+ Flags:
143
+ --skip-npm Skip the npm update step
144
+ --skip-plugins Skip the plugin re-install step
145
+
146
+ Examples:
147
+ jinn update
148
+ jinn update --human
149
+ jinn update --skip-npm # just refresh plugins with current version
150
+ `,
151
+ run,
152
+ };
153
+ export default command;
154
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ async function run(ctx) {
85
85
  reward: { symbol: bondRewardSymbol, address: chainConfig.olasToken, decimals: 18 },
86
86
  },
87
87
  };
88
- emitResult(payload, (v) => JSON.stringify(v, null, 2), {
88
+ emitResult(payload, (v) => humanVersion(v), {
89
89
  json: Boolean(parsed.values.json),
90
90
  human: Boolean(parsed.values.human),
91
91
  writer: ctx.writer,
@@ -93,6 +93,20 @@ async function run(ctx) {
93
93
  noColor: Boolean(ctx.env['NO_COLOR']),
94
94
  });
95
95
  }
96
+ function humanVersion(payload) {
97
+ const digest = payload.deployments.digest === 'unknown'
98
+ ? 'unknown'
99
+ : `${payload.deployments.digest.slice(0, 12)}…`;
100
+ const artifactNames = payload.deployments.artifacts.length > 0
101
+ ? payload.deployments.artifacts.map((a) => a.name).join(', ')
102
+ : '(none)';
103
+ return [
104
+ `Jinn client ${payload.client.version} (${payload.protocol.phase}, ${payload.network})`,
105
+ `Commit: ${payload.client.commit}`,
106
+ `Deployments: ${digest} — ${artifactNames}`,
107
+ `Tokens: native=${payload.tokens.native.symbol}, bond=${payload.tokens.bond.symbol} @ ${payload.tokens.bond.address}, reward=${payload.tokens.reward.symbol}`,
108
+ ].join('\n');
109
+ }
96
110
  const command = {
97
111
  name: 'version',
98
112
  summary: 'Print client version, protocol phase, and resolved token map',
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,27 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
+ import { DEFAULT_TESTNET_ARTIFACTS } from '../earning/contracts.js';
3
4
  export function computeDeploymentDigest(config) {
5
+ const isTestnet = config.network === 'testnet';
4
6
  const candidates = [
5
- { name: 'testnetL2', path: config.testnetL2DeploymentPath },
6
- { name: 'testnetL2Token', path: config.testnetL2TokenDeploymentPath },
7
- { name: 'testnetMech', path: config.testnetMechDeploymentPath },
8
- { name: 'testnetStolas', path: config.testnetStolasDeploymentPath },
7
+ {
8
+ name: 'testnetL2',
9
+ path: config.testnetL2DeploymentPath ?? (isTestnet ? DEFAULT_TESTNET_ARTIFACTS.l2 : undefined),
10
+ },
11
+ {
12
+ name: 'testnetL2Token',
13
+ path: config.testnetL2TokenDeploymentPath ??
14
+ (isTestnet ? DEFAULT_TESTNET_ARTIFACTS.token : undefined),
15
+ },
16
+ {
17
+ name: 'testnetMech',
18
+ path: config.testnetMechDeploymentPath ?? (isTestnet ? DEFAULT_TESTNET_ARTIFACTS.mech : undefined),
19
+ },
20
+ {
21
+ name: 'testnetStolas',
22
+ path: config.testnetStolasDeploymentPath ??
23
+ (isTestnet ? DEFAULT_TESTNET_ARTIFACTS.stolas : undefined),
24
+ },
9
25
  ];
10
26
  const artifacts = [];
11
27
  const pieces = [];
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-digest.js","sourceRoot":"","sources":["../../src/cli/deployment-digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASnD,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IAIxD,MAAM,UAAU,GAAsD;QACpE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,uBAAuB,EAAE;QAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,4BAA4B,EAAE;QACrE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,EAAE;QAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,2BAA2B,EAAE;KACpE,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"deployment-digest.js","sourceRoot":"","sources":["../../src/cli/deployment-digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IAIxD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAsD;QACpE;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/F;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EACF,MAAM,CAAC,4BAA4B;gBACnC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;SAC5D;QACD;YACE,IAAI,EAAE,aAAa;YACnB,IAAI,EACF,MAAM,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/F;QACD;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EACF,MAAM,CAAC,2BAA2B;gBAClC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D;KACF,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC"}
package/dist/cli/index.js CHANGED
@@ -13,6 +13,8 @@ import { ConfigLoadError } from '../config.js';
13
13
  import versionCommand from './commands/version.js';
14
14
  import doctorCommand from './commands/doctor.js';
15
15
  import initCommand from './commands/init.js';
16
+ import quickstartCommand from './commands/quickstart.js';
17
+ import authCommand from './commands/auth.js';
16
18
  import bootstrapCommand from './commands/bootstrap.js';
17
19
  import fundRequirementsCommand from './commands/fund-requirements.js';
18
20
  import runCommand from './commands/run.js';
@@ -28,10 +30,14 @@ import submitIntentCommand from './commands/submit-intent.js';
28
30
  import claimRewardsCommand from './commands/claim-rewards.js';
29
31
  import withdrawCommand from './commands/withdraw.js';
30
32
  import keysCommand from './commands/keys-backup.js';
33
+ import pluginCommand from './commands/plugin-install.js';
34
+ import updateCommand from './commands/update.js';
31
35
  const COMMANDS = [
32
36
  versionCommand,
33
37
  doctorCommand,
34
38
  initCommand,
39
+ quickstartCommand,
40
+ authCommand,
35
41
  bootstrapCommand,
36
42
  fundRequirementsCommand,
37
43
  runCommand,
@@ -47,6 +53,8 @@ const COMMANDS = [
47
53
  claimRewardsCommand,
48
54
  withdrawCommand,
49
55
  keysCommand,
56
+ pluginCommand,
57
+ updateCommand,
50
58
  ];
51
59
  function publicCommandNames(commands) {
52
60
  return commands.filter((c) => c.name !== 'fleet-manage').map((c) => c.name);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -10,3 +10,18 @@ export declare function resolveCliPassword(argv?: string[], env?: NodeJS.Process
10
10
  ok: false;
11
11
  message: string;
12
12
  };
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
+ export declare function resolveNewPassword(env: Record<string, string | undefined>): {
22
+ ok: true;
23
+ password: string;
24
+ } | {
25
+ ok: false;
26
+ message: string;
27
+ };
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * CLI password resolution: JINN_PASSWORD env or --password-fd N (reads once, trims).
3
3
  */
4
- import { readFileSync } from 'node:fs';
4
+ import { existsSync, readFileSync } from 'node:fs';
5
+ import { homedir } from 'node:os';
6
+ import { join } from 'node:path';
5
7
  export function parsePasswordFdFromArgv(argv) {
6
8
  const idx = argv.indexOf('--password-fd');
7
9
  if (idx === -1)
@@ -48,4 +50,30 @@ export function resolveCliPassword(argv, env = process.env) {
48
50
  }
49
51
  return { ok: true, password: p };
50
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 };
67
+ }
68
+ export function resolveNewPassword(env) {
69
+ const newPass = env['JINN_NEW_PASSWORD'];
70
+ if (newPass && newPass.length >= 8)
71
+ return { ok: true, password: newPass };
72
+ if (newPass && newPass.length < 8)
73
+ return { ok: false, message: 'New password must be at least 8 characters.' };
74
+ return {
75
+ ok: false,
76
+ message: 'Set JINN_NEW_PASSWORD environment variable with your new password (min 8 characters).',
77
+ };
78
+ }
51
79
  //# sourceMappingURL=password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/cli/password.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,UAAU,uBAAuB,CAAC,IAAc;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,IAAe;IAChC,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;YACzE,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aACpD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,4EAA4E;SACtF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACnC,CAAC"}
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.
@@ -42,12 +43,27 @@ export declare const JinnConfigSchema: z.ZodObject<{
42
43
  * Env: JINN_REWARD_CLAIM_INTERVAL_MS
43
44
  */
44
45
  rewardClaimIntervalMs: z.ZodDefault<z.ZodNumber>;
46
+ /**
47
+ * How often the daemon checks agent EOA and Safe balances and tops them up from the master
48
+ * wallet when they drop below trigger thresholds (ms). Default 300000 (5 min).
49
+ * Set to 0 to disable. Env: JINN_BALANCE_TOPUP_INTERVAL_MS
50
+ */
51
+ balanceTopupIntervalMs: z.ZodDefault<z.ZodNumber>;
45
52
  /** HTTP API port */
46
53
  apiPort: z.ZodDefault<z.ZodNumber>;
47
54
  /** Path to claude CLI binary */
48
55
  claudePath: z.ZodDefault<z.ZodString>;
49
56
  /** Model for restoration/evaluation agent */
50
57
  claudeModel: z.ZodDefault<z.ZodString>;
58
+ /**
59
+ * How the operator runs the daemon. Set once at `jinn auth`, read by every
60
+ * command that probes the Claude CLI or spawns a subprocess. Leaving it
61
+ * unset falls back to filesystem-based detection (docker-compose.yml near
62
+ * cwd, /.dockerenv, etc.) which is error-prone inside a checkout of the
63
+ * repo itself.
64
+ * Env override: JINN_RUNTIME_MODE.
65
+ */
66
+ runtimeMode: z.ZodOptional<z.ZodEnum<["bare", "docker-compose", "container"]>>;
51
67
  /** Comma-separated or array of peer URLs */
52
68
  peers: z.ZodDefault<z.ZodUnion<[z.ZodEffects<z.ZodString, string[], string>, z.ZodArray<z.ZodString, "many">]>>;
53
69
  /** The Graph subgraph URL for artifact discovery */
@@ -56,17 +72,51 @@ export declare const JinnConfigSchema: z.ZodObject<{
56
72
  nodeEndpoint: z.ZodOptional<z.ZodString>;
57
73
  /** Desired states to create and restore */
58
74
  desiredStates: z.ZodDefault<z.ZodArray<z.ZodObject<{
59
- id: z.ZodString;
75
+ id: z.ZodOptional<z.ZodString>;
60
76
  description: z.ZodString;
61
77
  context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
78
+ window: z.ZodOptional<z.ZodObject<{
79
+ startTs: z.ZodNumber;
80
+ endTs: z.ZodNumber;
81
+ }, "strip", z.ZodTypeAny, {
82
+ startTs: number;
83
+ endTs: number;
84
+ }, {
85
+ startTs: number;
86
+ endTs: number;
87
+ }>>;
88
+ spec: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
89
+ kind: z.ZodString;
90
+ }, "strip", z.ZodTypeAny, {
91
+ kind: string;
92
+ }, {
93
+ kind: string;
94
+ }>, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
95
+ eligibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
62
96
  }, "strip", z.ZodTypeAny, {
63
- id: string;
64
97
  description: string;
98
+ id?: string | undefined;
65
99
  context?: Record<string, unknown> | undefined;
100
+ window?: {
101
+ startTs: number;
102
+ endTs: number;
103
+ } | undefined;
104
+ spec?: ({
105
+ kind: string;
106
+ } & Record<string, unknown>) | undefined;
107
+ eligibility?: Record<string, unknown> | undefined;
66
108
  }, {
67
- id: string;
68
109
  description: string;
110
+ id?: string | undefined;
69
111
  context?: Record<string, unknown> | undefined;
112
+ window?: {
113
+ startTs: number;
114
+ endTs: number;
115
+ } | undefined;
116
+ spec?: ({
117
+ kind: string;
118
+ } & Record<string, unknown>) | undefined;
119
+ eligibility?: Record<string, unknown> | undefined;
70
120
  }>, "many">>;
71
121
  /** IPFS upload endpoint */
72
122
  ipfsRegistryUrl: z.ZodDefault<z.ZodString>;
@@ -94,20 +144,51 @@ export declare const JinnConfigSchema: z.ZodObject<{
94
144
  * Default is applied in bootstrap when unset. Env: JINN_MASTER_ETH_DAILY_WEI
95
145
  */
96
146
  masterEthDailyEstimateWei: z.ZodOptional<z.ZodString>;
147
+ /**
148
+ * Operator-controlled impl dispatch for the restorer engine.
149
+ *
150
+ * Wired by daemon (jinn-mono-bv5); engine consumes via RestorerImplRegistry config.
151
+ *
152
+ * byKind: explicit spec.kind → impl name mapping (highest priority)
153
+ * default: fallback impl name when no kind-specific match is found
154
+ * disabled: impl names to exclude from dispatch entirely
155
+ */
156
+ restorers: z.ZodOptional<z.ZodObject<{
157
+ byKind: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
158
+ default: z.ZodOptional<z.ZodString>;
159
+ disabled: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
160
+ }, "strip", z.ZodTypeAny, {
161
+ byKind?: Record<string, string> | undefined;
162
+ default?: string | undefined;
163
+ disabled?: string[] | undefined;
164
+ }, {
165
+ byKind?: Record<string, string> | undefined;
166
+ default?: string | undefined;
167
+ disabled?: string[] | undefined;
168
+ }>>;
97
169
  }, "strip", z.ZodTypeAny, {
98
170
  network: "testnet" | "mainnet";
99
171
  earningDir: string;
100
172
  dbPath: string;
101
173
  pollIntervalMs: number;
102
174
  rewardClaimIntervalMs: number;
175
+ balanceTopupIntervalMs: number;
103
176
  apiPort: number;
104
177
  claudePath: string;
105
178
  claudeModel: string;
106
179
  peers: string[];
107
180
  desiredStates: {
108
- id: string;
109
181
  description: string;
182
+ id?: string | undefined;
110
183
  context?: Record<string, unknown> | undefined;
184
+ window?: {
185
+ startTs: number;
186
+ endTs: number;
187
+ } | undefined;
188
+ spec?: ({
189
+ kind: string;
190
+ } & Record<string, unknown>) | undefined;
191
+ eligibility?: Record<string, unknown> | undefined;
111
192
  }[];
112
193
  ipfsRegistryUrl: string;
113
194
  ipfsGatewayUrl: string;
@@ -115,6 +196,7 @@ export declare const JinnConfigSchema: z.ZodObject<{
115
196
  targetServices: number;
116
197
  debug: boolean;
117
198
  rpcUrl?: string | undefined;
199
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
118
200
  subgraphUrl?: string | undefined;
119
201
  nodeEndpoint?: string | undefined;
120
202
  testnetL2DeploymentPath?: string | undefined;
@@ -122,6 +204,11 @@ export declare const JinnConfigSchema: z.ZodObject<{
122
204
  testnetMechDeploymentPath?: string | undefined;
123
205
  testnetStolasDeploymentPath?: string | undefined;
124
206
  masterEthDailyEstimateWei?: string | undefined;
207
+ restorers?: {
208
+ byKind?: Record<string, string> | undefined;
209
+ default?: string | undefined;
210
+ disabled?: string[] | undefined;
211
+ } | undefined;
125
212
  }, {
126
213
  network?: "testnet" | "mainnet" | undefined;
127
214
  rpcUrl?: string | undefined;
@@ -129,16 +216,26 @@ export declare const JinnConfigSchema: z.ZodObject<{
129
216
  dbPath?: string | undefined;
130
217
  pollIntervalMs?: number | undefined;
131
218
  rewardClaimIntervalMs?: number | undefined;
219
+ balanceTopupIntervalMs?: number | undefined;
132
220
  apiPort?: number | undefined;
133
221
  claudePath?: string | undefined;
134
222
  claudeModel?: string | undefined;
223
+ runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
135
224
  peers?: string | string[] | undefined;
136
225
  subgraphUrl?: string | undefined;
137
226
  nodeEndpoint?: string | undefined;
138
227
  desiredStates?: {
139
- id: string;
140
228
  description: string;
229
+ id?: string | undefined;
141
230
  context?: Record<string, unknown> | undefined;
231
+ window?: {
232
+ startTs: number;
233
+ endTs: number;
234
+ } | undefined;
235
+ spec?: ({
236
+ kind: string;
237
+ } & Record<string, unknown>) | undefined;
238
+ eligibility?: Record<string, unknown> | undefined;
142
239
  }[] | undefined;
143
240
  ipfsRegistryUrl?: string | undefined;
144
241
  ipfsGatewayUrl?: string | undefined;
@@ -150,10 +247,16 @@ export declare const JinnConfigSchema: z.ZodObject<{
150
247
  targetServices?: number | undefined;
151
248
  debug?: boolean | undefined;
152
249
  masterEthDailyEstimateWei?: string | undefined;
250
+ restorers?: {
251
+ byKind?: Record<string, string> | undefined;
252
+ default?: string | undefined;
253
+ disabled?: string[] | undefined;
254
+ } | undefined;
153
255
  }>;
154
- /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined). */
155
- export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl'> & {
256
+ /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and desiredStates with id always assigned. */
257
+ export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'desiredStates'> & {
156
258
  rpcUrl: string;
259
+ desiredStates: DesiredState[];
157
260
  };
158
261
  export type ConfigLoadErrorCode = 'config_file_not_found' | 'config_json_invalid' | 'desired_states_file_not_found' | 'desired_states_json_invalid' | 'config_invalid';
159
262
  export declare class ConfigLoadError extends Error {