@wix/auto_sdk_containers_projects 1.0.5 → 1.0.6

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,5 +1,10 @@
1
1
  import { NonNullablePaths } from '@wix/sdk-types';
2
2
 
3
+ /**
4
+ * A project represents an app that a user builds with the Wix AI coding agent.
5
+ * A project belongs to the Wix site it's created on. The user's chat with the coding agent about a
6
+ * project is held in [conversations](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction).
7
+ */
3
8
  interface Project {
4
9
  /**
5
10
  * Project ID.
@@ -8,137 +13,144 @@ interface Project {
8
13
  */
9
14
  _id?: string | null;
10
15
  /**
11
- * Display name for the project.
16
+ * Project name, shown to the user.
12
17
  * @maxLength 200
13
18
  */
14
19
  name?: string;
15
- /** Current status of the project. */
20
+ /** Project status. */
16
21
  status?: ProjectStatusWithLiterals;
17
22
  /**
18
- * ID of the template used to create this project.
23
+ * ID of the template that the project was created from.
19
24
  * @format GUID
20
25
  * @immutable
21
26
  */
22
27
  templateId?: string | null;
23
28
  /**
24
- * ID of the git-code-store project (and backing dev-center app) for this project. Set on creation.
29
+ * ID of the project's source code project. Set automatically when the project is created.
25
30
  * @format GUID
26
31
  * @readonly
27
32
  */
28
33
  codeStoreProjectId?: string | null;
29
34
  /**
30
- * The user id of the owner of this project
35
+ * ID of the user who created the project.
31
36
  * @format GUID
32
37
  * @readonly
33
38
  */
34
39
  ownerUserId?: string | null;
35
40
  /**
36
- * Revision number, which increments by 1 each time the Project is updated.
41
+ * Revision number, which increments by 1 each time the project is updated.
42
+ * To prevent conflicting changes,
43
+ * the current revision must be passed when updating the project.
44
+ *
45
+ * Ignored when creating a project.
37
46
  * @readonly
38
47
  */
39
48
  revision?: string | null;
40
49
  /**
41
- * Date and time the Project was created.
50
+ * Date and time the project was created.
42
51
  * @readonly
43
52
  */
44
53
  _createdDate?: Date | null;
45
54
  /**
46
- * Date and time the Project was last updated.
55
+ * Date and time the project was last updated.
47
56
  * @readonly
48
57
  */
49
58
  _updatedDate?: Date | null;
50
59
  /**
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.
60
+ * Whether a remote development environment is being created for the project.
53
61
  * @readonly
54
62
  */
55
63
  sandboxStatus?: SandboxStatusWithLiterals;
56
64
  /**
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.
65
+ * IDs of the Wix sites that the project relates to.
66
+ *
67
+ * A project can relate to any number of sites, including none.
60
68
  * @format GUID
61
69
  */
62
70
  metaSiteIds?: string[];
63
71
  /**
64
- * Platform this project targets (iOS/Android). Supplied by the client at creation; immutable after.
72
+ * Platform that the project's app targets. Set when the project is created and can't be changed.
65
73
  * @immutable
66
74
  */
67
75
  platform?: PlatformWithLiterals;
68
76
  /**
69
- * Optional app icon URL supplied by the client from Wix Media Manager.
77
+ * URL of the app's icon.
70
78
  * @maxLength 2000
71
79
  */
72
80
  appIconUrl?: string | null;
73
81
  /**
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>`).
82
+ * ID of the release that the project is currently on.
83
+ *
84
+ * Your app previews this release, and the next design save or edit by the coding agent branches
85
+ * from it. Set automatically after each design save or edit, and by
86
+ * [Restore Release](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release).
87
+ * When empty, the project is on its newest release.
79
88
  * @maxLength 200
80
89
  * @readonly
81
90
  */
82
91
  headReleaseId?: string | null;
83
92
  }
93
+ /**
94
+ * Project status. The status changes in one direction only: `PLANNING`, then `PLAN_READY`, then
95
+ * `BUILDING`.
96
+ */
84
97
  declare enum ProjectStatus {
85
- /** Project created; client (via containers-plans) is doing most of the work. */
98
+ /** The user and the coding agent are planning the app. New projects start with this status. */
86
99
  PLANNING = "PLANNING",
87
- /** Generation job created; project moves onward to machine startup. */
100
+ /** The coding agent is building the app, or has built it. The user can continue to request changes. */
88
101
  BUILDING = "BUILDING",
89
- /** Plan finalized; project is about to create the initial generation job. */
102
+ /** The plan is finalized, and the first build of the app is about to start. */
90
103
  PLAN_READY = "PLAN_READY"
91
104
  }
92
105
  /** @enumType */
93
106
  type ProjectStatusWithLiterals = ProjectStatus | 'PLANNING' | 'BUILDING' | 'PLAN_READY';
94
107
  declare enum SandboxStatus {
95
- /** No sandbox creation in progress. */
108
+ /** No remote development environment is being created. */
96
109
  NONE = "NONE",
97
- /** A caller is currently creating a sandbox for this project (creation lock held). */
110
+ /** A remote development environment is being created. */
98
111
  CREATING = "CREATING"
99
112
  }
100
113
  /** @enumType */
101
114
  type SandboxStatusWithLiterals = SandboxStatus | 'NONE' | 'CREATING';
102
115
  declare enum Platform {
116
+ /** Native iOS app. Used by older projects. */
103
117
  IOS = "IOS",
118
+ /** Native Android app. Used by older projects. */
104
119
  ANDROID = "ANDROID",
105
120
  /**
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.
121
+ * Mobile app built from content that's updated over the air, instead of native iOS or Android
122
+ * code. Most new projects use this platform.
108
123
  */
109
124
  HIMALAYA_MOBILE = "HIMALAYA_MOBILE"
110
125
  }
111
126
  /** @enumType */
112
127
  type PlatformWithLiterals = Platform | 'IOS' | 'ANDROID' | 'HIMALAYA_MOBILE';
128
+ /** Details of a request to start a project's remote development environment. */
113
129
  interface ProjectStartRequested {
114
130
  /**
115
- * ID of the Project to start.
131
+ * ID of the project to start.
116
132
  * @format GUID
117
133
  */
118
134
  projectId?: string;
119
135
  }
136
+ /** Details of a request to resume a project. */
120
137
  interface ProjectResumeRequested {
121
138
  /**
122
- * ID of the Project to resume.
139
+ * ID of the project to resume.
123
140
  * @format GUID
124
141
  */
125
142
  projectId?: string;
126
143
  }
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
- */
144
+ /** Details of a project whose plan is finalized. */
133
145
  interface ProjectPlanReady {
134
146
  /**
135
- * ID of the Project whose plan is ready.
147
+ * ID of the project whose plan is finalized.
136
148
  * @format GUID
137
149
  */
138
150
  projectId?: string;
139
151
  /**
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.
152
+ * ID of the conversation in which the plan was finalized. The coding agent continues the build in
153
+ * this conversation.
142
154
  * @format GUID
143
155
  */
144
156
  conversationId?: string;
@@ -357,35 +369,35 @@ interface AccountInfo {
357
369
  siteId?: string | null;
358
370
  }
359
371
  interface CreateProjectRequest {
360
- /** Project to be created. */
372
+ /** Project to create. */
361
373
  project: Project;
362
374
  }
363
375
  interface CreateProjectResponse {
364
- /** The created Project. */
376
+ /** Created project. */
365
377
  project?: Project;
366
378
  }
367
379
  interface GetProjectRequest {
368
380
  /**
369
- * ID of the Project to retrieve.
381
+ * ID of the project to retrieve.
370
382
  * @format GUID
371
383
  */
372
384
  projectId: string;
373
385
  }
374
386
  interface GetProjectResponse {
375
- /** The requested Project. */
387
+ /** Retrieved project. */
376
388
  project?: Project;
377
389
  }
378
390
  interface UpdateProjectRequest {
379
- /** Project to be updated, may be partial. */
391
+ /** Project to update. */
380
392
  project: Project;
381
393
  }
382
394
  interface UpdateProjectResponse {
383
- /** Updated Project. */
395
+ /** Updated project. */
384
396
  project?: Project;
385
397
  }
386
398
  interface DeleteProjectRequest {
387
399
  /**
388
- * Id of the Project to delete.
400
+ * ID of the project to delete.
389
401
  * @format GUID
390
402
  */
391
403
  projectId: string;
@@ -394,60 +406,60 @@ interface DeleteProjectResponse {
394
406
  }
395
407
  interface StartProjectRequest {
396
408
  /**
397
- * ID of the Project to start.
409
+ * ID of the project to start.
398
410
  * @format GUID
399
411
  */
400
412
  projectId?: string;
401
413
  }
402
414
  interface StartProjectResponse {
403
- /** The Project for which start was requested. */
415
+ /** Project whose environment is starting. */
404
416
  project?: Project;
405
417
  }
406
418
  interface ResumeProjectRequest {
407
419
  /**
408
- * ID of the Project to resume.
420
+ * ID of the project to resume.
409
421
  * @format GUID
410
422
  */
411
423
  projectId: string;
412
424
  }
413
425
  interface ResumeProjectResponse {
414
- /** The Project for which resume was requested. */
426
+ /** Resumed project. The project is returned unchanged; its environment starts in the background. */
415
427
  project?: Project;
416
428
  }
417
429
  interface RegenerateProjectNameRequest {
418
430
  /**
419
- * ID of the Project to generate a new name for.
431
+ * ID of the project to generate a name for.
420
432
  * @format GUID
421
433
  */
422
434
  projectId: string;
423
435
  /**
424
- * The user's free-text renaming instruction, passed to the name-generation prompt.
436
+ * User's instruction for the new name. For example, `Make it shorter and more playful`.
425
437
  * @maxLength 4000
426
438
  */
427
439
  prompt: string;
428
440
  }
429
441
  interface RegenerateProjectNameResponse {
430
442
  /**
431
- * The generated display name, at most 30 characters. Not persisted.
443
+ * Suggested project name. Not saved.
432
444
  * @maxLength 30
433
445
  */
434
446
  name?: string;
435
447
  }
436
448
  interface RegenerateProjectIconRequest {
437
449
  /**
438
- * ID of the Project to generate a new icon for.
450
+ * ID of the project to generate an icon for.
439
451
  * @format GUID
440
452
  */
441
453
  projectId: string;
442
454
  /**
443
- * The user's free-text icon instruction, passed to the icon-generation prompt.
455
+ * User's instruction for the new icon. For example, `Use a minimal coffee cup`.
444
456
  * @maxLength 4000
445
457
  */
446
458
  prompt: string;
447
459
  }
448
460
  interface RegenerateProjectIconResponse {
449
461
  /**
450
- * The generated icon URL. Not persisted.
462
+ * URL of the suggested icon. Not saved.
451
463
  * @format WEB_URL
452
464
  */
453
465
  iconUrl?: string;
@@ -472,9 +484,9 @@ interface CursorPaging {
472
484
  cursor?: string | null;
473
485
  }
474
486
  interface ListProjectsForCurrentUserResponse {
475
- /** Projects owned by the current user. */
487
+ /** Projects that the current user owns. */
476
488
  projects?: Project[];
477
- /** Paging metadata for cursor-based pagination. */
489
+ /** Paging metadata. */
478
490
  pagingMetadata?: CursorPagingMetadata;
479
491
  }
480
492
  interface CursorPagingMetadata {
@@ -504,101 +516,94 @@ interface Cursors {
504
516
  }
505
517
  interface SaveProjectDesignRequest {
506
518
  /**
507
- * Project whose design is being saved. The caller must own it.
519
+ * ID of the project whose design to save.
508
520
  * @format GUID
509
521
  */
510
522
  projectId: string;
511
523
  /**
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.
524
+ * ID of the release that the user is currently viewing.
525
+ *
526
+ * The new draft release branches from this release, even if a newer release exists.
514
527
  * @maxLength 100
515
528
  */
516
529
  baseReleaseId: string;
517
530
  /**
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.
531
+ * Complete design-token document, as a string that contains a single JSON object.
532
+ *
533
+ * Specify the whole document, not only the values that changed. Keep any token groups and light or
534
+ * dark mode values that you didn't change.
521
535
  * @maxLength 65536
522
536
  */
523
537
  tokensJson: string;
524
538
  /**
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.
539
+ * Short-lived control credential for the project's app releases.
528
540
  *
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.
541
+ * Used for this call only. It isn't stored or returned.
531
542
  * @maxLength 4096
532
543
  */
533
544
  himalayaControlToken: string;
534
545
  /**
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.
546
+ * Canonical slug of the project's app, exactly as returned in `canonicalApp` by
547
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization).
548
+ * This isn't the app's ID.
549
+ *
550
+ * Required when the project's `platform` is `HIMALAYA_MOBILE`. The value is verified on the server.
537
551
  * @maxLength 200
538
552
  */
539
553
  canonicalApp?: string;
540
554
  /**
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.
555
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the design is saved from.
544
556
  *
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.
557
+ * When specified, a `CHECKPOINT` message that marks the saved version is added to the conversation.
558
+ * The conversation must belong to the project.
548
559
  * @maxLength 100
549
560
  */
550
561
  conversationId?: string;
551
562
  }
552
563
  interface SaveProjectDesignResponse {
553
564
  /**
554
- * The saved draft release. Always a draft, so the app's live release is untouched.
565
+ * ID of the saved draft release.
555
566
  * @maxLength 100
556
567
  */
557
568
  himalayaReleaseId?: string;
558
569
  /**
559
- * Short-lived credential for previewing the saved draft release. Response-only: never persisted
560
- * or placed in a preview URL by this service.
570
+ * Short-lived token for previewing the saved draft release.
561
571
  * @maxLength 4096
562
572
  */
563
573
  previewToken?: string;
564
- /** When preview_token expires. */
574
+ /** Date and time the preview token expires. */
565
575
  previewTokenExpiresAt?: Date | null;
566
576
  }
567
577
  interface RestoreReleaseRequest {
568
578
  /**
569
- * Project whose head is being moved. The caller must own it.
579
+ * ID of the project to restore a release for.
570
580
  * @format GUID
571
581
  */
572
582
  projectId: string;
573
583
  /**
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.
584
+ * ID of the release to restore. For example, `rel-4f9c2a1b7d3e`.
576
585
  * @maxLength 200
577
586
  */
578
587
  releaseId: string;
579
588
  /**
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.
589
+ * Short-lived control credential for the project's app releases.
590
+ *
591
+ * When specified, the release is checked to belong to the project before it's restored. Used for
592
+ * this call only. It isn't stored or returned.
585
593
  * @maxLength 4096
586
594
  */
587
595
  himalayaControlToken?: string;
588
596
  /**
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.
597
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the release is restored from.
592
598
  *
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.
599
+ * When specified, a `CHECKPOINT` message that marks the restored version is added to the
600
+ * conversation. The conversation must belong to the project.
596
601
  * @maxLength 100
597
602
  */
598
603
  conversationId?: string;
599
604
  }
600
605
  interface RestoreReleaseResponse {
601
- /** The project after the restore, with head_release_id set to the restored release. */
606
+ /** Updated project. `headReleaseId` is set to the restored release. */
602
607
  project?: Project;
603
608
  }
604
609
  interface ListProjectsRequest {
@@ -606,50 +611,53 @@ interface ListProjectsRequest {
606
611
  paging?: CursorPaging;
607
612
  }
608
613
  interface ListProjectsResponse {
609
- /** Projects in the current site. */
614
+ /** Projects of the current site. */
610
615
  projects?: Project[];
611
- /** Paging metadata for cursor-based pagination. */
616
+ /** Paging metadata. */
612
617
  pagingMetadata?: CursorPagingMetadata;
613
618
  }
614
619
  interface GetHimalayaAuthorizationRequest {
615
620
  /**
616
- * Site-tenanted Containers project being authorized.
621
+ * ID of the project to check.
617
622
  * @format GUID
618
623
  */
619
624
  projectId: string;
620
625
  }
621
626
  interface GetHimalayaAuthorizationResponse {
622
- /** Version of the authorization capability contract. */
627
+ /** Version of the response format. Currently always `1`. */
623
628
  authorizationVersion?: number;
624
629
  /**
625
- * Trusted MetaSite selected from request identity context.
630
+ * ID of the Wix site that the check was made for.
626
631
  * @format GUID
627
632
  */
628
633
  metaSiteId?: string;
629
634
  /**
630
- * Site-tenanted Containers project authorized by the lookup.
635
+ * Project ID.
631
636
  * @format GUID
632
637
  */
633
638
  projectId?: string;
634
639
  /**
635
- * Verified canonical Himalaya app slug.
640
+ * Canonical slug of the project's app.
641
+ *
642
+ * Specify this value in `canonicalApp` when you call
643
+ * [Save Project Design](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/save-project-design).
636
644
  * @maxLength 200
637
645
  */
638
646
  canonicalApp?: string;
639
- /** Whether a fresh worker launch is currently authorized. */
647
+ /** Whether the current user can start new work by the coding agent on the project. */
640
648
  workerLaunch?: boolean;
641
- /** Whether a fresh design save is currently authorized. */
649
+ /** Whether the current user can save the project's design. */
642
650
  saveDesign?: boolean;
643
651
  }
644
652
  /**
645
- * Retrieves a Project by ID.
646
- * @param projectId - ID of the Project to retrieve.
653
+ * Retrieves a project.
654
+ * @param projectId - ID of the project to retrieve.
647
655
  * @public
648
656
  * @documentationMaturity preview
649
657
  * @requiredField projectId
650
658
  * @permissionId containers:projects:v1:project:get_project
651
659
  * @applicableIdentity APP
652
- * @returns The requested Project.
660
+ * @returns Retrieved project.
653
661
  * @fqn wix.containers.projects.v1.ContainersProjects.GetProject
654
662
  */
655
663
  declare function getProject(projectId: string): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
@@ -661,82 +669,94 @@ interface UpdateProject {
661
669
  */
662
670
  _id?: string | null;
663
671
  /**
664
- * Display name for the project.
672
+ * Project name, shown to the user.
665
673
  * @maxLength 200
666
674
  */
667
675
  name?: string;
668
- /** Current status of the project. */
676
+ /** Project status. */
669
677
  status?: ProjectStatusWithLiterals;
670
678
  /**
671
- * ID of the template used to create this project.
679
+ * ID of the template that the project was created from.
672
680
  * @format GUID
673
681
  * @immutable
674
682
  */
675
683
  templateId?: string | null;
676
684
  /**
677
- * ID of the git-code-store project (and backing dev-center app) for this project. Set on creation.
685
+ * ID of the project's source code project. Set automatically when the project is created.
678
686
  * @format GUID
679
687
  * @readonly
680
688
  */
681
689
  codeStoreProjectId?: string | null;
682
690
  /**
683
- * The user id of the owner of this project
691
+ * ID of the user who created the project.
684
692
  * @format GUID
685
693
  * @readonly
686
694
  */
687
695
  ownerUserId?: string | null;
688
696
  /**
689
- * Revision number, which increments by 1 each time the Project is updated.
697
+ * Revision number, which increments by 1 each time the project is updated.
698
+ * To prevent conflicting changes,
699
+ * the current revision must be passed when updating the project.
700
+ *
701
+ * Ignored when creating a project.
690
702
  * @readonly
691
703
  */
692
704
  revision?: string | null;
693
705
  /**
694
- * Date and time the Project was created.
706
+ * Date and time the project was created.
695
707
  * @readonly
696
708
  */
697
709
  _createdDate?: Date | null;
698
710
  /**
699
- * Date and time the Project was last updated.
711
+ * Date and time the project was last updated.
700
712
  * @readonly
701
713
  */
702
714
  _updatedDate?: Date | null;
703
715
  /**
704
- * Transient lock marking that a sandbox is currently being created for this project.
705
- * Used to serialize concurrent dev-machine creation; liveness of the sandbox itself is resolved via ListSandboxes.
716
+ * Whether a remote development environment is being created for the project.
706
717
  * @readonly
707
718
  */
708
719
  sandboxStatus?: SandboxStatusWithLiterals;
709
720
  /**
710
- * Meta site IDs (MSIDs) of the Wix sites this project is related to.
711
- * Optional — a project is not required to be tied to a site; may relate to many sites.
712
- * Preserve the deployed input contract; see containers-projects/SDK_COMPATIBILITY.md.
721
+ * IDs of the Wix sites that the project relates to.
722
+ *
723
+ * A project can relate to any number of sites, including none.
713
724
  * @format GUID
714
725
  */
715
726
  metaSiteIds?: string[];
716
727
  /**
717
- * Platform this project targets (iOS/Android). Supplied by the client at creation; immutable after.
728
+ * Platform that the project's app targets. Set when the project is created and can't be changed.
718
729
  * @immutable
719
730
  */
720
731
  platform?: PlatformWithLiterals;
721
732
  /**
722
- * Optional app icon URL supplied by the client from Wix Media Manager.
733
+ * URL of the app's icon.
723
734
  * @maxLength 2000
724
735
  */
725
736
  appIconUrl?: string | null;
726
737
  /**
727
- * The Himalaya release the editor is currently on — the "head" the client previews and the next
728
- * edit (design save or AI edit) branches from. Server-managed: set to the new draft after each
729
- * edit, and to the chosen release by RestoreRelease. Unset means "newest release by date" (the
730
- * pre-head default), so existing projects keep working until their first edit/restore sets it.
731
- * Not a GUID — a Himalaya release id (e.g. `rel-<hash>` / `<sha>-<hash>`).
738
+ * ID of the release that the project is currently on.
739
+ *
740
+ * Your app previews this release, and the next design save or edit by the coding agent branches
741
+ * from it. Set automatically after each design save or edit, and by
742
+ * [Restore Release](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release).
743
+ * When empty, the project is on its newest release.
732
744
  * @maxLength 200
733
745
  * @readonly
734
746
  */
735
747
  headReleaseId?: string | null;
736
748
  }
737
749
  /**
738
- * Requests Project resume by starting or reusing its configured remote machine asynchronously.
739
- * @param projectId - ID of the Project to resume.
750
+ * Resumes work on a project by starting its remote development environment, or by reusing an
751
+ * environment that's already running.
752
+ *
753
+ * Call this method when a user returns to a project with `BUILDING` status, before they send new
754
+ * requests to the coding agent. The environment starts in the background, and the method returns
755
+ * the project without waiting for it. The API doesn't report when the environment is ready. The
756
+ * coding agent picks up new work as soon as it is.
757
+ *
758
+ * The project's `status` must be `BUILDING`.
759
+ * @param projectId - ID of the project to resume.
740
760
  * @public
741
761
  * @documentationMaturity preview
742
762
  * @requiredField projectId
@@ -746,17 +766,26 @@ interface UpdateProject {
746
766
  */
747
767
  declare function resumeProject(projectId: string): Promise<NonNullablePaths<ResumeProjectResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
748
768
  /**
749
- * Persists a complete design-token document as a new Himalaya draft release, branched from the
750
- * release the client currently has displayed.
769
+ * Saves a project's design as a new draft release.
770
+ *
771
+ * Specify the complete design-token document in `tokensJson`, and the release that the user is
772
+ * currently viewing in `baseReleaseId`. The new draft release branches from `baseReleaseId`, even
773
+ * if a newer release exists. Saving a design doesn't change the project's live app.
774
+ *
775
+ * The response includes the ID of the new release and a short-lived token for previewing it. After
776
+ * the save, the project's `headReleaseId` is set to the new release.
777
+ *
778
+ * To record the saved version in a conversation, specify the conversation's ID in `conversationId`.
779
+ * A `CHECKPOINT` message is then added to the conversation. If the checkpoint can't be added, the
780
+ * design is still saved.
781
+ *
782
+ * For projects whose `platform` is `HIMALAYA_MOBILE`, call
783
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization)
784
+ * first, and specify the returned `canonicalApp`.
785
+ * @param projectId - ID of the project whose design to save.
786
+ * @param baseReleaseId - ID of the release that the user is currently viewing.
751
787
  *
752
- * Synchronous: the Himalaya write completes before this call returns. Never touches the project's
753
- * sandbox, runs a build, or activates the app — the saved release stays a draft, so what the live
754
- * app serves is unaffected. Persists no entity of its own. When `conversation_id` is supplied it
755
- * posts a CHECKPOINT message for the saved release into that conversation (best-effort — a chat
756
- * failure never fails the save); omit it to skip the checkpoint.
757
- * @param projectId - Project whose design is being saved. The caller must own it.
758
- * @param baseReleaseId - The Himalaya release ID currently displayed by the client. The saved draft branches from
759
- * exactly this release, even when a newer release exists for the app.
788
+ * The new draft release branches from this release, even if a newer release exists.
760
789
  * @public
761
790
  * @documentationMaturity preview
762
791
  * @requiredField baseReleaseId
@@ -770,53 +799,53 @@ declare function resumeProject(projectId: string): Promise<NonNullablePaths<Resu
770
799
  declare function saveProjectDesign(projectId: string, baseReleaseId: string, options?: NonNullablePaths<SaveProjectDesignOptions, `himalayaControlToken` | `tokensJson`, 0>): Promise<NonNullablePaths<SaveProjectDesignResponse, `himalayaReleaseId` | `previewToken`, 0>>;
771
800
  interface SaveProjectDesignOptions {
772
801
  /**
773
- * The complete edited design-token document, as a JSON object string — not a flattened set of
774
- * preview overrides. The caller is responsible for preserving unknown groups and light/dark
775
- * values it did not change.
802
+ * Complete design-token document, as a string that contains a single JSON object.
803
+ *
804
+ * Specify the whole document, not only the values that changed. Keep any token groups and light or
805
+ * dark mode values that you didn't change.
776
806
  * @maxLength 65536
777
807
  */
778
808
  tokensJson: string;
779
809
  /**
780
- * Short-lived, app-scoped Himalaya control credential the client obtained from Himalaya's owner
781
- * embed-token endpoint. Forwarded to Himalaya for this call only — never logged, persisted, or
782
- * echoed back in any response, error, or event.
810
+ * Short-lived control credential for the project's app releases.
783
811
  *
784
- * The app this call writes to is NOT taken from this request. It is composed from the owner
785
- * prefix this credential carries plus project_id; see HimalayaAppSlug.
812
+ * Used for this call only. It isn't stored or returned.
786
813
  * @maxLength 4096
787
814
  */
788
815
  himalayaControlToken: string;
789
816
  /**
790
- * Client assertion of the canonical app returned by authenticated Himalaya lookup. Catalyst
791
- * resolves and validates the same value; it is never used as an unchecked write target.
817
+ * Canonical slug of the project's app, exactly as returned in `canonicalApp` by
818
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization).
819
+ * This isn't the app's ID.
820
+ *
821
+ * Required when the project's `platform` is `HIMALAYA_MOBILE`. The value is verified on the server.
792
822
  * @maxLength 200
793
823
  */
794
824
  canonicalApp?: string;
795
825
  /**
796
- * Conversation this design is saved from. When set, a CHECKPOINT message marking the saved
797
- * version is posted into it (best-effort). Optional — an older client that omits it still saves
798
- * the design; it just produces no checkpoint. Verified to belong to this project server-side.
826
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the design is saved from.
799
827
  *
800
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
801
- * fail the save. A malformed/unexpected id is handled downstream (the ownership lookup rejects it
802
- * and the checkpoint is skipped) rather than hard-failing SaveProjectDesign at the request boundary.
828
+ * When specified, a `CHECKPOINT` message that marks the saved version is added to the conversation.
829
+ * The conversation must belong to the project.
803
830
  * @maxLength 100
804
831
  */
805
832
  conversationId?: string;
806
833
  }
807
834
  /**
808
- * Restores an earlier version by pointing the project's editable head at `release_id`: the client
809
- * then previews that release and the next edit (design save or AI edit) branches from it. Pure
810
- * project state — sets `head_release_id` and nothing in Himalaya: it does NOT activate the release,
811
- * so the live app end-users run is untouched (a later publish/build is what carries head live).
835
+ * Restores an earlier version of a project.
836
+ *
837
+ * Sets the project's `headReleaseId` to the release specified in `releaseId`. Your app then
838
+ * previews that release, and the next design save or edit by the coding agent branches from it.
839
+ * Restoring a release doesn't change the project's live app.
840
+ *
841
+ * Only the project's owner can restore a release.
812
842
  *
813
- * `release_id` is a Himalaya release id the caller already holds from the project's own release
814
- * ledger, scoped to this project's app; the server stores it as head without re-reading Himalaya.
815
- * When `conversation_id` is supplied, a CHECKPOINT message for the restored release is posted into
816
- * it (best-effort — a chat failure never fails the restore); omit it to skip the checkpoint.
817
- * @param projectId - Project whose head is being moved. The caller must own it.
818
- * @param releaseId - The Himalaya release to make the project's editable head. Not a GUID — a Himalaya release id
819
- * (e.g. `rel-<hash>` / `<sha>-<hash>`), taken from the project's own release ledger.
843
+ * To confirm that the release belongs to the project before it's restored, specify
844
+ * `himalayaControlToken`. To record the restored version in a conversation, specify the
845
+ * conversation's ID in `conversationId`. A `CHECKPOINT` message is then added to the conversation.
846
+ * If the checkpoint can't be added, the release is still restored.
847
+ * @param projectId - ID of the project to restore a release for.
848
+ * @param releaseId - ID of the release to restore. For example, `rel-4f9c2a1b7d3e`.
820
849
  * @public
821
850
  * @documentationMaturity preview
822
851
  * @requiredField projectId
@@ -828,22 +857,18 @@ interface SaveProjectDesignOptions {
828
857
  declare function restoreRelease(projectId: string, releaseId: string, options?: RestoreReleaseOptions): Promise<NonNullablePaths<RestoreReleaseResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
829
858
  interface RestoreReleaseOptions {
830
859
  /**
831
- * Short-lived, app-scoped Himalaya control credential (the same the client obtains from Himalaya's
832
- * owner embed-token endpoint and sends on SaveProjectDesign). When present, the server verifies
833
- * release_id belongs to this project's Himalaya app before moving head. Optional for back-compat:
834
- * an older client that omits it skips that check (the release still comes from the project's own
835
- * ledger). Forwarded to Himalaya for the ledger read only — never logged, persisted, or echoed.
860
+ * Short-lived control credential for the project's app releases.
861
+ *
862
+ * When specified, the release is checked to belong to the project before it's restored. Used for
863
+ * this call only. It isn't stored or returned.
836
864
  * @maxLength 4096
837
865
  */
838
866
  himalayaControlToken?: string;
839
867
  /**
840
- * Conversation this restore is made from. When set, a CHECKPOINT message marking the restored
841
- * version is posted into it (best-effort). Optional — a client that omits it still restores; it
842
- * just produces no checkpoint. Verified to belong to this project server-side.
868
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the release is restored from.
843
869
  *
844
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
845
- * fail the restore. A malformed id is handled downstream (the ownership lookup rejects it and the
846
- * checkpoint is skipped) rather than hard-failing RestoreRelease at the request boundary.
870
+ * When specified, a `CHECKPOINT` message that marks the restored version is added to the
871
+ * conversation. The conversation must belong to the project.
847
872
  * @maxLength 100
848
873
  */
849
874
  conversationId?: string;
@@ -853,9 +878,15 @@ interface ListProjectsOptions {
853
878
  paging?: CursorPaging;
854
879
  }
855
880
  /**
856
- * Repeats authenticated Himalaya authorization for the current collaborator. This response is
857
- * a capability check only; every worker/design mutation performs a fresh check.
858
- * @param projectId - Site-tenanted Containers project being authorized.
881
+ * Checks whether the current user can work on a project's app.
882
+ *
883
+ * Supported for projects whose `platform` is `HIMALAYA_MOBILE`. The response returns the canonical
884
+ * slug of the project's app in `canonicalApp`. Specify this value when you call
885
+ * [Save Project Design](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/save-project-design).
886
+ *
887
+ * The response is a check only and doesn't grant access. Each later change to the project is
888
+ * authorized again.
889
+ * @param projectId - ID of the project to check.
859
890
  * @public
860
891
  * @documentationMaturity preview
861
892
  * @requiredField projectId