@wix/auto_sdk_containers_projects 1.0.4 → 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,49 +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
- * @returns The requested Project.
659
+ * @applicableIdentity APP
660
+ * @returns Retrieved project.
652
661
  * @fqn wix.containers.projects.v1.ContainersProjects.GetProject
653
662
  */
654
663
  declare function getProject(projectId: string): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
@@ -660,101 +669,123 @@ interface UpdateProject {
660
669
  */
661
670
  _id?: string | null;
662
671
  /**
663
- * Display name for the project.
672
+ * Project name, shown to the user.
664
673
  * @maxLength 200
665
674
  */
666
675
  name?: string;
667
- /** Current status of the project. */
676
+ /** Project status. */
668
677
  status?: ProjectStatusWithLiterals;
669
678
  /**
670
- * ID of the template used to create this project.
679
+ * ID of the template that the project was created from.
671
680
  * @format GUID
672
681
  * @immutable
673
682
  */
674
683
  templateId?: string | null;
675
684
  /**
676
- * 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.
677
686
  * @format GUID
678
687
  * @readonly
679
688
  */
680
689
  codeStoreProjectId?: string | null;
681
690
  /**
682
- * The user id of the owner of this project
691
+ * ID of the user who created the project.
683
692
  * @format GUID
684
693
  * @readonly
685
694
  */
686
695
  ownerUserId?: string | null;
687
696
  /**
688
- * 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.
689
702
  * @readonly
690
703
  */
691
704
  revision?: string | null;
692
705
  /**
693
- * Date and time the Project was created.
706
+ * Date and time the project was created.
694
707
  * @readonly
695
708
  */
696
709
  _createdDate?: Date | null;
697
710
  /**
698
- * Date and time the Project was last updated.
711
+ * Date and time the project was last updated.
699
712
  * @readonly
700
713
  */
701
714
  _updatedDate?: Date | null;
702
715
  /**
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.
716
+ * Whether a remote development environment is being created for the project.
705
717
  * @readonly
706
718
  */
707
719
  sandboxStatus?: SandboxStatusWithLiterals;
708
720
  /**
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.
721
+ * IDs of the Wix sites that the project relates to.
722
+ *
723
+ * A project can relate to any number of sites, including none.
712
724
  * @format GUID
713
725
  */
714
726
  metaSiteIds?: string[];
715
727
  /**
716
- * 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.
717
729
  * @immutable
718
730
  */
719
731
  platform?: PlatformWithLiterals;
720
732
  /**
721
- * Optional app icon URL supplied by the client from Wix Media Manager.
733
+ * URL of the app's icon.
722
734
  * @maxLength 2000
723
735
  */
724
736
  appIconUrl?: string | null;
725
737
  /**
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>`).
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.
731
744
  * @maxLength 200
732
745
  * @readonly
733
746
  */
734
747
  headReleaseId?: string | null;
735
748
  }
736
749
  /**
737
- * Requests Project resume by starting or reusing its configured remote machine asynchronously.
738
- * @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.
739
760
  * @public
740
761
  * @documentationMaturity preview
741
762
  * @requiredField projectId
742
763
  * @permissionId containers:projects:v1:project:resume_project
764
+ * @applicableIdentity APP
743
765
  * @fqn wix.containers.projects.v1.ContainersProjects.ResumeProject
744
766
  */
745
767
  declare function resumeProject(projectId: string): Promise<NonNullablePaths<ResumeProjectResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
746
768
  /**
747
- * Persists a complete design-token document as a new Himalaya draft release, branched from the
748
- * 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.
749
787
  *
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.
788
+ * The new draft release branches from this release, even if a newer release exists.
758
789
  * @public
759
790
  * @documentationMaturity preview
760
791
  * @requiredField baseReleaseId
@@ -762,84 +793,82 @@ declare function resumeProject(projectId: string): Promise<NonNullablePaths<Resu
762
793
  * @requiredField options.tokensJson
763
794
  * @requiredField projectId
764
795
  * @permissionId containers:projects:v1:project:save_project_design
796
+ * @applicableIdentity APP
765
797
  * @fqn wix.containers.projects.v1.ContainersProjects.SaveProjectDesign
766
798
  */
767
799
  declare function saveProjectDesign(projectId: string, baseReleaseId: string, options?: NonNullablePaths<SaveProjectDesignOptions, `himalayaControlToken` | `tokensJson`, 0>): Promise<NonNullablePaths<SaveProjectDesignResponse, `himalayaReleaseId` | `previewToken`, 0>>;
768
800
  interface SaveProjectDesignOptions {
769
801
  /**
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.
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.
773
806
  * @maxLength 65536
774
807
  */
775
808
  tokensJson: string;
776
809
  /**
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.
810
+ * Short-lived control credential for the project's app releases.
780
811
  *
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.
812
+ * Used for this call only. It isn't stored or returned.
783
813
  * @maxLength 4096
784
814
  */
785
815
  himalayaControlToken: string;
786
816
  /**
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.
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.
789
822
  * @maxLength 200
790
823
  */
791
824
  canonicalApp?: string;
792
825
  /**
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.
826
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the design is saved from.
796
827
  *
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.
828
+ * When specified, a `CHECKPOINT` message that marks the saved version is added to the conversation.
829
+ * The conversation must belong to the project.
800
830
  * @maxLength 100
801
831
  */
802
832
  conversationId?: string;
803
833
  }
804
834
  /**
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).
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.
809
842
  *
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.
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`.
817
849
  * @public
818
850
  * @documentationMaturity preview
819
851
  * @requiredField projectId
820
852
  * @requiredField releaseId
821
853
  * @permissionId containers:projects:v1:project:restore_release
854
+ * @applicableIdentity APP
822
855
  * @fqn wix.containers.projects.v1.ContainersProjects.RestoreRelease
823
856
  */
824
857
  declare function restoreRelease(projectId: string, releaseId: string, options?: RestoreReleaseOptions): Promise<NonNullablePaths<RestoreReleaseResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
825
858
  interface RestoreReleaseOptions {
826
859
  /**
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.
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.
832
864
  * @maxLength 4096
833
865
  */
834
866
  himalayaControlToken?: string;
835
867
  /**
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.
868
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the release is restored from.
839
869
  *
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.
870
+ * When specified, a `CHECKPOINT` message that marks the restored version is added to the
871
+ * conversation. The conversation must belong to the project.
843
872
  * @maxLength 100
844
873
  */
845
874
  conversationId?: string;
@@ -849,13 +878,20 @@ interface ListProjectsOptions {
849
878
  paging?: CursorPaging;
850
879
  }
851
880
  /**
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.
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.
855
890
  * @public
856
891
  * @documentationMaturity preview
857
892
  * @requiredField projectId
858
893
  * @permissionId containers:projects:v1:project:get_himalaya_authorization
894
+ * @applicableIdentity APP
859
895
  * @fqn wix.containers.projects.v1.ContainersProjects.GetHimalayaAuthorization
860
896
  */
861
897
  declare function getHimalayaAuthorization(projectId: string): Promise<NonNullablePaths<GetHimalayaAuthorizationResponse, `authorizationVersion` | `metaSiteId` | `projectId` | `canonicalApp` | `workerLaunch` | `saveDesign`, 0>>;