tenzro-sdk 0.1.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 (151) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +107 -0
  3. package/dist/agent-payments.d.ts +47 -0
  4. package/dist/agent-payments.d.ts.map +1 -0
  5. package/dist/agent-payments.js +76 -0
  6. package/dist/agent-payments.js.map +1 -0
  7. package/dist/agent.d.ts +177 -0
  8. package/dist/agent.d.ts.map +1 -0
  9. package/dist/agent.js +300 -0
  10. package/dist/agent.js.map +1 -0
  11. package/dist/ap2.d.ts +54 -0
  12. package/dist/ap2.d.ts.map +1 -0
  13. package/dist/ap2.js +88 -0
  14. package/dist/ap2.js.map +1 -0
  15. package/dist/app.d.ts +186 -0
  16. package/dist/app.d.ts.map +1 -0
  17. package/dist/app.js +317 -0
  18. package/dist/app.js.map +1 -0
  19. package/dist/bridge.d.ts +64 -0
  20. package/dist/bridge.d.ts.map +1 -0
  21. package/dist/bridge.js +93 -0
  22. package/dist/bridge.js.map +1 -0
  23. package/dist/canton.d.ts +36 -0
  24. package/dist/canton.d.ts.map +1 -0
  25. package/dist/canton.js +46 -0
  26. package/dist/canton.js.map +1 -0
  27. package/dist/circuit-breaker.d.ts +35 -0
  28. package/dist/circuit-breaker.d.ts.map +1 -0
  29. package/dist/circuit-breaker.js +53 -0
  30. package/dist/circuit-breaker.js.map +1 -0
  31. package/dist/client.d.ts +134 -0
  32. package/dist/client.d.ts.map +1 -0
  33. package/dist/client.js +265 -0
  34. package/dist/client.js.map +1 -0
  35. package/dist/compliance.d.ts +83 -0
  36. package/dist/compliance.d.ts.map +1 -0
  37. package/dist/compliance.js +74 -0
  38. package/dist/compliance.js.map +1 -0
  39. package/dist/config.d.ts +10 -0
  40. package/dist/config.d.ts.map +1 -0
  41. package/dist/config.js +24 -0
  42. package/dist/config.js.map +1 -0
  43. package/dist/contract.d.ts +68 -0
  44. package/dist/contract.d.ts.map +1 -0
  45. package/dist/contract.js +59 -0
  46. package/dist/contract.js.map +1 -0
  47. package/dist/crypto.d.ts +112 -0
  48. package/dist/crypto.d.ts.map +1 -0
  49. package/dist/crypto.js +97 -0
  50. package/dist/crypto.js.map +1 -0
  51. package/dist/custody.d.ts +114 -0
  52. package/dist/custody.d.ts.map +1 -0
  53. package/dist/custody.js +96 -0
  54. package/dist/custody.js.map +1 -0
  55. package/dist/debridge.d.ts +129 -0
  56. package/dist/debridge.d.ts.map +1 -0
  57. package/dist/debridge.js +93 -0
  58. package/dist/debridge.js.map +1 -0
  59. package/dist/erc7802.d.ts +36 -0
  60. package/dist/erc7802.d.ts.map +1 -0
  61. package/dist/erc7802.js +52 -0
  62. package/dist/erc7802.js.map +1 -0
  63. package/dist/events.d.ts +112 -0
  64. package/dist/events.d.ts.map +1 -0
  65. package/dist/events.js +70 -0
  66. package/dist/events.js.map +1 -0
  67. package/dist/governance.d.ts +55 -0
  68. package/dist/governance.d.ts.map +1 -0
  69. package/dist/governance.js +77 -0
  70. package/dist/governance.js.map +1 -0
  71. package/dist/identity.d.ts +102 -0
  72. package/dist/identity.d.ts.map +1 -0
  73. package/dist/identity.js +147 -0
  74. package/dist/identity.js.map +1 -0
  75. package/dist/index.d.ts +67 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +85 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/inference.d.ts +27 -0
  80. package/dist/inference.d.ts.map +1 -0
  81. package/dist/inference.js +43 -0
  82. package/dist/inference.js.map +1 -0
  83. package/dist/marketplace.d.ts +44 -0
  84. package/dist/marketplace.d.ts.map +1 -0
  85. package/dist/marketplace.js +74 -0
  86. package/dist/marketplace.js.map +1 -0
  87. package/dist/nanopayment.d.ts +53 -0
  88. package/dist/nanopayment.d.ts.map +1 -0
  89. package/dist/nanopayment.js +81 -0
  90. package/dist/nanopayment.js.map +1 -0
  91. package/dist/nft.d.ts +127 -0
  92. package/dist/nft.d.ts.map +1 -0
  93. package/dist/nft.js +99 -0
  94. package/dist/nft.js.map +1 -0
  95. package/dist/payment.d.ts +71 -0
  96. package/dist/payment.d.ts.map +1 -0
  97. package/dist/payment.js +105 -0
  98. package/dist/payment.js.map +1 -0
  99. package/dist/provider.d.ts +351 -0
  100. package/dist/provider.d.ts.map +1 -0
  101. package/dist/provider.js +368 -0
  102. package/dist/provider.js.map +1 -0
  103. package/dist/rpc.d.ts +35 -0
  104. package/dist/rpc.d.ts.map +1 -0
  105. package/dist/rpc.js +127 -0
  106. package/dist/rpc.js.map +1 -0
  107. package/dist/settlement.d.ts +52 -0
  108. package/dist/settlement.d.ts.map +1 -0
  109. package/dist/settlement.js +86 -0
  110. package/dist/settlement.js.map +1 -0
  111. package/dist/skill.d.ts +55 -0
  112. package/dist/skill.d.ts.map +1 -0
  113. package/dist/skill.js +79 -0
  114. package/dist/skill.js.map +1 -0
  115. package/dist/staking.d.ts +42 -0
  116. package/dist/staking.d.ts.map +1 -0
  117. package/dist/staking.js +62 -0
  118. package/dist/staking.js.map +1 -0
  119. package/dist/streaming.d.ts +83 -0
  120. package/dist/streaming.d.ts.map +1 -0
  121. package/dist/streaming.js +193 -0
  122. package/dist/streaming.js.map +1 -0
  123. package/dist/task.d.ts +46 -0
  124. package/dist/task.d.ts.map +1 -0
  125. package/dist/task.js +76 -0
  126. package/dist/task.js.map +1 -0
  127. package/dist/tee.d.ts +88 -0
  128. package/dist/tee.d.ts.map +1 -0
  129. package/dist/tee.js +62 -0
  130. package/dist/tee.js.map +1 -0
  131. package/dist/token.d.ts +165 -0
  132. package/dist/token.d.ts.map +1 -0
  133. package/dist/token.js +80 -0
  134. package/dist/token.js.map +1 -0
  135. package/dist/tool.d.ts +55 -0
  136. package/dist/tool.d.ts.map +1 -0
  137. package/dist/tool.js +79 -0
  138. package/dist/tool.js.map +1 -0
  139. package/dist/types.d.ts +1318 -0
  140. package/dist/types.d.ts.map +1 -0
  141. package/dist/types.js +117 -0
  142. package/dist/types.js.map +1 -0
  143. package/dist/wallet.d.ts +44 -0
  144. package/dist/wallet.d.ts.map +1 -0
  145. package/dist/wallet.js +75 -0
  146. package/dist/wallet.js.map +1 -0
  147. package/dist/zk.d.ts +66 -0
  148. package/dist/zk.d.ts.map +1 -0
  149. package/dist/zk.js +58 -0
  150. package/dist/zk.js.map +1 -0
  151. package/package.json +41 -0
@@ -0,0 +1,351 @@
1
+ import { RpcClient } from "./rpc";
2
+ import { ModelLoadInfo, ModelEndpoint } from "./types";
3
+ export interface ParticipateResponse {
4
+ did: string;
5
+ address: string;
6
+ hardware_profile: Record<string, unknown>;
7
+ }
8
+ export interface ProviderStats {
9
+ is_serving: boolean;
10
+ models_served: string[];
11
+ total_inferences: number;
12
+ }
13
+ export interface ChatMessage {
14
+ role: string;
15
+ content: string;
16
+ }
17
+ export interface ChatResponse {
18
+ response: string;
19
+ model_id: string;
20
+ tokens_used: number;
21
+ }
22
+ export interface DownloadProgress {
23
+ model_id: string;
24
+ status: string;
25
+ progress: number;
26
+ bytes_downloaded: number;
27
+ total_bytes: number;
28
+ }
29
+ export interface HardwareProfile {
30
+ cpu: string;
31
+ memory_gb: number;
32
+ gpu?: string;
33
+ tee_support: string[];
34
+ }
35
+ /**
36
+ * A provider discovered on the Tenzro Network via gossipsub announcements.
37
+ *
38
+ * Providers broadcast a `ProviderAnnouncement` every 60 seconds on the
39
+ * `tenzro/providers/1.0.0` gossipsub topic. All peers merge incoming
40
+ * announcements into their `network_providers` cache so any node can
41
+ * discover every provider without a central registry.
42
+ *
43
+ * Use {@link ProviderClient.listProviders} to discover providers via
44
+ * the `tenzro_listProviders` JSON-RPC method.
45
+ */
46
+ export interface NetworkProvider {
47
+ /** libp2p peer ID of the announcing node */
48
+ peer_id: string;
49
+ /** Wallet/account address of the provider */
50
+ provider_address: string;
51
+ /** Provider type (e.g. "llm", "tee", "general") */
52
+ provider_type: string;
53
+ /** Model IDs currently being served by this node */
54
+ served_models: string[];
55
+ /** Capability labels (e.g. "inference", "tee-attestation") */
56
+ capabilities: string[];
57
+ /** HTTP RPC endpoint for direct inference routing (e.g. "http://10.128.0.5:8545") */
58
+ rpc_endpoint: string;
59
+ /** Lifecycle status (e.g. "active", "draining") */
60
+ status: string;
61
+ /** Whether this is the local node */
62
+ is_local: boolean;
63
+ }
64
+ /**
65
+ * Client for provider operations including network participation,
66
+ * model serving, and hardware management.
67
+ */
68
+ export declare class ProviderClient {
69
+ private rpc;
70
+ constructor(rpc: RpcClient);
71
+ /**
72
+ * One-click network participation — provisions identity, wallet, and hardware profile
73
+ *
74
+ * @param password - Password to encrypt the wallet
75
+ * @returns Participation response with DID, address, and hardware profile
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const result = await client.provider.participate("my-secure-password");
80
+ * console.log("DID:", result.did);
81
+ * console.log("Address:", result.address);
82
+ * ```
83
+ */
84
+ participate(password: string): Promise<ParticipateResponse>;
85
+ /**
86
+ * Download a model from the registry
87
+ *
88
+ * @param modelId - ID of the model to download
89
+ * @returns Task ID for tracking download progress
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const taskId = await client.provider.downloadModel("gemma4-9b");
94
+ * console.log("Download started:", taskId);
95
+ * ```
96
+ */
97
+ downloadModel(modelId: string): Promise<string>;
98
+ /**
99
+ * Get download progress for a model
100
+ *
101
+ * @param modelId - ID of the model being downloaded
102
+ * @returns Download progress information
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const progress = await client.provider.getDownloadProgress("gemma4-9b");
107
+ * console.log(`Progress: ${(progress.progress * 100).toFixed(1)}%`);
108
+ * ```
109
+ */
110
+ getDownloadProgress(modelId: string): Promise<DownloadProgress>;
111
+ /**
112
+ * Start serving a model on the network
113
+ *
114
+ * @param modelId - ID of the model to serve
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * await client.provider.serveModel("gemma4-9b");
119
+ * console.log("Now serving model");
120
+ * ```
121
+ */
122
+ serveModel(modelId: string): Promise<void>;
123
+ /**
124
+ * Stop serving a model
125
+ *
126
+ * @param modelId - ID of the model to stop serving
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * await client.provider.stopModel("gemma4-9b");
131
+ * console.log("Stopped serving model");
132
+ * ```
133
+ */
134
+ stopModel(modelId: string): Promise<void>;
135
+ /**
136
+ * Delete a downloaded model
137
+ *
138
+ * @param modelId - ID of the model to delete
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * await client.provider.deleteModel("gemma4-9b");
143
+ * console.log("Model deleted");
144
+ * ```
145
+ */
146
+ deleteModel(modelId: string): Promise<void>;
147
+ /**
148
+ * Chat with a loaded model
149
+ *
150
+ * @param modelId - ID of the model to use
151
+ * @param messages - Array of chat messages
152
+ * @returns Chat completion response
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const messages = [
157
+ * { role: "user", content: "What is Tenzro Network?" }
158
+ * ];
159
+ * const response = await client.provider.chat("gemma4-9b", messages);
160
+ * console.log("Response:", response.response);
161
+ * ```
162
+ */
163
+ chat(modelId: string, messages: ChatMessage[]): Promise<ChatResponse>;
164
+ /**
165
+ * Get hardware profile of the node
166
+ *
167
+ * @returns Hardware profile with CPU, memory, GPU, and TEE support
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * const profile = await client.provider.getHardwareProfile();
172
+ * console.log("CPU:", profile.cpu);
173
+ * console.log("Memory:", profile.memory_gb, "GB");
174
+ * ```
175
+ */
176
+ getHardwareProfile(): Promise<HardwareProfile>;
177
+ /**
178
+ * Set node role (validator, provider, light_client)
179
+ *
180
+ * @param role - Node role to set
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * await client.provider.setRole("provider");
185
+ * console.log("Role updated");
186
+ * ```
187
+ */
188
+ setRole(role: string): Promise<void>;
189
+ /**
190
+ * Register as a provider on the network
191
+ *
192
+ * Model/inference providers do not need to stake TNZO — staking is only
193
+ * required for validators. The `stakeAmount` parameter defaults to 0.
194
+ *
195
+ * @param models - List of model IDs to serve
196
+ * @param stakeAmount - Amount of TNZO to stake (default: 0, not required for model providers)
197
+ * @returns Transaction hash of the registration
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * // Register as a model provider — no staking required
202
+ * const models = ["gemma3-270m"];
203
+ * const txHash = await client.provider.register(models);
204
+ * console.log("Registration tx:", txHash);
205
+ * ```
206
+ */
207
+ register(models: string[], stakeAmount?: number): Promise<string>;
208
+ /**
209
+ * Get provider statistics
210
+ *
211
+ * @returns Provider statistics with serving state and inference count
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * const stats = await client.provider.stats();
216
+ * console.log("Serving:", stats.is_serving);
217
+ * console.log("Total inferences:", stats.total_inferences);
218
+ * ```
219
+ */
220
+ stats(): Promise<ProviderStats>;
221
+ /**
222
+ * List all model service endpoints with load information
223
+ *
224
+ * @returns Array of model endpoints with load data
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * const endpoints = await client.provider.listModelEndpoints();
229
+ * for (const ep of endpoints) {
230
+ * console.log(`${ep.model_name}: ${ep.status} (${ep.location})`);
231
+ * if (ep.load) {
232
+ * console.log(` Load: ${ep.load.active_requests}/${ep.load.max_concurrent} (${ep.load.utilization_percent}%)`);
233
+ * }
234
+ * }
235
+ * ```
236
+ */
237
+ listModelEndpoints(): Promise<ModelEndpoint[]>;
238
+ /**
239
+ * Get load information for a specific model
240
+ *
241
+ * @param modelId - ID of the model to check
242
+ * @returns Load info if the model is being served, undefined otherwise
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * const load = await client.provider.getModelLoad("gemma3-270m");
247
+ * if (load) {
248
+ * console.log(`Load: ${load.active_requests}/${load.max_concurrent} (${load.utilization_percent}%)`);
249
+ * }
250
+ * ```
251
+ */
252
+ getModelLoad(modelId: string): Promise<ModelLoadInfo | undefined>;
253
+ /**
254
+ * List all providers discovered on the Tenzro Network.
255
+ *
256
+ * Queries the `tenzro_listProviders` JSON-RPC method which merges:
257
+ * - The local node's own provider info (if it is serving models)
258
+ * - All remote providers discovered via the `tenzro/providers/1.0.0`
259
+ * gossipsub topic (announcements refreshed every 60 seconds)
260
+ *
261
+ * @param providerType - Optional filter by provider type (e.g. "llm", "tee", "general")
262
+ * @returns Array of discovered network providers
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * // List all providers
267
+ * const providers = await client.provider.listProviders();
268
+ * for (const p of providers) {
269
+ * console.log(`${p.peer_id}: ${p.provider_type} — models: ${p.served_models.join(", ")}`);
270
+ * }
271
+ *
272
+ * // List only LLM providers
273
+ * const llmProviders = await client.provider.listProviders("llm");
274
+ * ```
275
+ */
276
+ listProviders(providerType?: string): Promise<NetworkProvider[]>;
277
+ /**
278
+ * Join the network as a micro node.
279
+ * @param displayName - Optional display name for the node
280
+ * @param participantType - Optional participant type
281
+ * @returns Micro node registration response
282
+ */
283
+ joinAsMicroNode(displayName?: string, participantType?: string): Promise<any>;
284
+ /**
285
+ * Set the provider availability schedule.
286
+ * @param schedule - Schedule configuration
287
+ * @returns Updated schedule
288
+ */
289
+ setProviderSchedule(schedule: any): Promise<any>;
290
+ /**
291
+ * Get the current provider schedule.
292
+ * @returns Provider schedule configuration
293
+ */
294
+ getProviderSchedule(): Promise<any>;
295
+ /**
296
+ * Set provider pricing configuration.
297
+ * @param pricing - Pricing configuration
298
+ * @returns Updated pricing
299
+ */
300
+ setProviderPricing(pricing: any): Promise<any>;
301
+ /**
302
+ * Get the current provider pricing.
303
+ * @returns Provider pricing configuration
304
+ */
305
+ getProviderPricing(): Promise<any>;
306
+ /**
307
+ * Get a specific model endpoint.
308
+ * @param instanceId - The model endpoint instance ID
309
+ * @returns Model endpoint details
310
+ */
311
+ getModelEndpoint(instanceId: string): Promise<any>;
312
+ /**
313
+ * Register a remote model endpoint.
314
+ * @param modelId - ID of the model
315
+ * @param apiEndpoint - API endpoint URL
316
+ * @param mcpEndpoint - Optional MCP endpoint URL
317
+ * @param modelName - Optional human-readable model name
318
+ * @param providerName - Optional provider name
319
+ * @returns Registration result
320
+ */
321
+ registerModelEndpoint(modelId: string, apiEndpoint: string, mcpEndpoint?: string, modelName?: string, providerName?: string): Promise<any>;
322
+ /**
323
+ * Unregister a model endpoint.
324
+ * @param instanceId - The model endpoint instance ID to remove
325
+ * @returns Unregistration result
326
+ */
327
+ unregisterModelEndpoint(instanceId: string): Promise<any>;
328
+ /**
329
+ * Add a resource to the node.
330
+ * @param resourceId - Resource identifier
331
+ * @param resourceType - Optional resource type
332
+ * @returns Resource registration result
333
+ */
334
+ addResource(resourceId: string, resourceType?: string): Promise<any>;
335
+ /**
336
+ * Send a signed transaction.
337
+ * @param from - Sender address
338
+ * @param to - Recipient address
339
+ * @param amount - Amount to send
340
+ * @param asset - Optional asset identifier
341
+ * @returns Transaction hash
342
+ */
343
+ sendTransaction(from: string, to: string, amount: string, asset?: string): Promise<string>;
344
+ /**
345
+ * Submit a block to the network.
346
+ * @param block - Block data to submit
347
+ * @returns Submission result
348
+ */
349
+ submitBlock(block: any): Promise<any>;
350
+ }
351
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}