@tangle-network/tcloud 0.1.4 → 0.2.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.
- package/README.md +69 -10
- package/dist/chunk-HL4CXKET.js +976 -0
- package/dist/{chunk-PILYAKCF.js → chunk-STNZT6YR.js} +4 -2
- package/dist/chunk-VD4RNZOC.js +263 -0
- package/dist/cli.cjs +616 -153
- package/dist/cli.js +3 -2
- package/dist/{shielded-BTi_OftW.d.cts → client-CcuHG7_w.d.cts} +275 -60
- package/dist/{shielded-BTi_OftW.d.ts → client-CcuHG7_w.d.ts} +275 -60
- package/dist/index.cjs +618 -153
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +8 -4
- package/dist/instance.cjs +1235 -0
- package/dist/instance.d.cts +110 -0
- package/dist/instance.d.ts +110 -0
- package/dist/instance.js +229 -0
- package/dist/shielded.cjs +616 -153
- package/dist/shielded.d.cts +61 -2
- package/dist/shielded.d.ts +61 -2
- package/dist/shielded.js +2 -1
- package/package.json +14 -2
- package/dist/chunk-KVXWEAK3.js +0 -771
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { Hex } from 'viem';
|
|
2
|
-
|
|
3
1
|
/** Core types for the tcloud SDK */
|
|
4
2
|
interface TCloudConfig {
|
|
5
3
|
/** API base URL (default: https://router.tangle.tools/v1) */
|
|
@@ -16,6 +14,22 @@ interface TCloudConfig {
|
|
|
16
14
|
privacy?: PrivacyConfig;
|
|
17
15
|
/** Spending limits and metering */
|
|
18
16
|
limits?: SpendingLimits;
|
|
17
|
+
/** Retry configuration for transient failures */
|
|
18
|
+
retry?: RetryConfig | false;
|
|
19
|
+
/** Default request timeout in ms (default: 60000). Set 0 to disable. */
|
|
20
|
+
timeout?: number;
|
|
21
|
+
}
|
|
22
|
+
interface RetryConfig {
|
|
23
|
+
/** Max retry attempts (default: 3) */
|
|
24
|
+
maxRetries?: number;
|
|
25
|
+
/** Initial backoff in ms (default: 500) */
|
|
26
|
+
initialBackoffMs?: number;
|
|
27
|
+
/** Max backoff in ms (default: 30000) */
|
|
28
|
+
maxBackoffMs?: number;
|
|
29
|
+
/** Backoff multiplier (default: 2) */
|
|
30
|
+
multiplier?: number;
|
|
31
|
+
/** HTTP status codes that trigger retry (default: [429, 500, 502, 503, 504]) */
|
|
32
|
+
retryableStatuses?: number[];
|
|
19
33
|
}
|
|
20
34
|
interface SpendingLimits {
|
|
21
35
|
/** Max USD to spend per request. Rejects if estimated cost exceeds this. */
|
|
@@ -183,6 +197,39 @@ interface VideoResponse {
|
|
|
183
197
|
url?: string;
|
|
184
198
|
error?: string;
|
|
185
199
|
}
|
|
200
|
+
/** Request body for POST /v1/avatar/generate */
|
|
201
|
+
interface AvatarGenerateRequest {
|
|
202
|
+
/** URL to narration audio (wav/mp3) */
|
|
203
|
+
audio_url: string;
|
|
204
|
+
/** URL to face image, OR omit and use avatar_id */
|
|
205
|
+
image_url?: string;
|
|
206
|
+
/** Preset avatar identifier (provider-specific) */
|
|
207
|
+
avatar_id?: string;
|
|
208
|
+
/** Target duration in seconds (capped by operator's max_duration_seconds) */
|
|
209
|
+
duration_seconds?: number;
|
|
210
|
+
/** Output format (default: "mp4") */
|
|
211
|
+
output_format?: string;
|
|
212
|
+
}
|
|
213
|
+
/** Response from POST /v1/avatar/generate (202 Accepted) */
|
|
214
|
+
interface AvatarGenerateResponse {
|
|
215
|
+
job_id: string;
|
|
216
|
+
status: 'queued' | 'processing' | 'completed' | 'failed';
|
|
217
|
+
result?: AvatarResult;
|
|
218
|
+
error?: string;
|
|
219
|
+
}
|
|
220
|
+
/** Result payload within a completed avatar job */
|
|
221
|
+
interface AvatarResult {
|
|
222
|
+
video_url: string;
|
|
223
|
+
duration_seconds: number;
|
|
224
|
+
format: string;
|
|
225
|
+
}
|
|
226
|
+
/** Response from GET /v1/avatar/jobs/:id */
|
|
227
|
+
interface AvatarJobStatus {
|
|
228
|
+
job_id: string;
|
|
229
|
+
status: 'queued' | 'processing' | 'completed' | 'failed';
|
|
230
|
+
result?: AvatarResult;
|
|
231
|
+
error?: string;
|
|
232
|
+
}
|
|
186
233
|
interface PrivacyConfig {
|
|
187
234
|
/** 'direct' — no proxy (default). 'relayer' — route through tcloud-relayer. 'socks5' — route through SOCKS5 proxy (e.g. Tor). */
|
|
188
235
|
mode: 'direct' | 'relayer' | 'socks5';
|
|
@@ -238,6 +285,19 @@ interface ChatOptions {
|
|
|
238
285
|
};
|
|
239
286
|
/** Tools / function calling */
|
|
240
287
|
tools?: any[];
|
|
288
|
+
/** Tool choice strategy or specific tool */
|
|
289
|
+
toolChoice?: 'none' | 'auto' | 'required' | {
|
|
290
|
+
type: 'function';
|
|
291
|
+
function: {
|
|
292
|
+
name: string;
|
|
293
|
+
};
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* Provider-specific parameters passed through to the upstream API.
|
|
297
|
+
* These are spread into the request body alongside standard fields.
|
|
298
|
+
* Example: `{ thinking: { type: 'enabled', budget_tokens: 8000 } }`
|
|
299
|
+
*/
|
|
300
|
+
providerOptions?: Record<string, unknown>;
|
|
241
301
|
}
|
|
242
302
|
interface ChatCompletion {
|
|
243
303
|
id: string;
|
|
@@ -294,6 +354,16 @@ interface Operator {
|
|
|
294
354
|
avgLatencyMs: number;
|
|
295
355
|
totalRequests: number;
|
|
296
356
|
stakeTnt: number;
|
|
357
|
+
/** GPU model name (e.g. "A100", "H100") */
|
|
358
|
+
gpuModel?: string;
|
|
359
|
+
/** Number of GPUs available */
|
|
360
|
+
gpuCount?: number;
|
|
361
|
+
/** Total VRAM across all GPUs in MiB */
|
|
362
|
+
totalVramMib?: number;
|
|
363
|
+
/** Whether this operator is TEE-attested */
|
|
364
|
+
teeAttested?: boolean;
|
|
365
|
+
/** TEE provider if attested (e.g. "aws_nitro") */
|
|
366
|
+
teeProvider?: string;
|
|
297
367
|
models: {
|
|
298
368
|
modelId: string;
|
|
299
369
|
inputPrice: number;
|
|
@@ -310,6 +380,27 @@ interface CreditBalance {
|
|
|
310
380
|
createdAt: string;
|
|
311
381
|
}[];
|
|
312
382
|
}
|
|
383
|
+
/** Status event from an async job SSE stream */
|
|
384
|
+
interface JobEvent {
|
|
385
|
+
status: 'queued' | 'processing' | 'completed' | 'failed' | 'cancelled';
|
|
386
|
+
progress?: number;
|
|
387
|
+
result?: Record<string, unknown>;
|
|
388
|
+
error?: string;
|
|
389
|
+
timestamp: number;
|
|
390
|
+
}
|
|
391
|
+
/** Options for watchJob() */
|
|
392
|
+
interface WatchJobOptions {
|
|
393
|
+
/** Operator endpoint URL (if not using default routing) */
|
|
394
|
+
operatorUrl?: string;
|
|
395
|
+
/** Callback for each event (useful for progress tracking) */
|
|
396
|
+
onEvent?: (event: JobEvent) => void;
|
|
397
|
+
/** Timeout in ms (default: 5 minutes) */
|
|
398
|
+
timeout?: number;
|
|
399
|
+
/** Model to route to (for operator discovery) */
|
|
400
|
+
model?: string;
|
|
401
|
+
/** SSE bearer token (replaces API key for operator SSE auth) */
|
|
402
|
+
sseToken?: string;
|
|
403
|
+
}
|
|
313
404
|
interface SpendAuth {
|
|
314
405
|
commitment: string;
|
|
315
406
|
serviceId: string;
|
|
@@ -321,6 +412,69 @@ interface SpendAuth {
|
|
|
321
412
|
signature: string;
|
|
322
413
|
}
|
|
323
414
|
|
|
415
|
+
/**
|
|
416
|
+
* Private Router — operator rotation strategies for privacy-preserving inference.
|
|
417
|
+
*
|
|
418
|
+
* Each strategy determines how requests are distributed across operators
|
|
419
|
+
* to minimize the information any single operator can gather about a user's
|
|
420
|
+
* conversation patterns.
|
|
421
|
+
*/
|
|
422
|
+
interface OperatorInfo {
|
|
423
|
+
slug: string;
|
|
424
|
+
endpointUrl: string;
|
|
425
|
+
region: string;
|
|
426
|
+
reputationScore: number;
|
|
427
|
+
avgLatencyMs: number;
|
|
428
|
+
models: string[];
|
|
429
|
+
}
|
|
430
|
+
type RoutingStrategy = 'round-robin' | 'random' | 'geo-distributed' | 'min-exposure' | 'latency-aware';
|
|
431
|
+
interface PrivateRouterConfig {
|
|
432
|
+
strategy: RoutingStrategy;
|
|
433
|
+
/** Max requests to same operator before forced rotation */
|
|
434
|
+
maxRequestsPerOperator: number;
|
|
435
|
+
/** Minimum number of distinct operators to use */
|
|
436
|
+
minOperators: number;
|
|
437
|
+
/** Region preferences (operators in these regions preferred) */
|
|
438
|
+
preferRegions?: string[];
|
|
439
|
+
/** Exclude specific operators */
|
|
440
|
+
excludeOperators?: string[];
|
|
441
|
+
/** Enable context summarization between operator switches (reduces info leakage) */
|
|
442
|
+
summarizeOnSwitch: boolean;
|
|
443
|
+
}
|
|
444
|
+
declare class PrivateRouter {
|
|
445
|
+
private config;
|
|
446
|
+
private operators;
|
|
447
|
+
private usage;
|
|
448
|
+
private currentIndex;
|
|
449
|
+
private totalRequests;
|
|
450
|
+
constructor(config?: Partial<PrivateRouterConfig>);
|
|
451
|
+
/** Set the available operator pool */
|
|
452
|
+
setOperators(operators: OperatorInfo[]): void;
|
|
453
|
+
/** Select the next operator for a request */
|
|
454
|
+
selectOperator(model: string): OperatorInfo | null;
|
|
455
|
+
/** Should we summarize context before this request? (operator is changing) */
|
|
456
|
+
shouldSummarize(model: string): boolean;
|
|
457
|
+
/** Get privacy stats */
|
|
458
|
+
getStats(): {
|
|
459
|
+
totalRequests: number;
|
|
460
|
+
operatorsUsed: number;
|
|
461
|
+
operatorBreakdown: {
|
|
462
|
+
slug: string;
|
|
463
|
+
requests: number;
|
|
464
|
+
lastUsed: number;
|
|
465
|
+
}[];
|
|
466
|
+
strategy: RoutingStrategy;
|
|
467
|
+
};
|
|
468
|
+
private roundRobin;
|
|
469
|
+
private random;
|
|
470
|
+
private geoDistributed;
|
|
471
|
+
private minExposure;
|
|
472
|
+
private latencyAware;
|
|
473
|
+
private recordUsage;
|
|
474
|
+
private getLastUsedOperator;
|
|
475
|
+
private peekNextOperator;
|
|
476
|
+
}
|
|
477
|
+
|
|
324
478
|
/**
|
|
325
479
|
* Core HTTP client for Tangle AI Cloud.
|
|
326
480
|
* Shared between CLI and SDK.
|
|
@@ -334,8 +488,14 @@ declare class TCloudClient {
|
|
|
334
488
|
private spendAuthFn?;
|
|
335
489
|
private privacy?;
|
|
336
490
|
private limits?;
|
|
491
|
+
private retryConfig;
|
|
492
|
+
private timeoutMs;
|
|
337
493
|
private _totalSpent;
|
|
338
494
|
private _requestCount;
|
|
495
|
+
readonly privateRouter?: PrivateRouter;
|
|
496
|
+
private _cachedOperators;
|
|
497
|
+
private _operatorsCachedAt;
|
|
498
|
+
private static readonly OPERATORS_TTL_MS;
|
|
339
499
|
constructor(config?: TCloudConfig);
|
|
340
500
|
/** Set the SpendAuth signer for private mode */
|
|
341
501
|
setSpendAuthSigner(fn: () => Promise<SpendAuth>): void;
|
|
@@ -361,8 +521,36 @@ declare class TCloudClient {
|
|
|
361
521
|
};
|
|
362
522
|
/** Check spending limits before a request. Throws TCloudError if blocked. */
|
|
363
523
|
private checkLimits;
|
|
524
|
+
/** Ensure the private router has operators loaded (with TTL-based caching) */
|
|
525
|
+
private ensureRouterOperators;
|
|
364
526
|
/** Track cost after a response, using actual pricing from response headers when available */
|
|
365
527
|
private trackCost;
|
|
528
|
+
/**
|
|
529
|
+
* Core fetch with retry + timeout. All helpers build on this.
|
|
530
|
+
* Retries on retryable status codes with exponential backoff + jitter.
|
|
531
|
+
*/
|
|
532
|
+
private _doFetch;
|
|
533
|
+
/**
|
|
534
|
+
* Shared request helper for billable JSON API calls.
|
|
535
|
+
* Enforces: checkLimits → fetch with retry/timeout → error parsing → requestCount.
|
|
536
|
+
*/
|
|
537
|
+
private _request;
|
|
538
|
+
/**
|
|
539
|
+
* Shared request helper for read-only/non-billable JSON API calls.
|
|
540
|
+
* No limits check, no request counting.
|
|
541
|
+
*/
|
|
542
|
+
private _fetch;
|
|
543
|
+
/**
|
|
544
|
+
* Shared request helper for billable calls that return non-JSON (e.g. ArrayBuffer).
|
|
545
|
+
*/
|
|
546
|
+
private _requestRaw;
|
|
547
|
+
/**
|
|
548
|
+
* Prepare headers for chat requests — operator routing + SpendAuth.
|
|
549
|
+
* Shared between chat() and chatStream() to eliminate duplication.
|
|
550
|
+
*/
|
|
551
|
+
private _prepareChatRequest;
|
|
552
|
+
/** Build the chat completions request body */
|
|
553
|
+
private _chatBody;
|
|
366
554
|
/** Chat completion (non-streaming) */
|
|
367
555
|
chat(options: ChatOptions): Promise<ChatCompletion>;
|
|
368
556
|
/** Chat completion (streaming) — returns an async iterator of chunks */
|
|
@@ -435,6 +623,53 @@ declare class TCloudClient {
|
|
|
435
623
|
videoGenerate(options: VideoGenerateOptions): Promise<VideoResponse>;
|
|
436
624
|
/** Get video generation status */
|
|
437
625
|
videoStatus(id: string): Promise<VideoResponse>;
|
|
626
|
+
/** Generate an avatar video (lip-synced talking head from audio + face image).
|
|
627
|
+
* Returns 202 with a job_id for async polling via avatarJobStatus(). */
|
|
628
|
+
avatarGenerate(options: AvatarGenerateRequest): Promise<AvatarGenerateResponse>;
|
|
629
|
+
/** Poll an avatar generation job by ID. */
|
|
630
|
+
avatarJobStatus(jobId: string): Promise<AvatarJobStatus>;
|
|
631
|
+
/** Poll an avatar job until it reaches a terminal state (completed/failed).
|
|
632
|
+
* Returns the final job status. Throws on failure. */
|
|
633
|
+
pollAvatarJob(jobId: string, options?: {
|
|
634
|
+
intervalMs?: number;
|
|
635
|
+
timeoutMs?: number;
|
|
636
|
+
}): Promise<AvatarJobStatus>;
|
|
637
|
+
/**
|
|
638
|
+
* Watch an async job via SSE until it reaches a terminal state.
|
|
639
|
+
* Works with avatar, video, and training blueprint operators.
|
|
640
|
+
*
|
|
641
|
+
* @param jobId - The job ID returned by the creation endpoint
|
|
642
|
+
* @param options - Optional: operatorUrl override, onEvent callback
|
|
643
|
+
* @returns The final JobEvent (completed/failed/cancelled)
|
|
644
|
+
*/
|
|
645
|
+
watchJob(jobId: string, options?: WatchJobOptions): Promise<JobEvent>;
|
|
646
|
+
/** Create a vector collection on the operator's vector store */
|
|
647
|
+
createCollection(options: {
|
|
648
|
+
name: string;
|
|
649
|
+
dimensions: number;
|
|
650
|
+
distance_metric?: string;
|
|
651
|
+
}): Promise<any>;
|
|
652
|
+
/** List collections on the operator's vector store */
|
|
653
|
+
listCollections(): Promise<any>;
|
|
654
|
+
/** Upsert vectors into a collection */
|
|
655
|
+
upsertVectors(collection: string, vectors: Array<{
|
|
656
|
+
id: string;
|
|
657
|
+
vector: number[];
|
|
658
|
+
metadata?: Record<string, any>;
|
|
659
|
+
}>): Promise<any>;
|
|
660
|
+
/** Similarity search in a collection */
|
|
661
|
+
queryVectors(collection: string, options: {
|
|
662
|
+
vector: number[];
|
|
663
|
+
top_k?: number;
|
|
664
|
+
filter?: Record<string, any>;
|
|
665
|
+
}): Promise<any>;
|
|
666
|
+
/** RAG query — embed text + search collection in one call */
|
|
667
|
+
ragQuery(options: {
|
|
668
|
+
query: string;
|
|
669
|
+
collection: string;
|
|
670
|
+
top_k?: number;
|
|
671
|
+
embedding_model?: string;
|
|
672
|
+
}): Promise<any>;
|
|
438
673
|
/** Search models by name, provider, or capability */
|
|
439
674
|
searchModels(query: string): Promise<Model[]>;
|
|
440
675
|
/** Estimate cost for a request (without sending it) */
|
|
@@ -447,67 +682,47 @@ declare class TCloudClient {
|
|
|
447
682
|
outputCost: number;
|
|
448
683
|
total: number;
|
|
449
684
|
}>;
|
|
685
|
+
/**
|
|
686
|
+
* Get a pricing spectrum across resource tiers for a model.
|
|
687
|
+
*
|
|
688
|
+
* Uses REAL per-operator pricing from `operator.models[].inputPrice`.
|
|
689
|
+
* Each tier filters operators by GPU count and TEE capability, then
|
|
690
|
+
* reports the cheapest and most expensive operator for that config.
|
|
691
|
+
*
|
|
692
|
+
* @param options.model - Model ID to price (falls back to client default)
|
|
693
|
+
* @param options.tiers - Number of tiers (1-7, default 5)
|
|
694
|
+
*/
|
|
695
|
+
pricingSpectrum(options: {
|
|
696
|
+
model?: string;
|
|
697
|
+
tiers?: number;
|
|
698
|
+
}): Promise<PricingTier[]>;
|
|
699
|
+
}
|
|
700
|
+
interface TierConfig {
|
|
701
|
+
name: string;
|
|
702
|
+
cpu: number;
|
|
703
|
+
ramGb: number;
|
|
704
|
+
gpu: number;
|
|
705
|
+
tee: boolean;
|
|
706
|
+
}
|
|
707
|
+
interface PricingTier {
|
|
708
|
+
tier: string;
|
|
709
|
+
config: TierConfig;
|
|
710
|
+
/** Raw cheapest per-input-token price (for programmatic use) */
|
|
711
|
+
cheapestPrice?: number;
|
|
712
|
+
/** Raw priciest per-input-token price (undefined if same as cheapest) */
|
|
713
|
+
priciestPrice?: number;
|
|
714
|
+
/** Formatted cheapest price */
|
|
715
|
+
cheapest: string;
|
|
716
|
+
/** Formatted priciest price (undefined if only one price point) */
|
|
717
|
+
priciest?: string;
|
|
718
|
+
/** Operators matching GPU/TEE requirements */
|
|
719
|
+
availableOperators: number;
|
|
720
|
+
/** Operators that also serve the requested model at a listed price */
|
|
721
|
+
operatorsWithModel: number;
|
|
450
722
|
}
|
|
451
723
|
declare class TCloudError extends Error {
|
|
452
724
|
status: number;
|
|
453
725
|
constructor(status: number, message: string);
|
|
454
726
|
}
|
|
455
727
|
|
|
456
|
-
|
|
457
|
-
* tcloud/shielded — Ephemeral wallet generation, SpendAuth signing, private inference.
|
|
458
|
-
*
|
|
459
|
-
* import { TCloud } from 'tcloud'
|
|
460
|
-
* const client = TCloud.shielded() // anonymous, no API key
|
|
461
|
-
*/
|
|
462
|
-
|
|
463
|
-
interface ShieldedWallet {
|
|
464
|
-
/** Ephemeral spending private key (hex) */
|
|
465
|
-
privateKey: Hex;
|
|
466
|
-
/** Derived address */
|
|
467
|
-
address: string;
|
|
468
|
-
/** Credit account commitment */
|
|
469
|
-
commitment: Hex;
|
|
470
|
-
/** Random salt */
|
|
471
|
-
salt: Hex;
|
|
472
|
-
}
|
|
473
|
-
/** Generate a new ephemeral shielded wallet */
|
|
474
|
-
declare function generateWallet(): ShieldedWallet;
|
|
475
|
-
/** Sign a SpendAuth for a request */
|
|
476
|
-
declare function signSpendAuth(wallet: ShieldedWallet, params: {
|
|
477
|
-
serviceId: bigint;
|
|
478
|
-
jobIndex: number;
|
|
479
|
-
amount: bigint;
|
|
480
|
-
operator: Hex;
|
|
481
|
-
nonce: bigint;
|
|
482
|
-
expiry: bigint;
|
|
483
|
-
chainId: number;
|
|
484
|
-
creditsAddress: Hex;
|
|
485
|
-
}): Promise<SpendAuth>;
|
|
486
|
-
/** Estimate cost in tsUSD base units (6 decimals) */
|
|
487
|
-
declare function estimateCost(inputTokens: number, maxOutputTokens: number, inputPricePerM?: number, outputPricePerM?: number): bigint;
|
|
488
|
-
interface AutoReplenishOptions {
|
|
489
|
-
minBalance: bigint;
|
|
490
|
-
replenishAmount: bigint;
|
|
491
|
-
checkIntervalMs?: number;
|
|
492
|
-
fundingSource: 'relayer' | 'direct';
|
|
493
|
-
relayerUrl?: string;
|
|
494
|
-
fundingWalletKey?: Hex;
|
|
495
|
-
tokenAddress?: Hex;
|
|
496
|
-
}
|
|
497
|
-
/**
|
|
498
|
-
* Create a shielded TCloudClient that signs SpendAuth automatically.
|
|
499
|
-
* Every request is anonymous — no API key, no identity.
|
|
500
|
-
*/
|
|
501
|
-
declare function createShieldedClient(config?: TCloudConfig & {
|
|
502
|
-
wallet?: ShieldedWallet;
|
|
503
|
-
operatorAddress?: Hex;
|
|
504
|
-
chainId?: number;
|
|
505
|
-
creditsAddress?: Hex;
|
|
506
|
-
serviceId?: bigint;
|
|
507
|
-
autoReplenish?: AutoReplenishOptions;
|
|
508
|
-
}): TCloudClient & {
|
|
509
|
-
wallet: ShieldedWallet;
|
|
510
|
-
stopAutoReplenish: () => void;
|
|
511
|
-
};
|
|
512
|
-
|
|
513
|
-
export { type AutoReplenishOptions as A, type BatchJobResponse as B, type ChatCompletion as C, type EmbeddingOptions as E, type FineTuningJob as F, type ImageGenerateOptions as I, type Model as M, type Operator as O, type PrivacyConfig as P, type RerankOptions as R, type ShieldedWallet as S, TCloudClient as T, type VideoGenerateOptions as V, type TCloudConfig as a, type BatchRequest as b, type ChatCompletionChunk as c, type ChatMessage as d, type ChatOptions as e, type CompletionOptions as f, generateWallet as g, type CompletionResponse as h, type CreditBalance as i, type EmbeddingResponse as j, type FineTuningJobOptions as k, type ImageResponse as l, type RerankResponse as m, type RoutingConfig as n, type ShieldedConfig as o, type SpendAuth as p, type SpendingLimits as q, TCloudError as r, type TranscriptionResponse as s, type VideoResponse as t, createShieldedClient as u, estimateCost as v, signSpendAuth as w };
|
|
728
|
+
export { type AvatarGenerateRequest as A, type BatchJobResponse as B, type ChatCompletion as C, type TranscriptionResponse as D, type EmbeddingOptions as E, type FineTuningJob as F, type VideoResponse as G, type ImageGenerateOptions as I, type JobEvent as J, type Model as M, type Operator as O, type PricingTier as P, type RerankOptions as R, type ShieldedConfig as S, TCloudClient as T, type VideoGenerateOptions as V, type WatchJobOptions as W, type TCloudConfig as a, type AvatarGenerateResponse as b, type AvatarJobStatus as c, type AvatarResult as d, type BatchRequest as e, type ChatCompletionChunk as f, type ChatMessage as g, type ChatOptions as h, type CompletionOptions as i, type CompletionResponse as j, type CreditBalance as k, type EmbeddingResponse as l, type FineTuningJobOptions as m, type ImageResponse as n, type OperatorInfo as o, type PrivacyConfig as p, PrivateRouter as q, type PrivateRouterConfig as r, type RerankResponse as s, type RetryConfig as t, type RoutingConfig as u, type RoutingStrategy as v, type SpendAuth as w, type SpendingLimits as x, TCloudError as y, type TierConfig as z };
|