@builder.io/ai-utils 0.86.1 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/projects.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import type { BuilderConfigHosting } from "./builder-config.js";
3
3
  import type { ConnectivityErrorCode, CheckType, LikelyCause } from "./connectivity/types.js";
4
- import { type EnvironmentVariable, type SetupDependency } from "./common-schemas";
5
- import type { FileOverride, LaunchServerState, LaunchServerStatus, BranchBackup, CommitMode, CustomInstruction, CustomAgentDefinition, GitSnapshot, AutoPushMode, GenerateUserMessage, CodeGenToolMap, GenerateCompletionStep, ReviewEffort, ExitState } from "./codegen";
4
+ import type { LaunchServerState, LaunchServerStatus, BranchBackup, CommitMode, GitSnapshot, GenerateUserMessage, CodeGenToolMap, GenerateCompletionStep, ExitState } from "./codegen";
6
5
  import type { FallbackTokensPrivate } from "./organization";
7
6
  /**
8
7
  * Temporary type for date fields during migration.
@@ -344,51 +343,89 @@ export type ShutdownResponse = {
344
343
  export type ShutdownResponseSerialized = Omit<ShutdownResponse, "error"> & {
345
344
  error?: string;
346
345
  };
347
- interface ProjectSkillBase {
348
- /** Stable identifier for the entry (used for logs/dedup, not by the CLI). */
349
- key: string;
350
- /** Specific skill names to install (--skill). Omit to install all. */
351
- skills?: string[];
352
- /** Target agents (--agent). Defaults to ["claude-code"]. */
353
- agents?: string[];
354
- }
355
346
  /**
356
- * A skill source passed directly to `skills add`.
357
- * Supports GitHub shorthand, Git/GitHub URLs, local paths, npm: sources, etc.
347
+ * A skill source passed directly to `skills add`. Supports GitHub shorthand,
348
+ * Git/GitHub URLs, local paths, npm: sources, etc.
358
349
  */
359
- export interface ProjectSkillSource extends ProjectSkillBase {
360
- source: string;
361
- }
350
+ export declare const ProjectSkillSourceSchema: z.ZodObject<{
351
+ key: z.ZodString;
352
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
353
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
354
+ source: z.ZodString;
355
+ }, z.core.$strip>;
356
+ export type ProjectSkillSource = z.infer<typeof ProjectSkillSourceSchema>;
362
357
  /**
363
- * A skill sourced from an npm package.
364
- * The package must contain a SKILL.md at its root (or a skills/<name>/SKILL.md).
358
+ * A skill sourced from an npm package. The package must contain a SKILL.md at
359
+ * its root (or a skills/<name>/SKILL.md).
365
360
  */
366
- export interface ProjectSkillNpm extends ProjectSkillBase {
367
- type: "npm";
368
- package: string;
369
- version?: string;
370
- }
361
+ export declare const ProjectSkillNpmSchema: z.ZodObject<{
362
+ key: z.ZodString;
363
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
364
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
365
+ type: z.ZodLiteral<"npm">;
366
+ package: z.ZodString;
367
+ version: z.ZodOptional<z.ZodString>;
368
+ }, z.core.$strip>;
369
+ export type ProjectSkillNpm = z.infer<typeof ProjectSkillNpmSchema>;
371
370
  /**
372
- * A skill sourced from a GitHub repository that follows the Claude Code plugin layout
373
- * (skills/<name>/SKILL.md) or contains a SKILL.md at root.
374
- * ref can be a branch, tag, or commit SHA.
371
+ * A skill sourced from a GitHub repository following the Claude Code plugin
372
+ * layout (skills/<name>/SKILL.md) or containing a SKILL.md at root.
375
373
  */
376
- export interface ProjectSkillGithub extends ProjectSkillBase {
377
- type: "github";
378
- repo: string;
379
- ref?: string;
380
- /** Sub-path inside the repo to treat as the plugin root (default: repo root) */
381
- path?: string;
382
- }
374
+ export declare const ProjectSkillGithubSchema: z.ZodObject<{
375
+ key: z.ZodString;
376
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
377
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
378
+ type: z.ZodLiteral<"github">;
379
+ repo: z.ZodString;
380
+ ref: z.ZodOptional<z.ZodString>;
381
+ path: z.ZodOptional<z.ZodString>;
382
+ }, z.core.$strip>;
383
+ export type ProjectSkillGithub = z.infer<typeof ProjectSkillGithubSchema>;
383
384
  /**
384
385
  * A skill sourced from a URL supported by `skills add`, such as a GitHub/GitLab
385
386
  * tree URL, a direct git URL, or a well-known skills index URL.
386
387
  */
387
- export interface ProjectSkillUrl extends ProjectSkillBase {
388
- type: "url";
389
- url: string;
390
- }
391
- export type ProjectSkill = ProjectSkillSource | ProjectSkillNpm | ProjectSkillGithub | ProjectSkillUrl;
388
+ export declare const ProjectSkillUrlSchema: z.ZodObject<{
389
+ key: z.ZodString;
390
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
391
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
392
+ type: z.ZodLiteral<"url">;
393
+ url: z.ZodString;
394
+ }, z.core.$strip>;
395
+ export type ProjectSkillUrl = z.infer<typeof ProjectSkillUrlSchema>;
396
+ /**
397
+ * A project-level skill to install during Fusion initialization. A plain
398
+ * `z.union` (not `discriminatedUnion`) because the `source` variant has no
399
+ * `type` tag to discriminate on.
400
+ */
401
+ export declare const ProjectSkillSchema: z.ZodUnion<readonly [z.ZodObject<{
402
+ key: z.ZodString;
403
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
404
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
405
+ source: z.ZodString;
406
+ }, z.core.$strip>, z.ZodObject<{
407
+ key: z.ZodString;
408
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
409
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
410
+ type: z.ZodLiteral<"npm">;
411
+ package: z.ZodString;
412
+ version: z.ZodOptional<z.ZodString>;
413
+ }, z.core.$strip>, z.ZodObject<{
414
+ key: z.ZodString;
415
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
416
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
417
+ type: z.ZodLiteral<"github">;
418
+ repo: z.ZodString;
419
+ ref: z.ZodOptional<z.ZodString>;
420
+ path: z.ZodOptional<z.ZodString>;
421
+ }, z.core.$strip>, z.ZodObject<{
422
+ key: z.ZodString;
423
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
424
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
425
+ type: z.ZodLiteral<"url">;
426
+ url: z.ZodString;
427
+ }, z.core.$strip>]>;
428
+ export type ProjectSkill = z.infer<typeof ProjectSkillSchema>;
392
429
  export type FusionExecutionEnvironment = "containerized" | "container-less" | "cloud" | "cloud-v2";
393
430
  export type AgentType = "setup-project" | "project-configuration" | "org-agent" | "code-review-orchestrator" | "design-system-indexer" | "repo-indexer" | "builder-publish-integration";
394
431
  export interface PartialBranchData {
@@ -705,24 +742,745 @@ export interface ListBranchesResult {
705
742
  }
706
743
  export type CpuKind = "performance" | "standard" | "shared";
707
744
  export type MachineAutoStop = "stop" | "off" | "suspend";
708
- export interface ProjectRolePermissions {
709
- view?: boolean;
710
- editCode?: boolean;
711
- sendPullRequests?: boolean;
712
- createBranches?: boolean;
713
- modifyMcpServers?: boolean;
714
- modifyWorkflowIntegrations?: boolean;
715
- modifyProjectSettings?: boolean;
716
- fusionHostingPublish?: boolean;
717
- }
718
- export interface ProjectAccessControl {
719
- roles: Record<string, ProjectRolePermissions | null>;
720
- users: Record<string, ProjectRolePermissions>;
721
- }
745
+ export declare const ProjectRolePermissionsSchema: z.ZodObject<{
746
+ view: z.ZodOptional<z.ZodBoolean>;
747
+ editCode: z.ZodOptional<z.ZodBoolean>;
748
+ sendPullRequests: z.ZodOptional<z.ZodBoolean>;
749
+ createBranches: z.ZodOptional<z.ZodBoolean>;
750
+ modifyMcpServers: z.ZodOptional<z.ZodBoolean>;
751
+ modifyWorkflowIntegrations: z.ZodOptional<z.ZodBoolean>;
752
+ modifyProjectSettings: z.ZodOptional<z.ZodBoolean>;
753
+ fusionHostingPublish: z.ZodOptional<z.ZodBoolean>;
754
+ }, z.core.$strip>;
755
+ export type ProjectRolePermissions = z.infer<typeof ProjectRolePermissionsSchema>;
756
+ export declare const ProjectAccessControlSchema: z.ZodObject<{
757
+ roles: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
758
+ view: z.ZodOptional<z.ZodBoolean>;
759
+ editCode: z.ZodOptional<z.ZodBoolean>;
760
+ sendPullRequests: z.ZodOptional<z.ZodBoolean>;
761
+ createBranches: z.ZodOptional<z.ZodBoolean>;
762
+ modifyMcpServers: z.ZodOptional<z.ZodBoolean>;
763
+ modifyWorkflowIntegrations: z.ZodOptional<z.ZodBoolean>;
764
+ modifyProjectSettings: z.ZodOptional<z.ZodBoolean>;
765
+ fusionHostingPublish: z.ZodOptional<z.ZodBoolean>;
766
+ }, z.core.$strip>>>;
767
+ users: z.ZodRecord<z.ZodString, z.ZodObject<{
768
+ view: z.ZodOptional<z.ZodBoolean>;
769
+ editCode: z.ZodOptional<z.ZodBoolean>;
770
+ sendPullRequests: z.ZodOptional<z.ZodBoolean>;
771
+ createBranches: z.ZodOptional<z.ZodBoolean>;
772
+ modifyMcpServers: z.ZodOptional<z.ZodBoolean>;
773
+ modifyWorkflowIntegrations: z.ZodOptional<z.ZodBoolean>;
774
+ modifyProjectSettings: z.ZodOptional<z.ZodBoolean>;
775
+ fusionHostingPublish: z.ZodOptional<z.ZodBoolean>;
776
+ }, z.core.$strip>>;
777
+ }, z.core.$strip>;
778
+ export type ProjectAccessControl = z.infer<typeof ProjectAccessControlSchema>;
722
779
  export interface PreviewPasswordProtection {
723
780
  enabled: boolean;
724
781
  password?: string;
725
782
  }
783
+ /**
784
+ * Runtime schema for {@link Project.settings} — the full stored shape, including
785
+ * `@internal` (system/agent-managed) fields. Plain `z.object` strips unknown
786
+ * keys on parse.
787
+ *
788
+ * For client-writable payloads use {@link ProjectSettingsExternalSchema}, which
789
+ * is derived from this schema with the internal fields omitted so external
790
+ * callers can't set them through the public update API.
791
+ */
792
+ export declare const ProjectSettingsSchema: z.ZodObject<{
793
+ isNativeApp: z.ZodOptional<z.ZodBoolean>;
794
+ autoDetectDevServer: z.ZodOptional<z.ZodBoolean>;
795
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
796
+ fusionEnvironment: z.ZodOptional<z.ZodEnum<{
797
+ cloud: "cloud";
798
+ "cloud-v2": "cloud-v2";
799
+ "container-less": "container-less";
800
+ containerized: "containerized";
801
+ }>>;
802
+ devServerPort: z.ZodOptional<z.ZodNumber>;
803
+ devServerUrl: z.ZodOptional<z.ZodString>;
804
+ refreshPreview: z.ZodOptional<z.ZodBoolean>;
805
+ installCommand: z.ZodOptional<z.ZodString>;
806
+ installNpmrc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
807
+ validateCommand: z.ZodOptional<z.ZodString>;
808
+ proxyOrigin: z.ZodOptional<z.ZodString>;
809
+ proxyDefaultOrigin: z.ZodOptional<z.ZodString>;
810
+ defaultAutoPush: z.ZodOptional<z.ZodEnum<{
811
+ "ff-push": "ff-push";
812
+ "force-push": "force-push";
813
+ "merge-push": "merge-push";
814
+ none: "none";
815
+ "safe-push": "safe-push";
816
+ }>>;
817
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodEnum<{
818
+ "ai-session": "ai-session";
819
+ "branch-name": "branch-name";
820
+ custom: "custom";
821
+ }>>;
822
+ setupDependencies: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
823
+ key: z.ZodString;
824
+ type: z.ZodLiteral<"mise">;
825
+ tool: z.ZodString;
826
+ version: z.ZodOptional<z.ZodString>;
827
+ }, z.core.$strip>, z.ZodObject<{
828
+ key: z.ZodString;
829
+ type: z.ZodLiteral<"script">;
830
+ name: z.ZodString;
831
+ script: z.ZodString;
832
+ }, z.core.$strip>], "type">>>;
833
+ hostRequirements: z.ZodOptional<z.ZodArray<z.ZodObject<{
834
+ name: z.ZodString;
835
+ checkScript: z.ZodString;
836
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
837
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
838
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
839
+ linux: "linux";
840
+ macos: "macos";
841
+ windows: "windows";
842
+ }>>>;
843
+ description: z.ZodOptional<z.ZodString>;
844
+ }, z.core.$strip>>>;
845
+ skills: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
846
+ key: z.ZodString;
847
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
848
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
849
+ source: z.ZodString;
850
+ }, z.core.$strip>, z.ZodObject<{
851
+ key: z.ZodString;
852
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
853
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
854
+ type: z.ZodLiteral<"npm">;
855
+ package: z.ZodString;
856
+ version: z.ZodOptional<z.ZodString>;
857
+ }, z.core.$strip>, z.ZodObject<{
858
+ key: z.ZodString;
859
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
860
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
861
+ type: z.ZodLiteral<"github">;
862
+ repo: z.ZodString;
863
+ ref: z.ZodOptional<z.ZodString>;
864
+ path: z.ZodOptional<z.ZodString>;
865
+ }, z.core.$strip>, z.ZodObject<{
866
+ key: z.ZodString;
867
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
868
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
869
+ type: z.ZodLiteral<"url">;
870
+ url: z.ZodString;
871
+ }, z.core.$strip>]>>>;
872
+ gitBranchNamingCustom: z.ZodOptional<z.ZodString>;
873
+ askUserForBranchName: z.ZodOptional<z.ZodBoolean>;
874
+ allowBranchFromRemote: z.ZodOptional<z.ZodBoolean>;
875
+ devServerCommand: z.ZodOptional<z.ZodString>;
876
+ screenshotCommand: z.ZodOptional<z.ZodString>;
877
+ interactCommand: z.ZodOptional<z.ZodString>;
878
+ serverTimeout: z.ZodOptional<z.ZodNumber>;
879
+ cpuKind: z.ZodOptional<z.ZodEnum<{
880
+ performance: "performance";
881
+ shared: "shared";
882
+ standard: "standard";
883
+ }>>;
884
+ cpus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>;
885
+ memory: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>;
886
+ memoryLimit: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>;
887
+ autoStop: z.ZodOptional<z.ZodEnum<{
888
+ off: "off";
889
+ stop: "stop";
890
+ suspend: "suspend";
891
+ }>>;
892
+ mainBranchName: z.ZodOptional<z.ZodString>;
893
+ minMachinesRunning: z.ZodOptional<z.ZodNumber>;
894
+ volumeSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<5>, z.ZodLiteral<10>, z.ZodLiteral<12>, z.ZodLiteral<15>, z.ZodLiteral<20>, z.ZodLiteral<25>, z.ZodLiteral<30>, z.ZodLiteral<50>]>>;
895
+ includePath: z.ZodOptional<z.ZodString>;
896
+ includePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
897
+ errorIgnorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
898
+ environmentVariables: z.ZodOptional<z.ZodArray<z.ZodObject<{
899
+ key: z.ZodString;
900
+ value: z.ZodString;
901
+ isSecret: z.ZodBoolean;
902
+ placeholder: z.ZodOptional<z.ZodBoolean>;
903
+ explanation: z.ZodOptional<z.ZodString>;
904
+ }, z.core.$strip>>>;
905
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodArray<z.ZodObject<{
906
+ key: z.ZodString;
907
+ description: z.ZodOptional<z.ZodString>;
908
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
909
+ }, z.core.$strip>>>;
910
+ fileOverrides: z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
911
+ path: z.ZodString;
912
+ content: z.ZodString;
913
+ }, z.core.$strip>, z.ZodObject<{
914
+ path: z.ZodString;
915
+ base64: z.ZodString;
916
+ }, z.core.$strip>]>>>;
917
+ customInstructions: z.ZodOptional<z.ZodArray<z.ZodObject<{
918
+ id: z.ZodString;
919
+ name: z.ZodString;
920
+ content: z.ZodString;
921
+ type: z.ZodOptional<z.ZodEnum<{
922
+ "agent-mode": "agent-mode";
923
+ always: "always";
924
+ }>>;
925
+ filePath: z.ZodOptional<z.ZodString>;
926
+ glob: z.ZodOptional<z.ZodString>;
927
+ description: z.ZodOptional<z.ZodString>;
928
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
929
+ hideUI: z.ZodOptional<z.ZodBoolean>;
930
+ isSkill: z.ZodOptional<z.ZodBoolean>;
931
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
932
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
933
+ scope: z.ZodOptional<z.ZodEnum<{
934
+ builtin: "builtin";
935
+ plugin: "plugin";
936
+ project: "project";
937
+ user: "user";
938
+ }>>;
939
+ pluginName: z.ZodOptional<z.ZodString>;
940
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
941
+ name: z.ZodString;
942
+ description: z.ZodOptional<z.ZodString>;
943
+ }, z.core.$strip>>>;
944
+ }, z.core.$strip>>>;
945
+ customAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
946
+ name: z.ZodString;
947
+ description: z.ZodOptional<z.ZodString>;
948
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
949
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
950
+ model: z.ZodOptional<z.ZodString>;
951
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
952
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
953
+ "browser-testing": "browser-testing";
954
+ "builder-code": "builder-code";
955
+ "builder-code-panel": "builder-code-panel";
956
+ "builder-publish-integration": "builder-publish-integration";
957
+ cli: "cli";
958
+ "code-review-orchestrator": "code-review-orchestrator";
959
+ "create-app-firebase": "create-app-firebase";
960
+ "create-app-lovable": "create-app-lovable";
961
+ "design-system-indexer": "design-system-indexer";
962
+ "dsi-mcp": "dsi-mcp";
963
+ "editor-ai": "editor-ai";
964
+ fusion: "fusion";
965
+ "org-agent": "org-agent";
966
+ "org-worker": "org-worker";
967
+ "project-configuration": "project-configuration";
968
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
969
+ "repo-indexing": "repo-indexing";
970
+ "setup-project": "setup-project";
971
+ unknown: "unknown";
972
+ }>, z.ZodTemplateLiteral<"browser-testing-agent" | "builder-code-agent" | "builder-code-panel-agent" | "builder-publish-integration-agent" | "cli-agent" | "code-review-orchestrator-agent" | "create-app-firebase-agent" | "create-app-lovable-agent" | "design-system-indexer-agent" | "dsi-mcp-agent" | "editor-ai-agent" | "fusion-agent" | "org-agent-agent" | "org-worker-agent" | "project-configuration-agent" | "projects-scheduler-memory-extraction-agent" | "repo-indexing-agent" | "setup-project-agent" | "unknown-agent">]>>;
973
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
974
+ needValidation: z.ZodOptional<z.ZodBoolean>;
975
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
976
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
977
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
978
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
979
+ queueBehavior: z.ZodOptional<z.ZodObject<{
980
+ schedule: z.ZodEnum<{
981
+ interrupt: "interrupt";
982
+ "interrupt-clear": "interrupt-clear";
983
+ "interrupt-replace": "interrupt-replace";
984
+ "next-turn": "next-turn";
985
+ "until-idle": "until-idle";
986
+ }>;
987
+ coalesce: z.ZodEnum<{
988
+ merge: "merge";
989
+ "preserve-order": "preserve-order";
990
+ "replace-latest": "replace-latest";
991
+ }>;
992
+ }, z.core.$strip>>;
993
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
994
+ schedule: z.ZodEnum<{
995
+ interrupt: "interrupt";
996
+ "interrupt-clear": "interrupt-clear";
997
+ "interrupt-replace": "interrupt-replace";
998
+ "next-turn": "next-turn";
999
+ "until-idle": "until-idle";
1000
+ }>;
1001
+ coalesce: z.ZodEnum<{
1002
+ merge: "merge";
1003
+ "preserve-order": "preserve-order";
1004
+ "replace-latest": "replace-latest";
1005
+ }>;
1006
+ }, z.core.$strip>]>>;
1007
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
1008
+ filePath: z.ZodOptional<z.ZodString>;
1009
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
1010
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
1011
+ reasoning: z.ZodOptional<z.ZodEnum<{
1012
+ auto: "auto";
1013
+ high: "high";
1014
+ low: "low";
1015
+ max: "max";
1016
+ medium: "medium";
1017
+ minimal: "minimal";
1018
+ none: "none";
1019
+ xhigh: "xhigh";
1020
+ }>>;
1021
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
1022
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
1023
+ ai: "ai";
1024
+ both: "both";
1025
+ main: "main";
1026
+ }>>;
1027
+ fastForward: z.ZodOptional<z.ZodEnum<{
1028
+ auto: "auto";
1029
+ never: "never";
1030
+ required: "required";
1031
+ }>>;
1032
+ canPush: z.ZodOptional<z.ZodBoolean>;
1033
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
1034
+ commit: "commit";
1035
+ fail: "fail";
1036
+ stash: "stash";
1037
+ }>>;
1038
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
1039
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
1040
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
1041
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
1042
+ }, z.core.$strip>>;
1043
+ scope: z.ZodOptional<z.ZodEnum<{
1044
+ plugin: "plugin";
1045
+ project: "project";
1046
+ user: "user";
1047
+ }>>;
1048
+ pluginName: z.ZodOptional<z.ZodString>;
1049
+ }, z.core.$strip>>>;
1050
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1051
+ command: z.ZodString;
1052
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
1053
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1054
+ envFile: z.ZodOptional<z.ZodString>;
1055
+ retries: z.ZodOptional<z.ZodNumber>;
1056
+ }, z.core.$strip>>>;
1057
+ commitMode: z.ZodOptional<z.ZodEnum<{
1058
+ commits: "commits";
1059
+ "draft-prs": "draft-prs";
1060
+ prs: "prs";
1061
+ }>>;
1062
+ autoCloseBranchOnMerge: z.ZodOptional<z.ZodBoolean>;
1063
+ enableMergePR: z.ZodOptional<z.ZodBoolean>;
1064
+ minRequiredApprovals: z.ZodOptional<z.ZodNumber>;
1065
+ requireApprovalBeforePR: z.ZodOptional<z.ZodBoolean>;
1066
+ requiredApproverRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1067
+ requiredApproverRoleId: z.ZodOptional<z.ZodString>;
1068
+ defaultBranchType: z.ZodOptional<z.ZodEnum<{
1069
+ private: "private";
1070
+ shared: "shared";
1071
+ }>>;
1072
+ dockerImagePath: z.ZodOptional<z.ZodString>;
1073
+ ghcrUsername: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1074
+ ghcrToken: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1075
+ nodeVersion: z.ZodOptional<z.ZodString>;
1076
+ designSystems: z.ZodOptional<z.ZodArray<z.ZodString>>;
1077
+ designTokenStrictMode: z.ZodOptional<z.ZodBoolean>;
1078
+ designModeSelector: z.ZodOptional<z.ZodString>;
1079
+ useNI: z.ZodOptional<z.ZodBoolean>;
1080
+ folders: z.ZodOptional<z.ZodArray<z.ZodObject<{
1081
+ name: z.ZodString;
1082
+ remoteUrl: z.ZodString;
1083
+ mainBranchName: z.ZodOptional<z.ZodString>;
1084
+ includePath: z.ZodOptional<z.ZodString>;
1085
+ addedBy: z.ZodOptional<z.ZodString>;
1086
+ repoProvider: z.ZodOptional<z.ZodString>;
1087
+ repoProtocol: z.ZodOptional<z.ZodString>;
1088
+ enableGit: z.ZodOptional<z.ZodBoolean>;
1089
+ }, z.core.$strip>>>;
1090
+ agentsMD: z.ZodOptional<z.ZodString>;
1091
+ initializationCommand: z.ZodOptional<z.ZodString>;
1092
+ repoSubpath: z.ZodOptional<z.ZodString>;
1093
+ recommendedRoot: z.ZodOptional<z.ZodString>;
1094
+ https: z.ZodOptional<z.ZodBoolean>;
1095
+ localHttpsDomain: z.ZodOptional<z.ZodString>;
1096
+ browserAutomation: z.ZodOptional<z.ZodObject<{
1097
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
1098
+ builderApp: z.ZodOptional<z.ZodBoolean>;
1099
+ instructions: z.ZodOptional<z.ZodString>;
1100
+ authUser: z.ZodOptional<z.ZodString>;
1101
+ authPassword: z.ZodOptional<z.ZodString>;
1102
+ }, z.core.$strip>>;
1103
+ prReviewer: z.ZodOptional<z.ZodObject<{
1104
+ enabled: z.ZodBoolean;
1105
+ instructions: z.ZodOptional<z.ZodString>;
1106
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
1107
+ high: "high";
1108
+ low: "low";
1109
+ medium: "medium";
1110
+ }>>;
1111
+ model: z.ZodOptional<z.ZodString>;
1112
+ }, z.core.$strip>>;
1113
+ enableSnapshots: z.ZodOptional<z.ZodBoolean>;
1114
+ postMergeMemories: z.ZodOptional<z.ZodBoolean>;
1115
+ commitInstructions: z.ZodOptional<z.ZodString>;
1116
+ maxAgentCompletions: z.ZodOptional<z.ZodNumber>;
1117
+ enableAgentMode: z.ZodOptional<z.ZodBoolean>;
1118
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodBoolean>;
1119
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodBoolean>;
1120
+ disableDesktopProxying: z.ZodOptional<z.ZodBoolean>;
1121
+ previewUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1122
+ recentUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
1123
+ url: z.ZodString;
1124
+ timestamp: z.ZodNumber;
1125
+ starred: z.ZodBoolean;
1126
+ }, z.core.$strip>>>;
1127
+ skipCommandSecurity: z.ZodOptional<z.ZodBoolean>;
1128
+ httpsServerKeyPath: z.ZodOptional<z.ZodString>;
1129
+ httpsServerCertPath: z.ZodOptional<z.ZodString>;
1130
+ httpsServerCaPath: z.ZodOptional<z.ZodString>;
1131
+ httpsServerKeyContent: z.ZodOptional<z.ZodString>;
1132
+ httpsServerCertContent: z.ZodOptional<z.ZodString>;
1133
+ httpsServerCaContent: z.ZodOptional<z.ZodString>;
1134
+ httpsServerPfx: z.ZodOptional<z.ZodString>;
1135
+ httpsServerPassphrase: z.ZodOptional<z.ZodString>;
1136
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodString>;
1137
+ httpsServerSecureOptions: z.ZodOptional<z.ZodNumber>;
1138
+ httpsServerCiphers: z.ZodOptional<z.ZodString>;
1139
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodBoolean>;
1140
+ httpsServerRequestCert: z.ZodOptional<z.ZodBoolean>;
1141
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodBoolean>;
1142
+ isPreferredForRepo: z.ZodOptional<z.ZodBoolean>;
1143
+ singleTenancyConfig: z.ZodOptional<z.ZodString>;
1144
+ previewPasswordProtection: z.ZodOptional<z.ZodObject<{
1145
+ enabled: z.ZodBoolean;
1146
+ password: z.ZodOptional<z.ZodString>;
1147
+ }, z.core.$strip>>;
1148
+ }, z.core.$strip>;
1149
+ export type ProjectSettings = z.infer<typeof ProjectSettingsSchema>;
1150
+ /**
1151
+ * Runtime schema for the client-writable subset of {@link Project.settings},
1152
+ * derived from {@link ProjectSettingsSchema} by omitting the `@internal`
1153
+ * (system/agent-managed) fields. Use this for public update/PATCH payloads so
1154
+ * external callers can't set internal-only fields.
1155
+ */
1156
+ export declare const ProjectSettingsExternalSchema: z.ZodObject<{
1157
+ isNativeApp: z.ZodOptional<z.ZodBoolean>;
1158
+ autoDetectDevServer: z.ZodOptional<z.ZodBoolean>;
1159
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
1160
+ fusionEnvironment: z.ZodOptional<z.ZodEnum<{
1161
+ cloud: "cloud";
1162
+ "cloud-v2": "cloud-v2";
1163
+ "container-less": "container-less";
1164
+ containerized: "containerized";
1165
+ }>>;
1166
+ devServerPort: z.ZodOptional<z.ZodNumber>;
1167
+ installCommand: z.ZodOptional<z.ZodString>;
1168
+ installNpmrc: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1169
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodEnum<{
1170
+ "ai-session": "ai-session";
1171
+ "branch-name": "branch-name";
1172
+ custom: "custom";
1173
+ }>>;
1174
+ hostRequirements: z.ZodOptional<z.ZodArray<z.ZodObject<{
1175
+ name: z.ZodString;
1176
+ checkScript: z.ZodString;
1177
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1178
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1179
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1180
+ linux: "linux";
1181
+ macos: "macos";
1182
+ windows: "windows";
1183
+ }>>>;
1184
+ description: z.ZodOptional<z.ZodString>;
1185
+ }, z.core.$strip>>>;
1186
+ skills: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1187
+ key: z.ZodString;
1188
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1189
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
1190
+ source: z.ZodString;
1191
+ }, z.core.$strip>, z.ZodObject<{
1192
+ key: z.ZodString;
1193
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1194
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
1195
+ type: z.ZodLiteral<"npm">;
1196
+ package: z.ZodString;
1197
+ version: z.ZodOptional<z.ZodString>;
1198
+ }, z.core.$strip>, z.ZodObject<{
1199
+ key: z.ZodString;
1200
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1201
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
1202
+ type: z.ZodLiteral<"github">;
1203
+ repo: z.ZodString;
1204
+ ref: z.ZodOptional<z.ZodString>;
1205
+ path: z.ZodOptional<z.ZodString>;
1206
+ }, z.core.$strip>, z.ZodObject<{
1207
+ key: z.ZodString;
1208
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1209
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
1210
+ type: z.ZodLiteral<"url">;
1211
+ url: z.ZodString;
1212
+ }, z.core.$strip>]>>>;
1213
+ gitBranchNamingCustom: z.ZodOptional<z.ZodString>;
1214
+ askUserForBranchName: z.ZodOptional<z.ZodBoolean>;
1215
+ allowBranchFromRemote: z.ZodOptional<z.ZodBoolean>;
1216
+ devServerCommand: z.ZodOptional<z.ZodString>;
1217
+ screenshotCommand: z.ZodOptional<z.ZodString>;
1218
+ interactCommand: z.ZodOptional<z.ZodString>;
1219
+ serverTimeout: z.ZodOptional<z.ZodNumber>;
1220
+ cpuKind: z.ZodOptional<z.ZodEnum<{
1221
+ performance: "performance";
1222
+ shared: "shared";
1223
+ standard: "standard";
1224
+ }>>;
1225
+ cpus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>;
1226
+ memory: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>;
1227
+ memoryLimit: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>;
1228
+ autoStop: z.ZodOptional<z.ZodEnum<{
1229
+ off: "off";
1230
+ stop: "stop";
1231
+ suspend: "suspend";
1232
+ }>>;
1233
+ mainBranchName: z.ZodOptional<z.ZodString>;
1234
+ minMachinesRunning: z.ZodOptional<z.ZodNumber>;
1235
+ volumeSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<5>, z.ZodLiteral<10>, z.ZodLiteral<12>, z.ZodLiteral<15>, z.ZodLiteral<20>, z.ZodLiteral<25>, z.ZodLiteral<30>, z.ZodLiteral<50>]>>;
1236
+ includePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
1237
+ errorIgnorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
1238
+ environmentVariables: z.ZodOptional<z.ZodArray<z.ZodObject<{
1239
+ key: z.ZodString;
1240
+ value: z.ZodString;
1241
+ isSecret: z.ZodBoolean;
1242
+ placeholder: z.ZodOptional<z.ZodBoolean>;
1243
+ explanation: z.ZodOptional<z.ZodString>;
1244
+ }, z.core.$strip>>>;
1245
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodArray<z.ZodObject<{
1246
+ key: z.ZodString;
1247
+ description: z.ZodOptional<z.ZodString>;
1248
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1249
+ }, z.core.$strip>>>;
1250
+ fileOverrides: z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
1251
+ path: z.ZodString;
1252
+ content: z.ZodString;
1253
+ }, z.core.$strip>, z.ZodObject<{
1254
+ path: z.ZodString;
1255
+ base64: z.ZodString;
1256
+ }, z.core.$strip>]>>>;
1257
+ customInstructions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1258
+ id: z.ZodString;
1259
+ name: z.ZodString;
1260
+ content: z.ZodString;
1261
+ type: z.ZodOptional<z.ZodEnum<{
1262
+ "agent-mode": "agent-mode";
1263
+ always: "always";
1264
+ }>>;
1265
+ filePath: z.ZodOptional<z.ZodString>;
1266
+ glob: z.ZodOptional<z.ZodString>;
1267
+ description: z.ZodOptional<z.ZodString>;
1268
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
1269
+ hideUI: z.ZodOptional<z.ZodBoolean>;
1270
+ isSkill: z.ZodOptional<z.ZodBoolean>;
1271
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
1272
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
1273
+ scope: z.ZodOptional<z.ZodEnum<{
1274
+ builtin: "builtin";
1275
+ plugin: "plugin";
1276
+ project: "project";
1277
+ user: "user";
1278
+ }>>;
1279
+ pluginName: z.ZodOptional<z.ZodString>;
1280
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
1281
+ name: z.ZodString;
1282
+ description: z.ZodOptional<z.ZodString>;
1283
+ }, z.core.$strip>>>;
1284
+ }, z.core.$strip>>>;
1285
+ customAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
1286
+ name: z.ZodString;
1287
+ description: z.ZodOptional<z.ZodString>;
1288
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
1289
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
1290
+ model: z.ZodOptional<z.ZodString>;
1291
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
1292
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
1293
+ "browser-testing": "browser-testing";
1294
+ "builder-code": "builder-code";
1295
+ "builder-code-panel": "builder-code-panel";
1296
+ "builder-publish-integration": "builder-publish-integration";
1297
+ cli: "cli";
1298
+ "code-review-orchestrator": "code-review-orchestrator";
1299
+ "create-app-firebase": "create-app-firebase";
1300
+ "create-app-lovable": "create-app-lovable";
1301
+ "design-system-indexer": "design-system-indexer";
1302
+ "dsi-mcp": "dsi-mcp";
1303
+ "editor-ai": "editor-ai";
1304
+ fusion: "fusion";
1305
+ "org-agent": "org-agent";
1306
+ "org-worker": "org-worker";
1307
+ "project-configuration": "project-configuration";
1308
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
1309
+ "repo-indexing": "repo-indexing";
1310
+ "setup-project": "setup-project";
1311
+ unknown: "unknown";
1312
+ }>, z.ZodTemplateLiteral<"browser-testing-agent" | "builder-code-agent" | "builder-code-panel-agent" | "builder-publish-integration-agent" | "cli-agent" | "code-review-orchestrator-agent" | "create-app-firebase-agent" | "create-app-lovable-agent" | "design-system-indexer-agent" | "dsi-mcp-agent" | "editor-ai-agent" | "fusion-agent" | "org-agent-agent" | "org-worker-agent" | "project-configuration-agent" | "projects-scheduler-memory-extraction-agent" | "repo-indexing-agent" | "setup-project-agent" | "unknown-agent">]>>;
1313
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
1314
+ needValidation: z.ZodOptional<z.ZodBoolean>;
1315
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
1316
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
1317
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
1318
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
1319
+ queueBehavior: z.ZodOptional<z.ZodObject<{
1320
+ schedule: z.ZodEnum<{
1321
+ interrupt: "interrupt";
1322
+ "interrupt-clear": "interrupt-clear";
1323
+ "interrupt-replace": "interrupt-replace";
1324
+ "next-turn": "next-turn";
1325
+ "until-idle": "until-idle";
1326
+ }>;
1327
+ coalesce: z.ZodEnum<{
1328
+ merge: "merge";
1329
+ "preserve-order": "preserve-order";
1330
+ "replace-latest": "replace-latest";
1331
+ }>;
1332
+ }, z.core.$strip>>;
1333
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
1334
+ schedule: z.ZodEnum<{
1335
+ interrupt: "interrupt";
1336
+ "interrupt-clear": "interrupt-clear";
1337
+ "interrupt-replace": "interrupt-replace";
1338
+ "next-turn": "next-turn";
1339
+ "until-idle": "until-idle";
1340
+ }>;
1341
+ coalesce: z.ZodEnum<{
1342
+ merge: "merge";
1343
+ "preserve-order": "preserve-order";
1344
+ "replace-latest": "replace-latest";
1345
+ }>;
1346
+ }, z.core.$strip>]>>;
1347
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
1348
+ filePath: z.ZodOptional<z.ZodString>;
1349
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
1350
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
1351
+ reasoning: z.ZodOptional<z.ZodEnum<{
1352
+ auto: "auto";
1353
+ high: "high";
1354
+ low: "low";
1355
+ max: "max";
1356
+ medium: "medium";
1357
+ minimal: "minimal";
1358
+ none: "none";
1359
+ xhigh: "xhigh";
1360
+ }>>;
1361
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
1362
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
1363
+ ai: "ai";
1364
+ both: "both";
1365
+ main: "main";
1366
+ }>>;
1367
+ fastForward: z.ZodOptional<z.ZodEnum<{
1368
+ auto: "auto";
1369
+ never: "never";
1370
+ required: "required";
1371
+ }>>;
1372
+ canPush: z.ZodOptional<z.ZodBoolean>;
1373
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
1374
+ commit: "commit";
1375
+ fail: "fail";
1376
+ stash: "stash";
1377
+ }>>;
1378
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
1379
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
1380
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
1381
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
1382
+ }, z.core.$strip>>;
1383
+ scope: z.ZodOptional<z.ZodEnum<{
1384
+ plugin: "plugin";
1385
+ project: "project";
1386
+ user: "user";
1387
+ }>>;
1388
+ pluginName: z.ZodOptional<z.ZodString>;
1389
+ }, z.core.$strip>>>;
1390
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1391
+ command: z.ZodString;
1392
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
1393
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1394
+ envFile: z.ZodOptional<z.ZodString>;
1395
+ retries: z.ZodOptional<z.ZodNumber>;
1396
+ }, z.core.$strip>>>;
1397
+ commitMode: z.ZodOptional<z.ZodEnum<{
1398
+ commits: "commits";
1399
+ "draft-prs": "draft-prs";
1400
+ prs: "prs";
1401
+ }>>;
1402
+ enableMergePR: z.ZodOptional<z.ZodBoolean>;
1403
+ minRequiredApprovals: z.ZodOptional<z.ZodNumber>;
1404
+ requireApprovalBeforePR: z.ZodOptional<z.ZodBoolean>;
1405
+ requiredApproverRoleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1406
+ requiredApproverRoleId: z.ZodOptional<z.ZodString>;
1407
+ defaultBranchType: z.ZodOptional<z.ZodEnum<{
1408
+ private: "private";
1409
+ shared: "shared";
1410
+ }>>;
1411
+ dockerImagePath: z.ZodOptional<z.ZodString>;
1412
+ ghcrUsername: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1413
+ ghcrToken: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1414
+ nodeVersion: z.ZodOptional<z.ZodString>;
1415
+ designSystems: z.ZodOptional<z.ZodArray<z.ZodString>>;
1416
+ designTokenStrictMode: z.ZodOptional<z.ZodBoolean>;
1417
+ designModeSelector: z.ZodOptional<z.ZodString>;
1418
+ folders: z.ZodOptional<z.ZodArray<z.ZodObject<{
1419
+ name: z.ZodString;
1420
+ remoteUrl: z.ZodString;
1421
+ mainBranchName: z.ZodOptional<z.ZodString>;
1422
+ includePath: z.ZodOptional<z.ZodString>;
1423
+ addedBy: z.ZodOptional<z.ZodString>;
1424
+ repoProvider: z.ZodOptional<z.ZodString>;
1425
+ repoProtocol: z.ZodOptional<z.ZodString>;
1426
+ enableGit: z.ZodOptional<z.ZodBoolean>;
1427
+ }, z.core.$strip>>>;
1428
+ agentsMD: z.ZodOptional<z.ZodString>;
1429
+ initializationCommand: z.ZodOptional<z.ZodString>;
1430
+ https: z.ZodOptional<z.ZodBoolean>;
1431
+ localHttpsDomain: z.ZodOptional<z.ZodString>;
1432
+ browserAutomation: z.ZodOptional<z.ZodObject<{
1433
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
1434
+ builderApp: z.ZodOptional<z.ZodBoolean>;
1435
+ instructions: z.ZodOptional<z.ZodString>;
1436
+ authUser: z.ZodOptional<z.ZodString>;
1437
+ authPassword: z.ZodOptional<z.ZodString>;
1438
+ }, z.core.$strip>>;
1439
+ prReviewer: z.ZodOptional<z.ZodObject<{
1440
+ enabled: z.ZodBoolean;
1441
+ instructions: z.ZodOptional<z.ZodString>;
1442
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
1443
+ high: "high";
1444
+ low: "low";
1445
+ medium: "medium";
1446
+ }>>;
1447
+ model: z.ZodOptional<z.ZodString>;
1448
+ }, z.core.$strip>>;
1449
+ enableSnapshots: z.ZodOptional<z.ZodBoolean>;
1450
+ postMergeMemories: z.ZodOptional<z.ZodBoolean>;
1451
+ maxAgentCompletions: z.ZodOptional<z.ZodNumber>;
1452
+ enableAgentMode: z.ZodOptional<z.ZodBoolean>;
1453
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodBoolean>;
1454
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodBoolean>;
1455
+ disableDesktopProxying: z.ZodOptional<z.ZodBoolean>;
1456
+ previewUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1457
+ recentUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
1458
+ url: z.ZodString;
1459
+ timestamp: z.ZodNumber;
1460
+ starred: z.ZodBoolean;
1461
+ }, z.core.$strip>>>;
1462
+ httpsServerKeyPath: z.ZodOptional<z.ZodString>;
1463
+ httpsServerCertPath: z.ZodOptional<z.ZodString>;
1464
+ httpsServerCaPath: z.ZodOptional<z.ZodString>;
1465
+ httpsServerKeyContent: z.ZodOptional<z.ZodString>;
1466
+ httpsServerCertContent: z.ZodOptional<z.ZodString>;
1467
+ httpsServerCaContent: z.ZodOptional<z.ZodString>;
1468
+ httpsServerPfx: z.ZodOptional<z.ZodString>;
1469
+ httpsServerPassphrase: z.ZodOptional<z.ZodString>;
1470
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodString>;
1471
+ httpsServerSecureOptions: z.ZodOptional<z.ZodNumber>;
1472
+ httpsServerCiphers: z.ZodOptional<z.ZodString>;
1473
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodBoolean>;
1474
+ httpsServerRequestCert: z.ZodOptional<z.ZodBoolean>;
1475
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodBoolean>;
1476
+ isPreferredForRepo: z.ZodOptional<z.ZodBoolean>;
1477
+ singleTenancyConfig: z.ZodOptional<z.ZodString>;
1478
+ previewPasswordProtection: z.ZodOptional<z.ZodObject<{
1479
+ enabled: z.ZodBoolean;
1480
+ password: z.ZodOptional<z.ZodString>;
1481
+ }, z.core.$strip>>;
1482
+ }, z.core.$strip>;
1483
+ export type ProjectSettingsExternal = z.infer<typeof ProjectSettingsExternalSchema>;
726
1484
  export interface Project {
727
1485
  /** Unique project identifier. */
728
1486
  id: string;
@@ -776,186 +1534,8 @@ export interface Project {
776
1534
  accessMode?: "public" | "private";
777
1535
  /** Fine-grained access control configuration for the project. */
778
1536
  projectAccess?: ProjectAccessControl;
779
- settings: {
780
- /** When true, this is a native (mobile/desktop) app with no web dev server. */
781
- isNativeApp?: boolean;
782
- /** When true, automatically detect the dev server URL from command output (Desktop app only). */
783
- autoDetectDevServer?: boolean;
784
- /** Regex patterns matched against dev command output to detect the server URL. */
785
- autoDetectDevServerPatterns?: string[];
786
- /** Execution environment for the Fusion runtime (cloud, containerized, container-less). */
787
- fusionEnvironment?: FusionExecutionEnvironment;
788
- /** Port the dev server listens on inside the container. Use 0 for auto-assign. Default: 3000. */
789
- devServerPort?: number;
790
- /** @internal Explicit dev server URL; overrides auto-detection. Set by the system, not user-configurable. */
791
- devServerUrl?: string;
792
- /** @internal Whether to reload the preview when files change. Managed by the app UI. */
793
- refreshPreview?: boolean;
794
- /** Commands to install dependencies before starting the dev server (e.g. "npm install"). */
795
- installCommand?: string;
796
- /** @internal Command to run validation checks. Used internally by the setup agent. */
797
- validateCommand?: string;
798
- /** @internal URL origin used for the dev server proxy. Related to Electron proxy configuration. Exposed via specific UI; not a free-text field. */
799
- proxyOrigin?: string;
800
- /** @internal Default proxy origin, resolved at runtime. */
801
- proxyDefaultOrigin?: string;
802
- /** @internal Mode for automatically pushing AI commits. Managed by the app. */
803
- defaultAutoPush?: AutoPushMode;
804
- /** How branch names are generated: ai-session ID, descriptive name, or a custom pattern. */
805
- gitBranchNamingStrategy?: "ai-session" | "branch-name" | "custom";
806
- /** @internal Mise tools and custom scripts run before the setup command. Managed via builder.config.json. */
807
- setupDependencies?: SetupDependency[];
808
- /** Project-level skills to install during Fusion initialization. */
809
- skills?: ProjectSkill[];
810
- gitBranchNamingCustom?: string;
811
- /** When true, the user is prompted to provide a branch name before a new branch is created. */
812
- askUserForBranchName?: boolean;
813
- /** Command to start the dev server (e.g. "npm run dev"). */
814
- devServerCommand?: string;
815
- /** CPU tier for the container: "performance", "standard", or "shared". */
816
- cpuKind?: CpuKind;
817
- /** Number of vCPUs allocated to the container: 1, 2, or 4. */
818
- cpus?: 1 | 2 | 4;
819
- /** RAM allocated to the container in MB. Higher values (8192/16384) are enterprise-only. Default: 4096. */
820
- memory?: 2048 | 4096 | 8192 | 16384;
821
- /** @deprecated Use {@link memory} instead. */
822
- memoryLimit?: 1024 | 2048 | 4096 | 8192 | 16384;
823
- /** Idle behavior for the container: stop, suspend, or stay on. Default: "suspend". */
824
- autoStop?: MachineAutoStop;
825
- /** Base branch used when cloning and creating new branches. Default: "main". */
826
- mainBranchName?: string;
827
- /** Minimum number of machines kept alive at all times. Default: 0. */
828
- minMachinesRunning?: number;
829
- /** Persistent disk size in GB. Default: 5. */
830
- volumeSize?: 5 | 10 | 12 | 15 | 20 | 25 | 30 | 50;
831
- /** @internal Subpath within the repository to use as the working root. */
832
- includePath?: string;
833
- /** Glob patterns limiting which paths are included when cloning or processing. */
834
- includePatterns?: string[];
835
- /** Environment variables injected into the dev container. */
836
- environmentVariables?: EnvironmentVariable[];
837
- /** Files injected into the container during setup, written before installCommand runs. */
838
- fileOverrides?: FileOverride[];
839
- /** Structured instruction rules applied to AI sessions (name, content, scope, tool allowlists). */
840
- customInstructions?: CustomInstruction[];
841
- /** Definitions for specialized sub-agents with custom system prompts, tools, and model overrides. */
842
- customAgents?: CustomAgentDefinition[];
843
- /** How the AI commits changes: direct commits, draft PRs, or ready-for-review PRs. Default: "draft-prs". */
844
- commitMode?: CommitMode;
845
- /** @internal Default for new branches' autoCloseBranchOnMerge. When false, merging a PR does not archive the branch. Read only at branch-creation time. Default: true. */
846
- autoCloseBranchOnMerge?: boolean;
847
- /** Whether merging the PR from the editor is enabled. */
848
- enableMergePR?: boolean;
849
- /** Default visibility for new branches: shared (team-visible) or private. Default: "private". */
850
- defaultBranchType?: "shared" | "private";
851
- /** Custom container image path (e.g. ghcr.io/org/image:tag). Overrides nodeVersion when set. */
852
- dockerImagePath?: string;
853
- /** Node.js version to use in the container (e.g. "22"). Ignored when dockerImagePath is set. */
854
- nodeVersion?: string;
855
- /** Named design systems to expose for AI assistance. */
856
- designSystems?: string[];
857
- /** @internal Use @antfu/ni for package management instead of direct npm/yarn/pnpm commands. */
858
- useNI?: boolean;
859
- /** Additional repositories cloned alongside the main repo for extra AI context. */
860
- folders?: Array<{
861
- /** Identifier for this workspace folder (kebab/snake case recommended). */
862
- name: string;
863
- /** Full clone URL of the repository (must end in .git for GitHub/GitLab). */
864
- remoteUrl: string;
865
- /** Base branch to clone. Default: "main". */
866
- mainBranchName?: string;
867
- /** Subpath within this repo to use as the working root. */
868
- includePath?: string;
869
- /** User ID of whoever added this folder. */
870
- addedBy?: string;
871
- /** Detected or specified git provider. */
872
- repoProvider?: string;
873
- /** Clone protocol: "https" or "ssh". */
874
- repoProtocol?: string;
875
- /** Whether to track git history for this folder. */
876
- enableGit?: boolean;
877
- }>;
878
- /** Freeform workspace-level AI instructions, equivalent to an AGENTS.md file. */
879
- agentsMD?: string;
880
- /** One-time command run after the repo is first cloned, before installCommand. */
881
- initializationCommand?: string;
882
- /** @internal Subpath within the repo recommended by auto-detection as the project root. */
883
- repoSubpath?: string;
884
- /** @internal Workspace root recommended by auto-setup analysis; not user-configurable. */
885
- recommendedRoot?: string;
886
- /** Enable HTTPS for the dev server proxy. Default: false. */
887
- https?: boolean;
888
- /** Custom local domain for HTTPS (e.g. "myapp.local"). */
889
- localHttpsDomain?: string;
890
- /** Browser automation configuration for AI-driven end-to-end testing and visual verification. */
891
- browserAutomation?: {
892
- /** Run browser automation tasks as background agents. */
893
- backgroundAgents?: boolean;
894
- /** Custom instructions for the browser agent. */
895
- instructions?: string;
896
- /** Username for sites requiring authentication. */
897
- authUser?: string;
898
- /** Password for sites requiring authentication. */
899
- authPassword?: string;
900
- };
901
- /** Automated PR reviewer configuration. */
902
- prReviewer?: {
903
- /** Whether the automated reviewer is enabled. */
904
- enabled: boolean;
905
- /** Custom review guidelines for the reviewer. */
906
- instructions?: string;
907
- /** How deeply to review: "low", "medium" (default), or "high". */
908
- reviewEffort?: ReviewEffort;
909
- };
910
- /** Enable volume snapshots so session state can be saved and restored. */
911
- enableSnapshots?: boolean;
912
- /** When true, the AI captures memories after a branch is merged for use in future sessions. */
913
- postMergeMemories?: boolean;
914
- /** @internal Custom instructions for AI-generated commit messages. */
915
- commitInstructions?: string;
916
- /** Maximum number of AI completions allowed per agent session. */
917
- maxAgentCompletions?: number;
918
- /** @internal Bypass command security restrictions. Admin use only. */
919
- skipCommandSecurity?: boolean;
920
- /** File path to the HTTPS private key. */
921
- httpsServerKeyPath?: string;
922
- /** File path to the HTTPS certificate. */
923
- httpsServerCertPath?: string;
924
- /** File path to the HTTPS CA certificate. */
925
- httpsServerCaPath?: string;
926
- /** HTTPS private key content as a string (alternative to httpsServerKeyPath). */
927
- httpsServerKeyContent?: string;
928
- /** HTTPS certificate content as a string (alternative to httpsServerCertPath). */
929
- httpsServerCertContent?: string;
930
- /** HTTPS CA certificate content as a string (alternative to httpsServerCaPath). */
931
- httpsServerCaContent?: string;
932
- /** PFX/PKCS12 bundle for HTTPS. */
933
- httpsServerPfx?: string;
934
- /** Passphrase for an encrypted HTTPS private key or PFX. */
935
- httpsServerPassphrase?: string;
936
- /** Secure protocol string passed to Node.js https.createServer (e.g. "TLSv1_2_method"). */
937
- httpsServerSecureProtocol?: string;
938
- /** Numeric TLS options bitmask passed to Node.js https.createServer. */
939
- httpsServerSecureOptions?: number;
940
- /** Cipher suite string (OpenSSL format) for the HTTPS server. */
941
- httpsServerCiphers?: string;
942
- /** When true, the server's cipher order takes precedence over the client's. */
943
- httpsServerHonorCipherOrder?: boolean;
944
- /** When true, the server requests a client certificate. */
945
- httpsServerRequestCert?: boolean;
946
- /** When false, self-signed or untrusted client certificates are accepted. */
947
- httpsServerRejectUnauthorized?: boolean;
948
- /**
949
- * When true, this project is the preferred project for its connected repository.
950
- * Agents will pick this project when asked to do something with the connected repository.
951
- */
952
- isPreferredForRepo?: boolean;
953
- /** Single tenancy config ID for this project. Overrides the space-level defaultSingleTenancyConfig.
954
- * References a document in the singleTenancyConfigurations collection. */
955
- singleTenancyConfig?: string;
956
- /** Password-protect the preview URL. */
957
- previewPasswordProtection?: PreviewPasswordProtection;
958
- };
1537
+ /** Project-level configuration. Source of truth is {@link ProjectSettingsSchema}. */
1538
+ settings: ProjectSettings;
959
1539
  /** URL of the project's screenshot thumbnail, or null if none has been captured. */
960
1540
  screenshot: string | null;
961
1541
  /** When true, this project is a built-in example shown to new users. */
@@ -1571,17 +2151,483 @@ export declare const ProjectHostingSchema: z.ZodObject<{
1571
2151
  user: "user";
1572
2152
  }>>;
1573
2153
  systemUnpublishReason: z.ZodOptional<z.ZodEnum<{
1574
- "bandwidth-cap": "bandwidth-cap";
1575
- "web-request-cap": "web-request-cap";
2154
+ "zero-credits": "zero-credits";
1576
2155
  }>>;
1577
2156
  domainIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
1578
2157
  }, z.core.$strip>;
1579
2158
  export type ProjectHosting = z.infer<typeof ProjectHostingSchema>;
2159
+ /**
2160
+ * Client-writable subset of {@link ProjectHostingSchema}. Used for `PATCH`
2161
+ * payloads so external callers can't write system-owned hosting fields.
2162
+ */
2163
+ export declare const ProjectHostingExternalSchema: z.ZodObject<{
2164
+ enabled: z.ZodOptional<z.ZodBoolean>;
2165
+ buildConfig: z.ZodOptional<z.ZodObject<{
2166
+ buildCommand: z.ZodOptional<z.ZodString>;
2167
+ buildOutputDir: z.ZodOptional<z.ZodString>;
2168
+ nodeVersion: z.ZodOptional<z.ZodString>;
2169
+ }, z.core.$strip>>;
2170
+ environment: z.ZodOptional<z.ZodObject<{
2171
+ build: z.ZodOptional<z.ZodArray<z.ZodObject<{
2172
+ key: z.ZodString;
2173
+ value: z.ZodString;
2174
+ isSecret: z.ZodBoolean;
2175
+ placeholder: z.ZodOptional<z.ZodBoolean>;
2176
+ explanation: z.ZodOptional<z.ZodString>;
2177
+ }, z.core.$strip>>>;
2178
+ prod: z.ZodOptional<z.ZodArray<z.ZodObject<{
2179
+ key: z.ZodString;
2180
+ value: z.ZodString;
2181
+ isSecret: z.ZodBoolean;
2182
+ placeholder: z.ZodOptional<z.ZodBoolean>;
2183
+ explanation: z.ZodOptional<z.ZodString>;
2184
+ }, z.core.$strip>>>;
2185
+ }, z.core.$strip>>;
2186
+ autoDeploy: z.ZodOptional<z.ZodBoolean>;
2187
+ }, z.core.$strip>;
2188
+ export type ProjectHostingExternal = z.infer<typeof ProjectHostingExternalSchema>;
1580
2189
  /**
1581
2190
  * Canonical "is this project hostable" predicate. Keys off the explicit
1582
2191
  * `hosting.enabled` flag rather than inferring from build-config presence.
1583
2192
  */
1584
2193
  export declare const isProjectHostable: (hosting: Pick<ProjectHosting, "enabled"> | undefined | null) => boolean;
2194
+ /**
2195
+ * Validates the body of `PATCH /projects/:projectId`. The schema's field set is
2196
+ * the allowlist of client-writable fields: unknown keys are stripped on parse,
2197
+ * so callers can't write arbitrary `Project` fields. `settings` and `hosting`
2198
+ * are partial — a PATCH can touch a subset of sub-fields.
2199
+ */
2200
+ export declare const UpdateProjectOptionsSchema: z.ZodObject<{
2201
+ projectId: z.ZodString;
2202
+ name: z.ZodOptional<z.ZodString>;
2203
+ settings: z.ZodOptional<z.ZodObject<{
2204
+ isNativeApp: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2205
+ autoDetectDevServer: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2206
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2207
+ fusionEnvironment: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2208
+ cloud: "cloud";
2209
+ "cloud-v2": "cloud-v2";
2210
+ "container-less": "container-less";
2211
+ containerized: "containerized";
2212
+ }>>>;
2213
+ devServerPort: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2214
+ installCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2215
+ installNpmrc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2216
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2217
+ "ai-session": "ai-session";
2218
+ "branch-name": "branch-name";
2219
+ custom: "custom";
2220
+ }>>>;
2221
+ hostRequirements: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2222
+ name: z.ZodString;
2223
+ checkScript: z.ZodString;
2224
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2225
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2226
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2227
+ linux: "linux";
2228
+ macos: "macos";
2229
+ windows: "windows";
2230
+ }>>>;
2231
+ description: z.ZodOptional<z.ZodString>;
2232
+ }, z.core.$strip>>>>;
2233
+ skills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
2234
+ key: z.ZodString;
2235
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2236
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
2237
+ source: z.ZodString;
2238
+ }, z.core.$strip>, z.ZodObject<{
2239
+ key: z.ZodString;
2240
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2241
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
2242
+ type: z.ZodLiteral<"npm">;
2243
+ package: z.ZodString;
2244
+ version: z.ZodOptional<z.ZodString>;
2245
+ }, z.core.$strip>, z.ZodObject<{
2246
+ key: z.ZodString;
2247
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2248
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
2249
+ type: z.ZodLiteral<"github">;
2250
+ repo: z.ZodString;
2251
+ ref: z.ZodOptional<z.ZodString>;
2252
+ path: z.ZodOptional<z.ZodString>;
2253
+ }, z.core.$strip>, z.ZodObject<{
2254
+ key: z.ZodString;
2255
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
2256
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
2257
+ type: z.ZodLiteral<"url">;
2258
+ url: z.ZodString;
2259
+ }, z.core.$strip>]>>>>;
2260
+ gitBranchNamingCustom: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2261
+ askUserForBranchName: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2262
+ allowBranchFromRemote: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2263
+ devServerCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2264
+ screenshotCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2265
+ interactCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2266
+ serverTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2267
+ cpuKind: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2268
+ performance: "performance";
2269
+ shared: "shared";
2270
+ standard: "standard";
2271
+ }>>>;
2272
+ cpus: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>>;
2273
+ memory: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
2274
+ memoryLimit: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
2275
+ autoStop: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2276
+ off: "off";
2277
+ stop: "stop";
2278
+ suspend: "suspend";
2279
+ }>>>;
2280
+ mainBranchName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2281
+ minMachinesRunning: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2282
+ volumeSize: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<5>, z.ZodLiteral<10>, z.ZodLiteral<12>, z.ZodLiteral<15>, z.ZodLiteral<20>, z.ZodLiteral<25>, z.ZodLiteral<30>, z.ZodLiteral<50>]>>>;
2283
+ includePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2284
+ errorIgnorePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2285
+ environmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2286
+ key: z.ZodString;
2287
+ value: z.ZodString;
2288
+ isSecret: z.ZodBoolean;
2289
+ placeholder: z.ZodOptional<z.ZodBoolean>;
2290
+ explanation: z.ZodOptional<z.ZodString>;
2291
+ }, z.core.$strip>>>>;
2292
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2293
+ key: z.ZodString;
2294
+ description: z.ZodOptional<z.ZodString>;
2295
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
2296
+ }, z.core.$strip>>>>;
2297
+ fileOverrides: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
2298
+ path: z.ZodString;
2299
+ content: z.ZodString;
2300
+ }, z.core.$strip>, z.ZodObject<{
2301
+ path: z.ZodString;
2302
+ base64: z.ZodString;
2303
+ }, z.core.$strip>]>>>>;
2304
+ customInstructions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2305
+ id: z.ZodString;
2306
+ name: z.ZodString;
2307
+ content: z.ZodString;
2308
+ type: z.ZodOptional<z.ZodEnum<{
2309
+ "agent-mode": "agent-mode";
2310
+ always: "always";
2311
+ }>>;
2312
+ filePath: z.ZodOptional<z.ZodString>;
2313
+ glob: z.ZodOptional<z.ZodString>;
2314
+ description: z.ZodOptional<z.ZodString>;
2315
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
2316
+ hideUI: z.ZodOptional<z.ZodBoolean>;
2317
+ isSkill: z.ZodOptional<z.ZodBoolean>;
2318
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
2319
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
2320
+ scope: z.ZodOptional<z.ZodEnum<{
2321
+ builtin: "builtin";
2322
+ plugin: "plugin";
2323
+ project: "project";
2324
+ user: "user";
2325
+ }>>;
2326
+ pluginName: z.ZodOptional<z.ZodString>;
2327
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
2328
+ name: z.ZodString;
2329
+ description: z.ZodOptional<z.ZodString>;
2330
+ }, z.core.$strip>>>;
2331
+ }, z.core.$strip>>>>;
2332
+ customAgents: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2333
+ name: z.ZodString;
2334
+ description: z.ZodOptional<z.ZodString>;
2335
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
2336
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
2337
+ model: z.ZodOptional<z.ZodString>;
2338
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
2339
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
2340
+ "browser-testing": "browser-testing";
2341
+ "builder-code": "builder-code";
2342
+ "builder-code-panel": "builder-code-panel";
2343
+ "builder-publish-integration": "builder-publish-integration";
2344
+ cli: "cli";
2345
+ "code-review-orchestrator": "code-review-orchestrator";
2346
+ "create-app-firebase": "create-app-firebase";
2347
+ "create-app-lovable": "create-app-lovable";
2348
+ "design-system-indexer": "design-system-indexer";
2349
+ "dsi-mcp": "dsi-mcp";
2350
+ "editor-ai": "editor-ai";
2351
+ fusion: "fusion";
2352
+ "org-agent": "org-agent";
2353
+ "org-worker": "org-worker";
2354
+ "project-configuration": "project-configuration";
2355
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
2356
+ "repo-indexing": "repo-indexing";
2357
+ "setup-project": "setup-project";
2358
+ unknown: "unknown";
2359
+ }>, z.ZodTemplateLiteral<"browser-testing-agent" | "builder-code-agent" | "builder-code-panel-agent" | "builder-publish-integration-agent" | "cli-agent" | "code-review-orchestrator-agent" | "create-app-firebase-agent" | "create-app-lovable-agent" | "design-system-indexer-agent" | "dsi-mcp-agent" | "editor-ai-agent" | "fusion-agent" | "org-agent-agent" | "org-worker-agent" | "project-configuration-agent" | "projects-scheduler-memory-extraction-agent" | "repo-indexing-agent" | "setup-project-agent" | "unknown-agent">]>>;
2360
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
2361
+ needValidation: z.ZodOptional<z.ZodBoolean>;
2362
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
2363
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
2364
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
2365
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
2366
+ queueBehavior: z.ZodOptional<z.ZodObject<{
2367
+ schedule: z.ZodEnum<{
2368
+ interrupt: "interrupt";
2369
+ "interrupt-clear": "interrupt-clear";
2370
+ "interrupt-replace": "interrupt-replace";
2371
+ "next-turn": "next-turn";
2372
+ "until-idle": "until-idle";
2373
+ }>;
2374
+ coalesce: z.ZodEnum<{
2375
+ merge: "merge";
2376
+ "preserve-order": "preserve-order";
2377
+ "replace-latest": "replace-latest";
2378
+ }>;
2379
+ }, z.core.$strip>>;
2380
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
2381
+ schedule: z.ZodEnum<{
2382
+ interrupt: "interrupt";
2383
+ "interrupt-clear": "interrupt-clear";
2384
+ "interrupt-replace": "interrupt-replace";
2385
+ "next-turn": "next-turn";
2386
+ "until-idle": "until-idle";
2387
+ }>;
2388
+ coalesce: z.ZodEnum<{
2389
+ merge: "merge";
2390
+ "preserve-order": "preserve-order";
2391
+ "replace-latest": "replace-latest";
2392
+ }>;
2393
+ }, z.core.$strip>]>>;
2394
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
2395
+ filePath: z.ZodOptional<z.ZodString>;
2396
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
2397
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
2398
+ reasoning: z.ZodOptional<z.ZodEnum<{
2399
+ auto: "auto";
2400
+ high: "high";
2401
+ low: "low";
2402
+ max: "max";
2403
+ medium: "medium";
2404
+ minimal: "minimal";
2405
+ none: "none";
2406
+ xhigh: "xhigh";
2407
+ }>>;
2408
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
2409
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
2410
+ ai: "ai";
2411
+ both: "both";
2412
+ main: "main";
2413
+ }>>;
2414
+ fastForward: z.ZodOptional<z.ZodEnum<{
2415
+ auto: "auto";
2416
+ never: "never";
2417
+ required: "required";
2418
+ }>>;
2419
+ canPush: z.ZodOptional<z.ZodBoolean>;
2420
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
2421
+ commit: "commit";
2422
+ fail: "fail";
2423
+ stash: "stash";
2424
+ }>>;
2425
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
2426
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
2427
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
2428
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
2429
+ }, z.core.$strip>>;
2430
+ scope: z.ZodOptional<z.ZodEnum<{
2431
+ plugin: "plugin";
2432
+ project: "project";
2433
+ user: "user";
2434
+ }>>;
2435
+ pluginName: z.ZodOptional<z.ZodString>;
2436
+ }, z.core.$strip>>>>;
2437
+ mcpServers: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2438
+ command: z.ZodString;
2439
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
2440
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2441
+ envFile: z.ZodOptional<z.ZodString>;
2442
+ retries: z.ZodOptional<z.ZodNumber>;
2443
+ }, z.core.$strip>>>>;
2444
+ commitMode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2445
+ commits: "commits";
2446
+ "draft-prs": "draft-prs";
2447
+ prs: "prs";
2448
+ }>>>;
2449
+ enableMergePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2450
+ minRequiredApprovals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2451
+ requireApprovalBeforePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2452
+ requiredApproverRoleIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2453
+ requiredApproverRoleId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2454
+ defaultBranchType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
2455
+ private: "private";
2456
+ shared: "shared";
2457
+ }>>>;
2458
+ dockerImagePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2459
+ ghcrUsername: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2460
+ ghcrToken: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2461
+ nodeVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2462
+ designSystems: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2463
+ designTokenStrictMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2464
+ designModeSelector: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2465
+ folders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2466
+ name: z.ZodString;
2467
+ remoteUrl: z.ZodString;
2468
+ mainBranchName: z.ZodOptional<z.ZodString>;
2469
+ includePath: z.ZodOptional<z.ZodString>;
2470
+ addedBy: z.ZodOptional<z.ZodString>;
2471
+ repoProvider: z.ZodOptional<z.ZodString>;
2472
+ repoProtocol: z.ZodOptional<z.ZodString>;
2473
+ enableGit: z.ZodOptional<z.ZodBoolean>;
2474
+ }, z.core.$strip>>>>;
2475
+ agentsMD: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2476
+ initializationCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2477
+ https: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2478
+ localHttpsDomain: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2479
+ browserAutomation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2480
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
2481
+ builderApp: z.ZodOptional<z.ZodBoolean>;
2482
+ instructions: z.ZodOptional<z.ZodString>;
2483
+ authUser: z.ZodOptional<z.ZodString>;
2484
+ authPassword: z.ZodOptional<z.ZodString>;
2485
+ }, z.core.$strip>>>;
2486
+ prReviewer: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2487
+ enabled: z.ZodBoolean;
2488
+ instructions: z.ZodOptional<z.ZodString>;
2489
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
2490
+ high: "high";
2491
+ low: "low";
2492
+ medium: "medium";
2493
+ }>>;
2494
+ model: z.ZodOptional<z.ZodString>;
2495
+ }, z.core.$strip>>>;
2496
+ enableSnapshots: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2497
+ postMergeMemories: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2498
+ maxAgentCompletions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2499
+ enableAgentMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2500
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2501
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2502
+ disableDesktopProxying: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2503
+ previewUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2504
+ recentUrls: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
2505
+ url: z.ZodString;
2506
+ timestamp: z.ZodNumber;
2507
+ starred: z.ZodBoolean;
2508
+ }, z.core.$strip>>>>;
2509
+ httpsServerKeyPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2510
+ httpsServerCertPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2511
+ httpsServerCaPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2512
+ httpsServerKeyContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2513
+ httpsServerCertContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2514
+ httpsServerCaContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2515
+ httpsServerPfx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2516
+ httpsServerPassphrase: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2517
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2518
+ httpsServerSecureOptions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2519
+ httpsServerCiphers: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2520
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2521
+ httpsServerRequestCert: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2522
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2523
+ isPreferredForRepo: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2524
+ singleTenancyConfig: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2525
+ previewPasswordProtection: z.ZodOptional<z.ZodObject<{
2526
+ enabled: z.ZodOptional<z.ZodBoolean>;
2527
+ password: z.ZodOptional<z.ZodString>;
2528
+ }, z.core.$strip>>;
2529
+ }, z.core.$strip>>;
2530
+ hosting: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2531
+ enabled: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2532
+ buildConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2533
+ buildCommand: z.ZodOptional<z.ZodString>;
2534
+ buildOutputDir: z.ZodOptional<z.ZodString>;
2535
+ nodeVersion: z.ZodOptional<z.ZodString>;
2536
+ }, z.core.$strip>>>;
2537
+ environment: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2538
+ build: z.ZodOptional<z.ZodArray<z.ZodObject<{
2539
+ key: z.ZodString;
2540
+ value: z.ZodString;
2541
+ isSecret: z.ZodBoolean;
2542
+ placeholder: z.ZodOptional<z.ZodBoolean>;
2543
+ explanation: z.ZodOptional<z.ZodString>;
2544
+ }, z.core.$strip>>>;
2545
+ prod: z.ZodOptional<z.ZodArray<z.ZodObject<{
2546
+ key: z.ZodString;
2547
+ value: z.ZodString;
2548
+ isSecret: z.ZodBoolean;
2549
+ placeholder: z.ZodOptional<z.ZodBoolean>;
2550
+ explanation: z.ZodOptional<z.ZodString>;
2551
+ }, z.core.$strip>>>;
2552
+ }, z.core.$strip>>>;
2553
+ autoDeploy: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2554
+ }, z.core.$strip>>>;
2555
+ deleteEnvironmentVariableKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
2556
+ deleteHostingEnvironmentVariableKeys: z.ZodOptional<z.ZodObject<{
2557
+ build: z.ZodOptional<z.ZodArray<z.ZodString>>;
2558
+ prod: z.ZodOptional<z.ZodArray<z.ZodString>>;
2559
+ }, z.core.$strip>>;
2560
+ snapshotVolume: z.ZodOptional<z.ZodObject<{
2561
+ volumeId: z.ZodString;
2562
+ appName: z.ZodString;
2563
+ createdAt: z.ZodNumber;
2564
+ }, z.core.$strip>>;
2565
+ pinned: z.ZodOptional<z.ZodBoolean>;
2566
+ pinOrder: z.ZodOptional<z.ZodNumber>;
2567
+ archived: z.ZodOptional<z.ZodBoolean>;
2568
+ needSetup: z.ZodOptional<z.ZodBoolean>;
2569
+ repoFullName: z.ZodOptional<z.ZodString>;
2570
+ repoUrl: z.ZodOptional<z.ZodString>;
2571
+ repoAddedBy: z.ZodOptional<z.ZodString>;
2572
+ templateRepoUrl: z.ZodOptional<z.ZodString>;
2573
+ repoProvider: z.ZodOptional<z.ZodString>;
2574
+ repoPrivate: z.ZodOptional<z.ZodBoolean>;
2575
+ repoDescription: z.ZodOptional<z.ZodString>;
2576
+ screenshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2577
+ isExample: z.ZodOptional<z.ZodBoolean>;
2578
+ isPublic: z.ZodOptional<z.ZodBoolean>;
2579
+ localPath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2580
+ domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
2581
+ accessMode: z.ZodOptional<z.ZodEnum<{
2582
+ private: "private";
2583
+ public: "public";
2584
+ }>>;
2585
+ projectAccess: z.ZodOptional<z.ZodObject<{
2586
+ roles: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
2587
+ view: z.ZodOptional<z.ZodBoolean>;
2588
+ editCode: z.ZodOptional<z.ZodBoolean>;
2589
+ sendPullRequests: z.ZodOptional<z.ZodBoolean>;
2590
+ createBranches: z.ZodOptional<z.ZodBoolean>;
2591
+ modifyMcpServers: z.ZodOptional<z.ZodBoolean>;
2592
+ modifyWorkflowIntegrations: z.ZodOptional<z.ZodBoolean>;
2593
+ modifyProjectSettings: z.ZodOptional<z.ZodBoolean>;
2594
+ fusionHostingPublish: z.ZodOptional<z.ZodBoolean>;
2595
+ }, z.core.$strip>>>;
2596
+ users: z.ZodRecord<z.ZodString, z.ZodObject<{
2597
+ view: z.ZodOptional<z.ZodBoolean>;
2598
+ editCode: z.ZodOptional<z.ZodBoolean>;
2599
+ sendPullRequests: z.ZodOptional<z.ZodBoolean>;
2600
+ createBranches: z.ZodOptional<z.ZodBoolean>;
2601
+ modifyMcpServers: z.ZodOptional<z.ZodBoolean>;
2602
+ modifyWorkflowIntegrations: z.ZodOptional<z.ZodBoolean>;
2603
+ modifyProjectSettings: z.ZodOptional<z.ZodBoolean>;
2604
+ fusionHostingPublish: z.ZodOptional<z.ZodBoolean>;
2605
+ }, z.core.$strip>>;
2606
+ }, z.core.$strip>>;
2607
+ codeOnlyMode: z.ZodOptional<z.ZodBoolean>;
2608
+ codeOnlyReason: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2609
+ "code-change-required": "code-change-required";
2610
+ "empty-project": "empty-project";
2611
+ failed: "failed";
2612
+ "mobile-project": "mobile-project";
2613
+ "no-frontend": "no-frontend";
2614
+ other: "other";
2615
+ started: "started";
2616
+ "user-question": "user-question";
2617
+ }>>>;
2618
+ mobileOnlyDetected: z.ZodOptional<z.ZodBoolean>;
2619
+ autoSetupStatus: z.ZodOptional<z.ZodEnum<{
2620
+ completed: "completed";
2621
+ error: "error";
2622
+ idle: "idle";
2623
+ "needs-input": "needs-input";
2624
+ running: "running";
2625
+ }>>;
2626
+ userInitiatedAutoSetup: z.ZodOptional<z.ZodBoolean>;
2627
+ autoApplySetup: z.ZodOptional<z.ZodBoolean>;
2628
+ hidden: z.ZodOptional<z.ZodBoolean>;
2629
+ }, z.core.$strip>;
2630
+ export type UpdateProjectOptions = z.infer<typeof UpdateProjectOptionsSchema>;
1585
2631
  /**
1586
2632
  * A single deploy record, stored at `deploys/{deployId}`. The Deploy.id is the document key.
1587
2633
  */