vercel 59.25.4 → 60.0.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/dist/chunks/{add-B6SKHP6R.js → add-7OUJAZIH.js} +1 -1
- package/dist/chunks/{add-6MVD3GYU.js → add-D4E2N3HU.js} +1 -1
- package/dist/chunks/{add-Y34MSA3T.js → add-UG57LDJR.js} +1 -1
- package/dist/chunks/{build-PC5EQP2P.js → build-VSV5LVJK.js} +1 -1
- package/dist/chunks/{chunk-GJZRIDFC.js → chunk-3YOA3ODU.js} +1 -1
- package/dist/chunks/chunk-4JFQYK65.js +9 -0
- package/dist/chunks/{chunk-F7UV4YLV.js → chunk-4VFDQB4H.js} +2 -2
- package/dist/chunks/{chunk-P6C5L7KC.js → chunk-4XAIK5CI.js} +3 -3
- package/dist/chunks/{chunk-Q6O7GA7P.js → chunk-5B3BHCFE.js} +1 -1
- package/dist/chunks/{chunk-NBVY237X.js → chunk-5ENY7DSN.js} +1 -1
- package/dist/chunks/{chunk-CDK22NA2.js → chunk-5JFBDZTI.js} +1 -1
- package/dist/chunks/{chunk-Q22JZSWD.js → chunk-5LH3CZMJ.js} +1 -1
- package/dist/chunks/chunk-5UOVEMYX.js +7 -0
- package/dist/chunks/{chunk-OICV3NTQ.js → chunk-5WW7LFI6.js} +1 -1
- package/dist/chunks/{chunk-4M7CX4YK.js → chunk-AH3A52IK.js} +1 -1
- package/dist/chunks/{chunk-JUUECT2E.js → chunk-ECJKSW62.js} +1 -1
- package/dist/chunks/{chunk-VTQUMQ2P.js → chunk-EWSS6LUE.js} +1 -1
- package/dist/chunks/{chunk-3YEWE5MO.js → chunk-FFQ2SDHN.js} +1 -1
- package/dist/chunks/{chunk-DUZUOQVB.js → chunk-I7PARON4.js} +1 -1
- package/dist/chunks/{chunk-XJUAWZU2.js → chunk-IAS5LONF.js} +1 -1
- package/dist/chunks/{chunk-M3HTK4NR.js → chunk-JC4FG6EW.js} +1 -1
- package/dist/chunks/{chunk-TOHAMRDX.js → chunk-JMNAVONO.js} +1 -1
- package/dist/chunks/{chunk-QMO7LJLU.js → chunk-JSVZKMZO.js} +1 -1
- package/dist/chunks/{chunk-TFG7RTGQ.js → chunk-KDKSYHTU.js} +1 -1
- package/dist/chunks/{chunk-47BI2WLV.js → chunk-LTFVLQEF.js} +1 -1
- package/dist/chunks/{chunk-TGR6YHGO.js → chunk-MCZNQE4G.js} +1 -1
- package/dist/chunks/{chunk-ZY3FVURC.js → chunk-MNR5YQDP.js} +1 -1
- package/dist/chunks/{chunk-Q7UVAEN3.js → chunk-MRSU4C5C.js} +1 -1
- package/dist/chunks/{chunk-UOHEF2JZ.js → chunk-MWU4ZPZ4.js} +4 -4
- package/dist/chunks/{chunk-4NAYJHLI.js → chunk-PGHEHRSM.js} +1 -1
- package/dist/chunks/{chunk-643SKD3D.js → chunk-PNY65NDD.js} +1 -1
- package/dist/chunks/chunk-QFPCR4NL.js +7 -0
- package/dist/chunks/{chunk-FVIQMWYR.js → chunk-QXC2G7JY.js} +1 -1
- package/dist/chunks/{chunk-UWLDK7LJ.js → chunk-REONGB6P.js} +1 -1
- package/dist/chunks/chunk-SW7MNF4H.js +7 -0
- package/dist/chunks/{chunk-MAWP4YIY.js → chunk-TH2WHOUV.js} +1 -1
- package/dist/chunks/{chunk-WKZ6JSGZ.js → chunk-TKBORMUF.js} +1 -1
- package/dist/chunks/{chunk-T6A5HA5U.js → chunk-TQLNWAJY.js} +1 -1
- package/dist/chunks/{chunk-26LYRNMQ.js → chunk-TUVMXISG.js} +2 -2
- package/dist/chunks/{chunk-PSPKPQRS.js → chunk-TZN45RBM.js} +1 -1
- package/dist/chunks/{chunk-EIXOJUNN.js → chunk-UTVDFSQS.js} +1 -1
- package/dist/chunks/chunk-VHTNAYWA.js +7 -0
- package/dist/chunks/{chunk-GA65WALP.js → chunk-VVWALKUM.js} +1 -1
- package/dist/chunks/chunk-WSZHNPA6.js +7 -0
- package/dist/chunks/{chunk-MXCU7XDC.js → chunk-WTAM6QXM.js} +1 -1
- package/dist/chunks/{chunk-TF6R2AK2.js → chunk-XU4ETL7O.js} +1 -1
- package/dist/chunks/{chunk-UFFYFZAM.js → chunk-Y4GI6BXT.js} +1 -1
- package/dist/chunks/{chunk-6LE3FU2P.js → chunk-Y7PHTVZ6.js} +1 -1
- package/dist/chunks/{chunk-AKZOYEBP.js → chunk-YJZFFNUB.js} +4 -6
- package/dist/chunks/{clear-HVRCYR7Y.js → clear-NUMBAODD.js} +1 -1
- package/dist/chunks/{compile-vercel-config-C6HK4CET.js → compile-vercel-config-75XN6ZKP.js} +1 -1
- package/dist/chunks/{config-IGE3P5DW.js → config-26RISHPB.js} +1 -1
- package/dist/chunks/{config-OWBQ7UMH.js → config-Q6V74NTU.js} +1 -1
- package/dist/chunks/config-validator.mjs +1 -1
- package/dist/chunks/{constants-G4UYVLOF.js → constants-NCE2LWSS.js} +1 -1
- package/dist/chunks/{delete-7TLDNY3R.js → delete-LGIPH2II.js} +1 -1
- package/dist/chunks/{delete-44OXGSMJ.js → delete-PWVNXN4N.js} +1 -1
- package/dist/chunks/{detect-projects-MUTN7PJG.js → detect-projects-3AFQ2AC5.js} +1 -1
- package/dist/chunks/{detect-services-YFGQZSKL.js → detect-services-EX5ZTO5D.js} +1 -1
- package/dist/chunks/{disable-CAXQ5K7P.js → disable-62HLGVJG.js} +1 -1
- package/dist/chunks/{discard-VK4JVVUI.js → discard-LYY4AMIA.js} +1 -1
- package/dist/chunks/{edit-QQYOUSYT.js → edit-E6AMU6OJ.js} +1 -1
- package/dist/chunks/{edit-OUEGHFNI.js → edit-FEZFLAIJ.js} +1 -1
- package/dist/chunks/{enable-J3JXIEXT.js → enable-QDIH43E3.js} +1 -1
- package/dist/chunks/{export-V6BO2IPM.js → export-FO5JCAB4.js} +1 -1
- package/dist/chunks/{generate-cert-for-deploy-MICLCYMH.js → generate-cert-for-deploy-FG57HLGC.js} +1 -1
- package/dist/chunks/{image-2XS5KWHL.js → image-LZ32HAQV.js} +1 -1
- package/dist/chunks/{import-builders-P5BVQ6XV.js → import-builders-SELE5VYE.js} +1 -1
- package/dist/chunks/{inspect-XASVKP45.js → inspect-22LMAKCS.js} +1 -1
- package/dist/chunks/{inspect-NGKRKYFJ.js → inspect-BUNQSUCN.js} +1 -1
- package/dist/chunks/{inspect-WEURPPD2.js → inspect-D2S5CEPW.js} +1 -1
- package/dist/chunks/{inspect-4BJNJTCC.js → inspect-LGQ44GYB.js} +1 -1
- package/dist/chunks/{inspect-FFSXZNJX.js → inspect-XWT4QQRM.js} +1 -1
- package/dist/chunks/{list-DMNKMHHX.js → list-TXJQFAGW.js} +1 -1
- package/dist/chunks/{list-P35Q5I52.js → list-WRQRFVUL.js} +1 -1
- package/dist/chunks/{list-WZZJBBRG.js → list-XL4GMICP.js} +1 -1
- package/dist/chunks/{login-5OBK5VD6.js → login-QIPGRGDE.js} +1 -1
- package/dist/chunks/{logs-VRRUJRHE.js → logs-P4NGHB4I.js} +1 -1
- package/dist/chunks/{ls-YLEQL3HD.js → ls-COWL5TXJ.js} +1 -1
- package/dist/chunks/{ls-PFPQ4FVQ.js → ls-HTSBFV7C.js} +1 -1
- package/dist/chunks/{ls-ZQ7XIDOR.js → ls-JGBNPJEW.js} +1 -1
- package/dist/chunks/{ls-KDS7XXBR.js → ls-LOXX7YQ2.js} +1 -1
- package/dist/chunks/{ls-URHGCRIJ.js → ls-OCTMGB6C.js} +1 -1
- package/dist/chunks/{ls-J6HN2ZV6.js → ls-TXXVAVMF.js} +1 -1
- package/dist/chunks/{ls-6RY2JL5Y.js → ls-YTZOJEBT.js} +1 -1
- package/dist/chunks/mutate-BZHBI2PK.js +9 -0
- package/dist/chunks/notifications-CTNZYZZ2.js +7 -0
- package/dist/chunks/{open-A6XQS4I6.js → open-D53RMFUT.js} +1 -1
- package/dist/chunks/{permissions-C4UXCLJM.js → permissions-XHGXTFEU.js} +1 -1
- package/dist/chunks/{publish-TEH23DH4.js → publish-WTIW7W3Z.js} +1 -1
- package/dist/chunks/{pull-75Z4DDJE.js → pull-N5VAKGFJ.js} +1 -1
- package/dist/chunks/{purchase-domain-if-available-MMZA2NKN.js → purchase-domain-if-available-ZBXG4E7J.js} +1 -1
- package/dist/chunks/{push-MVETL2WL.js → push-ZQWVBEAJ.js} +1 -1
- package/dist/chunks/{query-SZHNXTY4.js → query-NNJNXQZG.js} +1 -1
- package/dist/chunks/{reorder-QLBFRK7S.js → reorder-64FNHY6J.js} +1 -1
- package/dist/chunks/{reply-YAQS5FVC.js → reply-MIJ6C3KT.js} +1 -1
- package/dist/chunks/{resolve-HANE4JO2.js → resolve-5HPYDKB4.js} +1 -1
- package/dist/chunks/{restore-4JNAT7IE.js → restore-KQ5T3MWQ.js} +1 -1
- package/dist/chunks/{rm-JWNSB3XZ.js → rm-C5GXOG3I.js} +1 -1
- package/dist/chunks/{rm-CVCPQXJI.js → rm-HZRLQ2FR.js} +1 -1
- package/dist/chunks/{rm-ZSFTT5HX.js → rm-S3TN7REH.js} +1 -1
- package/dist/chunks/{rm-LYOMGU2M.js → rm-WTUTQK3R.js} +1 -1
- package/dist/chunks/{rm-ARC7WDLH.js → rm-ZLKEDKBI.js} +1 -1
- package/dist/chunks/{rule-inspect-3RVLM4SD.js → rule-inspect-G4RGKBOI.js} +1 -1
- package/dist/chunks/{rules-NYBEYE3C.js → rules-5ECWTZPP.js} +1 -1
- package/dist/chunks/{schema-Y7A5YQQX.js → schema-EQCAQVSE.js} +1 -1
- package/dist/chunks/{schema-XAUOL37J.js → schema-NERSRSCG.js} +1 -1
- package/dist/chunks/{set-CTR3K32H.js → set-7HZRIJ6K.js} +1 -1
- package/dist/chunks/{setup-and-link-DHQEQNHY.js → setup-and-link-G4G4JJ6W.js} +1 -1
- package/dist/chunks/{tags-Y6NFCY2R.js → tags-JSRGITRJ.js} +1 -1
- package/dist/chunks/{update-SPG6HQBN.js → update-4B5AEB2C.js} +1 -1
- package/dist/commands/build/index.js +1 -1
- package/dist/commands/deploy/index.js +3 -3
- package/dist/commands/dev/index.js +20 -17
- package/dist/commands/env/index.js +1 -1
- package/dist/commands/link/index.js +1 -1
- package/dist/commands/list/index.js +1 -1
- package/dist/commands-bulk.js +46 -44
- package/dist/index.js +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +54 -53
- package/dist/chunks/chunk-3QHJYVCY.js +0 -7
- package/dist/chunks/chunk-67ADLWX4.js +0 -7
- package/dist/chunks/chunk-AZ6NRDHG.js +0 -7
- package/dist/chunks/chunk-GTDDB5H3.js +0 -9
- package/dist/chunks/chunk-KUVMCIR4.js +0 -7
- package/dist/chunks/chunk-OAKO6LVS.js +0 -7
- package/dist/chunks/mutate-YBYD3KNW.js +0 -9
- package/dist/chunks/notifications-SB5JHLTX.js +0 -7
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
-
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
-
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
-
const require = __createRequire(import.meta.url);
|
|
5
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = __dirname_(__filename);
|
|
7
|
-
import{tracesCommand}from"./chunk-M5AV545M.js";import{vcrCommand}from"./chunk-65JYSI26.js";import{metricsCommand}from"./chunk-WUZD4KBL.js";import{routesCommand}from"./chunk-3QHJYVCY.js";import{commentsCommand}from"./chunk-NBVY237X.js";import{alertsCommand}from"./chunk-EIXOJUNN.js";import{logsCommand}from"./chunk-MEAY2K5Z.js";import{activityCommand}from"./chunk-EQ52F4LH.js";import{apiCommand}from"./chunk-CVKB54WW.js";import{loginCommand}from"./chunk-JKTQV2QJ.js";import{buildCommand,pullCommand}from"./chunk-6LE3FU2P.js";import{devCommand}from"./chunk-AZ6NRDHG.js";import{envCommand}from"./chunk-KUVMCIR4.js";import{listCommand}from"./chunk-ZKYS7EAB.js";import{allOption,confirmOption,deploymentOption,forceOption,formatOption,jsonOption,limitOption,nextOption,projectOption,protectionBypassOption,yesOption}from"./chunk-JAJW3P42.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";var deprecatedArchiveSplitTgz="split-tgz",initSubcommand={name:"init",aliases:[],description:"Create a manual deployment that can be continued later",hidden:!0,arguments:[],options:[{...forceOption,description:"Force a new deployment even if nothing has changed"},{name:"with-cache",shorthand:null,type:Boolean,deprecated:!1,description:'Retain build cache when using "--force"'},{name:"env",shorthand:"e",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during run-time (e.g. `-e KEY1=value1 -e KEY2=value2`)"},{name:"build-env",shorthand:"b",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during build-time (e.g. `-b KEY1=value1 -b KEY2=value2`)"},{name:"meta",shorthand:"m",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify metadata for the deployment (e.g. `-m KEY1=value1 -m KEY2=value2`)"},{name:"regions",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Set default regions to enable the deployment on"},{name:"prod",shorthand:null,type:Boolean,deprecated:!1,description:"Create a production deployment (shorthand for `--target=production`)"},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"skip-domain",shorthand:null,type:Boolean,deprecated:!1,description:"Disable the automatic promotion (aliasing) of the relevant domains to a new production deployment. You can use `vc promote` to complete the domain-assignment process later"},{...yesOption,description:"Use default options to skip all prompts"},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Specify the target deployment environment"},formatOption,jsonOption,confirmOption,projectOption],examples:[{name:"Create a manual deployment",value:"vercel deploy init"},{name:"Create a manual production deployment",value:"vercel deploy init --prod"}]},continueSubcommand={name:"continue",aliases:[],description:"Continue a manual deployment by uploading build outputs",hidden:!0,arguments:[],options:[{name:"id",shorthand:null,type:String,argument:"ID",deprecated:!1,description:"The deployment ID to continue (e.g. dpl_xxx)"},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"error",shorthand:null,type:String,argument:"MESSAGE",deprecated:!1,description:"Mark the deployment as errored with a message"}],examples:[{name:"Continue a deployment by ID",value:"vercel deploy continue --id dpl_xxx"}]},deployCommand={name:"deploy",aliases:[],description:"Deploy your project to Vercel. Use `--temporary` to create a temporary deployment without logging in. The `deploy` command is the default command for the Vercel CLI, and can be omitted (`vc deploy my-app` equals `vc my-app`). Use `--dry` to inspect the detected framework preset and source files without deploying.",arguments:[{name:"project-path",required:!1}],subcommands:[initSubcommand,continueSubcommand],options:[{...forceOption,description:"Force a new deployment even if nothing has changed"},{name:"with-cache",shorthand:null,type:Boolean,deprecated:!1,description:'Retain build cache when using "--force"'},{name:"env",shorthand:"e",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during run-time (e.g. `-e KEY1=value1 -e KEY2=value2`)"},{name:"build-env",shorthand:"b",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during build-time (e.g. `-b KEY1=value1 -b KEY2=value2`)"},{name:"turbo",shorthand:null,type:Boolean,deprecated:!1,description:"Use a Turbo build machine for this deployment"},{name:"meta",shorthand:"m",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify metadata for the deployment (e.g. `-m KEY1=value1 -m KEY2=value2`)"},{name:"regions",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Set default regions to enable the deployment on"},{name:"prebuilt",shorthand:null,type:Boolean,deprecated:!1,description:"Use in combination with `vc build`. Deploy an existing build"},{name:"prod",shorthand:null,type:Boolean,deprecated:!1,description:"Create a production deployment (shorthand for `--target=production`)"},{name:"temporary",shorthand:null,type:Boolean,deprecated:!1,description:"Create a temporary deployment without logging in"},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"no-wait",shorthand:null,type:Boolean,deprecated:!1,description:"Don't wait for the deployment to finish"},{name:"dry",shorthand:null,type:Boolean,deprecated:!1,description:"Inspect the detected framework preset and source files without uploading or creating a deployment. Non-TTY output includes every file as JSON"},{name:"skip-domain",shorthand:null,type:Boolean,deprecated:!1,description:"Disable the automatic promotion (aliasing) of the relevant domains to a new production deployment. You can use `vc promote` to complete the domain-assignment process later"},{...yesOption,description:"Use default options to skip all prompts"},{name:"logs",shorthand:"l",type:Boolean,deprecated:!1,description:"Print the build logs"},{name:"guidance",shorthand:null,type:Boolean,deprecated:!1,description:"Receive command suggestions once deployment is complete"},{name:"no-logs",shorthand:null,type:Boolean,deprecated:!0,description:"Do not print the build logs"},{name:"name",shorthand:"n",type:String,deprecated:!0},{name:"no-clipboard",shorthand:null,type:Boolean,deprecated:!0},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Specify the target deployment environment"},formatOption,jsonOption,confirmOption,projectOption],examples:[{name:"Deploy the current directory",value:"vercel"},{name:"Deploy a custom path",value:"vercel /usr/src/project"},{name:"Deploy with run-time Environment Variables",value:"vercel -e NODE_ENV=production"},{name:"Deploy with prebuilt outputs",value:["vercel build","vercel deploy --prebuilt"]},{name:"Deploy using a Turbo build machine",value:"vercel deploy --turbo"},{name:"Inspect deployment inputs without deploying",value:"vercel deploy --dry"},{name:"Get every deployment file as JSON",value:"vercel deploy --dry --json"},{name:"Write Deployment URL to a file",value:"vercel > deployment-url.txt"}]};var addSubcommand={name:"add",aliases:[],description:"Add projects to an existing repository link created by link --repo",arguments:[],options:[{...yesOption,description:"Skip questions when adding projects with default team and settings"}],examples:[{name:"Add projects to an existing repository link",value:`${packageName} link add`}]},linkCommand={name:"link",aliases:[],description:"Link a local directory to a Vercel project",arguments:[],subcommands:[addSubcommand],options:[{name:"repo",description:"Link multiple projects from the Git repository (alpha)",shorthand:"r",type:Boolean,deprecated:!1},{...projectOption,shorthand:"p",description:"Set the project name or ID to link; required for non-interactive existing-project links"},{name:"team",description:"Set the team ID or slug; use with --project for non-interactive links",shorthand:null,argument:"TEAM_ID_OR_SLUG",type:String,deprecated:!1},{...yesOption,description:"Skip questions when setting up with default team and settings"},confirmOption],examples:[{name:"Link current directory to a Vercel project",value:`${packageName} link`},{name:"Link current directory with default options and skip questions",value:`${packageName} link --yes`},{name:"Link to an existing project in CI or agent mode",value:`${packageName} link --yes --team <team-id> --project <project-name-or-id>`},{name:"Link a specific directory to a Vercel project",value:`${packageName} link --cwd /path/to/project`},{name:"Link multiple projects from the current Git repository",value:`${packageName} link --repo`},{name:"Add additional projects to an existing repository link",value:`${packageName} link add`}]};var agentCommand={name:"agent",aliases:[],description:"Generate an AGENTS.md file with Vercel deployment best practices",arguments:[{name:"init",required:!1}],options:[{...yesOption,description:"Skip confirmation prompt"}],examples:[{name:"Generate AGENTS.md with Vercel best practices",value:`${packageName} agent init`},{name:"Skip confirmation prompt (useful for CI)",value:`${packageName} agent init --yes`}]};var projectOption2={name:"project",shorthand:null,type:String,argument:"NAME|ID",deprecated:!1,description:"Project name or id to query (overrides the linked project)"},environmentOption={name:"environment",shorthand:null,type:String,argument:"production|preview",deprecated:!1,description:"Environment to query Agent Runs from (default: production)"},sinceOption={name:"since",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Only include Agent Runs after this time (ISO 8601 or relative: 1h, 30m, 7d)"},untilOption={name:"until",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Only include Agent Runs before this time (requires --since; default: now)"},jsonOption2={name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Print the raw API response as JSON to stdout"},listSubcommand={name:"list",aliases:["ls"],description:"List Agent Runs for a project",arguments:[],options:[projectOption2,environmentOption,sinceOption,untilOption,{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Search Agent Runs by title"},{name:"next",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Continue from a previous response"},{name:"page",shorthand:null,type:Number,argument:"N",deprecated:!0,description:"1-based page number (default: 1)"},{name:"limit",shorthand:"n",type:Number,argument:"N",deprecated:!1,description:"Number of Agent Runs per page (max: 100)"},jsonOption2],examples:[{name:"List recent production Agent Runs for the linked project",value:`${packageName} agent-runs list`},{name:"List preview Agent Runs from the last day",value:`${packageName} agent-runs list --environment preview --since 1d`},{name:"Search Agent Runs by title",value:`${packageName} agent-runs list --search "checkout"`},{name:"List Agent Runs for a specific team and project",value:`${packageName} agent-runs list --scope my-team --project my-app`},{name:"Print the raw list as JSON",value:`${packageName} agent-runs list --json`}]},inspectSubcommand={name:"inspect",aliases:[],description:"Show metadata, lifecycle events, usage, and subagent data for an Agent Run",arguments:[{name:"runId",required:!0}],options:[projectOption2,environmentOption,sinceOption,untilOption,jsonOption2],examples:[{name:"Inspect an Agent Run",value:`${packageName} agent-runs inspect run_1234567890`},{name:"Print the raw Agent Run as JSON",value:`${packageName} agent-runs inspect run_1234567890 --json`}]},traceSubcommand={name:"trace",aliases:[],description:"Show the trace for an Agent Run (turns, messages, reasoning, and tool calls)",arguments:[{name:"runId",required:!0}],options:[projectOption2,environmentOption,sinceOption,untilOption,{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Fetch newer trace activity using a cursor from a previous response"},{name:"previous",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Fetch older trace activity using a cursor from a previous response"},{name:"max-field-length",shorthand:null,type:Number,argument:"N",deprecated:!1,description:"Maximum length for individual string fields in the trace (default: 8000; 0 disables truncation)"},jsonOption2],examples:[{name:"Show the trace for an Agent Run",value:`${packageName} agent-runs trace run_1234567890`},{name:"Print the raw trace as JSON without truncation",value:`${packageName} agent-runs trace run_1234567890 --json --max-field-length 0`},{name:"Fetch newer activity from a paginated trace response",value:`${packageName} agent-runs trace run_1234567890 --next <cursor>`}]},projectsSubcommand={name:"projects",aliases:[],description:"List projects in the current team with Agent Runs activity",arguments:[],options:[environmentOption,sinceOption,untilOption,jsonOption2],examples:[{name:"List projects with Agent Runs activity",value:`${packageName} agent-runs projects`},{name:"List projects with Agent Runs activity in another team",value:`${packageName} agent-runs projects --scope my-team`}]},agentRunsCommand={name:"agent-runs",aliases:[],description:"Inspect Agent Runs observability data",arguments:[],subcommands:[listSubcommand,inspectSubcommand,traceSubcommand,projectsSubcommand],options:[],examples:[{name:"List recent production Agent Runs for the linked project",value:`${packageName} agent-runs list`},{name:"List projects with Agent Runs activity",value:`${packageName} agent-runs projects`},{name:"Inspect an Agent Run",value:`${packageName} agent-runs inspect run_1234567890`},{name:"Show the trace for an Agent Run",value:`${packageName} agent-runs trace run_1234567890`}]};var createSubcommand={name:"create",aliases:[],description:"Create a new AI Gateway API key",arguments:[],options:[{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Human-readable name for the API key"},{name:"budget",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"DEPRECATED: Use --limit instead"},{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!1,description:"Quota budget limit in dollars (minimum 1)"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Quota refresh cadence: daily, weekly, monthly, or none (default: none)"},{name:"include-byok",shorthand:null,type:Boolean,deprecated:!1,description:"Include BYOK usage in quota (default: false)"},{name:"alert-thresholds",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated spend percentages to alert at, a subset of 50,75,100 (e.g. 75,100)"},{name:"expiration",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Expiry for the key: 7d, 30d, 60d, 90d, 1y, or none (default: none)"},{name:"zdr-exempt",shorthand:null,type:Boolean,deprecated:!1,description:"Exempt the key from the team's ZDR-only model restriction (team owners only)"},{name:"bypass-all-settings",shorthand:null,type:Boolean,deprecated:!1,description:"Exempt the key from all of the team's restrictions: ZDR-only models, the provider/model allowlist, and the HIPAA and prompt-training filters (team owners only)"}],examples:[{name:"Create an API key with defaults",value:`${packageName} ai-gateway api-keys create`},{name:"Create an API key with a budget",value:`${packageName} ai-gateway api-keys create --name my-key --limit 500 --refresh-period monthly`},{name:"Create a key that expires and alerts on spend",value:`${packageName} ai-gateway api-keys create --limit 500 --alert-thresholds 75,100 --expiration 90d`},{name:"Create a ZDR-exempt key (team owners only)",value:`${packageName} ai-gateway api-keys create --name escape-hatch --zdr-exempt --expiration 7d`},{name:"Create a key that bypasses all team restrictions (team owners only)",value:`${packageName} ai-gateway api-keys create --name escape-hatch --bypass-all-settings --expiration 7d`}]},listSubcommand2={name:"list",aliases:["ls"],description:"List AI Gateway API keys",arguments:[],options:[formatOption],examples:[{name:"List API keys",value:`${packageName} ai-gateway api-keys ls`}]},inspectSubcommand2={name:"inspect",aliases:[],description:"Show details about an AI Gateway API key",arguments:[{name:"id",required:!0}],options:[formatOption],examples:[{name:"Inspect an API key",value:`${packageName} ai-gateway api-keys inspect key_123`}]},removeSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway API key",arguments:[{name:"id",required:!0}],options:[yesOption,formatOption],examples:[{name:"Remove an API key",value:`${packageName} ai-gateway api-keys rm key_123`}]},apiKeysSubcommand={name:"api-keys",aliases:[],description:"Manage AI Gateway API keys",arguments:[],subcommands:[createSubcommand,listSubcommand2,inspectSubcommand2,removeSubcommand],options:[],examples:[]},rulesAddSubcommand={name:"add",aliases:[],description:"Add an AI Gateway routing rule",arguments:[],options:[{name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"Rule type: rewrite or deny"},{name:"source",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Model the rule matches (e.g. anthropic/claude-sonnet-4.5)"},{name:"destination",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Target model a rewrite rule routes to"},{name:"reason",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Reason surfaced when the rule applies"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Human-readable description of the rule"},formatOption,jsonOption],examples:[{name:"Rewrite one model to another",value:`${packageName} ai-gateway rules add --type rewrite --source anthropic/claude-fable-5 --destination anthropic/claude-opus-4.8`},{name:"Deny a model",value:`${packageName} ai-gateway rules add --type deny --source openai/gpt-4o`}]},rulesListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway routing rules",arguments:[],options:[{name:"include-disabled",shorthand:null,type:Boolean,deprecated:!1,description:"Include disabled rules"},formatOption,jsonOption],examples:[{name:"List routing rules",value:`${packageName} ai-gateway rules ls`}]},rulesEditSubcommand={name:"edit",aliases:[],description:"Edit an AI Gateway routing rule",arguments:[{name:"ruleId",required:!0}],options:[{name:"enable",shorthand:null,type:Boolean,deprecated:!1,description:"Enable the rule"},{name:"disable",shorthand:null,type:Boolean,deprecated:!1,description:"Disable the rule"},{name:"destination",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Target model a rewrite rule routes to"},{name:"reason",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Reason surfaced when the rule applies"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Human-readable description of the rule"},formatOption,jsonOption],examples:[{name:"Disable a rule",value:`${packageName} ai-gateway rules edit rule_123 --disable`}]},rulesRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway routing rule",arguments:[{name:"ruleId",required:!0}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Remove a rule",value:`${packageName} ai-gateway rules rm rule_123`}]},rulesSubcommand={name:"rules",aliases:[],description:`Manage AI Gateway routing rules (Beta).
|
|
8
|
-
|
|
9
|
-
AI Gateway routing rules are in beta and may change before general availability. Avoid relying on them in production.`,arguments:[],subcommands:[rulesAddSubcommand,rulesListSubcommand,rulesEditSubcommand,rulesRemoveSubcommand],options:[],examples:[]},setupSubcommand={name:"setup",aliases:[],description:"Connect local coding agents to the AI Gateway",arguments:[],options:[{name:"agent",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Coding agent to configure, repeatable; omit to pick from the detected agents"},{name:"all",shorthand:null,type:Boolean,deprecated:!1,description:"Configure every supported coding agent"},{name:"key",shorthand:null,type:String,argument:"KEY",deprecated:!1,description:"Use an existing AI Gateway API key instead of creating one"},{name:"budget",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!1,description:"Quota budget in dollars for a newly created key (minimum 1)"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Quota refresh cadence for a new key: daily, weekly, monthly, or none"},{name:"include-byok",shorthand:null,type:Boolean,deprecated:!1,description:"Include BYOK usage in the new key quota"},{name:"expiration",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Expiry for a new key: 7d, 30d, 60d, 90d, 1y, or none (default: none)"},{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Name for a newly created API key"},{name:"reconfigure",shorthand:null,type:Boolean,deprecated:!1,description:"Re-run even if already configured, to rotate the key or switch team"},{name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Show what would change without writing any files"},{name:"no-backup",shorthand:null,type:Boolean,deprecated:!1,description:"Do not write .bak backups of changed files"},{name:"no-session-migration",shorthand:null,type:Boolean,deprecated:!1,description:"Do not copy existing Codex Desktop sessions for use with the Vercel AI Gateway provider."},{name:"no-keychain",shorthand:null,type:Boolean,deprecated:!1,description:"Always write the key into config files instead of the macOS Keychain"},{name:"agent-config",shorthand:null,type:[String],argument:"AGENT=PATH",deprecated:!1,description:"Override an agent's config file path, e.g. claude-code=/path/settings.json (repeatable)"},{name:"shell-rc",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Shell rc file to write the env exports into"},{name:"apply",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"How to apply non-interactively: edit (write files, default) or prompt (emit an agent prompt on stdout; requires the macOS Keychain)"},{name:"base-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Override the AI Gateway base URL written into agent configs (advanced; e.g. a preview deployment). Written verbatim."},yesOption],examples:[{name:"Connect all detected coding agents (creates a key)",value:`${packageName} ai-gateway setup`},{name:"Emit a prompt to hand to a coding agent instead of writing files",value:`${packageName} ai-gateway setup --apply prompt --yes`},{name:"Connect specific agents with a budgeted key",value:`${packageName} ai-gateway setup --agent claude-code --budget 500 --refresh-period monthly`},{name:"Rotate the key on an already-configured setup",value:`${packageName} ai-gateway setup --reconfigure`},{name:"Reuse an existing key and preview changes only",value:`${packageName} ai-gateway setup --key <key> --dry-run`},{name:"Point an agent at a different gateway base URL",value:`${packageName} ai-gateway setup --agent codex --base-url https://preview.ai-gateway.vercel.sh/v1`}]},codingAgentsSubcommand={name:"coding-agents",aliases:[],description:"Connect local coding agents to the AI Gateway",arguments:[],subcommands:[setupSubcommand],options:[],examples:[]},modelsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway models",arguments:[],options:[formatOption,jsonOption,{name:"virtual",shorthand:null,type:Boolean,deprecated:!1,description:"Show only your team's virtual models"},{name:"no-virtual",shorthand:null,type:Boolean,deprecated:!1,description:"Hide virtual models"}],examples:[{name:"List available models",value:`${packageName} ai-gateway models ls`},{name:"List only your team's virtual models",value:`${packageName} ai-gateway models ls --virtual`}]},modelsEndpointsSubcommand={name:"endpoints",aliases:[],description:"List provider endpoints for an AI Gateway model",arguments:[{name:"model",required:!0}],options:[formatOption,jsonOption],examples:[{name:"List provider endpoints for a model",value:`${packageName} ai-gateway models endpoints anthropic/claude-opus-4.8`}]},modelsSubcommand={name:"models",aliases:[],description:"Manage AI Gateway models",arguments:[],subcommands:[modelsListSubcommand,modelsEndpointsSubcommand],options:[],examples:[]},budgetDefaultOption={name:"default",shorthand:null,type:Boolean,deprecated:!1,description:"Target the default budget for the scope, applied to resources of that scope without their own budget"},budgetsSetSubcommand={name:"set",aliases:[],description:"Create or update an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!1,description:"Budget limit in dollars (minimum 1)"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Budget refresh cadence: daily, weekly, monthly, or none (default: monthly)"},budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Set a team budget",value:`${packageName} ai-gateway budgets set team --limit 500 --refresh-period monthly`},{name:"Set a project budget",value:`${packageName} ai-gateway budgets set project my-project --limit 200`},{name:"Set a user's budget",value:`${packageName} ai-gateway budgets set user teammate@example.com --limit 100`},{name:"Set an API key's budget",value:`${packageName} ai-gateway budgets set api-key my-key --limit 50`},{name:"Set the default budget for team members without their own",value:`${packageName} ai-gateway budgets set user --default --limit 50 --refresh-period monthly`}]},budgetsInspectSubcommand={name:"inspect",aliases:[],description:"Show one AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Inspect a user's budget",value:`${packageName} ai-gateway budgets inspect user teammate@example.com`},{name:"Inspect a project budget as JSON",value:`${packageName} ai-gateway budgets inspect project my-project --format json`},{name:"Inspect the per-member default budget",value:`${packageName} ai-gateway budgets inspect user --default`}]},budgetsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway budgets",arguments:[],options:[{name:"scope-type",shorthand:null,type:String,argument:"SCOPE",deprecated:!1,description:"Only list budgets for one scope: team, project, user, or api-key"},{name:"defaults",shorthand:null,type:Boolean,deprecated:!1,description:"List the team's default budgets instead of individual budgets"},formatOption,jsonOption],examples:[{name:"List budgets",value:`${packageName} ai-gateway budgets ls`},{name:"List user budgets",value:`${packageName} ai-gateway budgets ls --scope-type user`},{name:"List the default budgets",value:`${packageName} ai-gateway budgets ls --defaults`}]},budgetsRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[yesOption,budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Remove the team budget",value:`${packageName} ai-gateway budgets rm team`},{name:"Remove a project budget",value:`${packageName} ai-gateway budgets rm project my-project`},{name:"Remove a user's budget",value:`${packageName} ai-gateway budgets rm user teammate@example.com`},{name:"Remove an API key's budget",value:`${packageName} ai-gateway budgets rm api-key my-key`},{name:"Remove the default budget for API keys",value:`${packageName} ai-gateway budgets rm api-key --default`}]},leaderboardFormatOption={name:"format",shorthand:"F",type:String,argument:"FORMAT",deprecated:!1,description:"Output format: table, json, or csv (default: table in a terminal, json otherwise)"},leaderboardOutOption={name:"out",shorthand:"o",type:String,argument:"FILE",deprecated:!1,description:"Write the payload to a file instead of stdout (defaults to json; use --format csv for CSV)"},leaderboardModalityOption={name:"modality",shorthand:null,type:String,argument:"MODALITY",deprecated:!1,description:"Filter by modality: all, text, image, or video (default: all)"},leaderboardMetricOption={name:"metric",shorthand:null,type:String,argument:"METRIC",deprecated:!1,description:"Metric for the table view: requests, tokens, spend, imageCount, or videoCount (default: requests)"},leaderboardDateOption={name:"date",shorthand:null,type:String,argument:"YYYY-MM-DD",deprecated:!1,description:"Day to show in the table view (default: most recent)"},leaderboardModelsSubcommand={name:"models",aliases:[],description:"Show the most-used models on AI Gateway",arguments:[],options:[leaderboardModalityOption,leaderboardMetricOption,leaderboardDateOption,leaderboardFormatOption,leaderboardOutOption],examples:[{name:"Show the top text models",value:`${packageName} ai-gateway leaderboard models --modality text`},{name:"Export the full model data as CSV",value:`${packageName} ai-gateway leaderboard models --format csv --out models.csv`}]},budgetsDefaultsListSubcommand={name:"list",aliases:["ls"],description:"List the team's AI Gateway budget defaults",arguments:[],options:[formatOption],examples:[{name:"List budget defaults",value:`${packageName} ai-gateway budgets defaults ls`}]},budgetsDefaultsSetSubcommand={name:"set",aliases:[],description:"Create or update the AI Gateway budget default for a scope (project, api-key, or user), applied to resources of that scope without an explicit budget",arguments:[{name:"scope",required:!0}],options:[{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!1,description:"Default budget limit in dollars (minimum 1)"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Budget refresh cadence: daily, weekly, monthly, or none (default: monthly)"},formatOption],examples:[{name:"Set the per-project default",value:`${packageName} ai-gateway budgets defaults set project --limit 200 --refresh-period monthly`},{name:"Set the per-api-key default",value:`${packageName} ai-gateway budgets defaults set api-key --limit 50`},{name:"Set the per-member default",value:`${packageName} ai-gateway budgets defaults set user --limit 50`}]},budgetsDefaultsRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove the AI Gateway budget default for a scope (project, api-key, or user)",arguments:[{name:"scope",required:!0}],options:[yesOption,formatOption],examples:[{name:"Remove the per-project default",value:`${packageName} ai-gateway budgets defaults rm project`}]},budgetsDefaultsSubcommand={name:"defaults",aliases:[],hidden:!0,description:"Manage AI Gateway budget defaults (per-project, per-api-key, and per-member spend limits applied by default)",arguments:[],subcommands:[budgetsDefaultsListSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsRemoveSubcommand],options:[],examples:[]},budgetsSubcommand={name:"budgets",aliases:[],description:"Manage AI Gateway budgets (metered spend limits per scope)",arguments:[],subcommands:[budgetsSetSubcommand,budgetsListSubcommand,budgetsInspectSubcommand,budgetsRemoveSubcommand,budgetsDefaultsSubcommand],options:[],examples:[]},leaderboardLabsSubcommand={name:"labs",aliases:[],description:"Show the most-used model creators (labs) on AI Gateway",arguments:[],options:[leaderboardModalityOption,leaderboardMetricOption,leaderboardDateOption,leaderboardFormatOption,leaderboardOutOption],examples:[{name:"Show the top labs by spend",value:`${packageName} ai-gateway leaderboard labs --metric spend`}]},leaderboardAppsSubcommand={name:"apps",aliases:[],description:"Show the top apps built on AI Gateway",arguments:[],options:[leaderboardFormatOption,leaderboardOutOption],examples:[{name:"Show the top apps",value:`${packageName} ai-gateway leaderboard apps`}]},leaderboardProvidersSubcommand={name:"providers",aliases:[],description:"Show the top inference providers on AI Gateway",arguments:[],options:[leaderboardFormatOption,leaderboardOutOption],examples:[{name:"Show the top providers as JSON",value:`${packageName} ai-gateway leaderboard providers --format json`}]},leaderboardSubcommand={name:"leaderboard",aliases:["leaderboards"],description:"Explore AI Gateway usage leaderboards (open, anonymized data under CC BY 4.0)",arguments:[],subcommands:[leaderboardModelsSubcommand,leaderboardLabsSubcommand,leaderboardAppsSubcommand,leaderboardProvidersSubcommand],options:[],examples:[]},virtualModelsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway virtual models",arguments:[],options:[{name:"include-archived",shorthand:null,type:Boolean,deprecated:!1,description:"Include archived virtual models"},formatOption,jsonOption],examples:[{name:"List virtual models",value:`${packageName} ai-gateway virtual-models ls`}]},virtualModelsInspectSubcommand={name:"inspect",aliases:[],description:"Show details about an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Inspect a virtual model",value:`${packageName} ai-gateway virtual-models inspect my-model`}]},virtualModelConfigOption={name:"config",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON object of virtual model fields, for anything without a dedicated flag. Flags win over keys set here"},virtualModelFieldOptions=[{name:"model",shorthand:null,type:String,argument:"SLUG",deprecated:!1,description:"Model the virtual model points at (e.g. openai/gpt-5.1)"},{name:"display-name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Human-readable name shown in the dashboard"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Description of the virtual model"},{name:"provider-order",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated providers to try, in order"},{name:"provider-only",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated providers to restrict routing to"}],virtualModelsCreateSubcommand={name:"create",aliases:[],description:"Create an AI Gateway virtual model",arguments:[{name:"slug",required:!1}],options:[{name:"kind",shorthand:null,type:String,argument:"KIND",deprecated:!1,description:"Virtual model kind: alias or relay (default: alias)"},...virtualModelFieldOptions,virtualModelConfigOption,formatOption,jsonOption],examples:[{name:"Create a virtual model interactively",value:`${packageName} ai-gateway virtual-models create`},{name:"Create a virtual model in one line",value:`${packageName} ai-gateway virtual-models create my-model --model openai/gpt-5.1`},{name:"Create a virtual model with fields that have no flag",value:`${packageName} ai-gateway virtual-models create my-model --model openai/gpt-5.1 --config '{"sort":"cost","zeroDataRetention":true}'`}]},virtualModelsEditSubcommand={name:"edit",aliases:[],description:"Edit an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[...virtualModelFieldOptions,virtualModelConfigOption,formatOption,jsonOption],examples:[{name:"Point a virtual model at a different model",value:`${packageName} ai-gateway virtual-models edit my-model --model anthropic/claude-sonnet-4.5`}]},virtualModelsRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Remove a virtual model",value:`${packageName} ai-gateway virtual-models rm my-model`}]},virtualModelsRestoreSubcommand={name:"restore",aliases:[],description:"Restore a removed AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Restore a removed virtual model",value:`${packageName} ai-gateway virtual-models restore my-model`}]},virtualModelsSubcommand={name:"virtual-models",aliases:[],description:"Manage AI Gateway virtual models, reusable model configurations callable as vmc/<slug>",arguments:[],subcommands:[virtualModelsCreateSubcommand,virtualModelsListSubcommand,virtualModelsInspectSubcommand,virtualModelsEditSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand],options:[],examples:[]},aiGatewayCommand={name:"ai-gateway",aliases:[],description:"Manage AI Gateway resources",arguments:[],subcommands:[apiKeysSubcommand,budgetsSubcommand,rulesSubcommand,virtualModelsSubcommand,setupSubcommand,modelsSubcommand,leaderboardSubcommand],options:[],examples:[]};var setSubcommand={name:"set",aliases:[],description:"Create a new alias",default:!0,arguments:[{name:"id-or-url",required:!0},{name:"alias",required:!0}],options:[],examples:[]},listSubcommand3={name:"list",aliases:["ls"],description:"Show all aliases",arguments:[],options:[limitOption,nextOption,formatOption,jsonOption],examples:[]},removeSubcommand2={name:"remove",aliases:["rm"],description:"Remove an alias using its hostname",arguments:[{name:"alias",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing an alias"}],examples:[]},aliasCommand={name:"alias",aliases:["aliases","ln"],description:"Interact with deployment aliases",arguments:[],subcommands:[listSubcommand3,removeSubcommand2,setSubcommand],options:[],examples:[{name:"Add a new alias to `my-api.vercel.app`",value:`${packageName} alias set api-ownv3nc9f8.vercel.app my-api.vercel.app`},{name:"Custom domains work as alias targets",value:`${packageName} alias set api-ownv3nc9f8.vercel.app my-api.com`},{name:"The subcommand `set` is the default and can be skipped. Protocols in the URLs are unneeded and ignored",value:`${packageName} alias api-ownv3nc9f8.vercel.app my-api.com`}]};var bisectCommand={name:"bisect",aliases:[],description:"Bisect the current project interactively or via an automated test script.",arguments:[],options:[{name:"bad",description:"Known bad URL",argument:"URL",shorthand:"b",type:String,deprecated:!1},{name:"good",description:"Known good URL",argument:"URL",shorthand:"g",type:String,deprecated:!1},{name:"open",description:"Automatically open each URL in the browser",argument:"URL",shorthand:"o",type:Boolean,deprecated:!1},{name:"path",description:"Subpath of the deployment URL to test",argument:"PATH",shorthand:"p",type:String,deprecated:!1},{name:"run",description:"Test script to run for each deployment",argument:"SCRIPT",shorthand:"r",type:String,deprecated:!1}],examples:[{name:"Bisect the current project interactively",value:`${packageName} bisect`},{name:"Bisect with a known bad deployment",value:`${packageName} bisect --bad example-310pce9i0.vercel.app`},{name:"Automated bisect with a run script",value:`${packageName} bisect --run ./test.sh`}]};var preinstallSubcommand={name:"preinstall",aliases:[],description:"Preinstall and load native Builders.",arguments:[],options:[],examples:[]},buildersCommand={name:"builders",aliases:[],description:"Manage the native Builder cache.",hidden:!0,arguments:[],subcommands:[preinstallSubcommand],options:[],examples:[]};var CUSTOM_ENVIRONMENT_ADDON_ALIASES=new Set(["customenvironment","custom-environment","custom-environments","custom_environment","custom_environments"]);function isCustomEnvironmentAddonAlias(name){return CUSTOM_ENVIRONMENT_ADDON_ALIASES.has(name.toLowerCase())}function customEnvironmentPackEnvironments(packs){return packs*5}var EXAMPLE_CUSTOM_ENVIRONMENT_COUNT=customEnvironmentPackEnvironments(2),SUPPORTED_CREDIT_TYPES=["v0","gateway","agent"],CREDIT_TYPE_LABELS={v0:"v0",gateway:"AI Gateway",agent:"Vercel Agent"},creditsSubcommand={name:"credits",aliases:[],description:"Purchase Vercel credits for your team",arguments:[{name:"credit-type",required:!0},{name:"amount",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Purchase $100 of v0 credits",value:`${packageName} buy credits v0 100`},{name:"Purchase $250 of AI Gateway credits",value:`${packageName} buy credits gateway 250`},{name:"Purchase $50 of Vercel Agent credits",value:`${packageName} buy credits agent 50`}]},SUPPORTED_ADDON_NAMES=["custom-environment","observability-plus"],addonSubcommand={name:"addon",aliases:["addons","add-on"],description:`Purchase a Vercel addon for your team. Supported addons: ${SUPPORTED_ADDON_NAMES.join(", ")}. Observability Plus does not accept a quantity. Custom environment purchases are per project and use packs (each pack adds ${5} environments).`,arguments:[{name:"addon-name",required:!0},{name:"quantity",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt"},jsonOption,projectOption],examples:[{name:"Purchase Observability Plus",value:`${packageName} buy addon observability-plus`},{name:`Purchase ${2} custom environment packs (${EXAMPLE_CUSTOM_ENVIRONMENT_COUNT} environments) for a project`,value:`${packageName} buy addon custom-environment ${2} --project my-app`},{name:"Remove purchased custom environment capacity",value:`${packageName} buy addon custom-environment 0 --project my-app --yes`}]},proSubcommand={name:"pro",aliases:[],description:"Purchase a Vercel Pro subscription for your team",arguments:[],options:[{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Upgrade your team to Vercel Pro",value:`${packageName} buy pro`},{name:"Upgrade without confirmation prompt",value:`${packageName} buy pro --yes`}]},domainSubcommand={name:"domain",aliases:[],description:"Purchase a domain name",arguments:[{name:"domain",required:!0}],options:[],examples:[{name:"Purchase a domain",value:`${packageName} buy domain example.com`}]},buyCommand={name:"buy",aliases:[],description:"Purchase Vercel products for your team",arguments:[],subcommands:[creditsSubcommand,addonSubcommand,proSubcommand,domainSubcommand],options:[],examples:[{name:"Purchase $100 of v0 credits",value:`${packageName} buy credits v0 100`},{name:"Purchase Observability Plus",value:`${packageName} buy addon observability-plus`},{name:"Upgrade to Pro",value:`${packageName} buy pro`},{name:"Purchase a domain",value:`${packageName} buy domain example.com`}]};var purgeSubcommand={name:"purge",aliases:[],description:"Purge cache for the current project",arguments:[],options:[yesOption,projectOption,{name:"type",description:"Type of cache to purge",shorthand:null,type:String,argument:"TYPE",deprecated:!1}],examples:[{name:"Purge all caches for the current project",value:`${packageName} cache purge`},{name:"Purge only the CDN cache",value:`${packageName} cache purge --type cdn`},{name:"Purge only the data cache",value:`${packageName} cache purge --type data`}]},invalidateSubcommand={name:"invalidate",aliases:[],description:"Invalidate all cached content by tag",arguments:[],options:[yesOption,projectOption,{name:"tag",description:"Tags to invalidate (comma-separated)",shorthand:null,type:String,argument:"TAGS",deprecated:!1},{name:"srcimg",description:"Source Image to invalidate",shorthand:null,type:String,argument:"SRCIMG",deprecated:!1}],examples:[{name:"Invalidate all cached content associated with a tag",value:`${packageName} cache invalidate --tag foo`},{name:"Invalidate all cached content associated with any one of multiple tags",value:`${packageName} cache invalidate --tag foo,bar,baz`},{name:"Invalidate all cached content associated with a source image",value:`${packageName} cache invalidate --srcimg /api/avatar/1`}]},dangerouslyDeleteSubcommand={name:"dangerously-delete",aliases:[],description:"Dangerously delete all cached content by tag",arguments:[],options:[yesOption,projectOption,{name:"tag",description:"Tags to delete (comma-separated)",shorthand:null,type:String,argument:"TAGS",deprecated:!1},{name:"srcimg",description:"Source Image to delete",shorthand:null,type:String,argument:"SRCIMG",deprecated:!1},{name:"revalidation-deadline-seconds",description:"Revalidation deadline in seconds",shorthand:null,type:Number,argument:"REVALIDATION-DEADLINE-SECONDS",deprecated:!1}],examples:[{name:"Dangerously delete all cached content associated with a tag",value:`${packageName} cache dangerously-delete --tag foo`},{name:"Dangerously delete all cached content associated with a tag if not accessed in the next hour",value:`${packageName} cache dangerously-delete --tag foo --revalidation-deadline-seconds 3600`},{name:"Dangerously delete all cached content associated with a source image",value:`${packageName} cache dangerously-delete --srcimg /api/avatar/1`},{name:"Dangerously delete all cached content associated with a source image if not accessed in the next hour",value:`${packageName} cache dangerously-delete --srcimg /api/avatar/1 --revalidation-deadline-seconds 3600`}]},cacheCommand={name:"cache",aliases:[],description:"Manage cache for a Project",arguments:[],subcommands:[purgeSubcommand,invalidateSubcommand,dangerouslyDeleteSubcommand],options:[],examples:[]};var removeSubcommand3={name:"remove",aliases:["rm"],description:"Remove a certificate by id",arguments:[{name:"id",required:!0}],options:[],examples:[{name:"Remove a certificate",value:`${packageName} certs rm id`}]},issueSubcommand={name:"issue",aliases:[],description:"Issue a new certificate for a domain",arguments:[{name:"cn",required:!0}],options:[{name:"challenge-only",description:"Only show challenges needed to issue a certificate",shorthand:null,type:Boolean,deprecated:!1},{name:"crt",description:"Certificate file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"key",description:"Certificate key file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"ca",description:"CA certificate chain file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"overwrite",shorthand:null,type:Boolean,deprecated:!1}],examples:[{name:'Generate a certificate with the cnames "acme.com" and "www.acme.com"`',value:`${packageName} certs issue acme.com www.acme.com`}]},listSubcommand4={name:"list",aliases:["ls"],description:"Show all available certificates",arguments:[],options:[limitOption,nextOption],examples:[{name:"Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch.",value:`${packageName} certs ls --next 1584722256178`}]},addSubcommand2={name:"add",aliases:[],description:"Add a new certificate",arguments:[],options:[{name:"crt",description:"Certificate file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"key",description:"Certificate key file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"ca",description:"CA certificate chain file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"overwrite",description:"",shorthand:null,type:Boolean,deprecated:!0}],examples:[]},certsCommand={name:"certs",aliases:["cert"],description:"Interact with SSL certificates. This command is intended for advanced use only. By default, Vercel manages your certificates automatically.",arguments:[],subcommands:[addSubcommand2,issueSubcommand,listSubcommand4,removeSubcommand3],options:[],examples:[...issueSubcommand.examples,...removeSubcommand3.examples,...listSubcommand4.examples]};var changelogOptions=[{name:"limit",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Number of updates to show (default: 5, max: 20)"},formatOption,jsonOption],searchSubcommand={name:"search",aliases:[],description:"Search Vercel product updates by keyword",arguments:[{name:"query",required:!0,multiple:!0}],options:changelogOptions,examples:[{name:"Search Vercel product updates",value:`${packageName} changelog search "Fluid compute"`}]},changelogCommand={name:"changelog",aliases:[],description:"Show the latest Vercel product updates",arguments:[],subcommands:[searchSubcommand],options:changelogOptions,examples:[{name:"Show the 5 latest Vercel product updates",value:`${packageName} --changelog`},{name:"Show more Vercel product updates",value:`${packageName} changelog --limit 10`},{name:"Search Vercel product updates",value:`${packageName} changelog search "AI SDK"`}]};var createSubcommand2={name:"create",aliases:[],description:"Create a new connector\n\nAccepts a known service (slack, notion, okta) or the URL of an OAuth or MCP server (mcp.notion.com/mcp). Run `create <service> --help` to see how a specific service can be connected to.",arguments:[{name:"service",required:!0}],options:[{name:"name",shorthand:"n",type:String,argument:"NAME",deprecated:!1,description:"Name of the connector"},{name:"triggers",shorthand:null,type:Boolean,deprecated:!1,description:"Enable webhook triggers for this connector"},{name:"trigger-event",shorthand:null,type:[String],argument:"EVENT",deprecated:!1,description:"Webhook event to receive. Repeatable. Requires --triggers and replaces the provider's default events."},{name:"trigger-project",shorthand:null,type:String,argument:"PROJECT",deprecated:!1,description:"Target a project by name or ID instead of the linked project. Requires --triggers."},{name:"trigger-path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Set the path on the destination project that receives forwarded webhooks. Requires --triggers."},{name:"trigger-branch",shorthand:null,type:String,argument:"BRANCH",deprecated:!1,description:"Target a preview deployment by git branch name. Omit the flag to target production. Cannot be combined with --trigger-environment. Requires --triggers."},{name:"trigger-environment",shorthand:null,type:String,argument:"ENV",deprecated:!1,description:"Target a custom environment by slug or stable ID. Cannot be combined with --trigger-branch. Requires --triggers."},{name:"connection-method",shorthand:null,type:String,argument:"METHOD",deprecated:!1,description:"How to connect to the service (e.g. oauth, mcp, api-key). Run without it to choose interactively; the error lists the valid values for a service."},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Which of the service's products to connect to (e.g. api, mcp). Only needed when a service exposes more than one."},{name:"param",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Value for a connection method template field (e.g. domain=acme.okta.com). Repeatable."},{...yesOption,description:"Skip the single-connection-method confirmation prompt"},{name:"data",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON object for non-managed connector creation. When set, posts directly to the connector create API. Pass `@<path>` to read from a file or `@-` to read from stdin \u2014 recommended for secrets (e.g. client secrets), which leak into shell history when passed inline."},{name:"connector-type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"Connector type for non-managed creation. By default, the type is resolved from the service."},{name:"icon",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path to a PNG or JPEG image to use as the connector icon (uploaded to Vercel)"},{name:"background-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Background color for the connector icon (e.g. #1A2B3C)"},{name:"accent-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Accent color for the connector icon (e.g. #1A2B3C)"},formatOption,jsonOption],examples:[{name:"Create a Slack app",value:`${packageName} connect create slack`},{name:"Create with a custom name",value:`${packageName} connect create slack --name my-bot`},{name:"Create with webhook triggers enabled",value:`${packageName} connect create slack --name my-bot --triggers`},{name:"Create with selected webhook events",value:`${packageName} connect create linear --name linear --triggers --trigger-event Issue --trigger-event Comment --trigger-event Project`},{name:"Create with a custom trigger path",value:`${packageName} connect create github --name github --triggers --trigger-path /eve/v1/github`},{name:"Create with branch-specific trigger routing",value:`${packageName} connect create github --name github --triggers --trigger-path /api/webhooks --trigger-branch staging`},{name:"Create with trigger routing on another project",value:`${packageName} connect create github --name github --triggers --trigger-project my-api --trigger-path /api/webhooks`},{name:"Create with branding (icon and colors)",value:`${packageName} connect create slack --name my-bot --icon ./logo.png --background-color '#1A2B3C' --accent-color '#FF0066'`},{name:"Create with a specific connection method",value:`${packageName} connect create notion --connection-method mcp --name notion-mcp`},{name:"Create with an API key, reading it from a file",value:`${packageName} connect create notion --connection-method api-key --name notion --data @key.json`},{name:"Create from a connection method that needs template values",value:`${packageName} connect create okta --connection-method custom-server --param domain=acme.okta.com --param auth_server_id=default --name okta --data @creds.json`},{name:"Target a specific product of a service",value:`${packageName} connect create notion --target api --connection-method oauth --name notion --data @creds.json`},{name:"Create a non-managed connector from explicit data",value:`${packageName} connect create mcp.linear.app --name linear --data '{"clientId":"abc123"}'`},{name:"Create a non-managed connector, reading credentials from a file (keeps secrets out of shell history)",value:`${packageName} connect create slack --name my-bot --connector-type slack --data @slack-app.json`},{name:"Create a non-managed connector, reading credentials from stdin",value:`cat slack-app.json | ${packageName} connect create slack --name my-bot --connector-type slack --data @-`},{name:"Output as JSON",value:`${packageName} connect create slack --json`}]},updateSubcommand={name:"update",aliases:[],description:"Update connector branding (icon and colors)",arguments:[{name:"id",required:!0}],options:[{name:"icon",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path to a PNG or JPEG image to use as the connector icon (uploaded to Vercel)"},{name:"background-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Background color for the connector icon (e.g. #1A2B3C)"},{name:"accent-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Accent color for the connector icon (e.g. #1A2B3C)"},formatOption,jsonOption],examples:[{name:"Update the connector icon",value:`${packageName} connect update scl_abc123 --icon ./logo.png`},{name:"Update the connector colors",value:`${packageName} connect update scl_abc123 --background-color '#1A2B3C' --accent-color '#FF0066'`},{name:"Output as JSON",value:`${packageName} connect update scl_abc123 --icon ./logo.png --json`}]},listSubcommand5={name:"list",aliases:["ls"],description:"List connectors linked to the current project (falls back to every connector in the team when no project is linked or when --all-projects is set)",arguments:[],options:[{name:"all-projects",shorthand:null,type:Boolean,deprecated:!1,description:"List every connector in the team, regardless of project link"},{name:"limit",shorthand:null,type:Number,argument:"COUNT",deprecated:!1,description:"Number of connectors to return per page"},{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Cursor for the next page of results"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Search connectors by name or UID"},{name:"service",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Filter by service name (e.g. slack, mcp.linear.app). Repeatable."},{name:"type",shorthand:null,type:[String],argument:"TYPE",deprecated:!1,description:"Filter by connector type (slack, github, oauth, custom). Repeatable."},formatOption,jsonOption],examples:[{name:"List connectors linked to the current project",value:`${packageName} connect list`},{name:"List every connector in the team",value:`${packageName} connect list --all-projects`},{name:"Filter by connector type",value:`${packageName} connect list --type slack`},{name:"Filter by multiple types",value:`${packageName} connect list --type oauth --type github`},{name:"Filter by service name",value:`${packageName} connect list --service mcp.linear.app`},{name:"Search by text",value:`${packageName} connect list --search linear`},{name:"Combine filters",value:`${packageName} connect list --type oauth --search prod`},{name:"Limit the number of results",value:`${packageName} connect list --limit 10`},{name:"Fetch the next page of results",value:`${packageName} connect list --next <cursor>`},{name:"Output as JSON",value:`${packageName} connect list --json`}]},removeSubcommand4={name:"remove",aliases:["rm"],description:"Delete a connector",arguments:[{name:"connector",required:!0}],options:[{name:"disconnect-all",description:"Disconnects all projects from the connector before deletion",shorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when deleting a connector"},formatOption,jsonOption],examples:[{name:"Delete a connector by ID",value:`${packageName} connect remove scl_abc123`},{name:"Delete a connector by UID",value:`${packageName} connect remove slack/my-bot`},{name:"Disconnect all projects from a connector, then delete it",value:[`${packageName} connect remove scl_abc123 --disconnect-all`,`${packageName} connect remove slack/my-bot -a`]},{name:"Skip the confirmation prompt",value:`${packageName} connect remove scl_abc123 --yes`},{name:"Output as JSON",value:`${packageName} connect remove scl_abc123 --json --yes`}]},tokenSubcommand={name:"token",aliases:[],description:"Get a token for a connector (accepts a connector ID like scl_abc or a UID like slack/my-bot)",arguments:[{name:"id",required:!0}],options:[{name:"subject",shorthand:"s",type:String,argument:"TYPE",deprecated:!1,description:`Subject type: "user" (default, acts on behalf of you) or "app" (uses the connector's default installation)`},{name:"installation-id",shorthand:null,type:String,argument:"ID",deprecated:!1,description:"Target a specific installation (only useful with --subject app; defaults to the connector's default installation)"},{name:"scopes",shorthand:null,type:String,argument:"SCOPES",deprecated:!1,description:"Scopes (comma- or space-separated; defaults to connector defaults)"},{name:"no-default-scopes",shorthand:null,type:Boolean,deprecated:!1,description:"Do not request the connector default scopes"},yesOption,formatOption,jsonOption],examples:[{name:"Get a user token by connector ID",value:`${packageName} connect token scl_abc123`},{name:"Get a token by connector UID",value:`${packageName} connect token slack/my-bot`},{name:"Get an app token (default installation)",value:`${packageName} connect token scl_abc123 --subject app`},{name:"Get an app token for a specific installation",value:`${packageName} connect token scl_abc123 --subject app --installation-id inst_1`},{name:"Open the browser automatically if authorization/installation is required",value:`${packageName} connect token scl_abc123 --yes`},{name:"Output as JSON (includes expiresAt, installationId, etc.)",value:`${packageName} connect token scl_abc123 --json`}]},revokeTokensSubcommand={name:"revoke-tokens",aliases:[],description:"Revoke tokens issued from a connector",arguments:[{name:"connector",required:!0}],options:[{name:"my-tokens",shorthand:null,type:Boolean,deprecated:!1,description:"Revoke only your own tokens for this connector"},{name:"all-tokens",shorthand:null,type:Boolean,deprecated:!1,description:"Revoke every token for all users and installations. Requires team owner or member permissions."},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Interactively select which tokens to revoke",value:`${packageName} connect revoke-tokens scl_abc123`},{name:"Revoke only your own tokens",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens`},{name:"Revoke all tokens for all users",value:`${packageName} connect revoke-tokens scl_abc123 --all-tokens`},{name:"Skip the confirmation prompt",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens --yes`},{name:"Output as JSON",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens --yes --json`}]},openSubcommand={name:"open",aliases:[],description:"Open a connector in the Vercel dashboard",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Open a connector by ID",value:`${packageName} connect open scl_abc123`},{name:"Open a connector by UID",value:`${packageName} connect open slack/my-bot`},{name:"Print the dashboard URL as JSON",value:`${packageName} connect open scl_abc123 --json`}]},attachSubcommand={name:"attach",aliases:[],description:"Attach a Vercel project to a connector for one or more environments",arguments:[{name:"connector",required:!0}],options:[{name:"environment",shorthand:"e",type:[String],argument:"ENV",deprecated:!1,description:"Environments to enable by system name, custom slug, or custom ID. Repeatable and comma-separated. Defaults to production, preview, and development."},{...projectOption,shorthand:"p",description:"Project name or ID (default: current linked project)"},{name:"triggers",shorthand:null,type:Boolean,deprecated:!1,description:"Also register this project as a trigger destination so the connector forwards verified webhooks to it (max 3 destinations per connector)"},{name:"trigger-branch",shorthand:null,type:String,argument:"BRANCH",deprecated:!1,description:"Target a preview deployment by git branch name. Omit the flag to target production. Cannot be combined with --trigger-environment. Only valid with --triggers."},{name:"trigger-environment",shorthand:null,type:String,argument:"ENV",deprecated:!1,description:"Target a custom environment by slug or stable ID. Cannot be combined with --trigger-branch. Only valid with --triggers."},{name:"trigger-path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path on the destination project that receives the forwarded webhook (default: /{service}). Only valid with --triggers."},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Attach the current project for all system environments",value:`${packageName} connect attach scl_abc123`},{name:"Restrict to specific environments",value:`${packageName} connect attach scl_abc123 -e production -e preview`},{name:"Attach to a custom environment by slug",value:`${packageName} connect attach scl_abc123 -e qa`},{name:"Attach to a custom environment by stable ID",value:`${packageName} connect attach scl_abc123 -e env_qa123`},{name:"Attach a different project by name",value:`${packageName} connect attach slack/my-bot --project my-app`},{name:"Attach and register the project as a trigger destination",value:`${packageName} connect attach scl_abc123 --triggers`},{name:"Attach and register a preview-branch trigger destination",value:`${packageName} connect attach scl_abc123 --triggers --trigger-branch staging --trigger-path /slack`},{name:"Attach and register a custom-environment trigger destination",value:`${packageName} connect attach scl_abc123 --triggers --trigger-environment qa --trigger-path /slack`},{name:"Non-interactive output as JSON",value:`${packageName} connect attach scl_abc123 --yes --json`}]},detachSubcommand={name:"detach",aliases:[],description:"Detach a Vercel project from a connector",arguments:[{name:"connector",required:!0}],options:[{...projectOption,shorthand:"p",description:"Project name or ID (default: current linked project)"},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Detach the current project from a connector",value:`${packageName} connect detach scl_abc123`},{name:"Detach a different project by name",value:`${packageName} connect detach slack/my-bot --project my-app`},{name:"Non-interactive output as JSON",value:`${packageName} connect detach scl_abc123 --yes --json`}]},contactsAddSubcommand={name:"add",aliases:[],description:"Add a phone contact that a connector may message",arguments:[{name:"connector",required:!0}],options:[{name:"phone-number",shorthand:null,type:String,argument:"PHONE",deprecated:!1,description:"Contact phone number in E.164 format (e.g. +12025551234)"},formatOption,jsonOption],examples:[{name:"Add a contact by connector ID",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234`},{name:"Add a contact by connector UID",value:`${packageName} connect contacts add linq/support --phone-number +12025551234`},{name:"Output the verification result as JSON",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234 --json`}]},contactsSubcommand={name:"contacts",aliases:[],description:"Manage phone contacts for connectors",arguments:[],options:[],subcommands:[contactsAddSubcommand],examples:[{name:"Add a contact",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234`}]},connexCommand={name:"connect",aliases:[],description:"Manage connectors",arguments:[],options:[],subcommands:[createSubcommand2,updateSubcommand,listSubcommand5,tokenSubcommand,attachSubcommand,detachSubcommand,removeSubcommand4,revokeTokensSubcommand,openSubcommand,contactsSubcommand],examples:[{name:"Create a Slack app",value:`${packageName} connect create slack`},{name:"List connectors on the current team",value:`${packageName} connect list`},{name:"Get a token",value:`${packageName} connect token scl_abc123`},{name:"Attach the current project to a connector",value:`${packageName} connect attach scl_abc123`},{name:"Open a connector in the dashboard",value:`${packageName} connect open scl_abc123`}],documentation:{label:"Vercel Connect guide",url:"https://vercel.com/kb/guide/vercel-connect"}};var contractCommand={name:"contract",aliases:[],description:"Show contract information for all billing periods",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Show contract information for all billing periods",value:`${packageName} contract`},{name:"Show contract information for all billing periods as JSON",value:`${packageName} contract --json`}]};var addSubcommand3={name:"add",aliases:[],description:"Add a cron job to vercel.json",arguments:[],options:[{name:"path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"The API route path for the cron job (must start with /)"},{name:"schedule",shorthand:null,type:String,argument:"EXPRESSION",deprecated:!1,description:'The cron schedule expression (e.g. "0 10 * * *")'}],examples:[{name:"Add a cron job interactively",value:`${packageName} crons add`},{name:"Add a cron job with flags",value:`${packageName} crons add --path /api/cron --schedule "0 10 * * *"`}]},listSubcommand6={name:"list",aliases:["ls"],description:"List all cron jobs for a project",default:!0,arguments:[],options:[formatOption,jsonOption,projectOption],examples:[{name:"List all cron jobs",value:`${packageName} crons ls`},{name:"List all cron jobs as JSON",value:`${packageName} crons ls --json`}]},runSubcommand={name:"run",aliases:[],description:"Trigger a cron job to run immediately",arguments:[{name:"path",required:!1}],options:[projectOption],examples:[{name:"Trigger a specific cron job",value:`${packageName} crons run /api/cron`}]},cronsCommand={name:"crons",aliases:["cron"],description:"Manage cron jobs for a project",arguments:[],subcommands:[addSubcommand3,listSubcommand6,runSubcommand],options:[],examples:[]};var curlCommand={name:"curl",aliases:[],description:"Make curl requests to Vercel deployments with automatic protection bypass.",arguments:[{name:"path",required:!0}],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},deploymentOption,protectionBypassOption,{name:"trace",shorthand:null,type:Boolean,deprecated:!1,description:"Capture a session trace for the request and print the trace request id"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"With --trace, emit { response, requestId } as JSON on stdout"}],examples:[{name:"Access a protected deployment URL",value:`${packageName} curl https://your-project-abc123.vercel.app/api/hello`},{name:"Make a GET request to an API endpoint",value:`${packageName} curl /api/hello`},{name:"Make a POST request with data",value:`${packageName} curl /api/users -- --request POST --data '{"name": "John"}'`},{name:"Target a specific deployment by ID",value:`${packageName} curl /api/status --deployment ERiL45NJvP8ghWxgbvCM447bmxwV`},{name:"Target a specific deployment by URL",value:`${packageName} curl /api/status --deployment https://your-project-abc123.vercel.app`},{name:"Use curl flags after the separator",value:`${packageName} curl /api/test -- --header "Content-Type: application/json" --request PUT`},{name:"Use with protection bypass secret",value:`${packageName} curl /api/protected --protection-bypass <secret> -- --request GET`},{name:"Capture a session trace for the request",value:`${packageName} curl --trace /api/hello`}]};var projectOption3={...projectOption,shorthand:"p"},listSubcommand7={name:"list",aliases:["ls"],description:"List deploy hooks for a project",arguments:[],options:[formatOption,jsonOption,projectOption3],examples:[{name:"List deploy hooks as JSON",value:`${packageName} deploy-hooks ls --json`}]},createSubcommand3={name:"create",aliases:["add"],description:"Create a deploy hook for a Git branch",arguments:[{name:"name",required:!1}],options:[{name:"ref",shorthand:"r",type:String,argument:"BRANCH",deprecated:!1,description:"Git branch ref to deploy when the hook URL is triggered"},projectOption3],examples:[{name:"Create a hook that deploys `main`",value:`${packageName} deploy-hooks create cms-rebuild --ref main`}]},removeSubcommand5={name:"remove",aliases:["rm","delete"],description:"Remove a deploy hook by id",arguments:[{name:"id",required:!0}],options:[projectOption3,{...yesOption,description:"Skip the confirmation prompt when removing a deploy hook"}],examples:[]},deployHooksCommand={name:"deploy-hooks",aliases:["deploy-hook"],description:"Manage deploy hooks for Git-triggered builds",arguments:[],subcommands:[listSubcommand7,createSubcommand3,removeSubcommand5],options:[],examples:[]};var importSubcommand={name:"import",aliases:[],description:"Import a DNS zone file (see below for examples)",arguments:[{name:"domain",required:!0},{name:"zonefile",required:!0}],options:[],examples:[]},listSubcommand8={name:"list",aliases:["ls"],description:"List DNS entries. Pass a domain to list its records, or omit the argument to list records across every domain on the scope",default:!0,arguments:[{name:"domain",required:!1}],options:[limitOption,nextOption,formatOption,jsonOption],examples:[]},addSubcommand4={name:"add",aliases:[],description:"Add a new DNS entry (see below for examples)",arguments:[{name:"domain",required:!0},{name:"details",required:!0}],options:[],examples:[]},inspectSubcommand3={name:"inspect",aliases:[],description:"Show a DNS record in full using its ID",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show a DNS record in full",value:`${packageName} dns inspect rec_1a2b3c4d5e6f`},{name:"Show a DNS record as JSON",value:`${packageName} dns inspect rec_1a2b3c4d5e6f --json`}]},removeSubcommand6={name:"remove",aliases:["rm"],description:"Remove a DNS entry using its ID",arguments:[{name:"id",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing a DNS record"}],examples:[]},updateSubcommand2={name:"update",aliases:[],description:"Update an existing DNS record using its ID",arguments:[{name:"id",required:!0}],options:[{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"New name of the DNS record ('@' refers to the domain)"},{name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"New type of the DNS record (A, AAAA, ALIAS, CAA, CNAME, MX, SRV, TXT)"},{name:"value",shorthand:null,type:String,argument:"VALUE",deprecated:!1,description:"New value of the DNS record"},{name:"ttl",shorthand:null,type:Number,argument:"SECONDS",deprecated:!1,description:"New Time to live (TTL) of the DNS record, in seconds"},{name:"mx-priority",shorthand:null,type:Number,argument:"PRIORITY",deprecated:!1,description:"New priority of the MX record"},{name:"srv-priority",shorthand:null,type:Number,argument:"PRIORITY",deprecated:!1,description:"New priority of the SRV record"},{name:"srv-weight",shorthand:null,type:Number,argument:"WEIGHT",deprecated:!1,description:"New weight of the SRV record"},{name:"srv-port",shorthand:null,type:Number,argument:"PORT",deprecated:!1,description:"New port of the SRV record"},{name:"srv-target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"New target of the SRV record"},{name:"comment",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"A comment to add context on what this DNS record is for"}],examples:[{name:"Update the value of an A record",value:`${packageName} dns update rec_1a2b3c4d5e6f --value 198.51.100.100`},{name:"Update the name and TTL of a record",value:`${packageName} dns update rec_1a2b3c4d5e6f --name api --ttl 300`},{name:"Update an MX record priority",value:`${packageName} dns update rec_1a2b3c4d5e6f --mx-priority 10`},{name:"Update an SRV record",value:`${packageName} dns update rec_1a2b3c4d5e6f --srv-priority 10 --srv-weight 0 --srv-port 389 --srv-target zeit.party`}]},dnsCommand={name:"dns",aliases:[],description:"Interact with DNS entries for a project",arguments:[],subcommands:[addSubcommand4,importSubcommand,inspectSubcommand3,listSubcommand8,removeSubcommand6,updateSubcommand2],options:[],examples:[{name:"Add an A record for a subdomain",value:[`${packageName} dns add <DOMAIN> <SUBDOMAIN> <A | AAAA | ALIAS | CNAME | TXT> <VALUE>`,`${packageName} dns add zeit.rocks api A 198.51.100.100`]},{name:"Add an MX record (@ as a name refers to the domain)",value:[`${packageName} dns add <DOMAIN> '@' MX <RECORD VALUE> <PRIORITY>`,`${packageName} dns add zeit.rocks '@' MX mail.zeit.rocks 10`]},{name:"Add an SRV record",value:[`${packageName} dns add <DOMAIN> <NAME> SRV <PRIORITY> <WEIGHT> <PORT> <TARGET>`,`${packageName} dns add zeit.rocks '@' SRV 10 0 389 zeit.party`]},{name:"Add a CAA record",value:[`${packageName} dns add <DOMAIN> <NAME> CAA '<FLAGS> <TAG> "<VALUE>"'`,`${packageName} dns add zeit.rocks '@' CAA '0 issue "example.com"'`]},{name:"Update an existing DNS record using its ID",value:[`${packageName} dns update <ID> --value <VALUE>`,`${packageName} dns update rec_1a2b3c4d5e6f --name api --ttl 300`]},{name:"Show a DNS record in full using its ID",value:[`${packageName} dns inspect <ID>`,`${packageName} dns inspect rec_1a2b3c4d5e6f`]},{name:"Import a Zone file",value:[`${packageName} dns import <DOMAIN> <FILE>`,`${packageName} dns import zeit.rocks ./zonefile.txt`]},{name:"Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch",value:[`${packageName} dns ls --next 1584722256178`,`${packageName} dns ls zeit.rocks --next 1584722256178`]}]};var listSubcommand9={name:"list",aliases:["ls"],description:"Show all domains in a list",default:!0,arguments:[],options:[limitOption,nextOption,formatOption,jsonOption],examples:[{name:"Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch",value:`${packageName} domains ls --next 1584722256178`}]},inspectSubcommand4={name:"inspect",aliases:[],description:"Displays information related to a domain",arguments:[{name:"domain",required:!0}],options:[formatOption,jsonOption],examples:[{name:"JSON output",value:`${packageName} domains inspect example.com --json`}]},addSubcommand5={name:"add",aliases:[],description:"Add a domain name that you already own to a Vercel Team",arguments:[{name:"domain",required:!0},{name:"project",required:!1}],options:[{...forceOption,shorthand:null,description:"Force a domain name for a project and remove it from an existing one"}],examples:[{name:"Add a domain that you already own",value:[`${packageName} domains add domain-name.com`,"Make sure the domain's DNS nameservers are at least 2 of the ones listed on https://vercel.com/edge-network",`NOTE: Running ${packageName} alias will automatically register your domain if it's configured with these nameservers (no need to 'domains add')`]}]},removeSubcommand7={name:"remove",aliases:["rm"],description:"Remove ownership of a domain name from a Vercel Team",arguments:[{name:"domain",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing a domain"}],examples:[]},priceSubcommand={name:"price",aliases:[],description:"Show registrar price quotes for one or more domains",arguments:[{name:"domain",required:!0,multiple:!0}],options:[formatOption,jsonOption],examples:[{name:"Price quote for a domain",value:`${packageName} domains price example.com`},{name:"Price quotes for multiple domains",value:`${packageName} domains price one.com two.com three.com`},{name:"JSON output",value:`${packageName} domains price example.com --json`}]},searchSubcommand2={name:"search",aliases:[],description:"Discover domain-name candidates from a keyword or fragment",arguments:[{name:"query",required:!0}],options:[{name:"available",shorthand:null,type:Boolean,description:"Show only candidates available to register",deprecated:!1},{name:"order",shorthand:null,type:String,argument:"ORDER",description:"Order candidates by relevance, alphabetical order, or length (default: relevance)",deprecated:!1},{name:"limit",shorthand:null,type:Number,argument:"NUMBER",description:"Number of candidates to check per page (default: 20, max: 200)",deprecated:!1},{name:"tld",shorthand:null,type:[String],argument:"TLD",description:"Filter candidates by exact TLD. Repeatable.",deprecated:!1},{name:"next",shorthand:null,type:String,argument:"CURSOR",description:"Show the next page of candidates",deprecated:!1},formatOption,jsonOption],examples:[{name:"Discover domain-name candidates",value:`${packageName} domains search acme`},{name:"Narrow candidates with a TLD fragment",value:`${packageName} domains search acme.d`},{name:"Filter candidates by TLD",value:`${packageName} domains search acme --tld com --tld dev`},{name:"Show only available candidates",value:`${packageName} domains search acme --available`},{name:"JSON output",value:`${packageName} domains search acme --json`}]},buySubcommand={name:"buy",aliases:[],description:"Purchase a new domain name",arguments:[{name:"domain",required:!0}],options:[],examples:[]},checkSubcommand={name:"check",aliases:[],description:"Check if a domain is available to buy",arguments:[{name:"domain",required:!0,multiple:!0}],options:[formatOption,jsonOption],examples:[{name:"Check if a domain is available",value:`${packageName} domains check example.com`},{name:"Check availability for multiple domains",value:`${packageName} domains check one.com two.com three.com`},{name:"JSON output",value:`${packageName} domains check example.com --json`}]},moveSubcommand={name:"move",aliases:[],description:"Move ownership of a domain name to another Vercel Team",arguments:[{name:"domain",required:!0},{name:"destination",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when moving a domain"}],examples:[]},transferInSubcommand={name:"transfer-in",aliases:[],description:"Transfer in a domain name to Vercel",arguments:[{name:"domain",required:!0}],options:[{name:"code",argument:"CODE",shorthand:null,type:String,deprecated:!1}],examples:[]},autoRenewSubcommand={name:"auto-renew",aliases:[],description:"Turn automatic renewal on or off for a registered domain",arguments:[{name:"domain",required:!0},{name:"state",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Turn automatic renewal on",value:`${packageName} domains auto-renew example.com on`},{name:"Turn automatic renewal off",value:`${packageName} domains auto-renew example.com off`},{name:"JSON output",value:`${packageName} domains auto-renew example.com on --json`}]},renewSubcommand={name:"renew",aliases:[],description:"Renew a registered domain before it expires (charges your account)",arguments:[{name:"domain",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Renew a domain (shows the renewal price and asks to confirm)",value:`${packageName} domains renew example.com`},{name:"JSON output (renewal still requires interactive confirmation)",value:`${packageName} domains renew example.com --json`}]},verifySubcommand={name:"verify",aliases:[],description:"Check a domain's DNS configuration and explain what to fix when it is misconfigured or unverified",arguments:[{name:"domain",required:!0}],options:[projectOption,{name:"strict",shorthand:null,type:Boolean,deprecated:!1,description:"Check DNS for the exact domain only, without falling back to the parent zone configuration"},formatOption,jsonOption],examples:[{name:"Check why a domain is not working",value:`${packageName} domains verify example.com`},{name:"Check a domain against a specific project",value:`${packageName} domains verify example.com --project my-site`},{name:"JSON output (the exit code is non-zero when the domain is misconfigured or unverified)",value:`${packageName} domains verify example.com --json`},{name:"Agent-friendly output with status, reason, and suggested next commands",value:`${packageName} domains verify example.com --non-interactive`}]},domainsCommand={name:"domains",aliases:["domain"],description:"Manage domains",arguments:[],subcommands:[listSubcommand9,inspectSubcommand4,addSubcommand5,buySubcommand,checkSubcommand,moveSubcommand,priceSubcommand,searchSubcommand2,transferInSubcommand,removeSubcommand7,renewSubcommand,autoRenewSubcommand,verifySubcommand],options:[],examples:[{name:"Renew a registered domain before it expires",value:[`${packageName} domains renew <DOMAIN>`,`${packageName} domains renew example.com`]},{name:"Turn automatic renewal on or off for a registered domain",value:[`${packageName} domains auto-renew <DOMAIN> <on | off>`,`${packageName} domains auto-renew example.com on`]}]};var experimentArgument={name:"experiment",required:!0},fileOption={name:"file",shorthand:null,type:String,argument:"FILE",description:"Read the JSON request body from a file or - for stdin",deprecated:!1},rampOption={name:"ramp",shorthand:null,type:Number,argument:"PERCENTAGE",description:"Set the percentage of eligible units enrolled",deprecated:!1},listSubcommand10={name:"list",aliases:["ls"],hidden:!0,description:"List experiments for a project",arguments:[],options:[projectOption,{name:"state",shorthand:null,type:String,argument:"STATE",description:"Filter by draft, running, or completed state",deprecated:!1},formatOption],examples:[{name:"List experiments",value:`${packageName} experiments ls`},{name:"List running experiments as JSON",value:`${packageName} experiments ls --state running --format json`}]},inspectSubcommand5={name:"inspect",aliases:[],hidden:!0,description:"Display experiment settings and lifecycle details",arguments:[experimentArgument],options:[projectOption,formatOption],examples:[{name:"Inspect an experiment",value:`${packageName} experiments inspect checkout-copy`}]},createSubcommand4={name:"create",aliases:[],hidden:!0,description:"Create a draft experiment and its feature flag",arguments:[],options:[projectOption,fileOption,formatOption],examples:[{name:"Create from a JSON file",value:`${packageName} experiments create --file experiment.json`},{name:"Create from stdin",value:`${packageName} experiments create --file -`}]},updateSubcommand3={name:"update",aliases:[],hidden:!0,description:"Update experiment settings from a JSON file",arguments:[experimentArgument],options:[projectOption,fileOption,{name:"restart-analysis",shorthand:null,type:Boolean,description:"Start a new analysis epoch after updating a running experiment",deprecated:!1},{name:"keep-analysis",shorthand:null,type:Boolean,description:"Keep the current analysis epoch after updating a running experiment",deprecated:!1},yesOption,formatOption],examples:[{name:"Update a draft experiment",value:`${packageName} experiments update checkout-copy --file patch.json`},{name:"Update a running experiment without restarting analysis",value:`${packageName} experiments update checkout-copy --file patch.json --keep-analysis`}]},startSubcommand={name:"start",aliases:[],hidden:!0,description:"Start a draft experiment at a ramp percentage",arguments:[experimentArgument],options:[projectOption,rampOption,yesOption,formatOption],examples:[{name:"Start at 10%",value:`${packageName} experiments start checkout-copy --ramp 10`}]},setRampSubcommand={name:"set-ramp",aliases:[],hidden:!0,description:"Change enrollment for a running experiment",arguments:[experimentArgument],options:[projectOption,rampOption,yesOption,formatOption],examples:[{name:"Increase enrollment to 50%",value:`${packageName} experiments set-ramp checkout-copy --ramp 50`}]},restartAnalysisSubcommand={name:"restart-analysis",aliases:[],hidden:!0,description:"Reset the measurement window while preserving enrollment",arguments:[experimentArgument],options:[projectOption,yesOption,formatOption],examples:[{name:"Restart analysis",value:`${packageName} experiments restart-analysis checkout-copy`}]},reseedEnrollmentSubcommand={name:"reseed-enrollment",aliases:[],hidden:!0,description:"Randomize experiment enrollment with a new seed",arguments:[experimentArgument],options:[projectOption,yesOption,formatOption],examples:[{name:"Reseed enrollment",value:`${packageName} experiments reseed-enrollment checkout-copy`}]},returnToDraftSubcommand={name:"return-to-draft",aliases:[],hidden:!0,description:"Return an experiment to draft state",arguments:[experimentArgument],options:[projectOption,{name:"cause",shorthand:null,type:String,argument:"CAUSE",description:"Record manual, guardrail, or srm as the stop cause",deprecated:!1},{name:"reason",shorthand:null,type:String,argument:"TEXT",description:"Record why the experiment returned to draft",deprecated:!1},yesOption,formatOption],examples:[{name:"Return to draft after a guardrail alert",value:`${packageName} experiments return-to-draft checkout-copy --cause guardrail --reason "Error rate increased"`}]},decideSubcommand={name:"decide",aliases:[],hidden:!0,description:"Complete an experiment with a winner or abandon it",arguments:[experimentArgument],options:[projectOption,{name:"winner",shorthand:null,type:String,argument:"VARIANT",description:"Choose the winning variant ID",deprecated:!1},{name:"abandon",shorthand:null,type:Boolean,description:"Complete without a winning variant",deprecated:!1},{name:"rationale",shorthand:null,type:String,argument:"TEXT",description:"Record the decision rationale",deprecated:!1},yesOption,formatOption],examples:[{name:"Choose a winner",value:`${packageName} experiments decide checkout-copy --winner treatment --rationale "Higher conversion"`},{name:"Abandon an experiment",value:`${packageName} experiments decide checkout-copy --abandon --rationale "No meaningful lift"`}]},analyzeSubcommand={name:"analyze",aliases:[],hidden:!0,description:"Analyze primary, secondary, and guardrail metrics",arguments:[experimentArgument],options:[projectOption,{name:"exclude-contaminated",shorthand:null,type:Boolean,description:"Exclude units with conflicting experiment assignments",deprecated:!1},{name:"metric",shorthand:null,type:String,argument:"ALIAS",description:"Use a metric alias as the primary timeseries",deprecated:!1},formatOption],examples:[{name:"Analyze an experiment",value:`${packageName} experiments analyze checkout-copy`},{name:"Return complete results as JSON",value:`${packageName} experiments analyze checkout-copy --format json`}]},diagnoseSubcommand={name:"diagnose",aliases:[],hidden:!0,description:"Show the latest exposures and metric events for an experiment",arguments:[experimentArgument],options:[projectOption,{name:"limit",shorthand:"l",type:Number,argument:"COUNT",description:"Set how many events to return, from 1 to 200",deprecated:!1},{name:"exposures",shorthand:null,type:Boolean,deprecated:!1,description:"Show exposures; combine with --event to show both"},{name:"event",shorthand:"e",type:[String],argument:"NAME",deprecated:!1,description:"Show this metric event; repeatable"},{name:"unit",shorthand:null,type:String,argument:"VALUE",deprecated:!1,description:"Show only rows for this experiment unit"},{name:"since",shorthand:"s",type:String,argument:"TIME",deprecated:!1,description:"Start time: relative (1h, 30m, 2d) or ISO date (default: experiment launch)"},{name:"until",shorthand:"u",type:String,argument:"TIME",deprecated:!1,description:"End time: relative or ISO date (default: now); not with --follow"},{name:"follow",shorthand:"f",type:Boolean,deprecated:!1,description:"Stream experiment events as they arrive; not with --until"},formatOption],examples:[{name:"Show the latest experiment events",value:`${packageName} experiments diagnose checkout-copy`},{name:"Watch an experiment live",value:`${packageName} experiments diagnose checkout-copy --follow`},{name:"Show two metric events from the last hour",value:`${packageName} experiments diagnose checkout-copy --since 1h --event checkout --event purchase`},{name:"Follow one unit",value:`${packageName} experiments diagnose checkout-copy --unit visitor_abc123`},{name:"Return the latest 200 events as JSON",value:`${packageName} experiments diagnose checkout-copy --limit 200 --format json`}]},openSubcommand2={name:"open",aliases:[],hidden:!0,description:"Open an experiment in the Vercel dashboard",arguments:[{name:"experiment",required:!1}],options:[projectOption,{name:"tab",shorthand:null,type:String,argument:"TAB",description:"Open the configuration or analysis tab",deprecated:!1}],examples:[{name:"Open experiment analysis",value:`${packageName} experiments open checkout-copy --tab analysis`}]},deleteSubcommand={name:"delete",aliases:["rm"],hidden:!0,description:"Delete an experiment and release its feature flag",arguments:[experimentArgument],options:[projectOption,{name:"confirm",shorthand:null,type:String,argument:"EXPERIMENT",description:"Prove the experiment ID or slug for non-interactive deletion",deprecated:!1},formatOption],examples:[{name:"Delete with non-interactive proof",value:`${packageName} experiments delete checkout-copy --confirm checkout-copy`}]},experimentsCommand={name:"experiments",aliases:[],hidden:!0,description:"Manage and analyze feature flag experiments",arguments:[],subcommands:[listSubcommand10,inspectSubcommand5,createSubcommand4,updateSubcommand3,startSubcommand,setRampSubcommand,restartAnalysisSubcommand,reseedEnrollmentSubcommand,returnToDraftSubcommand,decideSubcommand,analyzeSubcommand,diagnoseSubcommand,openSubcommand2,deleteSubcommand],options:[],examples:[]};var teamLevelOption={name:"team-level",shorthand:null,type:Boolean,deprecated:!1,description:"Operate on the team-level firewall configuration, which applies to every project in the team. No linked project required. Cannot be combined with --project"},overviewSubcommand={name:"overview",aliases:[],description:"Show your project's firewall configuration with the last day of activity: traffic by action, the busiest rules, and alerts raised in the same window",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show firewall configuration and recent activity",value:`${packageName} firewall overview`},{name:"Report the same data as JSON",value:`${packageName} firewall overview --json`}]},statusSubcommand={name:"status",aliases:[],description:"Show firewall configuration in execution order, including managed rulesets and bypass paths",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show firewall status",value:`${packageName} firewall status`}]},diffSubcommand={name:"diff",aliases:[],description:"Show draft changes that have been made but are not yet published to production",arguments:[],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show unpublished changes",value:`${packageName} firewall diff`},{name:"Show unpublished team-level changes",value:`${packageName} firewall diff --team-level`}]},publishSubcommand={name:"publish",aliases:[],description:"Publish all draft firewall changes to production, making them live immediately",arguments:[],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Publish draft changes",value:`${packageName} firewall publish`},{name:"Publish without confirmation",value:`${packageName} firewall publish --yes`},{name:"Publish team-level draft changes",value:`${packageName} firewall publish --team-level`}]},discardSubcommand={name:"discard",aliases:[],description:"Permanently discard all unpublished draft changes, reverting to the current production configuration",arguments:[],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Discard draft changes",value:`${packageName} firewall discard`},{name:"Discard without confirmation",value:`${packageName} firewall discard --yes`}]},systemBypassListSubcommand={name:"list",aliases:["ls"],description:"List all system bypass rules that allow specific IPs to skip firewall checks",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List bypass rules",value:`${packageName} firewall system-bypass list`}]},systemBypassAddSubcommand={name:"add",aliases:[],description:"Add a system bypass rule to allow a specific IP address to skip firewall checks. Takes effect immediately (no publish required)",arguments:[{name:"ip",required:!0}],options:[projectOption,{name:"domain",shorthand:null,type:String,deprecated:!1,description:"Scope bypass to a specific domain (default: all domains)"},{name:"notes",shorthand:null,type:String,deprecated:!1,description:"Add a note to the bypass rule"},yesOption],examples:[{name:"Add a bypass for an IP (all domains)",value:`${packageName} firewall system-bypass add 10.0.0.1`},{name:"Add a bypass scoped to a domain",value:`${packageName} firewall system-bypass add 10.0.0.1 --domain example.com`}]},systemBypassRemoveSubcommand={name:"remove",aliases:["rm"],description:"Remove a system bypass rule so the IP is no longer exempt from firewall checks. Takes effect immediately (no publish required)",arguments:[{name:"ip",required:!0}],options:[projectOption,{name:"domain",shorthand:null,type:String,deprecated:!1,description:"Scope removal to a specific domain"},yesOption],examples:[{name:"Remove a bypass rule",value:`${packageName} firewall system-bypass remove 10.0.0.1`}]},systemBypassSubcommand={name:"system-bypass",aliases:[],description:"Manage system bypass rules that allow specific IPs to skip firewall checks",arguments:[],subcommands:[systemBypassListSubcommand,systemBypassAddSubcommand,systemBypassRemoveSubcommand],options:[],examples:[{name:"List bypass rules",value:`${packageName} firewall system-bypass list`},{name:"Add a bypass for an IP",value:`${packageName} firewall system-bypass add 10.0.0.1`},{name:"Remove a bypass",value:`${packageName} firewall system-bypass remove 10.0.0.1`}]},ipBlocksListSubcommand={name:"list",aliases:["ls"],description:"List all IP blocking rules, including any unpublished draft changes",arguments:[],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List IP blocking rules",value:`${packageName} firewall ip-blocks list`}]},ipBlocksBlockSubcommand={name:"block",aliases:[],description:"Block an IP address or CIDR range from accessing your project. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"ip",required:!0}],options:[projectOption,teamLevelOption,{name:"hostname",shorthand:null,type:String,deprecated:!1,description:"Scope block to a specific hostname (default: * for all hosts)"},{name:"notes",shorthand:null,type:String,deprecated:!1,description:"Add a note to the block rule"},yesOption],examples:[{name:"Block an IP",value:`${packageName} firewall ip-blocks block 1.2.3.4`},{name:"Block a CIDR range with a note",value:`${packageName} firewall ip-blocks block 10.0.0.0/24 --notes "Suspicious range"`},{name:"Block scoped to a hostname",value:`${packageName} firewall ip-blocks block 1.2.3.4 --hostname example.com`}]},ipBlocksUnblockSubcommand={name:"unblock",aliases:["rm"],description:"Remove an IP blocking rule to allow the address to access your project again. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"id-or-ip",required:!0}],options:[projectOption,teamLevelOption,{name:"hostname",shorthand:null,type:String,deprecated:!1,description:"Narrow match to a specific hostname (useful when the same IP is blocked on multiple hosts)"},yesOption],examples:[{name:"Unblock by IP",value:`${packageName} firewall ip-blocks unblock 1.2.3.4`},{name:"Unblock scoped to a hostname",value:`${packageName} firewall ip-blocks unblock 1.2.3.4 --hostname example.com`},{name:"Unblock by rule ID",value:`${packageName} firewall ip-blocks unblock ip_abc123`}]},ipBlocksSubcommand={name:"ip-blocks",aliases:[],description:"Manage IP blocking rules that deny access from specific addresses or ranges",arguments:[],subcommands:[ipBlocksListSubcommand,ipBlocksBlockSubcommand,ipBlocksUnblockSubcommand],options:[],examples:[{name:"List IP blocking rules",value:`${packageName} firewall ip-blocks list`},{name:"Block an IP",value:`${packageName} firewall ip-blocks block 1.2.3.4`},{name:"Unblock an IP",value:`${packageName} firewall ip-blocks unblock 1.2.3.4`}]},rulesListSubcommand2={name:"list",aliases:["ls"],description:"List managed bot rules and custom firewall rules, including unpublished draft changes",arguments:[],options:[projectOption,teamLevelOption,{name:"expand",shorthand:"e",type:Boolean,deprecated:!1,description:"Show full condition details for each rule"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List rules",value:`${packageName} firewall rules list`},{name:"List rules with full condition details",value:`${packageName} firewall rules list --expand`},{name:"List team-level rules",value:`${packageName} firewall rules list --team-level`}]},rulesInspectSubcommand={name:"inspect",aliases:[],description:"Show a custom or managed bot rule, including conditions, action, and rate limit settings",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Inspect a rule by name",value:`${packageName} firewall rules inspect "Block bots"`},{name:"Inspect a rule by ID",value:`${packageName} firewall rules inspect rule_abc123`},{name:"Inspect a managed bot rule",value:`${packageName} firewall rules inspect bot-protection`}]},rulesAddSubcommand2={name:"add",aliases:[],description:"Create a new custom firewall rule using AI, an interactive builder, JSON, or command-line flags. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name",required:!1}],options:[projectOption,teamLevelOption,{name:"ai",shorthand:null,type:String,deprecated:!1,description:"Generate rule from natural language (AI-powered)"},{name:"json",shorthand:null,type:String,deprecated:!1,description:"Create rule from JSON payload"},{name:"condition",shorthand:null,type:[String],deprecated:!1,description:`Condition as JSON (repeatable). Multiple conditions are AND'd together. Fields: type (required), op (required), value, key (for header/cookie/query), neg (boolean). Example: '{"type":"path","op":"pre","value":"/api"}'.`},{name:"or",shorthand:null,type:Boolean,deprecated:!1,description:"Start a new OR group. Conditions before --or are AND'd, conditions after form a separate group. Example: --condition A --condition B --or --condition C matches (A AND B) OR C."},{name:"action",shorthand:null,type:String,deprecated:!1,description:"Action: deny, challenge, log, bypass, rate_limit, redirect"},{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Action duration: 1m, 5m, 15m, 30m, 1h"},{name:"description",shorthand:null,type:String,deprecated:!1,description:"Rule description (max 256 chars)"},{name:"disabled",shorthand:null,type:Boolean,deprecated:!1,description:"Create as disabled (default: enabled)"},{name:"rate-limit-algo",shorthand:null,type:String,deprecated:!1,description:"Rate limit algorithm: fixed_window, token_bucket (default: fixed_window)"},{name:"rate-limit-window",shorthand:null,type:Number,deprecated:!1,description:"Rate limit window in seconds, 10-3600 (required for rate_limit)"},{name:"rate-limit-requests",shorthand:null,type:Number,deprecated:!1,description:"Rate limit max requests per window, 1-10000000 (required for rate_limit)"},{name:"rate-limit-keys",shorthand:null,type:[String],deprecated:!1,description:"Rate limit keys (repeatable): ip, ja4, header:name (default: ip)"},{name:"rate-limit-action",shorthand:null,type:String,deprecated:!1,description:"Action when rate limit is exceeded: log, deny, challenge, rate_limit (default: rate_limit)"},{name:"redirect-url",shorthand:null,type:String,deprecated:!1,description:"Redirect URL or path"},{name:"redirect-permanent",shorthand:null,type:Boolean,deprecated:!1,description:"Permanent redirect (301). Default: temporary (307)"},yesOption],examples:[{name:"Interactive mode",value:`${packageName} firewall rules add`},{name:"Create with AI",value:`${packageName} firewall rules add --ai "Rate limit /api to 100 requests per minute by IP"`},{name:"Create from JSON",value:`${packageName} firewall rules add --json '{"name":"Block bots","active":true,"conditionGroup":[{"conditions":[{"type":"user_agent","op":"sub","value":"crawler"}]}],"action":{"mitigate":{"action":"deny"}}}'`},{name:"Create with flags",value:`${packageName} firewall rules add "Block bots" --condition '{"type":"user_agent","op":"sub","value":"crawler"}' --action deny --yes`},{name:"Create with OR groups",value:`${packageName} firewall rules add "Block suspicious" --condition '{"type":"user_agent","op":"sub","value":"crawler"}' --or --condition '{"type":"ip_address","op":"eq","value":"1.2.3.4"}' --action deny --yes`}]},rulesEditSubcommand2={name:"edit",aliases:[],description:"Edit a custom rule or a managed bot rule action using AI, an interactive editor, JSON, or command-line flags. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"ai",shorthand:null,type:String,deprecated:!1,description:"Describe changes using natural language (AI-powered)"},{name:"json",shorthand:null,type:String,deprecated:!1,description:"Replace rule with JSON payload"},{name:"condition",shorthand:null,type:[String],deprecated:!1,description:`Replace conditions as JSON (repeatable). Example: '{"type":"path","op":"pre","value":"/api"}'. Fields: type, op, value, key (for header/cookie/query), neg (boolean). Use --or between conditions for OR groups.`},{name:"or",shorthand:null,type:Boolean,deprecated:!1,description:"Start a new OR condition group"},{name:"name",shorthand:null,type:String,deprecated:!1,description:"Rename the rule"},{name:"action",shorthand:null,type:String,deprecated:!1,description:"Change action: deny, challenge, log, bypass, rate_limit, redirect"},{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Change action duration: 1m, 5m, 15m, 30m, 1h"},{name:"description",shorthand:null,type:String,deprecated:!1,description:'Change description (use "" to clear)'},{name:"enabled",shorthand:null,type:Boolean,deprecated:!1,description:"Set rule to enabled"},{name:"disabled",shorthand:null,type:Boolean,deprecated:!1,description:"Set rule to disabled"},{name:"rate-limit-algo",shorthand:null,type:String,deprecated:!1,description:"Rate limit algorithm: fixed_window, token_bucket"},{name:"rate-limit-window",shorthand:null,type:Number,deprecated:!1,description:"Rate limit window in seconds (10-3600)"},{name:"rate-limit-requests",shorthand:null,type:Number,deprecated:!1,description:"Rate limit max requests per window (1-10000000)"},{name:"rate-limit-keys",shorthand:null,type:[String],deprecated:!1,description:"Rate limit keys (repeatable): ip, ja4, header:name"},{name:"rate-limit-action",shorthand:null,type:String,deprecated:!1,description:"Action when rate limit is exceeded: log, deny, challenge, rate_limit (default: rate_limit)"},{name:"redirect-url",shorthand:null,type:String,deprecated:!1,description:"Redirect URL or path"},{name:"redirect-permanent",shorthand:null,type:Boolean,deprecated:!1,description:"Permanent redirect (301). Default: temporary (307)"},yesOption],examples:[{name:"Interactive mode",value:`${packageName} firewall rules edit "My Rule"`},{name:"Edit with AI",value:`${packageName} firewall rules edit "My Rule" --ai "Change action to challenge"`},{name:"Change action via flags",value:`${packageName} firewall rules edit "My Rule" --action challenge --duration 5m --yes`},{name:"Replace conditions",value:`${packageName} firewall rules edit "My Rule" --condition '{"type":"path","op":"pre","value":"/new"}' --yes`},{name:"Rename a rule",value:`${packageName} firewall rules edit "My Rule" --name "New Name" --yes`},{name:"Change a managed bot rule action",value:`${packageName} firewall rules edit ai-bots --action deny --yes`}]},rulesEnableSubcommand={name:"enable",aliases:[],description:"Enable a disabled custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Enable a rule",value:`${packageName} firewall rules enable "My Rule"`}]},rulesDisableSubcommand={name:"disable",aliases:[],description:"Disable a custom firewall rule without removing it. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Disable a rule",value:`${packageName} firewall rules disable "My Rule"`}]},rulesRemoveSubcommand2={name:"remove",aliases:["rm","delete"],description:"Remove a custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Remove a rule",value:`${packageName} firewall rules remove "My Rule" --yes`}]},rulesReorderSubcommand={name:"reorder",aliases:["move"],description:"Change the priority order of a custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"position",shorthand:null,type:Number,deprecated:!1,description:"Target position (1-based)"},{name:"first",shorthand:null,type:Boolean,deprecated:!1,description:"Move to first position"},{name:"last",shorthand:null,type:Boolean,deprecated:!1,description:"Move to last position"},yesOption],examples:[{name:"Move to first position",value:`${packageName} firewall rules reorder "My Rule" --first --yes`},{name:"Move to position 3",value:`${packageName} firewall rules reorder "My Rule" --position 3 --yes`}]},rulesSubcommand2={name:"rules",aliases:[],description:"Manage custom firewall rules that control how traffic is handled based on conditions",arguments:[],subcommands:[rulesListSubcommand2,rulesInspectSubcommand,rulesAddSubcommand2,rulesEditSubcommand2,rulesEnableSubcommand,rulesDisableSubcommand,rulesRemoveSubcommand2,rulesReorderSubcommand],options:[],examples:[{name:"List rules",value:`${packageName} firewall rules list`},{name:"Inspect a rule",value:`${packageName} firewall rules inspect "Block bots"`},{name:"Create with AI",value:`${packageName} firewall rules add --ai "Rate limit /api to 100 requests per minute by IP"`},{name:"Edit with AI",value:`${packageName} firewall rules edit "My Rule" --ai "Change action to challenge"`}]},attackModeEnableSubcommand={name:"enable",aliases:[],description:"Enable attack mode \u2014 all visitors will be shown a verification challenge before accessing your site. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Duration: 1h, 6h, or 24h (default: 1h)"},yesOption],examples:[{name:"Enable attack mode for 1 hour",value:`${packageName} firewall attack-mode enable`},{name:"Enable attack mode for 24 hours",value:`${packageName} firewall attack-mode enable --duration 24h`}]},attackModeDisableSubcommand={name:"disable",aliases:[],description:"Disable attack mode \u2014 visitors will no longer be challenged. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Disable attack mode",value:`${packageName} firewall attack-mode disable`}]},attackModeSubcommand={name:"attack-mode",aliases:[],description:"Manage attack mode, which challenges all incoming requests with a verification page",arguments:[],subcommands:[attackModeEnableSubcommand,attackModeDisableSubcommand],options:[],examples:[{name:"Enable attack mode",value:`${packageName} firewall attack-mode enable`},{name:"Disable attack mode",value:`${packageName} firewall attack-mode disable`}]},systemMitigationsPauseSubcommand={name:"pause",aliases:[],description:"Pause automatic DDoS protection and system-level traffic filtering for 24 hours. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Pause system mitigations",value:`${packageName} firewall system-mitigations pause`}]},systemMitigationsResumeSubcommand={name:"resume",aliases:[],description:"Resume automatic DDoS protection and system-level traffic filtering. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Resume system mitigations",value:`${packageName} firewall system-mitigations resume`}]},systemMitigationsSubcommand={name:"system-mitigations",aliases:[],description:"Manage automatic DDoS protection and system-level traffic filtering",arguments:[],subcommands:[systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand],options:[],examples:[{name:"Pause system mitigations",value:`${packageName} firewall system-mitigations pause`}]},jsonOutputOption={name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"},alertsListSubcommand={name:"list",aliases:["ls"],description:"List active and resolved firewall alerts for the linked project",arguments:[],options:[projectOption,jsonOutputOption,{name:"since",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Start of the window: relative (24h, 7d) or ISO date (default: 24h ago)"},{name:"until",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"End of the window (default: now)"}],examples:[{name:"List alerts from the last day",value:`${packageName} firewall alerts list`},{name:"List alerts from the last week",value:`${packageName} firewall alerts list --since 7d`}]},alertsInspectSubcommand={name:"inspect",aliases:[],description:"Show one firewall alert: window, request rate, denied IPs, and top hosts",arguments:[{name:"alertid",required:!0}],options:[projectOption,jsonOutputOption],examples:[{name:"Inspect an alert",value:`${packageName} firewall alerts inspect al_abc123`}]},alertsSubcommand={name:"alerts",aliases:[],description:"List and inspect firewall alerts, including DDoS mitigation episodes",arguments:[],subcommands:[alertsListSubcommand,alertsInspectSubcommand],options:[],examples:[{name:"List alerts",value:`${packageName} firewall alerts list`},{name:"Inspect an alert",value:`${packageName} firewall alerts inspect al_abc123`}]},persistentActionsListSubcommand={name:"list",aliases:["ls"],description:"List persistent firewall actions for the linked project (default: last hour)",arguments:[],options:[projectOption,jsonOutputOption,{name:"since",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Start of the window: relative (1h, 6h) or ISO date (default: 1h ago)"},{name:"until",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"End of the window (default: now)"},{name:"limit",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Number of actions to show (default: 10)"}],examples:[{name:"List persistent actions from the last hour",value:`${packageName} firewall persistent-actions list`},{name:"List persistent actions from the last six hours",value:`${packageName} firewall persistent-actions list --since 6h`}]},persistentActionsInspectSubcommand={name:"inspect",aliases:[],description:"Show one persistent firewall action: window and requests by action",arguments:[{name:"ip",required:!0}],options:[projectOption,jsonOutputOption,{name:"host",shorthand:null,type:String,argument:"HOSTNAME",deprecated:!1,description:"Narrow to a hostname"},{name:"action",shorthand:null,type:String,argument:"ACTION",deprecated:!1,description:"Narrow to an action (challenge, deny, log, \u2026)"},{name:"since",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Start of the window: relative (1h, 6h) or ISO date (default: 1h ago)"},{name:"until",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"End of the window (default: now)"},{name:"paths",shorthand:null,type:Boolean,deprecated:!1,description:"Include the top request paths"}],examples:[{name:"Inspect a persistent action by IP",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --host vercel.com --action challenge`},{name:"Include the paths the client requested",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --paths`}]},persistentActionsSubcommand={name:"persistent-actions",aliases:[],description:"List and inspect persistent firewall actions taken against specific clients",arguments:[],subcommands:[persistentActionsListSubcommand,persistentActionsInspectSubcommand],options:[],examples:[{name:"List persistent actions",value:`${packageName} firewall persistent-actions list`},{name:"Inspect a persistent action",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --host vercel.com --action challenge`}]},trafficIpOption={name:"ip",shorthand:null,type:String,argument:"IP",deprecated:!1,description:"Narrow to one client IP"},trafficJa4Option={name:"ja4",shorthand:null,type:String,argument:"DIGEST",deprecated:!1,description:"Narrow to one JA4 TLS fingerprint"},trafficAsnOption={name:"asn",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Narrow to one autonomous system name"},trafficUserAgentOption={name:"user-agent",shorthand:null,type:String,argument:"UA",deprecated:!1,description:"Narrow to one user agent"},trafficPathOption={name:"path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Narrow to one request path"},trafficRuleOption={name:"rule",shorthand:null,type:String,argument:"RULE_ID",deprecated:!1,description:"Narrow to one firewall rule id"},trafficHostOption={name:"host",shorthand:null,type:String,argument:"HOSTNAME",deprecated:!1,description:"Narrow to one hostname"},trafficBotOption={name:"bot",shorthand:null,type:String,argument:"BOT",deprecated:!1,description:"Narrow to one verified bot"},trafficUnknownBotOption={name:"unknown-bot",shorthand:null,type:String,argument:"CATEGORY",deprecated:!1,description:"Narrow inspect unknown-bot to one category"},trafficCountryOption={name:"country",shorthand:null,type:String,argument:"CODE",deprecated:!1,description:"Narrow to one country code"},trafficActionOption={name:"action",shorthand:null,type:String,argument:"ACTION",deprecated:!1,description:"Narrow to one firewall action (deny, challenge, log, \u2026)"},trafficFilterOption={name:"filter",shorthand:null,type:[String],argument:"EXPR",deprecated:!1,description:"KQL filter expression (repeatable, ANDed together)"},trafficAlertOption={name:"alert",shorthand:null,type:String,argument:"ALERT_ID",deprecated:!1,description:"Scope the window and rule to one alert id from `firewall alerts list`"},trafficSinceOption={name:"since",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"Start of the window: relative (1h, 24h) or ISO date (default: 24h ago)"},trafficUntilOption={name:"until",shorthand:null,type:String,argument:"TIME",deprecated:!1,description:"End of the window (default: now)"},trafficDimensionOptions=[trafficIpOption,trafficJa4Option,trafficAsnOption,trafficUserAgentOption,trafficPathOption,trafficRuleOption,trafficHostOption,trafficBotOption,trafficUnknownBotOption,trafficCountryOption,trafficActionOption],trafficListSubcommand={name:"list",aliases:["ls"],description:"Show requests by firewall action, with the top clients behind them",arguments:[],options:[projectOption,jsonOutputOption,trafficSinceOption,trafficUntilOption,{name:"top",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Rows per top list (default: 5)"},{name:"dimension",shorthand:null,type:[String],argument:"DIM",deprecated:!1,description:"Top list to include: ip, ja4, asn, user-agent, path, rule, host, bot, unknown-bot, country, action (repeatable; default: ip, ja4, asn, user-agent, path, rule, host, bot)"},trafficAlertOption,...trafficDimensionOptions,trafficFilterOption],examples:[{name:"Show traffic from the last day",value:`${packageName} firewall traffic list`},{name:"Show the last hour, with the top 20 rows per list",value:`${packageName} firewall traffic list --since 1h --top 20`},{name:"Show which countries and user agents denied traffic came from",value:`${packageName} firewall traffic list --action deny --dimension country --dimension user-agent`}]},trafficInspectSubcommand={name:"inspect",aliases:[],description:"Show one traffic dimension value: its actions over time and what it requested",arguments:[{name:"dimension",required:!0},{name:"value",required:!0}],options:[projectOption,jsonOutputOption,trafficSinceOption,trafficUntilOption,{name:"group-by",shorthand:null,type:String,argument:"DIM",deprecated:!1,description:"Dimension to break the traffic down by (default: depends on the inspected dimension)"},{name:"top",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Rows in the breakdown (default: 10)"},trafficAlertOption,...trafficDimensionOptions,trafficFilterOption],examples:[{name:"Inspect one client IP",value:`${packageName} firewall traffic inspect ip 1.2.3.4`},{name:"See which IPs a rule acted on",value:`${packageName} firewall traffic inspect rule rule_abc123 --group-by ip`},{name:"Inspect a path over the last week",value:`${packageName} firewall traffic inspect path /api/checkout --since 7d`},{name:"Narrow one client to what the firewall denied",value:`${packageName} firewall traffic inspect ip 1.2.3.4 --action deny`}]},botManagementSubcommand={name:"bot-management",aliases:[],description:"List managed bot rules and top unknown bot traffic",arguments:[],options:[projectOption,jsonOutputOption],examples:[{name:"List managed bot rules and unknown bot traffic",value:`${packageName} firewall bot-management`},{name:"Edit Bot Protection",value:`${packageName} firewall rules edit bot-protection --action log --yes`}]},trafficSubcommand={name:"traffic",aliases:[],description:"Explore firewall traffic: requests by action, top clients, and one dimension in detail",arguments:[],subcommands:[trafficListSubcommand,trafficInspectSubcommand],options:[],examples:[{name:"Show traffic from the last day",value:`${packageName} firewall traffic list`},{name:"Inspect one client IP",value:`${packageName} firewall traffic inspect ip 1.2.3.4`}]},firewallCommand={name:"firewall",aliases:[],description:"Manage your project's firewall rules, IP blocks, and system bypass configuration",arguments:[],subcommands:[overviewSubcommand,statusSubcommand,diffSubcommand,publishSubcommand,discardSubcommand,ipBlocksSubcommand,rulesSubcommand2,botManagementSubcommand,systemBypassSubcommand,attackModeSubcommand,systemMitigationsSubcommand,alertsSubcommand,persistentActionsSubcommand,trafficSubcommand],options:[],examples:[{name:"Show firewall traffic",value:`${packageName} firewall traffic list`},{name:"List managed bot rules",value:`${packageName} firewall bot-management`},{name:"List firewall alerts",value:`${packageName} firewall alerts list`},{name:"List persistent firewall actions",value:`${packageName} firewall persistent-actions list`},{name:"Show firewall overview",value:`${packageName} firewall overview`},{name:"Show unpublished changes",value:`${packageName} firewall diff`},{name:"Add a system bypass for an IP",value:`${packageName} firewall system-bypass add 10.0.0.1`}]};var TIMESTAMP_IDENTIFY_HELP="Pass Timestamp values as epoch milliseconds in identify() / evaluation context",FLAG_ATTRIBUTE_TYPES=["string","number","boolean","stringArray","timestamp"];function isFlagAttributeType(type){return FLAG_ATTRIBUTE_TYPES.includes(type)}function formatFlagAttributeTypeList(){return FLAG_ATTRIBUTE_TYPES.join(", ")}function isTimestampAttributeType(type){return type==="timestamp"}function isBucketingAttribute(attribute){return!isTimestampAttributeType(attribute.type)}function getFlagAttributeType(settings,kind,attribute){return settings?.entities.find(entity=>entity.kind===kind)?.attributes.find(candidate=>candidate.key===attribute)?.type}var FLAG_CONDITION_COMPARATORS=["eq","!eq","oneOf","!oneOf","containsAllOf","containsAnyOf","containsNoneOf","startsWith","endsWith","contains","!contains","ex","!ex","gt","gte","lt","lte"],FLAG_CONDITION_LIST_COMPARATORS=["oneOf","!oneOf","containsAllOf","containsAnyOf","containsNoneOf"],FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS=["ex","!ex"];function formatFlagConditionComparatorList(){return FLAG_CONDITION_COMPARATORS.join(", ")}var FLAG_CONDITION_COMPARATOR_LABELS={eq:"is","!eq":"is not",oneOf:"is in","!oneOf":"is not in",containsAllOf:"contains all of",containsAnyOf:"contains any of",containsNoneOf:"contains none of",startsWith:"starts with",endsWith:"ends with",contains:"contains","!contains":"does not contain",ex:"has any value","!ex":"has no value",gt:"is greater than",gte:"is greater than or equal to",lt:"is less than",lte:"is less than or equal to"},TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS={gt:"is after",gte:"is on or after",lt:"is before",lte:"is on or before"},LEGACY_FLAG_CONDITION_COMPARATOR_LABELS={notContains:FLAG_CONDITION_COMPARATOR_LABELS["!contains"]};function formatFlagConditionComparator(comparator,options){let label=(options?.attributeType==="timestamp"?TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS[comparator]:void 0)??FLAG_CONDITION_COMPARATOR_LABELS[comparator]??LEGACY_FLAG_CONDITION_COMPARATOR_LABELS[comparator]??comparator;return options?.ignoreCase?`${label} (case-insensitive)`:label}var FLAG_EVALUATIONS_GRANULARITIES=["1m","5m","15m","1h","4h","1d"];function isFlagEvaluationsGranularity(value){return FLAG_EVALUATIONS_GRANULARITIES.some(granularity=>granularity===value)}var segmentRuleOperatorDescription=`Valid operators: ${formatFlagConditionComparatorList()}. Timestamp attributes also accept after, before, on-or-after, and on-or-before with an ISO 8601 date and time (for example 2026-04-16T09:00:00Z) or epoch milliseconds. after and before are exclusive; use on-or-after or on-or-before for inclusive boundaries. Date/times without a timezone use this machine's timezone. ${TIMESTAMP_IDENTIFY_HELP}`,listSubcommand11={name:"list",aliases:["ls"],description:"List all feature flags for the current project",default:!0,arguments:[],options:[projectOption,{name:"state",shorthand:"s",type:String,deprecated:!1,description:"Filter flags by state (active or archived)",argument:"STATE"},{name:"tag",shorthand:null,type:[String],deprecated:!1,description:"Filter flags by tag (repeatable; all must match)",argument:"TAG"},{name:"created-by",shorthand:null,type:String,deprecated:!1,description:"Filter flags by the id of the user or team that created them",argument:"ID"},{name:"maintainer-id",shorthand:null,type:[String],deprecated:!1,description:"Filter flags by maintainer user id (repeatable; any may match)",argument:"ID"},{name:"limit",shorthand:null,type:Number,deprecated:!1,description:"Return a single page of at most NUMBER flags (1-100) instead of all",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Pagination cursor from a previous list response",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List all active flags",value:`${packageName} flags ls`},{name:"List archived flags",value:`${packageName} flags ls --state archived`},{name:"Filter flags by tag, creator, and maintainer",value:`${packageName} flags ls --tag checkout --created-by user_123 --maintainer-id user_456`},{name:"List the first page of 10 flags",value:`${packageName} flags ls --limit 10`},{name:"List the next page using the cursor from the previous page",value:`${packageName} flags ls --limit 10 --next <cursor>`},{name:"List flags as JSON",value:`${packageName} flags ls --json`}]},staleSubcommand={name:"stale",aliases:[],description:"List stale feature flags for the current project",hidden:!0,arguments:[],options:[projectOption,{name:"stale-after",shorthand:null,type:String,deprecated:!1,description:"Consider flags stale after this relative day duration (default: 30d, max: 90d)",argument:"DURATION"},{name:"limit",shorthand:null,type:Number,deprecated:!1,description:"Return one page of at most NUMBER stale flags (default: 50, max: 100)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Pagination cursor from a previous stale response",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List stale flags",value:`${packageName} flags stale`},{name:"List flags that have been stale for 14 days",value:`${packageName} flags stale --stale-after 14d`},{name:"List the next page using the cursor from the previous page",value:`${packageName} flags stale --limit 10 --next <cursor>`},{name:"List stale flags as JSON",value:`${packageName} flags stale --json`}]},inspectSubcommand6={name:"inspect",aliases:[],description:"Display information about a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,jsonOption],examples:[{name:"Show details of a feature flag",value:`${packageName} flags inspect my-feature-flag`},{name:"Show flag data as JSON",value:`${packageName} flags inspect my-feature-flag --json`}]},versionsListSubcommand={name:"list",aliases:["ls"],default:!0,description:"List version history for a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"Filter versions by changed environment",argument:"ENV"},{name:"limit",shorthand:null,type:Number,deprecated:!1,description:"Return at most NUMBER versions (1-100)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Continue from a previous response",argument:"CURSOR"},{name:"cursor",shorthand:null,type:String,deprecated:!0,description:"Pagination cursor from a previous versions response",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List version history for a feature flag",value:`${packageName} flags versions my-feature-flag`},{name:"List version history using the explicit list subcommand",value:`${packageName} flags versions list my-feature-flag`},{name:"List production version history",value:`${packageName} flags versions my-feature-flag --environment production`},{name:"List the next page of version history",value:`${packageName} flags versions my-feature-flag --limit 10 --next <cursor>`},{name:"List version history as JSON",value:`${packageName} flags versions my-feature-flag --json`}]},versionsDiffSubcommand={name:"diff",aliases:[],description:"Show changes introduced by a feature flag version",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"revision",shorthand:null,type:Number,deprecated:!1,description:"Revision number to compare with the previous revision",argument:"NUMBER"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the diff in JSON format"}],examples:[{name:"Show what changed in a revision",value:`${packageName} flags versions diff my-feature-flag --revision 4`},{name:"Show the revision diff as JSON",value:`${packageName} flags versions diff my-feature-flag --revision 4 --json`}]},versionsSubcommand={name:"versions",aliases:[],description:"List and compare version history for a feature flag",arguments:[],subcommands:[versionsListSubcommand,versionsDiffSubcommand],options:[],examples:[{name:"List version history for a feature flag",value:`${packageName} flags versions my-feature-flag`},{name:"Show what changed in a revision",value:`${packageName} flags versions diff my-feature-flag --revision 4`}]},evaluationsSubcommand={name:"evaluations",aliases:[],description:"Display evaluation metrics for a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"since",shorthand:"s",type:String,deprecated:!1,description:"Start time: relative (1h, 30m, 2d) or ISO date (default: 1h)",argument:"TIME"},{name:"until",shorthand:"u",type:String,deprecated:!1,description:"End time (default: now)",argument:"TIME"},{name:"granularity",shorthand:"g",type:String,deprecated:!1,description:`Time bucket size: ${FLAG_EVALUATIONS_GRANULARITIES.join(", ")} (default: auto)`,argument:"SIZE"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"Show evaluations by variant for the last hour",value:`${packageName} flags evaluations my-feature`},{name:"Show evaluation metrics as JSON",value:`${packageName} flags evaluations my-feature --since 24h --json`}]},createSubcommand5={name:"create",aliases:["add"],description:"Create a new feature flag",arguments:[{name:"slug",required:!0}],options:[projectOption,{name:"kind",shorthand:"k",type:String,deprecated:!1,description:"The type of the flag value (boolean, string, number, or json)",argument:"KIND"},{name:"description",shorthand:"d",type:String,deprecated:!1,description:"Description of the feature flag",argument:"TEXT"},{name:"variant",shorthand:"v",type:[String],deprecated:!1,description:"Variant definition as VALUE[=LABEL] (can be repeated for string, number, and json flags)",argument:"VALUE[=LABEL]"}],examples:[{name:"Create a boolean feature flag",value:`${packageName} flags create my-feature`},{name:"Create a string feature flag with description",value:`${packageName} flags create my-feature --kind string --description "My feature flag"`},{name:"Create a string feature flag with explicit variants",value:`${packageName} flags add my-feature --kind string --variant control="Welcome back" --variant treatment="New onboarding"`},{name:"Create a JSON feature flag with explicit variants",value:`${packageName} flags add layout-config --kind json --variant '{"theme":"light"}'=Light --variant '{"theme":"dark","sidebar":true}'=Dark`}]},openSubcommand3={name:"open",aliases:[],description:"Open feature flags in the Vercel dashboard",arguments:[{name:"flag",required:!1}],options:[projectOption],examples:[{name:"Open the project feature flags dashboard",value:`${packageName} flags open`},{name:"Open a specific feature flag",value:`${packageName} flags open my-feature-flag`}]},updateSubcommand4={name:"update",aliases:[],description:"Update an existing feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"variant",shorthand:"v",type:String,deprecated:!1,description:"Variant ID or value to update",argument:"VARIANT"},{name:"value",shorthand:null,type:String,deprecated:!1,description:"New variant value",argument:"VALUE"},{name:"label",shorthand:"l",type:String,deprecated:!1,description:"New variant label",argument:"LABEL"},{name:"add-variant",shorthand:null,type:[String],deprecated:!1,description:"Add a variant as VALUE[=LABEL] (repeatable for string, number, and json flags)",argument:"VALUE[=LABEL]"},{name:"remove-variant",shorthand:null,type:[String],deprecated:!1,description:"Remove a variant by ID or value (repeatable)",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"},{...yesOption,description:"Skip the confirmation prompt when removing a variant"}],examples:[{name:"Update a string variant value and label",value:`${packageName} flags update my-feature --variant control --value welcome-back --label "Welcome back"`},{name:"Update a variant with a revision message",value:`${packageName} flags update my-feature --variant control --label "Control" --message "Rename control variant"`},{name:"Rename a boolean variant label",value:`${packageName} flags update my-feature --variant false --label "Disabled"`},{name:"Add a new variant",value:`${packageName} flags update my-feature --add-variant treatment="New onboarding"`},{name:"Remove variants by value or ID",value:`${packageName} flags update my-feature --remove-variant control --remove-variant var_123 --yes`}]},setSubcommand2={name:"set",aliases:[],description:"Set the served variant for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to set the variant in (production, preview, or development)",argument:"ENV"},{name:"variant",shorthand:"v",type:String,deprecated:!1,description:"The variant ID or value to serve",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Set a string variant in production",value:`${packageName} flags set welcome-message --environment production --variant control`},{name:"Set a number variant in preview",value:`${packageName} flags set bucket-size -e preview --variant 20`},{name:"Set a boolean flag to true in development",value:`${packageName} flags set my-feature -e development --variant true`}]},useTargetingSubcommand={name:"use-targeting",aliases:[],description:"Enable targeting for a feature flag environment; keeps the current fallthrough unless --default-variant is set",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to enable targeting in (production, preview, or development)",argument:"ENV"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"Replace the fallthrough with this variant when no targeting rules match",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Enable targeting and keep the current fallthrough",value:`${packageName} flags use-targeting my-feature --environment production`},{name:"Enable targeting with a static default Off",value:`${packageName} flags use-targeting my-feature --environment production --default-variant false`},{name:"Enable targeting with a string default",value:`${packageName} flags use-targeting welcome-message -e production --default-variant control`}]},splitSubcommand={name:"split",aliases:[],description:"Configure a weighted split for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to configure (production, preview, or development)",argument:"ENV"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"weight",shorthand:"w",type:[String],deprecated:!1,description:"Variant weight ratio as VARIANT=WEIGHT. Repeat for each variant; values are normalized and 0 receives no traffic.",argument:"VARIANT=WEIGHT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"The fallback variant to serve when the split attribute is unavailable",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Split a boolean flag in production",value:`${packageName} flags split redesigned-checkout --environment production --by user.userId --weight false=95 --weight true=5`},{name:"Split a string flag with a fallback variant",value:`${packageName} flags split welcome-message -e production --by user.userId --default-variant control --weight control=90 --weight treatment=10`},{name:"Exclude a variant from the split",value:`${packageName} flags split checkout-copy -e preview --by user.userId --default-variant control --weight control=50 --weight treatment=50 --weight legacy=0`}]},rolloutSubcommand={name:"rollout",aliases:[],description:"Configure a progressive rollout for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to configure (production, preview, or development)",argument:"ENV"},{name:"from-variant",shorthand:null,type:String,deprecated:!1,description:"The variant to roll away from (defaults to false for boolean flags)",argument:"VARIANT"},{name:"to-variant",shorthand:null,type:String,deprecated:!1,description:"The variant to roll towards (defaults to true for boolean flags)",argument:"VARIANT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"The fallback variant to serve when the rollout attribute is unavailable",argument:"VARIANT"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"stage",shorthand:"s",type:[String],deprecated:!1,description:'Add a rollout stage as PERCENTAGE,DURATION (e.g. "5,6h"). Can be specified multiple times. 100% is implied at the end.',argument:"PERCENTAGE,DURATION"},{name:"start",shorthand:null,type:String,deprecated:!1,description:'When the rollout should start: "now", a future relative time like "1h", or an ISO 8601 datetime',argument:"TIME"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Start a progressive boolean rollout in production",value:`${packageName} flags rollout redesigned-checkout --environment production --by user.userId --stage 5,6h --stage 10,6h --stage 25,12h --stage 50,1d`},{name:"Schedule a string-flag rollout for later",value:`${packageName} flags rollout welcome-message -e production --by user.userId --from-variant control --to-variant treatment --default-variant control --stage 10,2h --stage 50,12h --start 2026-04-16T09:00:00Z`},{name:"Update only the rollout schedule while keeping current variants",value:`${packageName} flags rollout redesigned-checkout -e production --stage 5,30m --stage 25,2h --stage 50,8h`}]},ruleConditionDescription=`Rule condition as ENTITY.ATTRIBUTE:OPERATOR:VALUE or segment:OPERATOR:SEGMENT. Repeatable; semicolon-separated conditions are also supported. ${segmentRuleOperatorDescription}`,ruleOutcomeOptions=[{name:"variant",shorthand:"v",type:String,deprecated:!1,description:"Variant ID or value to serve when the rule matches",argument:"VARIANT"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for split or rollout bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"weight",shorthand:"w",type:[String],deprecated:!1,description:"Split weight ratio as VARIANT=WEIGHT. Repeat for each variant.",argument:"VARIANT=WEIGHT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"Fallback variant for split or rollout outcomes when the bucketing attribute is unavailable",argument:"VARIANT"},{name:"from-variant",shorthand:null,type:String,deprecated:!1,description:"Variant to roll away from for rollout outcomes",argument:"VARIANT"},{name:"to-variant",shorthand:null,type:String,deprecated:!1,description:"Variant to roll towards for rollout outcomes",argument:"VARIANT"},{name:"stage",shorthand:"s",type:[String],deprecated:!1,description:"Add a rollout stage as PERCENTAGE,DURATION. Can be specified multiple times.",argument:"PERCENTAGE,DURATION"},{name:"start",shorthand:null,type:String,deprecated:!1,description:'When the rollout should start: "now", a relative time like "1h", or an ISO 8601 datetime',argument:"TIME"}],ruleMessageOption={name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"},rulesListSubcommand3={name:"list",aliases:["ls"],description:"List conditional rules for a feature flag environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to list rules for (production, preview, or development)",argument:"ENV"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List production rules for a flag",value:`${packageName} flags rules ls my-feature --environment production`},{name:"List rules as JSON",value:`${packageName} flags rules ls my-feature -e production --json`}]},rulesAddSubcommand3={name:"add",aliases:[],description:"Add a conditional rule to a feature flag environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to add the rule to (production, preview, or development)",argument:"ENV"},{name:"condition",shorthand:"c",type:[String],deprecated:!1,description:ruleConditionDescription,argument:"CONDITION"},...ruleOutcomeOptions,{name:"position",shorthand:"p",type:Number,deprecated:!1,description:"1-based position for the new rule (defaults to last)",argument:"N"},ruleMessageOption],examples:[{name:"Add a variant rule",value:`${packageName} flags rules add my-feature --environment production --condition user.plan:eq:pro --variant on`},{name:"Add a segment rule",value:`${packageName} flags rules add my-feature -e production --condition segment:eq:seg_beta123 --variant on`},{name:"Add a rule with a timestamp condition",value:`${packageName} flags rules add my-feature -e production --condition user.signupAt:after:2026-04-16T09:00:00Z --variant on`},{name:"Add a split rule at the top",value:`${packageName} flags rules add my-feature -e production --condition user.plan:eq:pro --by user.userId --weight false=90 --weight true=10 --position 1`}]},rulesUpdateSubcommand={name:"update",aliases:[],description:"Update a conditional rule in a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENV"},{name:"condition",shorthand:"c",type:[String],deprecated:!1,description:"Replace rule conditions. "+ruleConditionDescription,argument:"CONDITION"},...ruleOutcomeOptions,ruleMessageOption],examples:[{name:"Replace rule conditions",value:`${packageName} flags rules update my-feature rule_123 --environment production --condition user.plan:eq:enterprise`},{name:"Update a rule outcome",value:`${packageName} flags rules update my-feature rule_123 -e production --variant off`}]},rulesRemoveSubcommand3={name:"remove",aliases:["rm"],description:"Remove a conditional rule from a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENV"},ruleMessageOption],examples:[{name:"Remove a rule",value:`${packageName} flags rules rm my-feature rule_123 --environment production`}]},rulesMoveSubcommand={name:"move",aliases:[],description:"Move a conditional rule within a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENV"},{name:"position",shorthand:"p",type:Number,deprecated:!1,description:"1-based destination position for the rule",argument:"N"},ruleMessageOption],examples:[{name:"Move a rule to the top",value:`${packageName} flags rules move my-feature rule_123 --environment production --position 1`}]},rulesSubcommand3={name:"rules",aliases:[],description:"Manage conditional rules for feature flags",arguments:[],subcommands:[rulesListSubcommand3,rulesAddSubcommand3,rulesUpdateSubcommand,rulesRemoveSubcommand3,rulesMoveSubcommand],options:[],examples:[]},removeSubcommand8={name:"remove",aliases:["rm"],description:"Delete a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting a flag"}],examples:[{name:"Delete a feature flag",value:`${packageName} flags rm my-feature-flag`},{name:"Delete without confirmation",value:`${packageName} flags rm my-feature-flag --yes`}]},archiveSubcommand={name:"archive",aliases:[],description:"Archive a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when archiving a flag"}],examples:[{name:"Archive a feature flag",value:`${packageName} flags archive my-feature-flag`},{name:"Archive without confirmation",value:`${packageName} flags archive my-feature-flag --yes`}]},unarchiveSubcommand={name:"unarchive",aliases:[],description:"Unarchive a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when unarchiving a flag"}],examples:[{name:"Unarchive a feature flag",value:`${packageName} flags unarchive my-feature-flag`},{name:"Unarchive without confirmation",value:`${packageName} flags unarchive my-feature-flag --yes`}]},disableSubcommand={name:"disable",aliases:[],description:"Shortcut to serve the false variant of a boolean feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to disable the flag in (production, preview, or development)",argument:"ENV"},{name:"variant",shorthand:"v",type:String,deprecated:!1,description:"The variant ID or value to serve while the flag is disabled",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Disable a flag in production",value:`${packageName} flags disable my-feature --environment production`},{name:"Disable a flag with a specific variant",value:`${packageName} flags disable my-feature -e production --variant false`},{name:"Disable a flag with a revision message",value:`${packageName} flags disable my-feature -e production --message "Pause rollout in production"`}]},enableSubcommand={name:"enable",aliases:[],description:"Shortcut to serve the true variant of a boolean feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to enable the flag in (production, preview, or development)",argument:"ENV"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Enable a flag in production",value:`${packageName} flags enable my-feature --environment production`},{name:"Enable a flag with a revision message",value:`${packageName} flags enable my-feature --environment production --message "Resume production rollout"`}]},segmentsListSubcommand={name:"list",aliases:["ls"],description:"List all feature flag segments for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List all segments",value:`${packageName} flags segments ls`},{name:"List segments as JSON",value:`${packageName} flags segments ls --json`}]},segmentsInspectSubcommand={name:"inspect",aliases:[],description:"Display information about a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"Show details of a segment",value:`${packageName} flags segments inspect beta-users`},{name:"Show segment data as JSON",value:`${packageName} flags segments inspect beta-users --json`}]},segmentsCreateSubcommand={name:"create",aliases:["add"],description:"Create a feature flag segment",arguments:[{name:"slug",required:!0}],options:[projectOption,{name:"label",shorthand:"l",type:String,deprecated:!1,description:"Human-readable label for the segment",argument:"LABEL"},{name:"description",shorthand:"d",type:String,deprecated:!1,description:"Description of the segment",argument:"TEXT"},{name:"hint",shorthand:null,type:String,deprecated:!1,description:"Hint describing who belongs in the segment",argument:"TEXT"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Full segment data JSON with rules, include, and exclude fields",argument:"JSON"},{name:"add",shorthand:"a",type:[String],deprecated:!1,description:`Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the created segment as JSON"}],examples:[{name:"Create a segment with included users",value:`${packageName} flags segments create beta-users --label "Beta users" --add include:user.id=user_123 --add include:user.id=user_456`},{name:"Create a segment using a timestamp condition",value:`${packageName} flags segments create early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`},{name:"Create a segment from full JSON data",value:`${packageName} flags segments create staff --label Staff --data '{"rules":[],"include":{"user":{"email":[{"value":"me@company.com"}]}},"exclude":{}}'`}]},segmentsUpdateSubcommand={name:"update",aliases:[],description:"Update a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{name:"label",shorthand:"l",type:String,deprecated:!1,description:"New human-readable label for the segment",argument:"LABEL"},{name:"description",shorthand:"d",type:String,deprecated:!1,description:"New description for the segment",argument:"TEXT"},{name:"hint",shorthand:null,type:String,deprecated:!1,description:"New hint for the segment",argument:"TEXT"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Replace the full segment data JSON with rules, include, and exclude fields",argument:"JSON"},{name:"add",shorthand:"a",type:[String],deprecated:!1,description:`Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"remove",shorthand:null,type:[String],deprecated:!1,description:`Remove include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE, or rule:RULE_ID; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the updated segment as JSON"}],examples:[{name:"Rename a segment",value:`${packageName} flags segments update beta-users --label "Early access users"`},{name:"Add and remove included users",value:`${packageName} flags segments update beta-users --add include:user.id=user_789 --remove include:user.id=user_123`},{name:"Add and remove rules",value:`${packageName} flags segments update enterprise-users --add rule:user.email:ends-with:@company.com --remove rule:user.plan:eq:pro`},{name:"Add a timestamp condition",value:`${packageName} flags segments update early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`}]},segmentsRemoveSubcommand={name:"remove",aliases:["rm"],description:"Delete a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting a segment"}],examples:[{name:"Delete a segment",value:`${packageName} flags segments rm beta-users`},{name:"Delete without confirmation",value:`${packageName} flags segments rm beta-users --yes`}]},segmentsSubcommand={name:"segments",aliases:[],description:"Manage feature flag segments",arguments:[],subcommands:[segmentsListSubcommand,segmentsInspectSubcommand,segmentsCreateSubcommand,segmentsUpdateSubcommand,segmentsRemoveSubcommand],options:[],examples:[]},attributeTypeDescription=`Valid types: ${formatFlagAttributeTypeList()}`,entitiesListSubcommand={name:"list",aliases:["ls"],description:"List the feature flag entities for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List all entities",value:`${packageName} flags entities ls`},{name:"List entities as JSON",value:`${packageName} flags entities ls --json`}]},entitiesCreateSubcommand={name:"create",aliases:["add"],description:"Create a feature flag entity",arguments:[{name:"kind",required:!0}],options:[projectOption,{name:"label",shorthand:"l",type:String,deprecated:!1,description:"Human-readable label for the entity",argument:"LABEL"},{name:"attribute",shorthand:"a",type:[String],deprecated:!1,description:`Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the created entity as JSON"}],examples:[{name:"Create a user entity with attributes",value:`${packageName} flags entities create user --label User --attribute id:string --attribute plan:string`},{name:"Create a team entity with a string array attribute",value:`${packageName} flags entities create team --attribute id:string --attribute features:stringArray`}]},entitiesUpdateSubcommand={name:"update",aliases:[],description:"Update a feature flag entity and its attributes",arguments:[{name:"kind",required:!0}],options:[projectOption,{name:"label",shorthand:"l",type:String,deprecated:!1,description:"New human-readable label for the entity",argument:"LABEL"},{name:"add-attribute",shorthand:null,type:[String],deprecated:!1,description:`Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"remove-attribute",shorthand:null,type:[String],deprecated:!1,description:"Remove an attribute by key; repeatable. Fails when flags or segments still reference it",argument:"KEY"},{name:"set-attribute-type",shorthand:null,type:[String],deprecated:!1,description:`Change the type of an attribute as KEY:TYPE; repeatable. Changing the type also removes existing value labels. Fails when flags or segments still reference it. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the updated entity as JSON"}],examples:[{name:"Change the entity label",value:`${packageName} flags entities update user --label "End user"`},{name:"Add and remove attributes",value:`${packageName} flags entities update user --add-attribute email:string --remove-attribute legacyId`},{name:"Change an attribute type",value:`${packageName} flags entities update user --set-attribute-type signupAt:timestamp`}]},entitiesRemoveSubcommand={name:"remove",aliases:["rm"],description:"Delete a feature flag entity. Fails when flags or segments still reference it",arguments:[{name:"kind",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting an entity"}],examples:[{name:"Delete an entity",value:`${packageName} flags entities rm device`},{name:"Delete without confirmation",value:`${packageName} flags entities rm device --yes`}]},labelOptions=[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output results and errors as JSON"}],labelsListSubcommand={name:"ls",aliases:["list"],description:"Discover label lists or list the labels for an attribute",arguments:[{name:"ENTITY.ATTRIBUTE",required:!1}],options:[...labelOptions,{name:"limit",shorthand:null,type:Number,deprecated:!1,description:"Return at most NUMBER lists or labels (default: 20)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Continue from the cursor returned by the previous page",argument:"CURSOR"}],examples:[{name:"Discover label lists",value:`${packageName} flags labels ls`},{name:"List the first page of plan labels",value:`${packageName} flags labels ls user.plan`},{name:"Continue listing plan labels",value:`${packageName} flags labels ls user.plan --limit 50 --next <cursor>`}]},labelsSetSubcommand={name:"set",aliases:[],description:"Create or replace one attribute value label",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0},{name:"value",required:!0},{name:"label",required:!0}],options:labelOptions,examples:[{name:"Label a plan",value:`${packageName} flags labels set user.plan pro "Pro Plan"`}]},labelsRemoveSubcommand={name:"rm",aliases:["remove"],description:"Remove a value label without changing targeting; ignore missing labels",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0},{name:"value",required:!0}],options:labelOptions,examples:[{name:"Remove a plan label",value:`${packageName} flags labels rm user.plan pro`}]},labelsApplySubcommand={name:"apply",aliases:[],description:"Set and remove multiple attribute value labels",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0}],options:[...labelOptions,{name:"set",shorthand:null,type:[String],deprecated:!1,description:"Create or replace a value label as VALUE=LABEL; repeatable",argument:"VALUE=LABEL"},{name:"remove",shorthand:null,type:[String],deprecated:!1,description:"Remove a value label; repeatable; ignore missing labels",argument:"VALUE"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Apply label operations from a JSON array; cannot combine with --set or --remove",argument:"JSON"}],examples:[{name:"Set and remove plan labels",value:`${packageName} flags labels apply user.plan --set "pro=Pro Plan" --set "enterprise=Enterprise Plan" --remove legacy`},{name:"Apply JSON operations",value:`${packageName} flags labels apply user.plan --data '[{"operation":"upsert","value":"id=123","label":"Example"},{"operation":"delete","value":"legacy"}]'`}]},labelsSubcommand={name:"labels",aliases:[],description:"Discover label lists and manage labels for string or stringArray attributes",arguments:[],subcommands:[labelsListSubcommand,labelsSetSubcommand,labelsRemoveSubcommand,labelsApplySubcommand],options:[],examples:[]},entitiesSubcommand={name:"entities",aliases:[],description:"Manage the entity schema used for flag targeting",arguments:[],subcommands:[entitiesListSubcommand,entitiesCreateSubcommand,entitiesUpdateSubcommand,entitiesRemoveSubcommand],options:[],examples:[]},sdkKeysListSubcommand={name:"list",aliases:["ls"],description:"List all SDK keys for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output in JSON format"}],examples:[{name:"List all SDK keys",value:`${packageName} flags sdk-keys ls`},{name:"List SDK keys as JSON",value:`${packageName} flags sdk-keys ls --json`}]},sdkKeysAddSubcommand={name:"add",aliases:[],description:"Create a new SDK key",arguments:[],options:[projectOption,{name:"type",shorthand:null,type:String,deprecated:!1,description:"The type of SDK key (server, client, or mobile)",argument:"TYPE"},{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment for the SDK key",argument:"ENV"},{name:"label",shorthand:"l",type:String,deprecated:!1,description:"Optional label for the SDK key",argument:"LABEL"}],examples:[{name:"Create a server SDK key for production",value:`${packageName} flags sdk-keys add --type server --environment production`},{name:"Create a client SDK key with a label",value:`${packageName} flags sdk-keys add --type client -e preview --label "Preview App"`}]},sdkKeysRemoveSubcommand={name:"remove",aliases:["rm"],description:"Delete an SDK key",arguments:[{name:"key",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting an SDK key"}],examples:[{name:"Delete an SDK key",value:`${packageName} flags sdk-keys rm <hash-key>`}]},sdkKeysSubcommand={name:"sdk-keys",aliases:[],description:"Manage SDK keys for feature flags",arguments:[],subcommands:[sdkKeysListSubcommand,sdkKeysAddSubcommand,sdkKeysRemoveSubcommand],options:[],examples:[]},prepareSubcommand={name:"prepare",aliases:[],description:"Prepare flag definition fallbacks for the build",arguments:[],options:[],examples:[]},overrideSubcommand={name:"override",aliases:[],description:"Encrypt flag overrides into a secure token for the vercel-flag-overrides cookie",arguments:[{name:"flag=value",required:!1}],options:[{name:"expiration",shorthand:null,type:String,deprecated:!1,description:"Expiration time for the encrypted token (default: 1y)",argument:"TIME"},{name:"decrypt",shorthand:null,type:String,deprecated:!1,description:"Decrypt an encrypted override token and print the JSON",argument:"TOKEN"}],examples:[{name:"Encrypt a single flag override",value:`${packageName} flags override my-flag=true`},{name:"Encrypt multiple flag overrides",value:`${packageName} flags override flag-a=true flag-b=hello`},{name:"Set a custom expiration",value:`${packageName} flags override my-flag=42 --expiration 30d`},{name:"Decrypt an override token",value:`${packageName} flags override --decrypt <token>`}]},flagsCommand={name:"flags",aliases:[],description:"Manage feature flags for a Vercel project",arguments:[],subcommands:[listSubcommand11,staleSubcommand,inspectSubcommand6,versionsSubcommand,evaluationsSubcommand,createSubcommand5,openSubcommand3,updateSubcommand4,setSubcommand2,useTargetingSubcommand,splitSubcommand,rolloutSubcommand,removeSubcommand8,archiveSubcommand,unarchiveSubcommand,disableSubcommand,enableSubcommand,rulesSubcommand3,segmentsSubcommand,entitiesSubcommand,labelsSubcommand,sdkKeysSubcommand,prepareSubcommand,overrideSubcommand],options:[],examples:[]};var connectSubcommand={name:"connect",aliases:[],description:"Connect your Vercel Project to your Git repository or provide the remote URL to your Git repository",arguments:[{name:"git-url",required:!1}],options:[projectOption,yesOption,confirmOption],examples:[{name:"Connect your Vercel Project to your Git repository defined in your local `.git` config",value:`${packageName} git connect`},{name:"Connect your Vercel Project to a Git repository using the remote URL",value:`${packageName} git connect https://github.com/user/repo.git`}]},disconnectSubcommand={name:"disconnect",aliases:[],description:"Disconnect the Git repository from your Vercel Project",arguments:[],options:[projectOption,yesOption,confirmOption],examples:[{name:"Disconnect the Git repository",value:`${packageName} git disconnect`}]},gitCommand={name:"git",aliases:[],description:"Manage your Git repository connection to the current Project",arguments:[],subcommands:[connectSubcommand,disconnectSubcommand],options:[],examples:[]};var listSubcommand12={name:"list",aliases:["ls"],description:"List Global Config stores for the current team",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"List Global Configs as JSON",value:`${packageName} global-config list --json`}]},addSubcommand6={name:"add",aliases:["create"],description:"Create a Global Config store",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption,{name:"items",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:'Optional JSON object of initial items `{ "key": <value>, ... }`'}],examples:[{name:"Create a store with slug `flags`",value:`${packageName} global-config add flags`}]},getSubcommand={name:"get",aliases:["inspect"],description:"Show metadata for a Global Config (id `ecfg_\u2026` or slug)",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption],examples:[]},updateSubcommand5={name:"update",aliases:[],description:"Rename a Global Config (`--slug`) and/or patch items (`--patch` JSON)",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{name:"slug",shorthand:null,type:String,argument:"SLUG",deprecated:!1,description:"New slug for the Global Config"},{name:"patch",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:'JSON for `PATCH /v1/global-config/:id/items`: `{"items":[...]}` or a bare array. Each item needs `operation` (create | update | upsert | delete), `key`, and usually `value` (see REST API: update-edge-config-items-in-batch)'}],examples:[]},removeSubcommand9={name:"remove",aliases:["rm","delete"],description:"Delete a Global Config store",arguments:[{name:"id-or-slug",required:!0}],options:[yesOption,formatOption,jsonOption],examples:[]},itemsSubcommand={name:"items",aliases:[],description:"List items in a Global Config, or fetch one item with `--key`",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{name:"key",shorthand:"k",type:String,argument:"KEY",deprecated:!1,description:"When set, fetch a single item by key"}],examples:[]},tokensSubcommand={name:"tokens",aliases:[],description:"List, create (`--add`), or revoke (`--remove`) read tokens for a Global Config",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,yesOption,{name:"add",shorthand:null,type:String,argument:"LABEL",deprecated:!1,description:"Create a token with this label (1\u201352 characters)"},{name:"remove",shorthand:null,type:[String],argument:"ID_OR_TOKEN",deprecated:!1,description:"Revoke one or more tokens by id or plaintext token (repeatable). Requires `--yes` in non-interactive mode"}],examples:[]},backupsSubcommand={name:"backups",aliases:[],description:"List, inspect, or restore Global Config backups",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{...yesOption,description:"Skip the confirmation prompt when restoring"},{name:"backup-version",shorthand:null,type:String,argument:"VERSION_ID",deprecated:!1,description:"Fetch a single backup by version id"},{name:"restore",shorthand:null,type:String,argument:"VERSION_ID",deprecated:!1,description:"Restore items from the backup version id. Requires confirmation because it updates live Global Config items"},{name:"limit",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Maximum number of backups to list (0-50)"},{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Pagination cursor from a previous backup list response"}],examples:[{name:"List backups for a Global Config",value:`${packageName} global-config backups my-store`},{name:"Inspect a backup as JSON",value:`${packageName} global-config backups my-store --backup-version <version-id> --json`},{name:"Restore a backup",value:`${packageName} global-config backups my-store --restore <version-id> --yes`}]},globalConfigCommand={name:"global-config",aliases:["edge-config"],description:"Manage Global Config stores (dashboard API parity)",arguments:[],subcommands:[listSubcommand12,addSubcommand6,getSubcommand,updateSubcommand5,removeSubcommand9,itemsSubcommand,tokensSubcommand,backupsSubcommand],options:[],examples:[{name:"List stores",value:`${packageName} global-config list`}]};var statusSubcommand2={name:"status",aliases:[],description:"Shows whether guidance messages are enabled or disabled",arguments:[],options:[],examples:[]},enableSubcommand2={name:"enable",aliases:[],description:"Enables guidance messages",arguments:[],options:[],examples:[]},disableSubcommand2={name:"disable",aliases:[],description:"Disables guidance messages",arguments:[],options:[],examples:[]},guidanceCommand={name:"guidance",aliases:[],description:"Allows you to enable or disable guidance messages",arguments:[],subcommands:[enableSubcommand2,disableSubcommand2,statusSubcommand2],options:[],examples:[]};var httpstatCommand={name:"httpstat",aliases:[],description:"Execute httpstat with automatic deployment URL and protection bypass to visualize HTTP timing statistics.",arguments:[{name:"path",required:!0}],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},{name:"deployment",shorthand:null,type:String,deprecated:!1,description:"The deployment ID or URL to target",argument:"ID|URL"},{name:"protection-bypass",shorthand:null,type:String,deprecated:!1,description:"Protection bypass secret for accessing protected deployments",argument:"SECRET"}],examples:[{name:"Visualize timing for a GET request to an API endpoint",value:`${packageName} httpstat /api/hello`},{name:"Make a POST request with data and see timing details",value:`${packageName} httpstat /api/users -- -X POST -d '{"name": "John"}'`},{name:"Target a specific deployment by ID",value:`${packageName} httpstat /api/status --deployment ERiL45NJvP8ghWxgbvCM447bmxwV`},{name:"Use curl flags after the separator",value:`${packageName} httpstat /api/test -- -H "Content-Type: application/json" -X PUT`},{name:"Use with protection bypass secret",value:`${packageName} httpstat /api/protected --protection-bypass <secret>`}]};var initCommand={name:"init",aliases:[],description:"Initialize example Vercel Projects",arguments:[{name:"example",required:!1},{name:"dir",required:!1}],options:[{...forceOption,description:"Overwrite destination directory if exists [off]",argument:void 0}],examples:[{name:"Choose from all available examples",value:`${packageName} init`},{name:"Initialize example project into a new directory",value:`${packageName} init <example>`},{name:"Initialize example project into specified directory",value:`${packageName} init <example> <dir>`},{name:"Initialize example project without checking",value:`${packageName} init <example> --force`}]};var inspectCommand={name:"inspect",aliases:[],description:"Show information about a deployment.",arguments:[{name:"url|deploymentId",required:!0}],options:[{name:"timeout",description:"Time to wait for deployment completion [3m]",argument:"TIME",shorthand:null,type:String,deprecated:!1},{name:"wait",description:"Blocks until deployment completes",shorthand:null,type:Boolean,deprecated:!1},{name:"logs",shorthand:"l",type:Boolean,deprecated:!1,description:"Prints the build logs instead of the deployment summary"},formatOption,jsonOption],examples:[{name:"Get information about a deployment by its unique URL",value:`${packageName} inspect my-deployment-ji2fjij2.vercel.app`},{name:"Get information about the deployment an alias points to",value:`${packageName} inspect my-deployment.vercel.app`},{name:"Get information about a deployment by piping in the URL",value:`echo my-deployment.vercel.app | ${packageName} inspect`},{name:"Wait up to 90 seconds for deployment to complete",value:`${packageName} inspect my-deployment.vercel.app --wait --timeout 90s`},{name:"Get deployment build logs",value:`${packageName} inspect my-deployment.vercel.app --logs`},{name:"Get deployment information as JSON",value:`${packageName} inspect my-deployment.vercel.app --json`}]};var removeSubcommand10={name:"remove",aliases:["rm"],description:"Delete an integration resource",arguments:[{name:"resource",required:!0}],options:[{name:"disconnect-all",description:"Disconnects all projects from the specified resource before deletion",shorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when deleting a resource"},formatOption,jsonOption],examples:[{name:"Delete a resource",value:[`${packageName} integration-resource remove <resource>`,`${packageName} integration-resource remove my-acme-resource`]},{name:"Disconnect all projects from a resource, then delete it",value:[`${packageName} integration-resource remove <resource> --disconnect-all`,`${packageName} integration-resource remove my-acme-resource --disconnect-all`,`${packageName} integration-resource remove my-acme-resource -a`]},{name:"Output as JSON",value:`${packageName} integration-resource remove my-acme-resource --json --yes`}]},disconnectSubcommand2={name:"disconnect",aliases:[],description:"Disconnect a marketplace resource from a project",arguments:[{name:"resource",required:!0},{name:"project",required:!1}],options:[{name:"all",description:"Disconnects all projects from the specified resource",shorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when disconnecting a resource"},formatOption,jsonOption],examples:[{name:"Disconnect a resource from the current project",value:[`${packageName} integration-resource disconnect <resource>`,`${packageName} integration-resource disconnect my-acme-resource`]},{name:"Disconnect all projects from a resource",value:[`${packageName} integration-resource disconnect <resource> --all`,`${packageName} integration-resource disconnect my-acme-resource --all`,`${packageName} integration-resource disconnect my-acme-resource -a`]},{name:"Disconnect a resource from a specified project",value:[`${packageName} integration-resource disconnect <resource> <project>`,`${packageName} integration-resource disconnect my-acme-resource my-project`]},{name:"Output as JSON",value:`${packageName} integration-resource disconnect my-acme-resource --json --yes`}]},connectSubcommand2={name:"connect",aliases:[],description:"Connect a marketplace resource to a project",arguments:[{name:"resource",required:!0},{name:"project",required:!1}],options:[{name:"environment",shorthand:"e",type:[String],argument:"ENV",deprecated:!1,description:"Environment to connect (can be repeated; accepts production, preview, development, or a Custom Environment slug or ID). Defaults to all system Environments."},{name:"prefix",shorthand:null,type:String,argument:"PREFIX",deprecated:!1,description:"Prefix for environment variable names (e.g., --prefix NEON2_ creates NEON2_DATABASE_URL instead of DATABASE_URL)"},{...yesOption,description:"Skip the confirmation prompt when connecting a resource"},formatOption,jsonOption],examples:[{name:"Connect a resource to the current project",value:[`${packageName} integration resource connect <resource>`,`${packageName} integration resource connect my-acme-resource`]},{name:"Connect a resource to a specified project",value:[`${packageName} integration resource connect <resource> <project>`,`${packageName} integration resource connect my-acme-resource my-project`]},{name:"Connect only to specific environments",value:[`${packageName} integration resource connect my-acme-resource -e production`,`${packageName} integration resource connect my-acme-resource -e production -e preview`,`${packageName} integration resource connect my-acme-resource -e qa`,`${packageName} integration resource connect my-acme-resource -e env_qa123`]},{name:"Connect with a prefix for environment variable names",value:`${packageName} integration resource connect my-acme-resource --prefix NEON2_`},{name:"Output as JSON",value:`${packageName} integration resource connect my-acme-resource --json --yes`}]},createThresholdSubcommand={name:"create-threshold",aliases:[],description:"Creates a threshold for a resource (or installation, if the integration uses installation-level thresholds)",arguments:[{name:"resource",required:!0},{name:"minimum",required:!0},{name:"spend",required:!0},{name:"limit",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when creating a threshold"}],examples:[{name:"create threshold",value:[`${packageName} integration-resource create-threshold <resource> <minimum> <spend> <limit> [options]`,`${packageName} integration-resource create-threshold my-acme-resource 50 100 2000`,`${packageName} integration-resource create-threshold my-acme-resource 50 100 2000 --yes`]}]},claimSubcommand={name:"claim",aliases:[],description:"Claim a sandbox marketplace resource (e.g. Stripe, Shopify) by opening the provider claim URL in your browser",arguments:[{name:"resource",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt when claiming a single sandbox resource"},{name:"no-wait",description:"Print the claim URL and exit without polling for completion",shorthand:null,type:Boolean,deprecated:!1},formatOption,jsonOption],examples:[{name:"Claim a sandbox resource by name",value:[`${packageName} integration-resource claim <resource>`,`${packageName} integration-resource claim my-stripe`]},{name:"Pick a sandbox resource interactively (current team)",value:`${packageName} integration-resource claim`},{name:"Print the claim URL as JSON without waiting",value:`${packageName} integration-resource claim my-stripe --json --no-wait`}]},inspectSubcommand7={name:"inspect",aliases:["status"],description:"Show live details and status for a marketplace integration resource, fetched fresh from the provider",arguments:[{name:"resource",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show live details and status for a resource",value:[`${packageName} integration resource inspect <resource>`,`${packageName} integration resource inspect my-acme-resource`]},{name:"Show live status for a resource (alias)",value:`${packageName} integration resource status my-acme-resource`},{name:"Output as JSON",value:`${packageName} integration resource inspect my-acme-resource --json`}]},integrationResourceCommand={name:"integration-resource",aliases:["ir"],description:"Manage marketplace integration resources (alias for `vercel integration resource`)",options:[],arguments:[],subcommands:[connectSubcommand2,createThresholdSubcommand,disconnectSubcommand2,removeSubcommand10,claimSubcommand,inspectSubcommand7],examples:[]};var addSubcommand7={name:"add",aliases:["install"],description:"Installs a marketplace integration",arguments:[{name:"integration",required:!0}],options:[{name:"name",description:"Custom name for the resource (auto-generated if not provided)",shorthand:"n",type:String,deprecated:!1,argument:"NAME"},{name:"metadata",description:"Metadata for the resource as KEY=VALUE (can be repeated). Run `vercel integration add <name> --help` to see available keys.",shorthand:"m",type:[String],deprecated:!1,argument:"KEY=VALUE"},{name:"plan",shorthand:"p",type:String,deprecated:!1,argument:"PLAN_ID",description:"Billing plan ID to use for the resource"},{name:"no-connect",shorthand:null,type:Boolean,deprecated:!1,description:"Skip connecting the resource to the current project (also skips env pull)"},{name:"no-env-pull",shorthand:null,type:Boolean,deprecated:!1,description:"Skip running env pull after provisioning"},{name:"environment",shorthand:"e",type:[String],deprecated:!1,argument:"ENV",description:"Environment to connect. Accepts production, preview, development, or a Custom Environment slug or ID from the linked project. Can be repeated. Defaults to all built-in environments."},{name:"prefix",shorthand:null,type:String,deprecated:!1,argument:"PREFIX",description:"Prefix for environment variable names (e.g., --prefix NEON2_ creates NEON2_DATABASE_URL instead of DATABASE_URL)"},{name:"installation-id",shorthand:null,type:String,deprecated:!1,argument:"ID",description:"Installation ID to use when multiple installations exist for the integration"},{name:"claim",shorthand:null,type:Boolean,deprecated:!1,description:"If the new resource is a sandbox (e.g. Stripe, Shopify), claim it immediately without prompting"},{name:"no-claim",shorthand:null,type:Boolean,deprecated:!1,description:"If the new resource is a sandbox, skip the offer to claim it (only print a hint)"},formatOption,jsonOption],examples:[{name:"Install a marketplace integration (auto-generates resource name)",value:[`${packageName} integration add <integration-name>`,`${packageName} integration add acme`]},{name:"Install a specific product from an integration",value:[`${packageName} integration add <integration>/<product>`,`${packageName} integration add acme/acme-redis`]},{name:"Search by keyword (prompts to select a matching integration)",value:[`${packageName} integration add postgres`,`${packageName} integration add redis`]},{name:"Install with a custom resource name",value:[`${packageName} integration add acme --name my-database`,`${packageName} integration add acme -n my-database`]},{name:"Install with metadata options",value:[`${packageName} integration add acme --metadata region=us-east-1`,`${packageName} integration add acme -m region=us-east-1 -m version=16`,`${packageName} integration add acme -m auth=true`,`${packageName} integration add acme -m "readRegions=sfo1,iad1"`]},{name:"Install with a specific billing plan",value:[`${packageName} integration add acme --plan pro`,`${packageName} integration add acme -p pro`]},{name:"Install and connect to specific environments only",value:[`${packageName} integration add acme --environment production`,`${packageName} integration add acme -e production -e preview`]},{name:"Install without connecting to the current project",value:`${packageName} integration add acme --no-connect`},{name:"Install without pulling environment variables",value:`${packageName} integration add acme --no-env-pull`},{name:"Install with a prefix for environment variable names",value:`${packageName} integration add acme --prefix NEON2_`},{name:"Output as JSON",value:`${packageName} integration add acme --json`},{name:"Show available products for an integration",value:`${packageName} integration add acme --help`},{name:"Discover available marketplace products and their slugs",value:`${packageName} integration discover`}]},acceptTermsSubcommand={name:"accept-terms",aliases:[],description:"Accept marketplace legal terms for an integration and install it on the current team (installation only; no product resource). Requires an interactive terminal and human confirmation. Does not replace integrations that require a browser or device attestation.",arguments:[{name:"integration",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Accept terms interactively, then install on the team",value:[`${packageName} integration accept-terms <integration>`,`${packageName} integration accept-terms neon`]},{name:"Output result as JSON",value:`${packageName} integration accept-terms neon --json`}]},openSubcommand4={name:"open",aliases:[],description:"Opens a marketplace integration's or resource's dashboard via SSO",arguments:[{name:"name",required:!0},{name:"resource",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Open a marketplace integration's dashboard",value:[`${packageName} integration open <integration-name>`,`${packageName} integration open acme`]},{name:"Open a resource's dashboard within an integration",value:[`${packageName} integration open <integration-name> <resource-name>`,`${packageName} integration open acme my-acme-store`]},{name:"Get the SSO link as JSON",value:[`${packageName} integration open acme --json`,`${packageName} integration open acme my-acme-store --json`]}]},installationsSubcommand={name:"installations",aliases:["installation"],description:"List marketplace integration installations for the current team (account scope)",arguments:[],options:[{name:"integration",description:"Limit to installations of this integration (slug or id)",shorthand:"i",type:String,deprecated:!1,argument:"SLUG_OR_ID"},formatOption,jsonOption],examples:[{name:"List all marketplace installations for the team",value:[`${packageName} integration installations`]},{name:"Filter by integration slug",value:[`${packageName} integration installations --integration neon`]},{name:"JSON output",value:[`${packageName} integration installations --json`]}]},listSubcommand13={name:"list",aliases:["ls"],description:"List resources from marketplace integrations for the current project",arguments:[{name:"project",required:!1}],options:[{name:"integration",description:"Limits the resources listed to a designated integration",shorthand:"i",type:String,deprecated:!1,argument:"NAME"},{name:"all",description:"Lists all resources regardless of project",shorthand:"a",type:Boolean,deprecated:!1},formatOption,jsonOption],examples:[{name:"List resources for the current linked project",value:[`${packageName} integration list`]},{name:"Filter the resources to a single integration",value:[`${packageName} integration list --integration <integration>`,`${packageName} integration list --integration acme`,`${packageName} integration list -i acme`]},{name:"List all marketplace resources for the current team",value:[`${packageName} integration list --all`,`${packageName} integration list -a`]},{name:"List resources as JSON",value:[`${packageName} integration list --json`]}]},discoverSubcommand={name:"discover",aliases:[],description:"Discover available marketplace integrations",arguments:[{name:"query",required:!1}],options:[{name:"category",shorthand:"c",type:[String],deprecated:!1,argument:"CATEGORY",description:"Filter integrations by category (can be repeated; e.g., -c storage -c authentication). Run `vercel integration categories` for valid slugs."},formatOption,jsonOption],examples:[{name:"Discover marketplace integrations",value:[`${packageName} integration discover`]},{name:"Search for integrations matching a query",value:[`${packageName} integration discover postgres`,`${packageName} integration discover aws`]},{name:"Filter integrations by category",value:[`${packageName} integration discover --category storage`,`${packageName} integration discover -c authentication`]},{name:"Filter by multiple categories at once (repeat the flag)",value:[`${packageName} integration discover --category storage --category authentication`,`${packageName} integration discover -c commerce -c payments -c authentication`]},{name:"List available category slugs to use with --category",value:[`${packageName} integration categories`]},{name:"Discover marketplace integrations as JSON",value:[`${packageName} integration discover --json`]}]},categoriesSubcommand={name:"categories",aliases:[],description:"List marketplace integration categories (slugs valid for `integration discover --category`)",arguments:[],options:[formatOption,jsonOption],examples:[{name:"List marketplace categories",value:[`${packageName} integration categories`]},{name:"List categories as JSON",value:[`${packageName} integration categories --json`]},{name:"Use a category slug to filter discover results",value:[`${packageName} integration discover --category storage`]}]},balanceSubcommand={name:"balance",aliases:[],description:"Shows the balances and thresholds of a specified marketplace integration",arguments:[{name:"integration",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show the balance(s) & threshold(s) of a marketplace integration",value:[`${packageName} integration balance <integration-name>`,`${packageName} integration balance acme`]},{name:"Output as JSON",value:`${packageName} integration balance acme --json`}]},updateSubcommand6={name:"update",aliases:[],description:"Update a marketplace integration installation (billing plan or which projects can access it). Install, remove, and connect flows are separate (integration add, integration remove, integration-resource, env pull, etc.) \u2014 not part of update. UI-only flows (OAuth in a browser, consent screens, marketplace purchase) may not map one-to-one to a single CLI flag; pass --plan and --authorization-id when the product requires them for billing changes. Any extra fields on the configuration resource that the API exposes but this command PATCH body does not send are not covered until the API and CLI support them.",arguments:[{name:"integration",required:!0}],options:[{name:"plan",shorthand:"p",type:String,deprecated:!1,argument:"PLAN_ID",description:"Billing plan ID for integrations that support installation-level billing plans"},{name:"authorization-id",shorthand:null,type:String,deprecated:!1,argument:"ID",description:"Billing authorization ID when the platform requires it for plan changes"},{name:"projects",shorthand:null,type:[String],deprecated:!1,argument:"PROJECT",description:'Project ID allowed to use this installation, or "all" for all projects (repeatable)'},{name:"installation-id",shorthand:null,type:String,deprecated:!1,argument:"ID",description:"Configuration ID when multiple marketplace installations exist for this integration"},formatOption,jsonOption],examples:[{name:"Grant all team projects access to the integration",value:[`${packageName} integration update <integration> --projects all`,`${packageName} integration update neon --projects all`]},{name:"Limit access to specific projects",value:`${packageName} integration update neon --projects prj_abc --projects prj_def`},{name:"Change installation billing plan",value:`${packageName} integration update acme --plan pro`},{name:"Select installation when several exist",value:`${packageName} integration update neon --installation-id icfg_xxx --projects all`},{name:"Output result as JSON",value:`${packageName} integration update neon --projects all --json`},{name:"Non-interactive (JSON success and errors on stdout)",value:`${packageName} integration update neon --projects all --non-interactive`}]},removeSubcommand11={name:"remove",aliases:[],description:"Uninstalls a marketplace integration. Resources must be removed first using `integration-resource remove`.",arguments:[{name:"integration",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when uninstalling an integration"},formatOption,jsonOption],examples:[{name:"Uninstall an integration",value:[`${packageName} integration remove <integration>`,`${packageName} integration remove acme`]},{name:"Remove a resource before uninstalling",value:`${packageName} integration-resource remove <resource-name> --disconnect-all --yes`},{name:"Output as JSON",value:`${packageName} integration remove acme --json --yes`}]},guideSubcommand={name:"guide",aliases:[],description:"Show getting started guides and code snippets for a marketplace integration",arguments:[{name:"integration",required:!0}],options:[{name:"framework",shorthand:"f",type:String,deprecated:!1,argument:"FRAMEWORK",description:"Select a framework guide without interactive prompt (e.g., nextjs, remix, astro, nuxtjs, sveltekit)"}],examples:[{name:"Show guides for a single-product integration",value:[`${packageName} integration guide <integration-name>`,`${packageName} integration guide neon`]},{name:"Show guides for a specific product of a multi-product integration",value:[`${packageName} integration guide <integration>/<product>`,`${packageName} integration guide aws/aws-dynamodb`]},{name:"Show the Next.js guide without prompts (useful for CI/agents)",value:`${packageName} integration guide neon --framework nextjs`},{name:"Discover available integrations and product slugs",value:`${packageName} integration discover`}]},resourceSubcommand={name:"resource",aliases:[],description:"Manage marketplace integration resources (connect, disconnect, remove, create-threshold, claim)",options:[],arguments:[],subcommands:[connectSubcommand2,createThresholdSubcommand,disconnectSubcommand2,removeSubcommand10,claimSubcommand,inspectSubcommand7],examples:[{name:"Connect a resource to the current project",value:`${packageName} integration resource connect my-acme-resource`},{name:"Disconnect a resource from the current project",value:`${packageName} integration resource disconnect my-acme-resource`},{name:"Remove a resource (disconnecting all projects first)",value:`${packageName} integration resource remove my-acme-resource --disconnect-all --yes`}]},integrationCommand={name:"integration",aliases:[],description:"Manage marketplace integrations. To manage individual resources, see `vercel integration resource`.",options:[],arguments:[],subcommands:[addSubcommand7,acceptTermsSubcommand,balanceSubcommand,categoriesSubcommand,discoverSubcommand,guideSubcommand,installationsSubcommand,listSubcommand13,openSubcommand4,resourceSubcommand,updateSubcommand6,removeSubcommand11],examples:[{name:"Install a specific product from an integration",value:`${packageName} integration add acme/acme-redis`},{name:"Connect an existing resource to the current project",value:`${packageName} integration resource connect my-acme-resource`}]};var installCommand={name:"install",aliases:["i"],description:"Install an integration from the marketplace (alias for `integration add`)",arguments:[{name:"integration",required:!0}],options:addSubcommand7.options,examples:[{name:"Install an integration from the marketplace",value:`${packageName} install acme`},{name:"Install a specific product",value:`${packageName} install acme/acme-redis`}]};var KMS_ALGORITHMS=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512","EdDSA"],PROJECT_GRANT_POLICY_KIND="project-grant";function isProjectGrant(policy){return policy.kind===PROJECT_GRANT_POLICY_KIND}function issuerUrl(issuerId){return`https://kms.vercel.com/${issuerId}`}function issuerJwksUrl(issuerId){return`${issuerUrl(issuerId)}/jwks.json`}var cursorOption={name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page of results, using a cursor from a prior page"},algorithmOption={name:"algorithm",shorthand:"a",type:String,argument:"ALGORITHM",deprecated:!1,description:`Signing algorithm: ${KMS_ALGORITHMS.join(", ")} (default: RS512)`},importAlgorithmOption={name:"algorithm",shorthand:"a",type:String,argument:"ALGORITHM",deprecated:!1,description:`Signing algorithm: ${KMS_ALGORITHMS.join(", ")} (required for RSA keys, otherwise derived from the key)`},nameOption={name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"New name for the issuer"},claimsSchemaOption={name:"claims-schema",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON Schema validating token claims, as inline JSON, `@<file>`, or `@-` for stdin"},removeClaimsSchemaOption={name:"remove-claims-schema",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the claims schema, so claims are no longer validated"},tokenClaimsOption={name:"token-claims",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Claims to include in tokens signed for this grant, as inline JSON, `@<file>`, or `@-` for stdin"},removeTokenClaimsOption={name:"remove-token-claims",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the token claims from the grant"},grantProjectOption={...projectOption,shorthand:"p"},environmentOption2={name:"environment",shorthand:"e",type:[String],argument:"ENV",deprecated:!1,description:"Environment the grant applies to: a system environment (production, preview, development) or a custom environment ID (env_\u2026). Repeatable"},keyOption={name:"key",shorthand:"k",type:String,argument:"FILE",deprecated:!1,description:"Path to the PEM private key to import, or `-` to read it from stdin"},keyIdOption={name:"key-id",shorthand:null,type:String,argument:"KID",deprecated:!1,description:"JWKS `kid` for the imported key (default: server-generated)"},revokePreviousAfterHoursOption={name:"revoke-previous-after-hours",shorthand:null,type:Number,argument:"HOURS",deprecated:!1,description:"Hours the previous key keeps verifying after activation (default: 1)"},activationOption={name:"activation",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"When the key starts signing: automatic or manual (default: automatic)"};function skipConfirmationOption(action){return{...yesOption,description:`Skip the confirmation prompt when ${action}`}}var listSubcommand14={name:"list",aliases:["ls"],description:"Show all KMS issuers",default:!0,arguments:[],options:[formatOption,jsonOption,limitOption,cursorOption],examples:[{name:"List issuers as JSON",value:`${packageName} kms ls --format json`}]},inspectSubcommand8={name:"inspect",aliases:["get"],description:"Show an issuer with its signing keys and grants",arguments:[{name:"issuerId",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Inspect an issuer",value:`${packageName} kms inspect iss_1a2b3c4d`}]},addSubcommand8={name:"add",aliases:["create"],description:"Create an issuer with a Vercel-generated signing key",arguments:[{name:"name",required:!0}],options:[algorithmOption,claimsSchemaOption,formatOption,jsonOption],examples:[{name:"Create an issuer that signs with ES256",value:`${packageName} kms add my-issuer --algorithm ES256`}]},importSubcommand2={name:"import",aliases:[],description:"Create an issuer from a private key you already have",arguments:[{name:"name",required:!0}],options:[keyOption,keyIdOption,importAlgorithmOption,claimsSchemaOption,formatOption,jsonOption],examples:[{name:"Import an EC private key, whose algorithm is derived from the key",value:`${packageName} kms import my-issuer --key ./private-key.pem`},{name:"Import an RSA private key from stdin",value:`cat private-key.pem | ${packageName} kms import my-issuer --key - --algorithm RS256`}]},updateSubcommand7={name:"update",aliases:[],description:"Rename an issuer or change its claims schema",arguments:[{name:"issuerId",required:!0}],options:[nameOption,claimsSchemaOption,removeClaimsSchemaOption,formatOption,jsonOption],examples:[{name:"Rename an issuer",value:`${packageName} kms update iss_1a2b3c4d --name billing-tokens`},{name:"Replace the claims schema from a file",value:`${packageName} kms update iss_1a2b3c4d --claims-schema @claims-schema.json`}]},removeSubcommand12={name:"remove",aliases:["rm","delete"],description:"Delete an issuer and all of its keys",arguments:[{name:"issuerId",required:!0}],options:[skipConfirmationOption("deleting an issuer")],examples:[{name:"Delete an issuer",value:`${packageName} kms rm iss_1a2b3c4d`}]},addKeySubcommand={name:"add-key",aliases:[],description:"Add a Vercel-generated signing key to an issuer",arguments:[{name:"issuerId",required:!0}],options:[activationOption,revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Rotate to a new key, retiring the previous one after 24 hours",value:`${packageName} kms add-key iss_1a2b3c4d --revoke-previous-after-hours 24`},{name:"Stage a key without activating it",value:`${packageName} kms add-key iss_1a2b3c4d --activation manual`}]},importKeySubcommand={name:"import-key",aliases:[],description:"Add a signing key you already have to an imported issuer",arguments:[{name:"issuerId",required:!0}],options:[keyOption,keyIdOption,activationOption,revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Rotate an imported issuer to a new private key",value:`${packageName} kms import-key iss_1a2b3c4d --key ./private-key.pem`}]},activateKeySubcommand={name:"activate-key",aliases:[],description:"Start signing with a staged key",arguments:[{name:"issuerId",required:!0},{name:"keyId",required:!0}],options:[revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Activate a key",value:`${packageName} kms activate-key iss_1a2b3c4d key_5e6f7g8h`}]},revokeKeySubcommand={name:"revoke-key",aliases:[],description:"End a scheduled revocation now, so a key stops verifying",arguments:[{name:"issuerId",required:!0},{name:"keyId",required:!0}],options:[skipConfirmationOption("revoking a key")],examples:[{name:"Revoke a key that is already scheduled for revocation",value:`${packageName} kms revoke-key iss_1a2b3c4d key_5e6f7g8h`}]},addGrantSubcommand={name:"add-grant",aliases:[],description:"Grant a project permission to sign with an issuer",arguments:[{name:"issuerId",required:!0}],options:[grantProjectOption,environmentOption2,tokenClaimsOption,formatOption,jsonOption],examples:[{name:"Grant a project signing access in Production and Preview",value:`${packageName} kms add-grant iss_1a2b3c4d --project prj_9i8h7g6f --environment production --environment preview`},{name:"Grant a project signing access in a custom environment",value:`${packageName} kms add-grant iss_1a2b3c4d --project prj_9i8h7g6f --environment env_1a2b3c4d`}]},updateGrantSubcommand={name:"update-grant",aliases:[],description:"Change a project grant's environments or token claims",arguments:[{name:"issuerId",required:!0},{name:"projectId",required:!0}],options:[environmentOption2,tokenClaimsOption,removeTokenClaimsOption,formatOption,jsonOption],examples:[{name:"Restrict a grant to Production",value:`${packageName} kms update-grant iss_1a2b3c4d prj_9i8h7g6f --environment production`}]},removeGrantSubcommand={name:"remove-grant",aliases:["rm-grant","delete-grant"],description:"Revoke a project's permission to sign with an issuer",arguments:[{name:"issuerId",required:!0},{name:"projectId",required:!0}],options:[skipConfirmationOption("removing a grant")],examples:[{name:"Remove a project grant",value:`${packageName} kms rm-grant iss_1a2b3c4d prj_9i8h7g6f`}]},kmsCommand={name:"kms",aliases:[],description:"Manage KMS issuers, signing keys, and project grants",arguments:[],subcommands:[listSubcommand14,inspectSubcommand8,addSubcommand8,importSubcommand2,updateSubcommand7,removeSubcommand12,addKeySubcommand,importKeySubcommand,activateKeySubcommand,revokeKeySubcommand,addGrantSubcommand,updateGrantSubcommand,removeGrantSubcommand],options:[],examples:[]};var logoutCommand={name:"logout",aliases:[],description:"Sign out the currently authenticated user.",arguments:[],options:[],examples:[{name:"Sign out the currently authenticated user.",value:`${packageName} logout`}]};var mcpCommand={name:"mcp",aliases:[],description:"Set up MCP agents and configuration for Vercel integration",arguments:[],options:[{name:"project",description:"Set up project-specific MCP access for the currently linked project",shorthand:null,type:Boolean,deprecated:!1},{name:"clients",description:"Comma-separated list of MCP clients to set up. In interactive mode, skips the client picker when set. Required in non-interactive mode. Options: Claude Code, Claude.ai and Claude for desktop, Cursor, VS Code with Copilot",shorthand:null,type:String,argument:"CLIENTS",deprecated:!1}],examples:[{name:"Interactively set up MCP agents",value:`${packageName} mcp`},{name:"Set up project-specific MCP access",value:`${packageName} mcp --project`},{name:"Non-interactive: set up Cursor and VS Code",value:`${packageName} mcp --clients "Cursor,VS Code with Copilot"`}]};var createGroupSubcommand={name:"create-group",aliases:[],description:"Create a new microfrontends group to compose multiple projects into one cohesive application with shared routing",arguments:[],options:[{name:"name",shorthand:null,type:String,deprecated:!1,description:"Name of the microfrontends group"},{name:"project",shorthand:null,type:[String],deprecated:!1,description:"Project name to include (repeatable)"},{name:"default-app",shorthand:null,type:String,deprecated:!1,description:"Project name for the default application"},{name:"default-route",shorthand:null,type:String,deprecated:!1,description:"Default route for the default application"},{name:"project-default-route",shorthand:null,type:[String],deprecated:!1,description:'Default route for a non-default project in the form "<project>=<route>" (repeatable)'},{...yesOption,description:"Skip creation confirmation prompt"}],examples:[{name:"Create a microfrontends group interactively",value:`${packageName} microfrontends create-group`},{name:"Create a microfrontends group with flags",value:`${packageName} mf create-group --name="My Group" --project=web --project=docs --default-app=web --project-default-route=docs=/docs --yes`}]},addToGroupSubcommand={name:"add-to-group",aliases:[],description:"Add the current project to a microfrontends group so it can be independently deployed as part of the microfrontends group",arguments:[],options:[{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name of the microfrontends group to add to"},{name:"default-route",shorthand:null,type:String,deprecated:!1,description:"Default route for this project (e.g. /docs)"}],examples:[{name:"Add current project to a group interactively",value:`${packageName} microfrontends add-to-group`},{name:"Add current project to a group with flags",value:`${packageName} mf add-to-group --group="My Group" --default-route=/docs`}]},removeFromGroupSubcommand={name:"remove-from-group",aliases:[],description:"Remove the current project from its microfrontends group so it is no longer part of the composed application",arguments:[],options:[{...yesOption,description:"Skip project linking confirmation"}],examples:[{name:"Remove current project from its group interactively",value:`${packageName} microfrontends remove-from-group`}]},deleteGroupSubcommand={name:"delete-group",aliases:[],description:"Delete a microfrontends group and all of its settings. This action is not reversible.",arguments:[],options:[{...yesOption,description:"Skip project linking confirmation"},{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name or ID of the microfrontends group to delete"}],examples:[{name:"Delete a microfrontends group interactively",value:`${packageName} microfrontends delete-group`},{name:"Delete a microfrontends group with flags",value:`${packageName} mf delete-group --group="My Group"`}]},pullSubcommand={name:"pull",aliases:[],description:"Pull a Vercel Microfrontends configuration into your project",arguments:[],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},{name:"dpl",shorthand:null,deprecated:!1,type:String,description:"The deploymentId to use for pulling the microfrontends configuration"}],examples:[{name:"Pull a microfrontends configuration",value:`${packageName} microfrontends pull`},{name:"Pull a microfrontends configuration for a specific deployment",value:`${packageName} microfrontends pull --dpl=<deployment-id>`}]},inspectGroupSubcommand={name:"inspect-group",aliases:[],description:"Inspect a microfrontends group and return project metadata used for setup automation",arguments:[],options:[{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name or ID of the microfrontends group to inspect"},{name:"config-file-name",shorthand:null,type:String,deprecated:!1,description:"Custom microfrontends config file path/name relative to the default app root (must end with .json or .jsonc)"},formatOption,jsonOption],examples:[{name:"Inspect a microfrontends group interactively",value:`${packageName} microfrontends inspect-group`},{name:"Inspect a microfrontends group as JSON",value:`${packageName} mf inspect-group --group="My Group" --json`}]},microfrontendsCommand={name:"microfrontends",aliases:["mf"],description:"Manage microfrontends groups that compose multiple projects into one cohesive application",arguments:[],subcommands:[createGroupSubcommand,addToGroupSubcommand,removeFromGroupSubcommand,deleteGroupSubcommand,inspectGroupSubcommand,pullSubcommand],options:[],examples:[]};var openCommand={name:"open",aliases:[],description:"Opens the current project in the Vercel Dashboard.",arguments:[],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"}],examples:[{name:"Open the current project in the Vercel Dashboard",value:`${packageName} open`}]};var sandboxRegionOption={name:"sandbox-region",shorthand:null,type:String,argument:"REGION",description:'Set the default region for sandboxes created in the project. See the Vercel docs for available regions. Use "" to clear',deprecated:!1},sandboxFailoverRegionsOption={name:"sandbox-failover-regions",shorthand:null,type:String,argument:"REGIONS",description:'Set the ordered, comma-separated failover regions for sandboxes created in the project. Requires a primary region and must not include it. Use "" to clear',deprecated:!1},addSubcommand9={name:"add",aliases:[],description:"Add a new project",arguments:[{name:"name",required:!0}],options:[],examples:[{name:"Add a new project",value:`${packageName} project add my-project`}]},checksBlocksOption={name:"blocks",shorthand:null,type:String,description:"When listing: filter by blocking stage. When adding: blocking stage for the new check. Values: build-start, deployment-start, deployment-alias, deployment-promotion, none",deprecated:!1},checksAddFlags=[formatOption,jsonOption,checksBlocksOption,{name:"file",shorthand:null,type:String,description:"Path to JSON file for the POST body (see REST: Create a check). Overrides --check-name / related flags.",deprecated:!1},{name:"check-name",shorthand:null,type:String,description:"Name of the deployment check (required with --requires unless --file is set)",deprecated:!1},{name:"requires",shorthand:null,type:String,description:"When the check runs: build-ready, deployment-url, or none (required with --check-name unless --file)",deprecated:!1},{name:"timeout",shorthand:null,type:Number,description:"Timeout in seconds for the new check (default 300)",deprecated:!1},{name:"targets",shorthand:null,type:String,description:"Comma-separated deployment targets (e.g. production,preview)",deprecated:!1},{name:"source",shorthand:null,type:String,description:"JSON string for the `source` object (integration, webhook, or git-provider)",deprecated:!1}],checksRemoveFlags=[formatOption,jsonOption],checksSubcommand={name:"checks",aliases:[],description:"List, add, or remove deployment checks for a project (GET/POST/DELETE /v2/projects/.../checks)",arguments:[{name:"name",required:!1}],options:[...checksAddFlags],examples:[{name:"List checks for the linked project",value:`${packageName} project checks`},{name:"Checks that block production alias assignment",value:`${packageName} project checks --blocks deployment-alias`},{name:"Add a check from a JSON file",value:`${packageName} project checks add my-app --file ./check.json`},{name:"Add a check with flags (requires integration/webhook setup in the body via --file or --source)",value:`${packageName} project checks add --check-name "CI" --requires deployment-url --blocks deployment-alias`},{name:"Remove a check by id",value:`${packageName} project checks remove chk_abc123 my-app`}]},inspectSubcommand9={name:"inspect",aliases:[],description:"Displays information related to a project",arguments:[{name:"name",required:!1}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Inspect the linked project from the current directory",value:`${packageName} project inspect`},{name:'Inspect the project named "my-project"',value:`${packageName} project inspect my-project`},{name:"Inspect a project as JSON",value:`${packageName} project inspect my-project --format json`}]},listSubcommand15={name:"list",aliases:["ls"],description:"Show all projects in the selected scope",default:!0,arguments:[],options:[nextOption,limitOption,formatOption,jsonOption,{name:"update-required",description:"A list of projects affected by an upcoming deprecation",shorthand:null,type:Boolean,deprecated:!1},{name:"filter",shorthand:"f",type:String,argument:"NAME",description:"Filter projects by name (substring match)",deprecated:!1}],examples:[{name:"Paginate projects, where `1584722256178` is the time in milliseconds since the UNIX epoch",value:`${packageName} project ls --next 1584722256178`},{name:"List projects using a deprecated Node.js version in JSON format",value:`${packageName} project ls --update-required --json`},{name:"Filter projects by name",value:`${packageName} project ls --filter my-app`}]},pauseSubcommand={name:"pause",aliases:[],description:"Pause production traffic for a project (visitors will see an error page)",arguments:[{name:"project",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Pause the linked project",value:`${packageName} project pause`},{name:'Pause the project named "my-project"',value:`${packageName} project pause my-project`},{name:"Pause a project and print the result as JSON",value:`${packageName} project pause my-project --json`}]},resumeSubcommand={name:"resume",aliases:["unpause"],description:"Resume production traffic for a paused project",arguments:[{name:"project",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Resume the linked project",value:`${packageName} project resume`},{name:'Resume the project named "my-project"',value:`${packageName} project resume my-project`},{name:"Resume a project and print the result as JSON",value:`${packageName} project resume my-project --json`}]},removeSubcommand13={name:"remove",aliases:["rm"],description:"Delete a project",arguments:[{name:"name",required:!0}],options:[],examples:[]},renameSubcommand={name:"rename",aliases:[],description:"Rename a project",arguments:[{name:"name",required:!0},{name:"new-name",required:!0}],options:[],examples:[{name:"Rename a project",value:`${packageName} project rename my-project my-renamed-project`}]},updateSubcommand8={name:"update",aliases:["set"],description:"Update one or more project settings; omitted settings remain unchanged",arguments:[{name:"name",required:!1}],options:[{name:"framework",shorthand:null,type:String,argument:"SLUG",description:'Set the framework preset by slug; use "other" to clear the preset',deprecated:!1},{name:"build-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the build command",deprecated:!1},{name:"dev-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the development command",deprecated:!1},{name:"install-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the install command",deprecated:!1},{name:"output-directory",shorthand:null,type:String,argument:"DIR",description:"Set the output directory",deprecated:!1},{name:"root-directory",shorthand:null,type:String,argument:"DIR",description:"Set the project root directory",deprecated:!1},{name:"auto-detect",shorthand:null,type:[String],argument:"SETTING",description:"Reset a setting to automatic detection; repeat for build-command, dev-command, install-command, output-directory, or root-directory",deprecated:!1},{name:"fluid-compute",shorthand:null,type:String,argument:"on|off",description:"Enable or disable Fluid compute",deprecated:!1},{name:"function-cpu",shorthand:null,type:String,argument:"TIER",description:"Set the default function CPU/memory tier: standard_legacy, standard, performance, or performance_xl",deprecated:!1},sandboxRegionOption,sandboxFailoverRegionsOption,{name:"build-machine",shorthand:null,type:String,argument:"TYPE",description:"Set the build machine type: basic, standard, enhanced, turbo, or elastic",deprecated:!1},{name:"elastic-concurrency",shorthand:null,type:String,argument:"on|off",description:"Enable or disable elastic concurrency for builds",deprecated:!1},{name:"node-version",shorthand:null,type:String,argument:"VERSION",description:"Set the Node.js version: 24.x, 22.x, 20.x, 18.x, 16.x, 14.x, 12.x, or 10.x",deprecated:!1},{...yesOption,description:"Apply settings that do not affect charges without prompting"},formatOption,jsonOption],examples:[{name:"Set the linked project framework preset to Next.js",value:`${packageName} project update --framework nextjs`},{name:"Set a named project framework preset to Vite",value:`${packageName} project update my-project --framework vite`},{name:"Update multiple settings in one command",value:`${packageName} project update my-project --build-command "pnpm build" --output-directory dist`},{name:"Reset individual settings to automatic detection",value:`${packageName} project update my-project --auto-detect build-command --auto-detect output-directory`},{name:"Enable Fluid compute and set the function CPU tier",value:`${packageName} project update my-project --fluid-compute on --function-cpu performance`},{name:"Clear the framework preset and return JSON",value:`${packageName} project update my-project --framework other --json`},{name:"Update a setting without an interactive prompt",value:`${packageName} project update my-project --framework vite --yes`},{name:"Set the sandbox default and failover regions",value:`${packageName} project update my-project --sandbox-region sfo1 --sandbox-failover-regions cle1,iad1`}]},tokenSubcommand2={name:"token",aliases:[],description:"Get a development OIDC token for a project",arguments:[{name:"name",required:!1}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Get a development OIDC token for the linked project",value:`${packageName} project token`},{name:'Get a development OIDC token for the project named "my-project"',value:`${packageName} project token my-project`},{name:"Get a development OIDC token as JSON",value:`${packageName} project token my-project --json`}]},accessSummarySubcommand={name:"access-summary",aliases:["summary"],description:"Show member counts by team role for project access (requires access groups entitlement)",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Summary for the linked project",value:`${packageName} project access-summary`},{name:"Summary as JSON",value:`${packageName} project access-summary my-app --json`}]},membersRemoveFlags=[formatOption,jsonOption],PROJECT_MEMBER_ROLES=["ADMIN","PROJECT_DEVELOPER","PROJECT_VIEWER","PROJECT_GUEST"],memberRoleOption={name:"role",shorthand:null,type:String,argument:"ROLE",description:`Project role when adding a member: ${PROJECT_MEMBER_ROLES.join(", ")}`,deprecated:!1},membersAddFlags=[formatOption,jsonOption,memberRoleOption],membersSubcommand={name:"members",aliases:["member"],description:"List, add, or remove project members for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,{name:"search",shorthand:null,type:String,description:"Filter project members by name, username, or email",deprecated:!1},{name:"limit",shorthand:null,type:Number,description:"Limit number of project members returned (1-100)",deprecated:!1},nextOption,memberRoleOption],examples:[{name:"List members for the linked project",value:`${packageName} project members`},{name:"List members for a named project as JSON",value:`${packageName} project members my-project --json`},{name:"Add a member to a project by email with a role",value:`${packageName} project members add my-project user@example.com --role PROJECT_VIEWER`},{name:"Remove a member from a project",value:`${packageName} project members remove my-project user@example.com`}]},protectionSubcommand={name:"protection",aliases:[],description:"Show or toggle deployment protection settings for a project",arguments:[{name:"action",required:!1},{name:"name",required:!1}],options:[formatOption,jsonOption,{name:"sso",shorthand:null,type:Boolean,description:"Apply action to SSO protection.",deprecated:!1},{name:"password",shorthand:null,type:Boolean,description:"Apply action to password protection (requires eligible plan/permissions).",deprecated:!1},{name:"protection-password",shorthand:null,type:String,argument:"PASSWORD",description:"Password value when enabling password protection (max 72 characters). Requires --password.",deprecated:!1},{name:"customer-support-code-visibility",shorthand:null,type:Boolean,description:"Apply action to customer support code visibility protection.",deprecated:!1},{name:"skew",shorthand:null,type:Boolean,description:"Apply action to skew protection.",deprecated:!1},{name:"skew-max-age",shorthand:null,type:String,argument:"SECONDS",description:"When enabling with --skew, max age in seconds for skew protection (default 2592000, 30 days).",deprecated:!1},{name:"protection-bypass",shorthand:null,type:Boolean,description:"Apply action to automation protection bypass secrets.",deprecated:!1},{name:"protection-bypass-secret",shorthand:null,type:String,argument:"SECRET",description:"Optional secret value for protection bypass. Required when disabling bypass.",deprecated:!1},{name:"git-fork-protection",shorthand:null,type:Boolean,description:"Apply action to Git fork protection.",deprecated:!1}],examples:[{name:"Protection settings for the linked project",value:`${packageName} project protection`},{name:"Named project as JSON",value:`${packageName} project protection my-app --json`},{name:"Disable password protection",value:`${packageName} project protection disable my-app --password`},{name:"Enable password protection",value:`${packageName} project protection enable my-app --password`},{name:"Enable password protection with a password",value:`${packageName} project protection enable my-app --password --protection-password <password>`},{name:"Enable customer support code visibility",value:`${packageName} project protection enable my-app --customer-support-code-visibility`},{name:"Disable customer support code visibility",value:`${packageName} project protection disable my-app --customer-support-code-visibility`},{name:"Enable skew protection",value:`${packageName} project protection enable my-app --skew`},{name:"Enable skew protection with custom max age (seconds)",value:`${packageName} project protection enable my-app --skew --skew-max-age 604800`},{name:"Disable skew protection",value:`${packageName} project protection disable my-app --skew`},{name:"Enable automation protection bypass",value:`${packageName} project protection enable my-app --protection-bypass`},{name:"Disable bypass with secret",value:`${packageName} project protection disable my-app --protection-bypass --protection-bypass-secret <secret>`},{name:"Enable Git fork protection",value:`${packageName} project protection enable my-app --git-fork-protection`},{name:"Disable Git fork protection",value:`${packageName} project protection disable my-app --git-fork-protection`},{name:"Enable SSO deployment protection",value:`${packageName} project protection enable my-app --sso`},{name:"Disable SSO for a named project",value:`${packageName} project protection disable my-app --sso`}]},accessGroupsSubcommand={name:"access-groups",aliases:["accessgroups"],description:"List access groups for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,nextOption,{name:"search",shorthand:null,type:String,description:"Search access groups by name",deprecated:!1},{name:"limit",shorthand:null,type:Number,description:"Limit number of access groups returned (1-100)",deprecated:!1}],examples:[{name:"List access groups for the linked project",value:`${packageName} project access-groups`},{name:"List access groups for a named project as JSON",value:`${packageName} project access-groups my-project --json`}]},webAnalyticsSubcommand={name:"web-analytics",aliases:[],description:"Enable or disable Web Analytics for a project",arguments:[{name:"action",required:!1},{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Enable Web Analytics for the linked project (omitting the action defaults to enable)",value:`${packageName} project web-analytics`},{name:"Enable Web Analytics for a named project",value:`${packageName} project web-analytics enable my-project`},{name:"Disable Web Analytics for a named project",value:`${packageName} project web-analytics disable my-project`},{name:"Disable Web Analytics and print the result as JSON (non-interactive / agents)",value:`${packageName} project web-analytics disable my-project --json`}]},speedInsightsSubcommand={name:"speed-insights",aliases:[],description:"Enable or disable Speed Insights for a project",arguments:[{name:"action",required:!1},{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Enable Speed Insights for the linked project",value:`${packageName} project speed-insights`},{name:"Enable Speed Insights for a named project",value:`${packageName} project speed-insights enable my-project`},{name:"Disable Speed Insights for a named project",value:`${packageName} project speed-insights disable my-project`},{name:"Disable Speed Insights and print the result as JSON",value:`${packageName} project speed-insights disable my-project --json`}]},observabilitySubcommand={name:"observability",aliases:[],description:"Enable or disable Observability Plus for a project",arguments:[{name:"action",required:!0},{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Enable Observability Plus for the linked project",value:`${packageName} project observability enable`},{name:"Disable Observability Plus for a named project",value:`${packageName} project observability disable my-project`},{name:"Enable Observability Plus and print the result as JSON",value:`${packageName} project observability enable my-project --json`}]},projectCommand={name:"project",aliases:["projects"],description:"Manage your Vercel projects",arguments:[],subcommands:[addSubcommand9,accessSummarySubcommand,checksSubcommand,inspectSubcommand9,listSubcommand15,membersSubcommand,accessGroupsSubcommand,protectionSubcommand,webAnalyticsSubcommand,speedInsightsSubcommand,pauseSubcommand,observabilitySubcommand,resumeSubcommand,updateSubcommand8,renameSubcommand,removeSubcommand13,tokenSubcommand2],options:[],examples:[{name:"Pause production traffic for a project",value:[`${packageName} project pause [NAME]`,`${packageName} project pause my-project`]},{name:"Resume a paused project",value:[`${packageName} project resume [NAME]`,`${packageName} project resume my-project`]},{name:"Add a member to a project",value:[`${packageName} project members add [NAME] <EMAIL | UID> --role <ROLE>`,`${packageName} project members add my-project user@example.com --role PROJECT_VIEWER`]},{name:"Remove a member from a project",value:[`${packageName} project members remove [NAME] <EMAIL | UID>`,`${packageName} project members remove my-project user@example.com`]},{name:"Enable or disable Observability Plus for a project",value:[`${packageName} project observability <enable | disable> [NAME]`,`${packageName} project observability enable my-project`]},{name:"Enable Web Analytics for a project",value:[`${packageName} project web-analytics [NAME]`,`${packageName} project web-analytics my-project`]},{name:"Enable Speed Insights for a project",value:[`${packageName} project speed-insights [NAME]`,`${packageName} project speed-insights my-project`]}]};var timeoutOption={name:"timeout",description:"Time to wait for promotion completion [3m]",argument:"TIME",shorthand:null,type:String,deprecated:!1},statusSubcommand3={name:"status",aliases:[],description:"Show the status of any current pending promotions",arguments:[{name:"project",required:!1}],options:[timeoutOption,{...yesOption,description:"Skip the confirmation prompt when linking a Project"}],examples:[{name:"Show the status of any current pending promotions",value:[`${packageName} promote status`,`${packageName} promote status <project>`,`${packageName} promote status --timeout 30s`]}]},promoteCommand={name:"promote",aliases:[],description:"Promote an existing Deployment to current",arguments:[{name:"url|deploymentId",required:!0}],subcommands:[statusSubcommand3],options:[timeoutOption,{...yesOption,description:"Skip the confirmation prompt when linking a Project"}],examples:[{name:"Promote a Deployment using ID or URL",value:`${packageName} promote <deployment id|url>`}]};var redeployCommand={name:"redeploy",aliases:[],description:"Rebuild and deploy a previous deployment.",arguments:[{name:"url|deploymentId",required:!1}],options:[{name:"no-wait",shorthand:null,description:"Don't wait for the redeploy to finish",type:Boolean,deprecated:!1},{name:"target",shorthand:null,argument:"TARGET",description:"Redeploy to a specific target environment",type:String,deprecated:!1}],examples:[{name:"Rebuild and deploy an existing deployment using id or url",value:`${packageName} redeploy my-deployment.vercel.app`},{name:"Write Deployment URL to a file",value:`${packageName} redeploy my-deployment.vercel.app > deployment-url.txt`},{name:"Rebuild and deploy an existing deployment to a specific target environment",value:`${packageName} redeploy my-deployment.vercel.app --target preview`}]};var listSubcommand16={name:"list",aliases:["ls"],description:"List all redirects for the current project. These redirects apply to all deployments and environments. There may also be redirects defined in a deployment that are not listed here.",arguments:[],options:[projectOption,{name:"search",description:"Search for redirects by source or destination",shorthand:"s",type:String,argument:"QUERY",deprecated:!1},{name:"next",description:"Continue from a previous response",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1},{name:"limit",description:"Number of redirects per page (default: 50)",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1},{name:"page",description:"Page number to display",shorthand:null,type:Number,argument:"NUMBER",deprecated:!0},{name:"per-page",description:"Number of redirects per page (default: 50)",shorthand:null,type:Number,argument:"NUMBER",deprecated:!0},{name:"staging",description:"List redirects from the staging version",shorthand:null,type:Boolean,deprecated:!1},{name:"version",description:"List redirects from a specific version ID",shorthand:null,type:String,argument:"VERSION_ID",deprecated:!1}],examples:[{name:"List all redirects",value:`${packageName} redirects list`},{name:"Search for redirects",value:`${packageName} redirects list --search "/old-path"`},{name:"List redirects on page 2",value:`${packageName} redirects list --next 2`},{name:"List redirects with custom page size",value:`${packageName} redirects list --limit 25`}]},listVersionsSubcommand={name:"list-versions",aliases:["ls-versions"],description:"List all versions of redirects",arguments:[],options:[projectOption],examples:[{name:"List all redirect versions",value:`${packageName} redirects list-versions`}]},addSubcommand10={name:"add",aliases:[],description:"Add a new redirect",arguments:[{name:"source",required:!1},{name:"destination",required:!1}],options:[projectOption,{name:"status",description:"HTTP status code (301, 302, 307, or 308)",shorthand:null,type:Number,argument:"CODE",deprecated:!1},{name:"case-sensitive",description:"Make the redirect case sensitive",shorthand:null,type:Boolean,deprecated:!1},{name:"preserve-query-params",description:"Preserve query parameters when redirecting",shorthand:null,type:Boolean,deprecated:!1},{name:"name",description:"Version name for this redirect (max 256 characters)",shorthand:null,type:String,argument:"NAME",deprecated:!1},{...yesOption,description:"Skip prompts and use default values"}],examples:[{name:"Add a new redirect interactively",value:`${packageName} redirects add`},{name:"Add a new redirect with arguments",value:`${packageName} redirects add /old-path /new-path`},{name:"Add a redirect with all options",value:`${packageName} redirects add /old-path /new-path --status 301 --case-sensitive --preserve-query-params --name "My redirect"`},{name:"Add a redirect non-interactively",value:`${packageName} redirects add /old-path /new-path --yes`}]},uploadSubcommand={name:"upload",aliases:["import"],description:"Upload redirects from a CSV or JSON file",arguments:[{name:"file",required:!0}],options:[projectOption,{...yesOption,description:"Skip confirmation prompt"},{name:"overwrite",description:"Replace all existing redirects",shorthand:null,type:Boolean,deprecated:!1}],examples:[{name:"Upload redirects from CSV file",value:`${packageName} redirects upload redirects.csv`},{name:"Upload redirects from JSON file",value:`${packageName} redirects upload redirects.json`},{name:"Upload and overwrite existing redirects",value:`${packageName} redirects upload redirects.csv --overwrite`},{name:"Upload without confirmation",value:`${packageName} redirects upload redirects.csv --yes`}]},removeSubcommand14={name:"remove",aliases:["rm"],description:"Remove a redirect",arguments:[{name:"source",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when removing a redirect"}],examples:[{name:"Remove a redirect",value:`${packageName} redirects remove /old-path`}]},promoteSubcommand={name:"promote",aliases:[],description:"Promote a staged redirects version to production",arguments:[{name:"version-id",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when promoting"}],examples:[{name:"Promote a redirect version",value:`${packageName} redirects promote <version-id>`}]},restoreSubcommand={name:"restore",aliases:[],description:"Restore a previous redirects version",arguments:[{name:"version-id",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when restoring"}],examples:[{name:"Restore a redirects version",value:`${packageName} redirects restore <version-id>`}]},redirectsCommand={name:"redirects",aliases:["redirect"],description:"Manage redirects for a project. Redirects managed at the project level apply to all deployments and environments and take effect immediately after being created and promoted to production.",arguments:[],subcommands:[listSubcommand16,listVersionsSubcommand,addSubcommand10,uploadSubcommand,removeSubcommand14,promoteSubcommand,restoreSubcommand],options:[],examples:[]};var removeCommand={name:"remove",aliases:["rm"],description:"Remove deployment(s) by project name or deployment ID.",arguments:[{name:"name|deploymentId",required:!0,multiple:!0}],options:[{...yesOption,description:"Skip confirmation"},{name:"safe",shorthand:"s",type:Boolean,deprecated:!1,description:"Skip deployments with an active alias"},{name:"hard",shorthand:null,type:Boolean,deprecated:!1}],examples:[{name:"Remove a deployment identified by Deployment ID",value:`${packageName} remove dpl_abcdef123456890`},{name:"Remove all deployments with Project name `my-app`",value:`${packageName} remove my-app`},{name:"Remove two deployments with Deployment IDs",value:`${packageName} remove dpl_eyWt6zuSdeus dpl_uWHoA9RQ1d1o`}]};var timeoutOption2={name:"timeout",description:"Time to wait for rollback completion [3m]",argument:"TIME",shorthand:null,type:String,deprecated:!1},statusSubcommand4={name:"status",aliases:[],description:"Show the status of any current pending rollbacks",arguments:[{name:"project",required:!1}],options:[timeoutOption2],examples:[{name:"Show the status of any current pending rollbacks",value:[`${packageName} rollback status`,`${packageName} rollback status <project>`,`${packageName} rollback status --timeout 30s`]}]},rollbackCommand={name:"rollback",aliases:[],description:"Quickly revert back to a previous deployment",arguments:[{name:"url|deploymentId",required:!0}],subcommands:[statusSubcommand4],options:[timeoutOption2,yesOption],examples:[{name:"Rollback a deployment using id or url",value:`${packageName} rollback <deployment id/url>`}]};var configureSubcommand={name:"configure",description:"Configure rolling release settings for a project",aliases:[],arguments:[],examples:[{name:"Enable automatic rolling release: 10% for 5 minutes, then 50% for 10 minutes, then 100%",value:`${packageName} rolling-release configure --enable --advancement-type=automatic --stage=10,5m --stage=50,10m`},{name:"Enable manual-approval rolling release: 10%, then 50%, then 100% (each stage requires approval)",value:`${packageName} rolling-release configure --enable --advancement-type=manual-approval --stage=10 --stage=50`},{name:"Disable rolling releases",value:`${packageName} rolling-release configure --disable`},{name:"Configure with raw JSON (advanced)",value:`${packageName} rolling-release configure --cfg='{"enabled":true, "advancementType":"automatic", "stages":[{"targetPercentage":10,"duration":5},{"targetPercentage":100}]}'`}],options:[projectOption,{name:"cfg",shorthand:null,deprecated:!1,type:String,description:"Raw JSON configuration (advanced). Overrides other flags."},{name:"enable",shorthand:null,deprecated:!1,type:Boolean,description:"Enable rolling releases for this project"},{name:"disable",shorthand:null,deprecated:!1,type:Boolean,description:"Disable rolling releases for this project"},{name:"advancement-type",shorthand:null,deprecated:!1,type:String,argument:"TYPE",description:'How stages advance: "automatic" or "manual-approval"'},{name:"stage",shorthand:null,deprecated:!1,type:[String],argument:"PERCENTAGE[,DURATION]",description:'Add a rollout stage. Percentage (1-99) with optional duration for automatic advancement (e.g. "10,5m"). Can be specified multiple times. A final 100% stage is added automatically.'}]},startSubcommand2={name:"start",description:"Start a rolling release",aliases:[],arguments:[],examples:[{name:"Start a rolling release",value:`${packageName} rr start --dpl=dpl_123`},{name:"Start a rolling release using URL",value:`${packageName} rr start --dpl=https://example.vercel.app`},{name:"Non-interactive (e.g. preview deployment): use --yes to promote",value:`${packageName} rr start --dpl=dpl_123 --yes`}],options:[{name:"dpl",shorthand:null,deprecated:!1,type:String,description:"The deploymentId or URL to target for the rolling release",required:!0},projectOption,yesOption]},approveSubcommand={name:"approve",description:"Approve the current stage of an active rolling release",aliases:[],arguments:[],examples:[{name:"Approve the current stage of an active rolling release",value:`${packageName} rolling-release approve --currentStageIndex=0 --dpl=dpl_123`}],options:[projectOption,{name:"dpl",shorthand:null,deprecated:!1,type:String,description:"The deploymentId of the rolling release"},{name:"currentStageIndex",shorthand:null,deprecated:!1,type:String,description:"The current stage of a rolling release to approve"}]},abortSubcommand={name:"abort",description:"Abort an active rolling release",aliases:[],arguments:[],examples:[{name:"Abort an active rolling release",value:`${packageName} rolling-release abort --dpl=dpl_123`}],options:[projectOption,{name:"dpl",shorthand:null,deprecated:!1,type:String,description:"The deploymentId of the rolling release to abort"}]},completeSubcommand={name:"complete",description:"Complete an active rolling release",aliases:[],arguments:[],examples:[{name:"Complete an active rolling release",value:`${packageName} rolling-release complete --dpl=dpl_123`}],options:[projectOption,{name:"dpl",shorthand:null,deprecated:!1,type:String,description:"The deploymentId of the rolling release to complete"}]},fetchSubcommand={name:"fetch",description:"Fetch details about a rolling release",aliases:[],arguments:[],examples:[{name:"Fetch details about a rolling release",value:`${packageName} rolling-release fetch`}],options:[projectOption]},rollingReleaseCommand={name:"rolling-release",aliases:["rr"],description:"Rolling releases gradually shift traffic to a new deployment in stages, allowing you to monitor for errors before serving all traffic. Learn more: https://vercel.com/docs/rolling-releases",arguments:[],subcommands:[configureSubcommand,startSubcommand2,approveSubcommand,abortSubcommand,completeSubcommand,fetchSubcommand],options:[],examples:[{name:"Enable automatic rolling release with two stages",value:`${packageName} rr configure --enable --advancement-type=automatic --stage=10,5m --stage=50,10m`},{name:"Enable manual-approval rolling release",value:`${packageName} rr configure --enable --advancement-type=manual-approval --stage=10 --stage=50`},{name:"Disable rolling releases",value:`${packageName} rr configure --disable`},{name:"Start a rolling release",value:`${packageName} rr start --dpl=dpl_123`},{name:"Approve an active rolling release stage",value:`${packageName} rr approve --currentStageIndex=0 --dpl=dpl_123`},{name:"Abort an active rolling release",value:`${packageName} rr abort --dpl=dpl_123`},{name:"Complete an active rolling release",value:`${packageName} rr complete --dpl=dpl_123`}]};var sandboxCommand={name:"sandbox",aliases:[],description:"Interact with Vercel Sandbox",arguments:[],options:[],examples:[{name:"List sandboxes for the current project",value:`${packageName} sandbox list`},{name:"Create a sandbox and connect to it",value:`${packageName} sandbox create --connect`}]};var namespaceOption={name:"namespace",shorthand:null,type:String,argument:"NAMESPACE",deprecated:!1,description:"Use a schedule namespace (default: default)"},nextOption2={name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Continue from a previous response"},cronOption={name:"cron",shorthand:null,type:String,argument:"EXPRESSION",deprecated:!1,description:"Use a cron expression"},atOption={name:"at",shorthand:null,type:String,argument:"DATETIME",deprecated:!1,description:"Run once at a local datetime (YYYY-MM-DDTHH:mm:ss)"},timezoneOption={name:"timezone",shorthand:null,type:String,argument:"TIMEZONE",deprecated:!1,description:"Evaluate expressions in an IANA timezone (default: UTC)"},createJitterOption={name:"jitter",shorthand:null,type:Number,argument:"MINUTES",deprecated:!1,description:"Add a jitter window between 1 and 15 minutes"},updateJitterOption={name:"jitter",shorthand:null,type:String,argument:"MINUTES|none",deprecated:!1,description:"Set jitter to 1\u201315 minutes, or use none to remove it"},topicOption={name:"topic",shorthand:null,type:String,argument:"TOPIC",deprecated:!1,description:"Target a queue topic"},payloadOption={name:"payload",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Set the JSON payload delivered to the target"},updatePayloadOption={...payloadOption,description:"Replace the JSON payload; use null to remove it"},nameArgument={name:"name",required:!0},scheduleOutputOptions=[formatOption,jsonOption],createSubcommand6={name:"create",aliases:[],description:"Create a schedule",arguments:[nameArgument],options:[namespaceOption,cronOption,atOption,timezoneOption,createJitterOption,topicOption,payloadOption,...scheduleOutputOptions],examples:[{name:"Create a recurring schedule",value:`${packageName} schedules create daily-cleanup --cron "0 2 * * *" --topic scheduled-cleanup`},{name:"Create a one-time schedule",value:`${packageName} schedules create send-reminder --at 2026-09-17T10:00:00 --timezone America/New_York --topic reminders`}]},updateSubcommand9={name:"update",aliases:[],description:"Update a schedule",arguments:[nameArgument],options:[namespaceOption,cronOption,atOption,timezoneOption,updateJitterOption,topicOption,updatePayloadOption,...scheduleOutputOptions],examples:[{name:"Change a recurring schedule",value:`${packageName} schedules update daily-cleanup --cron "0 3 * * *"`},{name:"Remove a jitter window",value:`${packageName} schedules update daily-cleanup --jitter none`}]};function actionSubcommand(name,description){return{name,aliases:[],description,arguments:[nameArgument],options:[namespaceOption,...scheduleOutputOptions],examples:[{name:`${description} in the default namespace`,value:`${packageName} schedules ${name} daily-cleanup`}]}}var enableSubcommand3=actionSubcommand("enable","Enable a schedule"),disableSubcommand3=actionSubcommand("disable","Disable a schedule"),invokeSubcommand=actionSubcommand("invoke","Invoke a schedule immediately"),deleteSubcommand2={name:"delete",aliases:["rm"],description:"Delete a schedule",arguments:[nameArgument],options:[namespaceOption,{...yesOption,description:"Skip the confirmation prompt when deleting"},...scheduleOutputOptions],examples:[{name:"Delete a schedule",value:`${packageName} schedules delete daily-cleanup`},{name:"Delete without confirmation",value:`${packageName} schedules delete daily-cleanup --yes`}]},listSubcommand17={name:"list",aliases:["ls"],description:"List schedules",arguments:[],options:[namespaceOption,limitOption,nextOption2,formatOption,jsonOption],examples:[{name:"List schedules in the default namespace",value:`${packageName} schedules list`},{name:"List schedules in another namespace",value:`${packageName} schedules list --namespace jobs`},{name:"Continue listing schedules",value:`${packageName} schedules list --next <cursor>`},{name:"List schedules as JSON",value:`${packageName} schedules list --format json`}]},getSubcommand2={name:"get",aliases:[],description:"Show a schedule",arguments:[nameArgument],options:[formatOption,jsonOption,namespaceOption],examples:[{name:"Show a schedule in the default namespace",value:`${packageName} schedules get daily-cleanup`},{name:"Show a schedule in another namespace",value:`${packageName} schedules get daily-cleanup --namespace jobs`},{name:"Show a schedule as JSON",value:`${packageName} schedules get daily-cleanup --format json`}]},schedulesCommand={name:"schedules",aliases:[],description:"Manage schedules for the current project",arguments:[],subcommands:[listSubcommand17,getSubcommand2,createSubcommand6,updateSubcommand9,enableSubcommand3,disableSubcommand3,invokeSubcommand,deleteSubcommand2],options:[],examples:[]};var checkSubcommand2={name:"check",aliases:[],description:"Run the security checks for the current team and show each check with its risk level, status, violation count, and muted findings. Pass check slugs to compute only those checks and list their findings",default:!0,arguments:[{name:"check",required:!1,multiple:!0}],options:[{name:"findings",shorthand:null,type:Boolean,deprecated:!1,description:"List individual findings under each check, including muted ones. Implied when a check slug is passed"},{name:"limit",shorthand:null,type:Number,argument:"N",deprecated:!1,description:"Max findings listed per check; by default every available finding is listed. Violation counts are always exact even when findings are capped"},{...projectOption,shorthand:"p",description:"Scope the report to one project"},formatOption,jsonOption],examples:[{name:"Run all security checks",value:`${packageName} security check`},{name:"Deep-dive one check and its findings",value:`${packageName} security check pats-no-expiration`},{name:"Output the raw report as JSON",value:`${packageName} security check --json`}]},securityCommand={name:"security",aliases:[],description:"Inspect the security posture of the current team",arguments:[],subcommands:[checkSubcommand2],options:[],examples:[]};var setupCommand={name:"setup",aliases:[],description:"Set up your machine for Vercel: install the Vercel plugin for Claude Code and Codex and connect local coding agents to the AI Gateway",arguments:[],options:[{name:"plugin",shorthand:null,type:Boolean,deprecated:!1,description:"Only set up the Vercel plugin for Claude Code and Codex"},{name:"gateway",shorthand:null,type:Boolean,deprecated:!1,description:"Only connect coding agents to the AI Gateway"},{name:"agent",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Select a coding agent (repeatable); plugin setup supports claude-code and codex"},{name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Show what would change without writing any files"},yesOption],examples:[{name:"Set up everything (prompts for each step)",value:`${packageName} setup`},{name:"Only connect coding agents to the AI Gateway",value:`${packageName} setup --gateway`},{name:"Install the Vercel plugin for Codex",value:`${packageName} setup --plugin --agent codex`},{name:"Preview what setup would change",value:`${packageName} setup --dry-run`},{name:"Run setup without prompts",value:`${packageName} setup --yes`}]};var signupCommand={name:"signup",aliases:[],description:"Create a Vercel account and sign in.",arguments:[],options:[{name:"email",description:"Email address to use when creating the account",argument:"EMAIL",shorthand:null,type:String,deprecated:!1}],examples:[{name:"Create a Vercel account with an email address.",value:`${packageName} signup --email user@example.com`},{name:"Create a Vercel account and enter your email when prompted.",value:`${packageName} signup`}],disabledGlobalOptions:["token"]};var skillsCommand={name:"skills",aliases:[],description:"Discover agent skills relevant to your project",arguments:[{name:"query",required:!1}],options:[{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output results as JSON"},{name:"format",shorthand:null,type:String,argument:"FORMAT",deprecated:!1},yesOption],examples:[{name:"Recommend skills based on detected project",value:`${packageName} skills`},{name:"Search for skills by keyword",value:`${packageName} skills nextjs`}]};var OIDC_CAPABLE_STORE_TYPES=new Set(["blob"]),FIRST_PARTY_PRODUCT_LABELS={blob:"Vercel Blob",postgres:"Vercel Postgres",redis:"Vercel KV","edge-config":"Vercel Global Config","global-config":"Vercel Global Config"};async function getStorageStores(client,options={}){return(await client.fetch("/v1/storage/stores",{json:!0,accountId:options.accountId})).stores??[]}async function getStorageStore(client,storeId,options={}){return(await client.fetch(`/v1/storage/stores/${encodeURIComponent(storeId)}`,{json:!0,accountId:options.accountId})).store}function resolveStore(stores,identifier){let byId=stores.find(store=>store.id===identifier);if(byId)return{status:"found",store:byId};let byName=stores.filter(store=>store.name===identifier);return byName.length===1?{status:"found",store:byName[0]}:byName.length>1?{status:"ambiguous",matches:byName}:{status:"not_found"}}function storeSupportsOidc(store){return OIDC_CAPABLE_STORE_TYPES.has(store.type??"")}function storeProductLabel(store){if(store.product?.name)return store.product.name;let type=store.type??"unknown";return FIRST_PARTY_PRODUCT_LABELS[type]??type}function getConnections(store){return store.projectsMetadata??[]}function getProjectConnections(store,projectId){return getConnections(store).filter(connection=>connection.projectId===projectId)}function resolveProjectConnection(store,projectId,environments){let connections=getProjectConnections(store,projectId);if(connections.length===0)return{status:"not_found"};if(connections.length===1)return{status:"found",connection:connections[0]};if(environments?.length){let overlapping=connections.filter(connection=>connection.environments.some(environment=>environments.includes(environment)));if(overlapping.length===1)return{status:"found",connection:overlapping[0]};if(overlapping.length>1)return{status:"ambiguous",connections:overlapping}}return{status:"ambiguous",connections}}function findOverlappingConnections(store,projectId,environments){return getProjectConnections(store,projectId).filter(connection=>connection.environments.some(environment=>environments.includes(environment)))}async function disconnectStoreProjects(client,store,accountId){await client.fetch(`/v1/storage/stores/${encodeURIComponent(store.id)}/connections`,{method:"DELETE",accountId})}var blobAccessOption={name:"access",shorthand:null,type:String,argument:"ACCESS",deprecated:!1,description:"Blob only: access level for the store, `public` or `private` (required)"},blobRegionOption={name:"region",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Blob only: region to create the store in (default: iad1)"},BLOB_ACCESS_VALUES=["public","private"];function isBlobAccess(value){return typeof value=="string"&&BLOB_ACCESS_VALUES.includes(value)}var blobProvider={type:"blob",apiTypes:["blob"],label:"Vercel Blob",typeAliases:[],createOptions:[blobAccessOption,blobRegionOption],async validateCreate(flags,{prompt}){let access=flags["--access"];if(access===void 0&&prompt&&(access=await prompt.select("Choose the access type for the blob store",[{name:"Private",value:"private",description:"For sensitive documents, user content, and apps with custom auth"},{name:"Public",value:"public",description:"For images, videos, large media, and public assets"}])),access===void 0)return{valid:!1,reason:"missing_arguments",message:"Blob stores require --access. Pass --access public or --access private."};if(!isBlobAccess(access))return{valid:!1,reason:"invalid_arguments",message:`Invalid --access value "${String(access)}". Must be public or private.`};let region=flags["--region"];return region!==void 0&&typeof region!="string"?{valid:!1,reason:"invalid_arguments",message:"--region must be a region id such as iad1."}:{valid:!0,params:{access,region:region??"iad1"}}},async create(client,{name,params,accountId}){let response=await client.fetch("/v1/storage/stores/blob",{method:"POST",body:{name,...params},accountId});return{id:response.store.id,name:response.store.name??name,details:{region:response.store.region??params.region??null,access:response.store.access??params.access??null}}},async delete(client,{store,accountId}){await disconnectStoreProjects(client,store,accountId),await client.fetch(`/v1/storage/stores/blob/${encodeURIComponent(store.id)}`,{method:"DELETE",accountId})},async describe(_client,{store}){let raw=store,suffix=store.id.replace(/^store_/,"").toLowerCase(),access=raw.access==="private"?"private":"public";return{region:raw.region??null,access,size:raw.size??null,count:raw.count??null,billingState:raw.billingState??null,baseUrl:`${suffix}.${access}.blob.vercel-storage.com`}}},edgeConfigItemsOption={name:"items",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Global Config only: initial items as a JSON object of key \u2192 value pairs"},globalConfigProvider={type:"global-config",apiTypes:["global-config","edge-config"],label:"Vercel Global Config",typeAliases:["edge-config","edgeconfig"],createOptions:[edgeConfigItemsOption],async validateCreate(flags){let items=flags["--items"];if(items===void 0)return{valid:!0,params:{}};if(typeof items!="string")return{valid:!1,reason:"invalid_arguments",message:"--items must be a JSON object of key \u2192 value pairs."};let parsed;try{parsed=JSON.parse(items)}catch{return{valid:!1,reason:"invalid_arguments",message:"--items must be valid JSON."}}return!parsed||typeof parsed!="object"||Array.isArray(parsed)?{valid:!1,reason:"invalid_arguments",message:"--items must be a JSON object of key \u2192 value pairs."}:{valid:!0,params:{items:parsed}}},async create(client,{name,params,accountId}){let response=await client.fetch("/v1/global-config",{method:"POST",body:{slug:name,...params},accountId});return{id:response.id,name:response.slug??name,details:{itemCount:response.itemCount??null}}},async delete(client,{store,accountId}){await disconnectStoreProjects(client,store,accountId),await client.fetch(`/v1/global-config/${encodeURIComponent(store.id)}`,{method:"DELETE",accountId})},async describe(client,{store,accountId}){let config=await client.fetch(`/v1/global-config/${encodeURIComponent(store.id)}`,{accountId});return{slug:config.slug??store.name,itemCount:config.itemCount??null,sizeInBytes:config.sizeInBytes??null,digest:config.digest??null}}},STORAGE_PROVIDERS=[blobProvider,globalConfigProvider];function listStorageProviderTypes(){return STORAGE_PROVIDERS.map(provider=>provider.type)}function getStorageProvider(type){if(!type)return;let normalized=type.toLowerCase();return STORAGE_PROVIDERS.find(provider=>provider.type===normalized||provider.typeAliases.includes(normalized)||provider.apiTypes.includes(normalized))}function storeTypeName(store){let apiType=store.type??"unknown";return getStorageProvider(apiType)?.type??apiType}function storeMatchesType(store,type){let provider=getStorageProvider(type);return provider?provider.apiTypes.includes(store.type??""):(store.type??"unknown")===type.toLowerCase()}function getProviderCreateOptions(){return STORAGE_PROVIDERS.flatMap(provider=>provider.createOptions)}function findForeignCreateFlags(provider,flags){let own=new Set(provider.createOptions.map(option=>`--${option.name}`));return getProviderCreateOptions().map(option=>`--${option.name}`).filter(flag=>!own.has(flag)&&flags[flag]!==void 0)}async function loadStoreDetails(client,store,accountId){return getStorageStore(client,store.id,{accountId})}var environmentOption3={name:"environment",shorthand:"e",type:[String],argument:"ENV",deprecated:!1,description:"Environment to target (repeatable: production, preview, development). Defaults to all three."},authOption={name:"auth",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"Credential mode: `oidc` (default) or `token`. `token` writes long-lived credentials and requires --add-rw-token."},updateEnvironmentOption={...environmentOption3,description:"Environment to target (repeatable: production, preview, development). Defaults to the environments the connection already covers."},updateAuthOption={...authOption,description:"Credential mode: `oidc` or `token`. Defaults to the mode the connection already uses, so unrelated updates never rotate credentials. `token` requires --add-rw-token."},addRwTokenOption={name:"add-rw-token",shorthand:null,type:Boolean,deprecated:!1,description:"Explicitly write the static read-write token env var. Required for --auth token, and additive on top of --auth oidc."},prefixOption={name:"prefix",shorthand:null,type:String,argument:"PREFIX",deprecated:!1,description:"Prefix for the generated environment variable names (e.g. --prefix UPLOADS writes UPLOADS_STORE_ID)"},dryRunOption={name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Print the environment variable changes and exit without applying them"},connectSubcommand3={name:"connect",aliases:[],description:"Connect a storage resource (Blob, Marketplace, or 1P) to a project",arguments:[{name:"store",required:!0}],options:[projectOption,environmentOption3,authOption,addRwTokenOption,prefixOption,dryRunOption,{...yesOption,description:"Skip the confirmation prompt when connecting a resource"},formatOption,jsonOption],examples:[{name:"Connect a store to the linked project in every environment",value:[`${packageName} storage connect <store>`,`${packageName} storage connect my-blob-store`]},{name:"Connect to a specific project and environments",value:`${packageName} storage connect my-blob-store --project my-app --environment production --environment preview`},{name:"Preview the exact environment variable changes without applying them",value:[`${packageName} storage connect my-blob-store --dry-run`,`${packageName} storage connect my-blob-store --dry-run --json`]},{name:"Opt in to the static read-write token alongside OIDC",value:`${packageName} storage connect my-blob-store --add-rw-token --yes`},{name:"Use only static credentials (requires the explicit opt-in)",value:`${packageName} storage connect my-blob-store --auth token --add-rw-token --yes`}]},statusSubcommand5={name:"status",aliases:[],description:"Show storage connections, their environments, credential mode, and environment variables",arguments:[{name:"store",required:!1}],options:[projectOption,{...allOption,description:"Show every storage resource in the current scope"},formatOption,jsonOption],examples:[{name:"Show the storage connections of the linked project",value:`${packageName} storage status`},{name:"Show every project connected to one store",value:`${packageName} storage status my-blob-store`},{name:"Show every storage resource in the current scope as JSON",value:`${packageName} storage status --all --json`}]},updateSubcommand10={name:"update",aliases:[],description:"Update an existing storage connection (environments, prefix, or credential mode)",arguments:[{name:"store",required:!0}],options:[projectOption,updateEnvironmentOption,updateAuthOption,addRwTokenOption,prefixOption,dryRunOption,{...yesOption,description:"Skip the confirmation prompt when updating a connection"},formatOption,jsonOption],examples:[{name:"Move an existing connection to OIDC credentials",value:`${packageName} storage update my-blob-store --auth oidc --yes`},{name:"Change the environments of a connection",value:`${packageName} storage update my-blob-store --environment production --yes`},{name:"Preview the environment variable changes without applying them",value:`${packageName} storage update my-blob-store --auth oidc --dry-run`}]},disconnectSubcommand3={name:"disconnect",aliases:[],description:"Disconnect a storage resource from a project. Removes its environment variables, so it always requires interactive confirmation.",arguments:[{name:"store",required:!0}],options:[projectOption,{...allOption,description:"Disconnect every project from the specified resource"},dryRunOption,formatOption,jsonOption],examples:[{name:"Disconnect a store from the linked project (always asks for confirmation)",value:`${packageName} storage disconnect my-blob-store`},{name:"Disconnect a store from every project",value:`${packageName} storage disconnect my-blob-store --all`},{name:"Preview the environment variables that would be removed",value:[`${packageName} storage disconnect my-blob-store --dry-run`,`${packageName} storage disconnect my-blob-store --dry-run --json`]}]},typeOption={name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:`Store type: ${listStorageProviderTypes().join(", ")}`},listSubcommand18={name:"list",aliases:[],description:"List storage resources in the current scope",arguments:[],options:[{...typeOption,description:`Only list stores of one type: ${listStorageProviderTypes().join(", ")}`},formatOption,jsonOption],examples:[{name:"List every store in the current scope",value:`${packageName} storage list`},{name:"List only Global Config stores as JSON",value:`${packageName} storage list --type global-config --json`}]},createSubcommand7={name:"create",aliases:[],description:`Create a storage resource (${listStorageProviderTypes().join(", ")})`,arguments:[{name:"name",required:!0}],options:[typeOption,blobAccessOption,blobRegionOption,edgeConfigItemsOption,formatOption,jsonOption],examples:[{name:"Create a private Blob store",value:`${packageName} storage create my-uploads --type blob --access private`},{name:"Create a Blob store in a specific region",value:`${packageName} storage create my-uploads --type blob --access public --region fra1`},{name:"Create a Global Config with initial items",value:`${packageName} storage create flags --type global-config --items '{"enabled":true}'`},{name:"Create a store and read the result as JSON",value:`${packageName} storage create my-uploads --type blob --access private --json`}]},matchTypeOption={...typeOption,description:`Only match stores of one type when several share a name: ${listStorageProviderTypes().join(", ")}`},getSubcommand3={name:"get",aliases:[],description:"Show the details of one storage resource",arguments:[{name:"store",required:!0}],options:[matchTypeOption,formatOption,jsonOption],examples:[{name:"Show a store by name or ID",value:[`${packageName} storage get my-blob-store`,`${packageName} storage get store_abc123 --json`,`${packageName} storage get uploads --type global-config`]}]},deleteSubcommand3={name:"delete",aliases:[],description:"Delete a storage resource. This cannot be undone and removes its project connections, so it always requires interactive confirmation.",arguments:[{name:"store",required:!0}],options:[matchTypeOption],examples:[{name:"Delete a store (always asks for confirmation)",value:`${packageName} storage delete my-blob-store`},{name:"Disambiguate when a Blob store and a Global Config share a name",value:`${packageName} storage delete uploads --type blob`}]},storageCommand={name:"storage",aliases:[],description:"Create, connect, and manage storage resources (Blob, Global Config, Marketplace, and 1P) for your Projects",options:[],arguments:[],subcommands:[listSubcommand18,createSubcommand7,getSubcommand3,deleteSubcommand3,connectSubcommand3,statusSubcommand5,updateSubcommand10,disconnectSubcommand3],examples:[{name:"List the stores in the current scope",value:`${packageName} storage list`},{name:"Create a store and connect it to the linked project",value:[`${packageName} storage create my-uploads --type blob --access private`,`${packageName} storage connect my-uploads --yes`]},{name:"Inspect what is connected today",value:`${packageName} storage status`}]};var listSubcommand19={name:"list",aliases:["ls"],description:"List targets defined for the current Project",arguments:[],options:[formatOption,jsonOption,projectOption,{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"}],examples:[{name:"List all targets for the current Project",value:`${packageName} target ls my-project`}]},targetCommand={name:"target",aliases:["targets"],description:`Manage your Vercel Project's "targets" (custom environments).`,arguments:[],subcommands:[listSubcommand19],options:[],examples:[]};var requestSubcommand={name:"request",aliases:["access-request"],description:"Show join-request status for the current team (defaults to the authenticated user)",arguments:[{name:"userId",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Status for your pending request",value:`${packageName} teams request`},{name:"Status for another user id",value:`${packageName} teams request user_abc123`}]},addSubcommand11={name:"add",aliases:["create"],description:"Create a new team",arguments:[],options:[{name:"slug",shorthand:null,type:String,description:"Team URL slug (e.g. acme for vercel.com/acme); required in non-interactive mode",deprecated:!1},{name:"name",shorthand:null,type:String,description:"Display name for the team; required in non-interactive mode",deprecated:!1}],examples:[{name:"Create a team (interactive)",value:`${packageName} teams add`},{name:"Create a team non-interactively",value:`${packageName} teams add --slug acme --name "Acme Corp"`}]},listSubcommand20={name:"list",aliases:["ls"],description:"Show all teams that you're a member of",arguments:[],options:[nextOption,limitOption,formatOption,jsonOption,{name:"since",shorthand:null,type:String,deprecated:!0},{name:"until",shorthand:null,type:String,deprecated:!0},{name:"count",shorthand:"C",type:Number,deprecated:!0}],examples:[{name:"Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch",value:`${packageName} teams ls --next 1584722256178`}]},switchSubcommand={name:"switch",aliases:["change"],description:"Switch to a different team",arguments:[{name:"name",required:!1}],options:[],examples:[{name:"Switch to a team. If your team's url is 'vercel.com/name', then 'name' is the slug. If the slug is omitted, you can choose interactively",value:`${packageName} teams switch <slug>`}],disabledGlobalOptions:["token"]},inviteSubcommand={name:"invite",aliases:[],description:"Invite a new member to a team",arguments:[{name:"email",required:!0,multiple:!0}],options:[],examples:[{name:"Invite new members (interactively)",value:`${packageName} teams invite`},{name:"Invite multiple members (required in non-interactive mode)",value:`${packageName} teams invite abc@vercel.com xyz@vercel.com`}]},ssoSubcommand={name:"sso",aliases:[],description:"Show SAML / SSO configuration for the current team",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Human-readable SAML summary",value:`${packageName} teams sso`},{name:"JSON",value:`${packageName} teams sso --json`}]},membersSubcommand2={name:"members",aliases:["member"],description:"List members for the currently scoped team",arguments:[],options:[nextOption,limitOption,formatOption,jsonOption],examples:[{name:"List team members",value:`${packageName} teams members`},{name:"List team members as JSON",value:`${packageName} teams members --json`},{name:"Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch",value:`${packageName} teams members --next 1584722256178`}]},teamsCommand={name:"teams",aliases:["switch","team"],description:"Manage Teams under your Vercel account",arguments:[],subcommands:[addSubcommand11,inviteSubcommand,listSubcommand20,requestSubcommand,switchSubcommand,ssoSubcommand,membersSubcommand2],options:[],examples:[]};var listSubcommand21={name:"list",aliases:["ls"],description:"List your personal authentication tokens",default:!0,arguments:[],options:[formatOption,jsonOption,{name:"limit",shorthand:null,type:Number,description:"Maximum number of tokens to return (default 20)",deprecated:!1},{name:"next",shorthand:null,type:String,description:"Continue from a previous response",argument:"CURSOR",deprecated:!1}],examples:[{name:"List tokens as JSON",value:`${packageName} tokens ls --json`}]},addSubcommand12={name:"add",aliases:["create"],description:"Create a new personal authentication token",arguments:[{name:"name",required:!0}],options:[formatOption,jsonOption,{...projectOption,description:"Optional project ID to scope the token to"}],examples:[{name:"Create a token",value:`${packageName} tokens add "CI deploy"`}]},removeSubcommand15={name:"remove",aliases:["rm","delete"],description:"Delete a personal authentication token by ID",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Remove a token",value:`${packageName} tokens rm tok_abc123`}]},tokensCommand={name:"tokens",aliases:[],description:"Manage your personal Vercel authentication tokens",arguments:[],subcommands:[addSubcommand12,listSubcommand21,removeSubcommand15],options:[],examples:[]};var statusSubcommand6={name:"status",aliases:[],description:"Shows whether telemetry collection is enabled or disabled",arguments:[],options:[],examples:[]},enableSubcommand4={name:"enable",aliases:[],description:"Enables telemetry collection",arguments:[],options:[],examples:[]},flushSubcommand={name:"flush",aliases:[],description:"Internal command to flush telemetry events",hidden:!0,arguments:[],options:[],examples:[]},disableSubcommand4={name:"disable",aliases:[],description:"Disables telemetry collection",arguments:[],options:[],examples:[]},telemetryCommand={name:"telemetry",aliases:[],description:"Allows you to enable or disable telemetry collection",arguments:[],subcommands:[enableSubcommand4,disableSubcommand4,statusSubcommand6,flushSubcommand],options:[],examples:[]};var upgradeCommand={name:"upgrade",aliases:[],description:"Upgrades the Vercel CLI to the latest version.",arguments:[{name:"version|latest",required:!1}],options:[{name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Show the upgrade command without executing it"},{name:"enable-auto",shorthand:null,type:Boolean,deprecated:!1,description:"Enable automatic CLI updates for future releases"},{name:"disable-auto",shorthand:null,type:Boolean,deprecated:!1,description:"Disable automatic CLI updates"},{name:"bypass-min-release-age",shorthand:null,type:Boolean,deprecated:!1,description:"Bypass package-manager release-age checks for this and future foreground upgrades"},{name:"disable-min-release-age-bypass",shorthand:null,type:Boolean,deprecated:!1,description:"Restore package-manager release-age checks"},{name:"enable-binary",shorthand:null,type:Boolean,deprecated:!1},{name:"disable-binary",shorthand:null,type:Boolean,deprecated:!1},formatOption,jsonOption],examples:[{name:"Upgrade the Vercel CLI to the latest version",value:`${packageName} upgrade`},{name:"Install a specific Vercel CLI version",value:`${packageName} upgrade 59.11.7`},{name:"Install the latest version using the package manager",value:`${packageName} upgrade latest`},{name:"Show the upgrade command without running it",value:`${packageName} upgrade --dry-run`},{name:"Enable automatic CLI updates",value:`${packageName} upgrade --enable-auto`},{name:"Get upgrade information as JSON",value:`${packageName} upgrade --json`}]};var usageCommand={name:"usage",aliases:[],description:"Show billing usage (MIUs and costs) for the current billing period or a custom date range",arguments:[],options:[{name:"from",shorthand:null,type:String,argument:"DATE",description:"Start date (YYYY-MM-DD, interpreted as midnight LA time)",deprecated:!1},{name:"to",shorthand:null,type:String,argument:"DATE",description:"End date (YYYY-MM-DD, interpreted as end of day LA time)",deprecated:!1},{name:"breakdown",shorthand:null,type:String,argument:"PERIOD",description:"Show usage breakdown by time period instead of aggregated totals (daily, weekly, monthly)",deprecated:!1},{name:"group-by",shorthand:null,type:String,argument:"DIMENSION",description:"Group usage by a dimension instead of aggregated totals (project, region)",deprecated:!1},formatOption,jsonOption],examples:[{name:"Show usage for the current billing period",value:`${packageName} usage`},{name:"Show usage for a custom date range",value:`${packageName} usage --from 2025-01-01 --to 2025-01-31`},{name:"Show daily usage breakdown",value:`${packageName} usage --breakdown daily`},{name:"Show weekly usage breakdown",value:`${packageName} usage --breakdown weekly`},{name:"Show usage grouped by project",value:`${packageName} usage --group-by project`},{name:"Show usage grouped by region",value:`${packageName} usage --group-by region`},{name:"Output usage data as JSON",value:`${packageName} usage --json`}]};var listSubcommand22={name:"list",aliases:["ls"],description:"Lists Vercel CLI versions available to install",arguments:[],options:[],examples:[]},installedSubcommand={name:"installed",aliases:[],description:"Lists installed Vercel CLI versions",arguments:[],options:[],examples:[]},useSubcommand={name:"use",aliases:["switch","install"],description:"Installs and switches to a specific Vercel CLI version",arguments:[{name:"version",required:!0}],options:[],examples:[{name:"Use a specific production version",value:`${packageName} version use 50.1.0`},{name:"Use the latest production version",value:`${packageName} version use latest`}]},checkSubcommand3={name:"check",aliases:[],description:"Check for native CLI updates in the background",arguments:[],options:[],examples:[]},updateSubcommand11={name:"update",aliases:["upgrade"],description:"Updates the Vercel CLI to the latest version",arguments:[],options:[],examples:[]},autoupdateSubcommand={name:"autoupdate",aliases:[],description:"Enables or disables automatic CLI updates",arguments:[{name:"enable|disable|status",required:!1}],options:[],examples:[{name:"Enable automatic updates",value:`${packageName} version autoupdate enable`},{name:"Show whether automatic updates are enabled",value:`${packageName} version autoupdate status`}]},versionCommand={name:"version",aliases:["versions"],description:"Manages the installed Vercel CLI version.",arguments:[],subcommands:[listSubcommand22,installedSubcommand,useSubcommand,updateSubcommand11,checkSubcommand3,autoupdateSubcommand],options:[],examples:[{name:"Show the current version and install details",value:`${packageName} version`},{name:"List installed versions",value:`${packageName} version installed`},{name:"Use a specific version",value:`${packageName} version use 50.1.0`}]};var whoamiCommand={name:"whoami",aliases:[],description:"Shows the username of the currently logged in user.",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Shows the username of the currently logged in user",value:`${packageName} whoami`}]};var ifMatchOption={name:"if-match",shorthand:null,type:String,deprecated:!1,description:"Only perform the operation if the blob's ETag matches this value",argument:"STRING"},ifNoneMatchOption={name:"if-none-match",shorthand:null,type:String,deprecated:!1,description:"Only return content if the blob's ETag does not match this value (returns 304 if unchanged)",argument:"STRING"},accessOption={name:"access",shorthand:"a",type:String,deprecated:!1,description:"Access level for the blob: public or private (required)",argument:"String",choices:["public","private"]},environmentOption4={name:"environment",shorthand:"e",type:[String],deprecated:!1,argument:"ENV",description:"Environment to connect (can be repeated: production, preview, development). Defaults to all when --yes is used."},listSubcommand23={name:"list",aliases:["ls"],description:"List all files in the Blob store",arguments:[],options:[{name:"limit",shorthand:"l",type:Number,deprecated:!1,description:"Number of results to return per page (default: 10, max: 1000)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Continue from a previous response",argument:"CURSOR"},{name:"cursor",shorthand:"c",type:String,deprecated:!0,description:"Cursor from previous page to start listing from",argument:"STRING"},{name:"prefix",shorthand:"p",type:String,deprecated:!1,description:"Prefix to filter Blobs by",argument:"STRING"},{name:"mode",shorthand:"m",type:String,deprecated:!1,description:"Mode to filter Blobs by either folded or expanded (default: expanded)",argument:"String",choices:["folded","expanded"]}],examples:[]},putSubcommand={name:"put",aliases:[],description:"Upload a file to the Blob store",arguments:[{name:"pathToFile",required:!0}],options:[accessOption,{name:"add-random-suffix",shorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name (default: false)",argument:"Boolean"},{name:"pathname",shorthand:"p",type:String,deprecated:!1,description:"Pathname to upload the file to (default: filename)",argument:"String"},{name:"multipart",shorthand:"u",type:Boolean,deprecated:!1,description:"If true upload the file in multiple small chunks for performance and reliability (default: true)",argument:"Boolean"},{name:"content-type",shorthand:"t",type:String,deprecated:!1,description:"Overwrite the content-type. Will be inferred from the file extension if not provided",argument:"String"},{name:"cache-control-max-age",shorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!1,description:"Overwrite the file if it already exists (default: false)",argument:"Boolean"},ifMatchOption],examples:[]},delSubcommand={name:"del",aliases:[],description:"Delete a file from the Blob store",arguments:[{name:"urlsOrPathnames",required:!0}],options:[ifMatchOption],examples:[]},copySubcommand={name:"copy",aliases:["cp"],description:"Copy a file in the Blob store",arguments:[{name:"fromUrlOrPathname",required:!0},{name:"toPathname",required:!0}],options:[accessOption,{name:"add-random-suffix",shorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name",argument:"Boolean"},{name:"content-type",shorthand:"t",type:String,deprecated:!1,description:"Overwrite the content-type. Will be inferred from the file extension if not provided",argument:"String"},{name:"cache-control-max-age",shorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},ifMatchOption],examples:[]},getSubcommand4={name:"get",aliases:[],description:"Download a blob by URL or pathname",arguments:[{name:"urlOrPathname",required:!0}],options:[accessOption,{name:"output",shorthand:"o",type:String,deprecated:!1,description:"Save blob content to a file instead of stdout",argument:"PATH"},ifNoneMatchOption],examples:[]},putImageSubcommand={name:"put-image",aliases:[],description:"Optimize an image with Vercel Image Optimization and store the result in the Blob store (requires OIDC credentials)",arguments:[{name:"pathToFileOrUrl",required:!0}],options:[accessOption,{name:"width",shorthand:"w",type:Number,deprecated:!1,description:"Width of the optimized image in pixels, between 1 and 8192 (required)",argument:"NUMBER"},{name:"quality",shorthand:"q",type:Number,deprecated:!1,description:"Quality of the optimized image, between 1 and 100 (default: 75)",argument:"NUMBER"},{name:"format",shorthand:"F",type:String,deprecated:!1,description:"Output format: jpeg, png, webp, or avif. Keeps the original format when omitted",argument:"FORMAT",choices:["jpeg","png","webp","avif"]},{name:"pathname",shorthand:"p",type:String,deprecated:!1,description:"Pathname to store the optimized image at in the Blob store (required)",argument:"String"},{name:"add-random-suffix",shorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name (default: false)",argument:"Boolean"},{name:"cache-control-max-age",shorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!1,description:"Overwrite the file if it already exists (default: false)",argument:"Boolean"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the stored blob as JSON"}],examples:[{name:"Optimize a local image and upload it",value:"vercel blob put-image photo.png --pathname images/photo.png --width 1200 --access public"},{name:"Optimize an image from a public URL and convert it to WebP",value:"vercel blob put-image https://example.com/hero.png --pathname images/hero.webp --width 800 --quality 60 --format webp --access public"}]},signedTokenSubcommand={name:"signed-token",aliases:[],description:"Issue a short-lived signed token for Blob operations",arguments:[],options:[{name:"pathname",shorthand:"p",type:String,deprecated:!1,description:'Pathname scope for the token. Defaults to "*" when omitted',argument:"STRING"},{name:"operation",shorthand:"o",type:[String],deprecated:!1,description:"Allowed operation(s): get, head, put, delete (repeatable)",argument:"OPERATION",choices:["get","head","put","delete"]},{name:"valid-until",shorthand:null,type:Number,deprecated:!1,description:"Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",argument:"TIMESTAMP_MS"},{name:"valid-for",shorthand:null,type:String,deprecated:!1,description:"Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",argument:"DURATION"},{name:"allowed-content-type",shorthand:null,type:[String],deprecated:!1,description:"Allowed content type(s) for put operations (repeatable, supports wildcards)",argument:"MIME_TYPE"},{name:"maximum-size-in-bytes",shorthand:null,type:Number,deprecated:!1,description:"Maximum upload size in bytes for put operations (max: 5TB)",argument:"BYTES"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output signed token payload as JSON"}],examples:[{name:"Issue a signed token for reads",value:"vercel blob signed-token --pathname media/photo.jpg --operation get"},{name:"Issue a signed token for uploads with constraints",value:"vercel blob signed-token --pathname uploads/* --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"}]},presignSubcommand={name:"presign",aliases:[],description:"Generate a presigned URL for Blob operations",arguments:[{name:"pathname",required:!0}],options:[accessOption,{name:"operation",shorthand:"o",type:String,deprecated:!1,description:"Operation for the presigned URL: get, head, put, or delete (default: get)",argument:"OPERATION",choices:["get","head","put","delete"]},{name:"delegation-token",shorthand:null,type:String,deprecated:!1,description:"Delegation token from `vercel blob signed-token` (must be used with --client-signing-token)",argument:"STRING"},{name:"client-signing-token",shorthand:null,type:String,deprecated:!1,description:"Signing secret/token from `vercel blob signed-token` (must be used with --delegation-token)",argument:"STRING"},{name:"valid-until",shorthand:null,type:Number,deprecated:!1,description:"Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",argument:"TIMESTAMP_MS"},{name:"valid-for",shorthand:null,type:String,deprecated:!1,description:"Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",argument:"DURATION"},{name:"if-match",shorthand:null,type:String,deprecated:!1,description:"If-Match constraint for put or delete operations",argument:"STRING"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!1,description:"Allow overwriting existing blobs (put only)"},{name:"add-random-suffix",shorthand:null,type:Boolean,deprecated:!1,description:"Add a random suffix to the pathname (put only)"},{name:"cache-control-max-age",shorthand:null,type:Number,deprecated:!1,description:"Cache-Control max-age in seconds (put only)",argument:"SECONDS"},{name:"allowed-content-type",shorthand:null,type:[String],deprecated:!1,description:"Allowed content type(s) for uploads (put only, repeatable)",argument:"MIME_TYPE"},{name:"maximum-size-in-bytes",shorthand:null,type:Number,deprecated:!1,description:"Maximum upload size in bytes (put only, max: 5TB)",argument:"BYTES"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output presign result as JSON"}],examples:[{name:"Generate a presigned GET URL",value:"vercel blob presign media/photo.jpg --access public"},{name:"Generate a presigned PUT URL with upload constraints",value:"vercel blob presign uploads/image.jpg --access private --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"},{name:"Generate a presigned URL from existing signed-token output",value:"vercel blob presign uploads/image.jpg --access private --operation put --delegation-token <delegationToken> --client-signing-token <clientSigningToken>"}]},createStoreSubcommand={name:"create-store",aliases:[],description:"Create a new Blob store",arguments:[{name:"name",required:!1}],options:[accessOption,{name:"region",shorthand:"r",type:String,deprecated:!1,description:'Region to create the Blob store in (default: "iad1"). See https://vercel.com/docs/edge-network/regions#region-list for all available regions',argument:"STRING"},yesOption,environmentOption4],examples:[{name:'Create a blob store (uses default region "iad1")',value:"vercel blob create-store my-store --access private"},{name:"Create a blob store in a specific region",value:"vercel blob create-store my-store --access private --region cdg1"},{name:"Create and connect to project in CI",value:"vercel blob create-store my-store --access private --yes --environment production --environment preview"}]},deleteStoreSubcommand={name:"delete-store",aliases:[],description:"Delete a Blob store",arguments:[{name:"storeId",required:!1}],options:[],examples:[]},emptyStoreSubcommand={name:"empty-store",aliases:[],description:"Delete all blobs in a Blob store",arguments:[],options:[yesOption],examples:[]},getStoreInfoSubcommand={name:"get-store",aliases:[],description:"Get a Blob store",arguments:[{name:"storeId",required:!1}],options:[],examples:[]},listStoresSubcommand={name:"list-stores",aliases:["ls-stores"],description:"List all Blob stores",arguments:[],options:[{name:"all",shorthand:"a",type:Boolean,deprecated:!1,description:"List all blob stores for the team, not just the ones connected to the current project"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output results as JSON"},{name:"no-projects",shorthand:null,type:Boolean,deprecated:!1,description:"Hide the Projects column (table output only)"}],examples:[{name:"List blob stores for the linked project",value:"vercel blob list-stores"},{name:"List all team blob stores as JSON",value:"vercel blob list-stores --all --json"}]},blobCommand={name:"blob",aliases:[],description:"Interact with Vercel Blob",arguments:[],subcommands:[listSubcommand23,putSubcommand,putImageSubcommand,getSubcommand4,delSubcommand,copySubcommand,signedTokenSubcommand,presignSubcommand,createStoreSubcommand,deleteStoreSubcommand,getStoreInfoSubcommand,listStoresSubcommand,emptyStoreSubcommand],options:[{name:"rw-token",shorthand:null,type:String,deprecated:!1,description:"Read_Write_Token for the Blob store",argument:"String"},{name:"oidc-token",shorthand:null,type:String,deprecated:!1,description:"OIDC token for the Blob store (must be passed together with --store-id)",argument:"String"},{name:"store-id",shorthand:null,type:String,deprecated:!1,description:'Blob store id, with or without the "store_" prefix (must be passed together with --oidc-token)',argument:"String"}],examples:[]};var inspectSubcommand10={name:"inspect",aliases:["overview"],description:"Show this cycle's on-demand spend against Spend Management",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"Show this cycle's on-demand spend against Spend Management",value:`${packageName} budgets`}]},listSubcommand24={name:"list",aliases:["ls"],description:"List Spend Management budgets for this team",arguments:[],options:[formatOption,jsonOption],examples:[{name:"List Spend Management budgets",value:`${packageName} budgets ls`}]},setSubcommand3={name:"set",aliases:["update"],description:"Create or update this team's Spend Management budget",arguments:[],options:[{name:"amount",shorthand:null,type:Number,argument:"DOLLARS",deprecated:!1,description:"Budget amount in whole dollars (minimum 1). Creates with 50/75/100% alerts and notifications on; updates keep pause and webhook settings unless those flags are also passed"},{name:"pause",shorthand:null,type:Boolean,deprecated:!1,description:"Pause all projects and production deployments at 100% of the budget amount"},{name:"no-pause",shorthand:null,type:Boolean,deprecated:!1,description:"Do not pause all projects or their production deployments when the budget is reached"},{name:"webhook",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Webhook URL to notify when a threshold is reached"},{name:"no-webhook",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the budget webhook"},formatOption,jsonOption],examples:[{name:"Create a $500 budget with default 50/75/100% alerts",value:`${packageName} budgets set --amount 500`},{name:"Change the budget amount",value:`${packageName} budgets set --amount 800`},{name:"Pause all projects and production deployments at 100% of the existing budget",value:`${packageName} budgets set --pause`},{name:"Notify a webhook without changing the amount",value:`${packageName} budgets set --webhook https://example.com/hook`},{name:"Remove the webhook",value:`${packageName} budgets set --no-webhook`}]},removeSubcommand16={name:"remove",aliases:["rm","delete","disable"],description:"Disable this team's Spend Management budget",arguments:[],options:[yesOption,formatOption,jsonOption],examples:[{name:"Disable the Spend Management budget without confirmation",value:`${packageName} budgets rm --yes`}]},budgetCommand={name:"budgets",aliases:["budget"],description:"Show and manage Spend Management for on-demand charges after included credit",arguments:[],subcommands:[inspectSubcommand10,listSubcommand24,setSubcommand3,removeSubcommand16],options:[],examples:[{name:"Show this cycle's on-demand spend against Spend Management",value:`${packageName} budgets`},{name:"Set a $500 budget that pauses all projects and production deployments at 100%",value:`${packageName} budgets set --amount 500 --pause`},{name:"Pause all projects and production deployments at 100% of the existing budget",value:`${packageName} budgets set --pause`},{name:"Disable the Spend Management budget",value:`${packageName} budgets rm --yes`}]};var listSubcommand25={name:"list",aliases:["ls"],description:"Show all webhooks",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"List all webhooks as JSON",value:`${packageName} webhooks ls --json`}]},getSubcommand5={name:"get",aliases:["inspect"],description:"Displays information related to a webhook",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[]},createSubcommand8={name:"create",aliases:["add"],description:"Create a new webhook",arguments:[{name:"url",required:!0}],options:[{name:"event",shorthand:"e",type:[String],argument:"EVENT",deprecated:!1,description:"Webhook event to subscribe to (can be used multiple times)"},{name:"project",shorthand:"p",type:[String],argument:"PROJECT_ID",deprecated:!1,description:"Project ID to associate with the webhook (can be used multiple times)"}],examples:[{name:"Create a webhook for deployment events",value:`${packageName} webhooks create https://example.com/webhook --event deployment.created --event deployment.ready`}]},removeSubcommand17={name:"remove",aliases:["rm","delete"],description:"Remove a webhook",arguments:[{name:"id",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing a webhook"}],examples:[]},webhooksCommand={name:"webhooks",aliases:["webhook"],description:"Manage webhooks",arguments:[],subcommands:[listSubcommand25,getSubcommand5,createSubcommand8,removeSubcommand17],options:[],examples:[]};var commandsStructs=[agentCommand,agentRunsCommand,aiGatewayCommand,alertsCommand,aliasCommand,activityCommand,apiCommand,blobCommand,budgetCommand,bisectCommand,buildCommand,buildersCommand,buyCommand,cacheCommand,certsCommand,changelogCommand,commentsCommand,contractCommand,cronsCommand,curlCommand,deployCommand,deployHooksCommand,devCommand,dnsCommand,domainsCommand,envCommand,experimentsCommand,firewallCommand,flagsCommand,gitCommand,globalConfigCommand,httpstatCommand,initCommand,inspectCommand,installCommand,integrationCommand,integrationResourceCommand,kmsCommand,linkCommand,listCommand,loginCommand,logoutCommand,logsCommand,mcpCommand,microfrontendsCommand,openCommand,projectCommand,promoteCommand,pullCommand,redeployCommand,redirectsCommand,removeCommand,routesCommand,rollbackCommand,rollingReleaseCommand,sandboxCommand,schedulesCommand,securityCommand,setupCommand,signupCommand,skillsCommand,storageCommand,targetCommand,teamsCommand,tokensCommand,telemetryCommand,tracesCommand,upgradeCommand,webhooksCommand,usageCommand,vcrCommand,versionCommand,whoamiCommand,{name:"help",aliases:[]}];process.env.FF_GUIDANCE_MODE&&commandsStructs.push(guidanceCommand);commandsStructs.push(metricsCommand);commandsStructs.push(connexCommand);function getCommandAliases(command){return[command.name].concat(command.aliases)}function isHiddenCommand(name){let canonicalName=commands.get(name);return commandsStructs.some(command=>command.name===canonicalName&&"hidden"in command&&command.hidden===!0)}var commands=new Map;for(let command of commandsStructs){let aliases=getCommandAliases(command);output_manager_default.debug(`Registering command ${command.name} with aliases: ${JSON.stringify(aliases)}`);for(let alias of aliases)output_manager_default.debug(`Setting alias ${alias} -> ${command.name}`),commands.set(alias,command.name)}output_manager_default.debug(`All registered commands: ${JSON.stringify(Array.from(commands.entries()))}`);var commandNames=commandsStructs.flatMap(command=>"hidden"in command&&command.hidden?[]:getCommandAliases(command));export{agentCommand,listSubcommand,inspectSubcommand,traceSubcommand,projectsSubcommand,agentRunsCommand,createSubcommand,listSubcommand2,inspectSubcommand2,removeSubcommand,apiKeysSubcommand,rulesAddSubcommand,rulesListSubcommand,rulesEditSubcommand,rulesRemoveSubcommand,rulesSubcommand,setupSubcommand,codingAgentsSubcommand,modelsListSubcommand,modelsEndpointsSubcommand,modelsSubcommand,budgetsSetSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,leaderboardModelsSubcommand,budgetsDefaultsListSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSubcommand,budgetsSubcommand,leaderboardLabsSubcommand,leaderboardAppsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,virtualModelsListSubcommand,virtualModelsInspectSubcommand,virtualModelsCreateSubcommand,virtualModelsEditSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand,virtualModelsSubcommand,aiGatewayCommand,setSubcommand,listSubcommand3,removeSubcommand2,aliasCommand,bisectCommand,preinstallSubcommand,buildersCommand,isCustomEnvironmentAddonAlias,SUPPORTED_CREDIT_TYPES,CREDIT_TYPE_LABELS,creditsSubcommand,SUPPORTED_ADDON_NAMES,addonSubcommand,proSubcommand,domainSubcommand,buyCommand,purgeSubcommand,invalidateSubcommand,dangerouslyDeleteSubcommand,cacheCommand,removeSubcommand3,issueSubcommand,listSubcommand4,addSubcommand2 as addSubcommand,certsCommand,searchSubcommand,changelogCommand,createSubcommand2,updateSubcommand,listSubcommand5,removeSubcommand4,tokenSubcommand,revokeTokensSubcommand,openSubcommand,attachSubcommand,detachSubcommand,contactsAddSubcommand,contactsSubcommand,connexCommand,contractCommand,addSubcommand3 as addSubcommand2,listSubcommand6,runSubcommand,cronsCommand,curlCommand,deprecatedArchiveSplitTgz,initSubcommand,continueSubcommand,deployCommand,listSubcommand7,createSubcommand3,removeSubcommand5,deployHooksCommand,importSubcommand,listSubcommand8,addSubcommand4 as addSubcommand3,inspectSubcommand3,removeSubcommand6,updateSubcommand2,dnsCommand,listSubcommand9,inspectSubcommand4,addSubcommand5 as addSubcommand4,removeSubcommand7,priceSubcommand,searchSubcommand2,buySubcommand,checkSubcommand,moveSubcommand,transferInSubcommand,autoRenewSubcommand,renewSubcommand,verifySubcommand,domainsCommand,listSubcommand10,inspectSubcommand5,createSubcommand4,updateSubcommand3,startSubcommand,setRampSubcommand,restartAnalysisSubcommand,reseedEnrollmentSubcommand,returnToDraftSubcommand,decideSubcommand,analyzeSubcommand,diagnoseSubcommand,openSubcommand2,deleteSubcommand,experimentsCommand,overviewSubcommand,statusSubcommand,diffSubcommand,publishSubcommand,discardSubcommand,systemBypassListSubcommand,systemBypassAddSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,ipBlocksListSubcommand,ipBlocksBlockSubcommand,ipBlocksUnblockSubcommand,ipBlocksSubcommand,rulesListSubcommand2,rulesInspectSubcommand,rulesAddSubcommand2,rulesEditSubcommand2,rulesEnableSubcommand,rulesDisableSubcommand,rulesRemoveSubcommand2,rulesReorderSubcommand,rulesSubcommand2,attackModeEnableSubcommand,attackModeDisableSubcommand,attackModeSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,alertsListSubcommand,alertsInspectSubcommand,alertsSubcommand,persistentActionsListSubcommand,persistentActionsInspectSubcommand,persistentActionsSubcommand,trafficListSubcommand,trafficInspectSubcommand,botManagementSubcommand,trafficSubcommand,firewallCommand,FLAG_ATTRIBUTE_TYPES,isFlagAttributeType,formatFlagAttributeTypeList,isTimestampAttributeType,isBucketingAttribute,getFlagAttributeType,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,formatFlagConditionComparatorList,formatFlagConditionComparator,FLAG_EVALUATIONS_GRANULARITIES,isFlagEvaluationsGranularity,listSubcommand11,staleSubcommand,inspectSubcommand6,versionsListSubcommand,versionsDiffSubcommand,versionsSubcommand,evaluationsSubcommand,createSubcommand5,openSubcommand3,updateSubcommand4,setSubcommand2,useTargetingSubcommand,splitSubcommand,rolloutSubcommand,rulesListSubcommand3,rulesAddSubcommand3,rulesUpdateSubcommand,rulesRemoveSubcommand3,rulesMoveSubcommand,rulesSubcommand3,removeSubcommand8,archiveSubcommand,unarchiveSubcommand,disableSubcommand,enableSubcommand,segmentsListSubcommand,segmentsInspectSubcommand,segmentsCreateSubcommand,segmentsUpdateSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,entitiesListSubcommand,entitiesCreateSubcommand,entitiesUpdateSubcommand,entitiesRemoveSubcommand,labelsListSubcommand,labelsSubcommand,entitiesSubcommand,sdkKeysListSubcommand,sdkKeysAddSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,prepareSubcommand,overrideSubcommand,flagsCommand,connectSubcommand,disconnectSubcommand,gitCommand,listSubcommand12,addSubcommand6 as addSubcommand5,getSubcommand,updateSubcommand5,removeSubcommand9,itemsSubcommand,tokensSubcommand,backupsSubcommand,globalConfigCommand,statusSubcommand2,enableSubcommand2,disableSubcommand2,guidanceCommand,httpstatCommand,initCommand,inspectCommand,removeSubcommand10,disconnectSubcommand2,connectSubcommand2,createThresholdSubcommand,claimSubcommand,inspectSubcommand7,integrationResourceCommand,addSubcommand7 as addSubcommand6,acceptTermsSubcommand,openSubcommand4,installationsSubcommand,listSubcommand13,discoverSubcommand,categoriesSubcommand,balanceSubcommand,updateSubcommand6,removeSubcommand11,guideSubcommand,resourceSubcommand,integrationCommand,installCommand,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,isProjectGrant,issuerUrl,issuerJwksUrl,listSubcommand14,inspectSubcommand8,addSubcommand8 as addSubcommand7,importSubcommand2,updateSubcommand7,removeSubcommand12,addKeySubcommand,importKeySubcommand,activateKeySubcommand,revokeKeySubcommand,addGrantSubcommand,updateGrantSubcommand,removeGrantSubcommand,kmsCommand,addSubcommand as addSubcommand8,linkCommand,logoutCommand,mcpCommand,createGroupSubcommand,addToGroupSubcommand,removeFromGroupSubcommand,deleteGroupSubcommand,pullSubcommand,inspectGroupSubcommand,microfrontendsCommand,openCommand,addSubcommand9,checksAddFlags,checksRemoveFlags,checksSubcommand,inspectSubcommand9,listSubcommand15,pauseSubcommand,resumeSubcommand,removeSubcommand13,renameSubcommand,updateSubcommand8,tokenSubcommand2,accessSummarySubcommand,membersRemoveFlags,PROJECT_MEMBER_ROLES,membersAddFlags,membersSubcommand,protectionSubcommand,accessGroupsSubcommand,webAnalyticsSubcommand,speedInsightsSubcommand,observabilitySubcommand,projectCommand,statusSubcommand3,promoteCommand,redeployCommand,listSubcommand16,listVersionsSubcommand,addSubcommand10,uploadSubcommand,removeSubcommand14,promoteSubcommand,restoreSubcommand,redirectsCommand,removeCommand,statusSubcommand4,rollbackCommand,configureSubcommand,startSubcommand2,approveSubcommand,abortSubcommand,completeSubcommand,fetchSubcommand,rollingReleaseCommand,createSubcommand6,updateSubcommand9,enableSubcommand3,disableSubcommand3,invokeSubcommand,deleteSubcommand2,listSubcommand17,getSubcommand2,schedulesCommand,checkSubcommand2,securityCommand,setupCommand,signupCommand,skillsCommand,getStorageStores,getStorageStore,resolveStore,storeSupportsOidc,storeProductLabel,getConnections,resolveProjectConnection,findOverlappingConnections,STORAGE_PROVIDERS,listStorageProviderTypes,getStorageProvider,storeTypeName,storeMatchesType,findForeignCreateFlags,loadStoreDetails,connectSubcommand3,statusSubcommand5,updateSubcommand10,disconnectSubcommand3,listSubcommand18,createSubcommand7,getSubcommand3,deleteSubcommand3,storageCommand,listSubcommand19,targetCommand,requestSubcommand,addSubcommand11,listSubcommand20,switchSubcommand,inviteSubcommand,ssoSubcommand,membersSubcommand2,teamsCommand,listSubcommand21,addSubcommand12,removeSubcommand15,tokensCommand,statusSubcommand6,enableSubcommand4,flushSubcommand,disableSubcommand4,telemetryCommand,upgradeCommand,usageCommand,listSubcommand22,installedSubcommand,useSubcommand,checkSubcommand3,updateSubcommand11,autoupdateSubcommand,versionCommand,whoamiCommand,listSubcommand23,putSubcommand,delSubcommand,copySubcommand,getSubcommand4,putImageSubcommand,signedTokenSubcommand,presignSubcommand,createStoreSubcommand,deleteStoreSubcommand,emptyStoreSubcommand,getStoreInfoSubcommand,listStoresSubcommand,blobCommand,inspectSubcommand10,listSubcommand24,setSubcommand3,removeSubcommand16,budgetCommand,listSubcommand25,getSubcommand5,createSubcommand8,removeSubcommand17,webhooksCommand,commandsStructs,getCommandAliases,isHiddenCommand,commands};
|