@inquir/compute 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,10 +2,12 @@
2
2
 
3
3
  Workspace-first SDK for defining, discovering, generating, and running Inquir Compute assets.
4
4
 
5
- ## Install
5
+ ## Install
6
+
7
+ Requires Node.js 22 or newer. Version 0.3 groups only long-lived container applications in projects; functions and pipelines remain separate assets.
6
8
 
7
9
  ```bash
8
- npm install @inquir/compute zod
10
+ npm install @inquir/compute zod@^3.23.8
9
11
  ```
10
12
 
11
13
  ## What It Includes
@@ -15,7 +17,8 @@ npm install @inquir/compute zod
15
17
  - `discoverAssets()` for workspace asset scanning.
16
18
  - `generateCodegenArtifacts()` / `generateAndWriteCodegenArtifacts()` for typed client + `registry.json`.
17
19
  - `runLocally()` for local function execution/debug harness.
18
- - HTTP transport helpers (`createClient`, `invokeRemote`, deploy/list helpers).
20
+ - HTTP transport helpers (`createClient`, `invokeRemote`, deploy/list helpers).
21
+ - Application project helpers (`listProjects`, `createProject`, `getProject`, `addProjectResource`) group long-lived containers: web services, APIs, databases, and workers. Project members use `kind: 'application'`; serverless functions are managed separately. `createApplication` accepts `projectId` (ID or slug); omitting it creates a project named after the application.
19
22
 
20
23
  ## Concepts
21
24
 
package/dist/apps.d.ts ADDED
@@ -0,0 +1,572 @@
1
+ /**
2
+ * App runtime plane: long-lived container services (the ECS-shaped side of the
3
+ * platform), as opposed to functions.
4
+ *
5
+ * Wire types are duplicated here rather than imported from the server — the
6
+ * same convention the frontend follows — so the SDK builds independently of
7
+ * the server's tsconfig.
8
+ */
9
+ import { type TransportClient } from './transport.js';
10
+ export type ReleaseStatus = 'PENDING' | 'STARTING' | 'HEALTHCHECK' | 'READY' | 'ACTIVE' | 'SUSPENDING' | 'DRAINING' | 'STOPPED' | 'FAILED';
11
+ export type ReleaseKind = 'preview' | 'production';
12
+ export type BuildStatus = 'queued' | 'building' | 'success' | 'failure' | 'cancelled';
13
+ export type AppPortProtocol = 'http' | 'tcp';
14
+ export interface AppPortSpec {
15
+ name: string;
16
+ port: number;
17
+ protocol: AppPortProtocol;
18
+ /** TCP only: publish beyond loopback (databases, SMTP, SSH). */
19
+ public?: boolean;
20
+ /** TCP only: pin the host port so connection strings survive a restart. */
21
+ hostPort?: number;
22
+ }
23
+ /** Persistent application-scoped storage mounted into release containers. */
24
+ export interface AppVolumeSpec {
25
+ /** Logical name, stable across releases of one application. */
26
+ name: string;
27
+ /** Absolute path inside the container; host paths are intentionally unsupported. */
28
+ mountPath: string;
29
+ readOnly?: boolean;
30
+ }
31
+ /** A port as actually published for a running release. */
32
+ export interface ReleasePort {
33
+ name: string;
34
+ containerPort: number;
35
+ protocol: AppPortProtocol;
36
+ /** Present only for a real legacy public TCP endpoint. */
37
+ hostPort?: number;
38
+ public: boolean;
39
+ /** Dialable address for a public TCP port, e.g. "tcp.inquir.org:25432". */
40
+ endpoint?: string;
41
+ }
42
+ export interface AppResources {
43
+ cpuVCpus: number;
44
+ memoryMb: number;
45
+ }
46
+ export interface AppHealthcheck {
47
+ type?: 'http' | 'tcp' | 'command';
48
+ path?: string;
49
+ /** Run inside the container; exit 0 means ready. Best signal for databases. */
50
+ command?: string;
51
+ port?: string;
52
+ intervalSeconds?: number;
53
+ timeoutSeconds?: number;
54
+ }
55
+ export interface AppRuntimeSpec {
56
+ /** Primary HTTP port; absent for a pure-TCP service. */
57
+ port?: number;
58
+ ports?: AppPortSpec[];
59
+ volumes?: AppVolumeSpec[];
60
+ command?: string[];
61
+ resources?: AppResources;
62
+ healthcheck?: AppHealthcheck;
63
+ maxRestarts?: number;
64
+ drainGraceSeconds?: number;
65
+ /** 'recreate' (default with volumes): stop the old release before starting the new one. */
66
+ deployStrategy?: 'rolling' | 'recreate';
67
+ }
68
+ export interface AppNetworkPolicy {
69
+ /** `allowlist` is not yet accepted for applications; the API answers 400. */
70
+ egress: 'none' | 'full' | 'allowlist';
71
+ allow?: string[];
72
+ /** Public Networking: `public` creates the generated domain; absent = private. */
73
+ ingress?: 'private' | 'public';
74
+ }
75
+ export type AppScalingActivation = 'always' | 'http' | 'manual';
76
+ /** Single-replica scaling policy. Horizontal scaling above one is not available yet. */
77
+ export interface AppScalingPolicy {
78
+ activation: AppScalingActivation;
79
+ minReplicas: 0 | 1;
80
+ maxReplicas: number;
81
+ idleTimeoutSeconds: number;
82
+ activationTimeoutSeconds: number;
83
+ scaleDownStabilizationSeconds: number;
84
+ }
85
+ export interface AppScaleActionResponse {
86
+ accepted: boolean;
87
+ desiredReplicas: number;
88
+ state?: string;
89
+ }
90
+ /**
91
+ * Plaintext credentials returned only by the explicit connection-url action.
92
+ * Private routing and Public Access are independent capabilities, so either
93
+ * URL pair may be absent. Callers must never synthesize one from hostPort.
94
+ */
95
+ export interface AppConnectionInfo {
96
+ url?: string;
97
+ endpoint?: string;
98
+ publicUrl?: string;
99
+ publicEndpoint?: string;
100
+ envKey: string;
101
+ template?: string;
102
+ }
103
+ export interface Application {
104
+ id: string;
105
+ name: string;
106
+ /**
107
+ * Permanent public-address label, minted once at creation. The generated
108
+ * production hostname is `{slug}.{AppLimits.appsPublicSuffix}` and renaming
109
+ * the app never moves it — so it is the name to point a CNAME at, and it
110
+ * exists even for an app that was never promoted. Absent from older servers.
111
+ */
112
+ slug?: string;
113
+ description?: string;
114
+ runtime?: AppRuntimeSpec;
115
+ /** Values are always masked by the server. */
116
+ envVars?: Record<string, string>;
117
+ productionOnlyEnvKeys: string[];
118
+ networkPolicy?: AppNetworkPolicy;
119
+ /**
120
+ * `{slug}.{private suffix}` — present only while the platform has verified
121
+ * this application's private route end to end (cluster proof, tenant
122
+ * overlay, proxy convergence, active probe). Same-workspace services reach
123
+ * it by name; it never resolves from the internet. Absent while the route
124
+ * is still being reconciled, and on an installation without private
125
+ * networking (see `AppLimits.features.privateNetworking`).
126
+ */
127
+ privateDomain?: string;
128
+ /** `http://{privateDomain}` for an application with an HTTP port; absent otherwise. */
129
+ privateBaseUrl?: string;
130
+ scaling: AppScalingPolicy;
131
+ desiredReplicas: number;
132
+ scalingGeneration: number;
133
+ lastActivityAt?: string;
134
+ lastScaledAt?: string;
135
+ /**
136
+ * Runner id this app's volumes (and therefore its containers) are pinned to;
137
+ * null when data lives on the control-plane host.
138
+ */
139
+ volumeRunnerId?: string | null;
140
+ /** Production traffic pointer; set once anything was promoted (even a hostname-less TCP service). */
141
+ productionReleaseId?: string;
142
+ previousProductionReleaseId?: string;
143
+ /** Platform template the app was created from (postgres, redis); null otherwise. */
144
+ template?: string | null;
145
+ /**
146
+ * Live project folders this application is filed in; [] when unfiled.
147
+ * Absent from older servers.
148
+ */
149
+ projectIds?: string[];
150
+ createdAt: string;
151
+ updatedAt: string;
152
+ }
153
+ /** One recorded dependency edge, told from the side that was asked for. */
154
+ export interface AppConnectionSummary {
155
+ id: string;
156
+ /** The other end of the edge. */
157
+ applicationId: string;
158
+ name: string;
159
+ /** The other end is archived: the URL in the consumer's env is dead. */
160
+ archived: boolean;
161
+ /** Env key on the consumer that carries the composed URL. */
162
+ envKey: string;
163
+ providerTemplate: string | null;
164
+ endpoint: string | null;
165
+ createdAt: string;
166
+ }
167
+ export interface Release {
168
+ id: string;
169
+ applicationId: string;
170
+ status: ReleaseStatus;
171
+ kind: ReleaseKind;
172
+ imageSource: 'build' | 'ref';
173
+ buildId?: string;
174
+ imageRef?: string;
175
+ imageDigest: string;
176
+ /** Runtime frozen when this release was created, including its volume mounts. */
177
+ runtime: AppRuntimeSpec;
178
+ internalPort: number;
179
+ ports: ReleasePort[];
180
+ containerId?: string;
181
+ /** Which env the container runs with; `production` once promoted (production-only keys injected). */
182
+ envProfile?: ReleaseKind;
183
+ restartCount: number;
184
+ lastRestartAt?: string;
185
+ lastExitCode?: number;
186
+ failureReason?: string;
187
+ /**
188
+ * Takes production by itself once healthy (created with `promote: true`,
189
+ * or by a redeploy). A refused auto-promote leaves it live and puts the
190
+ * reason in `failureReason`. Absent from older servers.
191
+ */
192
+ promoteOnReady?: boolean;
193
+ createdAt: string;
194
+ activatedAt?: string;
195
+ /** DRAINING only: kept running as the rollback reserve until this instant. */
196
+ drainDeadline?: string;
197
+ stoppedAt?: string;
198
+ expiresAt?: string;
199
+ urls?: Array<{
200
+ url: string;
201
+ kind: ReleaseKind;
202
+ }>;
203
+ }
204
+ export interface Build {
205
+ id: string;
206
+ applicationId: string;
207
+ sourceSnapshotId: string;
208
+ status: BuildStatus;
209
+ buildKey: string;
210
+ dockerfile?: string;
211
+ imageDigest?: string;
212
+ imageRef?: string;
213
+ reusedFromBuildId?: string;
214
+ error?: string;
215
+ source: string;
216
+ createdAt: string;
217
+ startedAt?: string;
218
+ completedAt?: string;
219
+ durationMs?: number;
220
+ }
221
+ export interface ApplicationDetail extends Application {
222
+ /**
223
+ * Present once anything is promoted. `url` is the first production hostname
224
+ * (undefined for a service with no HTTP port or no configured suffix);
225
+ * `urls` lists every verified production hostname, custom domains included.
226
+ */
227
+ production: {
228
+ url?: string;
229
+ urls: string[];
230
+ activeReleaseId?: string;
231
+ previousReleaseId?: string;
232
+ /** Public TCP address under the app's permanent subdomain. */
233
+ tcpEndpoint?: string;
234
+ } | null;
235
+ previews: Array<{
236
+ url: string;
237
+ releaseId?: string;
238
+ }>;
239
+ domains: AppDomain[];
240
+ releases: Release[];
241
+ /** Applications this one depends on (its env carries their URLs). */
242
+ dependsOn?: AppConnectionSummary[];
243
+ /** Applications whose env carries this one's URL — what breaks on archive. */
244
+ dependents?: AppConnectionSummary[];
245
+ }
246
+ export interface CreateApplicationInput {
247
+ name: string;
248
+ /** Existing project id or slug. Omit to create a project named after the application. */
249
+ projectId?: string;
250
+ description?: string;
251
+ /** Platform template ('postgres' | 'redis'): pre-fills runtime/env and ships the first release. */
252
+ template?: string;
253
+ /**
254
+ * Pin the app's volumes to a runner (id or unique prefix). Containers run on
255
+ * that machine from the first start on; the pin cannot move while a
256
+ * production release exists.
257
+ */
258
+ volumeRunner?: string;
259
+ runtime?: AppRuntimeSpec;
260
+ envVars?: Record<string, string>;
261
+ productionOnlyEnvKeys?: string[];
262
+ scaling?: Partial<AppScalingPolicy>;
263
+ networkPolicy?: AppNetworkPolicy;
264
+ }
265
+ export interface CreateReleaseInput {
266
+ buildId?: string;
267
+ imageRef?: string;
268
+ runtime?: AppRuntimeSpec;
269
+ /**
270
+ * Take production as soon as the health gate passes. Needs `apps:promote`
271
+ * — a key that can only ship previews is refused with 403.
272
+ */
273
+ promote?: boolean;
274
+ }
275
+ /** `POST /v1/apps/:id/redeploy` — what production runs now, released again. */
276
+ export interface RedeployApplicationInput {
277
+ /** Default true; false only queues the release, like a plain deploy. */
278
+ promote?: boolean;
279
+ }
280
+ export interface CreateReleaseResponse {
281
+ releaseId: string;
282
+ applicationId: string;
283
+ status: ReleaseStatus;
284
+ kind: ReleaseKind;
285
+ /** Absent for a pure-TCP service — it has endpoints, not a URL. */
286
+ previewUrl?: string;
287
+ /** True when the release will take production by itself once healthy. */
288
+ promoteOnReady?: boolean;
289
+ statusUrl: string;
290
+ logsUrl: string;
291
+ }
292
+ /** Production health attached to each list item (null when nothing is promoted). */
293
+ export interface ApplicationListProduction {
294
+ activeReleaseId: string;
295
+ status: ReleaseStatus;
296
+ restartCount: number;
297
+ failureReason?: string;
298
+ url?: string;
299
+ /** Public TCP address under the app's permanent subdomain. */
300
+ tcpEndpoint?: string;
301
+ }
302
+ export interface ApplicationListItem extends Application {
303
+ production: ApplicationListProduction | null;
304
+ }
305
+ export interface ApplicationListResponse {
306
+ items: ApplicationListItem[];
307
+ nextCursor: string | null;
308
+ }
309
+ /** Platform limits and defaults, so a client can validate before it submits. */
310
+ export interface AppLimits {
311
+ hostPortRange: {
312
+ min: number;
313
+ max: number;
314
+ };
315
+ maxVolumesPerApp: number;
316
+ /** Runtime/shared TCP host; public API endpoints prefer the permanent app subdomain. */
317
+ publicTcpHost: string;
318
+ appsPublicSuffix: string;
319
+ appsPreviewSuffix: string;
320
+ /** What this installation can actually do; clients branch on it instead of guessing. Absent from older servers. */
321
+ features?: {
322
+ volumeBackups: boolean;
323
+ privateNetworking: boolean;
324
+ githubDeploy: boolean;
325
+ };
326
+ /** Per-workspace ceilings enforced by the platform. */
327
+ quotas: {
328
+ maxLiveReleasesPerTenant: number;
329
+ maxMemoryMb: number;
330
+ maxCpuVCpus: number;
331
+ };
332
+ defaults: {
333
+ cpuVCpus: number;
334
+ memoryMb: number;
335
+ drainGraceSeconds: number;
336
+ startupDeadlineSeconds: number;
337
+ previewTtlHours: number;
338
+ };
339
+ }
340
+ export declare function getAppLimits(client: TransportClient): Promise<AppLimits>;
341
+ export declare function isSettledReleaseStatus(status: ReleaseStatus): boolean;
342
+ export declare function isTerminalBuildStatus(status: BuildStatus): boolean;
343
+ export declare function listApplications(client: TransportClient, options?: {
344
+ limit?: number;
345
+ cursor?: string;
346
+ }): Promise<ApplicationListResponse>;
347
+ export declare function getApplication(client: TransportClient, applicationId: string): Promise<ApplicationDetail>;
348
+ export declare function createApplication(client: TransportClient, input: CreateApplicationInput): Promise<Application & {
349
+ firstRelease?: {
350
+ releaseId: string;
351
+ statusUrl: string;
352
+ };
353
+ }>;
354
+ export interface AppVolumeBackup {
355
+ id: string;
356
+ applicationId: string;
357
+ volumeName: string;
358
+ status: 'PENDING' | 'READY' | 'FAILED';
359
+ trigger: 'manual' | 'scheduled';
360
+ artifactDigest?: string;
361
+ /** String, like every BigInt-backed size in this API. */
362
+ sizeBytes?: string | null;
363
+ /** @deprecated pre-projection field; read `sizeBytes`. */
364
+ artifactSizeBytes?: number;
365
+ failureReason?: string;
366
+ createdAt: string;
367
+ completedAt?: string | null;
368
+ }
369
+ export interface AppVolumeBackupListResponse {
370
+ items: AppVolumeBackup[];
371
+ nextCursor: string | null;
372
+ }
373
+ /** Accepted backup run: one PENDING row per volume, copying in the background. */
374
+ export interface AppVolumeBackupRunResponse {
375
+ items: AppVolumeBackup[];
376
+ /** Poll here (or `getAppBackup` per row) until the statuses settle. */
377
+ statusUrl: string;
378
+ }
379
+ export declare function listAppBackups(client: TransportClient, applicationId: string, options?: {
380
+ limit?: number;
381
+ cursor?: string;
382
+ volumeName?: string;
383
+ }): Promise<AppVolumeBackupListResponse>;
384
+ export declare function getAppBackup(client: TransportClient, applicationId: string, backupId: string): Promise<AppVolumeBackup>;
385
+ /**
386
+ * Answers 202 as soon as the rows exist — the copy outlives the request. The
387
+ * returned rows are PENDING; poll them for the outcome.
388
+ */
389
+ export declare function createAppBackup(client: TransportClient, applicationId: string): Promise<AppVolumeBackupRunResponse>;
390
+ /** Drops a restore point for good. Refused while the row is still PENDING. */
391
+ export declare function deleteAppBackup(client: TransportClient, applicationId: string, backupId: string): Promise<{
392
+ deleted: boolean;
393
+ }>;
394
+ /** Stops production, replaces the volume contents, starts production again. */
395
+ export declare function restoreAppBackup(client: TransportClient, applicationId: string, backupId: string): Promise<{
396
+ restored: boolean;
397
+ }>;
398
+ /** The decrypted connection URL of a template database. Never cached server-side. */
399
+ export declare function getAppConnectionUrl(client: TransportClient, applicationId: string): Promise<AppConnectionInfo>;
400
+ /**
401
+ * Writes the database's connection URL into `target`'s env (server-side
402
+ * compose). A target that already carries the key is refused (409) unless
403
+ * `overwrite` is set — the way to repoint an app at the database's current
404
+ * private address without ever handling the password.
405
+ */
406
+ export declare function connectApps(client: TransportClient, applicationId: string, target: string, options?: {
407
+ overwrite?: boolean;
408
+ }): Promise<{
409
+ connected: boolean;
410
+ target: string;
411
+ envKey: string;
412
+ note: string;
413
+ }>;
414
+ export declare function updateApplication(client: TransportClient, applicationId: string, patch: Partial<CreateApplicationInput>): Promise<Application>;
415
+ export declare function archiveApplication(client: TransportClient, applicationId: string): Promise<{
416
+ archived: boolean;
417
+ }>;
418
+ export declare function wakeApplication(client: TransportClient, applicationId: string): Promise<AppScaleActionResponse>;
419
+ export declare function pauseApplication(client: TransportClient, applicationId: string): Promise<AppScaleActionResponse>;
420
+ export declare function createRelease(client: TransportClient, applicationId: string, input: CreateReleaseInput): Promise<CreateReleaseResponse>;
421
+ /**
422
+ * Release what production runs now — the same build, or the same image
423
+ * reference pulled again — under the application's current configuration,
424
+ * and promote it once healthy (unless `promote: false`). 409 when nothing is
425
+ * promoted yet. Needs `apps:promote`.
426
+ */
427
+ export declare function redeployApplication(client: TransportClient, applicationId: string, input?: RedeployApplicationInput): Promise<CreateReleaseResponse & {
428
+ redeployOf: string;
429
+ }>;
430
+ export declare function listReleases(client: TransportClient, applicationId: string): Promise<{
431
+ items: Release[];
432
+ }>;
433
+ export declare function getRelease(client: TransportClient, releaseId: string): Promise<Release>;
434
+ export interface PromoteResponse {
435
+ previousReleaseId?: string;
436
+ /** Absent for a service with no production hostname (pure TCP, or no suffix). */
437
+ productionUrl?: string;
438
+ productionUrls: string[];
439
+ }
440
+ export declare function promoteRelease(client: TransportClient, releaseId: string): Promise<PromoteResponse>;
441
+ export declare function rollbackApplication(client: TransportClient, applicationId: string): Promise<{
442
+ mode: 'instant' | 'restarting';
443
+ releaseId: string;
444
+ }>;
445
+ export declare function stopRelease(client: TransportClient, releaseId: string): Promise<{
446
+ stopped: boolean;
447
+ }>;
448
+ export declare function execInRelease(client: TransportClient, releaseId: string, command: string, timeoutMs?: number): Promise<{
449
+ exitCode: number;
450
+ stdout: string;
451
+ stderr: string;
452
+ truncated: boolean;
453
+ }>;
454
+ export interface AppConsoleExecResult {
455
+ auditId: string;
456
+ exitCode: number;
457
+ releaseId: string;
458
+ runnerId?: string;
459
+ stderr: string;
460
+ stdout: string;
461
+ truncated: boolean;
462
+ }
463
+ /**
464
+ * Execute against the server-resolved current production allocation. Unlike
465
+ * the legacy release-scoped endpoint, this path is audited, rate-limited and
466
+ * refuses remote targets until the runner transport is available.
467
+ */
468
+ export declare function execInApplication(client: TransportClient, applicationId: string, command: string, timeoutMs?: number): Promise<AppConsoleExecResult>;
469
+ /** What the owner must publish in DNS before a custom hostname is served. */
470
+ export interface DomainVerificationInstructions {
471
+ txtName: string;
472
+ txtValue: string;
473
+ cnameTargets: string[];
474
+ ingressIps: string[];
475
+ ingressAliasTarget?: string;
476
+ }
477
+ export interface AppDomain {
478
+ hostname: string;
479
+ kind: 'production' | 'preview';
480
+ url: string;
481
+ activeReleaseId?: string;
482
+ /** True for a tenant-bound hostname; false for the platform-generated one. */
483
+ custom: boolean;
484
+ /** Custom domains are routed and TLS-approved only once verified. */
485
+ verified: boolean;
486
+ verifiedAt?: string;
487
+ /** Present while unverified. */
488
+ verification?: DomainVerificationInstructions;
489
+ }
490
+ /**
491
+ * Bind a custom hostname (always production). It starts unverified: publish
492
+ * the returned TXT record and point the name at the platform, then call
493
+ * `verifyApplicationDomain`.
494
+ */
495
+ export declare function addApplicationDomain(client: TransportClient, applicationId: string, hostname: string): Promise<AppDomain & {
496
+ verification: DomainVerificationInstructions;
497
+ }>;
498
+ export declare function verifyApplicationDomain(client: TransportClient, applicationId: string, hostname: string): Promise<AppDomain>;
499
+ export declare function listApplicationDomains(client: TransportClient, applicationId: string): Promise<{
500
+ items: AppDomain[];
501
+ }>;
502
+ export declare function removeApplicationDomain(client: TransportClient, applicationId: string, hostname: string): Promise<{
503
+ removed: boolean;
504
+ }>;
505
+ export declare function listBuilds(client: TransportClient, applicationId: string): Promise<{
506
+ items: Build[];
507
+ }>;
508
+ export declare function getBuild(client: TransportClient, buildId: string): Promise<Build>;
509
+ export declare function cancelBuild(client: TransportClient, buildId: string): Promise<{
510
+ cancelled: boolean;
511
+ }>;
512
+ export interface SourceSnapshot {
513
+ id: string;
514
+ status: 'pending' | 'ready' | 'failed';
515
+ sha256: string;
516
+ sizeBytes: string;
517
+ fileCount: number;
518
+ originKind: string;
519
+ createdAt: string;
520
+ }
521
+ /** Upload a source tree (base64 zip) as an immutable snapshot, reusable across builds. */
522
+ export declare function createSourceSnapshot(client: TransportClient, input: {
523
+ sourceZipBase64: string;
524
+ baseCommitSha?: string;
525
+ }): Promise<SourceSnapshot>;
526
+ export interface BuildOverrides {
527
+ /** Directory inside the source tree that becomes the build context. */
528
+ context?: string;
529
+ dockerfile?: string;
530
+ target?: string;
531
+ args?: Record<string, string>;
532
+ }
533
+ export interface QueueBuildInput {
534
+ /** Exactly one of snapshotId / sourceZipBase64. */
535
+ snapshotId?: string;
536
+ sourceZipBase64?: string;
537
+ build?: BuildOverrides;
538
+ /** Skip build-key dedup and build again. */
539
+ force?: boolean;
540
+ source?: 'api' | 'cli' | 'ui' | 'agent';
541
+ }
542
+ export interface QueueBuildResponse {
543
+ buildId: string;
544
+ applicationId: string;
545
+ snapshotId: string;
546
+ buildKey: string;
547
+ status: BuildStatus;
548
+ /** True when an identical build already succeeded and was reused. */
549
+ deduplicated: boolean;
550
+ imageDigest?: string;
551
+ statusUrl: string;
552
+ logsUrl: string;
553
+ }
554
+ /** Turn a source tree into an image. Poll `getBuild` / follow `streamBuildLogs`, then `createRelease({ buildId })`. */
555
+ export declare function queueBuild(client: TransportClient, applicationId: string, input: QueueBuildInput): Promise<QueueBuildResponse>;
556
+ /** One line of container or build output. */
557
+ export interface AppLogEvent {
558
+ type: 'log' | 'status' | 'complete' | 'error';
559
+ line?: string;
560
+ status?: string;
561
+ message?: string;
562
+ stream?: 'stdout' | 'stderr';
563
+ ts?: string;
564
+ }
565
+ /** Follow a running release's container logs. Ends when the container stops. */
566
+ export declare function streamReleaseLogs(client: TransportClient, releaseId: string, options?: {
567
+ tail?: number;
568
+ signal?: AbortSignal;
569
+ }): AsyncGenerator<AppLogEvent, void, unknown>;
570
+ /** Follow an image build. Terminal builds replay their stored output and end. */
571
+ export declare function streamBuildLogs(client: TransportClient, buildId: string, signal?: AbortSignal): AsyncGenerator<AppLogEvent, void, unknown>;
572
+ //# sourceMappingURL=apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"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"}