@wix/auto_sdk_containers_projects 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,863 @@
1
- export { AccountInfo, ActionEvent, CreateAgentSessionRequest, CreateAgentSessionResponse, CreateProjectRequest, CreateProjectResponse, CursorPaging, CursorPagingMetadata, Cursors, DeleteProjectRequest, DeleteProjectResponse, DomainEvent, DomainEventBodyOneOf, EntityCreatedEvent, EntityDeletedEvent, EntityUpdatedEvent, GetHimalayaAuthorizationRequest, GetHimalayaAuthorizationResponse, GetProjectRequest, GetProjectResponse, IdentificationData, IdentificationDataIdOneOf, ListProjectsForCurrentUserRequest, ListProjectsForCurrentUserResponse, ListProjectsOptions, ListProjectsRequest, ListProjectsResponse, MessageEnvelope, Platform, PlatformWithLiterals, Project, ProjectPlanReady, ProjectResumeRequested, ProjectStartRequested, ProjectStatus, ProjectStatusWithLiterals, RefreshAgentSiteTokenRequest, RefreshAgentSiteTokenResponse, RegenerateProjectIconRequest, RegenerateProjectIconResponse, RegenerateProjectNameRequest, RegenerateProjectNameResponse, RestoreInfo, ResumeProjectRequest, ResumeProjectResponse, SandboxStatus, SandboxStatusWithLiterals, SaveProjectDesignOptions, SaveProjectDesignRequest, SaveProjectDesignResponse, StartProjectRequest, StartProjectResponse, UpdateProject, UpdateProjectRequest, UpdateProjectResponse, WebhookIdentityType, WebhookIdentityTypeWithLiterals } from './index.js';
1
+ import { NonNullablePaths } from '@wix/sdk-types';
2
+
3
+ interface Project {
4
+ /**
5
+ * Project ID.
6
+ * @format GUID
7
+ * @readonly
8
+ */
9
+ _id?: string | null;
10
+ /**
11
+ * Display name for the project.
12
+ * @maxLength 200
13
+ */
14
+ name?: string;
15
+ /** Current status of the project. */
16
+ status?: ProjectStatusWithLiterals;
17
+ /**
18
+ * ID of the template used to create this project.
19
+ * @format GUID
20
+ * @immutable
21
+ */
22
+ templateId?: string | null;
23
+ /**
24
+ * ID of the git-code-store project (and backing dev-center app) for this project. Set on creation.
25
+ * @format GUID
26
+ * @readonly
27
+ */
28
+ codeStoreProjectId?: string | null;
29
+ /**
30
+ * The user id of the owner of this project
31
+ * @format GUID
32
+ * @readonly
33
+ */
34
+ ownerUserId?: string | null;
35
+ /**
36
+ * Revision number, which increments by 1 each time the Project is updated.
37
+ * @readonly
38
+ */
39
+ revision?: string | null;
40
+ /**
41
+ * Date and time the Project was created.
42
+ * @readonly
43
+ */
44
+ _createdDate?: Date | null;
45
+ /**
46
+ * Date and time the Project was last updated.
47
+ * @readonly
48
+ */
49
+ _updatedDate?: Date | null;
50
+ /**
51
+ * Transient lock marking that a sandbox is currently being created for this project.
52
+ * Used to serialize concurrent dev-machine creation; liveness of the sandbox itself is resolved via ListSandboxes.
53
+ * @readonly
54
+ */
55
+ sandboxStatus?: SandboxStatusWithLiterals;
56
+ /**
57
+ * Meta site IDs (MSIDs) of the Wix sites this project is related to.
58
+ * Optional — a project is not required to be tied to a site; may relate to many sites.
59
+ * Preserve the deployed input contract; see containers-projects/SDK_COMPATIBILITY.md.
60
+ * @format GUID
61
+ */
62
+ metaSiteIds?: string[];
63
+ /**
64
+ * Platform this project targets (iOS/Android). Supplied by the client at creation; immutable after.
65
+ * @immutable
66
+ */
67
+ platform?: PlatformWithLiterals;
68
+ /**
69
+ * Optional app icon URL supplied by the client from Wix Media Manager.
70
+ * @maxLength 2000
71
+ */
72
+ appIconUrl?: string | null;
73
+ /**
74
+ * The Himalaya release the editor is currently on — the "head" the client previews and the next
75
+ * edit (design save or AI edit) branches from. Server-managed: set to the new draft after each
76
+ * edit, and to the chosen release by RestoreRelease. Unset means "newest release by date" (the
77
+ * pre-head default), so existing projects keep working until their first edit/restore sets it.
78
+ * Not a GUID — a Himalaya release id (e.g. `rel-<hash>` / `<sha>-<hash>`).
79
+ * @maxLength 200
80
+ * @readonly
81
+ */
82
+ headReleaseId?: string | null;
83
+ }
84
+ declare enum ProjectStatus {
85
+ /** Project created; client (via containers-plans) is doing most of the work. */
86
+ PLANNING = "PLANNING",
87
+ /** Generation job created; project moves onward to machine startup. */
88
+ BUILDING = "BUILDING",
89
+ /** Plan finalized; project is about to create the initial generation job. */
90
+ PLAN_READY = "PLAN_READY"
91
+ }
92
+ /** @enumType */
93
+ type ProjectStatusWithLiterals = ProjectStatus | 'PLANNING' | 'BUILDING' | 'PLAN_READY';
94
+ declare enum SandboxStatus {
95
+ /** No sandbox creation in progress. */
96
+ NONE = "NONE",
97
+ /** A caller is currently creating a sandbox for this project (creation lock held). */
98
+ CREATING = "CREATING"
99
+ }
100
+ /** @enumType */
101
+ type SandboxStatusWithLiterals = SandboxStatus | 'NONE' | 'CREATING';
102
+ declare enum Platform {
103
+ IOS = "IOS",
104
+ ANDROID = "ANDROID",
105
+ /**
106
+ * Himalaya Mobile (Wix SDUI/OTA content package): mobile apps built headlessly on the
107
+ * on-demand remote machine via the himi CLI, instead of native iOS/Android pods.
108
+ */
109
+ HIMALAYA_MOBILE = "HIMALAYA_MOBILE"
110
+ }
111
+ /** @enumType */
112
+ type PlatformWithLiterals = Platform | 'IOS' | 'ANDROID' | 'HIMALAYA_MOBILE';
113
+ interface ProjectStartRequested {
114
+ /**
115
+ * ID of the Project to start.
116
+ * @format GUID
117
+ */
118
+ projectId?: string;
119
+ }
120
+ interface ProjectResumeRequested {
121
+ /**
122
+ * ID of the Project to resume.
123
+ * @format GUID
124
+ */
125
+ projectId?: string;
126
+ }
127
+ /**
128
+ * Emitted when the project transitions PLANNING -> PLAN_READY (on plan finalization). The project
129
+ * self-consumes this event to start the app generation: mint the agent session, attach it to the
130
+ * finalized conversation, create the initial generation job, and move to BUILDING. The finalized
131
+ * plan is read back from containers-plans by project id when the job is built.
132
+ */
133
+ interface ProjectPlanReady {
134
+ /**
135
+ * ID of the Project whose plan is ready.
136
+ * @format GUID
137
+ */
138
+ projectId?: string;
139
+ /**
140
+ * ID of the conversation that led to this plan being finalized. The minted agent session id is
141
+ * attached to this conversation so the build can --resume it. Propagated from PlanFinalized.
142
+ * @format GUID
143
+ */
144
+ conversationId?: string;
145
+ }
146
+ interface CreateAgentSessionRequest {
147
+ /**
148
+ * ID of the Project to create an agent session for.
149
+ * @format GUID
150
+ */
151
+ projectId?: string;
152
+ }
153
+ interface CreateAgentSessionResponse {
154
+ /**
155
+ * Agent session ID materialized for the Project.
156
+ * @format GUID
157
+ */
158
+ agentSessionId?: string;
159
+ }
160
+ interface RefreshAgentSiteTokenRequest {
161
+ /**
162
+ * Exact project/job tuple whose initiating user's site token should be re-minted.
163
+ * @format GUID
164
+ */
165
+ projectId?: string;
166
+ /**
167
+ * Job whose persisted initiating user and MetaSite provenance must be revalidated.
168
+ * @format GUID
169
+ */
170
+ jobId?: string;
171
+ }
172
+ interface RefreshAgentSiteTokenResponse {
173
+ /**
174
+ * A freshly minted site-scoped access token for the project owner. Sensitive credential material:
175
+ * marked pii so the platform redacts it from request/response logging (never log it in app code either).
176
+ * maxLength matches the sibling containers-project-versions token fields (4096) — ample for the
177
+ * oauth2-ng user access token, and required by the string-validation standard.
178
+ * @maxLength 4096
179
+ */
180
+ accessToken?: string;
181
+ /** Seconds until the returned token expires, as reported by oauth2-ng. */
182
+ expiresIn?: string;
183
+ /** Version of the job-bound authorization response contract. */
184
+ authorizationVersion?: number;
185
+ /**
186
+ * The project authorized by this refresh.
187
+ * @format GUID
188
+ */
189
+ projectId?: string;
190
+ /**
191
+ * The job authorized by this refresh.
192
+ * @format GUID
193
+ */
194
+ jobId?: string;
195
+ /**
196
+ * Trusted MetaSite captured when the job was created.
197
+ * @format GUID
198
+ */
199
+ metaSiteId?: string;
200
+ /**
201
+ * Trusted dashboard USER captured when the job was created.
202
+ * @format GUID
203
+ */
204
+ initiatingUserId?: string;
205
+ }
206
+ interface DomainEvent extends DomainEventBodyOneOf {
207
+ createdEvent?: EntityCreatedEvent;
208
+ updatedEvent?: EntityUpdatedEvent;
209
+ deletedEvent?: EntityDeletedEvent;
210
+ actionEvent?: ActionEvent;
211
+ /** Event ID. With this ID you can easily spot duplicated events and ignore them. */
212
+ _id?: string;
213
+ /**
214
+ * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
215
+ * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
216
+ */
217
+ entityFqdn?: string;
218
+ /**
219
+ * Event action name, placed at the top level to make it easier for users to dispatch messages.
220
+ * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
221
+ */
222
+ slug?: string;
223
+ /** ID of the entity associated with the event. */
224
+ entityId?: string;
225
+ /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
226
+ eventTime?: Date | null;
227
+ /**
228
+ * Whether the event was triggered as a result of a privacy regulation application
229
+ * (for example, GDPR).
230
+ */
231
+ triggeredByAnonymizeRequest?: boolean | null;
232
+ /** If present, indicates the action that triggered the event. */
233
+ originatedFrom?: string | null;
234
+ /**
235
+ * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.
236
+ * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
237
+ */
238
+ entityEventSequence?: string | null;
239
+ }
240
+ /** @oneof */
241
+ interface DomainEventBodyOneOf {
242
+ createdEvent?: EntityCreatedEvent;
243
+ updatedEvent?: EntityUpdatedEvent;
244
+ deletedEvent?: EntityDeletedEvent;
245
+ actionEvent?: ActionEvent;
246
+ }
247
+ interface EntityCreatedEvent {
248
+ entity?: string;
249
+ }
250
+ interface RestoreInfo {
251
+ deletedDate?: Date | null;
252
+ }
253
+ interface EntityUpdatedEvent {
254
+ /**
255
+ * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
256
+ * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
257
+ * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
258
+ */
259
+ currentEntity?: string;
260
+ }
261
+ interface EntityDeletedEvent {
262
+ /** Entity that was deleted. */
263
+ deletedEntity?: string | null;
264
+ }
265
+ interface ActionEvent {
266
+ body?: string;
267
+ }
268
+ interface MessageEnvelope {
269
+ /**
270
+ * App instance ID.
271
+ * @format GUID
272
+ */
273
+ instanceId?: string | null;
274
+ /**
275
+ * Event type.
276
+ * @maxLength 150
277
+ */
278
+ eventType?: string;
279
+ /** The identification type and identity data. */
280
+ identity?: IdentificationData;
281
+ /** Stringify payload. */
282
+ data?: string;
283
+ /** Details related to the account */
284
+ accountInfo?: AccountInfo;
285
+ }
286
+ interface IdentificationData extends IdentificationDataIdOneOf {
287
+ /**
288
+ * ID of a site visitor that has not logged in to the site.
289
+ * @format GUID
290
+ */
291
+ anonymousVisitorId?: string;
292
+ /**
293
+ * ID of a site visitor that has logged in to the site.
294
+ * @format GUID
295
+ */
296
+ memberId?: string;
297
+ /**
298
+ * ID of a Wix user (site owner, contributor, etc.).
299
+ * @format GUID
300
+ */
301
+ wixUserId?: string;
302
+ /**
303
+ * ID of an app.
304
+ * @format GUID
305
+ */
306
+ appId?: string;
307
+ /** @readonly */
308
+ identityType?: WebhookIdentityTypeWithLiterals;
309
+ }
310
+ /** @oneof */
311
+ interface IdentificationDataIdOneOf {
312
+ /**
313
+ * ID of a site visitor that has not logged in to the site.
314
+ * @format GUID
315
+ */
316
+ anonymousVisitorId?: string;
317
+ /**
318
+ * ID of a site visitor that has logged in to the site.
319
+ * @format GUID
320
+ */
321
+ memberId?: string;
322
+ /**
323
+ * ID of a Wix user (site owner, contributor, etc.).
324
+ * @format GUID
325
+ */
326
+ wixUserId?: string;
327
+ /**
328
+ * ID of an app.
329
+ * @format GUID
330
+ */
331
+ appId?: string;
332
+ }
333
+ declare enum WebhookIdentityType {
334
+ UNKNOWN = "UNKNOWN",
335
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
336
+ MEMBER = "MEMBER",
337
+ WIX_USER = "WIX_USER",
338
+ APP = "APP"
339
+ }
340
+ /** @enumType */
341
+ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
342
+ interface AccountInfo {
343
+ /**
344
+ * ID of the Wix account associated with the event.
345
+ * @format GUID
346
+ */
347
+ accountId?: string | null;
348
+ /**
349
+ * ID of the parent Wix account. Only included when accountId belongs to a child account.
350
+ * @format GUID
351
+ */
352
+ parentAccountId?: string | null;
353
+ /**
354
+ * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
355
+ * @format GUID
356
+ */
357
+ siteId?: string | null;
358
+ }
359
+ interface CreateProjectRequest {
360
+ /** Project to be created. */
361
+ project: Project;
362
+ }
363
+ interface CreateProjectResponse {
364
+ /** The created Project. */
365
+ project?: Project;
366
+ }
367
+ interface GetProjectRequest {
368
+ /**
369
+ * ID of the Project to retrieve.
370
+ * @format GUID
371
+ */
372
+ projectId: string;
373
+ }
374
+ interface GetProjectResponse {
375
+ /** The requested Project. */
376
+ project?: Project;
377
+ }
378
+ interface UpdateProjectRequest {
379
+ /** Project to be updated, may be partial. */
380
+ project: Project;
381
+ }
382
+ interface UpdateProjectResponse {
383
+ /** Updated Project. */
384
+ project?: Project;
385
+ }
386
+ interface DeleteProjectRequest {
387
+ /**
388
+ * Id of the Project to delete.
389
+ * @format GUID
390
+ */
391
+ projectId: string;
392
+ }
393
+ interface DeleteProjectResponse {
394
+ }
395
+ interface StartProjectRequest {
396
+ /**
397
+ * ID of the Project to start.
398
+ * @format GUID
399
+ */
400
+ projectId?: string;
401
+ }
402
+ interface StartProjectResponse {
403
+ /** The Project for which start was requested. */
404
+ project?: Project;
405
+ }
406
+ interface ResumeProjectRequest {
407
+ /**
408
+ * ID of the Project to resume.
409
+ * @format GUID
410
+ */
411
+ projectId: string;
412
+ }
413
+ interface ResumeProjectResponse {
414
+ /** The Project for which resume was requested. */
415
+ project?: Project;
416
+ }
417
+ interface RegenerateProjectNameRequest {
418
+ /**
419
+ * ID of the Project to generate a new name for.
420
+ * @format GUID
421
+ */
422
+ projectId: string;
423
+ /**
424
+ * The user's free-text renaming instruction, passed to the name-generation prompt.
425
+ * @maxLength 4000
426
+ */
427
+ prompt: string;
428
+ }
429
+ interface RegenerateProjectNameResponse {
430
+ /**
431
+ * The generated display name, at most 30 characters. Not persisted.
432
+ * @maxLength 30
433
+ */
434
+ name?: string;
435
+ }
436
+ interface RegenerateProjectIconRequest {
437
+ /**
438
+ * ID of the Project to generate a new icon for.
439
+ * @format GUID
440
+ */
441
+ projectId: string;
442
+ /**
443
+ * The user's free-text icon instruction, passed to the icon-generation prompt.
444
+ * @maxLength 4000
445
+ */
446
+ prompt: string;
447
+ }
448
+ interface RegenerateProjectIconResponse {
449
+ /**
450
+ * The generated icon URL. Not persisted.
451
+ * @format WEB_URL
452
+ */
453
+ iconUrl?: string;
454
+ }
455
+ interface ListProjectsForCurrentUserRequest {
456
+ /** Cursor paging options. */
457
+ paging?: CursorPaging;
458
+ }
459
+ interface CursorPaging {
460
+ /**
461
+ * Maximum number of items to return in the results.
462
+ * @max 100
463
+ */
464
+ limit?: number | null;
465
+ /**
466
+ * Pointer to the next or previous page in the list of results.
467
+ *
468
+ * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
469
+ * Not relevant for the first request.
470
+ * @maxLength 16000
471
+ */
472
+ cursor?: string | null;
473
+ }
474
+ interface ListProjectsForCurrentUserResponse {
475
+ /** Projects owned by the current user. */
476
+ projects?: Project[];
477
+ /** Paging metadata for cursor-based pagination. */
478
+ pagingMetadata?: CursorPagingMetadata;
479
+ }
480
+ interface CursorPagingMetadata {
481
+ /** Number of items returned in current page. */
482
+ count?: number | null;
483
+ /** Cursor strings that point to the next page, previous page, or both. */
484
+ cursors?: Cursors;
485
+ /**
486
+ * Whether there are more pages to retrieve following the current page.
487
+ *
488
+ * + `true`: Another page of results can be retrieved.
489
+ * + `false`: This is the last page.
490
+ */
491
+ hasNext?: boolean | null;
492
+ }
493
+ interface Cursors {
494
+ /**
495
+ * Cursor string pointing to the next page in the list of results.
496
+ * @maxLength 16000
497
+ */
498
+ next?: string | null;
499
+ /**
500
+ * Cursor pointing to the previous page in the list of results.
501
+ * @maxLength 16000
502
+ */
503
+ prev?: string | null;
504
+ }
505
+ interface SaveProjectDesignRequest {
506
+ /**
507
+ * Project whose design is being saved. The caller must own it.
508
+ * @format GUID
509
+ */
510
+ projectId: string;
511
+ /**
512
+ * The Himalaya release ID currently displayed by the client. The saved draft branches from
513
+ * exactly this release, even when a newer release exists for the app.
514
+ * @maxLength 100
515
+ */
516
+ baseReleaseId: string;
517
+ /**
518
+ * The complete edited design-token document, as a JSON object string — not a flattened set of
519
+ * preview overrides. The caller is responsible for preserving unknown groups and light/dark
520
+ * values it did not change.
521
+ * @maxLength 65536
522
+ */
523
+ tokensJson: string;
524
+ /**
525
+ * Short-lived, app-scoped Himalaya control credential the client obtained from Himalaya's owner
526
+ * embed-token endpoint. Forwarded to Himalaya for this call only — never logged, persisted, or
527
+ * echoed back in any response, error, or event.
528
+ *
529
+ * The app this call writes to is NOT taken from this request. It is composed from the owner
530
+ * prefix this credential carries plus project_id; see HimalayaAppSlug.
531
+ * @maxLength 4096
532
+ */
533
+ himalayaControlToken: string;
534
+ /**
535
+ * Client assertion of the canonical app returned by authenticated Himalaya lookup. Catalyst
536
+ * resolves and validates the same value; it is never used as an unchecked write target.
537
+ * @maxLength 200
538
+ */
539
+ canonicalApp?: string;
540
+ /**
541
+ * Conversation this design is saved from. When set, a CHECKPOINT message marking the saved
542
+ * version is posted into it (best-effort). Optional — an older client that omits it still saves
543
+ * the design; it just produces no checkpoint. Verified to belong to this project server-side.
544
+ *
545
+ * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
546
+ * fail the save. A malformed/unexpected id is handled downstream (the ownership lookup rejects it
547
+ * and the checkpoint is skipped) rather than hard-failing SaveProjectDesign at the request boundary.
548
+ * @maxLength 100
549
+ */
550
+ conversationId?: string;
551
+ }
552
+ interface SaveProjectDesignResponse {
553
+ /**
554
+ * The saved draft release. Always a draft, so the app's live release is untouched.
555
+ * @maxLength 100
556
+ */
557
+ himalayaReleaseId?: string;
558
+ /**
559
+ * Short-lived credential for previewing the saved draft release. Response-only: never persisted
560
+ * or placed in a preview URL by this service.
561
+ * @maxLength 4096
562
+ */
563
+ previewToken?: string;
564
+ /** When preview_token expires. */
565
+ previewTokenExpiresAt?: Date | null;
566
+ }
567
+ interface RestoreReleaseRequest {
568
+ /**
569
+ * Project whose head is being moved. The caller must own it.
570
+ * @format GUID
571
+ */
572
+ projectId: string;
573
+ /**
574
+ * The Himalaya release to make the project's editable head. Not a GUID — a Himalaya release id
575
+ * (e.g. `rel-<hash>` / `<sha>-<hash>`), taken from the project's own release ledger.
576
+ * @maxLength 200
577
+ */
578
+ releaseId: string;
579
+ /**
580
+ * Short-lived, app-scoped Himalaya control credential (the same the client obtains from Himalaya's
581
+ * owner embed-token endpoint and sends on SaveProjectDesign). When present, the server verifies
582
+ * release_id belongs to this project's Himalaya app before moving head. Optional for back-compat:
583
+ * an older client that omits it skips that check (the release still comes from the project's own
584
+ * ledger). Forwarded to Himalaya for the ledger read only — never logged, persisted, or echoed.
585
+ * @maxLength 4096
586
+ */
587
+ himalayaControlToken?: string;
588
+ /**
589
+ * Conversation this restore is made from. When set, a CHECKPOINT message marking the restored
590
+ * version is posted into it (best-effort). Optional — a client that omits it still restores; it
591
+ * just produces no checkpoint. Verified to belong to this project server-side.
592
+ *
593
+ * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
594
+ * fail the restore. A malformed id is handled downstream (the ownership lookup rejects it and the
595
+ * checkpoint is skipped) rather than hard-failing RestoreRelease at the request boundary.
596
+ * @maxLength 100
597
+ */
598
+ conversationId?: string;
599
+ }
600
+ interface RestoreReleaseResponse {
601
+ /** The project after the restore, with head_release_id set to the restored release. */
602
+ project?: Project;
603
+ }
604
+ interface ListProjectsRequest {
605
+ /** Cursor paging options. */
606
+ paging?: CursorPaging;
607
+ }
608
+ interface ListProjectsResponse {
609
+ /** Projects in the current site. */
610
+ projects?: Project[];
611
+ /** Paging metadata for cursor-based pagination. */
612
+ pagingMetadata?: CursorPagingMetadata;
613
+ }
614
+ interface GetHimalayaAuthorizationRequest {
615
+ /**
616
+ * Site-tenanted Containers project being authorized.
617
+ * @format GUID
618
+ */
619
+ projectId: string;
620
+ }
621
+ interface GetHimalayaAuthorizationResponse {
622
+ /** Version of the authorization capability contract. */
623
+ authorizationVersion?: number;
624
+ /**
625
+ * Trusted MetaSite selected from request identity context.
626
+ * @format GUID
627
+ */
628
+ metaSiteId?: string;
629
+ /**
630
+ * Site-tenanted Containers project authorized by the lookup.
631
+ * @format GUID
632
+ */
633
+ projectId?: string;
634
+ /**
635
+ * Verified canonical Himalaya app slug.
636
+ * @maxLength 200
637
+ */
638
+ canonicalApp?: string;
639
+ /** Whether a fresh worker launch is currently authorized. */
640
+ workerLaunch?: boolean;
641
+ /** Whether a fresh design save is currently authorized. */
642
+ saveDesign?: boolean;
643
+ }
644
+ /**
645
+ * Retrieves a Project by ID.
646
+ * @param projectId - ID of the Project to retrieve.
647
+ * @public
648
+ * @documentationMaturity preview
649
+ * @requiredField projectId
650
+ * @permissionId containers:projects:v1:project:get_project
651
+ * @returns The requested Project.
652
+ * @fqn wix.containers.projects.v1.ContainersProjects.GetProject
653
+ */
654
+ declare function getProject(projectId: string): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
655
+ interface UpdateProject {
656
+ /**
657
+ * Project ID.
658
+ * @format GUID
659
+ * @readonly
660
+ */
661
+ _id?: string | null;
662
+ /**
663
+ * Display name for the project.
664
+ * @maxLength 200
665
+ */
666
+ name?: string;
667
+ /** Current status of the project. */
668
+ status?: ProjectStatusWithLiterals;
669
+ /**
670
+ * ID of the template used to create this project.
671
+ * @format GUID
672
+ * @immutable
673
+ */
674
+ templateId?: string | null;
675
+ /**
676
+ * ID of the git-code-store project (and backing dev-center app) for this project. Set on creation.
677
+ * @format GUID
678
+ * @readonly
679
+ */
680
+ codeStoreProjectId?: string | null;
681
+ /**
682
+ * The user id of the owner of this project
683
+ * @format GUID
684
+ * @readonly
685
+ */
686
+ ownerUserId?: string | null;
687
+ /**
688
+ * Revision number, which increments by 1 each time the Project is updated.
689
+ * @readonly
690
+ */
691
+ revision?: string | null;
692
+ /**
693
+ * Date and time the Project was created.
694
+ * @readonly
695
+ */
696
+ _createdDate?: Date | null;
697
+ /**
698
+ * Date and time the Project was last updated.
699
+ * @readonly
700
+ */
701
+ _updatedDate?: Date | null;
702
+ /**
703
+ * Transient lock marking that a sandbox is currently being created for this project.
704
+ * Used to serialize concurrent dev-machine creation; liveness of the sandbox itself is resolved via ListSandboxes.
705
+ * @readonly
706
+ */
707
+ sandboxStatus?: SandboxStatusWithLiterals;
708
+ /**
709
+ * Meta site IDs (MSIDs) of the Wix sites this project is related to.
710
+ * Optional — a project is not required to be tied to a site; may relate to many sites.
711
+ * Preserve the deployed input contract; see containers-projects/SDK_COMPATIBILITY.md.
712
+ * @format GUID
713
+ */
714
+ metaSiteIds?: string[];
715
+ /**
716
+ * Platform this project targets (iOS/Android). Supplied by the client at creation; immutable after.
717
+ * @immutable
718
+ */
719
+ platform?: PlatformWithLiterals;
720
+ /**
721
+ * Optional app icon URL supplied by the client from Wix Media Manager.
722
+ * @maxLength 2000
723
+ */
724
+ appIconUrl?: string | null;
725
+ /**
726
+ * The Himalaya release the editor is currently on — the "head" the client previews and the next
727
+ * edit (design save or AI edit) branches from. Server-managed: set to the new draft after each
728
+ * edit, and to the chosen release by RestoreRelease. Unset means "newest release by date" (the
729
+ * pre-head default), so existing projects keep working until their first edit/restore sets it.
730
+ * Not a GUID — a Himalaya release id (e.g. `rel-<hash>` / `<sha>-<hash>`).
731
+ * @maxLength 200
732
+ * @readonly
733
+ */
734
+ headReleaseId?: string | null;
735
+ }
736
+ /**
737
+ * Requests Project resume by starting or reusing its configured remote machine asynchronously.
738
+ * @param projectId - ID of the Project to resume.
739
+ * @public
740
+ * @documentationMaturity preview
741
+ * @requiredField projectId
742
+ * @permissionId containers:projects:v1:project:resume_project
743
+ * @fqn wix.containers.projects.v1.ContainersProjects.ResumeProject
744
+ */
745
+ declare function resumeProject(projectId: string): Promise<NonNullablePaths<ResumeProjectResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
746
+ /**
747
+ * Persists a complete design-token document as a new Himalaya draft release, branched from the
748
+ * release the client currently has displayed.
749
+ *
750
+ * Synchronous: the Himalaya write completes before this call returns. Never touches the project's
751
+ * sandbox, runs a build, or activates the app — the saved release stays a draft, so what the live
752
+ * app serves is unaffected. Persists no entity of its own. When `conversation_id` is supplied it
753
+ * posts a CHECKPOINT message for the saved release into that conversation (best-effort — a chat
754
+ * failure never fails the save); omit it to skip the checkpoint.
755
+ * @param projectId - Project whose design is being saved. The caller must own it.
756
+ * @param baseReleaseId - The Himalaya release ID currently displayed by the client. The saved draft branches from
757
+ * exactly this release, even when a newer release exists for the app.
758
+ * @public
759
+ * @documentationMaturity preview
760
+ * @requiredField baseReleaseId
761
+ * @requiredField options.himalayaControlToken
762
+ * @requiredField options.tokensJson
763
+ * @requiredField projectId
764
+ * @permissionId containers:projects:v1:project:save_project_design
765
+ * @fqn wix.containers.projects.v1.ContainersProjects.SaveProjectDesign
766
+ */
767
+ declare function saveProjectDesign(projectId: string, baseReleaseId: string, options?: NonNullablePaths<SaveProjectDesignOptions, `himalayaControlToken` | `tokensJson`, 0>): Promise<NonNullablePaths<SaveProjectDesignResponse, `himalayaReleaseId` | `previewToken`, 0>>;
768
+ interface SaveProjectDesignOptions {
769
+ /**
770
+ * The complete edited design-token document, as a JSON object string — not a flattened set of
771
+ * preview overrides. The caller is responsible for preserving unknown groups and light/dark
772
+ * values it did not change.
773
+ * @maxLength 65536
774
+ */
775
+ tokensJson: string;
776
+ /**
777
+ * Short-lived, app-scoped Himalaya control credential the client obtained from Himalaya's owner
778
+ * embed-token endpoint. Forwarded to Himalaya for this call only — never logged, persisted, or
779
+ * echoed back in any response, error, or event.
780
+ *
781
+ * The app this call writes to is NOT taken from this request. It is composed from the owner
782
+ * prefix this credential carries plus project_id; see HimalayaAppSlug.
783
+ * @maxLength 4096
784
+ */
785
+ himalayaControlToken: string;
786
+ /**
787
+ * Client assertion of the canonical app returned by authenticated Himalaya lookup. Catalyst
788
+ * resolves and validates the same value; it is never used as an unchecked write target.
789
+ * @maxLength 200
790
+ */
791
+ canonicalApp?: string;
792
+ /**
793
+ * Conversation this design is saved from. When set, a CHECKPOINT message marking the saved
794
+ * version is posted into it (best-effort). Optional — an older client that omits it still saves
795
+ * the design; it just produces no checkpoint. Verified to belong to this project server-side.
796
+ *
797
+ * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
798
+ * fail the save. A malformed/unexpected id is handled downstream (the ownership lookup rejects it
799
+ * and the checkpoint is skipped) rather than hard-failing SaveProjectDesign at the request boundary.
800
+ * @maxLength 100
801
+ */
802
+ conversationId?: string;
803
+ }
804
+ /**
805
+ * Restores an earlier version by pointing the project's editable head at `release_id`: the client
806
+ * then previews that release and the next edit (design save or AI edit) branches from it. Pure
807
+ * project state — sets `head_release_id` and nothing in Himalaya: it does NOT activate the release,
808
+ * so the live app end-users run is untouched (a later publish/build is what carries head live).
809
+ *
810
+ * `release_id` is a Himalaya release id the caller already holds from the project's own release
811
+ * ledger, scoped to this project's app; the server stores it as head without re-reading Himalaya.
812
+ * When `conversation_id` is supplied, a CHECKPOINT message for the restored release is posted into
813
+ * it (best-effort — a chat failure never fails the restore); omit it to skip the checkpoint.
814
+ * @param projectId - Project whose head is being moved. The caller must own it.
815
+ * @param releaseId - The Himalaya release to make the project's editable head. Not a GUID — a Himalaya release id
816
+ * (e.g. `rel-<hash>` / `<sha>-<hash>`), taken from the project's own release ledger.
817
+ * @public
818
+ * @documentationMaturity preview
819
+ * @requiredField projectId
820
+ * @requiredField releaseId
821
+ * @permissionId containers:projects:v1:project:restore_release
822
+ * @fqn wix.containers.projects.v1.ContainersProjects.RestoreRelease
823
+ */
824
+ declare function restoreRelease(projectId: string, releaseId: string, options?: RestoreReleaseOptions): Promise<NonNullablePaths<RestoreReleaseResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
825
+ interface RestoreReleaseOptions {
826
+ /**
827
+ * Short-lived, app-scoped Himalaya control credential (the same the client obtains from Himalaya's
828
+ * owner embed-token endpoint and sends on SaveProjectDesign). When present, the server verifies
829
+ * release_id belongs to this project's Himalaya app before moving head. Optional for back-compat:
830
+ * an older client that omits it skips that check (the release still comes from the project's own
831
+ * ledger). Forwarded to Himalaya for the ledger read only — never logged, persisted, or echoed.
832
+ * @maxLength 4096
833
+ */
834
+ himalayaControlToken?: string;
835
+ /**
836
+ * Conversation this restore is made from. When set, a CHECKPOINT message marking the restored
837
+ * version is posted into it (best-effort). Optional — a client that omits it still restores; it
838
+ * just produces no checkpoint. Verified to belong to this project server-side.
839
+ *
840
+ * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
841
+ * fail the restore. A malformed id is handled downstream (the ownership lookup rejects it and the
842
+ * checkpoint is skipped) rather than hard-failing RestoreRelease at the request boundary.
843
+ * @maxLength 100
844
+ */
845
+ conversationId?: string;
846
+ }
847
+ interface ListProjectsOptions {
848
+ /** Cursor paging options. */
849
+ paging?: CursorPaging;
850
+ }
851
+ /**
852
+ * Repeats authenticated Himalaya authorization for the current collaborator. This response is
853
+ * a capability check only; every worker/design mutation performs a fresh check.
854
+ * @param projectId - Site-tenanted Containers project being authorized.
855
+ * @public
856
+ * @documentationMaturity preview
857
+ * @requiredField projectId
858
+ * @permissionId containers:projects:v1:project:get_himalaya_authorization
859
+ * @fqn wix.containers.projects.v1.ContainersProjects.GetHimalayaAuthorization
860
+ */
861
+ declare function getHimalayaAuthorization(projectId: string): Promise<NonNullablePaths<GetHimalayaAuthorizationResponse, `authorizationVersion` | `metaSiteId` | `projectId` | `canonicalApp` | `workerLaunch` | `saveDesign`, 0>>;
862
+
863
+ export { type AccountInfo, type ActionEvent, type CreateAgentSessionRequest, type CreateAgentSessionResponse, type CreateProjectRequest, type CreateProjectResponse, type CursorPaging, type CursorPagingMetadata, type Cursors, type DeleteProjectRequest, type DeleteProjectResponse, type DomainEvent, type DomainEventBodyOneOf, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type GetHimalayaAuthorizationRequest, type GetHimalayaAuthorizationResponse, type GetProjectRequest, type GetProjectResponse, type IdentificationData, type IdentificationDataIdOneOf, type ListProjectsForCurrentUserRequest, type ListProjectsForCurrentUserResponse, type ListProjectsOptions, type ListProjectsRequest, type ListProjectsResponse, type MessageEnvelope, Platform, type PlatformWithLiterals, type Project, type ProjectPlanReady, type ProjectResumeRequested, type ProjectStartRequested, ProjectStatus, type ProjectStatusWithLiterals, type RefreshAgentSiteTokenRequest, type RefreshAgentSiteTokenResponse, type RegenerateProjectIconRequest, type RegenerateProjectIconResponse, type RegenerateProjectNameRequest, type RegenerateProjectNameResponse, type RestoreInfo, type RestoreReleaseOptions, type RestoreReleaseRequest, type RestoreReleaseResponse, type ResumeProjectRequest, type ResumeProjectResponse, SandboxStatus, type SandboxStatusWithLiterals, type SaveProjectDesignOptions, type SaveProjectDesignRequest, type SaveProjectDesignResponse, type StartProjectRequest, type StartProjectResponse, type UpdateProject, type UpdateProjectRequest, type UpdateProjectResponse, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, getHimalayaAuthorization, getProject, restoreRelease, resumeProject, saveProjectDesign };