@kadi.build/deploy-ability 0.0.2 → 0.0.4

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 (103) hide show
  1. package/dist/targets/akash/bids.d.ts +183 -0
  2. package/dist/targets/akash/bids.d.ts.map +1 -0
  3. package/dist/targets/akash/bids.js +247 -0
  4. package/dist/targets/akash/bids.js.map +1 -0
  5. package/dist/targets/akash/certificate-manager.d.ts +89 -167
  6. package/dist/targets/akash/certificate-manager.d.ts.map +1 -1
  7. package/dist/targets/akash/certificate-manager.js +193 -301
  8. package/dist/targets/akash/certificate-manager.js.map +1 -1
  9. package/dist/targets/akash/client.d.ts +644 -0
  10. package/dist/targets/akash/client.d.ts.map +1 -0
  11. package/dist/targets/akash/client.js +972 -0
  12. package/dist/targets/akash/client.js.map +1 -0
  13. package/dist/targets/akash/constants.d.ts +12 -149
  14. package/dist/targets/akash/constants.d.ts.map +1 -1
  15. package/dist/targets/akash/constants.js +14 -136
  16. package/dist/targets/akash/constants.js.map +1 -1
  17. package/dist/targets/akash/deployer.d.ts +3 -82
  18. package/dist/targets/akash/deployer.d.ts.map +1 -1
  19. package/dist/targets/akash/deployer.js +122 -160
  20. package/dist/targets/akash/deployer.js.map +1 -1
  21. package/dist/targets/akash/environment.d.ts +16 -214
  22. package/dist/targets/akash/environment.d.ts.map +1 -1
  23. package/dist/targets/akash/environment.js +20 -210
  24. package/dist/targets/akash/environment.js.map +1 -1
  25. package/dist/targets/akash/index.d.ts +95 -189
  26. package/dist/targets/akash/index.d.ts.map +1 -1
  27. package/dist/targets/akash/index.js +69 -197
  28. package/dist/targets/akash/index.js.map +1 -1
  29. package/dist/targets/akash/lease-monitor.d.ts +3 -21
  30. package/dist/targets/akash/lease-monitor.d.ts.map +1 -1
  31. package/dist/targets/akash/lease-monitor.js +39 -56
  32. package/dist/targets/akash/lease-monitor.js.map +1 -1
  33. package/dist/targets/akash/logs.d.ts +103 -4
  34. package/dist/targets/akash/logs.d.ts.map +1 -1
  35. package/dist/targets/akash/logs.js +12 -3
  36. package/dist/targets/akash/logs.js.map +1 -1
  37. package/dist/targets/akash/pricing.d.ts +12 -191
  38. package/dist/targets/akash/pricing.d.ts.map +1 -1
  39. package/dist/targets/akash/pricing.js +12 -188
  40. package/dist/targets/akash/pricing.js.map +1 -1
  41. package/dist/targets/akash/provider-manager.d.ts +120 -0
  42. package/dist/targets/akash/provider-manager.d.ts.map +1 -0
  43. package/dist/targets/akash/provider-manager.js +574 -0
  44. package/dist/targets/akash/provider-manager.js.map +1 -0
  45. package/dist/targets/akash/sdl-generator.d.ts +2 -2
  46. package/dist/targets/akash/sdl-generator.d.ts.map +1 -1
  47. package/dist/targets/akash/sdl-generator.js +6 -39
  48. package/dist/targets/akash/sdl-generator.js.map +1 -1
  49. package/dist/targets/akash/types.d.ts +66 -243
  50. package/dist/targets/akash/types.d.ts.map +1 -1
  51. package/dist/targets/akash/types.js +4 -41
  52. package/dist/targets/akash/types.js.map +1 -1
  53. package/dist/targets/akash/wallet-manager.d.ts +35 -352
  54. package/dist/targets/akash/wallet-manager.d.ts.map +1 -1
  55. package/dist/targets/akash/wallet-manager.js +37 -439
  56. package/dist/targets/akash/wallet-manager.js.map +1 -1
  57. package/dist/targets/local/deployer.js +4 -4
  58. package/dist/targets/local/deployer.js.map +1 -1
  59. package/dist/types/index.d.ts +1 -1
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/types/index.js.map +1 -1
  62. package/dist/types/options.d.ts +45 -4
  63. package/dist/types/options.d.ts.map +1 -1
  64. package/dist/utils/registry/manager.js +6 -6
  65. package/dist/utils/registry/manager.js.map +1 -1
  66. package/dist/utils/registry/setup.js +4 -4
  67. package/dist/utils/registry/setup.js.map +1 -1
  68. package/package.json +8 -11
  69. package/dist/targets/akash/bid-selectors.d.ts +0 -251
  70. package/dist/targets/akash/bid-selectors.d.ts.map +0 -1
  71. package/dist/targets/akash/bid-selectors.js +0 -322
  72. package/dist/targets/akash/bid-selectors.js.map +0 -1
  73. package/dist/targets/akash/bid-types.d.ts +0 -297
  74. package/dist/targets/akash/bid-types.d.ts.map +0 -1
  75. package/dist/targets/akash/bid-types.js +0 -89
  76. package/dist/targets/akash/bid-types.js.map +0 -1
  77. package/dist/targets/akash/blockchain-client.d.ts +0 -577
  78. package/dist/targets/akash/blockchain-client.d.ts.map +0 -1
  79. package/dist/targets/akash/blockchain-client.js +0 -803
  80. package/dist/targets/akash/blockchain-client.js.map +0 -1
  81. package/dist/targets/akash/logs.types.d.ts +0 -102
  82. package/dist/targets/akash/logs.types.d.ts.map +0 -1
  83. package/dist/targets/akash/logs.types.js +0 -9
  84. package/dist/targets/akash/logs.types.js.map +0 -1
  85. package/dist/targets/akash/provider-client.d.ts +0 -114
  86. package/dist/targets/akash/provider-client.d.ts.map +0 -1
  87. package/dist/targets/akash/provider-client.js +0 -318
  88. package/dist/targets/akash/provider-client.js.map +0 -1
  89. package/dist/targets/akash/provider-metadata.d.ts +0 -228
  90. package/dist/targets/akash/provider-metadata.d.ts.map +0 -1
  91. package/dist/targets/akash/provider-metadata.js +0 -14
  92. package/dist/targets/akash/provider-metadata.js.map +0 -1
  93. package/dist/targets/akash/provider-service.d.ts +0 -133
  94. package/dist/targets/akash/provider-service.d.ts.map +0 -1
  95. package/dist/targets/akash/provider-service.js +0 -391
  96. package/dist/targets/akash/provider-service.js.map +0 -1
  97. package/dist/targets/akash/query-client.d.ts +0 -125
  98. package/dist/targets/akash/query-client.d.ts.map +0 -1
  99. package/dist/targets/akash/query-client.js +0 -332
  100. package/dist/targets/akash/query-client.js.map +0 -1
  101. package/docs/EXAMPLES.md +0 -293
  102. package/docs/PLACEMENT.md +0 -433
  103. package/docs/STORAGE.md +0 -318
@@ -16,13 +16,73 @@ import Long from 'long';
16
16
  import { success, failure, createWalletAddress, createDeploymentSequence, } from '../../types/index.js';
17
17
  import { defaultLogger } from '../../utils/logger.js';
18
18
  import { loadProfile } from '../../utils/profile-loader.js';
19
- import { createSigningClient, createDeployment, waitForBids, createLease, closeDeployment, } from './blockchain-client.js';
20
- import { sendManifestToProvider, fetchProviderLeaseStatus, } from './provider-client.js';
21
- import { getProviderMetadata, getLeaseById, getDeploymentDetails, } from './query-client.js';
19
+ import { sendManifestToProvider, fetchProviderLeaseStatus, } from './provider-manager.js';
20
+ import { AkashClient } from './client.js';
22
21
  import { waitForContainersRunning } from './lease-monitor.js';
23
22
  import { LeasePrice } from './pricing.js';
24
23
  import { generateAkashSdl, createSdlObject, } from './sdl-generator.js';
25
24
  import { DeploymentError } from '../../errors/index.js';
25
+ /**
26
+ * Intelligent blacklist resolution with progressive disclosure
27
+ *
28
+ * Resolves blacklist configuration from both profile and options with intelligent merging.
29
+ * Supports simple array syntax for common cases and advanced config object for full control.
30
+ *
31
+ * @param profileBlacklist - Blacklist from deployment profile
32
+ * @param optionsBlacklist - Blacklist from deployment options
33
+ * @param logger - Logger for debugging
34
+ * @returns Resolved blacklist of provider addresses
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Simple array - merges with profile
39
+ * const blacklist = resolveBlacklist(['akash1a...'], ['akash1b...'], logger);
40
+ * ```
41
+ */
42
+ function resolveBlacklist(profileBlacklist, optionsBlacklist, logger) {
43
+ const profileList = profileBlacklist || [];
44
+ // No options blacklist - use profile only
45
+ if (!optionsBlacklist) {
46
+ if (profileList.length > 0) {
47
+ logger.debug(`Using profile blacklist (${profileList.length} providers)`);
48
+ }
49
+ return profileList;
50
+ }
51
+ // Simple array syntax - merge with profile (most common case)
52
+ if (Array.isArray(optionsBlacklist)) {
53
+ const merged = Array.from(new Set([...profileList, ...optionsBlacklist]));
54
+ logger.debug(`Merged blacklist: ${merged.length} total ` +
55
+ `(${profileList.length} from profile, ${optionsBlacklist.length} from options)`);
56
+ return merged;
57
+ }
58
+ // Advanced config object - explicit control
59
+ // TypeScript requires us to narrow the type first
60
+ const config = optionsBlacklist;
61
+ const { mode, providers = [] } = config;
62
+ switch (mode) {
63
+ case 'merge': {
64
+ const merged = Array.from(new Set([...profileList, ...providers]));
65
+ logger.debug(`Explicitly merged blacklist: ${merged.length} total ` +
66
+ `(${profileList.length} from profile, ${providers.length} from options)`);
67
+ return merged;
68
+ }
69
+ case 'replace': {
70
+ logger.debug(`Replaced profile blacklist (${profileList.length} providers) ` +
71
+ `with options blacklist (${providers.length} providers)`);
72
+ return providers;
73
+ }
74
+ case 'none': {
75
+ logger.debug(`Blacklisting disabled (ignoring ${profileList.length} providers from profile)`);
76
+ return [];
77
+ }
78
+ default: {
79
+ // TypeScript exhaustiveness check
80
+ // @ts-expect-error - This ensures we handle all modes
81
+ const _exhaustive = mode;
82
+ throw new Error(`Invalid blacklist mode: ${mode}`);
83
+ }
84
+ }
85
+ }
26
86
  /**
27
87
  * Executes a full Akash deployment.
28
88
  */
@@ -85,34 +145,36 @@ export async function deployToAkash(params) {
85
145
  'Use pre-built selectors like selectCheapestBid, selectMostReliableBid, or implement custom logic.'));
86
146
  }
87
147
  // -----------------------------------------------------------------------
88
- // Start blockchain workflow
148
+ // Initialize AkashClient with signing capability
89
149
  // -----------------------------------------------------------------------
90
- const signingClientResult = await createSigningClient(wallet, network);
91
- if (!signingClientResult.success) {
92
- return signingClientResult;
93
- }
150
+ const client = new AkashClient({
151
+ network,
152
+ signer: wallet.signer,
153
+ });
94
154
  const depositAkt = determineDeposit(options, akashProfile);
95
155
  logger.log('📝 Creating deployment on blockchain...');
96
- const deploymentResult = await createDeployment(signingClientResult.data, wallet, sdlDocument, depositAkt);
156
+ const deploymentResult = await client.createDeployment(sdlDocument, depositAkt);
97
157
  if (!deploymentResult.success) {
98
158
  return deploymentResult;
99
159
  }
100
160
  logger.debug?.(`Deployment created: DSEQ ${deploymentResult.data.dseq}`);
101
- logger.log('💰 Waiting for provider bids...');
161
+ // Resolve blacklist from both profile and options with intelligent merging
162
+ const mergedBlacklist = resolveBlacklist(akashProfile.blacklist, options.blacklist, logger);
163
+ logger.log('Waiting for provider bids...');
102
164
  const bidTimeoutMs = options.bidTimeout ?? 180000; // 3 minutes default
103
- const bidsResult = await waitForBids(wallet, network, deploymentResult.data.dseq, {
104
- customBlacklist: options.blacklist ? [...options.blacklist] : undefined,
105
- timeoutMs: bidTimeoutMs,
165
+ const bidsResult = await client.awaitBids(wallet, deploymentResult.data.dseq, {
166
+ blacklist: mergedBlacklist.length > 0 ? [...mergedBlacklist] : undefined,
167
+ timeout: bidTimeoutMs,
106
168
  });
107
169
  if (!bidsResult.success) {
108
170
  // Cleanup: close deployment to return escrow
109
- logger.warn('⚠️ No bids received, closing deployment to return escrow...');
110
- const closeResult = await closeDeployment(signingClientResult.data, wallet, deploymentResult.data.dseq);
171
+ logger.warn('No bids received, closing deployment to return escrow...');
172
+ const closeResult = await client.closeDeployment(deploymentResult.data.dseq);
111
173
  if (closeResult.success) {
112
- logger.log('Deployment closed, escrow returned');
174
+ logger.log('Deployment closed, escrow returned');
113
175
  }
114
176
  else {
115
- logger.warn('⚠️ Failed to close deployment automatically:', closeResult.error.message);
177
+ logger.warn('Failed to close deployment automatically:', closeResult.error.message);
116
178
  }
117
179
  // Return enhanced error with cleanup info
118
180
  return failure(new DeploymentError(`No provider bids received within ${bidTimeoutMs / 1000}s. Deployment closed, escrow returned.`, 'BID_TIMEOUT', {
@@ -125,7 +187,7 @@ export async function deployToAkash(params) {
125
187
  const bids = bidsResult.data;
126
188
  logger.debug?.(`Received ${bids.length} bid(s) from providers`);
127
189
  // Call user's bid selector to choose which provider to use
128
- logger.log('🎯 Selecting provider...');
190
+ logger.log('Selecting provider...');
129
191
  let selectedBid;
130
192
  try {
131
193
  selectedBid = await bidSelector(bids);
@@ -139,16 +201,16 @@ export async function deployToAkash(params) {
139
201
  logger.debug?.(`Selected provider: ${selectedBid.provider.name || selectedBid.provider.owner} ` +
140
202
  `(${selectedBid.pricing.akt.perMonth.toFixed(2)} AKT/month)`);
141
203
  logger.log('📋 Creating lease with provider...');
142
- const leaseResult = await createLease(signingClientResult.data, selectedBid.bid);
204
+ const leaseResult = await client.acceptBid(selectedBid.bid);
143
205
  if (!leaseResult.success) {
144
206
  return leaseResult;
145
207
  }
146
208
  logger.debug?.('Lease created successfully');
147
- const lease = leaseResult.data.leaseId;
209
+ const lease = leaseResult.data.lease;
148
210
  // ---------------------------------------------------------------------------
149
211
  // Provider manifest delivery
150
212
  // ---------------------------------------------------------------------------
151
- const providerMetadataResult = await getProviderMetadata(network, lease.provider);
213
+ const providerMetadataResult = await client.getProvider(lease.provider);
152
214
  if (!providerMetadataResult.success) {
153
215
  return failure(new DeploymentError('Failed to retrieve provider metadata', 'PROVIDER_METADATA_ERROR', { provider: lease.provider }, true, 'Retry deployment or choose a different provider', 'error', providerMetadataResult.error));
154
216
  }
@@ -186,7 +248,7 @@ export async function deployToAkash(params) {
186
248
  });
187
249
  // Success - break out of retry loop
188
250
  if (manifestResult.success) {
189
- logger.log('Manifest sent successfully');
251
+ logger.log('Manifest sent successfully');
190
252
  break;
191
253
  }
192
254
  // Check if error is retryable (4xx status codes)
@@ -195,9 +257,9 @@ export async function deployToAkash(params) {
195
257
  const isRetryable = typeof statusCode === 'number' && statusCode >= 400 && statusCode < 500;
196
258
  // If not retryable or last attempt, return the error
197
259
  if (!isRetryable || attempt === maxAttempts) {
198
- logger.log(`❌ Manifest send failed (status: ${statusCode}): ${error.message}`);
260
+ logger.log(`Manifest send failed (status: ${statusCode}): ${error.message}`);
199
261
  if (error.context?.body) {
200
- logger.log(`📄 Provider response: ${error.context.body}`);
262
+ logger.log(`Provider response: ${error.context.body}`);
201
263
  }
202
264
  return manifestResult;
203
265
  }
@@ -214,35 +276,21 @@ export async function deployToAkash(params) {
214
276
  // ---------------------------------------------------------------------------
215
277
  // Query additional deployment information
216
278
  // ---------------------------------------------------------------------------
217
- // Fetch detailed lease information (price, createdAt)
218
- // Create a minimal lease identifier object for the query
219
279
  // Validate blockchain addresses using Zod schemas
220
- let validatedOwner;
221
- let validatedProvider;
280
+ // This ensures the addresses are properly formatted
222
281
  try {
223
- validatedOwner = createWalletAddress(lease.owner);
224
- validatedProvider = createWalletAddress(lease.provider);
282
+ createWalletAddress(lease.owner);
283
+ createWalletAddress(lease.provider);
225
284
  }
226
285
  catch (error) {
227
286
  return failure(new DeploymentError('Invalid wallet addresses received from blockchain', 'INVALID_BLOCKCHAIN_DATA', { owner: lease.owner, provider: lease.provider, error: String(error) }, false, 'This indicates malformed blockchain data. Please report this issue.'));
228
287
  }
229
- const leaseIdentifier = {
230
- owner: validatedOwner,
231
- provider: validatedProvider,
232
- // Convert Long to string for query
233
- dseq: Long.isLong(lease.dseq) ? lease.dseq.toString() : String(lease.dseq),
234
- gseq: lease.gseq,
235
- oseq: lease.oseq,
236
- };
237
- const leaseDetailsResult = await getLeaseById(network, leaseIdentifier);
238
- if (!leaseDetailsResult.success) {
239
- logger.warn(`Could not fetch lease details: ${leaseDetailsResult.error.message}`);
240
- }
241
- // Fetch deployment information (status, services, resources)
242
- const deploymentDetailsResult = await getDeploymentDetails(network, lease.owner, Long.isLong(lease.dseq) ? lease.dseq.toString() : String(lease.dseq));
243
- if (!deploymentDetailsResult.success) {
244
- logger.warn(`Could not fetch deployment details: ${deploymentDetailsResult.error.message}`);
245
- }
288
+ // Skip querying lease details immediately after creation
289
+ // The blockchain needs time to process the transaction
290
+ // Set to undefined since we're not querying immediately
291
+ // These are optional fields used for additional info only
292
+ const leaseDetailsResult = { success: false, data: undefined };
293
+ const deploymentDetailsResult = { success: false, data: undefined };
246
294
  // ---------------------------------------------------------------------------
247
295
  // Optional readiness monitoring
248
296
  // ---------------------------------------------------------------------------
@@ -267,13 +315,13 @@ export async function deployToAkash(params) {
267
315
  });
268
316
  if (!monitorResult.success) {
269
317
  // Cleanup: close deployment to return escrow
270
- logger.warn('⚠️ Containers failed to start, closing deployment...');
271
- const closeResult = await closeDeployment(signingClientResult.data, wallet, deploymentResult.data.dseq);
318
+ logger.warn('Containers failed to start, closing deployment...');
319
+ const closeResult = await client.closeDeployment(deploymentResult.data.dseq);
272
320
  if (closeResult.success) {
273
- logger.log('Deployment closed, escrow returned');
321
+ logger.log('Deployment closed, escrow returned');
274
322
  }
275
323
  else {
276
- logger.warn('⚠️ Failed to close deployment automatically:', closeResult.error.message);
324
+ logger.warn('Failed to close deployment automatically:', closeResult.error.message);
277
325
  }
278
326
  // Return enhanced error with cleanup info
279
327
  return failure(new DeploymentError(`Containers failed to start within ${options.containerTimeout / 1000}s. Deployment closed, escrow returned.`, 'CONTAINER_TIMEOUT', {
@@ -316,6 +364,7 @@ export async function deployToAkash(params) {
316
364
  network,
317
365
  certificate,
318
366
  providerStatus,
367
+ selectedBid, // Pass selectedBid for pricing fallback
319
368
  });
320
369
  return success(deploymentData);
321
370
  }
@@ -336,30 +385,17 @@ function determineDeposit(options, profile) {
336
385
  }
337
386
  return 5; // Default deposit in AKT
338
387
  }
339
- /**
340
- * Normalises deployment data into the published AkashDeploymentData structure.
341
- *
342
- * This function combines data from multiple sources:
343
- * - Blockchain deployment transaction (dseq, owner, etc.)
344
- * - Lease creation result (gseq, oseq, provider)
345
- * - Lease details query (price, createdAt)
346
- * - Deployment details query (status, services, resources)
347
- * - Provider status (service endpoints)
348
- *
349
- * The lease details and deployment details are optional because they come from
350
- * additional RPC queries that might fail. When available, they enrich the result
351
- * with pricing information, deployment status, and resource allocations.
352
- */
388
+ /** Normalises deployment data into the published AkashDeploymentData structure */
353
389
  function createDeploymentData(params) {
354
- const { deployment, lease, leaseDetails, deploymentDetails, providerUri, profileName, network, certificate, providerStatus, } = params;
390
+ const { deployment, lease, leaseDetails, deploymentDetails, providerUri, profileName, network, certificate, providerStatus, selectedBid, } = params;
355
391
  const endpoints = providerStatus
356
392
  ? buildEndpointMap(providerStatus)
357
393
  : undefined;
358
394
  // Create LeasePrice instance from lease details
359
- // If lease details weren't fetched successfully, create from a zero price
395
+ // If lease details weren't fetched successfully, use selectedBid's per-block rate
360
396
  const leasePrice = leaseDetails
361
397
  ? new LeasePrice(leaseDetails.price)
362
- : new LeasePrice({ denom: 'uakt', amount: '0' });
398
+ : new LeasePrice(selectedBid.bid.price ?? { denom: 'uakt', amount: '0' }); // Use actual per-block rate from bid
363
399
  // Extract deployment status (active or closed)
364
400
  // Default to 'active' if deployment details weren't fetched
365
401
  const status = deploymentDetails?.state === 'closed' ? 'closed' : 'active';
@@ -373,15 +409,15 @@ function createDeploymentData(params) {
373
409
  // Validate branded types from blockchain data
374
410
  // If validation fails, throw error (will be caught by deployToAkash)
375
411
  const validatedDseq = createDeploymentSequence(deployment.dseq);
376
- const validatedOwner = createWalletAddress(lease.leaseId.owner);
377
- const validatedProvider = createWalletAddress(lease.leaseId.provider);
412
+ const validatedOwner = createWalletAddress(lease.lease.owner);
413
+ const validatedProvider = createWalletAddress(lease.lease.provider);
378
414
  return {
379
415
  dseq: validatedDseq,
380
416
  owner: validatedOwner,
381
417
  provider: validatedProvider,
382
418
  providerUri,
383
- gseq: lease.leaseId.gseq,
384
- oseq: lease.leaseId.oseq,
419
+ gseq: lease.lease.gseq,
420
+ oseq: lease.lease.oseq,
385
421
  network,
386
422
  endpoints,
387
423
  certificate: {
@@ -397,13 +433,7 @@ function createDeploymentData(params) {
397
433
  services,
398
434
  };
399
435
  }
400
- /**
401
- * Builds a simple service → URI mapping from provider lease status.
402
- *
403
- * Tries service URIs first, then falls back to synthesizing URLs from forwarded ports.
404
- * When synthesizing from forwarded ports, uses http:// unless the external port is
405
- * a typical TLS port (443 or 8443), in which case https:// is used.
406
- */
436
+ /** Builds a simple service → URI mapping from provider lease status */
407
437
  function buildEndpointMap(status) {
408
438
  const entries = [];
409
439
  for (const [name, service] of Object.entries(status.services)) {
@@ -430,52 +460,11 @@ function buildEndpointMap(status) {
430
460
  /**
431
461
  * Extracts services with complete resource allocations from deployment groups
432
462
  *
433
- * Provides both aggregated totals and detailed resource specifications for each service.
434
- * Each deployment group may contain multiple resource specs (e.g., different replica
435
- * configurations), and this function processes ALL of them to give a complete picture.
436
- *
437
- * **How it works:**
438
- * 1. Processes ALL resource specs in each group (not just the first)
439
- * 2. Calculates aggregated totals: sum of (count × resources) for all specs
440
- * 3. Preserves detailed specs with individual replica counts
441
- *
442
- * **Resource Format from Blockchain:**
443
- * - CPU: Raw micro-units as strings (1,000,000 = 1 CPU core)
444
- * - Memory: Raw bytes as strings (converted to Mi/Gi for display)
445
- * - Storage: Array of raw bytes as strings (summed and converted to Mi/Gi)
446
- *
447
- * **Output Format:**
448
- * - CPU: Decimal string (e.g., "5.0" = 5 CPU cores)
449
- * - Memory: Human-readable with unit (e.g., "10Gi", "512Mi")
450
- * - Storage: Human-readable with unit (e.g., "5Gi", "1Ti")
463
+ * Processes all resource specs in each group, calculates aggregated totals, and preserves
464
+ * detailed specs with individual replica counts.
451
465
  *
452
466
  * @param groups - Deployment groups from blockchain query
453
467
  * @returns Array of services with aggregated totals and detailed resource specs
454
- *
455
- * @example Single resource spec (most common)
456
- * ```typescript
457
- * {
458
- * name: "web",
459
- * totalResources: { cpu: "1.0", memory: "2Gi", storage: "1Gi" },
460
- * replicaCount: 1,
461
- * resourceSpecs: [
462
- * { count: 1, cpu: "1.0", memory: "2Gi", storage: "1Gi" }
463
- * ]
464
- * }
465
- * ```
466
- *
467
- * @example Multiple resource specs (advanced deployment)
468
- * ```typescript
469
- * {
470
- * name: "api",
471
- * totalResources: { cpu: "5.0", memory: "10Gi", storage: "5Gi" },
472
- * replicaCount: 4,
473
- * resourceSpecs: [
474
- * { count: 3, cpu: "1.0", memory: "2Gi", storage: "1Gi" }, // 3 standard replicas
475
- * { count: 1, cpu: "2.0", memory: "4Gi", storage: "2Gi" } // 1 high-perf replica
476
- * ]
477
- * }
478
- * ```
479
468
  */
480
469
  function buildServicesFromGroups(groups) {
481
470
  const services = [];
@@ -495,7 +484,7 @@ function buildServicesFromGroups(groups) {
495
484
  const memoryBytes = parseFloat(resource.memoryQuantity || '0');
496
485
  // Storage is an array - sum all storage quantities
497
486
  const storageBytes = resource.storageQuantities
498
- .map(s => parseFloat(s || '0'))
487
+ .map((s) => parseFloat(s || '0'))
499
488
  .reduce((a, b) => a + b, 0);
500
489
  // Accumulate totals (count × resource value)
501
490
  totalCpuMicroUnits += count * cpuMicroUnits;
@@ -523,35 +512,13 @@ function buildServicesFromGroups(groups) {
523
512
  }
524
513
  return Object.freeze(services);
525
514
  }
526
- /**
527
- * Formats CPU micro-units to human-readable CPU cores
528
- *
529
- * Akash stores CPU in micro-units where 1,000,000 = 1 CPU core
530
- *
531
- * @param microUnits - CPU in micro-units (e.g., 1000000 = 1.0 CPU)
532
- * @returns Formatted CPU string (e.g., "1.0", "0.5", "2.5")
533
- */
515
+ /** Formats CPU micro-units to human-readable CPU cores (1,000,000 micro-units = 1 CPU core) */
534
516
  function formatCpu(microUnits) {
535
517
  const cpuCores = microUnits / 1_000_000;
536
518
  // Use up to 2 decimal places, remove trailing zeros
537
519
  return cpuCores.toFixed(2).replace(/\.?0+$/, '');
538
520
  }
539
- /**
540
- * Formats bytes to human-readable storage/memory with appropriate unit
541
- *
542
- * Converts raw bytes to Mi (MiB) or Gi (GiB) using binary units (1024-based).
543
- * Uses the smallest unit that results in a value >= 1.
544
- *
545
- * @param bytes - Raw bytes value
546
- * @returns Formatted string with unit (e.g., "512Mi", "2Gi", "1Ti")
547
- *
548
- * @example
549
- * ```typescript
550
- * formatBytes(536870912) // "512Mi"
551
- * formatBytes(2147483648) // "2Gi"
552
- * formatBytes(1099511627776) // "1Ti"
553
- * ```
554
- */
521
+ /** Formats bytes to human-readable storage/memory with appropriate unit (Mi/Gi/Ti) */
555
522
  function formatBytes(bytes) {
556
523
  if (bytes === 0)
557
524
  return '0';
@@ -568,25 +535,20 @@ function formatBytes(bytes) {
568
535
  const formatted = value.toFixed(2).replace(/\.?0+$/, '');
569
536
  return `${formatted}${units[unitIndex]}`;
570
537
  }
571
- /**
572
- * Constructs LeaseDetails for monitoring using bid and lease information.
573
- *
574
- * Validates wallet addresses from blockchain data using Zod schemas.
575
- * Throws if validation fails (indicating malformed blockchain data).
576
- */
538
+ /** Constructs LeaseDetails for monitoring using bid and lease information */
577
539
  function buildLeaseDetails(bid, lease) {
578
540
  // Validate wallet addresses - throws ZodError if invalid
579
- const validatedOwner = createWalletAddress(lease.leaseId.owner);
580
- const validatedProvider = createWalletAddress(lease.leaseId.provider);
541
+ const validatedOwner = createWalletAddress(lease.lease.owner);
542
+ const validatedProvider = createWalletAddress(lease.lease.provider);
581
543
  return {
582
544
  owner: validatedOwner,
583
545
  provider: validatedProvider,
584
546
  // Long types from protobuf need explicit toString() conversion
585
- dseq: Long.isLong(lease.leaseId.dseq)
586
- ? lease.leaseId.dseq.toString()
587
- : String(lease.leaseId.dseq),
588
- gseq: lease.leaseId.gseq,
589
- oseq: lease.leaseId.oseq,
547
+ dseq: typeof lease.lease.dseq === 'number'
548
+ ? String(lease.lease.dseq)
549
+ : String(lease.lease.dseq),
550
+ gseq: lease.lease.gseq,
551
+ oseq: lease.lease.oseq,
590
552
  state: 'active',
591
553
  price: {
592
554
  // Bid price is optional in SDK type, provide fallback
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../../src/targets/akash/deployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../../src/targets/akash/deployer.ts"],"names":[],"mappings":"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"}