#compdef cabin

autoload -U is-at-least

_cabin() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" : \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'--list[List installed commands]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
":: :_cabin_commands" \
"*::: :->cabin" \
&& ret=0
    case $state in
    (cabin)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" : \
'--name=[Package name.  Defaults to the current directory name]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'-b[Use a binary (application) template \[default\]]' \
'--bin[Use a binary (application) template \[default\]]' \
'-l[Use a library template]' \
'--lib[Use a library template]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
'--name=[Package name.  Defaults to the final component of \`<PATH>\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'-b[Use a binary (application) template \[default\]]' \
'--bin[Use a binary (application) template \[default\]]' \
'-l[Use a library template]' \
'--lib[Use a library template]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':path -- Path of the new package directory.  The directory must not already exist:_files' \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
'--path=[Add a local path dependency rooted at <PATH> (relative to the manifest being edited)]:PATH:_files' \
'*--features=[Features to enable on the dependency.  Repeatable and/or comma-separated (\`--features a,b\`)]:FEATURES:_default' \
'--manifest-path=[Path to the cabin.toml manifest.  Defaults to the manifest discovered from the current directory]:PATH:_files' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--path)--port[Add a bundled foundation-port dependency (\`port = true\`)]' \
'--dev[Add the entry to \`\[dev-dependencies\]\` instead of \`\[dependencies\]\`]' \
'--no-default-features[Disable the dependency'\''s default features (\`default-features = false\`)]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'::dep -- Dependency to add, as `<NAME>` or `<NAME>@<REQ>`:_default' \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Defaults to the manifest discovered from the current directory]:PATH:_files' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--dev[Remove from \`\[dev-dependencies\]\` instead of \`\[dependencies\]\`]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':dep -- Dependency (package name) to remove:_default' \
&& ret=0
;;
(metadata)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  May be a single-package manifest or a workspace root]:PATH:_files' \
'*--features=[Enable named features.  May be repeated and/or comma-separated]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--format=[Output format. \`human\` is a readable summary; \`json\` produces a machine-parseable document.  Defaults to \`json\` for back-compat with scripts that pipe the metadata output into \`jq\`]:FORMAT:(human json)' \
'--profile=[Profile to evaluate for the metadata view.  Defaults to \`dev\`.  The view always lists every available profile in the \`profiles.available\` array regardless of which one is selected]:NAME:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--all-features[Enable every declared feature]' \
'--no-default-features[Disable default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  Manifest \`\[patch\]\` tables and config \`\[patch\]\` / \`\[source-replacement\]\` declarations are ignored; ordinary \`path = "..."\` dependency edges and dependency declarations stay active]' \
'--offline[Forbid network access. \`cabin metadata\` rejects an HTTP \`--index-url\` (or a \`\[registry\] index-url\` in the active config) when this flag is set so the metadata view stays fully local]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(build)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Directory for build outputs (build.ninja, object files, binaries). Defaults to \`build/\`; a config-provided \`paths.build-dir\` overrides this default]:PATH:_files' \
'--profile=[Select the build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\`. Mutually exclusive with \`--release\`]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`.  Static sparse HTTP serving of the file-registry layout is supported (\`<url>/config.json\`, \`<url>/packages/<name>.json\`)]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features.  May be passed multiple times; values may also be comma-separated (\`--features simd,ssl\`).  The selection applies to the root package being built]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'-j+[Number of parallel jobs to use for building]:N:_default' \
'--jobs=[Number of parallel jobs to use for building]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`.  Resolution is not allowed to choose any version that differs from the lockfile]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects\: The lockfile must not change and the artifact cache will not be populated.  Already-cached artifacts may be reused]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed artifact to be available from a local index (\`--index-path\`) or already in the artifact cache. Combine with \`cabin vendor\` to consume a self-contained vendor directory]' \
'--all-features[Enable every feature declared by the root package.  Combines with \`--features\` (the union is the same as \`--all-features\`) and overrides \`--no-default-features\`]' \
'--no-default-features[Disable the package'\''s default features.  Without this flag, the names listed under \`\[features\].default\` are enabled]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(b)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Directory for build outputs (build.ninja, object files, binaries). Defaults to \`build/\`; a config-provided \`paths.build-dir\` overrides this default]:PATH:_files' \
'--profile=[Select the build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\`. Mutually exclusive with \`--release\`]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`.  Static sparse HTTP serving of the file-registry layout is supported (\`<url>/config.json\`, \`<url>/packages/<name>.json\`)]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features.  May be passed multiple times; values may also be comma-separated (\`--features simd,ssl\`).  The selection applies to the root package being built]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'-j+[Number of parallel jobs to use for building]:N:_default' \
'--jobs=[Number of parallel jobs to use for building]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`.  Resolution is not allowed to choose any version that differs from the lockfile]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects\: The lockfile must not change and the artifact cache will not be populated.  Already-cached artifacts may be reused]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed artifact to be available from a local index (\`--index-path\`) or already in the artifact cache. Combine with \`cabin vendor\` to consume a self-contained vendor directory]' \
'--all-features[Enable every feature declared by the root package.  Combines with \`--features\` (the union is the same as \`--all-features\`) and overrides \`--no-default-features\`]' \
'--no-default-features[Disable the package'\''s default features.  Without this flag, the names listed under \`\[features\].default\` are enabled]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(check)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Directory for build outputs (build.ninja, object files, binaries). Defaults to \`build/\`; a config-provided \`paths.build-dir\` overrides this default]:PATH:_files' \
'--profile=[Select the build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\`. Mutually exclusive with \`--release\`]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`.  Static sparse HTTP serving of the file-registry layout is supported (\`<url>/config.json\`, \`<url>/packages/<name>.json\`)]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features.  May be passed multiple times; values may also be comma-separated (\`--features simd,ssl\`).  The selection applies to the root package being built]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'-j+[Number of parallel jobs to use for building]:N:_default' \
'--jobs=[Number of parallel jobs to use for building]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`.  Resolution is not allowed to choose any version that differs from the lockfile]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects\: The lockfile must not change and the artifact cache will not be populated.  Already-cached artifacts may be reused]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed artifact to be available from a local index (\`--index-path\`) or already in the artifact cache. Combine with \`cabin vendor\` to consume a self-contained vendor directory]' \
'--all-features[Enable every feature declared by the root package.  Combines with \`--features\` (the union is the same as \`--all-features\`) and overrides \`--no-default-features\`]' \
'--no-default-features[Disable the package'\''s default features.  Without this flag, the names listed under \`\[features\].default\` are enabled]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(clean)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Same precedence rules as \`cabin build\`]:PATH:_files' \
'--build-dir=[Build output directory.  Same precedence rules as \`cabin build\`\: \`--build-dir\` > \`CABIN_BUILD_DIR\` > \`\[paths\] build-dir\` config setting > built-in default \`build\`]:PATH:_files' \
'--profile=[Limit the clean to the named build profile.  Without this flag every known profile sub-tree is in scope]:NAME:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)--release[Compatibility alias for \`--profile release\`.  Cannot be used together with \`--profile\`]' \
'--dry-run[Print the deletion plan without removing anything.  Output lists the paths that would be removed in deterministic order]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Build output directory.  Same precedence rules as \`cabin build\`\: \`--build-dir\` > \`CABIN_BUILD_DIR\` > \`\[paths\] build-dir\` config setting > built-in default \`build\`]:PATH:_files' \
'--profile=[Build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\`]:NAME:_default' \
'--bin=[Build and run the named \`executable\` target]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'-j+[Number of parallel jobs to use for the build phase]:N:_default' \
'--jobs=[Number of parallel jobs to use for the build phase]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects]' \
'--offline[Forbid network access]' \
'--all-features[Enable every declared feature]' \
'--no-default-features[Disable default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::args -- Arguments forwarded to the executed program.  Everything after `--` is passed verbatim:_default' \
&& ret=0
;;
(r)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Build output directory.  Same precedence rules as \`cabin build\`\: \`--build-dir\` > \`CABIN_BUILD_DIR\` > \`\[paths\] build-dir\` config setting > built-in default \`build\`]:PATH:_files' \
'--profile=[Build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\`]:NAME:_default' \
'--bin=[Build and run the named \`executable\` target]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'-j+[Number of parallel jobs to use for the build phase]:N:_default' \
'--jobs=[Number of parallel jobs to use for the build phase]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects]' \
'--offline[Forbid network access]' \
'--all-features[Enable every declared feature]' \
'--no-default-features[Disable default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::args -- Arguments forwarded to the executed program.  Everything after `--` is passed verbatim:_default' \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Directory for build outputs (build.ninja, object files, linked test executables).  Defaults to \`build\`]:PATH:_files' \
'--profile=[Build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\` - the same default as \`cabin build\` so test runs match the developer'\''s working profile]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index.  Required when the test build closure has any versioned dependency and \`--index-url\` is not given]:PATH:_files' \
'--index-url=[Sparse HTTP index URL]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features for the selected packages]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'*--test=[Run only the named \`test\` target; may be repeated]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects]' \
'--offline[Forbid network access.  Combine with \`cabin vendor\` to run \`cabin test\` against a self-contained local index]' \
'--all-features[Enable every feature declared by selected packages]' \
'--no-default-features[Disable each selected package'\''s default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation]' \
'--allow-no-tests[Exit successfully when the selected packages declare no \`test\` targets.  By default, an empty selection errors so CI does not silently pass when tests have not been declared yet]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(t)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--build-dir=[Directory for build outputs (build.ninja, object files, linked test executables).  Defaults to \`build\`]:PATH:_files' \
'--profile=[Build profile (\`dev\`, \`release\`, or any custom profile declared in \`\[profile.<name>\]\`).  Defaults to \`dev\` - the same default as \`cabin build\` so test runs match the developer'\''s working profile]:NAME:_default' \
'--index-path=[Path to a directory containing the local JSON package index.  Required when the test build closure has any versioned dependency and \`--index-url\` is not given]:PATH:_files' \
'--index-url=[Sparse HTTP index URL]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*--features=[Enable named features for the selected packages]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'*--test=[Run only the named \`test\` target; may be repeated]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--profile)-r[Build with optimizations]' \
'(--profile)--release[Build with optimizations]' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects]' \
'--offline[Forbid network access.  Combine with \`cabin vendor\` to run \`cabin test\` against a self-contained local index]' \
'--all-features[Enable every feature declared by selected packages]' \
'--no-default-features[Disable each selected package'\''s default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation]' \
'--allow-no-tests[Exit successfully when the selected packages declare no \`test\` targets.  By default, an empty selection errors so CI does not silently pass when tests have not been declared yet]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(resolve)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`]:URL:_default' \
'--format=[Output format. \`human\` is a readable summary; \`json\` produces a machine-parseable document.  Defaults to \`human\`]:FORMAT:(human json)' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'*--features=[Feature names to enable on selected root packages. Repeatable; values may also be comma-separated]:FEATURES:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`.  Resolution is not allowed to choose any version that differs from the lockfile. Implies that \`cabin.lock\` will not be written]' \
'--frozen[Like \`--locked\`, but also rejects any state-writing side effects]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed input to be local or already cached]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--all-features[Enable every declared feature on selected root packages. Combines with \`--features\` (the union is requested)]' \
'--no-default-features[Disable selected root packages'\'' \`default\` feature]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`]:URL:_default' \
'--package=[Update only the named **dependency** (and any of its transitive deps that must change to satisfy the new constraints).  Without this flag every locked package is re-resolved]:NAME:_default' \
'--format=[Output format for the resulting resolution]:FORMAT:(human json)' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed input to be local or already cached]' \
'(--default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`]' \
'(--workspace)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the Workspace declares no default-members]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(fetch)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--index-path=[Path to a directory containing the local JSON package index. Required when the manifest declares any versioned dependencies and \`--index-url\` is not given.  Mutually exclusive with \`--index-url\`]:PATH:_files' \
'--index-url=[Sparse HTTP index URL to read package metadata from. Mutually exclusive with \`--index-path\`]:URL:_default' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'--format=[Output format. \`human\` is a readable summary; \`json\` produces a machine-parseable document.  Defaults to \`human\`]:FORMAT:(human json)' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`.  Resolution is not allowed to choose any version that differs from the lockfile]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects. The lockfile is not written and the artifact cache will not be populated.  Already-cached artifacts may be reused]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed input to be local or already cached]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation.  See \`docs/patch-overrides.md\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(vendor)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--vendor-dir=[Output directory for the vendored file registry. Defaults to \`vendor\` next to the workspace root]:PATH:_files' \
'--index-path=[Path to a directory containing the local JSON package index.  Required when the manifest declares any versioned dependencies. \`cabin vendor\` reads per-package metadata directly off disk to build a byte-stable vendor directory, so the index source must be local]:PATH:_files' \
'--cache-dir=[Override the default artifact cache directory]:PATH:_files' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'*--features=[Enable named features for the selected packages]:FEATURES:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(--frozen)--locked[Require an existing, current \`cabin.lock\`]' \
'--frozen[Like \`--locked\`, but also rejects state-writing side effects on the lockfile and the artifact cache.  The vendor directory is the explicit user-requested output of the command and is still written under \`--frozen\`]' \
'--offline[Forbid network access.  Cabin refuses to use an HTTP index URL (\`--index-url\` or a \`\[registry\] index-url\` config setting) and expects every needed artifact to already be available in the artifact cache]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--all-features[Enable every declared feature on selected packages]' \
'--no-default-features[Disable each selected package'\''s default features]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(tree)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--format=[Output format. \`human\` is a Unicode-drawing tree (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--kind=[Restrict the walk to one dependency kind.  Defaults to every kind]:KIND:((all\:"Walk every kind (default)"
normal\:"\`dependencies\` edges only"))' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'*--features=[Enable named features.  May be repeated and/or comma-separated]:FEATURES:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--all-features[Enable every declared feature]' \
'--no-default-features[Disable default features]' \
'--no-patches[Disable every active patch and source-replacement entry for this invocation, mirroring \`cabin metadata --no-patches\`]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(explain)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest]:PATH:_files' \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--cc=[Override the C compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CC\` and \`\[toolchain\].cc\`]:PATH-OR-NAME:_default' \
'--cxx=[Override the C++ compiler.  Accepts a bare command name or a path.  Highest precedence - also overrides \`CXX\` and \`\[toolchain\].cxx\`]:PATH-OR-NAME:_default' \
'--ar=[Override the static-library archiver.  Accepts a bare command name or a path.  Highest precedence - also overrides \`AR\` and \`\[toolchain\].ar\`]:PATH-OR-NAME:_default' \
'(--no-compiler-wrapper)--compiler-wrapper=[Select an executable that prefixes every C and C++ compile command. Accepts a command name or path; \`none\` disables it. Highest precedence - also overrides \`CABIN_COMPILER_WRAPPER\`, config \`\[build\]\`, and the manifest \`\[build\] compiler-wrapper\` declaration. Mutually exclusive with \`--no-compiler-wrapper\`]:WRAPPER:_default' \
'*--features=[Enable named features.  May be repeated and/or comma-separated]:FEATURES:_default' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-compiler-wrapper[Disable the compiler wrapper for this invocation, regardless of any environment variable or manifest declaration.  Equivalent to \`--compiler-wrapper none\` but shorter to type.  Mutually exclusive with \`--compiler-wrapper\`]' \
'--all-features[Enable every declared feature]' \
'--no-default-features[Disable default features]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
":: :_cabin__subcmd__explain_commands" \
"*::: :->explain" \
&& ret=0

    case $state in
    (explain)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-explain-command-$line[1]:"
        case $line[1] in
            (package)
_arguments "${_arguments_options[@]}" : \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Package name to explain:_default' \
&& ret=0
;;
(target)
_arguments "${_arguments_options[@]}" : \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Target name to explain:_default' \
&& ret=0
;;
(source)
_arguments "${_arguments_options[@]}" : \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Package name to explain:_default' \
&& ret=0
;;
(feature)
_arguments "${_arguments_options[@]}" : \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
':query -- Query in the form `package/feature`:_default' \
&& ret=0
;;
(build-config)
_arguments "${_arguments_options[@]}" : \
'--format=[Output format. \`human\` is a concise summary (the default); \`json\` is a structured document for tooling]:FORMAT:(human json)' \
'--profile=[Profile to evaluate, when the explanation depends on the build configuration (\`build-config\`).  Defaults to \`dev\`]:NAME:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--no-patches[Disable every active patch / source-replacement entry]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Package name to explain:_default' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_cabin__subcmd__explain__subcmd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-explain-help-command-$line[1]:"
        case $line[1] in
            (package)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(target)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(source)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(feature)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build-config)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(package)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Must point at a single package; pure-workspace roots are rejected unless the Workspace selects exactly one member with \`--package\`]:PATH:_files' \
'--output-dir=[Directory for the generated archive and metadata]:OUTPUT_DIR:_files' \
'--format=[Output format. \`human\` is a readable summary; \`json\` produces a machine-parseable document.  Defaults to \`human\`]:FORMAT:(human json)' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(publish)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Must point at a single package; pure-workspace roots are rejected]:PATH:_files' \
'--output-dir=[Directory for the dry-run'\''s archive and metadata when \`--registry-dir\` is not given.  Defaults to \`dist/\`.  Mutually exclusive with \`--registry-dir\`]:PATH:_files' \
'--registry-dir=[Local file-registry root to publish into.  Without \`--dry-run\`, the registry is mutated; with \`--dry-run\`, every pre-write check runs but the registry is left untouched]:PATH:_files' \
'--format=[Output format for the publish or dry-run report]:FORMAT:(human json)' \
'*-p+[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--package=[Operate on the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member or appears twice in the workspace]:PACKAGE:_default' \
'*--exclude=[Drop the named package from the selection.  Only valid in combination with \`--workspace\` or \`--default-members\`, or with the no-flag default-member fallback]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--dry-run[Run a publish dry-run only.  With \`--registry-dir\`, validates what would happen against the registry without mutating it. Without \`--registry-dir\`, runs the staging-only dry-run that writes the archive + metadata to \`--output-dir\`]' \
'(-p --package --default-members)--workspace[Operate on every workspace member, then apply \`--exclude\`. Mutually exclusive with \`--package\` / \`--default-members\`]' \
'(--workspace -p --package)--default-members[Operate on \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Same precedence rules as \`cabin build\`\: when omitted, Cabin walks upward from the current directory to find the nearest manifest]:PATH:_files' \
'--build-dir=[Build output directory to exclude from source discovery. Same precedence rules as \`cabin build\`\: \`--build-dir\` > \`CABIN_BUILD_DIR\` > \`\[paths\] build-dir\` config setting > built-in default \`build\`]:PATH:_files' \
'*--exclude=[Exclude one file or directory from formatting.  May be repeated.  Paths are resolved against the current working directory]:PATH:_files' \
'*-p+[Format the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member]:PACKAGE:_default' \
'*--package=[Format the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member]:PACKAGE:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--check[Verify formatting without rewriting any file.  Exits non-zero when at least one file would be reformatted]' \
'--no-ignore-vcs[Disable VCS ignore handling so files that are normally hidden by \`.gitignore\` are also formatted.  Cabin'\''s built-in build / cache / vendor exclusions still apply]' \
'(-p --package --default-members)--workspace[Format every workspace member.  Cannot be combined with \`--package\` or \`--default-members\`]' \
'(--workspace -p --package)--default-members[Format \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(tidy)
_arguments "${_arguments_options[@]}" : \
'--manifest-path=[Path to the cabin.toml manifest.  Same precedence rules as \`cabin build\`\: when omitted, Cabin walks upward from the current directory to find the nearest manifest]:PATH:_files' \
'--build-dir=[Build output directory for the generated compile database. Same precedence rules as \`cabin build\`\: \`--build-dir\` > \`CABIN_BUILD_DIR\` > \`\[paths\] build-dir\` config setting > built-in default \`build\`]:PATH:_files' \
'*--exclude=[Exclude one file or directory from the analysis.  May be repeated.  Paths are resolved against the current working directory]:PATH:_files' \
'*-p+[Analyze the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member]:PACKAGE:_default' \
'*--package=[Analyze the named workspace package.  Repeat the flag to select multiple packages.  Errors when a name is not a workspace member]:PACKAGE:_default' \
'-j+[Number of parallel \`clang-tidy\` instances to run.  Same precedence chain as \`cabin build\`\: this flag wins over \`CABIN_BUILD_JOBS\`, then the \`\[build\] jobs\` config setting, then the backend'\''s own default.  In \`--fix\` mode Cabin clamps the effective value to \`1\` so concurrent rewrites cannot race]:N:_default' \
'--jobs=[Number of parallel \`clang-tidy\` instances to run.  Same precedence chain as \`cabin build\`\: this flag wins over \`CABIN_BUILD_JOBS\`, then the \`\[build\] jobs\` config setting, then the backend'\''s own default.  In \`--fix\` mode Cabin clamps the effective value to \`1\` so concurrent rewrites cannot race]:N:_default' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--fix[Apply the fixes clang-tidy suggests.  Off by default; Cabin never rewrites your sources unless this flag is passed explicitly]' \
'--no-ignore-vcs[Disable VCS ignore handling so files that are normally hidden by \`.gitignore\` are also analyzed.  Cabin'\''s built-in build / cache / vendor exclusions still apply]' \
'(-p --package --default-members)--workspace[Analyze every workspace member.  Cannot be combined with \`--package\` or \`--default-members\`]' \
'(--workspace -p --package)--default-members[Analyze \`\[workspace.default-members\]\`.  Errors when the workspace declares no default-members]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(port)
_arguments "${_arguments_options[@]}" : \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
":: :_cabin__subcmd__port_commands" \
"*::: :->port" \
&& ret=0

    case $state in
    (port)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-port-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_cabin__subcmd__port__subcmd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-port-help-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(compgen)
_arguments "${_arguments_options[@]}" : \
'--output-dir=[Directory to write the completion file(s) into.  Created if it does not already exist; existing files are overwritten. Without this flag a single shell'\''s completion is written to stdout]:PATH:_files' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'--all[Generate completions for every supported shell.  Requires \`--output-dir\`; multiple files cannot be written to stdout cleanly]' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
'::shell -- Target shell.  Required unless `--all` is given:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(mangen)
_arguments "${_arguments_options[@]}" : \
'--output-dir=[Directory to write man pages into.  Created if it does not already exist; existing files are overwritten.  Without this flag the root \`cabin(1)\` man page is written to stdout]:PATH:_files' \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(version)
_arguments "${_arguments_options[@]}" : \
'--color=[Coloring\: auto, always, never \[default\: auto\]]:WHEN:(auto always never)' \
'*-Z+[Enable an experimental feature (may be repeated)]:FEATURE:_default' \
'(-q --quiet)*-v[Use verbose output (-vv very verbose output)]' \
'(-q --quiet)*--verbose[Use verbose output (-vv very verbose output)]' \
'(-v --verbose)-q[Do not print cabin log messages]' \
'(-v --verbose)--quiet[Do not print cabin log messages]' \
'-V[Print version info and exit]' \
'--version[Print version info and exit]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_cabin__subcmd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-help-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(new)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(remove)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(metadata)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(check)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(clean)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(test)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(resolve)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fetch)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(vendor)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(tree)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(explain)
_arguments "${_arguments_options[@]}" : \
":: :_cabin__subcmd__help__subcmd__explain_commands" \
"*::: :->explain" \
&& ret=0

    case $state in
    (explain)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-help-explain-command-$line[1]:"
        case $line[1] in
            (package)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(target)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(source)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(feature)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build-config)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(package)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(publish)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fmt)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(tidy)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(port)
_arguments "${_arguments_options[@]}" : \
":: :_cabin__subcmd__help__subcmd__port_commands" \
"*::: :->port" \
&& ret=0

    case $state in
    (port)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cabin-help-port-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(compgen)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(mangen)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(version)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_cabin_commands] )) ||
_cabin_commands() {
    local commands; commands=(
'init:Create a new cabin package in an existing directory' \
'new:Create a new cabin package' \
'add:Add a dependency to a cabin.toml manifest file' \
'remove:Remove a dependency from a cabin.toml manifest file' \
'metadata:Output workspace metadata as JSON' \
'build:Compile a local package and all of its dependencies' \
'b:Compile a local package and all of its dependencies' \
'check:Check a local package and its dependencies for errors' \
'clean:Remove the built directory' \
'run:Run a binary of the local package' \
'r:Run a binary of the local package' \
'test:Run the tests of a local package' \
't:Run the tests of a local package' \
'resolve:Resolve versioned dependencies' \
'update:Update dependencies as recorded in \`cabin.lock\`' \
'fetch:Fetch registry dependencies into the artifact cache' \
'vendor:Vendor external versioned dependencies locally' \
'tree:Display the dependency tree' \
'explain:Explain a loaded package, target, source, or feature' \
'package:Assemble the local package into a distributable archive' \
'publish:Publish a package to a local file registry' \
'fmt:Format codes using clang-format' \
'tidy:Run clang-tidy' \
'port:List or inspect bundled foundation-port recipes' \
'compgen:Generate shell completion scripts for the \`cabin\` CLI' \
'mangen:Generate man pages for the \`cabin\` CLI' \
'version:Show version information' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin commands' commands "$@"
}
(( $+functions[_cabin__subcmd__add_commands] )) ||
_cabin__subcmd__add_commands() {
    local commands; commands=()
    _describe -t commands 'cabin add commands' commands "$@"
}
(( $+functions[_cabin__subcmd__build_commands] )) ||
_cabin__subcmd__build_commands() {
    local commands; commands=()
    _describe -t commands 'cabin build commands' commands "$@"
}
(( $+functions[_cabin__subcmd__check_commands] )) ||
_cabin__subcmd__check_commands() {
    local commands; commands=()
    _describe -t commands 'cabin check commands' commands "$@"
}
(( $+functions[_cabin__subcmd__clean_commands] )) ||
_cabin__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'cabin clean commands' commands "$@"
}
(( $+functions[_cabin__subcmd__compgen_commands] )) ||
_cabin__subcmd__compgen_commands() {
    local commands; commands=()
    _describe -t commands 'cabin compgen commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain_commands] )) ||
_cabin__subcmd__explain_commands() {
    local commands; commands=(
'package:Explain why a package is selected and which selected root pulls it in' \
'target:Explain a target'\''s owning package, kind, deps, and language summary' \
'source:Explain where a package'\''s source bytes come from' \
'feature:Explain a feature'\''s enablement on the named package' \
'build-config:Explain the resolved \[\`cabin_core\:\:BuildConfiguration\`\] for a package (profile, toolchain, flags, options, variants, condition trace, fingerprint)' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin explain commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__build-config_commands] )) ||
_cabin__subcmd__explain__subcmd__build-config_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain build-config commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__feature_commands] )) ||
_cabin__subcmd__explain__subcmd__feature_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain feature commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help_commands] )) ||
_cabin__subcmd__explain__subcmd__help_commands() {
    local commands; commands=(
'package:Explain why a package is selected and which selected root pulls it in' \
'target:Explain a target'\''s owning package, kind, deps, and language summary' \
'source:Explain where a package'\''s source bytes come from' \
'feature:Explain a feature'\''s enablement on the named package' \
'build-config:Explain the resolved \[\`cabin_core\:\:BuildConfiguration\`\] for a package (profile, toolchain, flags, options, variants, condition trace, fingerprint)' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin explain help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__build-config_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__build-config_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help build-config commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__feature_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__feature_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help feature commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__help_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__help_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__package_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help package commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__source_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__source_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help source commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__help__subcmd__target_commands] )) ||
_cabin__subcmd__explain__subcmd__help__subcmd__target_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain help target commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__package_commands] )) ||
_cabin__subcmd__explain__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain package commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__source_commands] )) ||
_cabin__subcmd__explain__subcmd__source_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain source commands' commands "$@"
}
(( $+functions[_cabin__subcmd__explain__subcmd__target_commands] )) ||
_cabin__subcmd__explain__subcmd__target_commands() {
    local commands; commands=()
    _describe -t commands 'cabin explain target commands' commands "$@"
}
(( $+functions[_cabin__subcmd__fetch_commands] )) ||
_cabin__subcmd__fetch_commands() {
    local commands; commands=()
    _describe -t commands 'cabin fetch commands' commands "$@"
}
(( $+functions[_cabin__subcmd__fmt_commands] )) ||
_cabin__subcmd__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'cabin fmt commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help_commands] )) ||
_cabin__subcmd__help_commands() {
    local commands; commands=(
'init:Create a new cabin package in an existing directory' \
'new:Create a new cabin package' \
'add:Add a dependency to a cabin.toml manifest file' \
'remove:Remove a dependency from a cabin.toml manifest file' \
'metadata:Output workspace metadata as JSON' \
'build:Compile a local package and all of its dependencies' \
'check:Check a local package and its dependencies for errors' \
'clean:Remove the built directory' \
'run:Run a binary of the local package' \
'test:Run the tests of a local package' \
'resolve:Resolve versioned dependencies' \
'update:Update dependencies as recorded in \`cabin.lock\`' \
'fetch:Fetch registry dependencies into the artifact cache' \
'vendor:Vendor external versioned dependencies locally' \
'tree:Display the dependency tree' \
'explain:Explain a loaded package, target, source, or feature' \
'package:Assemble the local package into a distributable archive' \
'publish:Publish a package to a local file registry' \
'fmt:Format codes using clang-format' \
'tidy:Run clang-tidy' \
'port:List or inspect bundled foundation-port recipes' \
'compgen:Generate shell completion scripts for the \`cabin\` CLI' \
'mangen:Generate man pages for the \`cabin\` CLI' \
'version:Show version information' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__add_commands] )) ||
_cabin__subcmd__help__subcmd__add_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help add commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__build_commands] )) ||
_cabin__subcmd__help__subcmd__build_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help build commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__check_commands] )) ||
_cabin__subcmd__help__subcmd__check_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help check commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__clean_commands] )) ||
_cabin__subcmd__help__subcmd__clean_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help clean commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__compgen_commands] )) ||
_cabin__subcmd__help__subcmd__compgen_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help compgen commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain_commands] )) ||
_cabin__subcmd__help__subcmd__explain_commands() {
    local commands; commands=(
'package:Explain why a package is selected and which selected root pulls it in' \
'target:Explain a target'\''s owning package, kind, deps, and language summary' \
'source:Explain where a package'\''s source bytes come from' \
'feature:Explain a feature'\''s enablement on the named package' \
'build-config:Explain the resolved \[\`cabin_core\:\:BuildConfiguration\`\] for a package (profile, toolchain, flags, options, variants, condition trace, fingerprint)' \
    )
    _describe -t commands 'cabin help explain commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain__subcmd__build-config_commands] )) ||
_cabin__subcmd__help__subcmd__explain__subcmd__build-config_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help explain build-config commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain__subcmd__feature_commands] )) ||
_cabin__subcmd__help__subcmd__explain__subcmd__feature_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help explain feature commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain__subcmd__package_commands] )) ||
_cabin__subcmd__help__subcmd__explain__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help explain package commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain__subcmd__source_commands] )) ||
_cabin__subcmd__help__subcmd__explain__subcmd__source_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help explain source commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__explain__subcmd__target_commands] )) ||
_cabin__subcmd__help__subcmd__explain__subcmd__target_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help explain target commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__fetch_commands] )) ||
_cabin__subcmd__help__subcmd__fetch_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help fetch commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__fmt_commands] )) ||
_cabin__subcmd__help__subcmd__fmt_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help fmt commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__help_commands] )) ||
_cabin__subcmd__help__subcmd__help_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__init_commands] )) ||
_cabin__subcmd__help__subcmd__init_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help init commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__mangen_commands] )) ||
_cabin__subcmd__help__subcmd__mangen_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help mangen commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__metadata_commands] )) ||
_cabin__subcmd__help__subcmd__metadata_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help metadata commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__new_commands] )) ||
_cabin__subcmd__help__subcmd__new_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help new commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__package_commands] )) ||
_cabin__subcmd__help__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help package commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__port_commands] )) ||
_cabin__subcmd__help__subcmd__port_commands() {
    local commands; commands=(
'list:List the bundled foundation ports' \
    )
    _describe -t commands 'cabin help port commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__port__subcmd__list_commands] )) ||
_cabin__subcmd__help__subcmd__port__subcmd__list_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help port list commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__publish_commands] )) ||
_cabin__subcmd__help__subcmd__publish_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help publish commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__remove_commands] )) ||
_cabin__subcmd__help__subcmd__remove_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help remove commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__resolve_commands] )) ||
_cabin__subcmd__help__subcmd__resolve_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help resolve commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__run_commands] )) ||
_cabin__subcmd__help__subcmd__run_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help run commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__test_commands] )) ||
_cabin__subcmd__help__subcmd__test_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help test commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__tidy_commands] )) ||
_cabin__subcmd__help__subcmd__tidy_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help tidy commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__tree_commands] )) ||
_cabin__subcmd__help__subcmd__tree_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help tree commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__update_commands] )) ||
_cabin__subcmd__help__subcmd__update_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help update commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__vendor_commands] )) ||
_cabin__subcmd__help__subcmd__vendor_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help vendor commands' commands "$@"
}
(( $+functions[_cabin__subcmd__help__subcmd__version_commands] )) ||
_cabin__subcmd__help__subcmd__version_commands() {
    local commands; commands=()
    _describe -t commands 'cabin help version commands' commands "$@"
}
(( $+functions[_cabin__subcmd__init_commands] )) ||
_cabin__subcmd__init_commands() {
    local commands; commands=()
    _describe -t commands 'cabin init commands' commands "$@"
}
(( $+functions[_cabin__subcmd__mangen_commands] )) ||
_cabin__subcmd__mangen_commands() {
    local commands; commands=()
    _describe -t commands 'cabin mangen commands' commands "$@"
}
(( $+functions[_cabin__subcmd__metadata_commands] )) ||
_cabin__subcmd__metadata_commands() {
    local commands; commands=()
    _describe -t commands 'cabin metadata commands' commands "$@"
}
(( $+functions[_cabin__subcmd__new_commands] )) ||
_cabin__subcmd__new_commands() {
    local commands; commands=()
    _describe -t commands 'cabin new commands' commands "$@"
}
(( $+functions[_cabin__subcmd__package_commands] )) ||
_cabin__subcmd__package_commands() {
    local commands; commands=()
    _describe -t commands 'cabin package commands' commands "$@"
}
(( $+functions[_cabin__subcmd__port_commands] )) ||
_cabin__subcmd__port_commands() {
    local commands; commands=(
'list:List the bundled foundation ports' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin port commands' commands "$@"
}
(( $+functions[_cabin__subcmd__port__subcmd__help_commands] )) ||
_cabin__subcmd__port__subcmd__help_commands() {
    local commands; commands=(
'list:List the bundled foundation ports' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cabin port help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__port__subcmd__help__subcmd__help_commands] )) ||
_cabin__subcmd__port__subcmd__help__subcmd__help_commands() {
    local commands; commands=()
    _describe -t commands 'cabin port help help commands' commands "$@"
}
(( $+functions[_cabin__subcmd__port__subcmd__help__subcmd__list_commands] )) ||
_cabin__subcmd__port__subcmd__help__subcmd__list_commands() {
    local commands; commands=()
    _describe -t commands 'cabin port help list commands' commands "$@"
}
(( $+functions[_cabin__subcmd__port__subcmd__list_commands] )) ||
_cabin__subcmd__port__subcmd__list_commands() {
    local commands; commands=()
    _describe -t commands 'cabin port list commands' commands "$@"
}
(( $+functions[_cabin__subcmd__publish_commands] )) ||
_cabin__subcmd__publish_commands() {
    local commands; commands=()
    _describe -t commands 'cabin publish commands' commands "$@"
}
(( $+functions[_cabin__subcmd__remove_commands] )) ||
_cabin__subcmd__remove_commands() {
    local commands; commands=()
    _describe -t commands 'cabin remove commands' commands "$@"
}
(( $+functions[_cabin__subcmd__resolve_commands] )) ||
_cabin__subcmd__resolve_commands() {
    local commands; commands=()
    _describe -t commands 'cabin resolve commands' commands "$@"
}
(( $+functions[_cabin__subcmd__run_commands] )) ||
_cabin__subcmd__run_commands() {
    local commands; commands=()
    _describe -t commands 'cabin run commands' commands "$@"
}
(( $+functions[_cabin__subcmd__test_commands] )) ||
_cabin__subcmd__test_commands() {
    local commands; commands=()
    _describe -t commands 'cabin test commands' commands "$@"
}
(( $+functions[_cabin__subcmd__tidy_commands] )) ||
_cabin__subcmd__tidy_commands() {
    local commands; commands=()
    _describe -t commands 'cabin tidy commands' commands "$@"
}
(( $+functions[_cabin__subcmd__tree_commands] )) ||
_cabin__subcmd__tree_commands() {
    local commands; commands=()
    _describe -t commands 'cabin tree commands' commands "$@"
}
(( $+functions[_cabin__subcmd__update_commands] )) ||
_cabin__subcmd__update_commands() {
    local commands; commands=()
    _describe -t commands 'cabin update commands' commands "$@"
}
(( $+functions[_cabin__subcmd__vendor_commands] )) ||
_cabin__subcmd__vendor_commands() {
    local commands; commands=()
    _describe -t commands 'cabin vendor commands' commands "$@"
}
(( $+functions[_cabin__subcmd__version_commands] )) ||
_cabin__subcmd__version_commands() {
    local commands; commands=()
    _describe -t commands 'cabin version commands' commands "$@"
}

if [ "$funcstack[1]" = "_cabin" ]; then
    _cabin "$@"
else
    compdef _cabin cabin
fi
