@ultrst-armada/kloks 1.1.0 → 1.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/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +6 -1
- package/packages/audio-midi/dist/chunk-3GRGELA4.js +6 -6
- package/packages/audio-midi/dist/index.d.ts +3 -3
- package/packages/audio-midi/dist/index.js +10 -10
- package/packages/backend/dist/BaseAccountProvider-DduKf5HG.d.ts +1 -1
- package/packages/backend/dist/BaseStorageAdapter-tosOoSUg.d.ts +1 -1
- package/packages/backend/dist/api/index.d.ts +1 -1
- package/packages/backend/dist/auth/index.d.ts +1 -1
- package/packages/backend/dist/chunk-4ZFXEFOE.js +2 -2
- package/packages/backend/dist/chunk-J2J24JVC.js +1 -1
- package/packages/backend/dist/chunk-KTLD7Z4L.js +3 -3
- package/packages/backend/dist/chunk-RCCQ7IRM.js +3 -3
- package/packages/backend/dist/chunk-TWCEVES2.js +1 -1
- package/packages/backend/dist/control-plane/index.d.ts +1 -1
- package/packages/backend/dist/index.d.ts +822 -31
- package/packages/backend/dist/index.js +2741 -513
- package/packages/backend/dist/krnl-services.js +2 -2
- package/packages/backend/dist/storage/index.d.ts +1 -1
- package/packages/backend/dist/workspace/index.d.ts +1 -1
- package/packages/orchestrations/dist/index.d.ts +3 -3
- package/packages/orchestrations/dist/index.js +3 -3
- package/packages/services/dist/index.d.ts +3 -3
- package/packages/state-graph/dist/{BaseGraph-Bl2f7Pqx.d.ts → BaseGraph-BvkSYOTw.d.ts} +1 -1
- package/packages/state-graph/dist/{BaseNode-1HCEqmap.d.ts → BaseNode-DTcd3K1B.d.ts} +1 -1
- package/packages/state-graph/dist/{CompatibilityMatrix-DX307_vS.d.ts → CompatibilityMatrix-Dj-tCWUA.d.ts} +1 -1
- package/packages/state-graph/dist/chunk-JXDJZSFW.js +459 -0
- package/packages/state-graph/dist/chunk-RHRXPY2U.js +0 -0
- package/packages/state-graph/dist/domain/index.d.ts +3 -3
- package/packages/state-graph/dist/index.d.ts +8 -9
- package/packages/state-graph/dist/index.js +25 -16
- package/packages/state-graph/dist/rules/index.d.ts +3 -3
- package/packages/state-graph/dist/rules/index.js +2 -1
- package/packages/state-graph/dist/spatial/index.d.ts +53 -5
- package/packages/state-graph/dist/spatial/index.js +12 -3
- package/packages/state-graph/dist/store/index.d.ts +159 -6
- package/packages/state-graph/dist/types-VDoc4FIc.d.ts +150 -0
- package/packages/state-graph/dist/TraceEngine-CJVpUb80.d.ts +0 -18
- package/packages/state-graph/dist/chunk-YTWCH6P2.js +0 -109
- package/packages/state-graph/dist/index-CiekWEH3.d.ts +0 -272
- package/packages/backend/dist/{chunk-CU7RZBMF.js → chunk-OYQKQAEF.js} +4 -4
- /package/packages/state-graph/dist/{chunk-QN74PLMF.js → chunk-TZOL3RN7.js} +0 -0
|
@@ -5,7 +5,7 @@ export { B2AuthToken, BackblazeB2Adapter, LocalFSAdapter, S3Adapter, StorageAdap
|
|
|
5
5
|
export { CloneReplicationResult, ConflictPolicy, SyncEngine, SyncState, WorkspaceCloneSyncEngine, WorkspaceConfig, WorkspaceDescriptor, WorkspaceFS, WorkspaceSecondaryClone, WorkspaceSyncSummary, formatCanonicalWorkspaceFolderName, sanitizeWorkspaceName } from './workspace/index.js';
|
|
6
6
|
export { AuditEvent, AuditLogger, ClusterConfig, ControlPlaneManager, DatabaseClusterManager, HealthStatus, detectDatabaseEngine, getSystemDatabaseUrls, resolveSystemDatabaseClusterNodes } from './control-plane/index.js';
|
|
7
7
|
export { ApiError, ApiResponse, BaseApiRoute, Middleware, RouteConfig, createSSEResponse, withAuth, withCors } from './api/index.js';
|
|
8
|
-
import { SkipoBase } from '@
|
|
8
|
+
import { SkipoBase } from '@kloks/functions';
|
|
9
9
|
export { A as AuthContext, B as BackendExecutor, a as BackendInstance, C as CallbackHandle, b as CapabilityContext, D as Delegation, c as DistributedLock, I as IdempotentRequest, J as Job, d as JobPriority, e as JobState, M as Message, f as MessageType, R as ResolutionStrategy, g as ResourceVersion, h as RoutingStrategy } from './types-BERZJ93O.js';
|
|
10
10
|
export { BackendContract, BackendRegistry, CallbackDefinition, ConcurrencyConflictError, ConcurrencyManager, DomainContract, EventDefinition, HealthMonitor, InProcessExecutor, JobDefinition, JobHandler, JobScheduler, LoadBalancer, LockManager, OperationDefinition, RemoteExecutor, RemoteExecutorOptions, createEmptyContract } from './connectivity/index.js';
|
|
11
11
|
export { B as BackendClient, a as BackendClientOptions, b as BackendResolver, c as BackendResolverOptions, C as CallbackFn, d as CallbackRegistry, D as DomainProxy, E as ErrorHandler, e as EventBus, f as EventHandler, F as FrontendSession, g as FrontendSessionOptions, G as GapHandler, H as HTTPTransport, h as HTTPTransportOptions, I as ITransport, M as MessageHandler, S as SequenceCheckResult, i as SequenceTracker, W as WebSocketTransport, j as WebSocketTransportOptions, k as createBackendClient } from './WebSocketTransport-CxUzUfwl.js';
|
|
@@ -14,7 +14,7 @@ export { BackendClientInstance, BackendProvider, BackendProviderProps, useBacken
|
|
|
14
14
|
export { AdaptedStorageConnection, AppAccountManifest, AppServiceDeclaration, CANONICAL_SRKL_URL, EcosystemAccount, EcosystemAccountsRequest, EcosystemAccountsResponse, EcosystemServiceCategory, SrklClient, SrklClientOptions, SrklEcosystemQueryOptions, SrklEcosystemResponse, SrklServiceAccount, UseSrklServicesOptions, UseSrklServicesResult, createSrklClient, getPrimarySrklDeploymentUrl, getSrklAccounts, srklListBackblazeBuckets, useSrklServices } from './srkl/index.js';
|
|
15
15
|
export { BackendCommand, DomainService, ExecutableBackendFacade, ExecutionContext, JobDependencyGraph, NormalizedResult, OperationComponent, ResultFlowBridge, ServiceDispatcher, StateUpdateEvent, WorkerExecutionBoundary, createOperationComponent } from './execution/index.js';
|
|
16
16
|
export { CompositeBackend, EndpointGenerator, GeneratedEndpointSummary, LocalService, RemoteServiceProxy, createBackend, createCompositeService, createLocalService, createRemoteService } from './services/index.js';
|
|
17
|
-
import { AssetDataType as AssetDataType$1, AssetChannelType as AssetChannelType$1, GraphFolderInfo as GraphFolderInfo$1, GraphAssetItem as GraphAssetItem$1, SpaceNode, NodeConnection, DawProject } from '@
|
|
17
|
+
import { AssetDataType as AssetDataType$1, AssetChannelType as AssetChannelType$1, GraphFolderInfo as GraphFolderInfo$1, GraphAssetItem as GraphAssetItem$1, SpaceNode, NodeConnection, DawProject } from '@kloks/state-graph';
|
|
18
18
|
export { AuthServiceDefinition, AuthServiceFacade, ControlPlaneServiceDefinition, ControlPlaneServiceFacade, DatabaseServiceDefinition, DatabaseServiceFacade, ExecutionServiceDefinition, ExecutionServiceFacade, GeminiServiceDefinition, GeminiServiceFacade, StorageServiceDefinition, StorageServiceFacade, WorkspaceServiceDefinition, WorkspaceServiceFacade } from './krnl-services.js';
|
|
19
19
|
export { EndpointDescriptor, IService, ProtocolAdapter, ServiceDefinition } from '@ultrst-armada/krnl';
|
|
20
20
|
import 'react';
|
|
@@ -325,46 +325,465 @@ declare function getSrklStatus(env?: Record<string, unknown>): Promise<{
|
|
|
325
325
|
}>;
|
|
326
326
|
|
|
327
327
|
/**
|
|
328
|
-
* @file
|
|
329
|
-
* @description
|
|
330
|
-
*
|
|
331
|
-
* Conforms to Skipo Governance (< 200 lines).
|
|
328
|
+
* @file credentialVaultCore.ts
|
|
329
|
+
* @description Universal Workspace-Scoped Credential Vault.
|
|
330
|
+
* AES-256-GCM + PBKDF2 Web Crypto, non-sensitive manifest.json + encrypted secrets/*.bin (< 200 lines).
|
|
332
331
|
*/
|
|
333
|
-
interface
|
|
332
|
+
interface CredentialEntry {
|
|
334
333
|
id: string;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
334
|
+
name: string;
|
|
335
|
+
type: string;
|
|
336
|
+
createdAt: string;
|
|
337
|
+
updatedAt: string;
|
|
338
|
+
metadata?: Record<string, unknown>;
|
|
339
|
+
}
|
|
340
|
+
interface CredentialManifest {
|
|
341
|
+
version: 1;
|
|
342
|
+
entries: CredentialEntry[];
|
|
343
|
+
}
|
|
344
|
+
declare function encryptSecretToBlob(plaintext: string | object, vaultKey: string): Promise<Uint8Array>;
|
|
345
|
+
declare function decryptSecretFromBlob(blob: Uint8Array, vaultKey: string): Promise<any>;
|
|
346
|
+
declare function loadCredentialManifest(workspace: any, connection: any): Promise<CredentialManifest>;
|
|
347
|
+
declare function saveCredentialManifest(workspace: any, connection: any, manifest: CredentialManifest): Promise<void>;
|
|
348
|
+
declare function listCredentials(workspace: any, connection: any): Promise<CredentialEntry[]>;
|
|
349
|
+
declare function getCredential(workspace: any, connection: any, id: string, vaultKey: string): Promise<any>;
|
|
350
|
+
declare function createCredential(workspace: any, connection: any, payload: {
|
|
351
|
+
id?: string;
|
|
352
|
+
name: string;
|
|
353
|
+
type: string;
|
|
354
|
+
secret: any;
|
|
355
|
+
metadata?: Record<string, unknown>;
|
|
356
|
+
}, vaultKey: string): Promise<CredentialEntry>;
|
|
357
|
+
declare function updateCredential(workspace: any, connection: any, id: string, payload: {
|
|
358
|
+
name?: string;
|
|
359
|
+
type?: string;
|
|
360
|
+
secret?: any;
|
|
361
|
+
metadata?: Record<string, unknown>;
|
|
362
|
+
}, vaultKey: string): Promise<CredentialEntry>;
|
|
363
|
+
declare function deleteCredential(workspace: any, connection: any, id: string): Promise<boolean>;
|
|
364
|
+
declare function exportEncryptedCredentials(workspace: any, connection: any, ids: string[], exportKey: string, vaultKey: string): Promise<{
|
|
365
|
+
exportVersion: 1;
|
|
366
|
+
timestamp: string;
|
|
367
|
+
package: string;
|
|
368
|
+
}>;
|
|
369
|
+
declare function importEncryptedCredentials(workspace: any, connection: any, packageB64: string, exportKey: string, vaultKey: string): Promise<CredentialEntry[]>;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* @file publicRoutesStore.ts
|
|
373
|
+
* @description In-memory store and interface for DEPM public routes.
|
|
374
|
+
* Pure Web-standard, zero Node/Express dependencies (< 100 lines).
|
|
375
|
+
*/
|
|
376
|
+
interface PublicRouteRecord {
|
|
377
|
+
id: string;
|
|
378
|
+
path: string;
|
|
379
|
+
name?: string;
|
|
380
|
+
status: 'PUBLISHED' | 'DRAFT' | 'PAUSED';
|
|
381
|
+
public: boolean;
|
|
382
|
+
endpoint: string;
|
|
383
|
+
deployments: Array<{
|
|
384
|
+
id: string;
|
|
385
|
+
name: string;
|
|
386
|
+
url: string;
|
|
387
|
+
provider?: string;
|
|
388
|
+
weight: number;
|
|
389
|
+
healthy: boolean;
|
|
390
|
+
priority?: number;
|
|
391
|
+
region?: string;
|
|
392
|
+
}>;
|
|
393
|
+
load_balancing_config: {
|
|
394
|
+
strategy: 'MAX_WEIGHT' | 'WEIGHTED' | 'ROUND_ROBIN' | 'RANDOM' | 'FAILOVER_PRIORITY';
|
|
395
|
+
healthCheckRequired?: boolean;
|
|
396
|
+
autoRedirectDelayMs?: number;
|
|
397
|
+
preserveQueryParams?: boolean;
|
|
398
|
+
preservePathSuffix?: boolean;
|
|
399
|
+
fallbackUrl?: string;
|
|
400
|
+
};
|
|
344
401
|
createdAt: string;
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
402
|
+
updatedAt: string;
|
|
403
|
+
stats?: {
|
|
404
|
+
requests: number;
|
|
405
|
+
lastRoutedAt?: string;
|
|
406
|
+
};
|
|
348
407
|
}
|
|
349
|
-
declare
|
|
350
|
-
declare function
|
|
408
|
+
declare let serverPublicRoutes: PublicRouteRecord[];
|
|
409
|
+
declare function setServerPublicRoutes(routes: PublicRouteRecord[]): void;
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* @file routesCore.ts
|
|
413
|
+
* @description Universal Gateway & Routing Service for DEPM.
|
|
414
|
+
* Governs public routes resolution, dynamic database hydration, and load-balancing ingress.
|
|
415
|
+
* Runs identically in Node.js, Vercel Serverless, and Cloudflare Workers (< 200 lines).
|
|
416
|
+
*/
|
|
417
|
+
|
|
418
|
+
declare function getPublicRoutes(): {
|
|
419
|
+
success: boolean;
|
|
420
|
+
count: number;
|
|
421
|
+
routes: PublicRouteRecord[];
|
|
422
|
+
};
|
|
423
|
+
declare function getPublicRouteByPath(rawPath: string, env?: Record<string, unknown>): Promise<{
|
|
424
|
+
success: boolean;
|
|
425
|
+
error: string;
|
|
426
|
+
status: number;
|
|
427
|
+
route?: undefined;
|
|
428
|
+
} | {
|
|
429
|
+
success: boolean;
|
|
430
|
+
route: PublicRouteRecord;
|
|
431
|
+
status: number;
|
|
432
|
+
error?: undefined;
|
|
433
|
+
}>;
|
|
434
|
+
declare function getAllRoutes(): {
|
|
435
|
+
success: boolean;
|
|
436
|
+
count: number;
|
|
437
|
+
routes: PublicRouteRecord[];
|
|
438
|
+
};
|
|
439
|
+
declare function deleteRoute(id: string): {
|
|
440
|
+
success: boolean;
|
|
441
|
+
count: number;
|
|
442
|
+
};
|
|
443
|
+
declare function upsertRoute(rawRouteData: any): {
|
|
444
|
+
success: boolean;
|
|
445
|
+
error: string;
|
|
446
|
+
status: number;
|
|
447
|
+
route?: undefined;
|
|
448
|
+
} | {
|
|
449
|
+
success: boolean;
|
|
450
|
+
route: PublicRouteRecord;
|
|
451
|
+
status: number;
|
|
452
|
+
error?: undefined;
|
|
453
|
+
};
|
|
454
|
+
declare function getGatewayConfig(env?: Record<string, unknown>): {
|
|
455
|
+
success: boolean;
|
|
456
|
+
domain: string;
|
|
457
|
+
gatewayDomain: string;
|
|
458
|
+
isConfigured: boolean;
|
|
459
|
+
mode: string;
|
|
460
|
+
registeredRoutesCount: number;
|
|
461
|
+
activeRoutes: {
|
|
462
|
+
id: string;
|
|
463
|
+
path: string;
|
|
464
|
+
deploymentsCount: number;
|
|
465
|
+
}[];
|
|
466
|
+
};
|
|
467
|
+
declare function getExecutions(appId: string): {
|
|
468
|
+
success: boolean;
|
|
469
|
+
appId: string;
|
|
470
|
+
count: number;
|
|
471
|
+
executions: any[];
|
|
472
|
+
};
|
|
473
|
+
declare function recordExecution(appId: string, data: any): {
|
|
474
|
+
success: boolean;
|
|
475
|
+
execution: {
|
|
476
|
+
id: string;
|
|
477
|
+
appId: string;
|
|
478
|
+
timestamp: string;
|
|
479
|
+
durationMs: any;
|
|
480
|
+
status: any;
|
|
481
|
+
details: any;
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
declare function matchGatewayIngress(urlPath: string, search?: string): {
|
|
485
|
+
destinationUrl: string;
|
|
486
|
+
} | null;
|
|
487
|
+
declare function matchGatewayIngressAsync(urlPath: string, search?: string, env?: Record<string, unknown>): Promise<{
|
|
488
|
+
destinationUrl: string;
|
|
489
|
+
} | null>;
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* @file dynamicRouteResolver.ts
|
|
493
|
+
* @description Resolves public ingress routes and calculates dynamic deployment weights
|
|
494
|
+
* directly from live database user profiles and account resources.
|
|
495
|
+
* Works across Node.js, Vercel Serverless, and Cloudflare Workers (< 160 lines).
|
|
496
|
+
*/
|
|
497
|
+
|
|
498
|
+
declare function resolveDynamicRouteFromDb(rawPath: string, env?: Record<string, unknown>): Promise<PublicRouteRecord | null>;
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* @file workspaceDataCore.ts
|
|
502
|
+
* @description User-Scoped Workspace Data Persistence for DEPM.
|
|
503
|
+
* Persists apps, graphs, ecosystems to "ultrst-users".app_profiles.depm.workspace_data[workspaceId].
|
|
504
|
+
* Runs identically in Node.js, Vercel Serverless, and Cloudflare Workers (< 200 lines).
|
|
505
|
+
*/
|
|
506
|
+
declare function loadWorkspaceData(userId?: string, workspaceId?: string, env?: Record<string, unknown>): Promise<{
|
|
507
|
+
success: boolean;
|
|
508
|
+
error: string;
|
|
509
|
+
workspace: any;
|
|
510
|
+
workspaceId?: undefined;
|
|
511
|
+
} | {
|
|
351
512
|
success: boolean;
|
|
513
|
+
workspace: any;
|
|
352
514
|
workspaceId: string;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
515
|
+
error?: undefined;
|
|
516
|
+
}>;
|
|
517
|
+
declare function saveWorkspaceData(userId: string | undefined, workspaceId: string, data: any, env?: Record<string, unknown>): Promise<{
|
|
518
|
+
success: boolean;
|
|
519
|
+
error: string;
|
|
520
|
+
workspaceId?: undefined;
|
|
521
|
+
workspace?: undefined;
|
|
522
|
+
protected?: undefined;
|
|
523
|
+
} | {
|
|
524
|
+
success: boolean;
|
|
525
|
+
workspaceId: string;
|
|
526
|
+
workspace: any;
|
|
527
|
+
protected: boolean;
|
|
528
|
+
error?: undefined;
|
|
529
|
+
} | {
|
|
530
|
+
success: boolean;
|
|
531
|
+
workspaceId: string;
|
|
532
|
+
workspace: any;
|
|
533
|
+
error?: undefined;
|
|
534
|
+
protected?: undefined;
|
|
535
|
+
}>;
|
|
536
|
+
declare function renameAppInWorkspaceData(userId: string | undefined, workspaceId: string, appId: string, newName: string, env?: Record<string, unknown>): Promise<{
|
|
537
|
+
success: boolean;
|
|
538
|
+
error: string;
|
|
539
|
+
workspace: any;
|
|
540
|
+
workspaceId?: undefined;
|
|
541
|
+
} | {
|
|
542
|
+
success: boolean;
|
|
543
|
+
workspace: any;
|
|
544
|
+
workspaceId: string;
|
|
545
|
+
error?: undefined;
|
|
546
|
+
} | {
|
|
547
|
+
success: boolean;
|
|
548
|
+
error: string;
|
|
549
|
+
workspaceId?: undefined;
|
|
550
|
+
workspace?: undefined;
|
|
551
|
+
protected?: undefined;
|
|
552
|
+
}>;
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* @file workspaceStorageDetailsCore.ts
|
|
556
|
+
* @description Inspection of workspace cloud storage directly via Backblaze B2.
|
|
557
|
+
* Runs identically in Node.js, Vercel Serverless, and Cloudflare Workers (< 200 lines).
|
|
558
|
+
*/
|
|
559
|
+
declare function getWorkspaceStorageDetails(workspaceId: string, env?: Record<string, unknown>): Promise<{
|
|
560
|
+
success: boolean;
|
|
561
|
+
error: string;
|
|
562
|
+
workspaceId?: undefined;
|
|
563
|
+
storageProvider?: undefined;
|
|
564
|
+
connection?: undefined;
|
|
565
|
+
folderPrefix?: undefined;
|
|
566
|
+
localStats?: undefined;
|
|
567
|
+
bucket?: undefined;
|
|
568
|
+
files?: undefined;
|
|
569
|
+
fileCount?: undefined;
|
|
570
|
+
} | {
|
|
571
|
+
success: boolean;
|
|
572
|
+
workspaceId: string;
|
|
573
|
+
storageProvider: any;
|
|
574
|
+
connection: any;
|
|
575
|
+
folderPrefix: any;
|
|
576
|
+
localStats: {
|
|
577
|
+
exists: boolean;
|
|
578
|
+
appsCount: number;
|
|
579
|
+
ecosystemsCount: number;
|
|
580
|
+
};
|
|
581
|
+
bucket: any;
|
|
582
|
+
files: any[];
|
|
583
|
+
error?: undefined;
|
|
584
|
+
fileCount?: undefined;
|
|
585
|
+
} | {
|
|
586
|
+
success: boolean;
|
|
587
|
+
workspaceId: string;
|
|
588
|
+
storageProvider: string;
|
|
589
|
+
connection: {
|
|
590
|
+
id: any;
|
|
591
|
+
label: any;
|
|
592
|
+
provider: any;
|
|
593
|
+
};
|
|
594
|
+
folderPrefix: any;
|
|
595
|
+
bucket: {
|
|
596
|
+
name: any;
|
|
597
|
+
status: string;
|
|
598
|
+
id?: undefined;
|
|
599
|
+
type?: undefined;
|
|
600
|
+
endpoint?: undefined;
|
|
601
|
+
region?: undefined;
|
|
602
|
+
};
|
|
603
|
+
files: any[];
|
|
604
|
+
error?: undefined;
|
|
605
|
+
localStats?: undefined;
|
|
606
|
+
fileCount?: undefined;
|
|
607
|
+
} | {
|
|
608
|
+
success: boolean;
|
|
609
|
+
workspaceId: string;
|
|
610
|
+
storageProvider: string;
|
|
611
|
+
connection: {
|
|
612
|
+
id: any;
|
|
613
|
+
label: any;
|
|
614
|
+
provider: any;
|
|
615
|
+
};
|
|
616
|
+
folderPrefix: any;
|
|
617
|
+
bucket: {
|
|
618
|
+
id: any;
|
|
619
|
+
name: any;
|
|
620
|
+
type: any;
|
|
621
|
+
endpoint: any;
|
|
622
|
+
region: any;
|
|
623
|
+
status: string;
|
|
624
|
+
};
|
|
625
|
+
fileCount: number;
|
|
626
|
+
files: {
|
|
627
|
+
fileName: any;
|
|
628
|
+
sizeBytes: any;
|
|
629
|
+
uploadTimestamp: any;
|
|
630
|
+
}[];
|
|
631
|
+
error?: undefined;
|
|
632
|
+
localStats?: undefined;
|
|
633
|
+
} | {
|
|
634
|
+
success: boolean;
|
|
635
|
+
workspaceId: string;
|
|
636
|
+
storageProvider: string;
|
|
637
|
+
error: any;
|
|
638
|
+
folderPrefix: any;
|
|
639
|
+
connection?: undefined;
|
|
640
|
+
localStats?: undefined;
|
|
641
|
+
bucket?: undefined;
|
|
642
|
+
files?: undefined;
|
|
643
|
+
fileCount?: undefined;
|
|
644
|
+
}>;
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* @file workspaceCore.ts
|
|
648
|
+
* @description Universal Workspace Core Service for DEPM.
|
|
649
|
+
* Governs workspaces CRUD and Workspace Cloud Storage (Backblaze B2 via SRKL).
|
|
650
|
+
* Runs identically in Node.js, Vercel Serverless, and Cloudflare Workers (< 200 lines).
|
|
651
|
+
*/
|
|
652
|
+
|
|
653
|
+
declare function findUserWorkspace(workspaceId: string, env?: Record<string, unknown>): Promise<{
|
|
654
|
+
user: any;
|
|
655
|
+
workspace: any;
|
|
656
|
+
connection: any;
|
|
657
|
+
}>;
|
|
658
|
+
declare function getWorkspaces(userId?: string, env?: Record<string, unknown>): Promise<{
|
|
659
|
+
success: boolean;
|
|
660
|
+
workspaces: any;
|
|
661
|
+
activeWorkspaceId: any;
|
|
662
|
+
storage_connections: any;
|
|
356
663
|
}>;
|
|
357
|
-
declare function
|
|
664
|
+
declare function createWorkspace(userId: string, wsData: any, env?: Record<string, unknown>): Promise<{
|
|
358
665
|
success: boolean;
|
|
359
|
-
|
|
360
|
-
|
|
666
|
+
workspace: any;
|
|
667
|
+
workspaces: any;
|
|
668
|
+
}>;
|
|
669
|
+
declare function updateWorkspace(userId: string, params: any, env?: Record<string, unknown>): Promise<{
|
|
670
|
+
success: boolean;
|
|
671
|
+
workspace: any;
|
|
672
|
+
workspaces: any;
|
|
673
|
+
}>;
|
|
674
|
+
declare function deleteWorkspace(userId: string, wsId: string, env?: Record<string, unknown>): Promise<{
|
|
675
|
+
success: boolean;
|
|
676
|
+
workspaces: any;
|
|
677
|
+
}>;
|
|
678
|
+
|
|
679
|
+
/**
|
|
680
|
+
* @file workspaceFileCore.ts
|
|
681
|
+
* @description Universal Workspace File IO Abstraction.
|
|
682
|
+
* Routes reads, writes, and deletions to Local Disk or Backblaze B2 Object Storage (< 200 lines).
|
|
683
|
+
*/
|
|
684
|
+
declare function getWorkspaceFolderPrefix(workspace: any): string;
|
|
685
|
+
declare function isB2Workspace(workspace: any, connection: any): boolean;
|
|
686
|
+
declare function writeWorkspaceFile(workspace: any, connection: any, relativePath: string, content: string | Uint8Array, contentType?: string): Promise<void>;
|
|
687
|
+
declare function readWorkspaceFile(workspace: any, connection: any, relativePath: string): Promise<Uint8Array | null>;
|
|
688
|
+
declare function deleteWorkspaceFile(workspace: any, connection: any, relativePath: string): Promise<boolean>;
|
|
689
|
+
declare function listWorkspaceFiles(workspace: any, connection: any, subPrefix?: string): Promise<Array<{
|
|
690
|
+
fileName: string;
|
|
691
|
+
sizeBytes: number;
|
|
692
|
+
uploadTimestamp?: number;
|
|
693
|
+
}>>;
|
|
694
|
+
declare function deleteWorkspaceFolder(workspace: any, connection: any): Promise<void>;
|
|
695
|
+
|
|
696
|
+
/**
|
|
697
|
+
* @file workspaceBucketSyncCore.ts
|
|
698
|
+
* @description Workspace Backblaze B2 Direct Storage Synchronization.
|
|
699
|
+
* Directly handles folder creation, file uploads (workspace.json, ecosystem.json), and cleanup.
|
|
700
|
+
* Conforms to Law L2, L3, L9 (< 200 lines).
|
|
701
|
+
*/
|
|
702
|
+
declare function resolveWorkspaceConnection(profiles: any, workspace: any): any;
|
|
703
|
+
declare function syncWorkspaceCreateToBucket(workspace: any, connection: any, env?: Record<string, unknown>): Promise<void>;
|
|
704
|
+
declare function syncWorkspaceDeleteToBucket(workspace: any, connection: any, env?: Record<string, unknown>): Promise<void>;
|
|
705
|
+
declare function syncWorkspaceDataToBucket(workspace: any, connection: any, data: any, env?: Record<string, unknown>): Promise<void>;
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* @file cloudflareIntegrationCore.ts
|
|
709
|
+
* @description Cloudflare Integration Service for DEPM Engine.
|
|
710
|
+
* Fetches Workers and Pages projects referencing Srkl-Engine surveillance (< 200 lines).
|
|
711
|
+
*/
|
|
712
|
+
declare function fetchCloudflareData(payload: Record<string, any>, rawUserId?: string, env?: Record<string, unknown>): Promise<{
|
|
713
|
+
success: boolean;
|
|
714
|
+
provider?: string;
|
|
715
|
+
tier?: string;
|
|
716
|
+
isFree?: boolean;
|
|
717
|
+
projectsCount?: number;
|
|
718
|
+
accountName?: string;
|
|
719
|
+
accountId?: string;
|
|
720
|
+
projects?: any[];
|
|
721
|
+
projectObservability?: any[];
|
|
722
|
+
workers?: any[];
|
|
723
|
+
pages?: any[];
|
|
724
|
+
usageMetrics?: any;
|
|
725
|
+
unifiedMetrics?: any;
|
|
726
|
+
error?: string;
|
|
361
727
|
}>;
|
|
362
|
-
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* @file vercelIntegrationCore.ts
|
|
731
|
+
* @description Authentic Vercel API Integration for DEPM Engine.
|
|
732
|
+
* Fetches user profile, projects, deployments, and usage telemetry (< 200 lines).
|
|
733
|
+
*/
|
|
734
|
+
declare function fetchVercelData(payload: Record<string, any>, rawUserId?: string, env?: Record<string, unknown>): Promise<{
|
|
363
735
|
success: boolean;
|
|
364
|
-
|
|
365
|
-
|
|
736
|
+
error?: string;
|
|
737
|
+
tier?: string;
|
|
738
|
+
isHobby?: boolean;
|
|
739
|
+
projectsCount?: number;
|
|
740
|
+
projects?: any[];
|
|
741
|
+
projectObservability?: any[];
|
|
742
|
+
usageMetrics?: any;
|
|
743
|
+
user?: any;
|
|
744
|
+
rawUsagePayload?: any;
|
|
366
745
|
}>;
|
|
367
746
|
|
|
747
|
+
/**
|
|
748
|
+
* @file vercelTransformer.ts
|
|
749
|
+
* @description Transforms raw Vercel REST API responses into normalized observability entities (< 200 lines).
|
|
750
|
+
*/
|
|
751
|
+
declare function formatRelativeCreated(timestamp: number | string, creator: string): string;
|
|
752
|
+
declare function buildProjectObservability(projects: any[], deployments: any[], user: any): {
|
|
753
|
+
projectId: any;
|
|
754
|
+
projectName: any;
|
|
755
|
+
framework: any;
|
|
756
|
+
status: "ACTIVE" | "ERROR" | "PAUSED" | "BUILDING";
|
|
757
|
+
displayStatus: string;
|
|
758
|
+
isPaused: boolean;
|
|
759
|
+
deploymentUrl: string;
|
|
760
|
+
domains: string[];
|
|
761
|
+
createdAt: string;
|
|
762
|
+
createdRelative: string;
|
|
763
|
+
createdBy: any;
|
|
764
|
+
edgeRequests: number;
|
|
765
|
+
edgeRequestsFormatted: string;
|
|
766
|
+
fastDataTransferGb: number;
|
|
767
|
+
fastDataTransferFormatted: string;
|
|
768
|
+
middlewareInvocations: number;
|
|
769
|
+
middlewareInvocationsFormatted: string;
|
|
770
|
+
latestDeploymentUrl: string;
|
|
771
|
+
latestDeploymentStatus: string;
|
|
772
|
+
latestDeploymentCreatedAt: string;
|
|
773
|
+
gitRepo: string;
|
|
774
|
+
gitBranch: any;
|
|
775
|
+
}[];
|
|
776
|
+
declare function buildProjectsList(observability: any[]): {
|
|
777
|
+
id: any;
|
|
778
|
+
name: any;
|
|
779
|
+
status: any;
|
|
780
|
+
framework: any;
|
|
781
|
+
url: any;
|
|
782
|
+
domain: any;
|
|
783
|
+
domains: any;
|
|
784
|
+
updatedAt: any;
|
|
785
|
+
}[];
|
|
786
|
+
|
|
368
787
|
declare function createWavBuffer(sampleRate: number, numChannels: number, samples: Float32Array[]): Buffer;
|
|
369
788
|
|
|
370
789
|
declare function ensureGlobalSamples(globalSamplesDir: string): Promise<void>;
|
|
@@ -689,4 +1108,376 @@ declare function getWorkspaceGraph(workspaceIdOrSlug: string, graphIdOrName: str
|
|
|
689
1108
|
declare function saveWorkspaceGraph(workspaceIdOrSlug: string, graphIdOrName: string, payload: Record<string, any>): Promise<DawProject>;
|
|
690
1109
|
declare function deleteWorkspaceGraph(workspaceIdOrSlug: string, graphIdOrName: string): Promise<boolean>;
|
|
691
1110
|
|
|
692
|
-
|
|
1111
|
+
type ProviderType = 'VERCEL' | 'CLOUDFLARE' | 'AWS' | 'GCP' | 'FASTLY' | 'BACKBLAZE_B2' | 'CLOUDFLARE_R2' | 'SUPABASE' | 'NEON' | 'POSTGRESQL';
|
|
1112
|
+
type HealthState = 'HEALTHY' | 'DEGRADED' | 'UNHEALTHY';
|
|
1113
|
+
type AccountTier = 'hobby' | 'pro' | 'enterprise' | 'free' | 'payg' | 'custom';
|
|
1114
|
+
|
|
1115
|
+
interface UnifiedResourceMetricItem<T = number> {
|
|
1116
|
+
used: T;
|
|
1117
|
+
limit: T;
|
|
1118
|
+
usedFormatted: string;
|
|
1119
|
+
limitFormatted: string;
|
|
1120
|
+
percent: number;
|
|
1121
|
+
remainingFormatted: string;
|
|
1122
|
+
}
|
|
1123
|
+
interface UnifiedResourceMetrics {
|
|
1124
|
+
provider: ProviderType;
|
|
1125
|
+
periodLabel: string;
|
|
1126
|
+
tier: string;
|
|
1127
|
+
isFreeTier: boolean;
|
|
1128
|
+
activeCpu: {
|
|
1129
|
+
usedSeconds: number;
|
|
1130
|
+
limitSeconds: number;
|
|
1131
|
+
usedFormatted: string;
|
|
1132
|
+
limitFormatted: string;
|
|
1133
|
+
percent: number;
|
|
1134
|
+
remainingFormatted: string;
|
|
1135
|
+
};
|
|
1136
|
+
invocations: {
|
|
1137
|
+
usedCount: number;
|
|
1138
|
+
limitCount: number;
|
|
1139
|
+
usedFormatted: string;
|
|
1140
|
+
limitFormatted: string;
|
|
1141
|
+
percent: number;
|
|
1142
|
+
remainingFormatted: string;
|
|
1143
|
+
};
|
|
1144
|
+
edgeRequests: {
|
|
1145
|
+
usedCount: number;
|
|
1146
|
+
limitCount: number;
|
|
1147
|
+
usedFormatted: string;
|
|
1148
|
+
limitFormatted: string;
|
|
1149
|
+
percent: number;
|
|
1150
|
+
remainingFormatted: string;
|
|
1151
|
+
};
|
|
1152
|
+
bandwidth: {
|
|
1153
|
+
usedMb: number;
|
|
1154
|
+
limitMb: number;
|
|
1155
|
+
usedFormatted: string;
|
|
1156
|
+
limitFormatted: string;
|
|
1157
|
+
percent: number;
|
|
1158
|
+
remainingFormatted: string;
|
|
1159
|
+
};
|
|
1160
|
+
memory?: {
|
|
1161
|
+
usedGbHours: number;
|
|
1162
|
+
limitGbHours: number;
|
|
1163
|
+
usedFormatted: string;
|
|
1164
|
+
limitFormatted: string;
|
|
1165
|
+
percent: number;
|
|
1166
|
+
remainingFormatted: string;
|
|
1167
|
+
};
|
|
1168
|
+
storage?: {
|
|
1169
|
+
usedMb: number;
|
|
1170
|
+
limitMb: number;
|
|
1171
|
+
usedFormatted: string;
|
|
1172
|
+
limitFormatted: string;
|
|
1173
|
+
percent: number;
|
|
1174
|
+
remainingFormatted?: string;
|
|
1175
|
+
};
|
|
1176
|
+
details?: Record<string, any>;
|
|
1177
|
+
}
|
|
1178
|
+
interface CloudflareProjectItem {
|
|
1179
|
+
id: string;
|
|
1180
|
+
name: string;
|
|
1181
|
+
type: 'worker' | 'pages';
|
|
1182
|
+
status: 'ACTIVE' | 'PAUSED';
|
|
1183
|
+
subdomain?: string;
|
|
1184
|
+
routes?: string[];
|
|
1185
|
+
updatedAt?: string;
|
|
1186
|
+
}
|
|
1187
|
+
interface CloudflareObservability {
|
|
1188
|
+
projectId: string;
|
|
1189
|
+
projectName: string;
|
|
1190
|
+
status: 'ACTIVE' | 'PAUSED';
|
|
1191
|
+
cpuTimeMs: number;
|
|
1192
|
+
cpuTimeFormatted: string;
|
|
1193
|
+
requestsCount: number;
|
|
1194
|
+
requestsFormatted: string;
|
|
1195
|
+
subrequestsCount: number;
|
|
1196
|
+
bandwidthMb: number;
|
|
1197
|
+
errorsCount: number;
|
|
1198
|
+
updatedAt: string;
|
|
1199
|
+
}
|
|
1200
|
+
interface CloudflareUsageMetrics extends UnifiedResourceMetrics {
|
|
1201
|
+
provider: 'CLOUDFLARE';
|
|
1202
|
+
workersCount: number;
|
|
1203
|
+
pagesCount: number;
|
|
1204
|
+
subrequests: {
|
|
1205
|
+
usedCount: number;
|
|
1206
|
+
usedFormatted: string;
|
|
1207
|
+
};
|
|
1208
|
+
errors: {
|
|
1209
|
+
usedCount: number;
|
|
1210
|
+
usedFormatted: string;
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
interface VercelUsageMetrics {
|
|
1215
|
+
periodLabel: string;
|
|
1216
|
+
fluidActiveCpu: {
|
|
1217
|
+
usedSeconds: number;
|
|
1218
|
+
usedFormatted: string;
|
|
1219
|
+
limitFormatted: string;
|
|
1220
|
+
limitSeconds: number;
|
|
1221
|
+
percent: number;
|
|
1222
|
+
remainingFormatted: string;
|
|
1223
|
+
};
|
|
1224
|
+
functionInvocations: {
|
|
1225
|
+
usedCount: number;
|
|
1226
|
+
usedFormatted: string;
|
|
1227
|
+
limitFormatted: string;
|
|
1228
|
+
limitCount: number;
|
|
1229
|
+
percent: number;
|
|
1230
|
+
remainingFormatted: string;
|
|
1231
|
+
};
|
|
1232
|
+
edgeRequests: {
|
|
1233
|
+
usedCount: number;
|
|
1234
|
+
usedFormatted: string;
|
|
1235
|
+
limitFormatted: string;
|
|
1236
|
+
limitCount: number;
|
|
1237
|
+
percent: number;
|
|
1238
|
+
remainingFormatted: string;
|
|
1239
|
+
};
|
|
1240
|
+
fluidProvisionedMemory: {
|
|
1241
|
+
usedGbHours: number;
|
|
1242
|
+
usedFormatted: string;
|
|
1243
|
+
limitFormatted: string;
|
|
1244
|
+
limitGbHours: number;
|
|
1245
|
+
percent: number;
|
|
1246
|
+
remainingFormatted: string;
|
|
1247
|
+
};
|
|
1248
|
+
functionsStorage: {
|
|
1249
|
+
usedMb: number;
|
|
1250
|
+
usedFormatted: string;
|
|
1251
|
+
limitFormatted: string;
|
|
1252
|
+
limitMb: number;
|
|
1253
|
+
percent: number;
|
|
1254
|
+
remainingFormatted: string;
|
|
1255
|
+
};
|
|
1256
|
+
fastDataTransfer: {
|
|
1257
|
+
usedGb: number;
|
|
1258
|
+
usedFormatted: string;
|
|
1259
|
+
limitFormatted: string;
|
|
1260
|
+
limitGb: number;
|
|
1261
|
+
percent: number;
|
|
1262
|
+
remainingFormatted: string;
|
|
1263
|
+
};
|
|
1264
|
+
middlewareInvocations: {
|
|
1265
|
+
usedCount: number;
|
|
1266
|
+
usedFormatted: string;
|
|
1267
|
+
limitFormatted?: string;
|
|
1268
|
+
limitCount?: number;
|
|
1269
|
+
percent?: number;
|
|
1270
|
+
};
|
|
1271
|
+
fastOriginTransfer?: {
|
|
1272
|
+
usedMb: number;
|
|
1273
|
+
usedFormatted: string;
|
|
1274
|
+
limitFormatted: string;
|
|
1275
|
+
limitMb: number;
|
|
1276
|
+
percent: number;
|
|
1277
|
+
remainingFormatted: string;
|
|
1278
|
+
};
|
|
1279
|
+
edgeRequestCpuDuration?: {
|
|
1280
|
+
usedSeconds: number;
|
|
1281
|
+
usedFormatted: string;
|
|
1282
|
+
limitFormatted: string;
|
|
1283
|
+
limitSeconds: number;
|
|
1284
|
+
percent: number;
|
|
1285
|
+
remainingFormatted: string;
|
|
1286
|
+
};
|
|
1287
|
+
isrReads?: {
|
|
1288
|
+
usedCount: number;
|
|
1289
|
+
usedFormatted: string;
|
|
1290
|
+
limitFormatted: string;
|
|
1291
|
+
limitCount: number;
|
|
1292
|
+
percent: number;
|
|
1293
|
+
remainingFormatted: string;
|
|
1294
|
+
};
|
|
1295
|
+
}
|
|
1296
|
+
interface VercelProjectObservability {
|
|
1297
|
+
projectId: string;
|
|
1298
|
+
projectName: string;
|
|
1299
|
+
framework?: string;
|
|
1300
|
+
status: 'ACTIVE' | 'PAUSED' | 'BUILDING' | 'ERROR';
|
|
1301
|
+
displayStatus?: string;
|
|
1302
|
+
isPaused: boolean;
|
|
1303
|
+
edgeRequests: number;
|
|
1304
|
+
edgeRequestsFormatted: string;
|
|
1305
|
+
fastDataTransferGb: number;
|
|
1306
|
+
fastDataTransferFormatted: string;
|
|
1307
|
+
middlewareInvocations: number;
|
|
1308
|
+
middlewareInvocationsFormatted: string;
|
|
1309
|
+
deploymentUrl?: string;
|
|
1310
|
+
domains: string[];
|
|
1311
|
+
createdAt?: string;
|
|
1312
|
+
createdRelative?: string;
|
|
1313
|
+
createdBy?: string;
|
|
1314
|
+
sourceRepo?: string;
|
|
1315
|
+
sourceBranch?: string;
|
|
1316
|
+
commitSha?: string;
|
|
1317
|
+
commitMessage?: string;
|
|
1318
|
+
latestDeploymentUrl?: string;
|
|
1319
|
+
latestDeploymentStatus?: string;
|
|
1320
|
+
latestDeploymentCreatedAt?: string;
|
|
1321
|
+
gitRepo?: string;
|
|
1322
|
+
gitBranch?: string;
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
interface AccountEntity {
|
|
1326
|
+
id: string;
|
|
1327
|
+
provider: ProviderType;
|
|
1328
|
+
name: string;
|
|
1329
|
+
emailOrSlug: string;
|
|
1330
|
+
tier?: AccountTier;
|
|
1331
|
+
status: 'CONNECTED' | 'EXPIRING' | 'ERROR';
|
|
1332
|
+
credentialType: 'API_TOKEN' | 'OAUTH' | 'SERVICE_KEY';
|
|
1333
|
+
deploymentCount: number;
|
|
1334
|
+
aggregateUsage: number;
|
|
1335
|
+
aggregateSpend: number;
|
|
1336
|
+
aggregateQuota: number;
|
|
1337
|
+
resetTime: string;
|
|
1338
|
+
createdAt: string;
|
|
1339
|
+
weightPreference?: number;
|
|
1340
|
+
usageMetrics?: VercelUsageMetrics;
|
|
1341
|
+
projectObservability?: VercelProjectObservability[];
|
|
1342
|
+
projectsList?: Array<{
|
|
1343
|
+
id: string;
|
|
1344
|
+
name: string;
|
|
1345
|
+
status: 'ACTIVE' | 'PAUSED';
|
|
1346
|
+
framework?: string;
|
|
1347
|
+
url?: string;
|
|
1348
|
+
updatedAt?: string;
|
|
1349
|
+
}>;
|
|
1350
|
+
metadata?: Record<string, any>;
|
|
1351
|
+
sharedVariables?: Record<string, string>;
|
|
1352
|
+
}
|
|
1353
|
+
interface DeploymentEntity {
|
|
1354
|
+
id: string;
|
|
1355
|
+
name: string;
|
|
1356
|
+
provider: ProviderType;
|
|
1357
|
+
accountId: string;
|
|
1358
|
+
providerDeploymentId: string;
|
|
1359
|
+
publicOrigin: string;
|
|
1360
|
+
bubbleTargetType?: 'DOMAIN' | 'DEPLOYMENT';
|
|
1361
|
+
domainUrl?: string;
|
|
1362
|
+
deploymentUrl?: string;
|
|
1363
|
+
status: 'READY' | 'BUILDING' | 'ERROR' | 'OFFLINE';
|
|
1364
|
+
health: HealthState;
|
|
1365
|
+
usage: number;
|
|
1366
|
+
spend: number;
|
|
1367
|
+
quota: number;
|
|
1368
|
+
quotaRemaining: number;
|
|
1369
|
+
resetTime: string;
|
|
1370
|
+
requestRate: number;
|
|
1371
|
+
resourceRate: number;
|
|
1372
|
+
createdAt: string;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
declare abstract class BaseResourceFetcher {
|
|
1376
|
+
abstract readonly provider: ProviderType;
|
|
1377
|
+
abstract readonly defaultTier: string;
|
|
1378
|
+
/**
|
|
1379
|
+
* Constructs HTTP authorization headers from stored account credentials.
|
|
1380
|
+
*/
|
|
1381
|
+
protected abstract getAuthHeaders(creds: Record<string, any>): Record<string, string>;
|
|
1382
|
+
/**
|
|
1383
|
+
* Queries the provider's live metrics endpoint(s).
|
|
1384
|
+
*/
|
|
1385
|
+
protected abstract fetchRawUsage(creds: Record<string, any>, options?: any): Promise<any>;
|
|
1386
|
+
/**
|
|
1387
|
+
* Transforms provider-specific raw payload into the normalized UnifiedResourceMetrics structure.
|
|
1388
|
+
*/
|
|
1389
|
+
abstract transformMetrics(raw: any, tier?: string, projectsCount?: number): UnifiedResourceMetrics;
|
|
1390
|
+
/**
|
|
1391
|
+
* Template method: Resolves credentials, queries the provider's APIs, and normalizes metrics.
|
|
1392
|
+
*/
|
|
1393
|
+
fetchMetrics(account: AccountEntity): Promise<UnifiedResourceMetrics>;
|
|
1394
|
+
/**
|
|
1395
|
+
* Shared weighted resource score calculation (0.0 to 1.0).
|
|
1396
|
+
* - Active CPU receives the highest weight (50% / 0.50).
|
|
1397
|
+
* - Invocations: 15% (0.15).
|
|
1398
|
+
* - Compute Memory / Subrequests: 15% (0.15).
|
|
1399
|
+
* - Edge Requests: 10% (0.10).
|
|
1400
|
+
* - Bandwidth / Data Transfer: 5% (0.05).
|
|
1401
|
+
* - Other compute / network metrics: 5% (0.05).
|
|
1402
|
+
* - Storage parameters (Functions Storage, Deployment Storage, R2) are strictly EXCLUDED (0%).
|
|
1403
|
+
*/
|
|
1404
|
+
computeWeightScore(metrics?: UnifiedResourceMetrics | Record<string, any>, deployment?: DeploymentEntity, account?: AccountEntity): number;
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
declare class VercelResourceFetcher extends BaseResourceFetcher {
|
|
1408
|
+
readonly provider: ProviderType;
|
|
1409
|
+
readonly defaultTier = "hobby";
|
|
1410
|
+
protected getAuthHeaders(creds: Record<string, any>): Record<string, string>;
|
|
1411
|
+
protected fetchRawUsage(creds: Record<string, any>, options?: any): Promise<any>;
|
|
1412
|
+
transformMetrics(raw: any, tier?: string, projectsCount?: number): UnifiedResourceMetrics;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
declare class CloudflareResourceFetcher extends BaseResourceFetcher {
|
|
1416
|
+
readonly provider: ProviderType;
|
|
1417
|
+
readonly defaultTier = "free";
|
|
1418
|
+
protected getAuthHeaders(creds: Record<string, any>): Record<string, string>;
|
|
1419
|
+
protected fetchRawUsage(creds: Record<string, any>, options?: any): Promise<any>;
|
|
1420
|
+
transformMetrics(raw: any, tier?: string, projectsCount?: number): UnifiedResourceMetrics;
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
type ResourceCategory = 'compute' | 'memory' | 'execution' | 'requests' | 'network' | 'storage';
|
|
1424
|
+
interface GeneralizedResourceMetric {
|
|
1425
|
+
id: string;
|
|
1426
|
+
name: string;
|
|
1427
|
+
category: ResourceCategory;
|
|
1428
|
+
used: number;
|
|
1429
|
+
limit: number;
|
|
1430
|
+
unit: string;
|
|
1431
|
+
usedFormatted: string;
|
|
1432
|
+
limitFormatted: string;
|
|
1433
|
+
remainingFormatted: string;
|
|
1434
|
+
percentUsed: number;
|
|
1435
|
+
percentRemaining: number;
|
|
1436
|
+
isMonthlyDepletable: boolean;
|
|
1437
|
+
importanceWeight: number;
|
|
1438
|
+
}
|
|
1439
|
+
interface GeneralizedResourceVector {
|
|
1440
|
+
provider: ProviderType | string;
|
|
1441
|
+
tier: string;
|
|
1442
|
+
periodLabel: string;
|
|
1443
|
+
metrics: GeneralizedResourceMetric[];
|
|
1444
|
+
metadata?: Record<string, any>;
|
|
1445
|
+
}
|
|
1446
|
+
interface ResourceCalculationResult {
|
|
1447
|
+
effectiveWeight: number;
|
|
1448
|
+
percentRemaining: number;
|
|
1449
|
+
dominantBottleneck: GeneralizedResourceMetric;
|
|
1450
|
+
metrics: GeneralizedResourceMetric[];
|
|
1451
|
+
summaryLabel: string;
|
|
1452
|
+
}
|
|
1453
|
+
interface IResourceProviderAdapter {
|
|
1454
|
+
readonly provider: ProviderType;
|
|
1455
|
+
readonly defaultTier: string;
|
|
1456
|
+
fetchUsage(creds: Record<string, any>, options?: any): Promise<any>;
|
|
1457
|
+
transformToGeneralizedVector(raw: any, tier?: string, projectsCount?: number, existingMetrics?: any): GeneralizedResourceVector;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
declare class ResourceFetcherRegistry {
|
|
1461
|
+
private static fetchers;
|
|
1462
|
+
private static adapters;
|
|
1463
|
+
private static defaultFetcher;
|
|
1464
|
+
private static defaultAdapter;
|
|
1465
|
+
static register(fetcher: BaseResourceFetcher): void;
|
|
1466
|
+
static getFetcher(provider?: ProviderType | string): BaseResourceFetcher;
|
|
1467
|
+
static getAdapter(provider?: ProviderType | string): IResourceProviderAdapter;
|
|
1468
|
+
static getSupportedProviders(): string[];
|
|
1469
|
+
/**
|
|
1470
|
+
* Dynamically fetches live metrics for an account using its matching provider fetcher.
|
|
1471
|
+
*/
|
|
1472
|
+
static fetchAccountMetrics(account: AccountEntity): Promise<UnifiedResourceMetrics>;
|
|
1473
|
+
/**
|
|
1474
|
+
* Computes the normalized resource weight score (0.00 to 1.00) using the decoupled Universal Calculator.
|
|
1475
|
+
*/
|
|
1476
|
+
static computeScore(account?: AccountEntity, deployment?: DeploymentEntity): number;
|
|
1477
|
+
/**
|
|
1478
|
+
* Full calculation returning effective weight, percent remaining, and dominant bottleneck.
|
|
1479
|
+
*/
|
|
1480
|
+
static calculateDetailedScore(account?: AccountEntity, deployment?: DeploymentEntity): ResourceCalculationResult;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
export { type AssetChannelType, type AssetDataType, type AssetFolderInfo, type AssetPoolItem, type AssetPoolScope, type B2AuthData, type BackendFacade, BaseDataProvider, BaseResourceFetcher, type CloudflareObservability, type CloudflareProjectItem, CloudflareResourceFetcher, type CloudflareUsageMetrics, type CredentialEntry, type CredentialManifest, type Deployment, type FunctionSet, FunctionalityTable, GRAPHS_ROOT, type IDataProvider, LEGACY_PROJECTS_ROOT, type OrchestrationFn, PROJECTS_ROOT, type ProjectMetadata, type PublicRouteRecord, type QueryFilter, ResourceFetcherRegistry, type Runtime, SAMPLES_GLOBAL_ROOT, SUPPORTED_AUDIO_EXTS, SUPPORTED_MIDI_EXTS, type ServerAudioSampleItem, type ServiceFacade, type ServiceRegistryRecord, type SortOrder, type SrklB2Account, SrklStorageService, type SyncFileResult, type UnifiedQueryResult, type UnifiedResourceMetricItem, type UnifiedResourceMetrics, VercelResourceFetcher, WORKSPACE_ASSETS_ROOT, WORKSPACE_ROOT, type WorkingWorkspaceConfig, type WorkspaceFolderResolution, type WorkspaceStorageConfig, b2DeleteFileVersion, b2DeleteFolder, buildProjectObservability, buildProjectsList, cleanDbUrl, configureStarterProjectTemplate, createAssetSubfolder, createCredential, createGraphAssetFolder, createGraphAssetFolder as createGraphAssetSubfolder, createGraphPackage, createWavBuffer, createWorkspace, createWorkspaceGraph, decryptSecretFromBlob, deleteAssetFromGraph, deleteAssetFromPool, deleteCredential, deleteGlobalSample, deleteGraphPackage, deleteProject, deleteProjectSample, deleteRoute, deleteWorkspace, deleteWorkspaceFile, deleteWorkspaceFolder, deleteWorkspaceGraph, encryptSecretToBlob, ensureAssetPoolDirectories, ensureGlobalSamples, ensureGraphAssetDirectories, ensureProjectAssets, ensureProjectsRoot, ensureWorkspaceStructure, exportEncryptedCredentials, fetchCloudflareData, fetchVercelData, findUserWorkspace, findWorkspaceRecord, formatRelativeCreated, getAllRoutes, getAssetPoolLocationPath, getAssetPoolPublicUrl, getB2BucketId, getCredential, getDefaultWorkingWorkspaceDir, getExecutions, getGatewayConfig, getGraphPackageById, getPrimarySrklDeploymentUrl as getPrimarySrklCoreDeploymentUrl, getProjectById, getPublicRouteByPath, getPublicRoutes, getSrklAccounts as getSrklCoreAccounts, getSrklStatus, getUnifiedDbUrl, getUsers, getWorkingWorkspaceConfig, getWorkingWorkspaceDir, getWorkspaceFolderKey, getWorkspaceFolderPrefix, getWorkspaceGraph, getWorkspaceStorageDetails, getWorkspaces, importEncryptedCredentials, importGraphDependency, initGlobalSamplesDirectory, isB2Workspace, listAllGraphPackages, listAllProjects, listBackblazeBuckets, listCredentials, listGlobalSamples, listProjectSamples, listWorkspaceFiles, listWorkspaceGraphs, loadCredentialManifest, loadWorkspaceData, loginUser, matchGatewayIngress, matchGatewayIngressAsync, queryUnifiedDb, readWorkspaceFile, recordExecution, removeGraphDependency, renameAppInWorkspaceData, resolveDynamicRouteFromDb, resolveWorkspaceConnection, resolveWorkspaceDir, saveAssetToGraph, saveAssetToPool, saveCredentialManifest, saveGlobalSample, saveGraphPackage, saveProject, saveProjectSample, saveWorkspaceData, saveWorkspaceGraph, scanAssetPool, scanGraphAssets, seedDefaultAssets, seedStarterGraphAssets, serverPublicRoutes, setServerPublicRoutes, setWorkingWorkspaceConfig, srklListBackblazeBuckets as srklCoreListBackblazeBuckets, syncWorkspace, syncWorkspaceCreateToBucket, syncWorkspaceDataToBucket, syncWorkspaceDeleteToBucket, updateCredential, updateWorkspace, upsertRoute, validateServiceDefinition, writeWorkspaceFile };
|