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

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 (218) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +3 -0
  3. package/dist/adapters/adapter.d.ts +7 -0
  4. package/dist/adapters/mech/adapter.d.ts +4 -0
  5. package/dist/adapters/mech/adapter.js +140 -19
  6. package/dist/adapters/mech/adapter.js.map +1 -1
  7. package/dist/adapters/mech/contracts.d.ts +17 -1
  8. package/dist/adapters/mech/contracts.js +55 -1
  9. package/dist/adapters/mech/contracts.js.map +1 -1
  10. package/dist/adapters/mech/ipfs.d.ts +30 -5
  11. package/dist/adapters/mech/ipfs.js +162 -17
  12. package/dist/adapters/mech/ipfs.js.map +1 -1
  13. package/dist/adapters/mech/safe.js +8 -6
  14. package/dist/adapters/mech/safe.js.map +1 -1
  15. package/dist/adapters/mech/types.d.ts +2 -0
  16. package/dist/adapters/mech/types.js.map +1 -1
  17. package/dist/api/balance-build.js +3 -3
  18. package/dist/api/balance-build.js.map +1 -1
  19. package/dist/api/fleet-build.js +35 -40
  20. package/dist/api/fleet-build.js.map +1 -1
  21. package/dist/api/gather-status.d.ts +5 -0
  22. package/dist/api/gather-status.js +158 -7
  23. package/dist/api/gather-status.js.map +1 -1
  24. package/dist/api/history-build.d.ts +5 -1
  25. package/dist/api/history-build.js +51 -26
  26. package/dist/api/history-build.js.map +1 -1
  27. package/dist/api/portfolio-v0-build.d.ts +3 -1
  28. package/dist/api/portfolio-v0-build.js +12 -10
  29. package/dist/api/portfolio-v0-build.js.map +1 -1
  30. package/dist/api/rewards-build.js +29 -13
  31. package/dist/api/rewards-build.js.map +1 -1
  32. package/dist/api/status-build.d.ts +32 -6
  33. package/dist/api/status-build.js +2 -1
  34. package/dist/api/status-build.js.map +1 -1
  35. package/dist/api/status-rollup-build.d.ts +2 -0
  36. package/dist/api/status-rollup-build.js +30 -3
  37. package/dist/api/status-rollup-build.js.map +1 -1
  38. package/dist/build-meta.json +1 -1
  39. package/dist/cli/commands/auth.js +27 -5
  40. package/dist/cli/commands/auth.js.map +1 -1
  41. package/dist/cli/commands/balance.js +8 -1
  42. package/dist/cli/commands/balance.js.map +1 -1
  43. package/dist/cli/commands/bootstrap.js +22 -0
  44. package/dist/cli/commands/bootstrap.js.map +1 -1
  45. package/dist/cli/commands/doctor.js +33 -3
  46. package/dist/cli/commands/doctor.js.map +1 -1
  47. package/dist/cli/commands/fleet.js +10 -1
  48. package/dist/cli/commands/fleet.js.map +1 -1
  49. package/dist/cli/commands/history.js +25 -6
  50. package/dist/cli/commands/history.js.map +1 -1
  51. package/dist/cli/commands/logs.js +35 -11
  52. package/dist/cli/commands/logs.js.map +1 -1
  53. package/dist/cli/commands/quickstart.js +39 -1
  54. package/dist/cli/commands/quickstart.js.map +1 -1
  55. package/dist/cli/commands/run.js +38 -0
  56. package/dist/cli/commands/run.js.map +1 -1
  57. package/dist/cli/commands/status.js +11 -1
  58. package/dist/cli/commands/status.js.map +1 -1
  59. package/dist/cli/commands/submit-intent.js +62 -99
  60. package/dist/cli/commands/submit-intent.js.map +1 -1
  61. package/dist/cli/intent-registry-access.d.ts +3 -5
  62. package/dist/cli/intent-registry-access.js +12 -34
  63. package/dist/cli/intent-registry-access.js.map +1 -1
  64. package/dist/cli/introspection-context.js +11 -8
  65. package/dist/cli/introspection-context.js.map +1 -1
  66. package/dist/config.d.ts +28 -1
  67. package/dist/config.js +29 -0
  68. package/dist/config.js.map +1 -1
  69. package/dist/daemon/balance-topup-loop.js +32 -4
  70. package/dist/daemon/balance-topup-loop.js.map +1 -1
  71. package/dist/daemon/creator.d.ts +6 -9
  72. package/dist/daemon/creator.js +45 -51
  73. package/dist/daemon/creator.js.map +1 -1
  74. package/dist/daemon/daemon.d.ts +9 -20
  75. package/dist/daemon/daemon.js +34 -27
  76. package/dist/daemon/daemon.js.map +1 -1
  77. package/dist/daemon/delivery-watcher.d.ts +3 -1
  78. package/dist/daemon/delivery-watcher.js +19 -1
  79. package/dist/daemon/delivery-watcher.js.map +1 -1
  80. package/dist/daemon/reward-claim-loop.js +38 -1
  81. package/dist/daemon/reward-claim-loop.js.map +1 -1
  82. package/dist/dashboard/index.html +71 -496
  83. package/dist/discovery/registry.d.ts +54 -0
  84. package/dist/discovery/registry.js +73 -0
  85. package/dist/discovery/registry.js.map +1 -1
  86. package/dist/earning/bootstrap.js +8 -38
  87. package/dist/earning/bootstrap.js.map +1 -1
  88. package/dist/earning/stolas-claim.d.ts +6 -0
  89. package/dist/earning/stolas-claim.js +7 -0
  90. package/dist/earning/stolas-claim.js.map +1 -1
  91. package/dist/intents/kinds/constants.d.ts +5 -0
  92. package/dist/intents/kinds/constants.js +6 -0
  93. package/dist/intents/kinds/constants.js.map +1 -0
  94. package/dist/intents/kinds/index.d.ts +28 -0
  95. package/dist/intents/kinds/index.js +50 -0
  96. package/dist/intents/kinds/index.js.map +1 -0
  97. package/dist/intents/kinds/portfolio-v0.d.ts +2 -0
  98. package/dist/intents/kinds/portfolio-v0.js +13 -0
  99. package/dist/intents/kinds/portfolio-v0.js.map +1 -0
  100. package/dist/intents/kinds/prediction-apy-v0.d.ts +3 -0
  101. package/dist/intents/kinds/prediction-apy-v0.js +21 -0
  102. package/dist/intents/kinds/prediction-apy-v0.js.map +1 -0
  103. package/dist/intents/kinds/prediction-v0.d.ts +3 -0
  104. package/dist/intents/kinds/prediction-v0.js +32 -0
  105. package/dist/intents/kinds/prediction-v0.js.map +1 -0
  106. package/dist/intents/kinds/spec-kind.d.ts +38 -0
  107. package/dist/intents/kinds/spec-kind.js +6 -0
  108. package/dist/intents/kinds/spec-kind.js.map +1 -0
  109. package/dist/intents/posting-service.d.ts +26 -0
  110. package/dist/intents/posting-service.js +218 -0
  111. package/dist/intents/posting-service.js.map +1 -0
  112. package/dist/intents/prediction-apy-v0-auto.js +1 -1
  113. package/dist/intents/prediction-apy-v0-auto.js.map +1 -1
  114. package/dist/intents/prediction-v0-template.d.ts +8 -3
  115. package/dist/intents/prediction-v0-template.js +21 -1
  116. package/dist/intents/prediction-v0-template.js.map +1 -1
  117. package/dist/intents/sources.d.ts +39 -0
  118. package/dist/intents/sources.js +42 -0
  119. package/dist/intents/sources.js.map +1 -0
  120. package/dist/main.js +89 -65
  121. package/dist/main.js.map +1 -1
  122. package/dist/mcp/server.js +8 -4
  123. package/dist/mcp/server.js.map +1 -1
  124. package/dist/observability/emit-event.d.ts +12 -0
  125. package/dist/observability/emit-event.js +27 -0
  126. package/dist/observability/emit-event.js.map +1 -0
  127. package/dist/preflight/api-port.d.ts +13 -0
  128. package/dist/preflight/api-port.js +32 -0
  129. package/dist/preflight/api-port.js.map +1 -0
  130. package/dist/preflight/rpc-network.d.ts +44 -0
  131. package/dist/preflight/rpc-network.js +121 -0
  132. package/dist/preflight/rpc-network.js.map +1 -0
  133. package/dist/restorer/engine/engine.d.ts +10 -0
  134. package/dist/restorer/engine/engine.js +60 -44
  135. package/dist/restorer/engine/engine.js.map +1 -1
  136. package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +7 -4
  137. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +12 -1
  138. package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -1
  139. package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +2 -1
  140. package/dist/restorer/impls/claude-mcp-prediction/index.js +9 -0
  141. package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -1
  142. package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +2 -0
  143. package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +34 -0
  144. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +233 -0
  145. package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -0
  146. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +18 -0
  147. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
  148. package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
  149. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
  150. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +46 -0
  151. package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
  152. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +27 -0
  153. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +128 -0
  154. package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
  155. package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
  156. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +6 -0
  157. package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +1 -0
  158. package/dist/restorer/impls/evaluation-context.d.ts +16 -0
  159. package/dist/restorer/impls/evaluation-context.js +18 -0
  160. package/dist/restorer/impls/evaluation-context.js.map +1 -0
  161. package/dist/restorer/impls/index.d.ts +46 -0
  162. package/dist/restorer/impls/index.js +88 -0
  163. package/dist/restorer/impls/index.js.map +1 -0
  164. package/dist/restorer/impls/legacy-claude/index.d.ts +8 -1
  165. package/dist/restorer/impls/legacy-claude/index.js +79 -10
  166. package/dist/restorer/impls/legacy-claude/index.js.map +1 -1
  167. package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +2 -1
  168. package/dist/restorer/impls/portfolio-v0-evaluator/index.js +9 -0
  169. package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -1
  170. package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +2 -0
  171. package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +1 -0
  172. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +12 -3
  173. package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -1
  174. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +4 -0
  175. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +4 -0
  176. package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -1
  177. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +6 -3
  178. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +55 -33
  179. package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  180. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +7 -0
  181. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +29 -0
  182. package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
  183. package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +1 -1
  184. package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +2 -0
  185. package/dist/restorer/impls/prediction-v0-baseline/index.js +6 -0
  186. package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -1
  187. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +6 -0
  188. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +19 -1
  189. package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -1
  190. package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +6 -3
  191. package/dist/restorer/impls/prediction-v0-evaluator/index.js +30 -4
  192. package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -1
  193. package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +1 -1
  194. package/dist/restorer/types.d.ts +17 -0
  195. package/dist/restorer/types.js +22 -1
  196. package/dist/restorer/types.js.map +1 -1
  197. package/dist/rpc-error-context.d.ts +10 -0
  198. package/dist/rpc-error-context.js +26 -0
  199. package/dist/rpc-error-context.js.map +1 -0
  200. package/dist/store/store.d.ts +98 -0
  201. package/dist/store/store.js +331 -4
  202. package/dist/store/store.js.map +1 -1
  203. package/dist/trajectory/schema.d.ts +510 -0
  204. package/dist/trajectory/schema.js +74 -0
  205. package/dist/trajectory/schema.js.map +1 -0
  206. package/dist/types/prediction-apy.d.ts +21 -10
  207. package/dist/types/prediction-apy.js +17 -5
  208. package/dist/types/prediction-apy.js.map +1 -1
  209. package/dist/types/prediction.d.ts +11 -10
  210. package/dist/types/prediction.js +3 -2
  211. package/dist/types/prediction.js.map +1 -1
  212. package/dist/venues/aave-v3/client.d.ts +6 -2
  213. package/dist/venues/aave-v3/client.js +14 -5
  214. package/dist/venues/aave-v3/client.js.map +1 -1
  215. package/package.json +4 -3
  216. package/dist/daemon/restorer.d.ts +0 -19
  217. package/dist/daemon/restorer.js +0 -82
  218. package/dist/daemon/restorer.js.map +0 -1
@@ -37,7 +37,12 @@ export const PredictionApyV0SpecSchema = z.object({
37
37
  }),
38
38
  });
39
39
  export const PredictionApyV0EligibilitySchema = z.object({
40
- maxSubmissionDelayMs: z.number().int().default(60_000),
40
+ /**
41
+ * Latest time after window start for a valid submission: submittedAt ≤
42
+ * startTs + maxSubmissionDelayMs. Default 72h so it does not cut off
43
+ * late-in-window posts on long windows; tighten per market.
44
+ */
45
+ maxSubmissionDelayMs: z.number().int().min(1).default(72 * 3_600_000),
41
46
  });
42
47
  export const PredictionApyV0IntentSchema = z
43
48
  .object({
@@ -67,8 +72,14 @@ export const PredictionApyV0IntentSchema = z
67
72
  message: 'resolve gap must be ≤ 8 days',
68
73
  path: ['spec', 'question', 'resolveTs'],
69
74
  })
70
- .refine((d) => d.spec.metric.sampleCount <= d.spec.metric.twaWindowSeconds, {
71
- message: 'sampleCount must be <= twaWindowSeconds',
75
+ .refine((d) => {
76
+ const { twaWindowSeconds, sampleCount } = d.spec.metric;
77
+ if (sampleCount < 2)
78
+ return true;
79
+ const stepMs = Math.floor((twaWindowSeconds * 1000) / (sampleCount - 1));
80
+ return stepMs >= 1000;
81
+ }, {
82
+ message: 'TWA sample spacing must be at least 1 second (increase window or reduce sampleCount)',
72
83
  path: ['spec', 'metric', 'sampleCount'],
73
84
  });
74
85
  export const PredictionApySubmissionManifestSchema = z.object({
@@ -105,7 +116,8 @@ export const PredictionApyVerdictManifestSchema = z.object({
105
116
  predictedBps: IntegerStringSchema,
106
117
  submittedAt: z.number().int(),
107
118
  modelId: z.string(),
108
- submissionManifestCid: z.string(),
119
+ /** Present when the submission was registered on IPFS; omitted for inline/dev. */
120
+ submissionManifestCid: z.string().min(1).optional(),
109
121
  }),
110
122
  groundTruth: z.object({
111
123
  twApyBps: IntegerStringSchema,
@@ -113,7 +125,7 @@ export const PredictionApyVerdictManifestSchema = z.object({
113
125
  }),
114
126
  checks: z.array(z.object({
115
127
  name: z.string(),
116
- status: z.enum(['PASS', 'FAIL', 'SKIP']),
128
+ status: z.enum(['PASS', 'FAIL', 'SKIP', 'INDETERMINATE']),
117
129
  detail: z.union([z.string(), z.record(z.unknown())]).optional(),
118
130
  })),
119
131
  signature: SignatureSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"prediction-apy.js","sourceRoot":"","sources":["../../src/types/prediction-apy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prediction-apy.js","sourceRoot":"","sources":["../../src/types/prediction-apy.ts"],"names":[],"mappings":"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"}
@@ -787,30 +787,31 @@ export declare const PredictionVerdictManifestSchema: z.ZodObject<{
787
787
  probability: z.ZodString;
788
788
  submittedAt: z.ZodNumber;
789
789
  modelId: z.ZodString;
790
- submissionManifestCid: z.ZodString;
790
+ /** Present when the submission was registered on IPFS; omitted for inline/dev. */
791
+ submissionManifestCid: z.ZodOptional<z.ZodString>;
791
792
  }, "strip", z.ZodTypeAny, {
792
793
  probability: string;
793
794
  submittedAt: number;
794
795
  modelId: string;
795
- submissionManifestCid: string;
796
+ submissionManifestCid?: string | undefined;
796
797
  }, {
797
798
  probability: string;
798
799
  submittedAt: number;
799
800
  modelId: string;
800
- submissionManifestCid: string;
801
+ submissionManifestCid?: string | undefined;
801
802
  }>;
802
803
  groundTruth: z.ZodEnum<["YES", "NO"]>;
803
804
  checks: z.ZodArray<z.ZodObject<{
804
805
  name: z.ZodString;
805
- status: z.ZodEnum<["PASS", "FAIL", "SKIP"]>;
806
+ status: z.ZodEnum<["PASS", "FAIL", "SKIP", "INDETERMINATE"]>;
806
807
  detail: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
807
808
  }, "strip", z.ZodTypeAny, {
808
809
  name: string;
809
- status: "PASS" | "FAIL" | "SKIP";
810
+ status: "PASS" | "FAIL" | "SKIP" | "INDETERMINATE";
810
811
  detail?: string | Record<string, unknown> | undefined;
811
812
  }, {
812
813
  name: string;
813
- status: "PASS" | "FAIL" | "SKIP";
814
+ status: "PASS" | "FAIL" | "SKIP" | "INDETERMINATE";
814
815
  detail?: string | Record<string, unknown> | undefined;
815
816
  }>, "many">;
816
817
  signature: z.ZodObject<{
@@ -860,11 +861,11 @@ export declare const PredictionVerdictManifestSchema: z.ZodObject<{
860
861
  probability: string;
861
862
  submittedAt: number;
862
863
  modelId: string;
863
- submissionManifestCid: string;
864
+ submissionManifestCid?: string | undefined;
864
865
  };
865
866
  checks: {
866
867
  name: string;
867
- status: "PASS" | "FAIL" | "SKIP";
868
+ status: "PASS" | "FAIL" | "SKIP" | "INDETERMINATE";
868
869
  detail?: string | Record<string, unknown> | undefined;
869
870
  }[];
870
871
  oracleReading: {
@@ -906,11 +907,11 @@ export declare const PredictionVerdictManifestSchema: z.ZodObject<{
906
907
  probability: string;
907
908
  submittedAt: number;
908
909
  modelId: string;
909
- submissionManifestCid: string;
910
+ submissionManifestCid?: string | undefined;
910
911
  };
911
912
  checks: {
912
913
  name: string;
913
- status: "PASS" | "FAIL" | "SKIP";
914
+ status: "PASS" | "FAIL" | "SKIP" | "INDETERMINATE";
914
915
  detail?: string | Record<string, unknown> | undefined;
915
916
  }[];
916
917
  oracleReading: {
@@ -107,7 +107,7 @@ export const PredictionSubmissionManifestSchema = z.object({
107
107
  // ── Verdict manifest ──────────────────────────────────────────────────────────
108
108
  const CheckSchema = z.object({
109
109
  name: z.string(),
110
- status: z.enum(['PASS', 'FAIL', 'SKIP']),
110
+ status: z.enum(['PASS', 'FAIL', 'SKIP', 'INDETERMINATE']),
111
111
  detail: z.union([z.string(), z.record(z.unknown())]).optional(),
112
112
  });
113
113
  export const PredictionVerdictManifestSchema = z.object({
@@ -131,7 +131,8 @@ export const PredictionVerdictManifestSchema = z.object({
131
131
  probability: z.string(),
132
132
  submittedAt: z.number().int(),
133
133
  modelId: z.string(),
134
- submissionManifestCid: z.string(),
134
+ /** Present when the submission was registered on IPFS; omitted for inline/dev. */
135
+ submissionManifestCid: z.string().min(1).optional(),
135
136
  }),
136
137
  groundTruth: z.enum(['YES', 'NO']),
137
138
  checks: z.array(CheckSchema),
@@ -1 +1 @@
1
- {"version":3,"file":"prediction.js","sourceRoot":"","sources":["../../src/types/prediction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prediction.js","sourceRoot":"","sources":["../../src/types/prediction.ts"],"names":[],"mappings":"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"}
@@ -66,11 +66,15 @@ export interface TwaApyBpsResult {
66
66
  }
67
67
  export declare function scheduleSampleTimestamps(windowEndTs: number, twaWindowSeconds: number, sampleCount: number): number[];
68
68
  export declare function liquidityRateRayToApyBps(rateRay: bigint): number;
69
- export declare function findBlockAtOrBeforeTimestamp(publicClient: PublicClient, targetTsMs: number): Promise<{
69
+ export declare function findBlockAtOrBeforeTimestamp(publicClient: PublicClient, targetTsMs: number, options?: {
70
+ minBlock?: bigint;
71
+ }): Promise<{
70
72
  number: bigint;
71
73
  timestampMs: number;
72
74
  }>;
73
- export declare function readReserveRateAtTimestamp(publicClient: PublicClient, pool: `0x${string}`, reserve: `0x${string}`, timestampMs: number): Promise<ReserveRateReading>;
75
+ export declare function readReserveRateAtTimestamp(publicClient: PublicClient, pool: `0x${string}`, reserve: `0x${string}`, timestampMs: number, options?: {
76
+ minBlockForSearch?: bigint;
77
+ }): Promise<ReserveRateReading>;
74
78
  export declare function twApyBpsOverWindow(params: {
75
79
  publicClient: PublicClient;
76
80
  pool: `0x${string}`;
@@ -46,9 +46,12 @@ export function liquidityRateRayToApyBps(rateRay) {
46
46
  const apy = Math.pow(1 + apr / Number(SECONDS_PER_YEAR), Number(SECONDS_PER_YEAR)) - 1;
47
47
  return Math.round(apy * 10_000);
48
48
  }
49
- export async function findBlockAtOrBeforeTimestamp(publicClient, targetTsMs) {
49
+ export async function findBlockAtOrBeforeTimestamp(publicClient, targetTsMs, options) {
50
50
  const latest = await publicClient.getBlock({ blockTag: 'latest' });
51
- let lo = 0n;
51
+ let lo = options?.minBlock ?? 0n;
52
+ if (lo > latest.number) {
53
+ lo = 0n;
54
+ }
52
55
  let hi = latest.number;
53
56
  let best = 0n;
54
57
  while (lo <= hi) {
@@ -66,8 +69,10 @@ export async function findBlockAtOrBeforeTimestamp(publicClient, targetTsMs) {
66
69
  const b = await publicClient.getBlock({ blockNumber: best });
67
70
  return { number: b.number, timestampMs: Number(b.timestamp) * 1000 };
68
71
  }
69
- export async function readReserveRateAtTimestamp(publicClient, pool, reserve, timestampMs) {
70
- const block = await findBlockAtOrBeforeTimestamp(publicClient, timestampMs);
72
+ export async function readReserveRateAtTimestamp(publicClient, pool, reserve, timestampMs, options) {
73
+ const block = await findBlockAtOrBeforeTimestamp(publicClient, timestampMs, {
74
+ minBlock: options?.minBlockForSearch,
75
+ });
71
76
  const reserveData = await publicClient.readContract({
72
77
  address: pool,
73
78
  abi: AAVE_POOL_ABI,
@@ -84,8 +89,12 @@ export async function readReserveRateAtTimestamp(publicClient, pool, reserve, ti
84
89
  export async function twApyBpsOverWindow(params) {
85
90
  const sampleTs = scheduleSampleTimestamps(params.windowEndTs, params.twaWindowSeconds, params.sampleCount);
86
91
  let sum = 0;
92
+ let minBlock;
87
93
  for (const ts of sampleTs) {
88
- const r = await readReserveRateAtTimestamp(params.publicClient, params.pool, params.reserve, ts);
94
+ const r = await readReserveRateAtTimestamp(params.publicClient, params.pool, params.reserve, ts, {
95
+ minBlockForSearch: minBlock,
96
+ });
97
+ minBlock = r.blockNumber;
89
98
  sum += liquidityRateRayToApyBps(r.currentLiquidityRateRay);
90
99
  }
91
100
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/venues/aave-v3/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/venues/aave-v3/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jinn-network/client",
3
- "version": "0.1.2-canary.d6e72dfd",
3
+ "version": "0.1.2",
4
4
  "description": "Jinn protocol client — headless daemon for the restoration training loop",
5
5
  "type": "module",
6
6
  "packageManager": "yarn@4.13.0",
@@ -41,6 +41,7 @@
41
41
  "test": "vitest run",
42
42
  "test:watch": "vitest",
43
43
  "test:claude-prediction": "yarn build && JINN_TEST_CLAUDE_PREDICTION=1 vitest run test/restorer/impls/claude-mcp-prediction/isolation.test.ts",
44
+ "test:claude-prediction-apy": "yarn build && JINN_TEST_CLAUDE_PREDICTION_APY=1 vitest run test/restorer/impls/claude-mcp-prediction-apy/isolation.test.ts",
44
45
  "prepublishOnly": "yarn build && yarn test",
45
46
  "pack:smoke": "yarn pack -o jinn-client.tgz && node scripts/smoke-test-pack.mjs",
46
47
  "release:operator-gate": "yarn staking && yarn e2e",
@@ -53,6 +54,7 @@
53
54
  "status": "tsx scripts/status.ts",
54
55
  "e2e": "tsx scripts/e2e-validate.ts",
55
56
  "e2e-portfolio-v0": "tsx scripts/e2e-portfolio-v0.ts",
57
+ "e2e-prediction-apy-v0": "tsx scripts/e2e-prediction-apy-v0.ts",
56
58
  "e2e:prediction": "cd ../contracts && yarn compile && cd ../client && tsx scripts/e2e-prediction-v0.ts",
57
59
  "staking": "tsx scripts/staking-validate.ts",
58
60
  "stolas": "tsx scripts/stolas-validate.ts",
@@ -61,7 +63,6 @@
61
63
  "dependencies": {
62
64
  "@ethereumjs/wallet": "^10.0.0",
63
65
  "@hono/node-server": "^1.19.12",
64
- "@jinn-network/mech-client-ts": "^0.0.6",
65
66
  "@modelcontextprotocol/sdk": "^1.27.1",
66
67
  "@msgpack/msgpack": "^3.0.0",
67
68
  "@safe-global/protocol-kit": "^6.1.2",
@@ -80,7 +81,7 @@
80
81
  "zod": "^3.22.0"
81
82
  },
82
83
  "optionalDependencies": {
83
- "@coinbase/cdp-sdk": "^1.47.0"
84
+ "@coinbase/cdp-sdk": "^1.48.2"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@types/better-sqlite3": "^7.6.0",
@@ -1,19 +0,0 @@
1
- import type { ExecutionAdapter } from '../adapters/adapter.js';
2
- import type { Runner } from '../runner/runner.js';
3
- import type { Store } from '../store/store.js';
4
- export declare class RestorerLoop {
5
- private readonly adapter;
6
- private readonly runner;
7
- private readonly store;
8
- private readonly workingDirectory;
9
- private readonly timeoutMs;
10
- private readonly daemonApiUrl?;
11
- private stopped;
12
- private requestIterator;
13
- private stopResolve;
14
- private stopPromise;
15
- constructor(adapter: ExecutionAdapter, runner: Runner, store: Store, workingDirectory?: string, timeoutMs?: number, daemonApiUrl?: string | undefined);
16
- processOne(): Promise<boolean>;
17
- run(): Promise<void>;
18
- stop(): void;
19
- }
@@ -1,82 +0,0 @@
1
- import { PermanentError, TransientError } from '../types/index.js';
2
- import { isRecoverableTransactionError } from '../tx-retry.js';
3
- export class RestorerLoop {
4
- adapter;
5
- runner;
6
- store;
7
- workingDirectory;
8
- timeoutMs;
9
- daemonApiUrl;
10
- stopped = false;
11
- requestIterator = null;
12
- stopResolve = null;
13
- stopPromise;
14
- constructor(adapter, runner, store, workingDirectory = '/tmp', timeoutMs = 300000, daemonApiUrl) {
15
- this.adapter = adapter;
16
- this.runner = runner;
17
- this.store = store;
18
- this.workingDirectory = workingDirectory;
19
- this.timeoutMs = timeoutMs;
20
- this.daemonApiUrl = daemonApiUrl;
21
- this.stopPromise = new Promise(resolve => {
22
- this.stopResolve = resolve;
23
- });
24
- }
25
- async processOne() {
26
- if (!this.requestIterator) {
27
- this.requestIterator = this.adapter.watchForRequests()[Symbol.asyncIterator]();
28
- }
29
- const { value: request, done } = await this.requestIterator.next();
30
- if (done || !request || !request.requestId)
31
- return false;
32
- try {
33
- await this.adapter.claimRequest(request.requestId);
34
- }
35
- catch (err) {
36
- if (err instanceof PermanentError) {
37
- return true;
38
- }
39
- throw err;
40
- }
41
- this.store.recordOwnActivity(request.requestId, 'claimed');
42
- try {
43
- const result = await this.runner.run(request.desiredState, {
44
- requestId: request.requestId,
45
- workingDirectory: this.workingDirectory,
46
- timeoutMs: this.timeoutMs,
47
- storePath: this.store.path,
48
- daemonApiUrl: this.daemonApiUrl,
49
- });
50
- await this.adapter.submitResult(request.requestId, result);
51
- this.store.recordOwnActivity(request.requestId, 'delivered');
52
- }
53
- catch (err) {
54
- if (!(err instanceof TransientError)) {
55
- console.error(`[restorer] Failed to restore ${request.requestId}:`, err);
56
- }
57
- }
58
- return true;
59
- }
60
- async run() {
61
- while (!this.stopped) {
62
- try {
63
- await this.processOne();
64
- }
65
- catch (err) {
66
- if (err instanceof TransientError) {
67
- await Promise.race([new Promise(r => setTimeout(r, 5000)), this.stopPromise]);
68
- }
69
- else {
70
- console.error('[restorer] Error:', err);
71
- const delayMs = isRecoverableTransactionError(err) ? 15_000 : 10_000;
72
- await Promise.race([new Promise(r => setTimeout(r, delayMs)), this.stopPromise]);
73
- }
74
- }
75
- }
76
- }
77
- stop() {
78
- this.stopped = true;
79
- this.stopResolve?.();
80
- }
81
- }
82
- //# sourceMappingURL=restorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"restorer.js","sourceRoot":"","sources":["../../src/daemon/restorer.ts"],"names":[],"mappings":"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"}