@varity-labs/sdk 2.0.0-alpha.1
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/LICENSE +31 -0
- package/README.md +253 -0
- package/dist/analytics/index.d.ts +7 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +6 -0
- package/dist/analytics/tracker.d.ts +128 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +203 -0
- package/dist/blockchain/BlockchainService.d.ts +100 -0
- package/dist/blockchain/BlockchainService.d.ts.map +1 -0
- package/dist/blockchain/BlockchainService.js +188 -0
- package/dist/blockchain/NFTLicensingService.d.ts +69 -0
- package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
- package/dist/blockchain/NFTLicensingService.js +136 -0
- package/dist/blockchain/RevenueSplitService.d.ts +71 -0
- package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
- package/dist/blockchain/RevenueSplitService.js +111 -0
- package/dist/blockchain/index.d.ts +48 -0
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +46 -0
- package/dist/blockchain/types.d.ts +63 -0
- package/dist/blockchain/types.d.ts.map +1 -0
- package/dist/blockchain/types.js +6 -0
- package/dist/chains/arbitrum.d.ts +89 -0
- package/dist/chains/arbitrum.d.ts.map +1 -0
- package/dist/chains/arbitrum.js +134 -0
- package/dist/chains/base.d.ts +84 -0
- package/dist/chains/base.d.ts.map +1 -0
- package/dist/chains/base.js +131 -0
- package/dist/chains/index.d.ts +36 -0
- package/dist/chains/index.d.ts.map +1 -0
- package/dist/chains/index.js +32 -0
- package/dist/chains/registry.d.ts +113 -0
- package/dist/chains/registry.d.ts.map +1 -0
- package/dist/chains/registry.js +201 -0
- package/dist/chains/varityL3.d.ts +81 -0
- package/dist/chains/varityL3.d.ts.map +1 -0
- package/dist/chains/varityL3.js +125 -0
- package/dist/cli/commands/clone.d.ts +8 -0
- package/dist/cli/commands/clone.d.ts.map +1 -0
- package/dist/cli/commands/clone.js +391 -0
- package/dist/cli/commands/dev.d.ts +8 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +40 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +303 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +317 -0
- package/dist/cli/commands/validate.d.ts +8 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +69 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/utils/logger.d.ts +17 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +35 -0
- package/dist/cli/utils/prompts.d.ts +21 -0
- package/dist/cli/utils/prompts.d.ts.map +1 -0
- package/dist/cli/utils/prompts.js +103 -0
- package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
- package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
- package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
- package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
- package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
- package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
- package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
- package/dist/contracts/addresses.d.ts +88 -0
- package/dist/contracts/addresses.d.ts.map +1 -0
- package/dist/contracts/addresses.js +94 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/core/VaritySDK.d.ts +177 -0
- package/dist/core/VaritySDK.d.ts.map +1 -0
- package/dist/core/VaritySDK.js +325 -0
- package/dist/core/config.d.ts +120 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +187 -0
- package/dist/core/credentials-proxy.d.ts +157 -0
- package/dist/core/credentials-proxy.d.ts.map +1 -0
- package/dist/core/credentials-proxy.js +345 -0
- package/dist/core/credentials.d.ts +219 -0
- package/dist/core/credentials.d.ts.map +1 -0
- package/dist/core/credentials.js +345 -0
- package/dist/core/template-loader.d.ts +15 -0
- package/dist/core/template-loader.d.ts.map +1 -0
- package/dist/core/template-loader.js +380 -0
- package/dist/core/template.d.ts +321 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/template.js +189 -0
- package/dist/core/types.d.ts +572 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +52 -0
- package/dist/dev/dev-server.d.ts +16 -0
- package/dist/dev/dev-server.d.ts.map +1 -0
- package/dist/dev/dev-server.js +119 -0
- package/dist/generators/contracts/generator.d.ts +21 -0
- package/dist/generators/contracts/generator.d.ts.map +1 -0
- package/dist/generators/contracts/generator.js +252 -0
- package/dist/generators/tests/generator.d.ts +20 -0
- package/dist/generators/tests/generator.d.ts.map +1 -0
- package/dist/generators/tests/generator.js +375 -0
- package/dist/generators/types/generator.d.ts +19 -0
- package/dist/generators/types/generator.d.ts.map +1 -0
- package/dist/generators/types/generator.js +165 -0
- package/dist/generators/ui/component-generator.d.ts +20 -0
- package/dist/generators/ui/component-generator.d.ts.map +1 -0
- package/dist/generators/ui/component-generator.js +749 -0
- package/dist/generators/ui/dashboard-generator.d.ts +20 -0
- package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
- package/dist/generators/ui/dashboard-generator.js +349 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsModule.js +274 -0
- package/dist/modules/analytics/index.d.ts +3 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +1 -0
- package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
- package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
- package/dist/modules/auth/AccessKeyModule.js +322 -0
- package/dist/modules/auth/AuthModule.d.ts +133 -0
- package/dist/modules/auth/AuthModule.d.ts.map +1 -0
- package/dist/modules/auth/AuthModule.js +214 -0
- package/dist/modules/auth/index.d.ts +8 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +6 -0
- package/dist/modules/cache/CacheModule.d.ts +279 -0
- package/dist/modules/cache/CacheModule.d.ts.map +1 -0
- package/dist/modules/cache/CacheModule.js +493 -0
- package/dist/modules/cache/index.d.ts +3 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +1 -0
- package/dist/modules/compute/ComputeModule.d.ts +226 -0
- package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
- package/dist/modules/compute/ComputeModule.js +379 -0
- package/dist/modules/compute/index.d.ts +6 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +4 -0
- package/dist/modules/contracts/ContractsModule.d.ts +164 -0
- package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
- package/dist/modules/contracts/ContractsModule.js +242 -0
- package/dist/modules/contracts/index.d.ts +6 -0
- package/dist/modules/contracts/index.d.ts.map +1 -0
- package/dist/modules/contracts/index.js +4 -0
- package/dist/modules/export/ExportModule.d.ts +346 -0
- package/dist/modules/export/ExportModule.d.ts.map +1 -0
- package/dist/modules/export/ExportModule.js +432 -0
- package/dist/modules/export/index.d.ts +3 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +1 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingModule.js +310 -0
- package/dist/modules/forecasting/index.d.ts +3 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +1 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringModule.js +483 -0
- package/dist/modules/monitoring/index.d.ts +3 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +1 -0
- package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
- package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsModule.js +418 -0
- package/dist/modules/notifications/index.d.ts +3 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +1 -0
- package/dist/modules/oracle/OracleModule.d.ts +110 -0
- package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
- package/dist/modules/oracle/OracleModule.js +151 -0
- package/dist/modules/oracle/index.d.ts +6 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +4 -0
- package/dist/modules/storage/S3Module.d.ts +377 -0
- package/dist/modules/storage/S3Module.d.ts.map +1 -0
- package/dist/modules/storage/S3Module.js +680 -0
- package/dist/modules/storage/StorageModule.d.ts +157 -0
- package/dist/modules/storage/StorageModule.d.ts.map +1 -0
- package/dist/modules/storage/StorageModule.js +302 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
- package/dist/modules/storage/adapters/index.d.ts +12 -0
- package/dist/modules/storage/adapters/index.d.ts.map +1 -0
- package/dist/modules/storage/adapters/index.js +12 -0
- package/dist/modules/storage/index.d.ts +16 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +15 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
- package/dist/modules/storage/tiering/MetadataStore.js +535 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
- package/dist/modules/storage/tiering/TieringEngine.js +419 -0
- package/dist/modules/storage/tiering/example.d.ts +8 -0
- package/dist/modules/storage/tiering/example.d.ts.map +1 -0
- package/dist/modules/storage/tiering/example.js +250 -0
- package/dist/modules/storage/tiering/index.d.ts +17 -0
- package/dist/modules/storage/tiering/index.d.ts.map +1 -0
- package/dist/modules/storage/tiering/index.js +13 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksModule.js +359 -0
- package/dist/modules/webhooks/index.d.ts +3 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +1 -0
- package/dist/modules/zk/ZKModule.d.ts +153 -0
- package/dist/modules/zk/ZKModule.d.ts.map +1 -0
- package/dist/modules/zk/ZKModule.js +262 -0
- package/dist/modules/zk/index.d.ts +7 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +4 -0
- package/dist/thirdweb/BridgeClient.d.ts +228 -0
- package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
- package/dist/thirdweb/BridgeClient.js +160 -0
- package/dist/thirdweb/EngineClient.d.ts +396 -0
- package/dist/thirdweb/EngineClient.d.ts.map +1 -0
- package/dist/thirdweb/EngineClient.js +386 -0
- package/dist/thirdweb/GatewayClient.d.ts +190 -0
- package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
- package/dist/thirdweb/GatewayClient.js +257 -0
- package/dist/thirdweb/NebulaClient.d.ts +292 -0
- package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
- package/dist/thirdweb/NebulaClient.js +180 -0
- package/dist/thirdweb/StorageClient.d.ts +445 -0
- package/dist/thirdweb/StorageClient.d.ts.map +1 -0
- package/dist/thirdweb/StorageClient.js +405 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
- package/dist/thirdweb/ThirdwebWrapper.js +332 -0
- package/dist/thirdweb/index.d.ts +21 -0
- package/dist/thirdweb/index.d.ts.map +1 -0
- package/dist/thirdweb/index.js +28 -0
- package/dist/thirdweb/varity-chain.d.ts +48 -0
- package/dist/thirdweb/varity-chain.d.ts.map +1 -0
- package/dist/thirdweb/varity-chain.js +64 -0
- package/dist/thirdweb/x402Client.d.ts +319 -0
- package/dist/thirdweb/x402Client.d.ts.map +1 -0
- package/dist/thirdweb/x402Client.js +223 -0
- package/dist/tracking/gasTracker.d.ts +158 -0
- package/dist/tracking/gasTracker.d.ts.map +1 -0
- package/dist/tracking/gasTracker.js +227 -0
- package/dist/tracking/index.d.ts +10 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +8 -0
- package/dist/tracking/types.d.ts +327 -0
- package/dist/tracking/types.d.ts.map +1 -0
- package/dist/tracking/types.js +8 -0
- package/dist/ui/components/ChartWidget.d.ts +36 -0
- package/dist/ui/components/ChartWidget.d.ts.map +1 -0
- package/dist/ui/components/ChartWidget.js +82 -0
- package/dist/ui/components/DashboardLayout.d.ts +41 -0
- package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
- package/dist/ui/components/DashboardLayout.js +102 -0
- package/dist/ui/components/DataTable.d.ts +49 -0
- package/dist/ui/components/DataTable.d.ts.map +1 -0
- package/dist/ui/components/DataTable.js +96 -0
- package/dist/ui/components/EntityForm.d.ts +60 -0
- package/dist/ui/components/EntityForm.d.ts.map +1 -0
- package/dist/ui/components/EntityForm.js +182 -0
- package/dist/ui/components/KPICard.d.ts +29 -0
- package/dist/ui/components/KPICard.d.ts.map +1 -0
- package/dist/ui/components/KPICard.js +61 -0
- package/dist/ui/components/Modal.d.ts +34 -0
- package/dist/ui/components/Modal.d.ts.map +1 -0
- package/dist/ui/components/Modal.js +30 -0
- package/dist/ui/components/index.d.ts +18 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +11 -0
- package/dist/validation/template-validator.d.ts +25 -0
- package/dist/validation/template-validator.d.ts.map +1 -0
- package/dist/validation/template-validator.js +305 -0
- package/package.json +102 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Varity SDK - Compute Module
|
|
3
|
+
*
|
|
4
|
+
* Universal AI/LLM computation on Akash Network.
|
|
5
|
+
* Works across all templates (ISO, Healthcare, Retail, etc.)
|
|
6
|
+
*/
|
|
7
|
+
import type { VaritySDK } from '../../core/VaritySDK';
|
|
8
|
+
import type { AIResponse, AIResponseWithSources, TEEResponse, TEEAttestation, TEEQueryOptions, TEEProvider } from '../../core/types';
|
|
9
|
+
export type JobId = string;
|
|
10
|
+
export interface ComputeParams {
|
|
11
|
+
modelId?: string;
|
|
12
|
+
input: any;
|
|
13
|
+
options?: {
|
|
14
|
+
temperature?: number;
|
|
15
|
+
maxTokens?: number;
|
|
16
|
+
timeout?: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface ComputeStatus {
|
|
20
|
+
jobId: string;
|
|
21
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
22
|
+
progress?: number;
|
|
23
|
+
startedAt?: number;
|
|
24
|
+
completedAt?: number;
|
|
25
|
+
error?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ComputeResult {
|
|
28
|
+
jobId: string;
|
|
29
|
+
output: any;
|
|
30
|
+
metadata: {
|
|
31
|
+
modelUsed: string;
|
|
32
|
+
tokensUsed?: number;
|
|
33
|
+
processingTime: number;
|
|
34
|
+
cost?: number;
|
|
35
|
+
};
|
|
36
|
+
zkProof?: any;
|
|
37
|
+
}
|
|
38
|
+
export interface Document {
|
|
39
|
+
content: string;
|
|
40
|
+
metadata?: Record<string, any>;
|
|
41
|
+
}
|
|
42
|
+
export interface SearchResults {
|
|
43
|
+
documents: Array<{
|
|
44
|
+
content: string;
|
|
45
|
+
similarity: number;
|
|
46
|
+
metadata?: Record<string, any>;
|
|
47
|
+
}>;
|
|
48
|
+
query: string;
|
|
49
|
+
totalResults: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* ComputeModule - Universal AI/LLM computation
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // Simple LLM query
|
|
57
|
+
* const response = await sdk.compute.query("Analyze this merchant data")
|
|
58
|
+
*
|
|
59
|
+
* // Query with RAG (Retrieval Augmented Generation)
|
|
60
|
+
* const response = await sdk.compute.queryWithRAG(
|
|
61
|
+
* "Show performance trends",
|
|
62
|
+
* "iso-merchants-knowledge"
|
|
63
|
+
* )
|
|
64
|
+
*
|
|
65
|
+
* // Advanced computation job
|
|
66
|
+
* const jobId = await sdk.compute.initiateAIComputation({
|
|
67
|
+
* modelId: 'gemini-2.0-flash',
|
|
68
|
+
* input: { prompt: "Complex analysis..." }
|
|
69
|
+
* })
|
|
70
|
+
* const status = await sdk.compute.getComputationStatus(jobId)
|
|
71
|
+
* const result = await sdk.compute.fetchComputationResult(jobId)
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare class ComputeModule {
|
|
75
|
+
private sdk;
|
|
76
|
+
constructor(sdk: VaritySDK);
|
|
77
|
+
/**
|
|
78
|
+
* Initiate AI computation job
|
|
79
|
+
*
|
|
80
|
+
* @param params - Computation parameters
|
|
81
|
+
* @returns Job ID
|
|
82
|
+
*/
|
|
83
|
+
initiateAIComputation(params: ComputeParams): Promise<JobId>;
|
|
84
|
+
/**
|
|
85
|
+
* Get computation job status
|
|
86
|
+
*
|
|
87
|
+
* @param jobId - Job identifier
|
|
88
|
+
* @returns Job status
|
|
89
|
+
*/
|
|
90
|
+
getComputationStatus(jobId: string): Promise<ComputeStatus>;
|
|
91
|
+
/**
|
|
92
|
+
* Fetch computation result
|
|
93
|
+
*
|
|
94
|
+
* @param jobId - Job identifier
|
|
95
|
+
* @returns Computation result
|
|
96
|
+
*/
|
|
97
|
+
fetchComputationResult(jobId: string): Promise<ComputeResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Cancel computation job
|
|
100
|
+
*
|
|
101
|
+
* @param jobId - Job identifier
|
|
102
|
+
*/
|
|
103
|
+
cancelComputation(jobId: string): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Simple LLM query (synchronous)
|
|
106
|
+
*
|
|
107
|
+
* @param prompt - Query prompt
|
|
108
|
+
* @param context - Optional context
|
|
109
|
+
* @returns AI response
|
|
110
|
+
*/
|
|
111
|
+
query(prompt: string, context?: string): Promise<AIResponse>;
|
|
112
|
+
/**
|
|
113
|
+
* Query with RAG (Retrieval Augmented Generation)
|
|
114
|
+
*
|
|
115
|
+
* @param query - User query
|
|
116
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
117
|
+
* @returns AI response with sources
|
|
118
|
+
*/
|
|
119
|
+
queryWithRAG(query: string, knowledgeBase: string): Promise<AIResponseWithSources>;
|
|
120
|
+
/**
|
|
121
|
+
* Ingest document into knowledge base
|
|
122
|
+
*
|
|
123
|
+
* @param document - Document to ingest
|
|
124
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
125
|
+
* @returns Document ID
|
|
126
|
+
*/
|
|
127
|
+
ingestDocument(document: Document, knowledgeBase: string): Promise<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Search knowledge base
|
|
130
|
+
*
|
|
131
|
+
* @param query - Search query
|
|
132
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
133
|
+
* @returns Search results
|
|
134
|
+
*/
|
|
135
|
+
searchKnowledge(query: string, knowledgeBase: string): Promise<SearchResults>;
|
|
136
|
+
/**
|
|
137
|
+
* Wait for computation to complete
|
|
138
|
+
*
|
|
139
|
+
* @param jobId - Job identifier
|
|
140
|
+
* @param pollInterval - Polling interval in ms (default: 1000)
|
|
141
|
+
* @param timeout - Timeout in ms (default: 300000 / 5 minutes)
|
|
142
|
+
* @returns Computation result
|
|
143
|
+
*/
|
|
144
|
+
waitForCompletion(jobId: string, pollInterval?: number, timeout?: number): Promise<ComputeResult>;
|
|
145
|
+
/**
|
|
146
|
+
* Query LLM with TEE encryption
|
|
147
|
+
*
|
|
148
|
+
* Performs an LLM query with Trusted Execution Environment encryption,
|
|
149
|
+
* ensuring that the query and response are protected by hardware-backed security.
|
|
150
|
+
*
|
|
151
|
+
* @param prompt - Query prompt
|
|
152
|
+
* @param options - TEE query options
|
|
153
|
+
* @returns TEE-encrypted AI response with optional attestation
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* // Basic TEE query
|
|
158
|
+
* const response = await sdk.compute.queryTEE(
|
|
159
|
+
* "Analyze sensitive merchant data"
|
|
160
|
+
* )
|
|
161
|
+
*
|
|
162
|
+
* // TEE query with attestation
|
|
163
|
+
* const response = await sdk.compute.queryTEE(
|
|
164
|
+
* "Process confidential transaction",
|
|
165
|
+
* {
|
|
166
|
+
* requireAttestation: true,
|
|
167
|
+
* teeProvider: 'phala',
|
|
168
|
+
* temperature: 0.7
|
|
169
|
+
* }
|
|
170
|
+
* )
|
|
171
|
+
* console.log('Encrypted:', response.encrypted)
|
|
172
|
+
* console.log('TEE verified:', response.attestation?.verified)
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
queryTEE(prompt: string, options?: TEEQueryOptions): Promise<TEEResponse>;
|
|
176
|
+
/**
|
|
177
|
+
* Get TEE attestation
|
|
178
|
+
*
|
|
179
|
+
* Retrieves an attestation quote from a Trusted Execution Environment,
|
|
180
|
+
* providing cryptographic proof of the enclave's integrity.
|
|
181
|
+
*
|
|
182
|
+
* @param teeProvider - TEE provider to use
|
|
183
|
+
* @returns TEE attestation with quote and public key
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* // Get attestation from Phala Network
|
|
188
|
+
* const attestation = await sdk.compute.getTEEAttestation('phala')
|
|
189
|
+
* console.log('TEE Provider:', attestation.provider)
|
|
190
|
+
* console.log('Public Key:', attestation.publicKey)
|
|
191
|
+
* console.log('Quote:', attestation.quote)
|
|
192
|
+
*
|
|
193
|
+
* // Verify the attestation
|
|
194
|
+
* const isValid = await sdk.compute.verifyTEEAttestation(attestation)
|
|
195
|
+
* console.log('Attestation valid:', isValid)
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
getTEEAttestation(teeProvider?: TEEProvider): Promise<TEEAttestation>;
|
|
199
|
+
/**
|
|
200
|
+
* Verify TEE attestation
|
|
201
|
+
*
|
|
202
|
+
* Verifies the cryptographic integrity of a TEE attestation quote,
|
|
203
|
+
* ensuring the enclave is running authentic code in a secure environment.
|
|
204
|
+
*
|
|
205
|
+
* @param attestation - TEE attestation to verify
|
|
206
|
+
* @returns True if attestation is valid
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* const attestation = await sdk.compute.getTEEAttestation('intel-sgx')
|
|
211
|
+
*
|
|
212
|
+
* // Verify the attestation
|
|
213
|
+
* const isValid = await sdk.compute.verifyTEEAttestation(attestation)
|
|
214
|
+
*
|
|
215
|
+
* if (isValid) {
|
|
216
|
+
* console.log('✅ TEE attestation verified')
|
|
217
|
+
* console.log('MRENCLAVE:', attestation.mrenclave)
|
|
218
|
+
* console.log('TCB Status:', attestation.verificationDetails?.tcbStatus)
|
|
219
|
+
* } else {
|
|
220
|
+
* console.log('❌ TEE attestation verification failed')
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
verifyTEEAttestation(attestation: TEEAttestation): Promise<boolean>;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=ComputeModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComputeModule.d.ts","sourceRoot":"","sources":["../../../src/modules/compute/ComputeModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Varity SDK - Compute Module
|
|
3
|
+
*
|
|
4
|
+
* Universal AI/LLM computation on Akash Network.
|
|
5
|
+
* Works across all templates (ISO, Healthcare, Retail, etc.)
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ComputeModule - Universal AI/LLM computation
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Simple LLM query
|
|
13
|
+
* const response = await sdk.compute.query("Analyze this merchant data")
|
|
14
|
+
*
|
|
15
|
+
* // Query with RAG (Retrieval Augmented Generation)
|
|
16
|
+
* const response = await sdk.compute.queryWithRAG(
|
|
17
|
+
* "Show performance trends",
|
|
18
|
+
* "iso-merchants-knowledge"
|
|
19
|
+
* )
|
|
20
|
+
*
|
|
21
|
+
* // Advanced computation job
|
|
22
|
+
* const jobId = await sdk.compute.initiateAIComputation({
|
|
23
|
+
* modelId: 'gemini-2.0-flash',
|
|
24
|
+
* input: { prompt: "Complex analysis..." }
|
|
25
|
+
* })
|
|
26
|
+
* const status = await sdk.compute.getComputationStatus(jobId)
|
|
27
|
+
* const result = await sdk.compute.fetchComputationResult(jobId)
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export class ComputeModule {
|
|
31
|
+
constructor(sdk) {
|
|
32
|
+
this.sdk = sdk;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initiate AI computation job
|
|
36
|
+
*
|
|
37
|
+
* @param params - Computation parameters
|
|
38
|
+
* @returns Job ID
|
|
39
|
+
*/
|
|
40
|
+
async initiateAIComputation(params) {
|
|
41
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
42
|
+
const apiKey = this.sdk.getAPIKey();
|
|
43
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/compute`, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
48
|
+
},
|
|
49
|
+
body: JSON.stringify({
|
|
50
|
+
modelId: params.modelId || 'gemini-2.0-flash',
|
|
51
|
+
input: params.input,
|
|
52
|
+
options: params.options
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
throw new Error(`Compute initiation failed: ${response.statusText}`);
|
|
57
|
+
}
|
|
58
|
+
const result = await response.json();
|
|
59
|
+
return result.jobId;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get computation job status
|
|
63
|
+
*
|
|
64
|
+
* @param jobId - Job identifier
|
|
65
|
+
* @returns Job status
|
|
66
|
+
*/
|
|
67
|
+
async getComputationStatus(jobId) {
|
|
68
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
69
|
+
const apiKey = this.sdk.getAPIKey();
|
|
70
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/compute/${jobId}/status`, {
|
|
71
|
+
headers: {
|
|
72
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
throw new Error(`Status check failed: ${response.statusText}`);
|
|
77
|
+
}
|
|
78
|
+
return await response.json();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fetch computation result
|
|
82
|
+
*
|
|
83
|
+
* @param jobId - Job identifier
|
|
84
|
+
* @returns Computation result
|
|
85
|
+
*/
|
|
86
|
+
async fetchComputationResult(jobId) {
|
|
87
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
88
|
+
const apiKey = this.sdk.getAPIKey();
|
|
89
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/compute/${jobId}/result`, {
|
|
90
|
+
headers: {
|
|
91
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
if (!response.ok) {
|
|
95
|
+
throw new Error(`Result fetch failed: ${response.statusText}`);
|
|
96
|
+
}
|
|
97
|
+
return await response.json();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Cancel computation job
|
|
101
|
+
*
|
|
102
|
+
* @param jobId - Job identifier
|
|
103
|
+
*/
|
|
104
|
+
async cancelComputation(jobId) {
|
|
105
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
106
|
+
const apiKey = this.sdk.getAPIKey();
|
|
107
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/compute/${jobId}/cancel`, {
|
|
108
|
+
method: 'POST',
|
|
109
|
+
headers: {
|
|
110
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
if (!response.ok) {
|
|
114
|
+
throw new Error(`Cancel failed: ${response.statusText}`);
|
|
115
|
+
}
|
|
116
|
+
console.log(`✅ Computation cancelled: ${jobId}`);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Simple LLM query (synchronous)
|
|
120
|
+
*
|
|
121
|
+
* @param prompt - Query prompt
|
|
122
|
+
* @param context - Optional context
|
|
123
|
+
* @returns AI response
|
|
124
|
+
*/
|
|
125
|
+
async query(prompt, context) {
|
|
126
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
127
|
+
const apiKey = this.sdk.getAPIKey();
|
|
128
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/query`, {
|
|
129
|
+
method: 'POST',
|
|
130
|
+
headers: {
|
|
131
|
+
'Content-Type': 'application/json',
|
|
132
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
133
|
+
},
|
|
134
|
+
body: JSON.stringify({ prompt, context })
|
|
135
|
+
});
|
|
136
|
+
if (!response.ok) {
|
|
137
|
+
throw new Error(`Query failed: ${response.statusText}`);
|
|
138
|
+
}
|
|
139
|
+
return await response.json();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Query with RAG (Retrieval Augmented Generation)
|
|
143
|
+
*
|
|
144
|
+
* @param query - User query
|
|
145
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
146
|
+
* @returns AI response with sources
|
|
147
|
+
*/
|
|
148
|
+
async queryWithRAG(query, knowledgeBase) {
|
|
149
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
150
|
+
const apiKey = this.sdk.getAPIKey();
|
|
151
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/query-rag`, {
|
|
152
|
+
method: 'POST',
|
|
153
|
+
headers: {
|
|
154
|
+
'Content-Type': 'application/json',
|
|
155
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
156
|
+
},
|
|
157
|
+
body: JSON.stringify({ query, knowledgeBase })
|
|
158
|
+
});
|
|
159
|
+
if (!response.ok) {
|
|
160
|
+
throw new Error(`RAG query failed: ${response.statusText}`);
|
|
161
|
+
}
|
|
162
|
+
return await response.json();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Ingest document into knowledge base
|
|
166
|
+
*
|
|
167
|
+
* @param document - Document to ingest
|
|
168
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
169
|
+
* @returns Document ID
|
|
170
|
+
*/
|
|
171
|
+
async ingestDocument(document, knowledgeBase) {
|
|
172
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
173
|
+
const apiKey = this.sdk.getAPIKey();
|
|
174
|
+
const response = await fetch(`${apiEndpoint}/api/v1/rag/ingest`, {
|
|
175
|
+
method: 'POST',
|
|
176
|
+
headers: {
|
|
177
|
+
'Content-Type': 'application/json',
|
|
178
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
179
|
+
},
|
|
180
|
+
body: JSON.stringify({
|
|
181
|
+
document,
|
|
182
|
+
knowledgeBase
|
|
183
|
+
})
|
|
184
|
+
});
|
|
185
|
+
if (!response.ok) {
|
|
186
|
+
throw new Error(`Document ingest failed: ${response.statusText}`);
|
|
187
|
+
}
|
|
188
|
+
const result = await response.json();
|
|
189
|
+
return result.documentId;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Search knowledge base
|
|
193
|
+
*
|
|
194
|
+
* @param query - Search query
|
|
195
|
+
* @param knowledgeBase - Knowledge base identifier
|
|
196
|
+
* @returns Search results
|
|
197
|
+
*/
|
|
198
|
+
async searchKnowledge(query, knowledgeBase) {
|
|
199
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
200
|
+
const apiKey = this.sdk.getAPIKey();
|
|
201
|
+
const response = await fetch(`${apiEndpoint}/api/v1/rag/search`, {
|
|
202
|
+
method: 'POST',
|
|
203
|
+
headers: {
|
|
204
|
+
'Content-Type': 'application/json',
|
|
205
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
206
|
+
},
|
|
207
|
+
body: JSON.stringify({ query, knowledgeBase })
|
|
208
|
+
});
|
|
209
|
+
if (!response.ok) {
|
|
210
|
+
throw new Error(`Knowledge search failed: ${response.statusText}`);
|
|
211
|
+
}
|
|
212
|
+
return await response.json();
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Wait for computation to complete
|
|
216
|
+
*
|
|
217
|
+
* @param jobId - Job identifier
|
|
218
|
+
* @param pollInterval - Polling interval in ms (default: 1000)
|
|
219
|
+
* @param timeout - Timeout in ms (default: 300000 / 5 minutes)
|
|
220
|
+
* @returns Computation result
|
|
221
|
+
*/
|
|
222
|
+
async waitForCompletion(jobId, pollInterval = 1000, timeout = 300000) {
|
|
223
|
+
const startTime = Date.now();
|
|
224
|
+
while (true) {
|
|
225
|
+
if (Date.now() - startTime > timeout) {
|
|
226
|
+
throw new Error(`Computation timeout after ${timeout}ms`);
|
|
227
|
+
}
|
|
228
|
+
const status = await this.getComputationStatus(jobId);
|
|
229
|
+
if (status.status === 'completed') {
|
|
230
|
+
return await this.fetchComputationResult(jobId);
|
|
231
|
+
}
|
|
232
|
+
if (status.status === 'failed') {
|
|
233
|
+
throw new Error(`Computation failed: ${status.error}`);
|
|
234
|
+
}
|
|
235
|
+
// Wait before next poll
|
|
236
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// ========================================================================
|
|
240
|
+
// TEE (Trusted Execution Environment) Methods
|
|
241
|
+
// ========================================================================
|
|
242
|
+
/**
|
|
243
|
+
* Query LLM with TEE encryption
|
|
244
|
+
*
|
|
245
|
+
* Performs an LLM query with Trusted Execution Environment encryption,
|
|
246
|
+
* ensuring that the query and response are protected by hardware-backed security.
|
|
247
|
+
*
|
|
248
|
+
* @param prompt - Query prompt
|
|
249
|
+
* @param options - TEE query options
|
|
250
|
+
* @returns TEE-encrypted AI response with optional attestation
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* // Basic TEE query
|
|
255
|
+
* const response = await sdk.compute.queryTEE(
|
|
256
|
+
* "Analyze sensitive merchant data"
|
|
257
|
+
* )
|
|
258
|
+
*
|
|
259
|
+
* // TEE query with attestation
|
|
260
|
+
* const response = await sdk.compute.queryTEE(
|
|
261
|
+
* "Process confidential transaction",
|
|
262
|
+
* {
|
|
263
|
+
* requireAttestation: true,
|
|
264
|
+
* teeProvider: 'phala',
|
|
265
|
+
* temperature: 0.7
|
|
266
|
+
* }
|
|
267
|
+
* )
|
|
268
|
+
* console.log('Encrypted:', response.encrypted)
|
|
269
|
+
* console.log('TEE verified:', response.attestation?.verified)
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
async queryTEE(prompt, options) {
|
|
273
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
274
|
+
const apiKey = this.sdk.getAPIKey();
|
|
275
|
+
const response = await fetch(`${apiEndpoint}/api/v1/llm/query-tee`, {
|
|
276
|
+
method: 'POST',
|
|
277
|
+
headers: {
|
|
278
|
+
'Content-Type': 'application/json',
|
|
279
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
280
|
+
},
|
|
281
|
+
body: JSON.stringify({
|
|
282
|
+
prompt,
|
|
283
|
+
context: options?.context,
|
|
284
|
+
requireAttestation: options?.requireAttestation ?? false,
|
|
285
|
+
teeProvider: options?.teeProvider ?? 'phala',
|
|
286
|
+
temperature: options?.temperature,
|
|
287
|
+
maxTokens: options?.maxTokens,
|
|
288
|
+
knowledgeBase: options?.knowledgeBase
|
|
289
|
+
})
|
|
290
|
+
});
|
|
291
|
+
if (!response.ok) {
|
|
292
|
+
const error = await response.json().catch(() => ({ message: response.statusText }));
|
|
293
|
+
throw new Error(`TEE query failed: ${error.message || response.statusText}`);
|
|
294
|
+
}
|
|
295
|
+
return await response.json();
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get TEE attestation
|
|
299
|
+
*
|
|
300
|
+
* Retrieves an attestation quote from a Trusted Execution Environment,
|
|
301
|
+
* providing cryptographic proof of the enclave's integrity.
|
|
302
|
+
*
|
|
303
|
+
* @param teeProvider - TEE provider to use
|
|
304
|
+
* @returns TEE attestation with quote and public key
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```typescript
|
|
308
|
+
* // Get attestation from Phala Network
|
|
309
|
+
* const attestation = await sdk.compute.getTEEAttestation('phala')
|
|
310
|
+
* console.log('TEE Provider:', attestation.provider)
|
|
311
|
+
* console.log('Public Key:', attestation.publicKey)
|
|
312
|
+
* console.log('Quote:', attestation.quote)
|
|
313
|
+
*
|
|
314
|
+
* // Verify the attestation
|
|
315
|
+
* const isValid = await sdk.compute.verifyTEEAttestation(attestation)
|
|
316
|
+
* console.log('Attestation valid:', isValid)
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
async getTEEAttestation(teeProvider = 'phala') {
|
|
320
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
321
|
+
const apiKey = this.sdk.getAPIKey();
|
|
322
|
+
const response = await fetch(`${apiEndpoint}/api/v1/tee/attestation`, {
|
|
323
|
+
method: 'POST',
|
|
324
|
+
headers: {
|
|
325
|
+
'Content-Type': 'application/json',
|
|
326
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
327
|
+
},
|
|
328
|
+
body: JSON.stringify({ teeProvider })
|
|
329
|
+
});
|
|
330
|
+
if (!response.ok) {
|
|
331
|
+
const error = await response.json().catch(() => ({ message: response.statusText }));
|
|
332
|
+
throw new Error(`TEE attestation failed: ${error.message || response.statusText}`);
|
|
333
|
+
}
|
|
334
|
+
return await response.json();
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Verify TEE attestation
|
|
338
|
+
*
|
|
339
|
+
* Verifies the cryptographic integrity of a TEE attestation quote,
|
|
340
|
+
* ensuring the enclave is running authentic code in a secure environment.
|
|
341
|
+
*
|
|
342
|
+
* @param attestation - TEE attestation to verify
|
|
343
|
+
* @returns True if attestation is valid
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```typescript
|
|
347
|
+
* const attestation = await sdk.compute.getTEEAttestation('intel-sgx')
|
|
348
|
+
*
|
|
349
|
+
* // Verify the attestation
|
|
350
|
+
* const isValid = await sdk.compute.verifyTEEAttestation(attestation)
|
|
351
|
+
*
|
|
352
|
+
* if (isValid) {
|
|
353
|
+
* console.log('✅ TEE attestation verified')
|
|
354
|
+
* console.log('MRENCLAVE:', attestation.mrenclave)
|
|
355
|
+
* console.log('TCB Status:', attestation.verificationDetails?.tcbStatus)
|
|
356
|
+
* } else {
|
|
357
|
+
* console.log('❌ TEE attestation verification failed')
|
|
358
|
+
* }
|
|
359
|
+
* ```
|
|
360
|
+
*/
|
|
361
|
+
async verifyTEEAttestation(attestation) {
|
|
362
|
+
const apiEndpoint = this.sdk.getAPIEndpoint();
|
|
363
|
+
const apiKey = this.sdk.getAPIKey();
|
|
364
|
+
const response = await fetch(`${apiEndpoint}/api/v1/tee/verify-attestation`, {
|
|
365
|
+
method: 'POST',
|
|
366
|
+
headers: {
|
|
367
|
+
'Content-Type': 'application/json',
|
|
368
|
+
...(apiKey && { 'Authorization': `Bearer ${apiKey}` })
|
|
369
|
+
},
|
|
370
|
+
body: JSON.stringify({ attestation })
|
|
371
|
+
});
|
|
372
|
+
if (!response.ok) {
|
|
373
|
+
const error = await response.json().catch(() => ({ message: response.statusText }));
|
|
374
|
+
throw new Error(`TEE attestation verification failed: ${error.message || response.statusText}`);
|
|
375
|
+
}
|
|
376
|
+
const result = await response.json();
|
|
377
|
+
return result.valid;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/compute/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EACV,KAAK,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACd,MAAM,iBAAiB,CAAA"}
|