{
  "commands": {
    "ai": {
      "aliases": [],
      "args": {},
      "description": "AI-powered assistant that helps you launch the right AI agent.",
      "examples": [
        {
          "description": "Launch the AI assistant to help pick the right agent.",
          "command": "<%= config.bin %> <%= command.id %>"
        },
        {
          "description": "Use a specific model for the launcher assistant.",
          "command": "<%= config.bin %> <%= command.id %> --model claude-sonnet-4.5"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "aliasFile": {
          "description": "Path to the agent-aliases.sh file. Defaults to the AI-enabled Codespace locations.",
          "env": "FLUB_AI_ALIAS_FILE",
          "name": "aliasFile",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "githubToken": {
          "description": "GitHub token for the launcher assistant. Defaults to COPILOT_GITHUB_TOKEN, GH_TOKEN, or GITHUB_TOKEN.",
          "env": "COPILOT_GITHUB_TOKEN",
          "name": "githubToken",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "launchFile": {
          "description": "Write the launch command to this file instead of executing it. Used by shell wrappers to run the alias as a separate process.",
          "name": "launchFile",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "The AI model to use for the launcher assistant. Defaults to the model specified in launcher-prompt.md frontmatter.",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "ai",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "ai.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "ai"
      ]
    },
    "bump": {
      "aliases": [],
      "args": {
        "package_or_release_group": {
          "description": "The name of a package or a release group.",
          "name": "package_or_release_group",
          "required": true
        }
      },
      "description": "The bump command is used to bump the version of a release groups or individual packages within the repo. Typically this is done as part of the release process (see the release command), but it is sometimes useful to bump without doing a release, for example when moving a package from one release group to another.",
      "examples": [
        {
          "description": "Bump @fluidframework/build-common to the next minor version.",
          "command": "<%= config.bin %> <%= command.id %> @fluidframework/build-common -t minor"
        },
        {
          "description": "Bump the server release group to the next major version, forcing the semver version scheme.",
          "command": "<%= config.bin %> <%= command.id %> server -t major --scheme semver"
        },
        {
          "description": "By default, the bump command will run npm install in any affected packages and commit the results to a new branch. You can skip these steps using the --no-commit and --no-install flags.",
          "command": "<%= config.bin %> <%= command.id %> server -t major --no-commit --no-install"
        },
        {
          "description": "You can control how interdependencies between packages in a release group are expressed using the --interdependencyRange flag.",
          "command": "<%= config.bin %> <%= command.id %> client --exact 2.0.0-internal.4.1.0 --interdependencyRange \"~\""
        },
        {
          "description": "You can set interdependencies using the workspace protocol as well. The interdependency range will be set to the workspace string specified.",
          "command": "<%= config.bin %> <%= command.id %> client --exact 2.0.0-internal.4.1.0 --interdependencyRange \"workspace:~\""
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "bumpType": {
          "char": "t",
          "description": "Bump the release group or package to the next version according to this bump type.",
          "exclusive": [
            "exact"
          ],
          "name": "bumpType",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "major",
            "minor",
            "patch"
          ],
          "type": "option"
        },
        "exact": {
          "description": "An exact string to use as the version. The string must be a valid semver version string.",
          "exclusive": [
            "bumpType",
            "scheme"
          ],
          "name": "exact",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "scheme": {
          "description": "Override the version scheme used by the release group or package.",
          "exclusive": [
            "exact"
          ],
          "name": "scheme",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "semver",
            "internal",
            "virtualPatch"
          ],
          "type": "option"
        },
        "exactDepType": {
          "deprecated": {
            "to": "interdependencyRange",
            "message": "The exactDepType flag is deprecated. Use interdependencyRange instead.",
            "version": "0.16.0"
          },
          "description": "[DEPRECATED - Use interdependencyRange instead.] Controls the type of dependency that is used between packages within the release group. Use \"\" to indicate exact dependencies.",
          "name": "exactDepType",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "^",
            "~",
            "",
            "workspace:*",
            "workspace:^",
            "workspace:~"
          ],
          "type": "option"
        },
        "interdependencyRange": {
          "char": "d",
          "description": "Controls the type of dependency that is used between packages within the release group. Use \"\" (the empty string) to indicate exact dependencies. Use the workspace:-prefixed values to set interdependencies using the workspace protocol. The interdependency range will be set to the workspace string specified.",
          "name": "interdependencyRange",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "^",
            "~",
            "",
            "workspace:*",
            "workspace:^",
            "workspace:~"
          ],
          "type": "option"
        },
        "updateAllDeps": {
          "description": "Controls the behavior for updating dependencies in a package. If \"false\" (the default), matching dependencies are only updated if they use the \"workspace:\" protocol. If \"true\", they are updated regardless of what their version specifier says. This flag only exists to allow use of the old behavior (by passing `--updateAllDeps).",
          "env": "FLUB_BUMP_UPDATE_ALL_DEPS",
          "name": "updateAllDeps",
          "allowNo": false,
          "type": "boolean"
        },
        "commit": {
          "description": "Commit changes to a new branch.",
          "name": "commit",
          "allowNo": true,
          "type": "boolean"
        },
        "install": {
          "description": "Update lockfiles by running 'npm install' automatically.",
          "name": "install",
          "allowNo": true,
          "type": "boolean"
        },
        "skipChecks": {
          "char": "x",
          "description": "Skip all checks.",
          "exclusive": [
            "install",
            "commit",
            "branchCheck",
            "updateCheck",
            "policyCheck"
          ],
          "name": "skipChecks",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "bump",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Bumps the version of a release group or package to the next minor, major, or patch version, or to a specific version, with control over the interdependency version ranges.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "bump.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "bump"
      ]
    },
    "exec": {
      "aliases": [],
      "args": {
        "cmd": {
          "description": "The shell command to execute.",
          "name": "cmd",
          "required": true
        }
      },
      "description": "Run a shell command in the context of a package or release group.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "exec",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "exec.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "exec"
      ]
    },
    "info": {
      "aliases": [],
      "args": {},
      "description": "Get info about the repo, release groups, and packages.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "name": "releaseGroup",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "columns": {
          "char": "c",
          "description": "Specify which columns are included in report.",
          "name": "columns",
          "default": [
            "releaseGroup",
            "name",
            "private",
            "version"
          ],
          "delimiter": ",",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "releaseGroup",
            "name",
            "private",
            "version",
            "path"
          ],
          "type": "option"
        },
        "private": {
          "char": "p",
          "description": "Include private packages (default true).",
          "name": "private",
          "required": false,
          "allowNo": true,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "info",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "info.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "info"
      ]
    },
    "list": {
      "aliases": [],
      "args": {
        "package_or_release_group": {
          "description": "The name of a package or a release group.",
          "name": "package_or_release_group",
          "required": false
        }
      },
      "description": "List packages in a release group in topological order.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "deprecated": {
            "message": "The --releaseGroup flag is no longer needed. You can pass either a release group or package name directly as an argument."
          },
          "description": "Name of a release group.",
          "exclusive": [
            "package"
          ],
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "feed": {
          "description": "Filter the resulting packages to those that should be published to a particular npm feed. Use 'public' for public npm. The 'official' and 'internal' values are deprecated and should not be used.",
          "helpGroup": "PACKAGE FILTER",
          "name": "feed",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "internal-build",
            "internal-test",
            "internal-dev",
            "official",
            "internal"
          ],
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "tarball": {
          "description": "Return packed tarball names (without extension) instead of package names. @-signs will be removed from the name, and slashes are replaced with dashes.",
          "name": "tarball",
          "allowNo": false,
          "type": "boolean"
        },
        "outFile": {
          "description": "Output file to write the list of packages to. If not specified, the list will be written to stdout.",
          "name": "outFile",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "list",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "list.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "list"
      ]
    },
    "release": {
      "aliases": [],
      "args": {},
      "description": "The release command ensures that a release branch is in good condition, then walks the user through releasing a package or release group.\n\n    The command runs a number of checks automatically to make sure the branch is in a good state for a release. If any of the dependencies are also in the repo, then they're checked for the latest release version. If the dependencies have not yet been released, then the command prompts to perform the release of the dependency, then run the release command again.\n\n    This process is continued until all the dependencies have been released, after which the release group itself is released.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "exclusive": [
            "package"
          ],
          "name": "releaseGroup",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "package": {
          "char": "p",
          "description": "Name of package. You can use scoped or unscoped package names. For example, both @fluid-tools/benchmark and benchmark are valid.",
          "exclusive": [
            "releaseGroup"
          ],
          "name": "package",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "bumpType": {
          "char": "t",
          "description": "Version bump type.",
          "name": "bumpType",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "major",
            "minor",
            "patch"
          ],
          "type": "option"
        },
        "skipChecks": {
          "char": "x",
          "description": "Skip all checks.",
          "exclusive": [
            "install",
            "commit",
            "branchCheck",
            "updateCheck",
            "policyCheck"
          ],
          "name": "skipChecks",
          "allowNo": false,
          "type": "boolean"
        },
        "commit": {
          "description": "Commit changes to a new branch.",
          "name": "commit",
          "allowNo": true,
          "type": "boolean"
        },
        "install": {
          "description": "Update lockfiles by running 'npm install' automatically.",
          "name": "install",
          "allowNo": true,
          "type": "boolean"
        },
        "branchCheck": {
          "description": "Check that the current branch is correct.",
          "name": "branchCheck",
          "allowNo": true,
          "type": "boolean"
        },
        "updateCheck": {
          "description": "Check that the local repo is up to date with the remote.",
          "name": "updateCheck",
          "allowNo": true,
          "type": "boolean"
        },
        "policyCheck": {
          "description": "Check that the local repo complies with all policy.",
          "name": "policyCheck",
          "allowNo": true,
          "type": "boolean"
        },
        "testMode": {
          "description": "Enables test mode. This flag enables other flags used for testing.",
          "helpGroup": "TESTING",
          "hidden": true,
          "name": "testMode",
          "allowNo": false,
          "type": "boolean"
        },
        "state": {
          "dependsOn": [
            "testMode"
          ],
          "description": "A state to start in when the command initializes. Used to test the processing of specific states.",
          "hidden": true,
          "name": "state",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Releases a package or release group.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release"
      ]
    },
    "rename-types": {
      "aliases": [],
      "args": {},
      "description": "Renames type declaration files from .d.ts to .d.mts.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "rename-types",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "rename-types.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "rename-types"
      ]
    },
    "test-only-filter": {
      "aliases": [],
      "args": {},
      "description": "This command outputs JSON containing metadata about the packages selected and filtered. This output is parsed in tests. While the --json flag is technically optional, it should always be passed when using this command for testing. Otherwise there is no output to be checked for correctness.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hidden": true,
      "hiddenAliases": [],
      "id": "test-only-filter",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "FOR INTERNAL TESTING ONLY. This command is used only to test the common package filtering and selection logic that is used across the CLI. FOR INTERNAL TESTING ONLY.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "test-only-filter.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "test-only-filter"
      ]
    },
    "typetests": {
      "aliases": [],
      "args": {},
      "description": "Updates configuration for type tests in package.json files. If the previous version changes after running preparation, then npm install must be run before building.\n\n    Optionally, any type tests that are marked \"broken\" in package.json can be reset using the --reset flag during configuration. This is useful when resetting the type tests to a clean state, such as after a release.\n\n    To learn more about how to configure type tests, see the detailed documentation at <https://github.com/microsoft/FluidFramework/blob/main/build-tools/packages/build-cli/docs/typetestDetails.md>.",
      "examples": [
        {
          "description": "Update type test configuration in package.json for all packages in the client. This is what would be run for client minor releases on both the release branch and the main branch after the version bump and publishing of the first point release of that minor.",
          "command": "<%= config.bin %> <%= command.id %> -g client --reset --previous"
        },
        {
          "description": "Disable type tests and cleanup anything left related to them in the package.json other than the disable flag.",
          "command": "<%= config.bin %> <%= command.id %> --reset --normalize --disable"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "reset": {
          "description": "Resets the broken type test settings in package.json.",
          "name": "reset",
          "allowNo": false,
          "type": "boolean"
        },
        "previous": {
          "char": "p",
          "description": "Use the version immediately before the current version.\n\nThis is done by decrementing the least significant non-zero component (as separated by \".\").\n\nThis means that \"1.2.3\" to \"1.2.2\" and \"1.2.0\" to \"1.1.0\".\n\nThis usually produces the version of the release that was made closest to the current version from a branch perspective.\nFor example if the version on main is \"1.2.3\",\nthe closest release history wise would be the first release of the previous minor, so \"1.1.0\" even if there were other point releases on the \"1.1\" branch.\n\nIf targeting prerelease versions, skipping versions, or using skipping some alternative numbering scheme use \"--exact\" to specify the desired version instead.\n\t\t\t",
          "exclusive": [
            "exact",
            "remove",
            "disable"
          ],
          "name": "previous",
          "allowNo": false,
          "type": "boolean"
        },
        "remove": {
          "char": "r",
          "description": "Remove the test \"-previous\" version dependency. This is also done implicitly (without this flag) if type tests are disabled.",
          "exclusive": [
            "exact",
            "previous"
          ],
          "name": "remove",
          "allowNo": false,
          "type": "boolean"
        },
        "exact": {
          "description": "An exact string to use as the previous version constraint. The string will be used as-is.",
          "exclusive": [
            "remove",
            "previous",
            "disable"
          ],
          "name": "exact",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "enable": {
          "description": "Remove the \"typeValidation.disabled\" setting in the package.json.",
          "name": "enable",
          "allowNo": false,
          "type": "boolean"
        },
        "disable": {
          "description": "Set the \"typeValidation.disabled\" setting to \"true\" in the package.json.",
          "exclusive": [
            "enable"
          ],
          "name": "disable",
          "allowNo": false,
          "type": "boolean"
        },
        "normalize": {
          "char": "n",
          "description": "Normalizes type test configuration in package.json. Removes unrecognized data from \"typeValidation\" and adds any missing default settings. Also updates the \"typetests:gen\" script: adds or replaces it when type tests are enabled, or removes it when disabled.",
          "exclusive": [
            "enable"
          ],
          "name": "normalize",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "typetests",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "typetests.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "typetests"
      ]
    },
    "build-perf:check": {
      "aliases": [],
      "args": {},
      "description": "Check build performance thresholds and fail if exceeded.",
      "examples": [
        {
          "description": "Check thresholds for public (PR) builds.",
          "command": "<%= config.bin %> <%= command.id %> --mode public --inputDir ./data --avgDurationThreshold 90 --changePeriodThreshold 15"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "mode": {
          "description": "Pipeline mode: \"public\" (PR builds) or \"internal\".",
          "env": "MODE",
          "name": "mode",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "internal"
          ],
          "type": "option"
        },
        "inputDir": {
          "description": "Directory containing the data JSON files (generated from the collect command).",
          "env": "DATA_DIR",
          "name": "inputDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "avgDurationThreshold": {
          "description": "Maximum acceptable average build duration in minutes.",
          "env": "AVG_DURATION_THRESHOLD",
          "name": "avgDurationThreshold",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "changePeriodThreshold": {
          "description": "Maximum acceptable percentage change (0-100) over the relevant period (3 days for public, 7 days for internal). E.g. 15 means ±15%.",
          "env": "CHANGE_PERIOD_THRESHOLD",
          "name": "changePeriodThreshold",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "forceFailure": {
          "description": "Force a failure (for testing notifications).",
          "env": "FORCE_FAILURE",
          "name": "forceFailure",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "build-perf:check",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "build-perf",
        "check.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "build-perf:check",
        "check:build-perf"
      ]
    },
    "build-perf:collect": {
      "aliases": [],
      "args": {},
      "description": "Collect build performance data from Azure DevOps and generate processed metrics.",
      "examples": [
        {
          "description": "Collect public (PR) build data.",
          "command": "<%= config.bin %> <%= command.id %> --mode public --project public --buildDefId 11 --outputDir ./output --adoApiToken $ADO_TOKEN"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "adoApiToken": {
          "description": "Azure DevOps API token for authentication.",
          "env": "ADO_API_TOKEN",
          "name": "adoApiToken",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "org": {
          "description": "Azure DevOps organization name.",
          "env": "ORG",
          "name": "org",
          "default": "fluidframework",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project": {
          "description": "Azure DevOps project name.",
          "env": "PROJECT",
          "name": "project",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "mode": {
          "description": "Pipeline mode: \"public\" (PR builds) or \"internal\".",
          "env": "MODE",
          "name": "mode",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "internal"
          ],
          "type": "option"
        },
        "buildCount": {
          "description": "Number of builds to fetch. Note: This will be limited by the number of builds held by the ADO project's retention policy.",
          "env": "BUILD_COUNT",
          "name": "buildCount",
          "default": 500,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "buildDefId": {
          "description": "Build definition ID to query.",
          "env": "BUILD_DEF_ID",
          "name": "buildDefId",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "parallelJobs": {
          "description": "Number of concurrent API requests for timeline fetching.",
          "env": "PARALLEL_JOBS",
          "name": "parallelJobs",
          "default": 20,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outputDir": {
          "description": "Directory to write output files to.",
          "env": "OUTPUT_DIR",
          "name": "outputDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "build-perf:collect",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "build-perf",
        "collect.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "build-perf:collect",
        "collect:build-perf"
      ]
    },
    "build-perf:deploy": {
      "aliases": [],
      "args": {},
      "description": "Manually deploy the build performance dashboard to Azure Static Web Apps.",
      "examples": [
        {
          "description": "Deploy dashboard for public mode.",
          "command": "<%= config.bin %> <%= command.id %> --mode public --aswaHostname myapp.azurestaticapps.net --dataDir ./data --deploymentToken $SWA_TOKEN"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "mode": {
          "description": "Pipeline mode: \"public\" or \"internal\".",
          "env": "MODE",
          "name": "mode",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "internal"
          ],
          "type": "option"
        },
        "aswaHostname": {
          "description": "Hostname of the Azure Static Web App.",
          "env": "ASWA_HOSTNAME",
          "name": "aswaHostname",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "deploymentToken": {
          "description": "Azure Static Web Apps deployment token.",
          "env": "SWA_DEPLOYMENT_TOKEN",
          "name": "deploymentToken",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dataDir": {
          "description": "Directory containing generated data files (public-data.json / internal-data.json).",
          "env": "DATA_DIR",
          "name": "dataDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "build-perf:deploy",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "build-perf",
        "deploy.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "build-perf:deploy",
        "deploy:build-perf"
      ]
    },
    "build-perf:generate": {
      "aliases": [],
      "args": {},
      "description": "Generate a standalone HTML dashboard artifact from processed metrics.",
      "examples": [
        {
          "description": "Generate standalone HTML dashboard for public mode.",
          "command": "<%= config.bin %> <%= command.id %> --mode public --inputDir ./data --outputDir ./output"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "mode": {
          "description": "Pipeline mode: \"public\" or \"internal\".",
          "env": "MODE",
          "name": "mode",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "internal"
          ],
          "type": "option"
        },
        "inputDir": {
          "description": "Directory containing the data JSON files (public-data.json / internal-data.json).",
          "env": "DATA_DIR",
          "name": "inputDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outputDir": {
          "description": "Directory where the dashboard.html will be written.",
          "env": "OUTPUT_DIR",
          "name": "outputDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "build-perf:generate",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "build-perf",
        "generate.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "build-perf:generate",
        "generate:build-perf"
      ]
    },
    "bump:deps": {
      "aliases": [],
      "args": {
        "package_or_release_group": {
          "description": "The name of a package or a release group.",
          "name": "package_or_release_group",
          "required": true
        }
      },
      "description": "Update the dependency version of a specified package or release group. That is, if one or more packages in the repo depend on package A, then this command will update the dependency range on package A. The dependencies and the packages updated can be filtered using various flags.\n\nTo learn more see the detailed documentation at https://github.com/microsoft/FluidFramework/blob/main/build-tools/packages/build-cli/docs/bumpDetails.md",
      "examples": [
        {
          "description": "Bump dependencies on @fluidframework/build-common to the latest release version across all release groups.",
          "command": "<%= config.bin %> <%= command.id %> @fluidframework/build-common -t latest"
        },
        {
          "description": "Bump dependencies on @fluidframework/build-common to the next minor version in the azure release group.",
          "command": "<%= config.bin %> <%= command.id %> @fluidframework/build-common -t minor -g azure"
        },
        {
          "description": "Bump dependencies on packages in the server release group to the greatest released version in the client release group. Include pre-release versions.",
          "command": "<%= config.bin %> <%= command.id %> server -g client -t greatest --prerelease"
        },
        {
          "description": "Bump dependencies on server packages to the current version across the repo, replacing any pre-release ranges with release ranges.",
          "command": "<%= config.bin %> <%= command.id %> server -t latest"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "updateType": {
          "char": "t",
          "description": "Bump the current version of the dependency according to this bump type.",
          "name": "updateType",
          "default": "minor",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "latest",
            "newest",
            "greatest",
            "minor",
            "patch",
            "@next",
            "@canary"
          ],
          "type": "option"
        },
        "prerelease": {
          "dependsOn": [
            "updateType"
          ],
          "description": "Treat prerelease versions as valid versions to update to.",
          "name": "prerelease",
          "allowNo": false,
          "type": "boolean"
        },
        "onlyBumpPrerelease": {
          "description": "Only bump dependencies that are on pre-release versions.",
          "name": "onlyBumpPrerelease",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Only bump dependencies within this release group.",
          "exclusive": [
            "package"
          ],
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "package": {
          "char": "p",
          "description": "Only bump dependencies of this package. You can use scoped or unscoped package names. For example, both @fluid-tools/markdown-magic and markdown-magic are valid.",
          "exclusive": [
            "releaseGroup"
          ],
          "name": "package",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "commit": {
          "description": "Commit changes to a new branch.",
          "name": "commit",
          "allowNo": true,
          "type": "boolean"
        },
        "install": {
          "description": "Update lockfiles by running 'npm install' automatically.",
          "name": "install",
          "allowNo": true,
          "type": "boolean"
        },
        "skipChecks": {
          "char": "x",
          "description": "Skip all checks.",
          "exclusive": [
            "install",
            "commit",
            "branchCheck",
            "updateCheck",
            "policyCheck"
          ],
          "name": "skipChecks",
          "allowNo": false,
          "type": "boolean"
        },
        "updateChecker": {
          "description": "Specify the implementation to use to update dependencies. The default, 'ncu', uses npm-check-updates under the covers. The 'homegrown' value is a new experimental updater written specifically for the Fluid Framework repo. This flag is experimental and may change or be removed at any time.",
          "helpGroup": "EXPERIMENTAL",
          "name": "updateChecker",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "ncu",
            "homegrown"
          ],
          "type": "option"
        },
        "testMode": {
          "description": "Enables test mode. This flag enables other flags used for testing.",
          "helpGroup": "TESTING",
          "hidden": true,
          "name": "testMode",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "bump:deps",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "bump",
        "deps.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "bump:deps",
        "deps:bump"
      ]
    },
    "check:buildVersion": {
      "aliases": [],
      "args": {},
      "description": "Checks that all packages have the same version set in package.json. The packages checked can be filtered by standard criteria. THIS COMMAND IS INTENDED FOR USE IN FLUID FRAMEWORK CI PIPELINES ONLY.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "version": {
          "description": "The version against which to check all the packages.",
          "exclusive": [
            "path"
          ],
          "name": "version",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "path": {
          "description": "Path to a directory containing a package. The version will be loaded from the package.json in this directory.",
          "exclusive": [
            "version"
          ],
          "name": "path",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "fix": {
          "description": "Fix invalid versions in the package.json file.",
          "name": "fix",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:buildVersion",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "buildVersion.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:buildVersion",
        "buildVersion:check"
      ]
    },
    "check:changeset": {
      "aliases": [],
      "args": {},
      "examples": [
        {
          "description": "Check if a changeset was added when compared to the 'main' branch.",
          "command": "<%= config.bin %> <%= command.id %> -b main"
        },
        {
          "description": "Check if a changeset was added when compared to the 'next' branch.",
          "command": "<%= config.bin %> <%= command.id %> -b next"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "char": "b",
          "description": "The branch to compare against.",
          "name": "branch",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:changeset",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Checks if a changeset was added when compared against a branch. This is used in CI to enforce that changesets are present for a PR.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "changeset.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:changeset",
        "changeset:check"
      ]
    },
    "check:latestVersions": {
      "aliases": [],
      "args": {
        "version": {
          "description": "The version to check. When running in CI, this value corresponds to the pipeline trigger branch.",
          "name": "version",
          "required": true
        },
        "package_or_release_group": {
          "description": "The name of a package or a release group.",
          "name": "package_or_release_group",
          "required": true
        }
      },
      "description": "This command is used in CI to determine if a pipeline was triggered by a release branch with the latest minor version of a major version.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:latestVersions",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Determines if an input version matches a latest minor release version. Intended to be used in the Fluid Framework CI pipeline only.",
      "enableJsonFlag": false,
      "deprecated": "This command is deprecated and will be removed in a future release. Use vnext:check:latestVersions instead.",
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "latestVersions.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:latestVersions",
        "latestVersions:check"
      ]
    },
    "check:layers": {
      "aliases": [],
      "args": {},
      "description": "Checks that the dependencies between Fluid Framework packages are properly layered.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "md": {
          "description": "Generate PACKAGES.md file at this path relative to repo root",
          "name": "md",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dot": {
          "description": "Generate *.dot for GraphViz",
          "name": "dot",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "info": {
          "description": "Path to the layer graph json file",
          "name": "info",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:layers",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "layers.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:layers",
        "layers:check"
      ]
    },
    "check:policy": {
      "aliases": [],
      "args": {},
      "description": "Checks and applies policies to the files in the repository, such as ensuring a consistent header comment in files, assert tagging, etc.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "fix": {
          "char": "f",
          "description": "Fix errors if possible.",
          "name": "fix",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "handler": {
          "char": "d",
          "description": "Filter policy handler names by <regex>.",
          "name": "handler",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "excludeHandler": {
          "char": "D",
          "description": "Exclude policy handler by name. Can be specified multiple times to exclude multiple handlers.",
          "exclusive": [
            "handler"
          ],
          "name": "excludeHandler",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "path": {
          "char": "p",
          "description": "Filter file paths by <regex>.",
          "name": "path",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "stdin": {
          "description": "Read list of files from stdin.",
          "name": "stdin",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "listHandlers": {
          "description": "List all policy handlers by name.",
          "exclusive": [
            "stdin",
            "path",
            "fix",
            "handler"
          ],
          "name": "listHandlers",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:policy",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "policy.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:policy",
        "policy:check"
      ]
    },
    "check:prApproval": {
      "aliases": [],
      "args": {},
      "description": "Check if a PR has been approved by a list of users or members of a team.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "repo": {
          "description": "The name of the GitHub repository to check. This should be in the form 'owner/repo-name'. For example, 'microsoft/FluidFramework'",
          "name": "repo",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "pr": {
          "description": "The PR number to check.",
          "name": "pr",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "team": {
          "description": "The team whose membership should be checked. If at least one of the members of the team has approved the PR, it is considered approved. The team must be in the same GitHub organization as the repo. Only the team name should be provided - the org is inferred from the repo details.",
          "name": "team",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "approvers": {
          "description": "GitHub users who should be considered approvers. If at least one of these users has approved the PR, it is considered approved. Cannot be used with the --team flag. You can provide multiple names as a space-delimited list, e.g. '--approvers user1 user2'",
          "name": "approvers",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "token": {
          "description": "GitHub access token. This parameter should be passed using the GITHUB_TOKEN environment variable for security purposes.",
          "env": "GITHUB_TOKEN",
          "name": "token",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "ghActions": {
          "description": "Set to true to output logs in a GitHub Actions-compatible format. This value will be set to true automatically when running in GitHub Actions.",
          "env": "GITHUB_ACTIONS",
          "name": "ghActions",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "check:prApproval",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "check",
        "prApproval.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "check:prApproval",
        "prApproval:check"
      ]
    },
    "generate:assertTags": {
      "aliases": [],
      "args": {},
      "description": "Tagged asserts are smaller because the message string is not included, and they're easier to aggregate for telemetry purposes.\nWhich functions and which of their augments get tagging depends on the configuration which is specified in the package being tagged.\nConfiguration is searched by walking from each package's directory up to its parents recursively looking for the first file matching one of [\"assertTagging.config.mjs\"].\nThe format of the configuration is specified by the \"AssertTaggingPackageConfig\" type.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "disableConfig": {
          "description": "Disable filtering based on the fluid-build config in the repo. Useful for testing.",
          "helpGroup": "TESTING",
          "name": "disableConfig",
          "allowNo": false,
          "type": "boolean"
        },
        "validate": {
          "description": "Validate that asserts are well-formed such that future tagging will not fail.",
          "name": "validate",
          "allowNo": false,
          "type": "boolean"
        },
        "requireTagged": {
          "description": "Error if changes would be made instead of making them.",
          "name": "requireTagged",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:assertTags",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Tags asserts by replacing their message with a unique numerical value.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "assertTags.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:assertTags",
        "assertTags:generate"
      ]
    },
    "generate:buildVersion": {
      "aliases": [],
      "args": {},
      "description": "This command is used to compute the version number of Fluid packages. The release version number is based on what's in the release group root package.json. The CI pipeline will supply the build number and branch to determine the prerelease suffix if it is not a tagged build.",
      "examples": [
        "<%= config.bin %> <%= command.id %>"
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "build": {
          "description": "The CI build number.",
          "env": "VERSION_BUILDNUMBER",
          "name": "build",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "testBuild": {
          "description": "Indicates the build is a test build.",
          "env": "TEST_BUILD",
          "name": "testBuild",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "release": {
          "description": "Indicates the build is a release build.",
          "env": "VERSION_RELEASE",
          "name": "release",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "release",
            "prerelease",
            "none"
          ],
          "type": "option"
        },
        "patch": {
          "description": "Indicates the build should use \"simple patch versioning\" where the value of the --build flag is used as the patch version.",
          "env": "VERSION_PATCH",
          "name": "patch",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "base": {
          "description": "The base version. This will be read from package.json if not provided.",
          "name": "base",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tag": {
          "description": "The tag name to use.",
          "env": "VERSION_TAGNAME",
          "name": "tag",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "includeInternalVersions": {
          "char": "i",
          "description": "Include Fluid internal versions.",
          "env": "VERSION_INCLUDE_INTERNAL_VERSIONS",
          "name": "includeInternalVersions",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "packageTypes": {
          "description": "If provided, the version generated will include extra strings based on the TypeScript types that are expected to be used. This flag should only be used in the Fluid Framework CI pipeline.",
          "env": "PACKAGE_TYPES_FIELD",
          "name": "packageTypes",
          "default": "none",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "none",
            "alpha",
            "beta",
            "public",
            "untrimmed"
          ],
          "type": "option"
        },
        "fileVersion": {
          "description": "Will be used as the version instead of reading from package.json. Used for testing.",
          "hidden": true,
          "name": "fileVersion",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tags": {
          "description": "The git tags to consider when determining whether a version is latest. Used for testing.",
          "hidden": true,
          "name": "tags",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:buildVersion",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "buildVersion.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:buildVersion",
        "buildVersion:generate"
      ]
    },
    "generate:bundleStats": {
      "aliases": [],
      "args": {},
      "description": "Find all bundle analysis artifacts and copy them into a central location to upload as build artifacts for later consumption",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "packageMetadataPath": {
          "description": "A path to a file containing JSON formatted package metadata. Used for testing. When not provided, the output of `pnpm -r list --depth -1 --json` is used.",
          "hidden": true,
          "name": "packageMetadataPath",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "smallestAssetSize": {
          "description": "The smallest asset size in bytes to consider correct. Adjust when testing for assets that are smaller.",
          "name": "smallestAssetSize",
          "required": false,
          "default": 100,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:bundleStats",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "bundleStats.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:bundleStats",
        "bundleStats:generate"
      ]
    },
    "generate:changeset": {
      "aliases": [
        "changeset:add"
      ],
      "args": {},
      "examples": [
        {
          "description": "Create an empty changeset using the --empty flag.",
          "command": "<%= config.bin %> <%= command.id %> --empty"
        },
        {
          "description": "Create a changeset interactively. Any package whose contents has changed relative to the 'main' branch will be selected by default.",
          "command": "<%= config.bin %> <%= command.id %>"
        },
        {
          "description": "You can compare with a different branch using --branch (-b).",
          "command": "<%= config.bin %> <%= command.id %> --branch next"
        },
        {
          "description": "By default example and private packages are excluded, but they can be included with --all.",
          "command": "<%= config.bin %> <%= command.id %> --all"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "name": "releaseGroup",
          "default": "client",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "branch": {
          "char": "b",
          "description": "The branch to compare the current changes against. The current changes will be compared with this branch to populate the list of changed packages. \u001b[1mYou must have a valid remote pointing to the microsoft/FluidFramework repo.\u001b[22m",
          "name": "branch",
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "empty": {
          "dependsOn": [
            "releaseGroup"
          ],
          "description": "Create an empty changeset file. If this flag is used, all other flags are ignored. A new, randomly named changeset file will be created every time --empty is used.",
          "name": "empty",
          "allowNo": false,
          "type": "boolean"
        },
        "all": {
          "description": "Include ALL packages, including examples and other unpublished packages.",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "uiMode": {
          "description": "Controls the mode in which the interactive UI is displayed. The 'default' mode includes an autocomplete filter to narrow the list of packages. The 'simple' mode does not include the autocomplete filter, but has better UI that may display better in some terminal configurations. This flag is experimental and may change or be removed at any time.",
          "helpGroup": "EXPERIMENTAL",
          "name": "uiMode",
          "default": "default",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "default",
            "simple"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:changeset",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Generates a new changeset file. You will be prompted to select the packages affected by this change. You can also create an empty changeset to include with this change that can be updated later.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "changeset.js"
      ],
      "aliasPermutations": [
        "changeset:add",
        "add:changeset"
      ],
      "permutations": [
        "generate:changeset",
        "changeset:generate"
      ]
    },
    "generate:compatLayerGeneration": {
      "aliases": [],
      "args": {},
      "description": "Updates the generation of a package for layer compatibility. To opt in a package, add an empty \"fluidCompatMetadata\" object to its package.json.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "generationDir": {
          "description": "The directory where the generation file is located.",
          "name": "generationDir",
          "default": "./src",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFile": {
          "description": "Output the results to this file.",
          "name": "outFile",
          "default": "layerGenerationState.ts",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "minimumCompatWindowMonths": {
          "description": "The minimum compatibility window in months that is supported across all Fluid layers. Must be at least 1",
          "name": "minimumCompatWindowMonths",
          "default": 3,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:compatLayerGeneration",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "compatLayerGeneration.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:compatLayerGeneration",
        "compatLayerGeneration:generate"
      ]
    },
    "generate:entrypoints": {
      "aliases": [],
      "args": {},
      "description": "Generates type declaration entrypoints for Fluid Framework API levels (/alpha, /beta. etc.) as found in package.json \"exports\"",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "mainEntrypoint": {
          "description": "Main entrypoint file containing all untrimmed exports.",
          "name": "mainEntrypoint",
          "default": "./src/index.ts",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "resolutionConditions": {
          "description": "Import resolution conditions used while resolving imports. If neither \"import\" nor \"require\" are specified, one of those will be inferred based on mainEntrypoint file extension and package.json \"type\" field.",
          "name": "resolutionConditions",
          "default": [],
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "outDir": {
          "description": "Directory to emit entrypoint declaration files.",
          "name": "outDir",
          "default": "./lib",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFilePrefix": {
          "description": "File name prefix for emitting entrypoint declaration files. Pattern of '{@unscopedPackageName}' within value will be replaced with the unscoped name of this package.",
          "name": "outFilePrefix",
          "default": "",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileAlpha": {
          "description": "Base file name for alpha entrypoint declaration files. To opt out of generating this entrypoint, set to `none`.",
          "name": "outFileAlpha",
          "default": "alpha",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileBeta": {
          "description": "Base file name for beta entrypoint declaration files. To opt out of generating this entrypoint, set to `none`.",
          "name": "outFileBeta",
          "default": "beta",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFilePublic": {
          "description": "Base file name for public entrypoint declaration files. To opt out of generating this entrypoint, set to `none`.",
          "name": "outFilePublic",
          "default": "public",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileLegacyAlpha": {
          "description": "Base file name for legacyAlpha entrypoint declaration files. To opt into generating this entrypoint, set to a value other than `none`.",
          "name": "outFileLegacyAlpha",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileLegacyBeta": {
          "description": "Base file name for legacyBeta entrypoint declaration files. To opt into generating this entrypoint, set to a value other than `none`.",
          "name": "outFileLegacyBeta",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileLegacyPublic": {
          "description": "Base file name for legacyPublic entrypoint declaration files. To opt into generating this entrypoint, set to a value other than `none`.",
          "name": "outFileLegacyPublic",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFileSuffix": {
          "description": "File name suffix including extension for emitting entrypoint declaration files.",
          "name": "outFileSuffix",
          "default": ".d.ts",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "node10TypeCompat": {
          "description": "Optional generation of Node10 resolution compatible type entrypoints matching others.",
          "name": "node10TypeCompat",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:entrypoints",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "entrypoints.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:entrypoints",
        "entrypoints:generate"
      ]
    },
    "generate:node10Entrypoints": {
      "aliases": [],
      "args": {},
      "description": "Generates node10 type declaration entrypoints for Fluid Framework API levels (/alpha, /beta, /internal etc.) as found in package.json \"exports\"",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:node10Entrypoints",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "node10Entrypoints.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:node10Entrypoints",
        "node10Entrypoints:generate"
      ]
    },
    "generate:packlist": {
      "aliases": [],
      "args": {},
      "description": "Outputs a list of files that will be included in a package based on its 'files' property in package.json and any .npmignore files.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "out": {
          "description": "File to output the pack list to. This path is relative to the package whose contents is being listed.",
          "name": "out",
          "default": "packlist.txt",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:packlist",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "packlist.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:packlist",
        "packlist:generate"
      ]
    },
    "generate:releaseNotes": {
      "aliases": [],
      "args": {},
      "examples": [
        {
          "description": "Generate release notes for a minor release of the client release group.",
          "command": "<%= config.bin %> <%= command.id %> -g client -t minor"
        },
        {
          "description": "You can output a different file using the --out flag.",
          "command": "<%= config.bin %> <%= command.id %> -g client -t minor --out RELEASE_NOTES/2.1.0.md"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "name": "releaseGroup",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "releaseType": {
          "char": "t",
          "description": "The type of release for which the release notes are being generated.",
          "name": "releaseType",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "major",
            "minor"
          ],
          "type": "option"
        },
        "outFile": {
          "aliases": [
            "out"
          ],
          "deprecateAliases": true,
          "description": "Output the results to this file.",
          "name": "outFile",
          "required": true,
          "default": "RELEASE_NOTES.md",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "includeUnknown": {
          "description": "Pass this flag to include changesets in unknown sections in the generated release notes. By default, these are excluded.",
          "name": "includeUnknown",
          "allowNo": false,
          "type": "boolean"
        },
        "headingLinks": {
          "description": "Pass this flag to output HTML anchor anchor tags inline for every heading. This is useful when the Markdown output will be used in places like GitHub Releases, where headings don't automatically get links.",
          "name": "headingLinks",
          "allowNo": false,
          "type": "boolean"
        },
        "excludeH1": {
          "description": "Pass this flag to omit the top H1 heading. This is useful when the Markdown output will be used as part of another document.",
          "name": "excludeH1",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:releaseNotes",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Generates release notes from individual changeset files.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "releaseNotes.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:releaseNotes",
        "releaseNotes:generate"
      ]
    },
    "generate:typetests": {
      "aliases": [],
      "args": {},
      "description": "Generates type tests for a package or group of packages.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "entrypoint": {
          "description": "What entrypoint to generate tests for. Use \"public\" or \"\" for the default entrypoint. If this flag is provided it will override the typeValidation.entrypoint setting in the package's package.json.",
          "name": "entrypoint",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outDir": {
          "description": "Where to emit the type tests file.",
          "name": "outDir",
          "default": "./src/test/types",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFile": {
          "description": "File name for the generated type tests. The pattern '{@unscopedPackageName}' within the value will be replaced with the unscoped name of this package in PascalCase.",
          "name": "outFile",
          "default": "validate{@unscopedPackageName}Previous.generated.ts",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "publicFallback": {
          "description": "Use the public entrypoint as a fallback if the requested entrypoint is not found.",
          "name": "publicFallback",
          "allowNo": false,
          "type": "boolean"
        },
        "skipVersionOutput": {
          "description": "Skip updating version information in generated type test files. When set, preserves existing version information instead of updating to current package versions.",
          "env": "FLUB_TYPETEST_SKIP_VERSION_OUTPUT",
          "name": "skipVersionOutput",
          "allowNo": false,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:typetests",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "typetests.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:typetests",
        "typetests:generate"
      ]
    },
    "generate:upcoming": {
      "aliases": [],
      "args": {},
      "deprecationOptions": {
        "version": "0.53.0",
        "to": "generate releaseNotes"
      },
      "examples": [
        {
          "description": "Generate UPCOMING.md for the client release group using the minor changesets.",
          "command": "<%= config.bin %> <%= command.id %> -g client -t minor"
        },
        {
          "description": "You can output a different file using the --out flag.",
          "command": "<%= config.bin %> <%= command.id %> -g client -t minor --out testOutput.md"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "name": "releaseGroup",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "releaseType": {
          "char": "t",
          "description": "The type of release for which the upcoming file is being generated.",
          "name": "releaseType",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "major",
            "minor"
          ],
          "type": "option"
        },
        "out": {
          "description": "Output the results to this file.",
          "name": "out",
          "default": "UPCOMING.md",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "generate:upcoming",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "state": "deprecated",
      "strict": true,
      "summary": "Generates a summary of all changesets. This is used to generate an UPCOMING.md file that provides a single place where developers can see upcoming changes.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "generate",
        "upcoming.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "generate:upcoming",
        "upcoming:generate"
      ]
    },
    "merge:branches": {
      "aliases": [],
      "args": {},
      "description": "Sync branches depending on the batch size passed",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "pat": {
          "char": "p",
          "description": "GitHub Personal Access Token. This parameter should be passed using the GITHUB_PAT environment variable for security purposes.",
          "env": "GITHUB_PAT",
          "name": "pat",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "source": {
          "char": "s",
          "description": "Source branch name",
          "name": "source",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "target": {
          "char": "t",
          "description": "Target branch name",
          "name": "target",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "batchSize": {
          "char": "b",
          "description": "Maximum number of commits to include in the pull request",
          "name": "batchSize",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "remote": {
          "char": "r",
          "description": "The name of the upstream remote to use to check for PRs. If not provided, the remote matching the microsoft/FluidFramework repo will be used.",
          "name": "remote",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "reviewers": {
          "description": "Add reviewers to PR",
          "name": "reviewers",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "createPr": {
          "description": "Use --no-createPr to skip creating a PR. Useful for testing.",
          "hidden": true,
          "name": "createPr",
          "allowNo": true,
          "type": "boolean"
        },
        "checkPr": {
          "description": "Use --no-checkPr to skip checking for a PR. Useful for testing.",
          "hidden": true,
          "name": "checkPr",
          "allowNo": true,
          "type": "boolean"
        },
        "cleanup": {
          "description": "Use --no-cleanup to skip cleanup of branches if there's a failure. Useful for testing.",
          "hidden": true,
          "name": "cleanup",
          "allowNo": true,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "merge:branches",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "state": "deprecated",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "merge",
        "branches.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "merge:branches",
        "branches:merge"
      ]
    },
    "merge:info": {
      "aliases": [],
      "args": {},
      "description": "Get info about the merge status of branches in the repo. Uses \"main\" and \"next\" if no branch names are provided. Output the data as JSON using --json.",
      "examples": [
        {
          "description": "Get info about the merge status of the main and next branch in the repo.",
          "command": "<%= config.bin %> <%= command.id %>"
        },
        {
          "description": "Output the merge status as JSON using --json.",
          "command": "<%= config.bin %> <%= command.id %> --json"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "char": "b",
          "description": "A branch name. Use this argument multiple times to provide multiple branch names.",
          "name": "branch",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "merge:info",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "merge",
        "info.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "merge:info",
        "info:merge"
      ]
    },
    "modify:fluid-imports": {
      "aliases": [],
      "args": {},
      "description": "Rewrite imports for Fluid Framework APIs to use the correct subpath import (/beta, /legacy, etc.)",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "tsconfigs": {
          "description": "Tsconfig file paths that will be used to load project files. When multiple are given all must depend on the same version of packages; otherwise results are unstable.",
          "name": "tsconfigs",
          "default": [
            "./tsconfig.json"
          ],
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packageRegex": {
          "description": "Regular expression filtering import packages to adjust",
          "name": "packageRegex",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "data": {
          "description": "Optional path to a data file containing raw API level data. Overrides API levels extracted from package data.",
          "name": "data",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "onlyInternal": {
          "description": "Use /internal for all non-public APIs instead of /beta or /legacy.",
          "name": "onlyInternal",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "modify:fluid-imports",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "modify",
        "fluid-imports.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "modify:fluid-imports",
        "fluid-imports:modify"
      ]
    },
    "modify:lockfile": {
      "aliases": [],
      "args": {
        "package_or_release_group": {
          "default": "client",
          "description": "The name of a package or a release group. Defaults to the client release group if not specified.",
          "name": "package_or_release_group",
          "required": true
        }
      },
      "description": "Note that if the version passed in to the command is not within the range of versions naturally accepted by the packages that depend on it, after this command runs the lockfile might not reflect the version that was passed in, but the latest version that complies with the semver range declared by the dependent packages.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "dependencyName": {
          "description": "Name of the dependency (npm package) to update.",
          "name": "dependencyName",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "version": {
          "description": "A semver version or range specifier (e.g. ^1.2.3) to use when updating the dependency.",
          "name": "version",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "modify:lockfile",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Updates a dependency in the pnpm lockfile to the latest version of a specified semver range.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "modify",
        "lockfile.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "modify:lockfile",
        "lockfile:modify"
      ]
    },
    "promote:package": {
      "aliases": [],
      "args": {},
      "description": "Used to promote a package to the Release view if it's a release build and in the build feed.  THIS COMMAND IS INTENDED FOR USE IN FLUID FRAMEWORK CI PIPELINES ONLY.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "version": {
          "description": "Version of the package to promote.",
          "name": "version",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "orderFile": {
          "description": "A file with package names that should be promoted. Such files can be created using `flub list`.",
          "name": "orderFile",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "token": {
          "description": "Azure DevOps access token. This parameter should be passed using the ADO_API_TOKEN environment variable for security purposes.",
          "env": "ADO_API_TOKEN",
          "name": "token",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "promote:package",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Promotes a package to the Release view in Azure DevOps Artifacts.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "promote",
        "package.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "promote:package",
        "package:promote"
      ]
    },
    "publish:bundleStats": {
      "aliases": [
        "run:bundleStats"
      ],
      "args": {},
      "deprecateAliases": true,
      "description": "Generate a report from input bundle stats collected through the collect bundleStats command.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "dangerfile": {
          "description": "Path to dangerfile",
          "name": "dangerfile",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "publish:bundleStats",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "publish",
        "bundleStats.js"
      ],
      "aliasPermutations": [
        "run:bundleStats",
        "bundleStats:run"
      ],
      "permutations": [
        "publish:bundleStats",
        "bundleStats:publish"
      ]
    },
    "publish:tarballs": {
      "aliases": [],
      "args": {},
      "description": "Used to publish a portion of tarballs from a folder based on an input file. The file can contain package names or tarball names.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "A directory containing tarballs to publish. Tarballs must have the file extension tgz.",
          "name": "dir",
          "default": ".",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "orderFile": {
          "description": "A file with package names that should be published. Such files can be created using `flub list`.",
          "name": "orderFile",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tarball": {
          "deprecated": {
            "message": "This option is deprecated and for backwards compatibility only."
          },
          "description": "Use this flag to indicate that the orderFile contains tarball names instead of package names. Such files can be created using `flub list --tarball`. This option is deprecated and for backwards compatibility only.",
          "name": "tarball",
          "allowNo": false,
          "type": "boolean"
        },
        "retry": {
          "description": "Number of times to retry publishing a package that fails to publish.",
          "name": "retry",
          "default": 0,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dryRun": {
          "aliases": [
            "dry-run"
          ],
          "description": "Does everything except publish to the registry. This flag will be passed to 'npm publish'.",
          "name": "dryRun",
          "allowNo": false,
          "type": "boolean"
        },
        "access": {
          "description": "This flag will be passed to 'npm publish'.",
          "name": "access",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "public",
            "restricted"
          ],
          "type": "option"
        },
        "publishArgs": {
          "description": "This string will be passed to 'npm publish' verbatim. Use this to pass additional custom args to npm publish like --tag.",
          "name": "publishArgs",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "publish:tarballs",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Publishes tarballs to the package registry unless the version is already published.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "publish",
        "tarballs.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "publish:tarballs",
        "tarballs:publish"
      ]
    },
    "release:fromTag": {
      "aliases": [],
      "args": {
        "tag": {
          "description": "A git tag that represents a release. May begin with 'refs/tags/'.",
          "name": "tag",
          "required": true
        }
      },
      "description": "This command is used in CI to determine release information when a new release tag is pushed.",
      "examples": [
        {
          "description": "Get release information based on a git tag.",
          "command": "<%= config.bin %> <%= command.id %> build-tools_v0.13.0"
        },
        {
          "description": "You can include the refs/tags/ part of a tag ref.",
          "command": "<%= config.bin %> <%= command.id %> refs/tags/2.0.0-internal.2.0.2"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:fromTag",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Determines release information based on a git tag argument.",
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "fromTag.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release:fromTag",
        "fromTag:release"
      ]
    },
    "release:history": {
      "aliases": [],
      "args": {},
      "description": "Prints a list of released versions of a package or release group. Releases are gathered from the git tags in repo containing the working directory.\n\n    Use 'npm view' to list published packages based on the public npm registry.\n\n    The number of results can be limited using the --limit argument.",
      "examples": [
        {
          "description": "List all the releases of the azure release group.",
          "command": "<%= config.bin %> <%= command.id %> -g azure"
        },
        {
          "description": "List the 10 most recent client releases.",
          "command": "<%= config.bin %> <%= command.id %> -g client --limit 10"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Name of a release group.",
          "exclusive": [
            "package"
          ],
          "name": "releaseGroup",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "package": {
          "char": "p",
          "description": "Name of package. You can use scoped or unscoped package names. For example, both @fluid-tools/benchmark and benchmark are valid.",
          "exclusive": [
            "releaseGroup"
          ],
          "name": "package",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "limit": {
          "char": "l",
          "description": "Limits the number of displayed releases for each release group. Results are sorted by semver, so '--limit 10' will return the 10 highest semver releases for the release group.",
          "name": "limit",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:history",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "history.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release:history",
        "history:release"
      ]
    },
    "release:prepare": {
      "aliases": [
        "release:prep"
      ],
      "args": {
        "package_or_release_group": {
          "default": "client",
          "description": "The name of a package or a release group. Defaults to the client release group if not specified.",
          "name": "package_or_release_group",
          "required": true
        }
      },
      "description": "Runs the following checks:\n\n- Branch has no local changes\n- The local branch is up to date with the microsoft/FluidFramework remote\n- Dependencies are installed locally\n- Has no pre-release Fluid dependencies\n- No repo policy violations\n- No untagged asserts\n- Compatibility layer generation is up to date",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:prepare",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Runs checks on a local branch to verify it is ready to serve as the base for a release branch.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "prepare.js"
      ],
      "aliasPermutations": [
        "release:prep",
        "prep:release"
      ],
      "permutations": [
        "release:prepare",
        "prepare:release"
      ]
    },
    "release:report-unreleased": {
      "aliases": [],
      "args": {},
      "description": "This command is primarily used to upload reports for non-PR main branch builds so that downstream pipelines can easily consume them.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "version": {
          "description": "Version to generate a report for. Typically, this version is the version of a dev build.",
          "name": "version",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outDir": {
          "description": "Release report output directory",
          "name": "outDir",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "fullReportFilePath": {
          "description": "Path to a report file in the 'full' format.",
          "name": "fullReportFilePath",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "branchName": {
          "description": "Branch name. For release branches, the manifest file is uplaoded by build number and not by current date.",
          "name": "branchName",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:report-unreleased",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Creates a release report for an unreleased build (one that is not published to npm), using an existing report in the \"full\" format as input.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "report-unreleased.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release:report-unreleased",
        "report-unreleased:release"
      ]
    },
    "release:report": {
      "aliases": [],
      "args": {},
      "description": "Generates a report of Fluid Framework releases.\n\n    The release report command is used to produce a report of all the packages that were released and their version. After a release, it is useful to generate this report to provide to customers, so they can update their dependencies to the most recent version.\n\n    The command operates in two modes: \"whole repo\" or \"release group.\" The default mode is \"whole repo.\" In this mode, the command will look at the git tags in the repo to determine the versions, and will include all release groups and packages in the repo. You can control which version of each package and release group is included in the report using the --interactive, --mostRecent, and --highest flags.\n\n    The \"release group\" mode can be activated by passing a --releaseGroup flag. In this mode, the specified release group's version will be loaded from the repo, and its immediate Fluid dependencies will be included in the report. This is useful when we want to include only the dependency versions that the release group depends on in the report.",
      "examples": [
        {
          "description": "Generate a release report of the highest semver release for each package and release group and display it in the terminal only.",
          "command": "<%= config.bin %> <%= command.id %>"
        },
        {
          "description": "Output all release report files to the current directory.",
          "command": "<%= config.bin %> <%= command.id %> -o ."
        },
        {
          "description": "Generate a release report for each package and release group in the repo interactively.",
          "command": "<%= config.bin %> <%= command.id %> -i"
        }
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "interactive": {
          "char": "i",
          "description": "Choose the version of each release group and package to contain in the release report.",
          "exclusive": [
            "mostRecent",
            "highest"
          ],
          "name": "interactive",
          "allowNo": false,
          "type": "boolean"
        },
        "highest": {
          "char": "s",
          "description": "Always pick the greatest semver version as the latest (ignore dates).",
          "exclusive": [
            "mostRecent",
            "interactive"
          ],
          "name": "highest",
          "allowNo": false,
          "type": "boolean"
        },
        "mostRecent": {
          "char": "r",
          "description": "Always pick the most recent version as the latest (ignore semver version sorting).",
          "exclusive": [
            "highest",
            "interactive"
          ],
          "name": "mostRecent",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Report only on this release group. If also pass --interactive, --highest, or --mostRecent, then the report will only include this release group at the selected version.\n\n            If you pass this flag by itself, the command will use the version of the release group at the current commit in the repo, but will also include its direct Fluid dependencies.\n\n            If you want to report on a particular release, check out the git tag for the release version you want to report on before running this command.",
          "name": "releaseGroup",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian"
          ],
          "type": "option"
        },
        "output": {
          "char": "o",
          "description": "Output JSON report files to this directory.",
          "name": "output",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "baseFileName": {
          "description": "If provided, the output files will be named using this base name followed by the report kind (caret, simple, full, tilde, legacy-compat) and the .json extension. For example, if baseFileName is 'foo', the output files will be named 'foo.caret.json', 'foo.simple.json', etc.",
          "name": "baseFileName",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:report",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "report.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release:report",
        "report:release"
      ]
    },
    "release:setPackageTypesField": {
      "aliases": [],
      "args": {},
      "description": "Updates which .d.ts file is referenced by the `types` field in package.json. This command is used during package publishing (by CI) to select the d.ts file which corresponds to the selected API-Extractor release tag.",
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "types": {
          "description": "Which .d.ts types to include in the published package.",
          "name": "types",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "checkFileExists": {
          "description": "Check if the file path exists",
          "name": "checkFileExists",
          "allowNo": true,
          "type": "boolean"
        },
        "concurrency": {
          "description": "The number of tasks to execute concurrently.",
          "name": "concurrency",
          "default": 25,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Run on all packages and release groups. Cannot be used with --dir, --packages, --releaseGroup, or --releaseGroupRoot.",
          "exclusive": [
            "dir",
            "packages",
            "releaseGroup",
            "releaseGroupRoot"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Run on the package in this directory. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "dir",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "packages": {
          "description": "Run on all independent packages in the repo. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "packages",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "aliases": [
            "releaseGroups"
          ],
          "char": "g",
          "description": "Run on all child packages within the specified release groups. This does not include release group root packages. To include those, use the --releaseGroupRoot argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroup",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "releaseGroupRoot": {
          "aliases": [
            "releaseGroupRoots"
          ],
          "description": "Run on the root package of the specified release groups. This does not include any child packages within the release group. To include those, use the --releaseGroup argument. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "releaseGroupRoot",
          "hasDynamicHelp": false,
          "multiple": true,
          "options": [
            "client",
            "server",
            "azure",
            "build-tools",
            "gitrest",
            "historian",
            "all"
          ],
          "type": "option"
        },
        "changed": {
          "description": "Select packages that have changed when compared to a base branch. Use the --branch option to specify a different base branch. Cannot be used with --all.",
          "exclusive": [
            "all"
          ],
          "helpGroup": "PACKAGE SELECTION",
          "name": "changed",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "branch": {
          "dependsOn": [
            "changed"
          ],
          "description": "Select only packages that have been changed when compared to this base branch. Can only be used with --changed.",
          "helpGroup": "PACKAGE SELECTION",
          "name": "branch",
          "relationships": [
            {
              "type": "all",
              "flags": [
                {
                  "name": "changed"
                }
              ]
            }
          ],
          "required": false,
          "default": "main",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "private": {
          "description": "Only include private packages. Use --no-private to exclude private packages instead.",
          "helpGroup": "PACKAGE FILTER",
          "name": "private",
          "allowNo": true,
          "type": "boolean"
        },
        "scope": {
          "description": "Package scopes to filter to. If provided, only packages whose scope matches the flag will be included. Cannot be used with --skipScope.",
          "exclusive": [
            "skipScope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "skipScope": {
          "aliases": [
            "no-scope"
          ],
          "description": "Package scopes to filter out. If provided, packages whose scope matches the flag will be excluded. Cannot be used with --scope.",
          "exclusive": [
            "scope"
          ],
          "helpGroup": "PACKAGE FILTER",
          "name": "skipScope",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "release:setPackageTypesField",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "state": "deprecated",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "release",
        "setPackageTypesField.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "release:setPackageTypesField",
        "setPackageTypesField:release"
      ]
    },
    "report:codeCoverage": {
      "aliases": [],
      "args": {},
      "description": "Run comparison of code coverage stats",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "adoBuildId": {
          "description": "Azure DevOps build ID.",
          "env": "ADO_BUILD_ID",
          "name": "adoBuildId",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "adoApiToken": {
          "description": "Token to get auth for accessing ADO builds.",
          "env": "ADO_API_TOKEN",
          "name": "adoApiToken",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "githubApiToken": {
          "description": "Token to get auth for accessing Github PR.",
          "env": "GITHUB_API_TOKEN",
          "name": "githubApiToken",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "adoCIBuildDefinitionIdBaseline": {
          "description": "Build definition/pipeline number/id for the baseline build.",
          "env": "ADO_CI_BUILD_DEFINITION_ID_BASELINE",
          "name": "adoCIBuildDefinitionIdBaseline",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "adoCIBuildDefinitionIdPR": {
          "description": "Build definition/pipeline number/id for the PR build.",
          "env": "ADO_CI_BUILD_DEFINITION_ID_PR",
          "name": "adoCIBuildDefinitionIdPR",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "githubPRNumber": {
          "description": "Github PR number.",
          "env": "GITHUB_PR_NUMBER",
          "name": "githubPRNumber",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "githubRepositoryName": {
          "description": "Github repository name. It should be in this format: <org_or_owner>/<name>. For example: microsoft/FluidFramework",
          "env": "GITHUB_REPOSITORY_NAME",
          "name": "githubRepositoryName",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "targetBranchName": {
          "description": "Target branch name.",
          "env": "TARGET_BRANCH_NAME",
          "name": "targetBranchName",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "report:codeCoverage",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "report",
        "codeCoverage.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "report:codeCoverage",
        "codeCoverage:report"
      ]
    },
    "transform:releaseNotes": {
      "aliases": [],
      "args": {},
      "examples": [
        {
          "description": "Transform the release notes from version 2.2.0 and output the results to out.md.",
          "command": "<%= config.bin %> <%= command.id %> --inFile RELEASE_NOTES/2.2.0.md --outFile out.md"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "inFile": {
          "description": "A release notes file that was generated using 'flub generate releaseNotes'.",
          "name": "inFile",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "outFile": {
          "description": "Output the transformed content to this file.",
          "name": "outFile",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "transform:releaseNotes",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Transforms a markdown release notes file into a format appropriate for use in a GitHub Release. This is used to transform in-repo release notes such that they can be automatically posted to our GitHub Releases.",
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "transform",
        "releaseNotes.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "transform:releaseNotes",
        "releaseNotes:transform"
      ]
    },
    "vnext:check:latestVersions": {
      "aliases": [],
      "args": {},
      "description": "This command is used in CI to determine if a pipeline was triggered by a release branch with the latest minor version of a major version.",
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "char": "g",
          "description": "The name of a release group.",
          "name": "releaseGroup",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "version": {
          "description": "The version to check. When running in CI, this value corresponds to the pipeline trigger branch.",
          "name": "version",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tags": {
          "description": "The git tags to consider when determining whether a version is latest. Used for testing.",
          "hidden": true,
          "name": "tags",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "searchPath": {
          "description": "The path to build project. Used for testing.",
          "hidden": true,
          "name": "searchPath",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "vnext:check:latestVersions",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "summary": "Determines if an input version matches a latest minor release version. Intended to be used in the Fluid Framework CI pipeline only.",
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "vnext",
        "check",
        "latestVersions.js"
      ],
      "aliasPermutations": [],
      "permutations": [
        "vnext:check:latestVersions",
        "check:vnext:latestVersions",
        "check:latestVersions:vnext",
        "vnext:latestVersions:check",
        "latestVersions:vnext:check",
        "latestVersions:check:vnext"
      ]
    },
    "vnext:generate:changelog": {
      "aliases": [
        "generate:changelog"
      ],
      "args": {},
      "description": "Generate a changelog for packages based on changesets. Note that this process deletes the changeset files!",
      "examples": [
        {
          "description": "Generate changelogs for the client release group.",
          "command": "<%= config.bin %> <%= command.id %> --releaseGroup client"
        }
      ],
      "flags": {
        "verbose": {
          "char": "v",
          "description": "Enable verbose logging.",
          "exclusive": [
            "quiet"
          ],
          "helpGroup": "LOGGING",
          "name": "verbose",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "quiet": {
          "description": "Disable all logging.",
          "exclusive": [
            "verbose"
          ],
          "helpGroup": "LOGGING",
          "name": "quiet",
          "required": false,
          "allowNo": false,
          "type": "boolean"
        },
        "root": {
          "description": "Root directory of the Fluid repo (default: env _FLUID_ROOT_).",
          "env": "_FLUID_ROOT_",
          "hidden": true,
          "name": "root",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "flubConfig": {
          "description": "A path to a flub config file. If this is not provided, it will look up the directory tree to find the closest config file.",
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "flubConfig",
          "required": false,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timer": {
          "helpGroup": "GLOBAL",
          "hidden": true,
          "name": "timer",
          "allowNo": false,
          "type": "boolean"
        },
        "releaseGroup": {
          "char": "g",
          "description": "The name of a release group.",
          "name": "releaseGroup",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "version": {
          "description": "The version for which to generate the changelog. If this is not provided, the version of the package according to package.json will be used.",
          "name": "version",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "vnext:generate:changelog",
      "pluginAlias": "@fluid-tools/build-cli",
      "pluginName": "@fluid-tools/build-cli",
      "pluginType": "core",
      "strict": true,
      "isESM": true,
      "relativePath": [
        "lib",
        "commands",
        "vnext",
        "generate",
        "changelog.js"
      ],
      "aliasPermutations": [
        "generate:changelog",
        "changelog:generate"
      ],
      "permutations": [
        "vnext:generate:changelog",
        "generate:vnext:changelog",
        "generate:changelog:vnext",
        "vnext:changelog:generate",
        "changelog:vnext:generate",
        "changelog:generate:vnext"
      ]
    }
  },
  "version": "0.65.0"
}