# bash completion for omp — generated by `omp completions bash`

_omp_comma() {
	local words="$1" realcur prefix
	realcur="${cur##*,}"
	prefix="${cur%"$realcur"}"
	local -a matches
	matches=( $(compgen -W "$words" -- "$realcur") )
	local i
	for (( i=0; i < ${#matches[@]}; i++ )); do matches[i]="$prefix${matches[i]}"; done
	COMPREPLY=( "${matches[@]}" )
	compopt -o nospace 2>/dev/null
}

_omp_root() {
	case "$prev" in
		--model)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--smol)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--slow)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--plan)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--prewalk-into)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--plan-yolo-into)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--provider)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--api-key)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--system-prompt)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--system-prompt-template)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--append-system-prompt)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--profile)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--alias)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--cwd)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--mode)
			COMPREPLY=( $(compgen -W "text json rpc acp rpc-ui" -- "$cur") ); return 0
			;;
		--config)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--add-dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--resume|-r)
			COMPREPLY=( $(compgen -W "$(command omp __complete sessions -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--session-dir)
			COMPREPLY=( $(compgen -d -- "$cur") ); compopt -o filenames; return 0
			;;
		--models)
			_omp_comma "$(command omp __complete models 2>/dev/null | cut -f1)"; return 0
			;;
		--tools)
			_omp_comma "read bash edit ast_grep ast_edit ask debug ida eval github glob grep find lsp checkpoint rewind context_notes new_context security_scan task wait todo web_search write memory_edit retain recall reflect learn manage_skill"; return 0
			;;
		--thinking)
			COMPREPLY=( $(compgen -W "off minimal low medium high xhigh max auto" -- "$cur") ); return 0
			;;
		--service-tier)
			COMPREPLY=( $(compgen -W "none auto default flex scale priority" -- "$cur") ); return 0
			;;
		--hook)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--extension|-e)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--skills)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--export)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--max-time)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--approval-mode)
			COMPREPLY=( $(compgen -W "always-ask write yolo" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--model --smol --slow --plan --prewalk --no-prewalk --prewalk-into --plan-yolo --plan-yolo-into --provider --api-key --system-prompt --system-prompt-template --append-system-prompt --allow-home --profile --alias --cwd --mode --config --add-dir --print -p --continue -c --resume -r --from-claude --from-codex --session-dir --no-session --models --no-tools --no-lsp --no-pty --tools --thinking --service-tier --hide-thinking --advisor --external-thinking --hook --extension -e --no-extensions --no-skills --skills --no-rules --export --no-title --no-ui --print-thoughts --max-time --auto-approve --approval-mode" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "acp agents auth-broker auth-gateway bench browser-relay cleanse clip collab commit completions compress config dry-balance find gallery gc git grep grievances if-bench images img install join login models play plugin plugins predict ps q read render say search setup share shell skill skills ssh stats stream tiny-models token toks ttsr update usage web-search worktree wt --model --smol --slow --plan --prewalk --no-prewalk --prewalk-into --plan-yolo --plan-yolo-into --provider --api-key --system-prompt --system-prompt-template --append-system-prompt --allow-home --profile --alias --cwd --mode --config --add-dir --print -p --continue -c --resume -r --from-claude --from-codex --session-dir --no-session --models --no-tools --no-lsp --no-pty --tools --thinking --service-tier --hide-thinking --advisor --external-thinking --hook --extension -e --no-extensions --no-skills --skills --no-rules --export --no-title --no-ui --print-thoughts --max-time --auto-approve --approval-mode" -- "$cur") )
	fi
}

_omp_cmd_acp() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_agents() {
	case "$prev" in
		--dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--force -f --json --dir --user --project" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "unpack" -- "$cur") )
	fi
}

_omp_cmd_auth_broker() {
	case "$prev" in
		--bind|-b)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--via)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--provider)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --bind -b --regenerate --via --provider --include-disabled --from-local --include-env --include-oauth --dry-run" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "serve token login logout import migrate status list" -- "$cur") )
	fi
}

_omp_cmd_auth_gateway() {
	case "$prev" in
		--bind|-b)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --bind -b --regenerate --no-auth --strict" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "serve token status check" -- "$cur") )
	fi
}

_omp_cmd_bench() {
	case "$prev" in
		--runs)
			return 0
			;;
		--max-tokens)
			return 0
			;;
		--prompt)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--profile)
			COMPREPLY=( $(compgen -W "chat prefill generation mix" -- "$cur") ); return 0
			;;
		--prefill-bytes)
			return 0
			;;
		--service-tier)
			COMPREPLY=( $(compgen -W "none auto default flex scale priority" -- "$cur") ); return 0
			;;
		--par)
			return 0
			;;
		--cache-prefix-file)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--cache-prefix-bytes)
			return 0
			;;
		--cache-pairs)
			return 0
			;;
		--cache-concurrency)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--runs --max-tokens --prompt --profile --prefill-bytes --detailed --service-tier --json --par --cache --cache-prefix-file --cache-prefix-bytes --cache-pairs --cache-concurrency" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_browser_relay() {
	case "$prev" in
		--port|-p)
			return 0
			;;
		--token)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--port -p --token --dir --no-group --verbose -v" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "serve install" -- "$cur") )
	fi
}

_omp_cmd_cleanse() {
	case "$prev" in
		--agents|-n)
			return 0
			;;
		--model|-m)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--agents -n --model -m --tests -t --all -a" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_clip() {
	case "$prev" in
		--title|-t)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--description|-d)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--server)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--title -t --description -d --server" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_collab() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--view --json -j" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "list link" -- "$cur") )
	fi
}

_omp_cmd_commit() {
	case "$prev" in
		--context|-c)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--model|-m)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--push --dry-run --no-changelog --legacy --context -c --model -m" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_completions() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "bash zsh fish" -- "$cur") )
	fi
}

_omp_cmd_compress() {
	case "$prev" in
		--out|-o)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--rounds|-r)
			return 0
			;;
		--agents|-n)
			return 0
			;;
		--model|-m)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--out -o --inPlace -i --rounds -r --agents -n --model -m" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_config() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "list get set reset path init-xdg" -- "$cur") )
	fi
}

_omp_cmd_dry_balance() {
	case "$prev" in
		--model)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--count)
			return 0
			;;
		--concurrency)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--model --count --concurrency --json --bench" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_find() {
	case "$prev" in
		--keyword|-k)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--keyword -k --hidden --json --quiet -q" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_gallery() {
	case "$prev" in
		--surface)
			COMPREPLY=( $(compgen -W "tool composer segment all" -- "$cur") ); return 0
			;;
		--tool|-t)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--composer)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--segment)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--state|-s)
			COMPREPLY=( $(compgen -W "streaming streaming args progress in progress success done error failed" -- "$cur") ); return 0
			;;
		--width|-w)
			return 0
			;;
		--out|-o)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--font)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--font-size)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--surface --tool -t --composer --segment --state -s --width -w --expanded -e --plain --screenshot --out -o --font --font-size" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_gc() {
	case "$prev" in
		--agent-dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--cold-archive-after-days)
			return 0
			;;
		--retain-newest-global)
			return 0
			;;
		--retain-newest-per-cwd)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--apply --json --agent-dir --blobs --archive --wal --cold-archive-after-days --retain-newest-global --retain-newest-per-cwd" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_git() {
	case "$prev" in
		--dir|-C)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--dir -C" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_grep() {
	case "$prev" in
		--glob|-g)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--limit|-l)
			return 0
			;;
		--context|-C)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--glob -g --limit -l --context -C --files -f --count -c --no-gitignore" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_grievances() {
	case "$prev" in
		--limit|-n)
			return 0
			;;
		--tool|-t)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--id)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--limit -n --tool -t --json -j --id --all" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "list clean push" -- "$cur") )
	fi
}

_omp_cmd_if_bench() {
	case "$prev" in
		--turns)
			return 0
			;;
		--length)
			return 0
			;;
		--max-tokens)
			return 0
			;;
		--nya-max)
			return 0
			;;
		--par)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--turns --length --max-tokens --nya-max --par --json" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_images() {
	case "$prev" in
		--dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--timeout)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --apply --all --dir --timeout" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "status doctor probe purge" -- "$cur") )
	fi
}

_omp_cmd_install() {
	case "$prev" in
		--scope)
			COMPREPLY=( $(compgen -W "user project" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --force --dry-run --scope" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_join() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_login() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_models() {
	case "$prev" in
		--kind)
			COMPREPLY=( $(compgen -W "chat tiny image tts stt search judge embedding rerank video all" -- "$cur") ); return 0
			;;
		--extension|-e)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--config)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --kind --extension -e --no-extensions --config" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_play() {
	case "$prev" in
		--speed|-s)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--idle-limit|-i)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--speed -s --idle-limit -i" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_plugin() {
	case "$prev" in
		--enable)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--disable)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--set)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--scope)
			COMPREPLY=( $(compgen -W "user project" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --fix --force --dry-run --local -l --enable --disable --set --scope" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "install uninstall list link doctor features config enable disable marketplace discover upgrade" -- "$cur") )
	fi
}

_omp_cmd_predict() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_ps() {
	case "$prev" in
		--dir)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--global)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--lines|-n)
			return 0
			;;
		--grep)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--timeout)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--all -a --json -j --plain --dir --global --follow -f --head --lines -n --grep --timeout" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "list info logs stop kill restart" -- "$cur") )
	fi
}

_omp_cmd_read() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_render() {
	case "$prev" in
		--width|-w)
			return 0
			;;
		--height)
			return 0
			;;
		--repaint)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--width -w --height --timing -t --repaint --plain --quiet -q" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_say() {
	case "$prev" in
		--voice)
			COMPREPLY=( $(compgen -W "af_heart af_bella af_nicole af_aoede af_kore af_sarah am_michael am_fenrir am_puck bf_emma bm_george bm_fable" -- "$cur") ); return 0
			;;
		--model)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--file|-f)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--out|-o)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--voice --model --file -f --out -o" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_search() {
	case "$prev" in
		--model)
			COMPREPLY=( $(compgen -W "$(command omp __complete models -- "$cur" 2>/dev/null | cut -f1)" -- "$cur") ); return 0
			;;
		--recency)
			COMPREPLY=( $(compgen -W "day week month year" -- "$cur") ); return 0
			;;
		--limit|-l)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--model --recency --limit -l --compact" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_setup() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--check -c --json" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "python speech" -- "$cur") )
	fi
}

_omp_cmd_share() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--gist" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_shell() {
	case "$prev" in
		--cwd|-C)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--timeout|-t)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--cwd -C --timeout -t --no-snapshot" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_skill() {
	case "$prev" in
		--sort)
			COMPREPLY=( $(compgen -W "relevance downloads recent" -- "$cur") ); return 0
			;;
		--scope)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--tag)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--registry)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--package)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--expires)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--global -g --yes -y --json --sort --scope --tag --dry-run --allow-secrets --registry --undo --package --expires" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "publish version tag yank deprecate owner token import install update uninstall search info list" -- "$cur") )
	fi
}

_omp_cmd_ssh() {
	case "$prev" in
		--host)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--user)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--port)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--key)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--desc)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--scope)
			COMPREPLY=( $(compgen -W "project user" -- "$cur") ); return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json --host --user --port --key --desc --compat --scope" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "add remove list" -- "$cur") )
	fi
}

_omp_cmd_stats() {
	case "$prev" in
		--port|-p)
			return 0
			;;
		--host)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--port -p --host --json -j --summary -s" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_stream() {
	case "$prev" in
		--title)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--server)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--title --server --no-tui" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_tiny_models() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "download list" -- "$cur") )
	fi
}

_omp_cmd_token() {
	case "$prev" in
		--account|-a)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--raw --force-refresh --account -a --list -l" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_toks() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json" -- "$cur") )
	else
		COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames
	fi
}

_omp_cmd_ttsr() {
	case "$prev" in
		--file)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--rule|-r)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--source)
			COMPREPLY=( $(compgen -W "text thinking tool" -- "$cur") ); return 0
			;;
		--tool)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--path|-p)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--agent)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--max-bytes)
			return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--file --rule -r --source --tool --path -p --agent --verbose -v --json --no-gitignore --max-bytes" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "test list scan" -- "$cur") )
	fi
}

_omp_cmd_update() {
	case "$prev" in

	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--force -f --check -c --plugins -l --canary --stable" -- "$cur") )
	else
		:
	fi
}

_omp_cmd_usage() {
	case "$prev" in
		--provider|-p)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--days|-d)
			return 0
			;;
		--extension|-e)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--json -j --provider -p --redact -r --history --days -d --extension -e --no-extensions" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "invalidate clients" -- "$cur") )
	fi
}

_omp_cmd_worktree() {
	case "$prev" in
		--cwd|-C)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--branch|-b)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
		--force-branch|-B)
			COMPREPLY=( $(compgen -f -- "$cur") ); compopt -o filenames; return 0
			;;
	esac
	if [[ "$cur" == -* ]]; then
		COMPREPLY=( $(compgen -W "--cwd -C --branch -b --force-branch -B --detach -d --quiet -q --all --dry-run -n --json -j" -- "$cur") )
	else
		COMPREPLY=( $(compgen -W "list clear add" -- "$cur") )
	fi
}

_omp() {
	local cur prev cmd i
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	cmd=""
	for (( i=1; i < COMP_CWORD; i++ )); do
		case "${COMP_WORDS[i]}" in
			-*) ;;
			*) cmd="${COMP_WORDS[i]}"; break ;;
		esac
	done
	case "$cmd" in
		acp)
			_omp_cmd_acp
			;;
		agents)
			_omp_cmd_agents
			;;
		auth-broker)
			_omp_cmd_auth_broker
			;;
		auth-gateway)
			_omp_cmd_auth_gateway
			;;
		bench)
			_omp_cmd_bench
			;;
		browser-relay)
			_omp_cmd_browser_relay
			;;
		cleanse)
			_omp_cmd_cleanse
			;;
		clip)
			_omp_cmd_clip
			;;
		collab)
			_omp_cmd_collab
			;;
		commit)
			_omp_cmd_commit
			;;
		completions)
			_omp_cmd_completions
			;;
		compress)
			_omp_cmd_compress
			;;
		config)
			_omp_cmd_config
			;;
		dry-balance)
			_omp_cmd_dry_balance
			;;
		find)
			_omp_cmd_find
			;;
		gallery)
			_omp_cmd_gallery
			;;
		gc)
			_omp_cmd_gc
			;;
		git)
			_omp_cmd_git
			;;
		grep)
			_omp_cmd_grep
			;;
		grievances)
			_omp_cmd_grievances
			;;
		if-bench)
			_omp_cmd_if_bench
			;;
		images|img)
			_omp_cmd_images
			;;
		install)
			_omp_cmd_install
			;;
		join)
			_omp_cmd_join
			;;
		login)
			_omp_cmd_login
			;;
		models)
			_omp_cmd_models
			;;
		play)
			_omp_cmd_play
			;;
		plugin|plugins)
			_omp_cmd_plugin
			;;
		predict)
			_omp_cmd_predict
			;;
		ps)
			_omp_cmd_ps
			;;
		read)
			_omp_cmd_read
			;;
		render)
			_omp_cmd_render
			;;
		say)
			_omp_cmd_say
			;;
		search|q|web-search)
			_omp_cmd_search
			;;
		setup)
			_omp_cmd_setup
			;;
		share)
			_omp_cmd_share
			;;
		shell)
			_omp_cmd_shell
			;;
		skill|skills)
			_omp_cmd_skill
			;;
		ssh)
			_omp_cmd_ssh
			;;
		stats)
			_omp_cmd_stats
			;;
		stream)
			_omp_cmd_stream
			;;
		tiny-models)
			_omp_cmd_tiny_models
			;;
		token)
			_omp_cmd_token
			;;
		toks)
			_omp_cmd_toks
			;;
		ttsr)
			_omp_cmd_ttsr
			;;
		update)
			_omp_cmd_update
			;;
		usage)
			_omp_cmd_usage
			;;
		worktree|wt)
			_omp_cmd_worktree
			;;
		*) _omp_root ;;
	esac
}
complete -F _omp omp

