@le-space/core 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 (4) hide show
  1. package/README.md +4 -0
  2. package/index.d.ts +522 -0
  3. package/index.js +1636 -0
  4. package/package.json +21 -0
package/README.md ADDED
@@ -0,0 +1,4 @@
1
+ # @shared-aleph/core
2
+
3
+ Framework-agnostic Aleph deployment and manifest logic will live here.
4
+
package/index.d.ts ADDED
@@ -0,0 +1,522 @@
1
+ import * as _shared_aleph_shared_types from '@shared-aleph/shared-types';
2
+ import { RootfsResolution, RootfsManifest, RootfsManifestState, CrnRecord, RootfsRequiredPortForward, PortForwardAggregate, PortForwardFlags, PortForwardAggregateEntry, MessageReference, InstanceExecution, MessageStatus, DeploymentInspectionResult, MessageInspectionResult, AlephBroadcastMessage, AlephBroadcastResponse, MessageSigner, MessageHasher, AlephAggregateContent, AlephInstanceContent, DeploymentResult, InstanceAllocation, InstanceRuntimeDetails, InstanceWebAccess, RuntimeDiagnostics, PortMapping } from '@shared-aleph/shared-types';
3
+
4
+ declare const DEFAULT_ALEPH_CHANNEL = "TEST";
5
+
6
+ declare const ITEM_HASH_RE: RegExp;
7
+ declare const DEFAULT_ALEPH_API_HOST = "https://api2.aleph.im";
8
+ declare const DEFAULT_IPFS_GATEWAY_BASE_URL = "https://ipfs.aleph.cloud/ipfs/";
9
+ interface FetchLikeResponse {
10
+ ok: boolean;
11
+ status: number;
12
+ url?: string;
13
+ json(): Promise<unknown>;
14
+ }
15
+ type FetchLike = (url: string, init?: RequestInit) => Promise<FetchLikeResponse>;
16
+ declare function validateRootfsManifest(manifest: RootfsManifest | null): RootfsManifestState;
17
+ declare function verifyRootfsExists(itemHash: string, options: {
18
+ apiHost?: string;
19
+ fetch: FetchLike;
20
+ }): Promise<boolean>;
21
+ declare function probeRootfsGateway(cid: string, options: {
22
+ gatewayBaseUrl?: string;
23
+ fetch: FetchLike;
24
+ }): Promise<Pick<RootfsResolution, 'gatewayStatus' | 'gatewayError' | 'gatewayUrl'>>;
25
+ declare function resolveRootfsReference(itemHash: string, options: {
26
+ apiHost?: string;
27
+ gatewayBaseUrl?: string;
28
+ fetch: FetchLike;
29
+ }): Promise<RootfsResolution | null>;
30
+
31
+ declare const DEFAULT_CRN_LIST_URL = "https://crns-list.aleph.sh/crns.json";
32
+ declare const DEFAULT_COUNTRY_LOOKUP_BASE_URL = "https://api.country.is";
33
+ declare const DEFAULT_DNS_RESOLVE_URL = "https://dns.google/resolve";
34
+ declare function fetchCrns(options: {
35
+ url?: string;
36
+ fetch: FetchLike;
37
+ }): Promise<CrnRecord[]>;
38
+ declare function enrichCrnsWithGeo(crns: ReadonlyArray<CrnRecord>, options: {
39
+ fetch: FetchLike;
40
+ dnsResolveUrl?: string;
41
+ countryLookupBaseUrl?: string;
42
+ }): Promise<CrnRecord[]>;
43
+ declare function listGeocodedCrns(options: {
44
+ fetch: FetchLike;
45
+ url?: string;
46
+ limit?: number;
47
+ dnsResolveUrl?: string;
48
+ countryLookupBaseUrl?: string;
49
+ }): Promise<CrnRecord[]>;
50
+ declare function rankCandidateCrns(crns: ReadonlyArray<CrnRecord>, options: {
51
+ fetch: FetchLike;
52
+ preferredCountryCode?: string;
53
+ geoLimit?: number;
54
+ excludedHashes?: string[];
55
+ dnsResolveUrl?: string;
56
+ countryLookupBaseUrl?: string;
57
+ }): Promise<CrnRecord[]>;
58
+ declare function selectPreferredCrn(crns: ReadonlyArray<CrnRecord>, options: {
59
+ fetch: FetchLike;
60
+ preferredCountryCode?: string;
61
+ geoLimit?: number;
62
+ excludedHashes?: string[];
63
+ dnsResolveUrl?: string;
64
+ countryLookupBaseUrl?: string;
65
+ }): Promise<CrnRecord | null>;
66
+
67
+ declare const DEFAULT_INSTANCE_PORT_FORWARDS: RootfsRequiredPortForward[];
68
+ declare function normalizeExistingPortForwardEntry(entry: PortForwardAggregateEntry | null | undefined): Record<string, PortForwardFlags>;
69
+ declare function requestedPortFlags(portForwards: ReadonlyArray<RootfsRequiredPortForward>): Record<string, PortForwardFlags>;
70
+ declare function mergePortFlagMaps(existing: Record<string, PortForwardFlags>, requested: Record<string, PortForwardFlags>): Record<string, PortForwardFlags>;
71
+ declare function mergeRequiredPortForwards(...groups: Array<ReadonlyArray<RootfsRequiredPortForward> | undefined>): RootfsRequiredPortForward[];
72
+ declare function requiredInstancePortForwards(manifest: RootfsManifest | null): RootfsRequiredPortForward[];
73
+ declare function portForwardLabel(entry: RootfsRequiredPortForward): string;
74
+ declare function fetchPortForwardAggregate(address: string, options: {
75
+ apiHost?: string;
76
+ fetch: FetchLike;
77
+ }): Promise<PortForwardAggregate>;
78
+
79
+ type MessageEnvelope$1 = {
80
+ status?: unknown;
81
+ type?: unknown;
82
+ error_code?: unknown;
83
+ details?: unknown;
84
+ message?: {
85
+ type?: unknown;
86
+ } | null;
87
+ messages?: Array<{
88
+ type?: unknown;
89
+ }> | null;
90
+ };
91
+ type CrnExecutionV1Payload = {
92
+ networking?: {
93
+ ipv4?: unknown;
94
+ ipv6?: unknown;
95
+ } | null;
96
+ };
97
+ type CrnExecutionV2Payload = {
98
+ networking?: {
99
+ ipv4_network?: unknown;
100
+ host_ipv4?: unknown;
101
+ ipv6_network?: unknown;
102
+ ipv6_ip?: unknown;
103
+ ipv4_ip?: unknown;
104
+ proxy_url?: unknown;
105
+ proxyUrl?: unknown;
106
+ web_access_url?: unknown;
107
+ webAccessUrl?: unknown;
108
+ proxy_hostname?: unknown;
109
+ proxyHostname?: unknown;
110
+ domain?: unknown;
111
+ hostname?: unknown;
112
+ mapped_ports?: Record<string, {
113
+ host?: unknown;
114
+ tcp?: unknown;
115
+ udp?: unknown;
116
+ }> | null;
117
+ } | null;
118
+ web_access?: {
119
+ url?: unknown;
120
+ proxy_url?: unknown;
121
+ hostname?: unknown;
122
+ domain?: unknown;
123
+ } | null;
124
+ webAccess?: {
125
+ url?: unknown;
126
+ proxy_url?: unknown;
127
+ hostname?: unknown;
128
+ domain?: unknown;
129
+ } | null;
130
+ status?: {
131
+ defined_at?: unknown;
132
+ preparing_at?: unknown;
133
+ prepared_at?: unknown;
134
+ starting_at?: unknown;
135
+ started_at?: unknown;
136
+ stopping_at?: unknown;
137
+ stopped_at?: unknown;
138
+ } | null;
139
+ running?: unknown;
140
+ };
141
+ declare function normalizeMessageStatus(status: unknown): MessageStatus;
142
+ declare function normalizeProxyUrl(value: unknown): string | null;
143
+ declare function messageTypeFromEnvelope(payload: MessageEnvelope$1 | null): string | null;
144
+ declare function extractReferenceHashes(details: unknown): string[];
145
+ declare function describeRejectedDeployment(payload: MessageEnvelope$1, references: MessageReference[], rootfsRef?: string): string;
146
+ declare function extractProxyUrl(item: CrnExecutionV2Payload, networking: CrnExecutionV2Payload['networking']): string | null;
147
+ declare function normalizeExecution(item: CrnExecutionV1Payload | CrnExecutionV2Payload, crnUrl: string): InstanceExecution;
148
+
149
+ type MessageEnvelope = {
150
+ status?: unknown;
151
+ type?: unknown;
152
+ error_code?: unknown;
153
+ details?: unknown;
154
+ message?: {
155
+ type?: unknown;
156
+ } | null;
157
+ messages?: Array<{
158
+ type?: unknown;
159
+ }> | null;
160
+ };
161
+ declare function fetchMessageEnvelope(itemHash: string, options: {
162
+ apiHost?: string;
163
+ fetch: FetchLike;
164
+ }): Promise<MessageEnvelope | null>;
165
+ declare function inspectMessageResult(itemHash: string, options: {
166
+ apiHost?: string;
167
+ fetch: FetchLike;
168
+ label?: string;
169
+ }): Promise<MessageInspectionResult>;
170
+ declare function inspectDeploymentResult(itemHash: string, options: {
171
+ rootfsRef?: string;
172
+ apiHost?: string;
173
+ fetch: FetchLike;
174
+ }): Promise<DeploymentInspectionResult>;
175
+ declare function waitForDeploymentResult(itemHash: string, options: {
176
+ rootfsRef?: string;
177
+ apiHost?: string;
178
+ fetch: FetchLike;
179
+ attempts?: number;
180
+ delayMs?: number;
181
+ sleep?: (ms: number) => Promise<void>;
182
+ }): Promise<DeploymentInspectionResult>;
183
+
184
+ interface JsonFetchLikeResponse {
185
+ ok: boolean;
186
+ status: number;
187
+ json(): Promise<unknown>;
188
+ }
189
+ type JsonFetchLike = (url: string, init?: RequestInit) => Promise<JsonFetchLikeResponse>;
190
+ declare function signaturePayload(message: Pick<AlephBroadcastMessage, 'chain' | 'sender' | 'type' | 'item_hash'>): string;
191
+ declare function signAlephMessage(unsignedMessage: Omit<AlephBroadcastMessage, 'signature'>, signer: MessageSigner): Promise<AlephBroadcastMessage>;
192
+ declare function normalizeBroadcastStatus(httpStatus: number, responseStatus: unknown): MessageStatus;
193
+ declare function isInvalidMessageFormatResponse(response: {
194
+ status: number;
195
+ }, payload: AlephBroadcastResponse): boolean;
196
+ declare function isRetryableBroadcastFailure(response: {
197
+ status: number;
198
+ }, payload: AlephBroadcastResponse): boolean;
199
+ declare function postBroadcastPayload(body: Record<string, unknown>, options: {
200
+ apiHost?: string;
201
+ fetch: JsonFetchLike;
202
+ }): Promise<{
203
+ response: AlephBroadcastResponse;
204
+ httpStatus: number;
205
+ }>;
206
+ declare function broadcastAlephMessage(message: AlephBroadcastMessage, options: {
207
+ apiHost?: string;
208
+ sync?: boolean;
209
+ fetch: JsonFetchLike;
210
+ }): Promise<{
211
+ response: AlephBroadcastResponse;
212
+ httpStatus: number;
213
+ }>;
214
+
215
+ declare function createUnsignedForgetMessage(args: {
216
+ sender: string;
217
+ hashes?: string[];
218
+ aggregates?: string[];
219
+ reason?: string;
220
+ hasher: MessageHasher;
221
+ channel?: string;
222
+ now?: number;
223
+ }): Promise<Omit<AlephBroadcastMessage, 'signature'>>;
224
+ declare function forgetAlephMessages(args: {
225
+ sender: string;
226
+ hashes?: string[];
227
+ aggregates?: string[];
228
+ reason?: string;
229
+ signer: MessageSigner;
230
+ hasher: MessageHasher;
231
+ fetch: JsonFetchLike;
232
+ channel?: string;
233
+ apiHost?: string;
234
+ sync?: boolean;
235
+ now?: number;
236
+ }): Promise<{
237
+ sender: string;
238
+ itemHash: string;
239
+ response: _shared_aleph_shared_types.AlephBroadcastResponse;
240
+ httpStatus: number;
241
+ status: _shared_aleph_shared_types.MessageStatus;
242
+ }>;
243
+ declare function cleanupFailedDeployment(args: {
244
+ sender: string;
245
+ instanceItemHash: string;
246
+ reason?: string;
247
+ signer: MessageSigner;
248
+ hasher: MessageHasher;
249
+ fetch: JsonFetchLike;
250
+ channel?: string;
251
+ apiHost?: string;
252
+ }): Promise<{
253
+ sender: string;
254
+ itemHash: string;
255
+ response: _shared_aleph_shared_types.AlephBroadcastResponse;
256
+ httpStatus: number;
257
+ status: _shared_aleph_shared_types.MessageStatus;
258
+ } | {
259
+ error: string;
260
+ }>;
261
+
262
+ declare const SUCCESSFUL_DEPLOYMENTS_AGGREGATE_KEY = "uc-go-peer-successful-deployments";
263
+ interface RetentionRecord {
264
+ instance_item_hash: string;
265
+ rootfs_item_hash: string;
266
+ site_item_hash: string;
267
+ rootfs_cid: string;
268
+ site_url: string;
269
+ relay_peer_id: string;
270
+ rootfs_version: string;
271
+ deployed_at: string;
272
+ vm_name: string;
273
+ }
274
+ declare function fetchAggregateKey(args: {
275
+ address: string;
276
+ key: string;
277
+ fetch: JsonFetchLike;
278
+ apiHost?: string;
279
+ }): Promise<unknown>;
280
+ declare function publishAggregateKey(args: {
281
+ sender: string;
282
+ key: string;
283
+ content: Record<string, unknown>;
284
+ signer: MessageSigner;
285
+ hasher: MessageHasher;
286
+ fetch: JsonFetchLike;
287
+ channel?: string;
288
+ apiHost?: string;
289
+ now?: number;
290
+ }): Promise<{
291
+ itemHash: string;
292
+ status: _shared_aleph_shared_types.MessageStatus;
293
+ response: _shared_aleph_shared_types.AlephBroadcastResponse;
294
+ httpStatus: number;
295
+ }>;
296
+ declare function retainSuccessfulDeployments(args: {
297
+ sender: string;
298
+ currentRecord: unknown;
299
+ keepCount: number;
300
+ signer: MessageSigner;
301
+ hasher: MessageHasher;
302
+ fetch: JsonFetchLike;
303
+ aggregateKey?: string;
304
+ extraForgetHashes?: string[];
305
+ reason?: string;
306
+ channel?: string;
307
+ apiHost?: string;
308
+ now?: number;
309
+ }): Promise<{
310
+ sender: string;
311
+ aggregateKey: string;
312
+ keepCount: number;
313
+ aggregatePublication: {
314
+ itemHash: string;
315
+ status: _shared_aleph_shared_types.MessageStatus;
316
+ response: _shared_aleph_shared_types.AlephBroadcastResponse;
317
+ httpStatus: number;
318
+ };
319
+ retainedRecords: RetentionRecord[];
320
+ prunedRecords: RetentionRecord[];
321
+ forgetHashes: string[];
322
+ forgetResult: {
323
+ sender: string;
324
+ itemHash: string;
325
+ response: _shared_aleph_shared_types.AlephBroadcastResponse;
326
+ httpStatus: number;
327
+ status: _shared_aleph_shared_types.MessageStatus;
328
+ } | null;
329
+ }>;
330
+
331
+ declare function createPortForwardAggregateContent(args: {
332
+ sender: string;
333
+ instanceItemHash: string;
334
+ requestedPorts: ReadonlyArray<RootfsRequiredPortForward>;
335
+ existingAggregate?: PortForwardAggregate;
336
+ now?: number;
337
+ }): AlephAggregateContent<PortForwardAggregate>;
338
+ declare function createUnsignedAggregateMessage(args: {
339
+ sender: string;
340
+ content: AlephAggregateContent<PortForwardAggregate>;
341
+ hasher: MessageHasher;
342
+ channel?: string;
343
+ now?: number;
344
+ }): Promise<Omit<AlephBroadcastMessage, 'signature'>>;
345
+ declare function ensureInstancePortForwards(args: {
346
+ sender: string;
347
+ instanceItemHash: string;
348
+ manifest: RootfsManifest | null;
349
+ signer: MessageSigner;
350
+ hasher: MessageHasher;
351
+ fetch: JsonFetchLike;
352
+ channel?: string;
353
+ apiHost?: string;
354
+ sync?: boolean;
355
+ }): Promise<{
356
+ aggregateItemHash: string;
357
+ aggregateStatus: MessageStatus;
358
+ requestedPorts: RootfsRequiredPortForward[];
359
+ }>;
360
+
361
+ declare const SSH_PUBLIC_KEY_PATTERN: RegExp;
362
+ declare function normalizeSshPublicKey(value: string): string;
363
+ declare function isValidSshPublicKey(value: string): boolean;
364
+ declare function createReleaseMetadata(name: string, rootfsVersion: string, deployer?: string): {
365
+ name: string;
366
+ rootfs_version: string;
367
+ deployer: string;
368
+ };
369
+ declare function createInstanceContent(args: {
370
+ address: string;
371
+ name: string;
372
+ sshPublicKey: string;
373
+ rootfsItemHash: string;
374
+ rootfsSizeMiB: number;
375
+ vcpus: number;
376
+ memoryMiB: number;
377
+ seconds?: number;
378
+ rootfsVersion?: string;
379
+ crnHash?: string;
380
+ deployer?: string;
381
+ now?: number;
382
+ }): AlephInstanceContent;
383
+ declare function createUnsignedInstanceMessage(args: {
384
+ sender: string;
385
+ content: AlephInstanceContent;
386
+ hasher: MessageHasher;
387
+ channel?: string;
388
+ now?: number;
389
+ }): Promise<Omit<AlephBroadcastMessage, 'signature'>>;
390
+ declare function deployInstance(args: {
391
+ sender: string;
392
+ content: AlephInstanceContent;
393
+ hasher: MessageHasher;
394
+ signer: MessageSigner;
395
+ fetch: (url: string, init?: RequestInit) => Promise<{
396
+ ok: boolean;
397
+ status: number;
398
+ json(): Promise<unknown>;
399
+ }>;
400
+ apiHost?: string;
401
+ channel?: string;
402
+ sync?: boolean;
403
+ now?: number;
404
+ }): Promise<DeploymentResult>;
405
+
406
+ declare const DEFAULT_SCHEDULER_ALLOCATION_URL = "https://scheduler.api.aleph.cloud/api/v0/allocation";
407
+ declare const DEFAULT_TWO_N_SIX_HASH_URL = "https://api.2n6.me/api/hash";
408
+ type CrnExecutionLookup = {
409
+ version: 'v1' | 'v2';
410
+ payload: Record<string, unknown> | null;
411
+ requestUrl: string;
412
+ };
413
+ declare function findCrnByHash(crns: ReadonlyArray<CrnRecord>, crnHash: string): CrnRecord | null;
414
+ declare function fetchSchedulerAllocation(itemHash: string, options: {
415
+ fetch: FetchLike;
416
+ schedulerAllocationUrl?: string;
417
+ }): Promise<InstanceAllocation | null>;
418
+ declare function fetch2n6WebAccessUrl(itemHash: string, options: {
419
+ fetch: FetchLike;
420
+ twoN6HashUrl?: string;
421
+ }): Promise<InstanceWebAccess | null>;
422
+ declare function fetchCrnExecutionMap(crnUrl: string, options: {
423
+ fetch: FetchLike;
424
+ }): Promise<CrnExecutionLookup>;
425
+ declare function describeRuntimeAvailability(runtime: {
426
+ allocation?: InstanceAllocation | null;
427
+ execution?: InstanceRuntimeDetails['execution'];
428
+ webAccess?: InstanceWebAccess | null;
429
+ hostIpv4?: string | null;
430
+ ipv6?: string | null;
431
+ proxyUrl?: string | null;
432
+ mappedPorts?: Record<string, unknown>;
433
+ }): RuntimeDiagnostics;
434
+ declare function fetchVmRuntime(args: {
435
+ itemHash: string;
436
+ fetch: FetchLike;
437
+ crns?: CrnRecord[];
438
+ crnHash?: string;
439
+ crnListUrl?: string;
440
+ schedulerAllocationUrl?: string;
441
+ twoN6HashUrl?: string;
442
+ }): Promise<Omit<InstanceRuntimeDetails, 'messageStatus'>>;
443
+ declare function waitForVmRuntime(args: {
444
+ itemHash: string;
445
+ fetch: FetchLike;
446
+ crns?: CrnRecord[];
447
+ crnHash?: string;
448
+ crnListUrl?: string;
449
+ schedulerAllocationUrl?: string;
450
+ twoN6HashUrl?: string;
451
+ attempts?: number;
452
+ delayMs?: number;
453
+ sleep?: (ms: number) => Promise<void>;
454
+ }): Promise<Omit<InstanceRuntimeDetails, 'messageStatus'>>;
455
+
456
+ type TcpProbeResult = {
457
+ ok: boolean | null;
458
+ error?: string;
459
+ };
460
+ type HttpProbeResult = {
461
+ ok: boolean;
462
+ status?: number;
463
+ url?: string;
464
+ error?: string;
465
+ };
466
+ declare function notifyCrnAllocation(args: {
467
+ crnUrl: string | null | undefined;
468
+ itemHash: string;
469
+ fetch: FetchLike;
470
+ }): Promise<{
471
+ status: 'confirmed' | 'unconfirmed' | 'skipped';
472
+ reason?: string;
473
+ payload?: unknown;
474
+ }>;
475
+ declare function waitForSetupEndpoint(args: {
476
+ hostIpv4: string;
477
+ setupPort: number;
478
+ fetch: FetchLike;
479
+ attempts?: number;
480
+ delayMs?: number;
481
+ httpTimeoutMs?: number;
482
+ sleep?: (ms: number) => Promise<void>;
483
+ }): Promise<HttpProbeResult>;
484
+ declare function configureUcGoPeer(args: {
485
+ hostIpv4: string;
486
+ setupPort: number;
487
+ publicIpv6?: string | null;
488
+ tcpPort?: number | null;
489
+ wsPort?: number | null;
490
+ udpPort?: number | null;
491
+ quicPort?: number | null;
492
+ webrtcPort?: number | null;
493
+ proxyUrl?: string | null;
494
+ fetch: FetchLike;
495
+ timeoutMs?: number;
496
+ }): Promise<unknown>;
497
+ declare function fetchUcGoPeerMetadata(args: {
498
+ hostIpv4: string;
499
+ setupPort: number;
500
+ fetch: FetchLike;
501
+ attempts?: number;
502
+ delayMs?: number;
503
+ timeoutMs?: number;
504
+ sleep?: (ms: number) => Promise<void>;
505
+ }): Promise<unknown>;
506
+ declare function verifyUcGoPeerReachability(args: {
507
+ hostIpv4?: string | null;
508
+ mappedPorts?: Record<string, PortMapping>;
509
+ proxyUrl?: string | null;
510
+ verifyProxyHttp?: boolean;
511
+ skipInternalPorts?: string[];
512
+ tcpTimeoutMs?: number;
513
+ httpTimeoutMs?: number;
514
+ fetch: FetchLike;
515
+ tcpProbe: (host: string, port: number, timeoutMs?: number) => Promise<TcpProbeResult>;
516
+ httpProbe?: (url: string, timeoutMs?: number) => Promise<HttpProbeResult>;
517
+ }): Promise<{
518
+ ok: boolean;
519
+ checks: Record<string, Record<string, unknown>>;
520
+ }>;
521
+
522
+ export { DEFAULT_ALEPH_API_HOST, DEFAULT_ALEPH_CHANNEL, DEFAULT_COUNTRY_LOOKUP_BASE_URL, DEFAULT_CRN_LIST_URL, DEFAULT_DNS_RESOLVE_URL, DEFAULT_INSTANCE_PORT_FORWARDS, DEFAULT_IPFS_GATEWAY_BASE_URL, DEFAULT_SCHEDULER_ALLOCATION_URL, DEFAULT_TWO_N_SIX_HASH_URL, type FetchLike, type FetchLikeResponse, type HttpProbeResult, ITEM_HASH_RE, type JsonFetchLike, type JsonFetchLikeResponse, type RetentionRecord, SSH_PUBLIC_KEY_PATTERN, SUCCESSFUL_DEPLOYMENTS_AGGREGATE_KEY, type TcpProbeResult, broadcastAlephMessage, cleanupFailedDeployment, configureUcGoPeer, createInstanceContent, createPortForwardAggregateContent, createReleaseMetadata, createUnsignedAggregateMessage, createUnsignedForgetMessage, createUnsignedInstanceMessage, deployInstance, describeRejectedDeployment, describeRuntimeAvailability, enrichCrnsWithGeo, ensureInstancePortForwards, extractProxyUrl, extractReferenceHashes, fetch2n6WebAccessUrl, fetchAggregateKey, fetchCrnExecutionMap, fetchCrns, fetchMessageEnvelope, fetchPortForwardAggregate, fetchSchedulerAllocation, fetchUcGoPeerMetadata, fetchVmRuntime, findCrnByHash, forgetAlephMessages, inspectDeploymentResult, inspectMessageResult, isInvalidMessageFormatResponse, isRetryableBroadcastFailure, isValidSshPublicKey, listGeocodedCrns, mergePortFlagMaps, mergeRequiredPortForwards, messageTypeFromEnvelope, normalizeBroadcastStatus, normalizeExecution, normalizeExistingPortForwardEntry, normalizeMessageStatus, normalizeProxyUrl, normalizeSshPublicKey, notifyCrnAllocation, portForwardLabel, postBroadcastPayload, probeRootfsGateway, publishAggregateKey, rankCandidateCrns, requestedPortFlags, requiredInstancePortForwards, resolveRootfsReference, retainSuccessfulDeployments, selectPreferredCrn, signAlephMessage, signaturePayload, validateRootfsManifest, verifyRootfsExists, verifyUcGoPeerReachability, waitForDeploymentResult, waitForSetupEndpoint, waitForVmRuntime };