@builder.io/ai-utils 0.91.1 → 0.92.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
@@ -217,7 +217,17 @@ export interface CleanupCompletedMessage extends BaseMessage {
217
217
  * Messages sent by the container orchestrator.
218
218
  */
219
219
  export type ProjectsChunkMessage = InitializingMessage | FetchingGithubTokenMessage | FetchingFusionKeyMessage | CheckingAppMessage | CleaningUpAppMessage | CreatingAppMessage | CheckingIPMessage | AllocatingIPMessage | CheckingMachineMessage | CheckingVolumeMessage | ForkingVolumeMessage | RetryingWithNewRegionMessage | WaitingBeforePollingMessage | PollingMachineStatusMessage | WarningStateMessage | PingMessage | DebugMessage | ErrorMessage | InfoMessage | WarningMessage | MachineStatusMessage | LogsMessage | ConfigStatusMessage | AppCreatedMessage | MachineCreatedMessage | IpAllocatedMessage | VolumeForkedMessage | ReadyMessage | ErrorStateMessage | CleanupCompletedMessage;
220
- export type GitProvider = "github" | "selfHostedGithub" | "bitbucket" | "gitlab" | "azure" | "internalHost" | "custom";
220
+ export declare const GIT_PROVIDERS: readonly ["github", "selfHostedGithub", "bitbucket", "gitlab", "azure", "internalHost", "custom"];
221
+ export declare const GitProviderSchema: z.ZodEnum<{
222
+ azure: "azure";
223
+ bitbucket: "bitbucket";
224
+ custom: "custom";
225
+ github: "github";
226
+ gitlab: "gitlab";
227
+ internalHost: "internalHost";
228
+ selfHostedGithub: "selfHostedGithub";
229
+ }>;
230
+ export type GitProvider = z.infer<typeof GitProviderSchema>;
221
231
  export interface GitConfig {
222
232
  url: string;
223
233
  provider: GitProvider | "unknown";
@@ -1593,9 +1603,32 @@ export interface Project {
1593
1603
  /** Settings related to Fusion first class hosting */
1594
1604
  hosting?: ProjectHosting;
1595
1605
  database?: ProjectDatabase;
1606
+ /**
1607
+ * Version of `@agent-native/core` this project runs, and where we learned it.
1608
+ * Absent for projects created before the writer landed, which reads as
1609
+ * "gateway unsupported" — correct, since those predate the starter bump too.
1610
+ */
1611
+ coreVersion?: ProjectCoreVersion;
1596
1612
  /** @deprecated Use `codeOnlyReason` instead */
1597
1613
  mobileOnlyDetected?: boolean;
1598
1614
  }
1615
+ /**
1616
+ * The `@agent-native/core` version a project runs.
1617
+ *
1618
+ * `source: "package.json"` is resolved at project creation from the semver
1619
+ * *floor* of `dependencies["@agent-native/core"]` — a project can never run
1620
+ * below its own declared floor, so a range is as trustworthy as a pin.
1621
+ * `source: "pod"` is reported by a deploy pod from the actually-installed
1622
+ * `node_modules/@agent-native/core/package.json` and is authoritative, but can
1623
+ * never serve the first publish, which is why create-time exists.
1624
+ */
1625
+ export interface ProjectCoreVersion {
1626
+ /** Concrete `x.y.z`, never a range. */
1627
+ version: string;
1628
+ source: "package.json" | "pod";
1629
+ /** Epoch ms. */
1630
+ resolvedAt: number;
1631
+ }
1599
1632
  export interface ProjectDatabase {
1600
1633
  ownerId: string;
1601
1634
  neonOrgId: string;
@@ -1738,6 +1771,73 @@ export interface ProjectPrivate {
1738
1771
  * hashes). Server-only; UI reads via GET /projects/hosting/site-access.
1739
1772
  */
1740
1773
  siteAccessControl?: SiteAccessControl;
1774
+ /**
1775
+ * `BETTER_AUTH_SECRET` for the project's hosted site and dev-preview pod.
1776
+ * Minted once and never rotated: it signs Better Auth session cookies and is
1777
+ * the fallback encryption key for the app's `app_secrets` table, so a new
1778
+ * value logs every user out and can leave stored secrets undecryptable.
1779
+ * Lives here rather than on the project doc because hosting env masking is
1780
+ * LD-gated and defaults off in code.
1781
+ */
1782
+ betterAuthSecret?: string;
1783
+ /**
1784
+ * The published site's Builder gateway PAT. Written by the mint/revoke path;
1785
+ * read by the deploy pipeline (which must re-emit the plaintext on every
1786
+ * deploy, because Netlify env sync deletes any var it does not supply) and by
1787
+ * `GET /projects/hosting/ai-usage` (status only — never the plaintext).
1788
+ */
1789
+ gatewayToken?: ProjectGatewayToken;
1790
+ /**
1791
+ * The dev-preview pod's Builder gateway PAT — a SEPARATE document from
1792
+ * {@link ProjectPrivate.gatewayToken}, not a shared one.
1793
+ *
1794
+ * Sharing the published site's token would let a revoke or a mode change kill
1795
+ * in-editor AI chat, and the gateway's per-token daily cap keys each document
1796
+ * independently. Minted on first preview, unaffected by mode changes,
1797
+ * unpublish, system-suspend or the revoke button, and revoked (not merely
1798
+ * cleared) on project delete — clearing the field alone would leave a live
1799
+ * space-scoped bearer token outliving the project.
1800
+ */
1801
+ previewGatewayToken?: ProjectGatewayToken;
1802
+ }
1803
+ /**
1804
+ * A project-scoped gateway personal access token, stored server-only in
1805
+ * `projects_private/{projectId}`.
1806
+ *
1807
+ * `active`/`lastUsed` are deliberately NOT denormalized here: they are written
1808
+ * at mint and revoke only, so they go stale in exactly the case they would be
1809
+ * added for (the minting user deactivating the token from their own PAT list).
1810
+ * `personalAccessTokens/{sha256(token)}` is authoritative and every reader
1811
+ * already holds the plaintext, so readers recompute the hash instead.
1812
+ */
1813
+ export interface ProjectGatewayToken {
1814
+ /** Raw `btk-…` token. Server-only; must never enter a client response. */
1815
+ token: string;
1816
+ /** `uuidv4()` revoke handle — safe to show a user, unlike the hash. */
1817
+ tokenId: string;
1818
+ /** Minting user's uid. */
1819
+ createdBy: string;
1820
+ /** Epoch ms. */
1821
+ createdAt: number;
1822
+ /**
1823
+ * Set only when the user asked us to stop (the revoke endpoint, or leaving
1824
+ * credits mode). Unpublish and system-suspend deactivate the PAT and leave
1825
+ * this false, so the next deploy re-mints instead of shipping a credits site
1826
+ * with no AI credential.
1827
+ */
1828
+ revoked?: boolean;
1829
+ /**
1830
+ * Set when *we* took the token down alongside the site (unpublish,
1831
+ * system-suspend), as opposed to the user revoking or deactivating it from
1832
+ * their own PAT list. Both of those leave an inactive PAT doc and
1833
+ * `revoked: false`, so without this marker the deploy pipeline cannot tell
1834
+ * "re-mint on the next publish" from "the user killed it, emit nothing".
1835
+ *
1836
+ * System-restore clears it by re-activating the *same* PAT doc: restore is
1837
+ * routing-only with no rebuild, so the live site's env still holds this exact
1838
+ * plaintext and re-minting there would hand it a token it never receives.
1839
+ */
1840
+ suspended?: boolean;
1741
1841
  }
1742
1842
  export interface CreateProjectOptions {
1743
1843
  name?: string;
@@ -2129,6 +2229,19 @@ export declare const ProjectHostingBuildConfigSchema: z.ZodObject<{
2129
2229
  nodeVersion: z.ZodOptional<z.ZodString>;
2130
2230
  }, z.core.$strip>;
2131
2231
  export type ProjectHostingBuildConfig = z.infer<typeof ProjectHostingBuildConfigSchema>;
2232
+ /**
2233
+ * Who pays for AI usage on a project's published site.
2234
+ *
2235
+ * `undefined` is reserved for headless publishes that never reach
2236
+ * `POST /projects/hosting/ai-usage`: it is the signal that makes the publish
2237
+ * step fire, so every interactive path writes a value, `"skip"` included.
2238
+ */
2239
+ export declare const AiPaymentModeSchema: z.ZodEnum<{
2240
+ "builder-credits": "builder-credits";
2241
+ byok: "byok";
2242
+ skip: "skip";
2243
+ }>;
2244
+ export type AiPaymentMode = z.infer<typeof AiPaymentModeSchema>;
2132
2245
  /**
2133
2246
  * Hosting configuration for a project, stored at `projects/{projectId}.hosting`.
2134
2247
  */
@@ -2176,6 +2289,7 @@ export declare const ProjectHostingSchema: z.ZodObject<{
2176
2289
  queued: "queued";
2177
2290
  uploading: "uploading";
2178
2291
  }>>;
2292
+ publishedBranchId: z.ZodOptional<z.ZodString>;
2179
2293
  publishedCommit: z.ZodOptional<z.ZodString>;
2180
2294
  autoDeploy: z.ZodOptional<z.ZodBoolean>;
2181
2295
  unpublishTrigger: z.ZodOptional<z.ZodEnum<{
@@ -2186,8 +2300,29 @@ export declare const ProjectHostingSchema: z.ZodObject<{
2186
2300
  "zero-credits": "zero-credits";
2187
2301
  }>>;
2188
2302
  domainIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2303
+ aiPaymentMode: z.ZodOptional<z.ZodEnum<{
2304
+ "builder-credits": "builder-credits";
2305
+ byok: "byok";
2306
+ skip: "skip";
2307
+ }>>;
2308
+ configUpdatedAt: z.ZodOptional<z.ZodNumber>;
2189
2309
  }, z.core.$strip>;
2190
2310
  export type ProjectHosting = z.infer<typeof ProjectHostingSchema>;
2311
+ /**
2312
+ * Mask of the hosting sub-fields a client may write via `PATCH`. Everything
2313
+ * else on {@link ProjectHostingSchema} is owned by the slug-reservation /
2314
+ * publish / deploy / custom-domain flows.
2315
+ *
2316
+ * Deliberately an allowlist rather than a denylist of system-owned fields: a
2317
+ * new field added to `ProjectHostingSchema` must be opted *in* to be writable,
2318
+ * so the default for anything we add later is "not client-writable".
2319
+ */
2320
+ export declare const PROJECT_UPDATABLE_HOSTING_FIELDS_MASK: {
2321
+ readonly enabled: true;
2322
+ readonly buildConfig: true;
2323
+ readonly environment: true;
2324
+ readonly autoDeploy: true;
2325
+ };
2191
2326
  /**
2192
2327
  * Client-writable subset of {@link ProjectHostingSchema}. Used for `PATCH`
2193
2328
  * payloads so external callers can't write system-owned hosting fields.
@@ -2673,6 +2808,11 @@ export declare const DeploySchema: z.ZodObject<{
2673
2808
  deployBranchId: z.ZodOptional<z.ZodString>;
2674
2809
  deployBranchName: z.ZodOptional<z.ZodString>;
2675
2810
  devBranchId: z.ZodOptional<z.ZodString>;
2811
+ supersededRouteBranchId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2812
+ supersededRouteResourceVersions: z.ZodOptional<z.ZodObject<{
2813
+ route: z.ZodOptional<z.ZodString>;
2814
+ handshake: z.ZodOptional<z.ZodString>;
2815
+ }, z.core.$strip>>;
2676
2816
  status: z.ZodEnum<{
2677
2817
  building: "building";
2678
2818
  canceled: "canceled";
@@ -2877,6 +3017,92 @@ export declare const DeleteHostingResponseSchema: z.ZodObject<{
2877
3017
  success: z.ZodLiteral<true>;
2878
3018
  }, z.core.$strip>;
2879
3019
  export type DeleteHostingResponse = z.infer<typeof DeleteHostingResponseSchema>;
3020
+ /** Query for `GET /projects/hosting/ai-usage`. */
3021
+ export declare const GetHostingAiUsageRequestSchema: z.ZodObject<{
3022
+ projectId: z.ZodString;
3023
+ }, z.core.$strip>;
3024
+ export type GetHostingAiUsageRequest = z.infer<typeof GetHostingAiUsageRequestSchema>;
3025
+ /**
3026
+ * Status of the published site's gateway token. Recomputed from the
3027
+ * authoritative PAT doc on every read; the plaintext token is never included.
3028
+ */
3029
+ export declare const HostingAiUsageTokenStatusSchema: z.ZodObject<{
3030
+ active: z.ZodBoolean;
3031
+ lastUsed: z.ZodOptional<z.ZodNumber>;
3032
+ createdBy: z.ZodOptional<z.ZodString>;
3033
+ }, z.core.$strip>;
3034
+ export type HostingAiUsageTokenStatus = z.infer<typeof HostingAiUsageTokenStatusSchema>;
3035
+ export declare const GetHostingAiUsageResponseSchema: z.ZodObject<{
3036
+ hasEverPublished: z.ZodBoolean;
3037
+ aiPaymentMode: z.ZodOptional<z.ZodEnum<{
3038
+ "builder-credits": "builder-credits";
3039
+ byok: "byok";
3040
+ skip: "skip";
3041
+ }>>;
3042
+ coreSupportsGateway: z.ZodBoolean;
3043
+ token: z.ZodNullable<z.ZodObject<{
3044
+ active: z.ZodBoolean;
3045
+ lastUsed: z.ZodOptional<z.ZodNumber>;
3046
+ createdBy: z.ZodOptional<z.ZodString>;
3047
+ }, z.core.$strip>>;
3048
+ }, z.core.$strip>;
3049
+ export type GetHostingAiUsageResponse = z.infer<typeof GetHostingAiUsageResponseSchema>;
3050
+ /** Providers a customer may bring their own key for. */
3051
+ export declare const AiUsageByokProviderSchema: z.ZodEnum<{
3052
+ anthropic: "anthropic";
3053
+ openai: "openai";
3054
+ }>;
3055
+ export type AiUsageByokProvider = z.infer<typeof AiUsageByokProviderSchema>;
3056
+ /**
3057
+ * Body for `POST /projects/hosting/ai-usage`.
3058
+ *
3059
+ * Deliberately closed (`strictObject`): this route is gated on
3060
+ * `fusionHostingPublish` rather than `modifyProjectSettings`, so the request
3061
+ * shape is the only thing stopping it becoming a general prod-env write
3062
+ * primitive. The handler builds the env entries itself from `provider`,
3063
+ * `apiKey` and `baseUrl` — an env var *name* is never caller-supplied.
3064
+ */
3065
+ export declare const SetHostingAiUsageRequestSchema: z.ZodObject<{
3066
+ projectId: z.ZodString;
3067
+ mode: z.ZodEnum<{
3068
+ "builder-credits": "builder-credits";
3069
+ byok: "byok";
3070
+ skip: "skip";
3071
+ }>;
3072
+ provider: z.ZodOptional<z.ZodEnum<{
3073
+ anthropic: "anthropic";
3074
+ openai: "openai";
3075
+ }>>;
3076
+ apiKey: z.ZodOptional<z.ZodString>;
3077
+ baseUrl: z.ZodOptional<z.ZodURL>;
3078
+ }, z.core.$strict>;
3079
+ export type SetHostingAiUsageRequest = z.infer<typeof SetHostingAiUsageRequestSchema>;
3080
+ export declare const SetHostingAiUsageResponseSchema: z.ZodObject<{
3081
+ aiPaymentMode: z.ZodEnum<{
3082
+ "builder-credits": "builder-credits";
3083
+ byok: "byok";
3084
+ skip: "skip";
3085
+ }>;
3086
+ configUpdatedAt: z.ZodOptional<z.ZodNumber>;
3087
+ }, z.core.$strip>;
3088
+ export type SetHostingAiUsageResponse = z.infer<typeof SetHostingAiUsageResponseSchema>;
3089
+ /** Body for `POST /projects/hosting/ai-usage/revoke`. */
3090
+ export declare const RevokeHostingAiTokenRequestSchema: z.ZodObject<{
3091
+ projectId: z.ZodString;
3092
+ }, z.core.$strict>;
3093
+ export type RevokeHostingAiTokenRequest = z.infer<typeof RevokeHostingAiTokenRequestSchema>;
3094
+ export declare const RevokeHostingAiTokenResponseSchema: z.ZodObject<{
3095
+ success: z.ZodLiteral<true>;
3096
+ }, z.core.$strip>;
3097
+ export type RevokeHostingAiTokenResponse = z.infer<typeof RevokeHostingAiTokenResponseSchema>;
3098
+ /**
3099
+ * The three prod env vars the AI-usage endpoint owns. The write path sets only
3100
+ * these; every non-`byok` mode deletes exactly these. Without the delete, a
3101
+ * BYOK→credits switch is a silent no-op — the stale provider key keeps winning
3102
+ * the framework's engine auto-detection, and the gateway injection gate keys on
3103
+ * its absence.
3104
+ */
3105
+ export declare const AI_USAGE_MANAGED_PROD_ENV_KEYS: readonly ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "OPENAI_BASE_URL"];
2880
3106
  export declare const GetDeploysRequestSchema: z.ZodObject<{
2881
3107
  projectId: z.ZodString;
2882
3108
  deployId: z.ZodOptional<z.ZodString>;
@@ -3194,4 +3420,1286 @@ export declare const EnsureMainBranchExistsOptionsSchema: z.ZodObject<{
3194
3420
  branchName: z.ZodString;
3195
3421
  }, z.core.$strip>;
3196
3422
  export type EnsureMainBranchExistsOptions = z.infer<typeof EnsureMainBranchExistsOptionsSchema>;
3423
+ /**
3424
+ * `settings.environmentVariables` is stored with **plaintext** secret values;
3425
+ * secrets are masked before this shape leaves ai-services, same as
3426
+ * `Project.settings`.
3427
+ */
3428
+ export declare const ProjectTemplateSchema: z.ZodObject<{
3429
+ id: z.ZodString;
3430
+ name: z.ZodString;
3431
+ ownerId: z.ZodString;
3432
+ description: z.ZodString;
3433
+ repoFullName: z.ZodString;
3434
+ repoProvider: z.ZodEnum<{
3435
+ azure: "azure";
3436
+ bitbucket: "bitbucket";
3437
+ custom: "custom";
3438
+ github: "github";
3439
+ gitlab: "gitlab";
3440
+ internalHost: "internalHost";
3441
+ selfHostedGithub: "selfHostedGithub";
3442
+ }>;
3443
+ repoUrl: z.ZodString;
3444
+ repoPrivate: z.ZodBoolean;
3445
+ screenshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3446
+ order: z.ZodNumber;
3447
+ hidden: z.ZodBoolean;
3448
+ isDefault: z.ZodBoolean;
3449
+ createdDate: z.ZodString;
3450
+ updatedAt: z.ZodString;
3451
+ createdBy: z.ZodString;
3452
+ lastUpdateBy: z.ZodString;
3453
+ sourceProjectId: z.ZodString;
3454
+ sourceBranchName: z.ZodString;
3455
+ settings: z.ZodObject<{
3456
+ isNativeApp: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3457
+ autoDetectDevServer: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3458
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3459
+ fusionEnvironment: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3460
+ cloud: "cloud";
3461
+ "cloud-v2": "cloud-v2";
3462
+ "container-less": "container-less";
3463
+ containerized: "containerized";
3464
+ }>>>;
3465
+ devServerPort: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3466
+ devServerUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3467
+ refreshPreview: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3468
+ installCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3469
+ installNpmrc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3470
+ validateCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3471
+ proxyOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3472
+ proxyDefaultOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3473
+ defaultAutoPush: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3474
+ "ff-push": "ff-push";
3475
+ "force-push": "force-push";
3476
+ "merge-push": "merge-push";
3477
+ none: "none";
3478
+ "safe-push": "safe-push";
3479
+ }>>>;
3480
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3481
+ "ai-session": "ai-session";
3482
+ "branch-name": "branch-name";
3483
+ custom: "custom";
3484
+ }>>>;
3485
+ setupDependencies: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3486
+ key: z.ZodString;
3487
+ type: z.ZodLiteral<"mise">;
3488
+ tool: z.ZodString;
3489
+ version: z.ZodOptional<z.ZodString>;
3490
+ }, z.core.$strip>, z.ZodObject<{
3491
+ key: z.ZodString;
3492
+ type: z.ZodLiteral<"script">;
3493
+ name: z.ZodString;
3494
+ script: z.ZodString;
3495
+ }, z.core.$strip>], "type">>>>;
3496
+ hostRequirements: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3497
+ name: z.ZodString;
3498
+ checkScript: z.ZodString;
3499
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3500
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3501
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3502
+ linux: "linux";
3503
+ macos: "macos";
3504
+ windows: "windows";
3505
+ }>>>;
3506
+ description: z.ZodOptional<z.ZodString>;
3507
+ }, z.core.$strip>>>>;
3508
+ skills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
3509
+ key: z.ZodString;
3510
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3511
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3512
+ source: z.ZodString;
3513
+ }, z.core.$strip>, z.ZodObject<{
3514
+ key: z.ZodString;
3515
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3516
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3517
+ type: z.ZodLiteral<"npm">;
3518
+ package: z.ZodString;
3519
+ version: z.ZodOptional<z.ZodString>;
3520
+ }, z.core.$strip>, z.ZodObject<{
3521
+ key: z.ZodString;
3522
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3523
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3524
+ type: z.ZodLiteral<"github">;
3525
+ repo: z.ZodString;
3526
+ ref: z.ZodOptional<z.ZodString>;
3527
+ path: z.ZodOptional<z.ZodString>;
3528
+ }, z.core.$strip>, z.ZodObject<{
3529
+ key: z.ZodString;
3530
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3531
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3532
+ type: z.ZodLiteral<"url">;
3533
+ url: z.ZodString;
3534
+ }, z.core.$strip>]>>>>;
3535
+ gitBranchNamingCustom: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3536
+ askUserForBranchName: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3537
+ allowBranchFromRemote: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3538
+ devServerCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3539
+ screenshotCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3540
+ interactCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3541
+ serverTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3542
+ cpuKind: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3543
+ performance: "performance";
3544
+ shared: "shared";
3545
+ standard: "standard";
3546
+ }>>>;
3547
+ cpus: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>>;
3548
+ memory: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
3549
+ memoryLimit: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
3550
+ autoStop: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3551
+ off: "off";
3552
+ stop: "stop";
3553
+ suspend: "suspend";
3554
+ }>>>;
3555
+ mainBranchName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3556
+ minMachinesRunning: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3557
+ 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>]>>>;
3558
+ includePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3559
+ includePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3560
+ errorIgnorePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3561
+ environmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3562
+ key: z.ZodString;
3563
+ value: z.ZodString;
3564
+ isSecret: z.ZodBoolean;
3565
+ placeholder: z.ZodOptional<z.ZodBoolean>;
3566
+ explanation: z.ZodOptional<z.ZodString>;
3567
+ }, z.core.$strip>>>>;
3568
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3569
+ key: z.ZodString;
3570
+ description: z.ZodOptional<z.ZodString>;
3571
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
3572
+ }, z.core.$strip>>>>;
3573
+ fileOverrides: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
3574
+ path: z.ZodString;
3575
+ content: z.ZodString;
3576
+ }, z.core.$strip>, z.ZodObject<{
3577
+ path: z.ZodString;
3578
+ base64: z.ZodString;
3579
+ }, z.core.$strip>]>>>>;
3580
+ customInstructions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3581
+ id: z.ZodString;
3582
+ name: z.ZodString;
3583
+ content: z.ZodString;
3584
+ type: z.ZodOptional<z.ZodEnum<{
3585
+ "agent-mode": "agent-mode";
3586
+ always: "always";
3587
+ }>>;
3588
+ filePath: z.ZodOptional<z.ZodString>;
3589
+ glob: z.ZodOptional<z.ZodString>;
3590
+ description: z.ZodOptional<z.ZodString>;
3591
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
3592
+ hideUI: z.ZodOptional<z.ZodBoolean>;
3593
+ isSkill: z.ZodOptional<z.ZodBoolean>;
3594
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
3595
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
3596
+ scope: z.ZodOptional<z.ZodEnum<{
3597
+ builtin: "builtin";
3598
+ plugin: "plugin";
3599
+ project: "project";
3600
+ user: "user";
3601
+ }>>;
3602
+ pluginName: z.ZodOptional<z.ZodString>;
3603
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
3604
+ name: z.ZodString;
3605
+ description: z.ZodOptional<z.ZodString>;
3606
+ }, z.core.$strip>>>;
3607
+ }, z.core.$strip>>>>;
3608
+ customAgents: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3609
+ name: z.ZodString;
3610
+ description: z.ZodOptional<z.ZodString>;
3611
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
3612
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
3613
+ model: z.ZodOptional<z.ZodString>;
3614
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
3615
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
3616
+ "browser-testing": "browser-testing";
3617
+ "builder-code": "builder-code";
3618
+ "builder-code-panel": "builder-code-panel";
3619
+ "builder-publish-integration": "builder-publish-integration";
3620
+ cli: "cli";
3621
+ "code-review-orchestrator": "code-review-orchestrator";
3622
+ "create-app-firebase": "create-app-firebase";
3623
+ "create-app-lovable": "create-app-lovable";
3624
+ "design-system-indexer": "design-system-indexer";
3625
+ "dsi-mcp": "dsi-mcp";
3626
+ "editor-ai": "editor-ai";
3627
+ fusion: "fusion";
3628
+ "org-agent": "org-agent";
3629
+ "org-worker": "org-worker";
3630
+ "project-configuration": "project-configuration";
3631
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
3632
+ "repo-indexing": "repo-indexing";
3633
+ "setup-project": "setup-project";
3634
+ unknown: "unknown";
3635
+ }>, 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">]>>;
3636
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
3637
+ needValidation: z.ZodOptional<z.ZodBoolean>;
3638
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
3639
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
3640
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
3641
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
3642
+ queueBehavior: z.ZodOptional<z.ZodObject<{
3643
+ schedule: z.ZodEnum<{
3644
+ interrupt: "interrupt";
3645
+ "interrupt-clear": "interrupt-clear";
3646
+ "interrupt-replace": "interrupt-replace";
3647
+ "next-turn": "next-turn";
3648
+ "until-idle": "until-idle";
3649
+ }>;
3650
+ coalesce: z.ZodEnum<{
3651
+ merge: "merge";
3652
+ "preserve-order": "preserve-order";
3653
+ "replace-latest": "replace-latest";
3654
+ }>;
3655
+ }, z.core.$strip>>;
3656
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
3657
+ schedule: z.ZodEnum<{
3658
+ interrupt: "interrupt";
3659
+ "interrupt-clear": "interrupt-clear";
3660
+ "interrupt-replace": "interrupt-replace";
3661
+ "next-turn": "next-turn";
3662
+ "until-idle": "until-idle";
3663
+ }>;
3664
+ coalesce: z.ZodEnum<{
3665
+ merge: "merge";
3666
+ "preserve-order": "preserve-order";
3667
+ "replace-latest": "replace-latest";
3668
+ }>;
3669
+ }, z.core.$strip>]>>;
3670
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
3671
+ filePath: z.ZodOptional<z.ZodString>;
3672
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
3673
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
3674
+ reasoning: z.ZodOptional<z.ZodEnum<{
3675
+ auto: "auto";
3676
+ high: "high";
3677
+ low: "low";
3678
+ max: "max";
3679
+ medium: "medium";
3680
+ minimal: "minimal";
3681
+ none: "none";
3682
+ xhigh: "xhigh";
3683
+ }>>;
3684
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
3685
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
3686
+ ai: "ai";
3687
+ both: "both";
3688
+ main: "main";
3689
+ }>>;
3690
+ fastForward: z.ZodOptional<z.ZodEnum<{
3691
+ auto: "auto";
3692
+ never: "never";
3693
+ required: "required";
3694
+ }>>;
3695
+ canPush: z.ZodOptional<z.ZodBoolean>;
3696
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
3697
+ commit: "commit";
3698
+ fail: "fail";
3699
+ stash: "stash";
3700
+ }>>;
3701
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
3702
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
3703
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
3704
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
3705
+ }, z.core.$strip>>;
3706
+ scope: z.ZodOptional<z.ZodEnum<{
3707
+ plugin: "plugin";
3708
+ project: "project";
3709
+ user: "user";
3710
+ }>>;
3711
+ pluginName: z.ZodOptional<z.ZodString>;
3712
+ }, z.core.$strip>>>>;
3713
+ mcpServers: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3714
+ command: z.ZodString;
3715
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
3716
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3717
+ envFile: z.ZodOptional<z.ZodString>;
3718
+ retries: z.ZodOptional<z.ZodNumber>;
3719
+ }, z.core.$strip>>>>;
3720
+ commitMode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3721
+ commits: "commits";
3722
+ "draft-prs": "draft-prs";
3723
+ prs: "prs";
3724
+ }>>>;
3725
+ autoCloseBranchOnMerge: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3726
+ enableMergePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3727
+ minRequiredApprovals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3728
+ requireApprovalBeforePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3729
+ requiredApproverRoleIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3730
+ requiredApproverRoleId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3731
+ defaultBranchType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3732
+ private: "private";
3733
+ shared: "shared";
3734
+ }>>>;
3735
+ dockerImagePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3736
+ ghcrUsername: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3737
+ ghcrToken: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3738
+ nodeVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3739
+ designSystems: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3740
+ designTokenStrictMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3741
+ designModeSelector: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3742
+ useNI: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3743
+ folders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3744
+ name: z.ZodString;
3745
+ remoteUrl: z.ZodString;
3746
+ mainBranchName: z.ZodOptional<z.ZodString>;
3747
+ includePath: z.ZodOptional<z.ZodString>;
3748
+ addedBy: z.ZodOptional<z.ZodString>;
3749
+ repoProvider: z.ZodOptional<z.ZodString>;
3750
+ repoProtocol: z.ZodOptional<z.ZodString>;
3751
+ enableGit: z.ZodOptional<z.ZodBoolean>;
3752
+ }, z.core.$strip>>>>;
3753
+ agentsMD: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3754
+ initializationCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3755
+ repoSubpath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3756
+ recommendedRoot: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3757
+ https: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3758
+ localHttpsDomain: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3759
+ browserAutomation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
3760
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
3761
+ builderApp: z.ZodOptional<z.ZodBoolean>;
3762
+ instructions: z.ZodOptional<z.ZodString>;
3763
+ authUser: z.ZodOptional<z.ZodString>;
3764
+ authPassword: z.ZodOptional<z.ZodString>;
3765
+ }, z.core.$strip>>>;
3766
+ prReviewer: z.ZodOptional<z.ZodOptional<z.ZodObject<{
3767
+ enabled: z.ZodBoolean;
3768
+ instructions: z.ZodOptional<z.ZodString>;
3769
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
3770
+ high: "high";
3771
+ low: "low";
3772
+ medium: "medium";
3773
+ }>>;
3774
+ model: z.ZodOptional<z.ZodString>;
3775
+ }, z.core.$strip>>>;
3776
+ enableSnapshots: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3777
+ postMergeMemories: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3778
+ commitInstructions: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3779
+ maxAgentCompletions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3780
+ enableAgentMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3781
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3782
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3783
+ disableDesktopProxying: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3784
+ previewUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3785
+ recentUrls: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3786
+ url: z.ZodString;
3787
+ timestamp: z.ZodNumber;
3788
+ starred: z.ZodBoolean;
3789
+ }, z.core.$strip>>>>;
3790
+ skipCommandSecurity: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3791
+ httpsServerKeyPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3792
+ httpsServerCertPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3793
+ httpsServerCaPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3794
+ httpsServerKeyContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3795
+ httpsServerCertContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3796
+ httpsServerCaContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3797
+ httpsServerPfx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3798
+ httpsServerPassphrase: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3799
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3800
+ httpsServerSecureOptions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3801
+ httpsServerCiphers: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3802
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3803
+ httpsServerRequestCert: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3804
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3805
+ isPreferredForRepo: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3806
+ singleTenancyConfig: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3807
+ previewPasswordProtection: z.ZodOptional<z.ZodOptional<z.ZodObject<{
3808
+ enabled: z.ZodBoolean;
3809
+ password: z.ZodOptional<z.ZodString>;
3810
+ }, z.core.$strip>>>;
3811
+ }, z.core.$strip>;
3812
+ hosting: z.ZodOptional<z.ZodObject<{
3813
+ enabled: z.ZodOptional<z.ZodBoolean>;
3814
+ slug: z.ZodOptional<z.ZodString>;
3815
+ netlifySiteId: z.ZodOptional<z.ZodString>;
3816
+ netlifySiteName: z.ZodOptional<z.ZodString>;
3817
+ url: z.ZodOptional<z.ZodString>;
3818
+ buildConfig: z.ZodOptional<z.ZodObject<{
3819
+ buildCommand: z.ZodOptional<z.ZodString>;
3820
+ buildOutputDir: z.ZodOptional<z.ZodString>;
3821
+ nodeVersion: z.ZodOptional<z.ZodString>;
3822
+ }, z.core.$strip>>;
3823
+ environment: z.ZodOptional<z.ZodObject<{
3824
+ build: z.ZodOptional<z.ZodArray<z.ZodObject<{
3825
+ key: z.ZodString;
3826
+ value: z.ZodString;
3827
+ isSecret: z.ZodBoolean;
3828
+ placeholder: z.ZodOptional<z.ZodBoolean>;
3829
+ explanation: z.ZodOptional<z.ZodString>;
3830
+ }, z.core.$strip>>>;
3831
+ prod: z.ZodOptional<z.ZodArray<z.ZodObject<{
3832
+ key: z.ZodString;
3833
+ value: z.ZodString;
3834
+ isSecret: z.ZodBoolean;
3835
+ placeholder: z.ZodOptional<z.ZodBoolean>;
3836
+ explanation: z.ZodOptional<z.ZodString>;
3837
+ }, z.core.$strip>>>;
3838
+ }, z.core.$strip>>;
3839
+ publishStatus: z.ZodOptional<z.ZodEnum<{
3840
+ published: "published";
3841
+ publishing: "publishing";
3842
+ unpublished: "unpublished";
3843
+ }>>;
3844
+ lastDeployId: z.ZodOptional<z.ZodString>;
3845
+ lastDeployAt: z.ZodOptional<z.ZodNumber>;
3846
+ lastDeployStatus: z.ZodOptional<z.ZodEnum<{
3847
+ building: "building";
3848
+ canceled: "canceled";
3849
+ deploying: "deploying";
3850
+ failed: "failed";
3851
+ live: "live";
3852
+ migrating: "migrating";
3853
+ queued: "queued";
3854
+ uploading: "uploading";
3855
+ }>>;
3856
+ publishedBranchId: z.ZodOptional<z.ZodString>;
3857
+ publishedCommit: z.ZodOptional<z.ZodString>;
3858
+ autoDeploy: z.ZodOptional<z.ZodBoolean>;
3859
+ unpublishTrigger: z.ZodOptional<z.ZodEnum<{
3860
+ system: "system";
3861
+ user: "user";
3862
+ }>>;
3863
+ systemUnpublishReason: z.ZodOptional<z.ZodEnum<{
3864
+ "zero-credits": "zero-credits";
3865
+ }>>;
3866
+ domainIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
3867
+ aiPaymentMode: z.ZodOptional<z.ZodEnum<{
3868
+ "builder-credits": "builder-credits";
3869
+ byok: "byok";
3870
+ skip: "skip";
3871
+ }>>;
3872
+ configUpdatedAt: z.ZodOptional<z.ZodNumber>;
3873
+ }, z.core.$strip>>;
3874
+ }, z.core.$strip>;
3875
+ export type ProjectTemplate = z.infer<typeof ProjectTemplateSchema>;
3876
+ /**
3877
+ * The id, ownership, audit, and source fields are server-assigned, so they can't
3878
+ * be overridden here.
3879
+ *
3880
+ * A masked-secret placeholder in `settings.environmentVariables` keeps the
3881
+ * source project's real value, so a client that never saw a secret can still
3882
+ * round-trip it.
3883
+ */
3884
+ export declare const ProjectTemplateOverridesSchema: z.ZodObject<{
3885
+ name: z.ZodOptional<z.ZodString>;
3886
+ description: z.ZodOptional<z.ZodString>;
3887
+ repoFullName: z.ZodOptional<z.ZodString>;
3888
+ repoProvider: z.ZodOptional<z.ZodEnum<{
3889
+ azure: "azure";
3890
+ bitbucket: "bitbucket";
3891
+ custom: "custom";
3892
+ github: "github";
3893
+ gitlab: "gitlab";
3894
+ internalHost: "internalHost";
3895
+ selfHostedGithub: "selfHostedGithub";
3896
+ }>>;
3897
+ repoUrl: z.ZodOptional<z.ZodString>;
3898
+ repoPrivate: z.ZodOptional<z.ZodBoolean>;
3899
+ screenshot: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3900
+ order: z.ZodOptional<z.ZodNumber>;
3901
+ hidden: z.ZodOptional<z.ZodBoolean>;
3902
+ isDefault: z.ZodOptional<z.ZodBoolean>;
3903
+ settings: z.ZodOptional<z.ZodObject<{
3904
+ isNativeApp: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3905
+ autoDetectDevServer: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3906
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
3907
+ fusionEnvironment: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3908
+ cloud: "cloud";
3909
+ "cloud-v2": "cloud-v2";
3910
+ "container-less": "container-less";
3911
+ containerized: "containerized";
3912
+ }>>>;
3913
+ devServerPort: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3914
+ devServerUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3915
+ refreshPreview: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3916
+ installCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3917
+ installNpmrc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
3918
+ validateCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3919
+ proxyOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3920
+ proxyDefaultOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3921
+ defaultAutoPush: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3922
+ "ff-push": "ff-push";
3923
+ "force-push": "force-push";
3924
+ "merge-push": "merge-push";
3925
+ none: "none";
3926
+ "safe-push": "safe-push";
3927
+ }>>>;
3928
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3929
+ "ai-session": "ai-session";
3930
+ "branch-name": "branch-name";
3931
+ custom: "custom";
3932
+ }>>>;
3933
+ setupDependencies: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3934
+ key: z.ZodString;
3935
+ type: z.ZodLiteral<"mise">;
3936
+ tool: z.ZodString;
3937
+ version: z.ZodOptional<z.ZodString>;
3938
+ }, z.core.$strip>, z.ZodObject<{
3939
+ key: z.ZodString;
3940
+ type: z.ZodLiteral<"script">;
3941
+ name: z.ZodString;
3942
+ script: z.ZodString;
3943
+ }, z.core.$strip>], "type">>>>;
3944
+ hostRequirements: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
3945
+ name: z.ZodString;
3946
+ checkScript: z.ZodString;
3947
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3948
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3949
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3950
+ linux: "linux";
3951
+ macos: "macos";
3952
+ windows: "windows";
3953
+ }>>>;
3954
+ description: z.ZodOptional<z.ZodString>;
3955
+ }, z.core.$strip>>>>;
3956
+ skills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
3957
+ key: z.ZodString;
3958
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3959
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3960
+ source: z.ZodString;
3961
+ }, z.core.$strip>, z.ZodObject<{
3962
+ key: z.ZodString;
3963
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3964
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3965
+ type: z.ZodLiteral<"npm">;
3966
+ package: z.ZodString;
3967
+ version: z.ZodOptional<z.ZodString>;
3968
+ }, z.core.$strip>, z.ZodObject<{
3969
+ key: z.ZodString;
3970
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3971
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3972
+ type: z.ZodLiteral<"github">;
3973
+ repo: z.ZodString;
3974
+ ref: z.ZodOptional<z.ZodString>;
3975
+ path: z.ZodOptional<z.ZodString>;
3976
+ }, z.core.$strip>, z.ZodObject<{
3977
+ key: z.ZodString;
3978
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
3979
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
3980
+ type: z.ZodLiteral<"url">;
3981
+ url: z.ZodString;
3982
+ }, z.core.$strip>]>>>>;
3983
+ gitBranchNamingCustom: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3984
+ askUserForBranchName: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3985
+ allowBranchFromRemote: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
3986
+ devServerCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3987
+ screenshotCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3988
+ interactCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
3989
+ serverTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3990
+ cpuKind: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3991
+ performance: "performance";
3992
+ shared: "shared";
3993
+ standard: "standard";
3994
+ }>>>;
3995
+ cpus: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>>;
3996
+ memory: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
3997
+ memoryLimit: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
3998
+ autoStop: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
3999
+ off: "off";
4000
+ stop: "stop";
4001
+ suspend: "suspend";
4002
+ }>>>;
4003
+ mainBranchName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4004
+ minMachinesRunning: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4005
+ 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>]>>>;
4006
+ includePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4007
+ includePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4008
+ errorIgnorePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4009
+ environmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4010
+ key: z.ZodString;
4011
+ value: z.ZodString;
4012
+ isSecret: z.ZodBoolean;
4013
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4014
+ explanation: z.ZodOptional<z.ZodString>;
4015
+ }, z.core.$strip>>>>;
4016
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4017
+ key: z.ZodString;
4018
+ description: z.ZodOptional<z.ZodString>;
4019
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
4020
+ }, z.core.$strip>>>>;
4021
+ fileOverrides: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
4022
+ path: z.ZodString;
4023
+ content: z.ZodString;
4024
+ }, z.core.$strip>, z.ZodObject<{
4025
+ path: z.ZodString;
4026
+ base64: z.ZodString;
4027
+ }, z.core.$strip>]>>>>;
4028
+ customInstructions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4029
+ id: z.ZodString;
4030
+ name: z.ZodString;
4031
+ content: z.ZodString;
4032
+ type: z.ZodOptional<z.ZodEnum<{
4033
+ "agent-mode": "agent-mode";
4034
+ always: "always";
4035
+ }>>;
4036
+ filePath: z.ZodOptional<z.ZodString>;
4037
+ glob: z.ZodOptional<z.ZodString>;
4038
+ description: z.ZodOptional<z.ZodString>;
4039
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
4040
+ hideUI: z.ZodOptional<z.ZodBoolean>;
4041
+ isSkill: z.ZodOptional<z.ZodBoolean>;
4042
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
4043
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
4044
+ scope: z.ZodOptional<z.ZodEnum<{
4045
+ builtin: "builtin";
4046
+ plugin: "plugin";
4047
+ project: "project";
4048
+ user: "user";
4049
+ }>>;
4050
+ pluginName: z.ZodOptional<z.ZodString>;
4051
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
4052
+ name: z.ZodString;
4053
+ description: z.ZodOptional<z.ZodString>;
4054
+ }, z.core.$strip>>>;
4055
+ }, z.core.$strip>>>>;
4056
+ customAgents: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4057
+ name: z.ZodString;
4058
+ description: z.ZodOptional<z.ZodString>;
4059
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
4060
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
4061
+ model: z.ZodOptional<z.ZodString>;
4062
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
4063
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
4064
+ "browser-testing": "browser-testing";
4065
+ "builder-code": "builder-code";
4066
+ "builder-code-panel": "builder-code-panel";
4067
+ "builder-publish-integration": "builder-publish-integration";
4068
+ cli: "cli";
4069
+ "code-review-orchestrator": "code-review-orchestrator";
4070
+ "create-app-firebase": "create-app-firebase";
4071
+ "create-app-lovable": "create-app-lovable";
4072
+ "design-system-indexer": "design-system-indexer";
4073
+ "dsi-mcp": "dsi-mcp";
4074
+ "editor-ai": "editor-ai";
4075
+ fusion: "fusion";
4076
+ "org-agent": "org-agent";
4077
+ "org-worker": "org-worker";
4078
+ "project-configuration": "project-configuration";
4079
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
4080
+ "repo-indexing": "repo-indexing";
4081
+ "setup-project": "setup-project";
4082
+ unknown: "unknown";
4083
+ }>, 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">]>>;
4084
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
4085
+ needValidation: z.ZodOptional<z.ZodBoolean>;
4086
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
4087
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
4088
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
4089
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
4090
+ queueBehavior: z.ZodOptional<z.ZodObject<{
4091
+ schedule: z.ZodEnum<{
4092
+ interrupt: "interrupt";
4093
+ "interrupt-clear": "interrupt-clear";
4094
+ "interrupt-replace": "interrupt-replace";
4095
+ "next-turn": "next-turn";
4096
+ "until-idle": "until-idle";
4097
+ }>;
4098
+ coalesce: z.ZodEnum<{
4099
+ merge: "merge";
4100
+ "preserve-order": "preserve-order";
4101
+ "replace-latest": "replace-latest";
4102
+ }>;
4103
+ }, z.core.$strip>>;
4104
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
4105
+ schedule: z.ZodEnum<{
4106
+ interrupt: "interrupt";
4107
+ "interrupt-clear": "interrupt-clear";
4108
+ "interrupt-replace": "interrupt-replace";
4109
+ "next-turn": "next-turn";
4110
+ "until-idle": "until-idle";
4111
+ }>;
4112
+ coalesce: z.ZodEnum<{
4113
+ merge: "merge";
4114
+ "preserve-order": "preserve-order";
4115
+ "replace-latest": "replace-latest";
4116
+ }>;
4117
+ }, z.core.$strip>]>>;
4118
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
4119
+ filePath: z.ZodOptional<z.ZodString>;
4120
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
4121
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
4122
+ reasoning: z.ZodOptional<z.ZodEnum<{
4123
+ auto: "auto";
4124
+ high: "high";
4125
+ low: "low";
4126
+ max: "max";
4127
+ medium: "medium";
4128
+ minimal: "minimal";
4129
+ none: "none";
4130
+ xhigh: "xhigh";
4131
+ }>>;
4132
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
4133
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
4134
+ ai: "ai";
4135
+ both: "both";
4136
+ main: "main";
4137
+ }>>;
4138
+ fastForward: z.ZodOptional<z.ZodEnum<{
4139
+ auto: "auto";
4140
+ never: "never";
4141
+ required: "required";
4142
+ }>>;
4143
+ canPush: z.ZodOptional<z.ZodBoolean>;
4144
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
4145
+ commit: "commit";
4146
+ fail: "fail";
4147
+ stash: "stash";
4148
+ }>>;
4149
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
4150
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
4151
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
4152
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
4153
+ }, z.core.$strip>>;
4154
+ scope: z.ZodOptional<z.ZodEnum<{
4155
+ plugin: "plugin";
4156
+ project: "project";
4157
+ user: "user";
4158
+ }>>;
4159
+ pluginName: z.ZodOptional<z.ZodString>;
4160
+ }, z.core.$strip>>>>;
4161
+ mcpServers: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4162
+ command: z.ZodString;
4163
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
4164
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4165
+ envFile: z.ZodOptional<z.ZodString>;
4166
+ retries: z.ZodOptional<z.ZodNumber>;
4167
+ }, z.core.$strip>>>>;
4168
+ commitMode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4169
+ commits: "commits";
4170
+ "draft-prs": "draft-prs";
4171
+ prs: "prs";
4172
+ }>>>;
4173
+ autoCloseBranchOnMerge: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4174
+ enableMergePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4175
+ minRequiredApprovals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4176
+ requireApprovalBeforePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4177
+ requiredApproverRoleIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4178
+ requiredApproverRoleId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4179
+ defaultBranchType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4180
+ private: "private";
4181
+ shared: "shared";
4182
+ }>>>;
4183
+ dockerImagePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4184
+ ghcrUsername: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4185
+ ghcrToken: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4186
+ nodeVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4187
+ designSystems: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4188
+ designTokenStrictMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4189
+ designModeSelector: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4190
+ useNI: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4191
+ folders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4192
+ name: z.ZodString;
4193
+ remoteUrl: z.ZodString;
4194
+ mainBranchName: z.ZodOptional<z.ZodString>;
4195
+ includePath: z.ZodOptional<z.ZodString>;
4196
+ addedBy: z.ZodOptional<z.ZodString>;
4197
+ repoProvider: z.ZodOptional<z.ZodString>;
4198
+ repoProtocol: z.ZodOptional<z.ZodString>;
4199
+ enableGit: z.ZodOptional<z.ZodBoolean>;
4200
+ }, z.core.$strip>>>>;
4201
+ agentsMD: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4202
+ initializationCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4203
+ repoSubpath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4204
+ recommendedRoot: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4205
+ https: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4206
+ localHttpsDomain: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4207
+ browserAutomation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4208
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
4209
+ builderApp: z.ZodOptional<z.ZodBoolean>;
4210
+ instructions: z.ZodOptional<z.ZodString>;
4211
+ authUser: z.ZodOptional<z.ZodString>;
4212
+ authPassword: z.ZodOptional<z.ZodString>;
4213
+ }, z.core.$strip>>>;
4214
+ prReviewer: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4215
+ enabled: z.ZodBoolean;
4216
+ instructions: z.ZodOptional<z.ZodString>;
4217
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
4218
+ high: "high";
4219
+ low: "low";
4220
+ medium: "medium";
4221
+ }>>;
4222
+ model: z.ZodOptional<z.ZodString>;
4223
+ }, z.core.$strip>>>;
4224
+ enableSnapshots: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4225
+ postMergeMemories: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4226
+ commitInstructions: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4227
+ maxAgentCompletions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4228
+ enableAgentMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4229
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4230
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4231
+ disableDesktopProxying: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4232
+ previewUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4233
+ recentUrls: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4234
+ url: z.ZodString;
4235
+ timestamp: z.ZodNumber;
4236
+ starred: z.ZodBoolean;
4237
+ }, z.core.$strip>>>>;
4238
+ skipCommandSecurity: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4239
+ httpsServerKeyPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4240
+ httpsServerCertPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4241
+ httpsServerCaPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4242
+ httpsServerKeyContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4243
+ httpsServerCertContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4244
+ httpsServerCaContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4245
+ httpsServerPfx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4246
+ httpsServerPassphrase: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4247
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4248
+ httpsServerSecureOptions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4249
+ httpsServerCiphers: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4250
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4251
+ httpsServerRequestCert: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4252
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4253
+ isPreferredForRepo: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4254
+ singleTenancyConfig: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4255
+ previewPasswordProtection: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4256
+ enabled: z.ZodBoolean;
4257
+ password: z.ZodOptional<z.ZodString>;
4258
+ }, z.core.$strip>>>;
4259
+ }, z.core.$strip>>;
4260
+ hosting: z.ZodOptional<z.ZodObject<{
4261
+ enabled: z.ZodOptional<z.ZodBoolean>;
4262
+ buildConfig: z.ZodOptional<z.ZodObject<{
4263
+ buildCommand: z.ZodOptional<z.ZodString>;
4264
+ buildOutputDir: z.ZodOptional<z.ZodString>;
4265
+ nodeVersion: z.ZodOptional<z.ZodString>;
4266
+ }, z.core.$strip>>;
4267
+ environment: z.ZodOptional<z.ZodObject<{
4268
+ build: z.ZodOptional<z.ZodArray<z.ZodObject<{
4269
+ key: z.ZodString;
4270
+ value: z.ZodString;
4271
+ isSecret: z.ZodBoolean;
4272
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4273
+ explanation: z.ZodOptional<z.ZodString>;
4274
+ }, z.core.$strip>>>;
4275
+ prod: z.ZodOptional<z.ZodArray<z.ZodObject<{
4276
+ key: z.ZodString;
4277
+ value: z.ZodString;
4278
+ isSecret: z.ZodBoolean;
4279
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4280
+ explanation: z.ZodOptional<z.ZodString>;
4281
+ }, z.core.$strip>>>;
4282
+ }, z.core.$strip>>;
4283
+ autoDeploy: z.ZodOptional<z.ZodBoolean>;
4284
+ }, z.core.$strip>>;
4285
+ }, z.core.$strip>;
4286
+ export type ProjectTemplateOverrides = z.infer<typeof ProjectTemplateOverridesSchema>;
4287
+ export declare const CreateProjectTemplateFromProjectOptionsSchema: z.ZodObject<{
4288
+ sourceProjectId: z.ZodString;
4289
+ sourceBranchName: z.ZodString;
4290
+ overrides: z.ZodOptional<z.ZodObject<{
4291
+ name: z.ZodOptional<z.ZodString>;
4292
+ description: z.ZodOptional<z.ZodString>;
4293
+ repoFullName: z.ZodOptional<z.ZodString>;
4294
+ repoProvider: z.ZodOptional<z.ZodEnum<{
4295
+ azure: "azure";
4296
+ bitbucket: "bitbucket";
4297
+ custom: "custom";
4298
+ github: "github";
4299
+ gitlab: "gitlab";
4300
+ internalHost: "internalHost";
4301
+ selfHostedGithub: "selfHostedGithub";
4302
+ }>>;
4303
+ repoUrl: z.ZodOptional<z.ZodString>;
4304
+ repoPrivate: z.ZodOptional<z.ZodBoolean>;
4305
+ screenshot: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4306
+ order: z.ZodOptional<z.ZodNumber>;
4307
+ hidden: z.ZodOptional<z.ZodBoolean>;
4308
+ isDefault: z.ZodOptional<z.ZodBoolean>;
4309
+ settings: z.ZodOptional<z.ZodObject<{
4310
+ isNativeApp: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4311
+ autoDetectDevServer: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4312
+ autoDetectDevServerPatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4313
+ fusionEnvironment: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4314
+ cloud: "cloud";
4315
+ "cloud-v2": "cloud-v2";
4316
+ "container-less": "container-less";
4317
+ containerized: "containerized";
4318
+ }>>>;
4319
+ devServerPort: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4320
+ devServerUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4321
+ refreshPreview: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4322
+ installCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4323
+ installNpmrc: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4324
+ validateCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4325
+ proxyOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4326
+ proxyDefaultOrigin: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4327
+ defaultAutoPush: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4328
+ "ff-push": "ff-push";
4329
+ "force-push": "force-push";
4330
+ "merge-push": "merge-push";
4331
+ none: "none";
4332
+ "safe-push": "safe-push";
4333
+ }>>>;
4334
+ gitBranchNamingStrategy: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4335
+ "ai-session": "ai-session";
4336
+ "branch-name": "branch-name";
4337
+ custom: "custom";
4338
+ }>>>;
4339
+ setupDependencies: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
4340
+ key: z.ZodString;
4341
+ type: z.ZodLiteral<"mise">;
4342
+ tool: z.ZodString;
4343
+ version: z.ZodOptional<z.ZodString>;
4344
+ }, z.core.$strip>, z.ZodObject<{
4345
+ key: z.ZodString;
4346
+ type: z.ZodLiteral<"script">;
4347
+ name: z.ZodString;
4348
+ script: z.ZodString;
4349
+ }, z.core.$strip>], "type">>>>;
4350
+ hostRequirements: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4351
+ name: z.ZodString;
4352
+ checkScript: z.ZodString;
4353
+ installScript: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4354
+ installLink: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4355
+ platform: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4356
+ linux: "linux";
4357
+ macos: "macos";
4358
+ windows: "windows";
4359
+ }>>>;
4360
+ description: z.ZodOptional<z.ZodString>;
4361
+ }, z.core.$strip>>>>;
4362
+ skills: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
4363
+ key: z.ZodString;
4364
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
4365
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
4366
+ source: z.ZodString;
4367
+ }, z.core.$strip>, z.ZodObject<{
4368
+ key: z.ZodString;
4369
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
4370
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
4371
+ type: z.ZodLiteral<"npm">;
4372
+ package: z.ZodString;
4373
+ version: z.ZodOptional<z.ZodString>;
4374
+ }, z.core.$strip>, z.ZodObject<{
4375
+ key: z.ZodString;
4376
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
4377
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
4378
+ type: z.ZodLiteral<"github">;
4379
+ repo: z.ZodString;
4380
+ ref: z.ZodOptional<z.ZodString>;
4381
+ path: z.ZodOptional<z.ZodString>;
4382
+ }, z.core.$strip>, z.ZodObject<{
4383
+ key: z.ZodString;
4384
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
4385
+ agents: z.ZodOptional<z.ZodArray<z.ZodString>>;
4386
+ type: z.ZodLiteral<"url">;
4387
+ url: z.ZodString;
4388
+ }, z.core.$strip>]>>>>;
4389
+ gitBranchNamingCustom: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4390
+ askUserForBranchName: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4391
+ allowBranchFromRemote: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4392
+ devServerCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4393
+ screenshotCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4394
+ interactCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4395
+ serverTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4396
+ cpuKind: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4397
+ performance: "performance";
4398
+ shared: "shared";
4399
+ standard: "standard";
4400
+ }>>>;
4401
+ cpus: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<4>]>>>;
4402
+ memory: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
4403
+ memoryLimit: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<2048>, z.ZodLiteral<4096>, z.ZodLiteral<8192>, z.ZodLiteral<16384>]>>>;
4404
+ autoStop: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4405
+ off: "off";
4406
+ stop: "stop";
4407
+ suspend: "suspend";
4408
+ }>>>;
4409
+ mainBranchName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4410
+ minMachinesRunning: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4411
+ 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>]>>>;
4412
+ includePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4413
+ includePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4414
+ errorIgnorePatterns: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4415
+ environmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4416
+ key: z.ZodString;
4417
+ value: z.ZodString;
4418
+ isSecret: z.ZodBoolean;
4419
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4420
+ explanation: z.ZodOptional<z.ZodString>;
4421
+ }, z.core.$strip>>>>;
4422
+ requiredEnvironmentVariables: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4423
+ key: z.ZodString;
4424
+ description: z.ZodOptional<z.ZodString>;
4425
+ optional: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
4426
+ }, z.core.$strip>>>>;
4427
+ fileOverrides: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodXor<readonly [z.ZodObject<{
4428
+ path: z.ZodString;
4429
+ content: z.ZodString;
4430
+ }, z.core.$strip>, z.ZodObject<{
4431
+ path: z.ZodString;
4432
+ base64: z.ZodString;
4433
+ }, z.core.$strip>]>>>>;
4434
+ customInstructions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4435
+ id: z.ZodString;
4436
+ name: z.ZodString;
4437
+ content: z.ZodString;
4438
+ type: z.ZodOptional<z.ZodEnum<{
4439
+ "agent-mode": "agent-mode";
4440
+ always: "always";
4441
+ }>>;
4442
+ filePath: z.ZodOptional<z.ZodString>;
4443
+ glob: z.ZodOptional<z.ZodString>;
4444
+ description: z.ZodOptional<z.ZodString>;
4445
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
4446
+ hideUI: z.ZodOptional<z.ZodBoolean>;
4447
+ isSkill: z.ZodOptional<z.ZodBoolean>;
4448
+ disableModelInvocation: z.ZodOptional<z.ZodBoolean>;
4449
+ userInvocable: z.ZodOptional<z.ZodBoolean>;
4450
+ scope: z.ZodOptional<z.ZodEnum<{
4451
+ builtin: "builtin";
4452
+ plugin: "plugin";
4453
+ project: "project";
4454
+ user: "user";
4455
+ }>>;
4456
+ pluginName: z.ZodOptional<z.ZodString>;
4457
+ ownedAgents: z.ZodOptional<z.ZodArray<z.ZodObject<{
4458
+ name: z.ZodString;
4459
+ description: z.ZodOptional<z.ZodString>;
4460
+ }, z.core.$strip>>>;
4461
+ }, z.core.$strip>>>>;
4462
+ customAgents: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4463
+ name: z.ZodString;
4464
+ description: z.ZodOptional<z.ZodString>;
4465
+ systemPrompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
4466
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
4467
+ model: z.ZodOptional<z.ZodString>;
4468
+ roundRobinModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
4469
+ position: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
4470
+ "browser-testing": "browser-testing";
4471
+ "builder-code": "builder-code";
4472
+ "builder-code-panel": "builder-code-panel";
4473
+ "builder-publish-integration": "builder-publish-integration";
4474
+ cli: "cli";
4475
+ "code-review-orchestrator": "code-review-orchestrator";
4476
+ "create-app-firebase": "create-app-firebase";
4477
+ "create-app-lovable": "create-app-lovable";
4478
+ "design-system-indexer": "design-system-indexer";
4479
+ "dsi-mcp": "dsi-mcp";
4480
+ "editor-ai": "editor-ai";
4481
+ fusion: "fusion";
4482
+ "org-agent": "org-agent";
4483
+ "org-worker": "org-worker";
4484
+ "project-configuration": "project-configuration";
4485
+ "projects-scheduler-memory-extraction": "projects-scheduler-memory-extraction";
4486
+ "repo-indexing": "repo-indexing";
4487
+ "setup-project": "setup-project";
4488
+ unknown: "unknown";
4489
+ }>, 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">]>>;
4490
+ needDevServer: z.ZodOptional<z.ZodBoolean>;
4491
+ needValidation: z.ZodOptional<z.ZodBoolean>;
4492
+ includeMemories: z.ZodOptional<z.ZodBoolean>;
4493
+ resetAfterRun: z.ZodOptional<z.ZodBoolean>;
4494
+ mcpServers: z.ZodOptional<z.ZodBoolean>;
4495
+ asyncSubAgents: z.ZodOptional<z.ZodBoolean>;
4496
+ queueBehavior: z.ZodOptional<z.ZodObject<{
4497
+ schedule: z.ZodEnum<{
4498
+ interrupt: "interrupt";
4499
+ "interrupt-clear": "interrupt-clear";
4500
+ "interrupt-replace": "interrupt-replace";
4501
+ "next-turn": "next-turn";
4502
+ "until-idle": "until-idle";
4503
+ }>;
4504
+ coalesce: z.ZodEnum<{
4505
+ merge: "merge";
4506
+ "preserve-order": "preserve-order";
4507
+ "replace-latest": "replace-latest";
4508
+ }>;
4509
+ }, z.core.$strip>>;
4510
+ queueMode: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"next-turn">, z.ZodLiteral<"until-idle">, z.ZodObject<{
4511
+ schedule: z.ZodEnum<{
4512
+ interrupt: "interrupt";
4513
+ "interrupt-clear": "interrupt-clear";
4514
+ "interrupt-replace": "interrupt-replace";
4515
+ "next-turn": "next-turn";
4516
+ "until-idle": "until-idle";
4517
+ }>;
4518
+ coalesce: z.ZodEnum<{
4519
+ merge: "merge";
4520
+ "preserve-order": "preserve-order";
4521
+ "replace-latest": "replace-latest";
4522
+ }>;
4523
+ }, z.core.$strip>]>>;
4524
+ softContextWindow: z.ZodOptional<z.ZodNumber>;
4525
+ filePath: z.ZodOptional<z.ZodString>;
4526
+ maxTimeoutMs: z.ZodOptional<z.ZodNumber>;
4527
+ maxCompletions: z.ZodOptional<z.ZodNumber>;
4528
+ reasoning: z.ZodOptional<z.ZodEnum<{
4529
+ auto: "auto";
4530
+ high: "high";
4531
+ low: "low";
4532
+ max: "max";
4533
+ medium: "medium";
4534
+ minimal: "minimal";
4535
+ none: "none";
4536
+ xhigh: "xhigh";
4537
+ }>>;
4538
+ defaultSyncChanges: z.ZodOptional<z.ZodObject<{
4539
+ remoteBranches: z.ZodOptional<z.ZodEnum<{
4540
+ ai: "ai";
4541
+ both: "both";
4542
+ main: "main";
4543
+ }>>;
4544
+ fastForward: z.ZodOptional<z.ZodEnum<{
4545
+ auto: "auto";
4546
+ never: "never";
4547
+ required: "required";
4548
+ }>>;
4549
+ canPush: z.ZodOptional<z.ZodBoolean>;
4550
+ uncommittedChanges: z.ZodOptional<z.ZodEnum<{
4551
+ commit: "commit";
4552
+ fail: "fail";
4553
+ stash: "stash";
4554
+ }>>;
4555
+ requestRefresh: z.ZodOptional<z.ZodBoolean>;
4556
+ allowUnrelatedHistory: z.ZodOptional<z.ZodBoolean>;
4557
+ resetToBase: z.ZodOptional<z.ZodBoolean>;
4558
+ updateLastCommits: z.ZodOptional<z.ZodBoolean>;
4559
+ }, z.core.$strip>>;
4560
+ scope: z.ZodOptional<z.ZodEnum<{
4561
+ plugin: "plugin";
4562
+ project: "project";
4563
+ user: "user";
4564
+ }>>;
4565
+ pluginName: z.ZodOptional<z.ZodString>;
4566
+ }, z.core.$strip>>>>;
4567
+ mcpServers: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4568
+ command: z.ZodString;
4569
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
4570
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4571
+ envFile: z.ZodOptional<z.ZodString>;
4572
+ retries: z.ZodOptional<z.ZodNumber>;
4573
+ }, z.core.$strip>>>>;
4574
+ commitMode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4575
+ commits: "commits";
4576
+ "draft-prs": "draft-prs";
4577
+ prs: "prs";
4578
+ }>>>;
4579
+ autoCloseBranchOnMerge: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4580
+ enableMergePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4581
+ minRequiredApprovals: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4582
+ requireApprovalBeforePR: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4583
+ requiredApproverRoleIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4584
+ requiredApproverRoleId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4585
+ defaultBranchType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
4586
+ private: "private";
4587
+ shared: "shared";
4588
+ }>>>;
4589
+ dockerImagePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4590
+ ghcrUsername: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4591
+ ghcrToken: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4592
+ nodeVersion: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4593
+ designSystems: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
4594
+ designTokenStrictMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4595
+ designModeSelector: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4596
+ useNI: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4597
+ folders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4598
+ name: z.ZodString;
4599
+ remoteUrl: z.ZodString;
4600
+ mainBranchName: z.ZodOptional<z.ZodString>;
4601
+ includePath: z.ZodOptional<z.ZodString>;
4602
+ addedBy: z.ZodOptional<z.ZodString>;
4603
+ repoProvider: z.ZodOptional<z.ZodString>;
4604
+ repoProtocol: z.ZodOptional<z.ZodString>;
4605
+ enableGit: z.ZodOptional<z.ZodBoolean>;
4606
+ }, z.core.$strip>>>>;
4607
+ agentsMD: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4608
+ initializationCommand: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4609
+ repoSubpath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4610
+ recommendedRoot: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4611
+ https: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4612
+ localHttpsDomain: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4613
+ browserAutomation: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4614
+ backgroundAgents: z.ZodOptional<z.ZodBoolean>;
4615
+ builderApp: z.ZodOptional<z.ZodBoolean>;
4616
+ instructions: z.ZodOptional<z.ZodString>;
4617
+ authUser: z.ZodOptional<z.ZodString>;
4618
+ authPassword: z.ZodOptional<z.ZodString>;
4619
+ }, z.core.$strip>>>;
4620
+ prReviewer: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4621
+ enabled: z.ZodBoolean;
4622
+ instructions: z.ZodOptional<z.ZodString>;
4623
+ reviewEffort: z.ZodOptional<z.ZodEnum<{
4624
+ high: "high";
4625
+ low: "low";
4626
+ medium: "medium";
4627
+ }>>;
4628
+ model: z.ZodOptional<z.ZodString>;
4629
+ }, z.core.$strip>>>;
4630
+ enableSnapshots: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4631
+ postMergeMemories: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4632
+ commitInstructions: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4633
+ maxAgentCompletions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4634
+ enableAgentMode: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4635
+ allowPreviewAutoSubmit: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4636
+ enforceDesktopAppOnly: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4637
+ disableDesktopProxying: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4638
+ previewUrl: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4639
+ recentUrls: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
4640
+ url: z.ZodString;
4641
+ timestamp: z.ZodNumber;
4642
+ starred: z.ZodBoolean;
4643
+ }, z.core.$strip>>>>;
4644
+ skipCommandSecurity: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4645
+ httpsServerKeyPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4646
+ httpsServerCertPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4647
+ httpsServerCaPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4648
+ httpsServerKeyContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4649
+ httpsServerCertContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4650
+ httpsServerCaContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4651
+ httpsServerPfx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4652
+ httpsServerPassphrase: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4653
+ httpsServerSecureProtocol: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4654
+ httpsServerSecureOptions: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
4655
+ httpsServerCiphers: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4656
+ httpsServerHonorCipherOrder: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4657
+ httpsServerRequestCert: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4658
+ httpsServerRejectUnauthorized: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4659
+ isPreferredForRepo: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
4660
+ singleTenancyConfig: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4661
+ previewPasswordProtection: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4662
+ enabled: z.ZodBoolean;
4663
+ password: z.ZodOptional<z.ZodString>;
4664
+ }, z.core.$strip>>>;
4665
+ }, z.core.$strip>>;
4666
+ hosting: z.ZodOptional<z.ZodObject<{
4667
+ enabled: z.ZodOptional<z.ZodBoolean>;
4668
+ buildConfig: z.ZodOptional<z.ZodObject<{
4669
+ buildCommand: z.ZodOptional<z.ZodString>;
4670
+ buildOutputDir: z.ZodOptional<z.ZodString>;
4671
+ nodeVersion: z.ZodOptional<z.ZodString>;
4672
+ }, z.core.$strip>>;
4673
+ environment: z.ZodOptional<z.ZodObject<{
4674
+ build: z.ZodOptional<z.ZodArray<z.ZodObject<{
4675
+ key: z.ZodString;
4676
+ value: z.ZodString;
4677
+ isSecret: z.ZodBoolean;
4678
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4679
+ explanation: z.ZodOptional<z.ZodString>;
4680
+ }, z.core.$strip>>>;
4681
+ prod: z.ZodOptional<z.ZodArray<z.ZodObject<{
4682
+ key: z.ZodString;
4683
+ value: z.ZodString;
4684
+ isSecret: z.ZodBoolean;
4685
+ placeholder: z.ZodOptional<z.ZodBoolean>;
4686
+ explanation: z.ZodOptional<z.ZodString>;
4687
+ }, z.core.$strip>>>;
4688
+ }, z.core.$strip>>;
4689
+ autoDeploy: z.ZodOptional<z.ZodBoolean>;
4690
+ }, z.core.$strip>>;
4691
+ }, z.core.$strip>>;
4692
+ }, z.core.$strip>;
4693
+ export type CreateProjectTemplateFromProjectOptions = z.infer<typeof CreateProjectTemplateFromProjectOptionsSchema>;
4694
+ /**
4695
+ * Deliberately minimal: the stored template carries plaintext secret env values,
4696
+ * so nothing beyond the identity of the new template goes back to the caller.
4697
+ */
4698
+ export declare const CreateProjectTemplateFromProjectResponseSchema: z.ZodObject<{
4699
+ template: z.ZodObject<{
4700
+ id: z.ZodString;
4701
+ name: z.ZodString;
4702
+ }, z.core.$strip>;
4703
+ }, z.core.$strip>;
4704
+ export type CreateProjectTemplateFromProjectResponse = z.infer<typeof CreateProjectTemplateFromProjectResponseSchema>;
3197
4705
  export {};