@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,40 +369,40 @@ 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
- * Set of fields to update.
394
+ * Set of fields to update. Fields not in the mask are ignored.
383
395
  * @internal
384
396
  */
385
397
  fieldMask?: string[];
386
398
  }
387
399
  interface UpdateProjectResponse {
388
- /** Updated Project. */
400
+ /** Updated project. */
389
401
  project?: Project;
390
402
  }
391
403
  interface DeleteProjectRequest {
392
404
  /**
393
- * Id of the Project to delete.
405
+ * ID of the project to delete.
394
406
  * @format GUID
395
407
  */
396
408
  projectId: string;
@@ -399,60 +411,60 @@ interface DeleteProjectResponse {
399
411
  }
400
412
  interface StartProjectRequest {
401
413
  /**
402
- * ID of the Project to start.
414
+ * ID of the project to start.
403
415
  * @format GUID
404
416
  */
405
417
  projectId?: string;
406
418
  }
407
419
  interface StartProjectResponse {
408
- /** The Project for which start was requested. */
420
+ /** Project whose environment is starting. */
409
421
  project?: Project;
410
422
  }
411
423
  interface ResumeProjectRequest {
412
424
  /**
413
- * ID of the Project to resume.
425
+ * ID of the project to resume.
414
426
  * @format GUID
415
427
  */
416
428
  projectId: string;
417
429
  }
418
430
  interface ResumeProjectResponse {
419
- /** The Project for which resume was requested. */
431
+ /** Resumed project. The project is returned unchanged; its environment starts in the background. */
420
432
  project?: Project;
421
433
  }
422
434
  interface RegenerateProjectNameRequest {
423
435
  /**
424
- * ID of the Project to generate a new name for.
436
+ * ID of the project to generate a name for.
425
437
  * @format GUID
426
438
  */
427
439
  projectId: string;
428
440
  /**
429
- * The user's free-text renaming instruction, passed to the name-generation prompt.
441
+ * User's instruction for the new name. For example, `Make it shorter and more playful`.
430
442
  * @maxLength 4000
431
443
  */
432
444
  prompt: string;
433
445
  }
434
446
  interface RegenerateProjectNameResponse {
435
447
  /**
436
- * The generated display name, at most 30 characters. Not persisted.
448
+ * Suggested project name. Not saved.
437
449
  * @maxLength 30
438
450
  */
439
451
  name?: string;
440
452
  }
441
453
  interface RegenerateProjectIconRequest {
442
454
  /**
443
- * ID of the Project to generate a new icon for.
455
+ * ID of the project to generate an icon for.
444
456
  * @format GUID
445
457
  */
446
458
  projectId: string;
447
459
  /**
448
- * The user's free-text icon instruction, passed to the icon-generation prompt.
460
+ * User's instruction for the new icon. For example, `Use a minimal coffee cup`.
449
461
  * @maxLength 4000
450
462
  */
451
463
  prompt: string;
452
464
  }
453
465
  interface RegenerateProjectIconResponse {
454
466
  /**
455
- * The generated icon URL. Not persisted.
467
+ * URL of the suggested icon. Not saved.
456
468
  * @format WEB_URL
457
469
  */
458
470
  iconUrl?: string;
@@ -477,9 +489,9 @@ interface CursorPaging {
477
489
  cursor?: string | null;
478
490
  }
479
491
  interface ListProjectsForCurrentUserResponse {
480
- /** Projects owned by the current user. */
492
+ /** Projects that the current user owns. */
481
493
  projects?: Project[];
482
- /** Paging metadata for cursor-based pagination. */
494
+ /** Paging metadata. */
483
495
  pagingMetadata?: CursorPagingMetadata;
484
496
  }
485
497
  interface CursorPagingMetadata {
@@ -509,101 +521,94 @@ interface Cursors {
509
521
  }
510
522
  interface SaveProjectDesignRequest {
511
523
  /**
512
- * Project whose design is being saved. The caller must own it.
524
+ * ID of the project whose design to save.
513
525
  * @format GUID
514
526
  */
515
527
  projectId: string;
516
528
  /**
517
- * The Himalaya release ID currently displayed by the client. The saved draft branches from
518
- * exactly this release, even when a newer release exists for the app.
529
+ * ID of the release that the user is currently viewing.
530
+ *
531
+ * The new draft release branches from this release, even if a newer release exists.
519
532
  * @maxLength 100
520
533
  */
521
534
  baseReleaseId: string;
522
535
  /**
523
- * The complete edited design-token document, as a JSON object string — not a flattened set of
524
- * preview overrides. The caller is responsible for preserving unknown groups and light/dark
525
- * values it did not change.
536
+ * Complete design-token document, as a string that contains a single JSON object.
537
+ *
538
+ * Specify the whole document, not only the values that changed. Keep any token groups and light or
539
+ * dark mode values that you didn't change.
526
540
  * @maxLength 65536
527
541
  */
528
542
  tokensJson: string;
529
543
  /**
530
- * Short-lived, app-scoped Himalaya control credential the client obtained from Himalaya's owner
531
- * embed-token endpoint. Forwarded to Himalaya for this call only — never logged, persisted, or
532
- * echoed back in any response, error, or event.
544
+ * Short-lived control credential for the project's app releases.
533
545
  *
534
- * The app this call writes to is NOT taken from this request. It is composed from the owner
535
- * prefix this credential carries plus project_id; see HimalayaAppSlug.
546
+ * Used for this call only. It isn't stored or returned.
536
547
  * @maxLength 4096
537
548
  */
538
549
  himalayaControlToken: string;
539
550
  /**
540
- * Client assertion of the canonical app returned by authenticated Himalaya lookup. Catalyst
541
- * resolves and validates the same value; it is never used as an unchecked write target.
551
+ * Canonical slug of the project's app, exactly as returned in `canonicalApp` by
552
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization).
553
+ * This isn't the app's ID.
554
+ *
555
+ * Required when the project's `platform` is `HIMALAYA_MOBILE`. The value is verified on the server.
542
556
  * @maxLength 200
543
557
  */
544
558
  canonicalApp?: string;
545
559
  /**
546
- * Conversation this design is saved from. When set, a CHECKPOINT message marking the saved
547
- * version is posted into it (best-effort). Optional — an older client that omits it still saves
548
- * the design; it just produces no checkpoint. Verified to belong to this project server-side.
560
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the design is saved from.
549
561
  *
550
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
551
- * fail the save. A malformed/unexpected id is handled downstream (the ownership lookup rejects it
552
- * and the checkpoint is skipped) rather than hard-failing SaveProjectDesign at the request boundary.
562
+ * When specified, a `CHECKPOINT` message that marks the saved version is added to the conversation.
563
+ * The conversation must belong to the project.
553
564
  * @maxLength 100
554
565
  */
555
566
  conversationId?: string;
556
567
  }
557
568
  interface SaveProjectDesignResponse {
558
569
  /**
559
- * The saved draft release. Always a draft, so the app's live release is untouched.
570
+ * ID of the saved draft release.
560
571
  * @maxLength 100
561
572
  */
562
573
  himalayaReleaseId?: string;
563
574
  /**
564
- * Short-lived credential for previewing the saved draft release. Response-only: never persisted
565
- * or placed in a preview URL by this service.
575
+ * Short-lived token for previewing the saved draft release.
566
576
  * @maxLength 4096
567
577
  */
568
578
  previewToken?: string;
569
- /** When preview_token expires. */
579
+ /** Date and time the preview token expires. */
570
580
  previewTokenExpiresAt?: Date | null;
571
581
  }
572
582
  interface RestoreReleaseRequest {
573
583
  /**
574
- * Project whose head is being moved. The caller must own it.
584
+ * ID of the project to restore a release for.
575
585
  * @format GUID
576
586
  */
577
587
  projectId: string;
578
588
  /**
579
- * The Himalaya release to make the project's editable head. Not a GUID — a Himalaya release id
580
- * (e.g. `rel-<hash>` / `<sha>-<hash>`), taken from the project's own release ledger.
589
+ * ID of the release to restore. For example, `rel-4f9c2a1b7d3e`.
581
590
  * @maxLength 200
582
591
  */
583
592
  releaseId: string;
584
593
  /**
585
- * Short-lived, app-scoped Himalaya control credential (the same the client obtains from Himalaya's
586
- * owner embed-token endpoint and sends on SaveProjectDesign). When present, the server verifies
587
- * release_id belongs to this project's Himalaya app before moving head. Optional for back-compat:
588
- * an older client that omits it skips that check (the release still comes from the project's own
589
- * ledger). Forwarded to Himalaya for the ledger read only — never logged, persisted, or echoed.
594
+ * Short-lived control credential for the project's app releases.
595
+ *
596
+ * When specified, the release is checked to belong to the project before it's restored. Used for
597
+ * this call only. It isn't stored or returned.
590
598
  * @maxLength 4096
591
599
  */
592
600
  himalayaControlToken?: string;
593
601
  /**
594
- * Conversation this restore is made from. When set, a CHECKPOINT message marking the restored
595
- * version is posted into it (best-effort). Optional — a client that omits it still restores; it
596
- * just produces no checkpoint. Verified to belong to this project server-side.
602
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the release is restored from.
597
603
  *
598
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
599
- * fail the restore. A malformed id is handled downstream (the ownership lookup rejects it and the
600
- * checkpoint is skipped) rather than hard-failing RestoreRelease at the request boundary.
604
+ * When specified, a `CHECKPOINT` message that marks the restored version is added to the
605
+ * conversation. The conversation must belong to the project.
601
606
  * @maxLength 100
602
607
  */
603
608
  conversationId?: string;
604
609
  }
605
610
  interface RestoreReleaseResponse {
606
- /** The project after the restore, with head_release_id set to the restored release. */
611
+ /** Updated project. `headReleaseId` is set to the restored release. */
607
612
  project?: Project;
608
613
  }
609
614
  interface ListProjectsRequest {
@@ -611,71 +616,77 @@ interface ListProjectsRequest {
611
616
  paging?: CursorPaging;
612
617
  }
613
618
  interface ListProjectsResponse {
614
- /** Projects in the current site. */
619
+ /** Projects of the current site. */
615
620
  projects?: Project[];
616
- /** Paging metadata for cursor-based pagination. */
621
+ /** Paging metadata. */
617
622
  pagingMetadata?: CursorPagingMetadata;
618
623
  }
619
624
  interface GetHimalayaAuthorizationRequest {
620
625
  /**
621
- * Site-tenanted Containers project being authorized.
626
+ * ID of the project to check.
622
627
  * @format GUID
623
628
  */
624
629
  projectId: string;
625
630
  }
626
631
  interface GetHimalayaAuthorizationResponse {
627
- /** Version of the authorization capability contract. */
632
+ /** Version of the response format. Currently always `1`. */
628
633
  authorizationVersion?: number;
629
634
  /**
630
- * Trusted MetaSite selected from request identity context.
635
+ * ID of the Wix site that the check was made for.
631
636
  * @format GUID
632
637
  */
633
638
  metaSiteId?: string;
634
639
  /**
635
- * Site-tenanted Containers project authorized by the lookup.
640
+ * Project ID.
636
641
  * @format GUID
637
642
  */
638
643
  projectId?: string;
639
644
  /**
640
- * Verified canonical Himalaya app slug.
645
+ * Canonical slug of the project's app.
646
+ *
647
+ * Specify this value in `canonicalApp` when you call
648
+ * [Save Project Design](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/save-project-design).
641
649
  * @maxLength 200
642
650
  */
643
651
  canonicalApp?: string;
644
- /** Whether a fresh worker launch is currently authorized. */
652
+ /** Whether the current user can start new work by the coding agent on the project. */
645
653
  workerLaunch?: boolean;
646
- /** Whether a fresh design save is currently authorized. */
654
+ /** Whether the current user can save the project's design. */
647
655
  saveDesign?: boolean;
648
656
  }
649
657
  /**
650
- * Creates a new Project from a template.
651
- * Looks up the template to find its backing source code, creates a dev-center app,
652
- * registers an AppProject, clones the template's git repository into a new
653
- * code-store project, and persists the Project.
654
- * @param project - Project to be created.
658
+ * Creates a project from a template.
659
+ *
660
+ * The project is created with `PLANNING` status.
661
+ * @param project - Project to create.
655
662
  * @internal
656
663
  * @documentationMaturity preview
657
664
  * @requiredField project
658
665
  * @requiredField project.platform
659
666
  * @requiredField project.templateId
660
667
  * @permissionId containers:projects:v1:project:create_project
661
- * @returns The created Project.
668
+ * @returns Created project.
662
669
  * @fqn wix.containers.projects.v1.ContainersProjects.CreateProject
663
670
  */
664
671
  declare function createProject(project: NonNullablePaths<Project, `platform` | `templateId`, 0>): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
665
672
  /**
666
- * Retrieves a Project by ID.
667
- * @param projectId - ID of the Project to retrieve.
673
+ * Retrieves a project.
674
+ * @param projectId - ID of the project to retrieve.
668
675
  * @public
669
676
  * @documentationMaturity preview
670
677
  * @requiredField projectId
671
678
  * @permissionId containers:projects:v1:project:get_project
672
679
  * @applicableIdentity APP
673
- * @returns The requested Project.
680
+ * @returns Retrieved project.
674
681
  * @fqn wix.containers.projects.v1.ContainersProjects.GetProject
675
682
  */
676
683
  declare function getProject(projectId: string): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
677
684
  /**
678
- * Updates an existing Project.
685
+ * Updates a project.
686
+ *
687
+ * Each time the project is updated, `revision` increments by 1. The current `revision` must be
688
+ * passed when updating the project. This ensures you're working with the latest project and
689
+ * prevents unintended overwrites.
679
690
  * @param _id - Project ID.
680
691
  * @internal
681
692
  * @documentationMaturity preview
@@ -683,7 +694,7 @@ declare function getProject(projectId: string): Promise<NonNullablePaths<Project
683
694
  * @requiredField project
684
695
  * @requiredField project.revision
685
696
  * @permissionId containers:projects:v1:project:update_project
686
- * @returns Updated Project.
697
+ * @returns Updated project.
687
698
  * @fqn wix.containers.projects.v1.ContainersProjects.UpdateProject
688
699
  */
689
700
  declare function updateProject(_id: string, project: NonNullablePaths<UpdateProject, `revision`, 0>): Promise<NonNullablePaths<Project, `name` | `status` | `sandboxStatus` | `metaSiteIds` | `platform`, 0>>;
@@ -695,82 +706,86 @@ interface UpdateProject {
695
706
  */
696
707
  _id?: string | null;
697
708
  /**
698
- * Display name for the project.
709
+ * Project name, shown to the user.
699
710
  * @maxLength 200
700
711
  */
701
712
  name?: string;
702
- /** Current status of the project. */
713
+ /** Project status. */
703
714
  status?: ProjectStatusWithLiterals;
704
715
  /**
705
- * ID of the template used to create this project.
716
+ * ID of the template that the project was created from.
706
717
  * @format GUID
707
718
  * @immutable
708
719
  */
709
720
  templateId?: string | null;
710
721
  /**
711
- * ID of the git-code-store project (and backing dev-center app) for this project. Set on creation.
722
+ * ID of the project's source code project. Set automatically when the project is created.
712
723
  * @format GUID
713
724
  * @readonly
714
725
  */
715
726
  codeStoreProjectId?: string | null;
716
727
  /**
717
- * The user id of the owner of this project
728
+ * ID of the user who created the project.
718
729
  * @format GUID
719
730
  * @readonly
720
731
  */
721
732
  ownerUserId?: string | null;
722
733
  /**
723
- * Revision number, which increments by 1 each time the Project is updated.
734
+ * Revision number, which increments by 1 each time the project is updated.
735
+ * To prevent conflicting changes,
736
+ * the current revision must be passed when updating the project.
737
+ *
738
+ * Ignored when creating a project.
724
739
  * @readonly
725
740
  */
726
741
  revision?: string | null;
727
742
  /**
728
- * Date and time the Project was created.
743
+ * Date and time the project was created.
729
744
  * @readonly
730
745
  */
731
746
  _createdDate?: Date | null;
732
747
  /**
733
- * Date and time the Project was last updated.
748
+ * Date and time the project was last updated.
734
749
  * @readonly
735
750
  */
736
751
  _updatedDate?: Date | null;
737
752
  /**
738
- * Transient lock marking that a sandbox is currently being created for this project.
739
- * Used to serialize concurrent dev-machine creation; liveness of the sandbox itself is resolved via ListSandboxes.
753
+ * Whether a remote development environment is being created for the project.
740
754
  * @readonly
741
755
  */
742
756
  sandboxStatus?: SandboxStatusWithLiterals;
743
757
  /**
744
- * Meta site IDs (MSIDs) of the Wix sites this project is related to.
745
- * Optional — a project is not required to be tied to a site; may relate to many sites.
746
- * Preserve the deployed input contract; see containers-projects/SDK_COMPATIBILITY.md.
758
+ * IDs of the Wix sites that the project relates to.
759
+ *
760
+ * A project can relate to any number of sites, including none.
747
761
  * @format GUID
748
762
  */
749
763
  metaSiteIds?: string[];
750
764
  /**
751
- * Platform this project targets (iOS/Android). Supplied by the client at creation; immutable after.
765
+ * Platform that the project's app targets. Set when the project is created and can't be changed.
752
766
  * @immutable
753
767
  */
754
768
  platform?: PlatformWithLiterals;
755
769
  /**
756
- * Optional app icon URL supplied by the client from Wix Media Manager.
770
+ * URL of the app's icon.
757
771
  * @maxLength 2000
758
772
  */
759
773
  appIconUrl?: string | null;
760
774
  /**
761
- * The Himalaya release the editor is currently on — the "head" the client previews and the next
762
- * edit (design save or AI edit) branches from. Server-managed: set to the new draft after each
763
- * edit, and to the chosen release by RestoreRelease. Unset means "newest release by date" (the
764
- * pre-head default), so existing projects keep working until their first edit/restore sets it.
765
- * Not a GUID — a Himalaya release id (e.g. `rel-<hash>` / `<sha>-<hash>`).
775
+ * ID of the release that the project is currently on.
776
+ *
777
+ * Your app previews this release, and the next design save or edit by the coding agent branches
778
+ * from it. Set automatically after each design save or edit, and by
779
+ * [Restore Release](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release).
780
+ * When empty, the project is on its newest release.
766
781
  * @maxLength 200
767
782
  * @readonly
768
783
  */
769
784
  headReleaseId?: string | null;
770
785
  }
771
786
  /**
772
- * Deletes a Project.
773
- * @param projectId - Id of the Project to delete.
787
+ * Deletes a project.
788
+ * @param projectId - ID of the project to delete.
774
789
  * @internal
775
790
  * @documentationMaturity preview
776
791
  * @requiredField projectId
@@ -779,8 +794,16 @@ interface UpdateProject {
779
794
  */
780
795
  declare function deleteProject(projectId: string): Promise<void>;
781
796
  /**
782
- * Requests Project resume by starting or reusing its configured remote machine asynchronously.
783
- * @param projectId - ID of the Project to resume.
797
+ * Resumes work on a project by starting its remote development environment, or by reusing an
798
+ * environment that's already running.
799
+ *
800
+ * Call this method when a user returns to a project with `BUILDING` status, before they send new
801
+ * requests to the coding agent. The environment starts in the background, and the method returns
802
+ * the project without waiting for it. The API doesn't report when the environment is ready. The
803
+ * coding agent picks up new work as soon as it is.
804
+ *
805
+ * The project's `status` must be `BUILDING`.
806
+ * @param projectId - ID of the project to resume.
784
807
  * @public
785
808
  * @documentationMaturity preview
786
809
  * @requiredField projectId
@@ -790,12 +813,11 @@ declare function deleteProject(projectId: string): Promise<void>;
790
813
  */
791
814
  declare function resumeProject(projectId: string): Promise<NonNullablePaths<ResumeProjectResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
792
815
  /**
793
- * Generates a candidate display name for a Project from a user instruction, via the published
794
- * "Regenerate app name" Prompt Hub prompt. The current name and the project's description are
795
- * resolved server-side; the caller supplies only the instruction. Does not persist the result —
796
- * the caller saves an accepted name with UpdateProject.
797
- * @param projectId - ID of the Project to generate a new name for.
798
- * @param prompt - The user's free-text renaming instruction, passed to the name-generation prompt.
816
+ * Generates a suggested name for a project, based on the user's instruction.
817
+ *
818
+ * The suggested name isn't saved. To save it, call Update Project.
819
+ * @param projectId - ID of the project to generate a name for.
820
+ * @param prompt - User's instruction for the new name. For example, `Make it shorter and more playful`.
799
821
  * @internal
800
822
  * @documentationMaturity preview
801
823
  * @requiredField projectId
@@ -805,11 +827,12 @@ declare function resumeProject(projectId: string): Promise<NonNullablePaths<Resu
805
827
  */
806
828
  declare function regenerateProjectName(projectId: string, prompt: string): Promise<NonNullablePaths<RegenerateProjectNameResponse, `name`, 0>>;
807
829
  /**
808
- * Generates a candidate icon for a Project from a user instruction. The current project name,
809
- * icon, app description, and brand colors are resolved server-side. Does not persist the result —
810
- * the caller saves an accepted icon with UpdateProject.
811
- * @param projectId - ID of the Project to generate a new icon for.
812
- * @param prompt - The user's free-text icon instruction, passed to the icon-generation prompt.
830
+ * Generates a suggested icon for a project, based on the user's instruction.
831
+ *
832
+ * The icon is based on the project's current name, icon, description, and brand colors. The
833
+ * suggested icon isn't saved. To save it, call Update Project.
834
+ * @param projectId - ID of the project to generate an icon for.
835
+ * @param prompt - User's instruction for the new icon. For example, `Use a minimal coffee cup`.
813
836
  * @internal
814
837
  * @documentationMaturity preview
815
838
  * @requiredField projectId
@@ -819,17 +842,26 @@ declare function regenerateProjectName(projectId: string, prompt: string): Promi
819
842
  */
820
843
  declare function regenerateProjectIcon(projectId: string, prompt: string): Promise<NonNullablePaths<RegenerateProjectIconResponse, `iconUrl`, 0>>;
821
844
  /**
822
- * Persists a complete design-token document as a new Himalaya draft release, branched from the
823
- * release the client currently has displayed.
845
+ * Saves a project's design as a new draft release.
846
+ *
847
+ * Specify the complete design-token document in `tokensJson`, and the release that the user is
848
+ * currently viewing in `baseReleaseId`. The new draft release branches from `baseReleaseId`, even
849
+ * if a newer release exists. Saving a design doesn't change the project's live app.
850
+ *
851
+ * The response includes the ID of the new release and a short-lived token for previewing it. After
852
+ * the save, the project's `headReleaseId` is set to the new release.
853
+ *
854
+ * To record the saved version in a conversation, specify the conversation's ID in `conversationId`.
855
+ * A `CHECKPOINT` message is then added to the conversation. If the checkpoint can't be added, the
856
+ * design is still saved.
824
857
  *
825
- * Synchronous: the Himalaya write completes before this call returns. Never touches the project's
826
- * sandbox, runs a build, or activates the app — the saved release stays a draft, so what the live
827
- * app serves is unaffected. Persists no entity of its own. When `conversation_id` is supplied it
828
- * posts a CHECKPOINT message for the saved release into that conversation (best-effort — a chat
829
- * failure never fails the save); omit it to skip the checkpoint.
830
- * @param projectId - Project whose design is being saved. The caller must own it.
831
- * @param baseReleaseId - The Himalaya release ID currently displayed by the client. The saved draft branches from
832
- * exactly this release, even when a newer release exists for the app.
858
+ * For projects whose `platform` is `HIMALAYA_MOBILE`, call
859
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization)
860
+ * first, and specify the returned `canonicalApp`.
861
+ * @param projectId - ID of the project whose design to save.
862
+ * @param baseReleaseId - ID of the release that the user is currently viewing.
863
+ *
864
+ * The new draft release branches from this release, even if a newer release exists.
833
865
  * @public
834
866
  * @documentationMaturity preview
835
867
  * @requiredField baseReleaseId
@@ -843,53 +875,53 @@ declare function regenerateProjectIcon(projectId: string, prompt: string): Promi
843
875
  declare function saveProjectDesign(projectId: string, baseReleaseId: string, options?: NonNullablePaths<SaveProjectDesignOptions, `himalayaControlToken` | `tokensJson`, 0>): Promise<NonNullablePaths<SaveProjectDesignResponse, `himalayaReleaseId` | `previewToken`, 0>>;
844
876
  interface SaveProjectDesignOptions {
845
877
  /**
846
- * The complete edited design-token document, as a JSON object string — not a flattened set of
847
- * preview overrides. The caller is responsible for preserving unknown groups and light/dark
848
- * values it did not change.
878
+ * Complete design-token document, as a string that contains a single JSON object.
879
+ *
880
+ * Specify the whole document, not only the values that changed. Keep any token groups and light or
881
+ * dark mode values that you didn't change.
849
882
  * @maxLength 65536
850
883
  */
851
884
  tokensJson: string;
852
885
  /**
853
- * Short-lived, app-scoped Himalaya control credential the client obtained from Himalaya's owner
854
- * embed-token endpoint. Forwarded to Himalaya for this call only — never logged, persisted, or
855
- * echoed back in any response, error, or event.
886
+ * Short-lived control credential for the project's app releases.
856
887
  *
857
- * The app this call writes to is NOT taken from this request. It is composed from the owner
858
- * prefix this credential carries plus project_id; see HimalayaAppSlug.
888
+ * Used for this call only. It isn't stored or returned.
859
889
  * @maxLength 4096
860
890
  */
861
891
  himalayaControlToken: string;
862
892
  /**
863
- * Client assertion of the canonical app returned by authenticated Himalaya lookup. Catalyst
864
- * resolves and validates the same value; it is never used as an unchecked write target.
893
+ * Canonical slug of the project's app, exactly as returned in `canonicalApp` by
894
+ * [Get Himalaya Authorization](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/get-himalaya-authorization).
895
+ * This isn't the app's ID.
896
+ *
897
+ * Required when the project's `platform` is `HIMALAYA_MOBILE`. The value is verified on the server.
865
898
  * @maxLength 200
866
899
  */
867
900
  canonicalApp?: string;
868
901
  /**
869
- * Conversation this design is saved from. When set, a CHECKPOINT message marking the saved
870
- * version is posted into it (best-effort). Optional — an older client that omits it still saves
871
- * the design; it just produces no checkpoint. Verified to belong to this project server-side.
902
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the design is saved from.
872
903
  *
873
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
874
- * fail the save. A malformed/unexpected id is handled downstream (the ownership lookup rejects it
875
- * and the checkpoint is skipped) rather than hard-failing SaveProjectDesign at the request boundary.
904
+ * When specified, a `CHECKPOINT` message that marks the saved version is added to the conversation.
905
+ * The conversation must belong to the project.
876
906
  * @maxLength 100
877
907
  */
878
908
  conversationId?: string;
879
909
  }
880
910
  /**
881
- * Restores an earlier version by pointing the project's editable head at `release_id`: the client
882
- * then previews that release and the next edit (design save or AI edit) branches from it. Pure
883
- * project state — sets `head_release_id` and nothing in Himalaya: it does NOT activate the release,
884
- * so the live app end-users run is untouched (a later publish/build is what carries head live).
911
+ * Restores an earlier version of a project.
912
+ *
913
+ * Sets the project's `headReleaseId` to the release specified in `releaseId`. Your app then
914
+ * previews that release, and the next design save or edit by the coding agent branches from it.
915
+ * Restoring a release doesn't change the project's live app.
916
+ *
917
+ * Only the project's owner can restore a release.
885
918
  *
886
- * `release_id` is a Himalaya release id the caller already holds from the project's own release
887
- * ledger, scoped to this project's app; the server stores it as head without re-reading Himalaya.
888
- * When `conversation_id` is supplied, a CHECKPOINT message for the restored release is posted into
889
- * it (best-effort — a chat failure never fails the restore); omit it to skip the checkpoint.
890
- * @param projectId - Project whose head is being moved. The caller must own it.
891
- * @param releaseId - The Himalaya release to make the project's editable head. Not a GUID — a Himalaya release id
892
- * (e.g. `rel-<hash>` / `<sha>-<hash>`), taken from the project's own release ledger.
919
+ * To confirm that the release belongs to the project before it's restored, specify
920
+ * `himalayaControlToken`. To record the restored version in a conversation, specify the
921
+ * conversation's ID in `conversationId`. A `CHECKPOINT` message is then added to the conversation.
922
+ * If the checkpoint can't be added, the release is still restored.
923
+ * @param projectId - ID of the project to restore a release for.
924
+ * @param releaseId - ID of the release to restore. For example, `rel-4f9c2a1b7d3e`.
893
925
  * @public
894
926
  * @documentationMaturity preview
895
927
  * @requiredField projectId
@@ -901,31 +933,26 @@ interface SaveProjectDesignOptions {
901
933
  declare function restoreRelease(projectId: string, releaseId: string, options?: RestoreReleaseOptions): Promise<NonNullablePaths<RestoreReleaseResponse, `project.name` | `project.status` | `project.sandboxStatus` | `project.metaSiteIds` | `project.platform`, 1>>;
902
934
  interface RestoreReleaseOptions {
903
935
  /**
904
- * Short-lived, app-scoped Himalaya control credential (the same the client obtains from Himalaya's
905
- * owner embed-token endpoint and sends on SaveProjectDesign). When present, the server verifies
906
- * release_id belongs to this project's Himalaya app before moving head. Optional for back-compat:
907
- * an older client that omits it skips that check (the release still comes from the project's own
908
- * ledger). Forwarded to Himalaya for the ledger read only — never logged, persisted, or echoed.
936
+ * Short-lived control credential for the project's app releases.
937
+ *
938
+ * When specified, the release is checked to belong to the project before it's restored. Used for
939
+ * this call only. It isn't stored or returned.
909
940
  * @maxLength 4096
910
941
  */
911
942
  himalayaControlToken?: string;
912
943
  /**
913
- * Conversation this restore is made from. When set, a CHECKPOINT message marking the restored
914
- * version is posted into it (best-effort). Optional — a client that omits it still restores; it
915
- * just produces no checkpoint. Verified to belong to this project server-side.
944
+ * ID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction) that the release is restored from.
916
945
  *
917
- * Deliberately NOT (.wix.api.format) = GUID: posting the checkpoint is best-effort and must never
918
- * fail the restore. A malformed id is handled downstream (the ownership lookup rejects it and the
919
- * checkpoint is skipped) rather than hard-failing RestoreRelease at the request boundary.
946
+ * When specified, a `CHECKPOINT` message that marks the restored version is added to the
947
+ * conversation. The conversation must belong to the project.
920
948
  * @maxLength 100
921
949
  */
922
950
  conversationId?: string;
923
951
  }
924
952
  /**
925
- * Lists the Projects of the current site — the MetaSite in the call scope — regardless of who owns
926
- * them. Anyone with access to the site sees the site's projects; other sites in the same account are
927
- * separate tenants and never appear here. The dashboard uses this; ListProjectsForCurrentUser stays
928
- * owner-scoped for callers that still depend on it.
953
+ * Retrieves the projects of the current site, regardless of who created them.
954
+ *
955
+ * Projects of other sites in the same account aren't included.
929
956
  * @internal
930
957
  * @documentationMaturity preview
931
958
  * @permissionId containers:projects:v1:project:list_projects
@@ -937,9 +964,15 @@ interface ListProjectsOptions {
937
964
  paging?: CursorPaging;
938
965
  }
939
966
  /**
940
- * Repeats authenticated Himalaya authorization for the current collaborator. This response is
941
- * a capability check only; every worker/design mutation performs a fresh check.
942
- * @param projectId - Site-tenanted Containers project being authorized.
967
+ * Checks whether the current user can work on a project's app.
968
+ *
969
+ * Supported for projects whose `platform` is `HIMALAYA_MOBILE`. The response returns the canonical
970
+ * slug of the project's app in `canonicalApp`. Specify this value when you call
971
+ * [Save Project Design](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/save-project-design).
972
+ *
973
+ * The response is a check only and doesn't grant access. Each later change to the project is
974
+ * authorized again.
975
+ * @param projectId - ID of the project to check.
943
976
  * @public
944
977
  * @documentationMaturity preview
945
978
  * @requiredField projectId