agentex-creator-sdk 1.0.0

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 (97) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +21 -0
  3. package/README.md +195 -0
  4. package/dist/packages/contracts/src/deployer-investigation.d.ts +1015 -0
  5. package/dist/packages/contracts/src/deployer-investigation.js +101 -0
  6. package/dist/packages/contracts/src/index.d.ts +1701 -0
  7. package/dist/packages/contracts/src/index.js +380 -0
  8. package/dist/packages/contracts/src/indexed-activity.d.ts +684 -0
  9. package/dist/packages/contracts/src/indexed-activity.js +71 -0
  10. package/dist/packages/contracts/src/indexed-agents.d.ts +299 -0
  11. package/dist/packages/contracts/src/indexed-agents.js +131 -0
  12. package/dist/packages/contracts/src/inspection.d.ts +906 -0
  13. package/dist/packages/contracts/src/inspection.js +114 -0
  14. package/dist/packages/contracts/src/kinds.d.ts +5398 -0
  15. package/dist/packages/contracts/src/kinds.js +156 -0
  16. package/dist/packages/contracts/src/report-presentation.d.ts +346 -0
  17. package/dist/packages/contracts/src/report-presentation.js +120 -0
  18. package/dist/packages/contracts/src/solana-inspection.d.ts +451 -0
  19. package/dist/packages/contracts/src/solana-inspection.js +94 -0
  20. package/dist/packages/contracts/src/token-market.d.ts +193 -0
  21. package/dist/packages/contracts/src/token-market.js +335 -0
  22. package/dist/packages/contracts/src/wallet-analysis.d.ts +866 -0
  23. package/dist/packages/contracts/src/wallet-analysis.js +89 -0
  24. package/dist/packages/contracts/src/watchtower.d.ts +1141 -0
  25. package/dist/packages/contracts/src/watchtower.js +196 -0
  26. package/dist/packages/contracts/src/workflow.d.ts +1568 -0
  27. package/dist/packages/contracts/src/workflow.js +651 -0
  28. package/dist/packages/inspector/src/decode.d.ts +23 -0
  29. package/dist/packages/inspector/src/decode.js +150 -0
  30. package/dist/packages/inspector/src/scope.d.ts +87 -0
  31. package/dist/packages/inspector/src/scope.js +64 -0
  32. package/dist/packages/model/src/analysis.d.ts +149 -0
  33. package/dist/packages/model/src/analysis.js +387 -0
  34. package/dist/packages/model/src/pricing.d.ts +38 -0
  35. package/dist/packages/model/src/pricing.js +49 -0
  36. package/dist/packages/model/src/retry.d.ts +20 -0
  37. package/dist/packages/model/src/retry.js +31 -0
  38. package/dist/packages/model/src/schema.d.ts +10 -0
  39. package/dist/packages/model/src/schema.js +51 -0
  40. package/dist/packages/model/src/summary.d.ts +91 -0
  41. package/dist/packages/model/src/summary.js +177 -0
  42. package/dist/packages/model/src/types.d.ts +81 -0
  43. package/dist/packages/model/src/types.js +19 -0
  44. package/dist/packages/monitoring/src/delivery.d.ts +32 -0
  45. package/dist/packages/monitoring/src/delivery.js +53 -0
  46. package/dist/packages/providers/src/chain-transport.d.ts +42 -0
  47. package/dist/packages/providers/src/chain-transport.js +57 -0
  48. package/dist/packages/providers/src/coverage.d.ts +105 -0
  49. package/dist/packages/providers/src/coverage.js +260 -0
  50. package/dist/packages/providers/src/health.d.ts +273 -0
  51. package/dist/packages/providers/src/health.js +505 -0
  52. package/dist/packages/providers/src/keyed.d.ts +96 -0
  53. package/dist/packages/providers/src/keyed.js +240 -0
  54. package/dist/packages/providers/src/snapshot.d.ts +61 -0
  55. package/dist/packages/providers/src/snapshot.js +77 -0
  56. package/dist/packages/publication/src/fixtures.d.ts +45 -0
  57. package/dist/packages/publication/src/fixtures.js +350 -0
  58. package/dist/packages/research/src/index.d.ts +188 -0
  59. package/dist/packages/research/src/index.js +829 -0
  60. package/dist/packages/runtime/src/checkpoints.d.ts +65 -0
  61. package/dist/packages/runtime/src/checkpoints.js +214 -0
  62. package/dist/packages/runtime/src/policy.d.ts +57 -0
  63. package/dist/packages/runtime/src/policy.js +296 -0
  64. package/dist/packages/sdk/src/bin/agentex-buyer.d.ts +2 -0
  65. package/dist/packages/sdk/src/bin/agentex-buyer.js +4 -0
  66. package/dist/packages/sdk/src/bin/agentex.d.ts +2 -0
  67. package/dist/packages/sdk/src/bin/agentex.js +3 -0
  68. package/dist/packages/sdk/src/buyer-cli.d.ts +10 -0
  69. package/dist/packages/sdk/src/buyer-cli.js +210 -0
  70. package/dist/packages/sdk/src/buyer.d.ts +534 -0
  71. package/dist/packages/sdk/src/buyer.js +441 -0
  72. package/dist/packages/sdk/src/cli.d.ts +14 -0
  73. package/dist/packages/sdk/src/cli.js +149 -0
  74. package/dist/packages/sdk/src/errors.d.ts +31 -0
  75. package/dist/packages/sdk/src/errors.js +24 -0
  76. package/dist/packages/sdk/src/index.d.ts +236 -0
  77. package/dist/packages/sdk/src/index.js +150 -0
  78. package/dist/packages/sdk/src/local.d.ts +11 -0
  79. package/dist/packages/sdk/src/local.js +110 -0
  80. package/dist/packages/sdk/src/rails.d.ts +59 -0
  81. package/dist/packages/sdk/src/rails.js +96 -0
  82. package/dist/packages/sdk/src/report.d.ts +121 -0
  83. package/dist/packages/sdk/src/report.js +114 -0
  84. package/dist/packages/sdk/src/version.d.ts +2 -0
  85. package/dist/packages/sdk/src/version.js +2 -0
  86. package/dist/packages/watchtower/src/index.d.ts +150 -0
  87. package/dist/packages/watchtower/src/index.js +786 -0
  88. package/dist/packages/workflow/src/registry.d.ts +61 -0
  89. package/dist/packages/workflow/src/registry.js +76 -0
  90. package/examples/README.md +34 -0
  91. package/examples/cli-usage.sh +30 -0
  92. package/examples/fixtures/base-weth-input.json +4 -0
  93. package/examples/focused-researcher.json +127 -0
  94. package/examples/pay-with-eth-robinhood.mts +37 -0
  95. package/examples/pay-with-usdc.mts +41 -0
  96. package/examples/quickstart.mts +73 -0
  97. package/package.json +50 -0
@@ -0,0 +1,1701 @@
1
+ import { z } from 'zod';
2
+ export declare const ChainKeySchema: z.ZodEnum<{
3
+ ethereum: "ethereum";
4
+ base: "base";
5
+ robinhood: "robinhood";
6
+ }>;
7
+ export type ChainKey = z.infer<typeof ChainKeySchema>;
8
+ export declare const AddressSchema: z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>;
9
+ export declare const AtomicAmountSchema: z.ZodString;
10
+ export declare const AssetAmountSchema: z.ZodObject<{
11
+ chainId: z.ZodNumber;
12
+ asset: z.ZodUnion<readonly [z.ZodLiteral<"native">, z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>]>;
13
+ decimals: z.ZodNumber;
14
+ atomic: z.ZodString;
15
+ }, z.core.$strict>;
16
+ export declare const ResearchInputSchema: z.ZodObject<{
17
+ chain: z.ZodEnum<{
18
+ ethereum: "ethereum";
19
+ base: "base";
20
+ robinhood: "robinhood";
21
+ }>;
22
+ address: z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>;
23
+ scope: z.ZodDefault<z.ZodLiteral<"metadata-and-controls">>;
24
+ snapshotBlock: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strict>;
26
+ export type ResearchInput = z.infer<typeof ResearchInputSchema>;
27
+ export declare const ObjectSchemaDefinition: z.ZodObject<{
28
+ type: z.ZodLiteral<"object">;
29
+ properties: z.ZodRecord<z.ZodString, z.ZodObject<{
30
+ type: z.ZodEnum<{
31
+ string: "string";
32
+ number: "number";
33
+ boolean: "boolean";
34
+ array: "array";
35
+ integer: "integer";
36
+ }>;
37
+ description: z.ZodString;
38
+ enum: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
39
+ }, z.core.$strict>>;
40
+ required: z.ZodArray<z.ZodString>;
41
+ additionalProperties: z.ZodLiteral<false>;
42
+ }, z.core.$strict>;
43
+ export declare const WorkflowNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
44
+ type: z.ZodLiteral<"input">;
45
+ id: z.ZodString;
46
+ dependsOn: z.ZodArray<z.ZodString>;
47
+ }, z.core.$strict>, z.ZodObject<{
48
+ type: z.ZodLiteral<"tool">;
49
+ tool: z.ZodString;
50
+ arguments: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ source: z.ZodLiteral<"input">;
52
+ path: z.ZodString;
53
+ }, z.core.$strict>, z.ZodObject<{
54
+ source: z.ZodLiteral<"node">;
55
+ nodeId: z.ZodString;
56
+ path: z.ZodString;
57
+ }, z.core.$strict>], "source">>;
58
+ id: z.ZodString;
59
+ dependsOn: z.ZodArray<z.ZodString>;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ type: z.ZodLiteral<"condition">;
62
+ field: z.ZodDiscriminatedUnion<[z.ZodObject<{
63
+ source: z.ZodLiteral<"input">;
64
+ path: z.ZodString;
65
+ }, z.core.$strict>, z.ZodObject<{
66
+ source: z.ZodLiteral<"node">;
67
+ nodeId: z.ZodString;
68
+ path: z.ZodString;
69
+ }, z.core.$strict>], "source">;
70
+ operator: z.ZodEnum<{
71
+ equals: "equals";
72
+ exists: "exists";
73
+ }>;
74
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>;
75
+ whenTrue: z.ZodString;
76
+ whenFalse: z.ZodString;
77
+ id: z.ZodString;
78
+ dependsOn: z.ZodArray<z.ZodString>;
79
+ }, z.core.$strict>, z.ZodObject<{
80
+ type: z.ZodLiteral<"output">;
81
+ from: z.ZodString;
82
+ id: z.ZodString;
83
+ dependsOn: z.ZodArray<z.ZodString>;
84
+ }, z.core.$strict>], "type">;
85
+ /** Output schema ids double as the explicit executable agent kind. Enum parsing keeps stored manifest hashes unchanged. */
86
+ export declare const OutputSchemaIdSchema: z.ZodEnum<{
87
+ "agentex.token-research.v1": "agentex.token-research.v1";
88
+ "agentex.transaction-inspection.v1": "agentex.transaction-inspection.v1";
89
+ "agentex.watchtower-window.v1": "agentex.watchtower-window.v1";
90
+ }>;
91
+ export type OutputSchemaId = z.infer<typeof OutputSchemaIdSchema>;
92
+ export declare const ResearchPolicySchema: z.ZodObject<{
93
+ readOwner: z.ZodBoolean;
94
+ readProxySlots: z.ZodBoolean;
95
+ }, z.core.$strict>;
96
+ export type ResearchPolicy = z.infer<typeof ResearchPolicySchema>;
97
+ /**
98
+ * Token Researcher 0.3.0 market reads (P01): pools on listed venues by factory lookup, and balances of recent transfer recipients from an
99
+ * index. Absent: no market read, report section or hash change (0.1.0 and 0.2.0 manifests omit it). See token-market.ts.
100
+ */
101
+ export declare const MarketPolicySchema: z.ZodObject<{
102
+ discoverPools: z.ZodBoolean;
103
+ recentHolderActivity: z.ZodBoolean;
104
+ }, z.core.$strict>;
105
+ export type MarketPolicy = z.infer<typeof MarketPolicySchema>;
106
+ /**
107
+ * Optional bounded AI-assisted summary for Token Researcher manifests: one model request over evidence the deterministic reads already
108
+ * captured. Absent: the manifest hash, run behaviour and report shape are unchanged. The cost cap is the quoted model maximum in micro-USD.
109
+ */
110
+ export declare const AnalysisPolicySchema: z.ZodObject<{
111
+ mode: z.ZodLiteral<"summary">;
112
+ maximumOutputTokens: z.ZodNumber;
113
+ maximumCostMicrousd: z.ZodNumber;
114
+ }, z.core.$strict>;
115
+ export type AnalysisPolicy = z.infer<typeof AnalysisPolicySchema>;
116
+ export declare const ManifestPolicySchema: z.ZodObject<{
117
+ analysis: z.ZodObject<{
118
+ mode: z.ZodLiteral<"summary">;
119
+ maximumOutputTokens: z.ZodNumber;
120
+ maximumCostMicrousd: z.ZodNumber;
121
+ }, z.core.$strict>;
122
+ }, z.core.$strict>;
123
+ export declare const AgentManifestSchema: z.ZodObject<{
124
+ schemaVersion: z.ZodLiteral<"1.0">;
125
+ id: z.ZodString;
126
+ version: z.ZodString;
127
+ name: z.ZodString;
128
+ description: z.ZodString;
129
+ author: z.ZodObject<{
130
+ id: z.ZodString;
131
+ name: z.ZodString;
132
+ ownership: z.ZodEnum<{
133
+ "first-party": "first-party";
134
+ independent: "independent";
135
+ }>;
136
+ }, z.core.$strict>;
137
+ license: z.ZodString;
138
+ visibility: z.ZodEnum<{
139
+ private: "private";
140
+ "source-visible": "source-visible";
141
+ "source-private": "source-private";
142
+ }>;
143
+ chains: z.ZodArray<z.ZodEnum<{
144
+ ethereum: "ethereum";
145
+ base: "base";
146
+ robinhood: "robinhood";
147
+ }>>;
148
+ inputSchema: z.ZodObject<{
149
+ type: z.ZodLiteral<"object">;
150
+ properties: z.ZodRecord<z.ZodString, z.ZodObject<{
151
+ type: z.ZodEnum<{
152
+ string: "string";
153
+ number: "number";
154
+ boolean: "boolean";
155
+ array: "array";
156
+ integer: "integer";
157
+ }>;
158
+ description: z.ZodString;
159
+ enum: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
160
+ }, z.core.$strict>>;
161
+ required: z.ZodArray<z.ZodString>;
162
+ additionalProperties: z.ZodLiteral<false>;
163
+ }, z.core.$strict>;
164
+ outputSchemaId: z.ZodEnum<{
165
+ "agentex.token-research.v1": "agentex.token-research.v1";
166
+ "agentex.transaction-inspection.v1": "agentex.transaction-inspection.v1";
167
+ "agentex.watchtower-window.v1": "agentex.watchtower-window.v1";
168
+ }>;
169
+ tools: z.ZodArray<z.ZodObject<{
170
+ id: z.ZodString;
171
+ version: z.ZodString;
172
+ capability: z.ZodLiteral<"evm.read">;
173
+ chains: z.ZodArray<z.ZodEnum<{
174
+ ethereum: "ethereum";
175
+ base: "base";
176
+ robinhood: "robinhood";
177
+ }>>;
178
+ addressScope: z.ZodEnum<{
179
+ "input-address": "input-address";
180
+ "input-transaction": "input-transaction";
181
+ "input-watch-scope": "input-watch-scope";
182
+ }>;
183
+ maximumCalls: z.ZodNumber;
184
+ }, z.core.$strict>>;
185
+ modelPolicy: z.ZodObject<{
186
+ mode: z.ZodLiteral<"deterministic">;
187
+ maximumModelTokens: z.ZodLiteral<0>;
188
+ }, z.core.$strict>;
189
+ researchPolicy: z.ZodOptional<z.ZodObject<{
190
+ readOwner: z.ZodBoolean;
191
+ readProxySlots: z.ZodBoolean;
192
+ }, z.core.$strict>>;
193
+ policy: z.ZodOptional<z.ZodObject<{
194
+ analysis: z.ZodObject<{
195
+ mode: z.ZodLiteral<"summary">;
196
+ maximumOutputTokens: z.ZodNumber;
197
+ maximumCostMicrousd: z.ZodNumber;
198
+ }, z.core.$strict>;
199
+ }, z.core.$strict>>;
200
+ marketPolicy: z.ZodOptional<z.ZodObject<{
201
+ discoverPools: z.ZodBoolean;
202
+ recentHolderActivity: z.ZodBoolean;
203
+ }, z.core.$strict>>;
204
+ limits: z.ZodObject<{
205
+ maximumRpcCalls: z.ZodNumber;
206
+ maximumDurationMs: z.ZodNumber;
207
+ maximumOutputBytes: z.ZodNumber;
208
+ maximumGraphDepth: z.ZodNumber;
209
+ maximumPages: z.ZodLiteral<0>;
210
+ maximumExecutionAtomic: z.ZodString;
211
+ }, z.core.$strict>;
212
+ workflow: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
213
+ type: z.ZodLiteral<"input">;
214
+ id: z.ZodString;
215
+ dependsOn: z.ZodArray<z.ZodString>;
216
+ }, z.core.$strict>, z.ZodObject<{
217
+ type: z.ZodLiteral<"tool">;
218
+ tool: z.ZodString;
219
+ arguments: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
220
+ source: z.ZodLiteral<"input">;
221
+ path: z.ZodString;
222
+ }, z.core.$strict>, z.ZodObject<{
223
+ source: z.ZodLiteral<"node">;
224
+ nodeId: z.ZodString;
225
+ path: z.ZodString;
226
+ }, z.core.$strict>], "source">>;
227
+ id: z.ZodString;
228
+ dependsOn: z.ZodArray<z.ZodString>;
229
+ }, z.core.$strict>, z.ZodObject<{
230
+ type: z.ZodLiteral<"condition">;
231
+ field: z.ZodDiscriminatedUnion<[z.ZodObject<{
232
+ source: z.ZodLiteral<"input">;
233
+ path: z.ZodString;
234
+ }, z.core.$strict>, z.ZodObject<{
235
+ source: z.ZodLiteral<"node">;
236
+ nodeId: z.ZodString;
237
+ path: z.ZodString;
238
+ }, z.core.$strict>], "source">;
239
+ operator: z.ZodEnum<{
240
+ equals: "equals";
241
+ exists: "exists";
242
+ }>;
243
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>;
244
+ whenTrue: z.ZodString;
245
+ whenFalse: z.ZodString;
246
+ id: z.ZodString;
247
+ dependsOn: z.ZodArray<z.ZodString>;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ type: z.ZodLiteral<"output">;
250
+ from: z.ZodString;
251
+ id: z.ZodString;
252
+ dependsOn: z.ZodArray<z.ZodString>;
253
+ }, z.core.$strict>], "type">>;
254
+ testCases: z.ZodArray<z.ZodString>;
255
+ }, z.core.$strict>;
256
+ export type AgentManifest = z.infer<typeof AgentManifestSchema>;
257
+ export declare function canonicalJson(value: unknown): string;
258
+ export declare const contentHash: (value: unknown) => string;
259
+ export declare function publishManifest(input: unknown): {
260
+ manifest: {
261
+ schemaVersion: "1.0";
262
+ id: string;
263
+ version: string;
264
+ name: string;
265
+ description: string;
266
+ author: {
267
+ id: string;
268
+ name: string;
269
+ ownership: "first-party" | "independent";
270
+ };
271
+ license: string;
272
+ visibility: "private" | "source-visible" | "source-private";
273
+ chains: ("ethereum" | "base" | "robinhood")[];
274
+ inputSchema: {
275
+ type: "object";
276
+ properties: Record<string, {
277
+ type: "string" | "number" | "boolean" | "array" | "integer";
278
+ description: string;
279
+ enum?: (string | number | boolean)[] | undefined;
280
+ }>;
281
+ required: string[];
282
+ additionalProperties: false;
283
+ };
284
+ outputSchemaId: "agentex.token-research.v1" | "agentex.transaction-inspection.v1" | "agentex.watchtower-window.v1";
285
+ tools: {
286
+ id: string;
287
+ version: string;
288
+ capability: "evm.read";
289
+ chains: ("ethereum" | "base" | "robinhood")[];
290
+ addressScope: "input-address" | "input-transaction" | "input-watch-scope";
291
+ maximumCalls: number;
292
+ }[];
293
+ modelPolicy: {
294
+ mode: "deterministic";
295
+ maximumModelTokens: 0;
296
+ };
297
+ limits: {
298
+ maximumRpcCalls: number;
299
+ maximumDurationMs: number;
300
+ maximumOutputBytes: number;
301
+ maximumGraphDepth: number;
302
+ maximumPages: 0;
303
+ maximumExecutionAtomic: string;
304
+ };
305
+ workflow: ({
306
+ type: "input";
307
+ id: string;
308
+ dependsOn: string[];
309
+ } | {
310
+ type: "tool";
311
+ tool: string;
312
+ arguments: Record<string, {
313
+ source: "input";
314
+ path: string;
315
+ } | {
316
+ source: "node";
317
+ nodeId: string;
318
+ path: string;
319
+ }>;
320
+ id: string;
321
+ dependsOn: string[];
322
+ } | {
323
+ type: "condition";
324
+ field: {
325
+ source: "input";
326
+ path: string;
327
+ } | {
328
+ source: "node";
329
+ nodeId: string;
330
+ path: string;
331
+ };
332
+ operator: "equals" | "exists";
333
+ whenTrue: string;
334
+ whenFalse: string;
335
+ id: string;
336
+ dependsOn: string[];
337
+ value?: string | number | boolean | undefined;
338
+ } | {
339
+ type: "output";
340
+ from: string;
341
+ id: string;
342
+ dependsOn: string[];
343
+ })[];
344
+ testCases: string[];
345
+ researchPolicy?: {
346
+ readOwner: boolean;
347
+ readProxySlots: boolean;
348
+ } | undefined;
349
+ policy?: {
350
+ analysis: {
351
+ mode: "summary";
352
+ maximumOutputTokens: number;
353
+ maximumCostMicrousd: number;
354
+ };
355
+ } | undefined;
356
+ marketPolicy?: {
357
+ discoverPools: boolean;
358
+ recentHolderActivity: boolean;
359
+ } | undefined;
360
+ };
361
+ hash: string;
362
+ };
363
+ export declare const TOKEN_RESEARCHER_MANIFEST: {
364
+ schemaVersion: "1.0";
365
+ id: string;
366
+ version: string;
367
+ name: string;
368
+ description: string;
369
+ author: {
370
+ id: string;
371
+ name: string;
372
+ ownership: "first-party" | "independent";
373
+ };
374
+ license: string;
375
+ visibility: "private" | "source-visible" | "source-private";
376
+ chains: ("ethereum" | "base" | "robinhood")[];
377
+ inputSchema: {
378
+ type: "object";
379
+ properties: Record<string, {
380
+ type: "string" | "number" | "boolean" | "array" | "integer";
381
+ description: string;
382
+ enum?: (string | number | boolean)[] | undefined;
383
+ }>;
384
+ required: string[];
385
+ additionalProperties: false;
386
+ };
387
+ outputSchemaId: "agentex.token-research.v1" | "agentex.transaction-inspection.v1" | "agentex.watchtower-window.v1";
388
+ tools: {
389
+ id: string;
390
+ version: string;
391
+ capability: "evm.read";
392
+ chains: ("ethereum" | "base" | "robinhood")[];
393
+ addressScope: "input-address" | "input-transaction" | "input-watch-scope";
394
+ maximumCalls: number;
395
+ }[];
396
+ modelPolicy: {
397
+ mode: "deterministic";
398
+ maximumModelTokens: 0;
399
+ };
400
+ limits: {
401
+ maximumRpcCalls: number;
402
+ maximumDurationMs: number;
403
+ maximumOutputBytes: number;
404
+ maximumGraphDepth: number;
405
+ maximumPages: 0;
406
+ maximumExecutionAtomic: string;
407
+ };
408
+ workflow: ({
409
+ type: "input";
410
+ id: string;
411
+ dependsOn: string[];
412
+ } | {
413
+ type: "tool";
414
+ tool: string;
415
+ arguments: Record<string, {
416
+ source: "input";
417
+ path: string;
418
+ } | {
419
+ source: "node";
420
+ nodeId: string;
421
+ path: string;
422
+ }>;
423
+ id: string;
424
+ dependsOn: string[];
425
+ } | {
426
+ type: "condition";
427
+ field: {
428
+ source: "input";
429
+ path: string;
430
+ } | {
431
+ source: "node";
432
+ nodeId: string;
433
+ path: string;
434
+ };
435
+ operator: "equals" | "exists";
436
+ whenTrue: string;
437
+ whenFalse: string;
438
+ id: string;
439
+ dependsOn: string[];
440
+ value?: string | number | boolean | undefined;
441
+ } | {
442
+ type: "output";
443
+ from: string;
444
+ id: string;
445
+ dependsOn: string[];
446
+ })[];
447
+ testCases: string[];
448
+ researchPolicy?: {
449
+ readOwner: boolean;
450
+ readProxySlots: boolean;
451
+ } | undefined;
452
+ policy?: {
453
+ analysis: {
454
+ mode: "summary";
455
+ maximumOutputTokens: number;
456
+ maximumCostMicrousd: number;
457
+ };
458
+ } | undefined;
459
+ marketPolicy?: {
460
+ discoverPools: boolean;
461
+ recentHolderActivity: boolean;
462
+ } | undefined;
463
+ };
464
+ /**
465
+ * Token Researcher 0.2.0: the same workflow, tools, limits and output schema as 0.1.0, with buyer-visible text for the instant-read rule
466
+ * (latest block, sequencer-confirmed). 0.1.0 above stays byte-identical (hash 5784e6b0…) for stored versions, evidence and replay;
467
+ * new drafts, the SDK scaffold and `GET /v1/templates` start from 0.2.0.
468
+ */
469
+ export declare const TOKEN_RESEARCHER_MANIFEST_V2: {
470
+ schemaVersion: "1.0";
471
+ id: string;
472
+ version: string;
473
+ name: string;
474
+ description: string;
475
+ author: {
476
+ id: string;
477
+ name: string;
478
+ ownership: "first-party" | "independent";
479
+ };
480
+ license: string;
481
+ visibility: "private" | "source-visible" | "source-private";
482
+ chains: ("ethereum" | "base" | "robinhood")[];
483
+ inputSchema: {
484
+ type: "object";
485
+ properties: Record<string, {
486
+ type: "string" | "number" | "boolean" | "array" | "integer";
487
+ description: string;
488
+ enum?: (string | number | boolean)[] | undefined;
489
+ }>;
490
+ required: string[];
491
+ additionalProperties: false;
492
+ };
493
+ outputSchemaId: "agentex.token-research.v1" | "agentex.transaction-inspection.v1" | "agentex.watchtower-window.v1";
494
+ tools: {
495
+ id: string;
496
+ version: string;
497
+ capability: "evm.read";
498
+ chains: ("ethereum" | "base" | "robinhood")[];
499
+ addressScope: "input-address" | "input-transaction" | "input-watch-scope";
500
+ maximumCalls: number;
501
+ }[];
502
+ modelPolicy: {
503
+ mode: "deterministic";
504
+ maximumModelTokens: 0;
505
+ };
506
+ limits: {
507
+ maximumRpcCalls: number;
508
+ maximumDurationMs: number;
509
+ maximumOutputBytes: number;
510
+ maximumGraphDepth: number;
511
+ maximumPages: 0;
512
+ maximumExecutionAtomic: string;
513
+ };
514
+ workflow: ({
515
+ type: "input";
516
+ id: string;
517
+ dependsOn: string[];
518
+ } | {
519
+ type: "tool";
520
+ tool: string;
521
+ arguments: Record<string, {
522
+ source: "input";
523
+ path: string;
524
+ } | {
525
+ source: "node";
526
+ nodeId: string;
527
+ path: string;
528
+ }>;
529
+ id: string;
530
+ dependsOn: string[];
531
+ } | {
532
+ type: "condition";
533
+ field: {
534
+ source: "input";
535
+ path: string;
536
+ } | {
537
+ source: "node";
538
+ nodeId: string;
539
+ path: string;
540
+ };
541
+ operator: "equals" | "exists";
542
+ whenTrue: string;
543
+ whenFalse: string;
544
+ id: string;
545
+ dependsOn: string[];
546
+ value?: string | number | boolean | undefined;
547
+ } | {
548
+ type: "output";
549
+ from: string;
550
+ id: string;
551
+ dependsOn: string[];
552
+ })[];
553
+ testCases: string[];
554
+ researchPolicy?: {
555
+ readOwner: boolean;
556
+ readProxySlots: boolean;
557
+ } | undefined;
558
+ policy?: {
559
+ analysis: {
560
+ mode: "summary";
561
+ maximumOutputTokens: number;
562
+ maximumCostMicrousd: number;
563
+ };
564
+ } | undefined;
565
+ marketPolicy?: {
566
+ discoverPools: boolean;
567
+ recentHolderActivity: boolean;
568
+ } | undefined;
569
+ };
570
+ /**
571
+ * Token Researcher 0.3.0 (P01): the 0.2.0 graph, tool and output schema across Ethereum, Base and Robinhood Chain, plus `marketPolicy`: pools on listed
572
+ * venues found by factory lookup with observed pool token balances, and current balances of recent transfer recipients from a provider index.
573
+ * 0.1.0 and 0.2.0 stay byte-identical. At most 15 reads at the latest block (16 with an explicit snapshot).
574
+ */
575
+ export declare const TOKEN_RESEARCHER_MANIFEST_V3: {
576
+ schemaVersion: "1.0";
577
+ id: string;
578
+ version: string;
579
+ name: string;
580
+ description: string;
581
+ author: {
582
+ id: string;
583
+ name: string;
584
+ ownership: "first-party" | "independent";
585
+ };
586
+ license: string;
587
+ visibility: "private" | "source-visible" | "source-private";
588
+ chains: ("ethereum" | "base" | "robinhood")[];
589
+ inputSchema: {
590
+ type: "object";
591
+ properties: Record<string, {
592
+ type: "string" | "number" | "boolean" | "array" | "integer";
593
+ description: string;
594
+ enum?: (string | number | boolean)[] | undefined;
595
+ }>;
596
+ required: string[];
597
+ additionalProperties: false;
598
+ };
599
+ outputSchemaId: "agentex.token-research.v1" | "agentex.transaction-inspection.v1" | "agentex.watchtower-window.v1";
600
+ tools: {
601
+ id: string;
602
+ version: string;
603
+ capability: "evm.read";
604
+ chains: ("ethereum" | "base" | "robinhood")[];
605
+ addressScope: "input-address" | "input-transaction" | "input-watch-scope";
606
+ maximumCalls: number;
607
+ }[];
608
+ modelPolicy: {
609
+ mode: "deterministic";
610
+ maximumModelTokens: 0;
611
+ };
612
+ limits: {
613
+ maximumRpcCalls: number;
614
+ maximumDurationMs: number;
615
+ maximumOutputBytes: number;
616
+ maximumGraphDepth: number;
617
+ maximumPages: 0;
618
+ maximumExecutionAtomic: string;
619
+ };
620
+ workflow: ({
621
+ type: "input";
622
+ id: string;
623
+ dependsOn: string[];
624
+ } | {
625
+ type: "tool";
626
+ tool: string;
627
+ arguments: Record<string, {
628
+ source: "input";
629
+ path: string;
630
+ } | {
631
+ source: "node";
632
+ nodeId: string;
633
+ path: string;
634
+ }>;
635
+ id: string;
636
+ dependsOn: string[];
637
+ } | {
638
+ type: "condition";
639
+ field: {
640
+ source: "input";
641
+ path: string;
642
+ } | {
643
+ source: "node";
644
+ nodeId: string;
645
+ path: string;
646
+ };
647
+ operator: "equals" | "exists";
648
+ whenTrue: string;
649
+ whenFalse: string;
650
+ id: string;
651
+ dependsOn: string[];
652
+ value?: string | number | boolean | undefined;
653
+ } | {
654
+ type: "output";
655
+ from: string;
656
+ id: string;
657
+ dependsOn: string[];
658
+ })[];
659
+ testCases: string[];
660
+ researchPolicy?: {
661
+ readOwner: boolean;
662
+ readProxySlots: boolean;
663
+ } | undefined;
664
+ policy?: {
665
+ analysis: {
666
+ mode: "summary";
667
+ maximumOutputTokens: number;
668
+ maximumCostMicrousd: number;
669
+ };
670
+ } | undefined;
671
+ marketPolicy?: {
672
+ discoverPools: boolean;
673
+ recentHolderActivity: boolean;
674
+ } | undefined;
675
+ };
676
+ /** True when `inputSchema` equals one template version's input declaration with the manifest's own chains selected. */
677
+ export declare function matchesTemplateInput(manifest: Pick<AgentManifest, 'inputSchema' | 'chains'>, templates: readonly Pick<AgentManifest, 'inputSchema'>[]): boolean;
678
+ export declare function resolveResearchPolicy(manifest: Pick<AgentManifest, 'researchPolicy'>): Readonly<ResearchPolicy>;
679
+ /** The validated AI-assisted summary policy, or null when the manifest declares none (or declares an invalid one). */
680
+ export declare function resolveAnalysisPolicy(manifest: unknown): Readonly<AnalysisPolicy> | null;
681
+ /** Pure quote helper: the maximum model spend a run of this manifest may incur, in micro-USD. 0 when no AI-assisted summary is declared. */
682
+ export declare function analysisCostCap(manifest: unknown): number;
683
+ /** Executable manifest subset shared by publication review and the actual researcher. */
684
+ export declare const SupportedTokenResearcherManifestSchema: z.ZodObject<{
685
+ schemaVersion: z.ZodLiteral<"1.0">;
686
+ id: z.ZodString;
687
+ version: z.ZodString;
688
+ name: z.ZodString;
689
+ description: z.ZodString;
690
+ author: z.ZodObject<{
691
+ id: z.ZodString;
692
+ name: z.ZodString;
693
+ ownership: z.ZodEnum<{
694
+ "first-party": "first-party";
695
+ independent: "independent";
696
+ }>;
697
+ }, z.core.$strict>;
698
+ license: z.ZodString;
699
+ visibility: z.ZodEnum<{
700
+ private: "private";
701
+ "source-visible": "source-visible";
702
+ "source-private": "source-private";
703
+ }>;
704
+ chains: z.ZodArray<z.ZodEnum<{
705
+ ethereum: "ethereum";
706
+ base: "base";
707
+ robinhood: "robinhood";
708
+ }>>;
709
+ inputSchema: z.ZodObject<{
710
+ type: z.ZodLiteral<"object">;
711
+ properties: z.ZodRecord<z.ZodString, z.ZodObject<{
712
+ type: z.ZodEnum<{
713
+ string: "string";
714
+ number: "number";
715
+ boolean: "boolean";
716
+ array: "array";
717
+ integer: "integer";
718
+ }>;
719
+ description: z.ZodString;
720
+ enum: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
721
+ }, z.core.$strict>>;
722
+ required: z.ZodArray<z.ZodString>;
723
+ additionalProperties: z.ZodLiteral<false>;
724
+ }, z.core.$strict>;
725
+ outputSchemaId: z.ZodEnum<{
726
+ "agentex.token-research.v1": "agentex.token-research.v1";
727
+ "agentex.transaction-inspection.v1": "agentex.transaction-inspection.v1";
728
+ "agentex.watchtower-window.v1": "agentex.watchtower-window.v1";
729
+ }>;
730
+ tools: z.ZodArray<z.ZodObject<{
731
+ id: z.ZodString;
732
+ version: z.ZodString;
733
+ capability: z.ZodLiteral<"evm.read">;
734
+ chains: z.ZodArray<z.ZodEnum<{
735
+ ethereum: "ethereum";
736
+ base: "base";
737
+ robinhood: "robinhood";
738
+ }>>;
739
+ addressScope: z.ZodEnum<{
740
+ "input-address": "input-address";
741
+ "input-transaction": "input-transaction";
742
+ "input-watch-scope": "input-watch-scope";
743
+ }>;
744
+ maximumCalls: z.ZodNumber;
745
+ }, z.core.$strict>>;
746
+ modelPolicy: z.ZodObject<{
747
+ mode: z.ZodLiteral<"deterministic">;
748
+ maximumModelTokens: z.ZodLiteral<0>;
749
+ }, z.core.$strict>;
750
+ researchPolicy: z.ZodOptional<z.ZodObject<{
751
+ readOwner: z.ZodBoolean;
752
+ readProxySlots: z.ZodBoolean;
753
+ }, z.core.$strict>>;
754
+ policy: z.ZodOptional<z.ZodObject<{
755
+ analysis: z.ZodObject<{
756
+ mode: z.ZodLiteral<"summary">;
757
+ maximumOutputTokens: z.ZodNumber;
758
+ maximumCostMicrousd: z.ZodNumber;
759
+ }, z.core.$strict>;
760
+ }, z.core.$strict>>;
761
+ marketPolicy: z.ZodOptional<z.ZodObject<{
762
+ discoverPools: z.ZodBoolean;
763
+ recentHolderActivity: z.ZodBoolean;
764
+ }, z.core.$strict>>;
765
+ limits: z.ZodObject<{
766
+ maximumRpcCalls: z.ZodNumber;
767
+ maximumDurationMs: z.ZodNumber;
768
+ maximumOutputBytes: z.ZodNumber;
769
+ maximumGraphDepth: z.ZodNumber;
770
+ maximumPages: z.ZodLiteral<0>;
771
+ maximumExecutionAtomic: z.ZodString;
772
+ }, z.core.$strict>;
773
+ workflow: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
774
+ type: z.ZodLiteral<"input">;
775
+ id: z.ZodString;
776
+ dependsOn: z.ZodArray<z.ZodString>;
777
+ }, z.core.$strict>, z.ZodObject<{
778
+ type: z.ZodLiteral<"tool">;
779
+ tool: z.ZodString;
780
+ arguments: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
781
+ source: z.ZodLiteral<"input">;
782
+ path: z.ZodString;
783
+ }, z.core.$strict>, z.ZodObject<{
784
+ source: z.ZodLiteral<"node">;
785
+ nodeId: z.ZodString;
786
+ path: z.ZodString;
787
+ }, z.core.$strict>], "source">>;
788
+ id: z.ZodString;
789
+ dependsOn: z.ZodArray<z.ZodString>;
790
+ }, z.core.$strict>, z.ZodObject<{
791
+ type: z.ZodLiteral<"condition">;
792
+ field: z.ZodDiscriminatedUnion<[z.ZodObject<{
793
+ source: z.ZodLiteral<"input">;
794
+ path: z.ZodString;
795
+ }, z.core.$strict>, z.ZodObject<{
796
+ source: z.ZodLiteral<"node">;
797
+ nodeId: z.ZodString;
798
+ path: z.ZodString;
799
+ }, z.core.$strict>], "source">;
800
+ operator: z.ZodEnum<{
801
+ equals: "equals";
802
+ exists: "exists";
803
+ }>;
804
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean, z.ZodNumber]>>;
805
+ whenTrue: z.ZodString;
806
+ whenFalse: z.ZodString;
807
+ id: z.ZodString;
808
+ dependsOn: z.ZodArray<z.ZodString>;
809
+ }, z.core.$strict>, z.ZodObject<{
810
+ type: z.ZodLiteral<"output">;
811
+ from: z.ZodString;
812
+ id: z.ZodString;
813
+ dependsOn: z.ZodArray<z.ZodString>;
814
+ }, z.core.$strict>], "type">>;
815
+ testCases: z.ZodArray<z.ZodString>;
816
+ }, z.core.$strict>;
817
+ /** Nominal fresh-run RPC attempts. Provider failures may stop early; retry receipts stay charged. */
818
+ export declare function getTokenResearcherRpcPlan(raw: unknown): Readonly<{
819
+ policy: Readonly<{
820
+ readOwner: boolean;
821
+ readProxySlots: boolean;
822
+ }>;
823
+ marketPolicy: {
824
+ discoverPools: boolean;
825
+ recentHolderActivity: boolean;
826
+ } | null;
827
+ latestSnapshotCalls: number;
828
+ explicitSnapshotCalls: number;
829
+ maximumRpcCalls: number;
830
+ }>;
831
+ export declare const FailureCategorySchema: z.ZodEnum<{
832
+ "no-contract": "no-contract";
833
+ "provider-unavailable": "provider-unavailable";
834
+ "history-unavailable": "history-unavailable";
835
+ "rate-limited": "rate-limited";
836
+ timeout: "timeout";
837
+ cancelled: "cancelled";
838
+ unsupported: "unsupported";
839
+ "contract-reverted": "contract-reverted";
840
+ "invalid-response": "invalid-response";
841
+ "chain-mismatch": "chain-mismatch";
842
+ "snapshot-changed": "snapshot-changed";
843
+ "limit-exceeded": "limit-exceeded";
844
+ unconfigured: "unconfigured";
845
+ }>;
846
+ export type FailureCategory = z.infer<typeof FailureCategorySchema>;
847
+ export declare const ResearchErrorSchema: z.ZodObject<{
848
+ category: z.ZodEnum<{
849
+ "no-contract": "no-contract";
850
+ "provider-unavailable": "provider-unavailable";
851
+ "history-unavailable": "history-unavailable";
852
+ "rate-limited": "rate-limited";
853
+ timeout: "timeout";
854
+ cancelled: "cancelled";
855
+ unsupported: "unsupported";
856
+ "contract-reverted": "contract-reverted";
857
+ "invalid-response": "invalid-response";
858
+ "chain-mismatch": "chain-mismatch";
859
+ "snapshot-changed": "snapshot-changed";
860
+ "limit-exceeded": "limit-exceeded";
861
+ unconfigured: "unconfigured";
862
+ }>;
863
+ message: z.ZodString;
864
+ step: z.ZodString;
865
+ evidenceId: z.ZodOptional<z.ZodString>;
866
+ }, z.core.$strict>;
867
+ /** Shared EVM evidence envelope, bound to exactly one executor tool version. */
868
+ export declare const evmEvidenceItemSchema: <Tool extends string>(tool: Tool) => z.ZodObject<{
869
+ id: z.ZodString;
870
+ tool: z.ZodLiteral<Tool>;
871
+ source: z.ZodObject<{
872
+ kind: z.ZodLiteral<"rpc">;
873
+ provider: z.ZodString;
874
+ method: z.ZodString;
875
+ documentationUrl: z.ZodURL;
876
+ }, z.core.$strict>;
877
+ chain: z.ZodEnum<{
878
+ ethereum: "ethereum";
879
+ base: "base";
880
+ robinhood: "robinhood";
881
+ }>;
882
+ chainId: z.ZodNumber;
883
+ request: z.ZodArray<z.ZodJSONSchema>;
884
+ snapshot: z.ZodNullable<z.ZodObject<{
885
+ blockNumber: z.ZodString;
886
+ blockHash: z.ZodString;
887
+ }, z.core.$strict>>;
888
+ observedAt: z.ZodISODateTime;
889
+ finality: z.ZodEnum<{
890
+ finalized: "finalized";
891
+ "sequencer-confirmed": "sequencer-confirmed";
892
+ unverified: "unverified";
893
+ }>;
894
+ canonicality: z.ZodEnum<{
895
+ "verified-at-completion": "verified-at-completion";
896
+ unchecked: "unchecked";
897
+ changed: "changed";
898
+ }>;
899
+ completeness: z.ZodEnum<{
900
+ error: "error";
901
+ "complete-for-request": "complete-for-request";
902
+ }>;
903
+ result: z.ZodJSONSchema;
904
+ contentHash: z.ZodString;
905
+ privacy: z.ZodLiteral<"public-chain-data">;
906
+ }, z.core.$strict>;
907
+ export declare const EvidenceItemSchema: z.ZodObject<{
908
+ id: z.ZodString;
909
+ tool: z.ZodLiteral<"evm.inspect-token@0.1.0">;
910
+ source: z.ZodObject<{
911
+ kind: z.ZodLiteral<"rpc">;
912
+ provider: z.ZodString;
913
+ method: z.ZodString;
914
+ documentationUrl: z.ZodURL;
915
+ }, z.core.$strict>;
916
+ chain: z.ZodEnum<{
917
+ ethereum: "ethereum";
918
+ base: "base";
919
+ robinhood: "robinhood";
920
+ }>;
921
+ chainId: z.ZodNumber;
922
+ request: z.ZodArray<z.ZodJSONSchema>;
923
+ snapshot: z.ZodNullable<z.ZodObject<{
924
+ blockNumber: z.ZodString;
925
+ blockHash: z.ZodString;
926
+ }, z.core.$strict>>;
927
+ observedAt: z.ZodISODateTime;
928
+ finality: z.ZodEnum<{
929
+ finalized: "finalized";
930
+ "sequencer-confirmed": "sequencer-confirmed";
931
+ unverified: "unverified";
932
+ }>;
933
+ canonicality: z.ZodEnum<{
934
+ "verified-at-completion": "verified-at-completion";
935
+ unchecked: "unchecked";
936
+ changed: "changed";
937
+ }>;
938
+ completeness: z.ZodEnum<{
939
+ error: "error";
940
+ "complete-for-request": "complete-for-request";
941
+ }>;
942
+ result: z.ZodJSONSchema;
943
+ contentHash: z.ZodString;
944
+ privacy: z.ZodLiteral<"public-chain-data">;
945
+ }, z.core.$strict>;
946
+ export type EvidenceItem = z.infer<typeof EvidenceItemSchema>;
947
+ export declare const ObservationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
948
+ status: z.ZodLiteral<"observed">;
949
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
950
+ evidenceIds: z.ZodArray<z.ZodString>;
951
+ note: z.ZodOptional<z.ZodString>;
952
+ }, z.core.$strict>, z.ZodObject<{
953
+ status: z.ZodEnum<{
954
+ error: "error";
955
+ unknown: "unknown";
956
+ unsupported: "unsupported";
957
+ "not-detected": "not-detected";
958
+ "not-applicable": "not-applicable";
959
+ }>;
960
+ reason: z.ZodString;
961
+ evidenceIds: z.ZodArray<z.ZodString>;
962
+ }, z.core.$strict>, z.ZodObject<{
963
+ status: z.ZodLiteral<"skipped">;
964
+ reason: z.ZodString;
965
+ evidenceIds: z.ZodArray<z.ZodString>;
966
+ }, z.core.$strict>], "status">;
967
+ export type Observation = z.infer<typeof ObservationSchema>;
968
+ export declare const ANALYSIS_LABEL = "AI-assisted summary";
969
+ /** Model-written section, present only when the manifest declares policy.analysis. Deterministic observations are never part of it. */
970
+ export declare const ResearchAnalysisSchema: z.ZodObject<{
971
+ label: z.ZodLiteral<"AI-assisted summary">;
972
+ status: z.ZodEnum<{
973
+ skipped: "skipped";
974
+ completed: "completed";
975
+ unavailable: "unavailable";
976
+ }>;
977
+ model: z.ZodString;
978
+ findings: z.ZodArray<z.ZodObject<{
979
+ claim: z.ZodString;
980
+ evidenceIds: z.ZodArray<z.ZodString>;
981
+ confidence: z.ZodEnum<{
982
+ supported: "supported";
983
+ uncertain: "uncertain";
984
+ }>;
985
+ }, z.core.$strict>>;
986
+ unavailableReason: z.ZodOptional<z.ZodString>;
987
+ }, z.core.$strict>;
988
+ export type ResearchAnalysis = z.infer<typeof ResearchAnalysisSchema>;
989
+ /**
990
+ * Metered summary usage. `costStatus: 'unresolved'` means an earlier attempt sent the request but its usage was never recorded: `costMicrousd`
991
+ * is then the reserved worst case (an upper bound for settlement), not metered spend, and token counts are unknown (0). Absent: metered.
992
+ */
993
+ export declare const ModelUsageSchema: z.ZodObject<{
994
+ model: z.ZodString;
995
+ inputTokens: z.ZodNumber;
996
+ outputTokens: z.ZodNumber;
997
+ costMicrousd: z.ZodNumber;
998
+ costStatus: z.ZodOptional<z.ZodLiteral<"unresolved">>;
999
+ }, z.core.$strict>;
1000
+ /**
1001
+ * Token Researcher 0.3.0 market section. Every value is derived from captured receipts by `buildMarketSection` (token-market.ts). Pools are the
1002
+ * listed venues' factory lookups only; recent recipients are an index page of recent transfers, never a holder list. No totals, prices or scores.
1003
+ */
1004
+ export declare const TokenMarketSchema: z.ZodObject<{
1005
+ pools: z.ZodObject<{
1006
+ status: z.ZodEnum<{
1007
+ error: "error";
1008
+ unsupported: "unsupported";
1009
+ observed: "observed";
1010
+ skipped: "skipped";
1011
+ "none-found": "none-found";
1012
+ "not-read": "not-read";
1013
+ }>;
1014
+ reason: z.ZodString;
1015
+ venuesChecked: z.ZodArray<z.ZodObject<{
1016
+ lookup: z.ZodEnum<{
1017
+ pool: "pool";
1018
+ "no-pool": "no-pool";
1019
+ "call-failed": "call-failed";
1020
+ }>;
1021
+ pool: z.ZodNullable<z.ZodString>;
1022
+ venue: z.ZodString;
1023
+ protocol: z.ZodEnum<{
1024
+ "uniswap-v2": "uniswap-v2";
1025
+ "uniswap-v3": "uniswap-v3";
1026
+ aerodrome: "aerodrome";
1027
+ }>;
1028
+ factory: z.ZodString;
1029
+ quoteToken: z.ZodString;
1030
+ quoteSymbol: z.ZodString;
1031
+ quoteDecimals: z.ZodNumber;
1032
+ feeTier: z.ZodNullable<z.ZodNumber>;
1033
+ stable: z.ZodNullable<z.ZodBoolean>;
1034
+ }, z.core.$strict>>;
1035
+ pools: z.ZodArray<z.ZodObject<{
1036
+ address: z.ZodString;
1037
+ token0: z.ZodString;
1038
+ tokenBalanceAtomic: z.ZodNullable<z.ZodString>;
1039
+ quoteBalanceAtomic: z.ZodNullable<z.ZodString>;
1040
+ reserve0Atomic: z.ZodNullable<z.ZodString>;
1041
+ reserve1Atomic: z.ZodNullable<z.ZodString>;
1042
+ sqrtPriceX96: z.ZodNullable<z.ZodString>;
1043
+ tick: z.ZodNullable<z.ZodNumber>;
1044
+ activeLiquidity: z.ZodNullable<z.ZodString>;
1045
+ evidenceIds: z.ZodArray<z.ZodString>;
1046
+ venue: z.ZodString;
1047
+ protocol: z.ZodEnum<{
1048
+ "uniswap-v2": "uniswap-v2";
1049
+ "uniswap-v3": "uniswap-v3";
1050
+ aerodrome: "aerodrome";
1051
+ }>;
1052
+ factory: z.ZodString;
1053
+ quoteToken: z.ZodString;
1054
+ quoteSymbol: z.ZodString;
1055
+ quoteDecimals: z.ZodNumber;
1056
+ feeTier: z.ZodNullable<z.ZodNumber>;
1057
+ stable: z.ZodNullable<z.ZodBoolean>;
1058
+ }, z.core.$strict>>;
1059
+ poolsFound: z.ZodNumber;
1060
+ truncated: z.ZodBoolean;
1061
+ evidenceIds: z.ZodArray<z.ZodString>;
1062
+ }, z.core.$strict>;
1063
+ recentHolderActivity: z.ZodObject<{
1064
+ status: z.ZodEnum<{
1065
+ error: "error";
1066
+ unsupported: "unsupported";
1067
+ observed: "observed";
1068
+ skipped: "skipped";
1069
+ "none-found": "none-found";
1070
+ "not-read": "not-read";
1071
+ }>;
1072
+ reason: z.ZodString;
1073
+ basis: z.ZodLiteral<"recent-transfer-recipients-not-a-holder-list">;
1074
+ transfersExamined: z.ZodNumber;
1075
+ truncated: z.ZodBoolean;
1076
+ accounts: z.ZodArray<z.ZodObject<{
1077
+ address: z.ZodString;
1078
+ latestReceiptBlock: z.ZodString;
1079
+ balanceAtomic: z.ZodNullable<z.ZodString>;
1080
+ isDiscoveredPool: z.ZodBoolean;
1081
+ evidenceIds: z.ZodArray<z.ZodString>;
1082
+ }, z.core.$strict>>;
1083
+ evidenceIds: z.ZodArray<z.ZodString>;
1084
+ }, z.core.$strict>;
1085
+ limitations: z.ZodArray<z.ZodString>;
1086
+ }, z.core.$strict>;
1087
+ export type TokenMarket = z.infer<typeof TokenMarketSchema>;
1088
+ export declare const TokenResearchReportSchema: z.ZodObject<{
1089
+ schemaVersion: z.ZodLiteral<"agentex.token-research.v1">;
1090
+ agentVersion: z.ZodString;
1091
+ manifestHash: z.ZodString;
1092
+ researchPolicy: z.ZodOptional<z.ZodObject<{
1093
+ readOwner: z.ZodBoolean;
1094
+ readProxySlots: z.ZodBoolean;
1095
+ }, z.core.$strict>>;
1096
+ marketPolicy: z.ZodOptional<z.ZodObject<{
1097
+ discoverPools: z.ZodBoolean;
1098
+ recentHolderActivity: z.ZodBoolean;
1099
+ }, z.core.$strict>>;
1100
+ market: z.ZodOptional<z.ZodObject<{
1101
+ pools: z.ZodObject<{
1102
+ status: z.ZodEnum<{
1103
+ error: "error";
1104
+ unsupported: "unsupported";
1105
+ observed: "observed";
1106
+ skipped: "skipped";
1107
+ "none-found": "none-found";
1108
+ "not-read": "not-read";
1109
+ }>;
1110
+ reason: z.ZodString;
1111
+ venuesChecked: z.ZodArray<z.ZodObject<{
1112
+ lookup: z.ZodEnum<{
1113
+ pool: "pool";
1114
+ "no-pool": "no-pool";
1115
+ "call-failed": "call-failed";
1116
+ }>;
1117
+ pool: z.ZodNullable<z.ZodString>;
1118
+ venue: z.ZodString;
1119
+ protocol: z.ZodEnum<{
1120
+ "uniswap-v2": "uniswap-v2";
1121
+ "uniswap-v3": "uniswap-v3";
1122
+ aerodrome: "aerodrome";
1123
+ }>;
1124
+ factory: z.ZodString;
1125
+ quoteToken: z.ZodString;
1126
+ quoteSymbol: z.ZodString;
1127
+ quoteDecimals: z.ZodNumber;
1128
+ feeTier: z.ZodNullable<z.ZodNumber>;
1129
+ stable: z.ZodNullable<z.ZodBoolean>;
1130
+ }, z.core.$strict>>;
1131
+ pools: z.ZodArray<z.ZodObject<{
1132
+ address: z.ZodString;
1133
+ token0: z.ZodString;
1134
+ tokenBalanceAtomic: z.ZodNullable<z.ZodString>;
1135
+ quoteBalanceAtomic: z.ZodNullable<z.ZodString>;
1136
+ reserve0Atomic: z.ZodNullable<z.ZodString>;
1137
+ reserve1Atomic: z.ZodNullable<z.ZodString>;
1138
+ sqrtPriceX96: z.ZodNullable<z.ZodString>;
1139
+ tick: z.ZodNullable<z.ZodNumber>;
1140
+ activeLiquidity: z.ZodNullable<z.ZodString>;
1141
+ evidenceIds: z.ZodArray<z.ZodString>;
1142
+ venue: z.ZodString;
1143
+ protocol: z.ZodEnum<{
1144
+ "uniswap-v2": "uniswap-v2";
1145
+ "uniswap-v3": "uniswap-v3";
1146
+ aerodrome: "aerodrome";
1147
+ }>;
1148
+ factory: z.ZodString;
1149
+ quoteToken: z.ZodString;
1150
+ quoteSymbol: z.ZodString;
1151
+ quoteDecimals: z.ZodNumber;
1152
+ feeTier: z.ZodNullable<z.ZodNumber>;
1153
+ stable: z.ZodNullable<z.ZodBoolean>;
1154
+ }, z.core.$strict>>;
1155
+ poolsFound: z.ZodNumber;
1156
+ truncated: z.ZodBoolean;
1157
+ evidenceIds: z.ZodArray<z.ZodString>;
1158
+ }, z.core.$strict>;
1159
+ recentHolderActivity: z.ZodObject<{
1160
+ status: z.ZodEnum<{
1161
+ error: "error";
1162
+ unsupported: "unsupported";
1163
+ observed: "observed";
1164
+ skipped: "skipped";
1165
+ "none-found": "none-found";
1166
+ "not-read": "not-read";
1167
+ }>;
1168
+ reason: z.ZodString;
1169
+ basis: z.ZodLiteral<"recent-transfer-recipients-not-a-holder-list">;
1170
+ transfersExamined: z.ZodNumber;
1171
+ truncated: z.ZodBoolean;
1172
+ accounts: z.ZodArray<z.ZodObject<{
1173
+ address: z.ZodString;
1174
+ latestReceiptBlock: z.ZodString;
1175
+ balanceAtomic: z.ZodNullable<z.ZodString>;
1176
+ isDiscoveredPool: z.ZodBoolean;
1177
+ evidenceIds: z.ZodArray<z.ZodString>;
1178
+ }, z.core.$strict>>;
1179
+ evidenceIds: z.ZodArray<z.ZodString>;
1180
+ }, z.core.$strict>;
1181
+ limitations: z.ZodArray<z.ZodString>;
1182
+ }, z.core.$strict>>;
1183
+ input: z.ZodObject<{
1184
+ chain: z.ZodEnum<{
1185
+ ethereum: "ethereum";
1186
+ base: "base";
1187
+ robinhood: "robinhood";
1188
+ }>;
1189
+ address: z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>;
1190
+ scope: z.ZodDefault<z.ZodLiteral<"metadata-and-controls">>;
1191
+ snapshotBlock: z.ZodOptional<z.ZodString>;
1192
+ }, z.core.$strict>;
1193
+ status: z.ZodEnum<{
1194
+ complete: "complete";
1195
+ partial: "partial";
1196
+ failed: "failed";
1197
+ }>;
1198
+ generatedAt: z.ZodISODateTime;
1199
+ chainId: z.ZodNullable<z.ZodNumber>;
1200
+ snapshot: z.ZodNullable<z.ZodObject<{
1201
+ blockNumber: z.ZodString;
1202
+ blockHash: z.ZodString;
1203
+ timestamp: z.ZodString;
1204
+ finality: z.ZodEnum<{
1205
+ finalized: "finalized";
1206
+ "sequencer-confirmed": "sequencer-confirmed";
1207
+ }>;
1208
+ canonicality: z.ZodEnum<{
1209
+ "verified-at-completion": "verified-at-completion";
1210
+ unchecked: "unchecked";
1211
+ changed: "changed";
1212
+ }>;
1213
+ }, z.core.$strict>>;
1214
+ metadata: z.ZodObject<{
1215
+ name: z.ZodDiscriminatedUnion<[z.ZodObject<{
1216
+ status: z.ZodLiteral<"observed">;
1217
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1218
+ evidenceIds: z.ZodArray<z.ZodString>;
1219
+ note: z.ZodOptional<z.ZodString>;
1220
+ }, z.core.$strict>, z.ZodObject<{
1221
+ status: z.ZodEnum<{
1222
+ error: "error";
1223
+ unknown: "unknown";
1224
+ unsupported: "unsupported";
1225
+ "not-detected": "not-detected";
1226
+ "not-applicable": "not-applicable";
1227
+ }>;
1228
+ reason: z.ZodString;
1229
+ evidenceIds: z.ZodArray<z.ZodString>;
1230
+ }, z.core.$strict>, z.ZodObject<{
1231
+ status: z.ZodLiteral<"skipped">;
1232
+ reason: z.ZodString;
1233
+ evidenceIds: z.ZodArray<z.ZodString>;
1234
+ }, z.core.$strict>], "status">;
1235
+ symbol: z.ZodDiscriminatedUnion<[z.ZodObject<{
1236
+ status: z.ZodLiteral<"observed">;
1237
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1238
+ evidenceIds: z.ZodArray<z.ZodString>;
1239
+ note: z.ZodOptional<z.ZodString>;
1240
+ }, z.core.$strict>, z.ZodObject<{
1241
+ status: z.ZodEnum<{
1242
+ error: "error";
1243
+ unknown: "unknown";
1244
+ unsupported: "unsupported";
1245
+ "not-detected": "not-detected";
1246
+ "not-applicable": "not-applicable";
1247
+ }>;
1248
+ reason: z.ZodString;
1249
+ evidenceIds: z.ZodArray<z.ZodString>;
1250
+ }, z.core.$strict>, z.ZodObject<{
1251
+ status: z.ZodLiteral<"skipped">;
1252
+ reason: z.ZodString;
1253
+ evidenceIds: z.ZodArray<z.ZodString>;
1254
+ }, z.core.$strict>], "status">;
1255
+ decimals: z.ZodDiscriminatedUnion<[z.ZodObject<{
1256
+ status: z.ZodLiteral<"observed">;
1257
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1258
+ evidenceIds: z.ZodArray<z.ZodString>;
1259
+ note: z.ZodOptional<z.ZodString>;
1260
+ }, z.core.$strict>, z.ZodObject<{
1261
+ status: z.ZodEnum<{
1262
+ error: "error";
1263
+ unknown: "unknown";
1264
+ unsupported: "unsupported";
1265
+ "not-detected": "not-detected";
1266
+ "not-applicable": "not-applicable";
1267
+ }>;
1268
+ reason: z.ZodString;
1269
+ evidenceIds: z.ZodArray<z.ZodString>;
1270
+ }, z.core.$strict>, z.ZodObject<{
1271
+ status: z.ZodLiteral<"skipped">;
1272
+ reason: z.ZodString;
1273
+ evidenceIds: z.ZodArray<z.ZodString>;
1274
+ }, z.core.$strict>], "status">;
1275
+ totalSupplyAtomic: z.ZodDiscriminatedUnion<[z.ZodObject<{
1276
+ status: z.ZodLiteral<"observed">;
1277
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1278
+ evidenceIds: z.ZodArray<z.ZodString>;
1279
+ note: z.ZodOptional<z.ZodString>;
1280
+ }, z.core.$strict>, z.ZodObject<{
1281
+ status: z.ZodEnum<{
1282
+ error: "error";
1283
+ unknown: "unknown";
1284
+ unsupported: "unsupported";
1285
+ "not-detected": "not-detected";
1286
+ "not-applicable": "not-applicable";
1287
+ }>;
1288
+ reason: z.ZodString;
1289
+ evidenceIds: z.ZodArray<z.ZodString>;
1290
+ }, z.core.$strict>, z.ZodObject<{
1291
+ status: z.ZodLiteral<"skipped">;
1292
+ reason: z.ZodString;
1293
+ evidenceIds: z.ZodArray<z.ZodString>;
1294
+ }, z.core.$strict>], "status">;
1295
+ totalSupplyFormatted: z.ZodDiscriminatedUnion<[z.ZodObject<{
1296
+ status: z.ZodLiteral<"observed">;
1297
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1298
+ evidenceIds: z.ZodArray<z.ZodString>;
1299
+ note: z.ZodOptional<z.ZodString>;
1300
+ }, z.core.$strict>, z.ZodObject<{
1301
+ status: z.ZodEnum<{
1302
+ error: "error";
1303
+ unknown: "unknown";
1304
+ unsupported: "unsupported";
1305
+ "not-detected": "not-detected";
1306
+ "not-applicable": "not-applicable";
1307
+ }>;
1308
+ reason: z.ZodString;
1309
+ evidenceIds: z.ZodArray<z.ZodString>;
1310
+ }, z.core.$strict>, z.ZodObject<{
1311
+ status: z.ZodLiteral<"skipped">;
1312
+ reason: z.ZodString;
1313
+ evidenceIds: z.ZodArray<z.ZodString>;
1314
+ }, z.core.$strict>], "status">;
1315
+ }, z.core.$strict>;
1316
+ contract: z.ZodObject<{
1317
+ codePresent: z.ZodDiscriminatedUnion<[z.ZodObject<{
1318
+ status: z.ZodLiteral<"observed">;
1319
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1320
+ evidenceIds: z.ZodArray<z.ZodString>;
1321
+ note: z.ZodOptional<z.ZodString>;
1322
+ }, z.core.$strict>, z.ZodObject<{
1323
+ status: z.ZodEnum<{
1324
+ error: "error";
1325
+ unknown: "unknown";
1326
+ unsupported: "unsupported";
1327
+ "not-detected": "not-detected";
1328
+ "not-applicable": "not-applicable";
1329
+ }>;
1330
+ reason: z.ZodString;
1331
+ evidenceIds: z.ZodArray<z.ZodString>;
1332
+ }, z.core.$strict>, z.ZodObject<{
1333
+ status: z.ZodLiteral<"skipped">;
1334
+ reason: z.ZodString;
1335
+ evidenceIds: z.ZodArray<z.ZodString>;
1336
+ }, z.core.$strict>], "status">;
1337
+ codeHash: z.ZodDiscriminatedUnion<[z.ZodObject<{
1338
+ status: z.ZodLiteral<"observed">;
1339
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1340
+ evidenceIds: z.ZodArray<z.ZodString>;
1341
+ note: z.ZodOptional<z.ZodString>;
1342
+ }, z.core.$strict>, z.ZodObject<{
1343
+ status: z.ZodEnum<{
1344
+ error: "error";
1345
+ unknown: "unknown";
1346
+ unsupported: "unsupported";
1347
+ "not-detected": "not-detected";
1348
+ "not-applicable": "not-applicable";
1349
+ }>;
1350
+ reason: z.ZodString;
1351
+ evidenceIds: z.ZodArray<z.ZodString>;
1352
+ }, z.core.$strict>, z.ZodObject<{
1353
+ status: z.ZodLiteral<"skipped">;
1354
+ reason: z.ZodString;
1355
+ evidenceIds: z.ZodArray<z.ZodString>;
1356
+ }, z.core.$strict>], "status">;
1357
+ sourceVerification: z.ZodDiscriminatedUnion<[z.ZodObject<{
1358
+ status: z.ZodLiteral<"observed">;
1359
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1360
+ evidenceIds: z.ZodArray<z.ZodString>;
1361
+ note: z.ZodOptional<z.ZodString>;
1362
+ }, z.core.$strict>, z.ZodObject<{
1363
+ status: z.ZodEnum<{
1364
+ error: "error";
1365
+ unknown: "unknown";
1366
+ unsupported: "unsupported";
1367
+ "not-detected": "not-detected";
1368
+ "not-applicable": "not-applicable";
1369
+ }>;
1370
+ reason: z.ZodString;
1371
+ evidenceIds: z.ZodArray<z.ZodString>;
1372
+ }, z.core.$strict>, z.ZodObject<{
1373
+ status: z.ZodLiteral<"skipped">;
1374
+ reason: z.ZodString;
1375
+ evidenceIds: z.ZodArray<z.ZodString>;
1376
+ }, z.core.$strict>], "status">;
1377
+ }, z.core.$strict>;
1378
+ controls: z.ZodObject<{
1379
+ implementation: z.ZodDiscriminatedUnion<[z.ZodObject<{
1380
+ status: z.ZodLiteral<"observed">;
1381
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1382
+ evidenceIds: z.ZodArray<z.ZodString>;
1383
+ note: z.ZodOptional<z.ZodString>;
1384
+ }, z.core.$strict>, z.ZodObject<{
1385
+ status: z.ZodEnum<{
1386
+ error: "error";
1387
+ unknown: "unknown";
1388
+ unsupported: "unsupported";
1389
+ "not-detected": "not-detected";
1390
+ "not-applicable": "not-applicable";
1391
+ }>;
1392
+ reason: z.ZodString;
1393
+ evidenceIds: z.ZodArray<z.ZodString>;
1394
+ }, z.core.$strict>, z.ZodObject<{
1395
+ status: z.ZodLiteral<"skipped">;
1396
+ reason: z.ZodString;
1397
+ evidenceIds: z.ZodArray<z.ZodString>;
1398
+ }, z.core.$strict>], "status">;
1399
+ admin: z.ZodDiscriminatedUnion<[z.ZodObject<{
1400
+ status: z.ZodLiteral<"observed">;
1401
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1402
+ evidenceIds: z.ZodArray<z.ZodString>;
1403
+ note: z.ZodOptional<z.ZodString>;
1404
+ }, z.core.$strict>, z.ZodObject<{
1405
+ status: z.ZodEnum<{
1406
+ error: "error";
1407
+ unknown: "unknown";
1408
+ unsupported: "unsupported";
1409
+ "not-detected": "not-detected";
1410
+ "not-applicable": "not-applicable";
1411
+ }>;
1412
+ reason: z.ZodString;
1413
+ evidenceIds: z.ZodArray<z.ZodString>;
1414
+ }, z.core.$strict>, z.ZodObject<{
1415
+ status: z.ZodLiteral<"skipped">;
1416
+ reason: z.ZodString;
1417
+ evidenceIds: z.ZodArray<z.ZodString>;
1418
+ }, z.core.$strict>], "status">;
1419
+ beacon: z.ZodDiscriminatedUnion<[z.ZodObject<{
1420
+ status: z.ZodLiteral<"observed">;
1421
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1422
+ evidenceIds: z.ZodArray<z.ZodString>;
1423
+ note: z.ZodOptional<z.ZodString>;
1424
+ }, z.core.$strict>, z.ZodObject<{
1425
+ status: z.ZodEnum<{
1426
+ error: "error";
1427
+ unknown: "unknown";
1428
+ unsupported: "unsupported";
1429
+ "not-detected": "not-detected";
1430
+ "not-applicable": "not-applicable";
1431
+ }>;
1432
+ reason: z.ZodString;
1433
+ evidenceIds: z.ZodArray<z.ZodString>;
1434
+ }, z.core.$strict>, z.ZodObject<{
1435
+ status: z.ZodLiteral<"skipped">;
1436
+ reason: z.ZodString;
1437
+ evidenceIds: z.ZodArray<z.ZodString>;
1438
+ }, z.core.$strict>], "status">;
1439
+ owner: z.ZodDiscriminatedUnion<[z.ZodObject<{
1440
+ status: z.ZodLiteral<"observed">;
1441
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1442
+ evidenceIds: z.ZodArray<z.ZodString>;
1443
+ note: z.ZodOptional<z.ZodString>;
1444
+ }, z.core.$strict>, z.ZodObject<{
1445
+ status: z.ZodEnum<{
1446
+ error: "error";
1447
+ unknown: "unknown";
1448
+ unsupported: "unsupported";
1449
+ "not-detected": "not-detected";
1450
+ "not-applicable": "not-applicable";
1451
+ }>;
1452
+ reason: z.ZodString;
1453
+ evidenceIds: z.ZodArray<z.ZodString>;
1454
+ }, z.core.$strict>, z.ZodObject<{
1455
+ status: z.ZodLiteral<"skipped">;
1456
+ reason: z.ZodString;
1457
+ evidenceIds: z.ZodArray<z.ZodString>;
1458
+ }, z.core.$strict>], "status">;
1459
+ mintAuthority: z.ZodDiscriminatedUnion<[z.ZodObject<{
1460
+ status: z.ZodLiteral<"observed">;
1461
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1462
+ evidenceIds: z.ZodArray<z.ZodString>;
1463
+ note: z.ZodOptional<z.ZodString>;
1464
+ }, z.core.$strict>, z.ZodObject<{
1465
+ status: z.ZodEnum<{
1466
+ error: "error";
1467
+ unknown: "unknown";
1468
+ unsupported: "unsupported";
1469
+ "not-detected": "not-detected";
1470
+ "not-applicable": "not-applicable";
1471
+ }>;
1472
+ reason: z.ZodString;
1473
+ evidenceIds: z.ZodArray<z.ZodString>;
1474
+ }, z.core.$strict>, z.ZodObject<{
1475
+ status: z.ZodLiteral<"skipped">;
1476
+ reason: z.ZodString;
1477
+ evidenceIds: z.ZodArray<z.ZodString>;
1478
+ }, z.core.$strict>], "status">;
1479
+ freezeAuthority: z.ZodDiscriminatedUnion<[z.ZodObject<{
1480
+ status: z.ZodLiteral<"observed">;
1481
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1482
+ evidenceIds: z.ZodArray<z.ZodString>;
1483
+ note: z.ZodOptional<z.ZodString>;
1484
+ }, z.core.$strict>, z.ZodObject<{
1485
+ status: z.ZodEnum<{
1486
+ error: "error";
1487
+ unknown: "unknown";
1488
+ unsupported: "unsupported";
1489
+ "not-detected": "not-detected";
1490
+ "not-applicable": "not-applicable";
1491
+ }>;
1492
+ reason: z.ZodString;
1493
+ evidenceIds: z.ZodArray<z.ZodString>;
1494
+ }, z.core.$strict>, z.ZodObject<{
1495
+ status: z.ZodLiteral<"skipped">;
1496
+ reason: z.ZodString;
1497
+ evidenceIds: z.ZodArray<z.ZodString>;
1498
+ }, z.core.$strict>], "status">;
1499
+ upgradeability: z.ZodDiscriminatedUnion<[z.ZodObject<{
1500
+ status: z.ZodLiteral<"observed">;
1501
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1502
+ evidenceIds: z.ZodArray<z.ZodString>;
1503
+ note: z.ZodOptional<z.ZodString>;
1504
+ }, z.core.$strict>, z.ZodObject<{
1505
+ status: z.ZodEnum<{
1506
+ error: "error";
1507
+ unknown: "unknown";
1508
+ unsupported: "unsupported";
1509
+ "not-detected": "not-detected";
1510
+ "not-applicable": "not-applicable";
1511
+ }>;
1512
+ reason: z.ZodString;
1513
+ evidenceIds: z.ZodArray<z.ZodString>;
1514
+ }, z.core.$strict>, z.ZodObject<{
1515
+ status: z.ZodLiteral<"skipped">;
1516
+ reason: z.ZodString;
1517
+ evidenceIds: z.ZodArray<z.ZodString>;
1518
+ }, z.core.$strict>], "status">;
1519
+ }, z.core.$strict>;
1520
+ coverage: z.ZodObject<{
1521
+ holders: z.ZodDiscriminatedUnion<[z.ZodObject<{
1522
+ status: z.ZodLiteral<"observed">;
1523
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1524
+ evidenceIds: z.ZodArray<z.ZodString>;
1525
+ note: z.ZodOptional<z.ZodString>;
1526
+ }, z.core.$strict>, z.ZodObject<{
1527
+ status: z.ZodEnum<{
1528
+ error: "error";
1529
+ unknown: "unknown";
1530
+ unsupported: "unsupported";
1531
+ "not-detected": "not-detected";
1532
+ "not-applicable": "not-applicable";
1533
+ }>;
1534
+ reason: z.ZodString;
1535
+ evidenceIds: z.ZodArray<z.ZodString>;
1536
+ }, z.core.$strict>, z.ZodObject<{
1537
+ status: z.ZodLiteral<"skipped">;
1538
+ reason: z.ZodString;
1539
+ evidenceIds: z.ZodArray<z.ZodString>;
1540
+ }, z.core.$strict>], "status">;
1541
+ liquidity: z.ZodDiscriminatedUnion<[z.ZodObject<{
1542
+ status: z.ZodLiteral<"observed">;
1543
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1544
+ evidenceIds: z.ZodArray<z.ZodString>;
1545
+ note: z.ZodOptional<z.ZodString>;
1546
+ }, z.core.$strict>, z.ZodObject<{
1547
+ status: z.ZodEnum<{
1548
+ error: "error";
1549
+ unknown: "unknown";
1550
+ unsupported: "unsupported";
1551
+ "not-detected": "not-detected";
1552
+ "not-applicable": "not-applicable";
1553
+ }>;
1554
+ reason: z.ZodString;
1555
+ evidenceIds: z.ZodArray<z.ZodString>;
1556
+ }, z.core.$strict>, z.ZodObject<{
1557
+ status: z.ZodLiteral<"skipped">;
1558
+ reason: z.ZodString;
1559
+ evidenceIds: z.ZodArray<z.ZodString>;
1560
+ }, z.core.$strict>], "status">;
1561
+ deployment: z.ZodDiscriminatedUnion<[z.ZodObject<{
1562
+ status: z.ZodLiteral<"observed">;
1563
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1564
+ evidenceIds: z.ZodArray<z.ZodString>;
1565
+ note: z.ZodOptional<z.ZodString>;
1566
+ }, z.core.$strict>, z.ZodObject<{
1567
+ status: z.ZodEnum<{
1568
+ error: "error";
1569
+ unknown: "unknown";
1570
+ unsupported: "unsupported";
1571
+ "not-detected": "not-detected";
1572
+ "not-applicable": "not-applicable";
1573
+ }>;
1574
+ reason: z.ZodString;
1575
+ evidenceIds: z.ZodArray<z.ZodString>;
1576
+ }, z.core.$strict>, z.ZodObject<{
1577
+ status: z.ZodLiteral<"skipped">;
1578
+ reason: z.ZodString;
1579
+ evidenceIds: z.ZodArray<z.ZodString>;
1580
+ }, z.core.$strict>], "status">;
1581
+ historicalActivity: z.ZodDiscriminatedUnion<[z.ZodObject<{
1582
+ status: z.ZodLiteral<"observed">;
1583
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
1584
+ evidenceIds: z.ZodArray<z.ZodString>;
1585
+ note: z.ZodOptional<z.ZodString>;
1586
+ }, z.core.$strict>, z.ZodObject<{
1587
+ status: z.ZodEnum<{
1588
+ error: "error";
1589
+ unknown: "unknown";
1590
+ unsupported: "unsupported";
1591
+ "not-detected": "not-detected";
1592
+ "not-applicable": "not-applicable";
1593
+ }>;
1594
+ reason: z.ZodString;
1595
+ evidenceIds: z.ZodArray<z.ZodString>;
1596
+ }, z.core.$strict>, z.ZodObject<{
1597
+ status: z.ZodLiteral<"skipped">;
1598
+ reason: z.ZodString;
1599
+ evidenceIds: z.ZodArray<z.ZodString>;
1600
+ }, z.core.$strict>], "status">;
1601
+ }, z.core.$strict>;
1602
+ findings: z.ZodArray<z.ZodObject<{
1603
+ code: z.ZodString;
1604
+ message: z.ZodString;
1605
+ evidenceIds: z.ZodArray<z.ZodString>;
1606
+ }, z.core.$strict>>;
1607
+ limitations: z.ZodArray<z.ZodString>;
1608
+ errors: z.ZodArray<z.ZodObject<{
1609
+ category: z.ZodEnum<{
1610
+ "no-contract": "no-contract";
1611
+ "provider-unavailable": "provider-unavailable";
1612
+ "history-unavailable": "history-unavailable";
1613
+ "rate-limited": "rate-limited";
1614
+ timeout: "timeout";
1615
+ cancelled: "cancelled";
1616
+ unsupported: "unsupported";
1617
+ "contract-reverted": "contract-reverted";
1618
+ "invalid-response": "invalid-response";
1619
+ "chain-mismatch": "chain-mismatch";
1620
+ "snapshot-changed": "snapshot-changed";
1621
+ "limit-exceeded": "limit-exceeded";
1622
+ unconfigured: "unconfigured";
1623
+ }>;
1624
+ message: z.ZodString;
1625
+ step: z.ZodString;
1626
+ evidenceId: z.ZodOptional<z.ZodString>;
1627
+ }, z.core.$strict>>;
1628
+ evidence: z.ZodArray<z.ZodObject<{
1629
+ id: z.ZodString;
1630
+ tool: z.ZodLiteral<"evm.inspect-token@0.1.0">;
1631
+ source: z.ZodObject<{
1632
+ kind: z.ZodLiteral<"rpc">;
1633
+ provider: z.ZodString;
1634
+ method: z.ZodString;
1635
+ documentationUrl: z.ZodURL;
1636
+ }, z.core.$strict>;
1637
+ chain: z.ZodEnum<{
1638
+ ethereum: "ethereum";
1639
+ base: "base";
1640
+ robinhood: "robinhood";
1641
+ }>;
1642
+ chainId: z.ZodNumber;
1643
+ request: z.ZodArray<z.ZodJSONSchema>;
1644
+ snapshot: z.ZodNullable<z.ZodObject<{
1645
+ blockNumber: z.ZodString;
1646
+ blockHash: z.ZodString;
1647
+ }, z.core.$strict>>;
1648
+ observedAt: z.ZodISODateTime;
1649
+ finality: z.ZodEnum<{
1650
+ finalized: "finalized";
1651
+ "sequencer-confirmed": "sequencer-confirmed";
1652
+ unverified: "unverified";
1653
+ }>;
1654
+ canonicality: z.ZodEnum<{
1655
+ "verified-at-completion": "verified-at-completion";
1656
+ unchecked: "unchecked";
1657
+ changed: "changed";
1658
+ }>;
1659
+ completeness: z.ZodEnum<{
1660
+ error: "error";
1661
+ "complete-for-request": "complete-for-request";
1662
+ }>;
1663
+ result: z.ZodJSONSchema;
1664
+ contentHash: z.ZodString;
1665
+ privacy: z.ZodLiteral<"public-chain-data">;
1666
+ }, z.core.$strict>>;
1667
+ analysis: z.ZodOptional<z.ZodObject<{
1668
+ label: z.ZodLiteral<"AI-assisted summary">;
1669
+ status: z.ZodEnum<{
1670
+ skipped: "skipped";
1671
+ completed: "completed";
1672
+ unavailable: "unavailable";
1673
+ }>;
1674
+ model: z.ZodString;
1675
+ findings: z.ZodArray<z.ZodObject<{
1676
+ claim: z.ZodString;
1677
+ evidenceIds: z.ZodArray<z.ZodString>;
1678
+ confidence: z.ZodEnum<{
1679
+ supported: "supported";
1680
+ uncertain: "uncertain";
1681
+ }>;
1682
+ }, z.core.$strict>>;
1683
+ unavailableReason: z.ZodOptional<z.ZodString>;
1684
+ }, z.core.$strict>>;
1685
+ usage: z.ZodObject<{
1686
+ rpcCalls: z.ZodNumber;
1687
+ maximumRpcCalls: z.ZodNumber;
1688
+ elapsedMs: z.ZodNumber;
1689
+ modelTokens: z.ZodLiteral<0>;
1690
+ providerCostAtomic: z.ZodNull;
1691
+ providerCostStatus: z.ZodLiteral<"unpriced">;
1692
+ model: z.ZodOptional<z.ZodObject<{
1693
+ model: z.ZodString;
1694
+ inputTokens: z.ZodNumber;
1695
+ outputTokens: z.ZodNumber;
1696
+ costMicrousd: z.ZodNumber;
1697
+ costStatus: z.ZodOptional<z.ZodLiteral<"unresolved">>;
1698
+ }, z.core.$strict>>;
1699
+ }, z.core.$strict>;
1700
+ }, z.core.$strict>;
1701
+ export type TokenResearchReport = z.infer<typeof TokenResearchReportSchema>;