Skip to content

New Script: Hindsight LXC - #2491

Open
andy-vdg wants to merge 3 commits into
community-scripts:mainfrom
andy-vdg:hindsight
Open

andy-vdg wants to merge 3 commits into
community-scripts:mainfrom
andy-vdg:hindsight

Conversation

@andy-vdg

@andy-vdg andy-vdg commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

✍️ Description

New script: Hindsight, an open-source memory server for AI agents (MIT, Python). Agents store conversations and documents in memory banks, then recall facts, entities and their history, or reflect on them, through a REST API, SDKs and a built-in MCP server.

  • ct/hindsight.sh, install/hindsight-install.sh, json/hindsight.json.
  • Install: fetch_and_deploy_gh_release … "tarball", then setup_uv with Python 3.11 and uv sync --locked --package hindsight-api-slim --extra local-ml, the same lockfile and extras as upstream's Dockerfile. The embedding and reranker models the Dockerfile preloads (BAAI/bge-small-en-v1.5, cross-encoder/ms-marco-MiniLM-L-6-v2) are downloaded during install, so the first start needs no network.
  • Database: PostgreSQL 18 with pgvector via setup_postgresql / setup_postgresql_db (extensions vector, pg_trgm, btree_gin). Upstream's embedded pg0 database is not used: its initdb refuses to run as root.
  • Config: /opt/hindsight.env; data and model cache: /opt/hindsight_data. Both are outside the deploy target, so the update needs no backup.
  • LLM: Hindsight uses an LLM for fact extraction and reflect. The provider, key, model and base URL are app_vars (var_llm_provider, var_llm_api_key, var_llm_model, var_llm_base_url); nothing is asked inside the container. Left empty, Hindsight starts with its none provider (memories are stored as plain chunks, no extraction or reflect), and the install ends with a msg_warn naming the file to edit. For a local LLM, the base URL can point at the Ollama script's container (http://<ollama-ip>:11434/v1).
  • Authentication: upstream ships the API with no authentication. Because Hindsight holds agents' memories, the install turns on upstream's built-in ApiKeyTenantExtension with a key from random_password 48, saved to ~/hindsight.creds (mode 600) next to the database login. The REST API and the MCP endpoint then need Authorization: Bearer <key>; /health and /docs stay open. The closing message and a json note say where the key is. The API listens on 0.0.0.0:8888, like the Dockerfile.
  • Update: check_for_gh_release, CLEAN_INSTALL=1 redeploy, uv sync again.

Upstream research: docker/standalone/Dockerfile (python:3.11-slim, uv sync --locked … --extra local-ml --extra embedded-db, model preload, EXPOSE 8888, HINDSIGHT_API_HOST=0.0.0.0); hindsight_api/pg0.py for the embedded database; hindsight_api/config.py for the variables; the alembic migrations for the extensions they create.

🔗 Related PR / Issue

Link: None

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No breaking changes – Existing functionality remains intact.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🏗️ arm64 Support (X in brackets)

  • arm64 supported - Tested and supported on arm64.
  • arm64 not tested - Assumed to work on arm64, but testing has not been done.
  • arm64 not supported - Confirmed upstream dependencies or binaries do not support arm64.

No arm64 host available, so var_arm64 is left unset (the user is asked) and the json has no architectures. The lockfile pins CPU torch wheels for x86_64; arm64 wheels exist upstream but are untested here.


🖥️ Tested on (X in brackets)

  • Proxmox VE – Created on a Proxmox VE host and the app works.
  • Incus – Created on an Incus host and the app works.

Application containers run on both; tick what you actually tested. VMs and host tools are Proxmox only.

Proxmox VE 9, Debian 13 template, unprivileged:

  • unattended create with the LLM values preset, and two interactive creates through the advanced menus with no LLM set;
  • health endpoint 200 with the database connected; a memory retained and recalled through the API (none provider);
  • API key: retain without a key or with a wrong key → 401, with the key → 200; MCP initialize without the key → 401, with it → 200; /health and /docs → 200;
  • pct reboot: service back, health 200;
  • update path from a lowered ~/.hindsight: 1.0.0 → 1.1.0 deployed, uv sync rebuilt the environment, config unchanged, the stored memory still recalled.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • ✨ New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

🔍 Code & Security Review (X in brackets)

  • Follows CODE-AUDIT.md & CONTRIBUTING.md guidelines
  • Uses correct script structure (AppName.sh, AppName-install.sh, AppName.json)
  • No hardcoded credentials
  • No Docker / Docker Compose – The application is installed bare-metal; Docker is not used.
  • No git pull – Updates use fetch_and_deploy_gh_release, fetch_and_deploy_codeberg_release, fetch_and_deploy_gl_release, or fetch_and_deploy_from_url instead of git pull.

🤖 AI Assistance (X in brackets)

If you used an AI tool (GitHub Copilot, Claude, ChatGPT, etc.) to write or generate any scripts in this PR, you must confirm compliance below.
Select exactly one option.

  • No AI used – Scripts were written without AI assistance.
  • AI was used – I confirm the scripts were built using AGENTS.md and .github/agents/pve-script-creator.agent.md as guidance, and the output has been reviewed and corrected to match those guidelines.

Claude Opus 5.5 (Anthropic), medium reasoning, in Claude Code: read upstream's Dockerfile and source, drafted the scripts and the JSON from AGENTS.md, and ran the test builds on my Proxmox hosts. I made the design decisions, ran the interactive installs and reviewed the result.


📋 Additional Information (optional)

The generated API key departs from upstream's default (no authentication). If upstream's default is preferred, the change is the two HINDSIGHT_API_TENANT_* lines and the creds block; they can be swapped for a warning note.


📦 Application Requirements (for new scripts)

⚠️ Do not remove this section.
It is used by automated PR validation checks.
If this PR is not a new script submission, leave the checkboxes unchecked.

Required for 🆕 New script submissions.
Pull requests that do not meet these requirements may be closed without review.

  • The application is at least 6 months old
  • The application is actively maintained
  • The application has 1,000+ GitHub stars (59.7k)
  • Official release tarballs are published
  • I understand that not all scripts will be accepted due to various reasons and criteria by the community-scripts ORG

🌐 Source

andy-vdg and others added 3 commits November 1, 2026 12:39
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017tcp6LGbfwMjznKx2UF1Zd
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017tcp6LGbfwMjznKx2UF1Zd
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017tcp6LGbfwMjznKx2UF1Zd
@andy-vdg
andy-vdg requested a review from a team as a code owner November 1, 2026 11:53
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Try this script

ct/hindsight.sh, run in the Proxmox VE shell or on an Incus host:

COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/andy-vdg/DevScripts/hindsight \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/andy-vdg/DevScripts/hindsight/ct/hindsight.sh)"

COMMUNITY_SCRIPTS_URL is not optional for ct/. Fetching the ct/ script from a
branch does not tell the engine where that branch is — with bash -c "$(curl …)"
there is no file on disk for the scripts root to be derived from, so it would fall
back to upstream main and look for the install script there.

Against a core branch as well

Add COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/OWNER/core/BRANCH
to test an engine change at the same time. The two resolve independently.

Useful flags while testing

dev_mode=net logs every fetch with status and duration, so you can confirm the
branch is really being used. dev_mode=keep stops a failed build from deleting
the container along with the evidence.

@andy-vdg andy-vdg changed the title Hindsight New Script: Hindsight LXC Nov 1, 2026
@michelroegl-brunner

Copy link
Copy Markdown
Member

/test

@github-actions

Copy link
Copy Markdown
Contributor

Proxmox script test

@michelroegl-brunner @andy-vdg ✅ 1/1 passed at 7d0e490

Script OS Result Duration Detail
ct/hindsight.sh default ✅ 6m24s http://10.99.0.212:8888/docs → 200
📸 ct/hindsight.sh (default) — http://10.99.0.212:8888/docs Screenshot of ct/hindsight.sh
📄 ct/hindsight.sh (default) — install log (19894 lines)
… 18749 earlier lines cut, the full log is in the run artifacts
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'(--output-format)-H[Display the cache size in human-readable format (e.g., \`1.2GiB\` instead of raw bytes)]' \
'(--output-format)--human[Display the cache size in human-readable format (e.g., \`1.2GiB\` instead of raw bytes)]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(self)
_arguments "${_arguments_options[@]}" : \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files -/' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
":: :_uv__self_commands" \
"*::: :->self" \
&& ret=0
    case $state in
    (self)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:uv-self-command-$line[1]:"
        case $line[1] in
            (update)
_arguments "${_arguments_options[@]}" : \
'--token=[A GitHub token for authentication. A token is not required but can be used to reduce the chance of encountering rate limits]:TOKEN:' \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files -/' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'--dry-run[Run without performing the update]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
'::target_version -- Update to the specified version. If not provided, uv will update to the latest version:' \
&& ret=0
;;
(version)
_arguments "${_arguments_options[@]}" : \
'--output-format=[]:OUTPUT_FORMAT:((text\:"Display the version as plain text"
json\:"Display the version as JSON"))' \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files -/' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'--short[Only print the version]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(clean)
_arguments "${_arguments_options[@]}" : \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files -/' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'--force[Force removal of the cache, ignoring in-use checks]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
'*::package -- The packages to remove from the cache:' \
&& ret=0
;;
(generate-shell-completion)
_arguments "${_arguments_options[@]}" : \
'--cache-dir=[]:CACHE_DIR:_files' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'(--no-color)--color=[]:COLOR:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'--config-file=[]:CONFIG_FILE:_files' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'-n[]' \
'--no-cache[]' \
'--no-python-downloads[]' \
'(-v --verbose)*-q[]' \
'(-v --verbose)*--quiet[]' \
'(-q --quiet)*-v[]' \
'(-q --quiet)*--verbose[]' \
'--native-tls[]' \
'--offline[]' \
'--no-progress[]' \
'--no-config[]' \
'-h[]' \
'--help[]' \
'-V[]' \
'--version[]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'(--color)--no-color[Disable colors]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
':shell -- The shell to generate the completion script for:(bash elvish fish nushell powershell zsh)' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files -/' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated option for configuring automatic Python downloads]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_urls' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files -/' \
'--project=[Discover a project in the given directory]:PROJECT:_files -/' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'--no-pager[Disable pager when printing help]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--managed-python[Require use of uv-managed Python versions \[env\: UV_MANAGED_PYTHON=\]]' \
'--no-managed-python[Disable use of uv-managed Python versions \[env\: UV_NO_MANAGED_PYTHON=\]]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[(Deprecated\: use \`--system-certs\` instead.) Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_NATIVE_TLS=\]]' \
'--no-native-tls[]' \
'--system-certs[Whether to load TLS certificates from the platform'\''s native certificate store \[env\: UV_SYSTEM_CERTS=\]]' \
'--no-system-certs[]' \
'--offline[Disable network access \[env\: UV_OFFLINE=\]]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features \[env\: UV_PREVIEW=\]]' \
'--no-preview[]' \
'--isolated[Avoid discovering a \`pyproject.toml\` or \`uv.toml\` file \[env\: UV_ISOLATED=\]]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs \[env\: UV_NO_PROGRESS=\]]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories \[env\: UV_NO_INSTALLER_METADATA=\]]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
'*::command:' \
&& ret=0
;;
        esac
    ;;
esac
}
(( $+functions[_uv_commands] )) ||
_uv_commands() {
    local commands; commands=(
'auth:Manage authentication' \
'run:Run a command or script' \
'init:Create a new project' \
'add:Add dependencies to the project' \
'remove:Remove dependencies from the project' \
'version:Read or update the project'\''s version' \
'sync:Update the project'\''s environment' \
'lock:Update the project'\''s lockfile' \
'upgrade:Upgrade a dependency in the project' \
'export:Export the project'\''s lockfile to an alternate format' \
'tree:Display the project'\''s dependency tree' \
'format:Format Python code in the project' \
'check:Run checks on the project' \
'audit:Audit the project'\''s dependencies' \
'tool:Run and install commands provided by Python packages' \
'python:Manage Python versions and installations' \
'pip:Manage Python packages with a pip-compatible interface' \
'venv:Create a virtual environment' \
'build:Build Python packages into source distributions and wheels' \
'publish:Upload distributions to an index' \
'workspace:Inspect uv workspaces' \
'build-backend:The implementation of the build backend' \
'cache:Manage uv'\''s cache' \
'self:Manage the uv executable' \
'clean:Clear the cache, removing all entries or those linked to specific packages' \
'generate-shell-completion:Generate shell completion' \
'help:Display documentation for a command' \
    )
    _describe -t commands 'uv commands' commands "$@"
}
(( $+functions[_uv__add_commands] )) ||
_uv__add_commands() {
    local commands; commands=()
    _describe -t commands 'uv add commands' commands "$@"
}
(( $+functions[_uv__audit_commands] )) ||
_uv__audit_commands() {
    local commands; commands=()
    _describe -t commands 'uv audit commands' commands "$@"
}
(( $+functions[_uv__auth_commands] )) ||
_uv__auth_commands() {
    local commands; commands=(
'login:Login to a service' \
'logout:Logout of a service' \
'token:Show the authentication token for a service' \
'dir:Show the path to the uv credentials directory' \
'helper:Act as a credential helper for external tools' \
    )
    _describe -t commands 'uv auth commands' commands "$@"
}
(( $+functions[_uv__auth__dir_commands] )) ||
_uv__auth__dir_commands() {
    local commands; commands=()
    _describe -t commands 'uv auth dir commands' commands "$@"
}
(( $+functions[_uv__auth__helper_commands] )) ||
_uv__auth__helper_commands() {
    local commands; commands=(
'get:Retrieve credentials for a URI' \
    )
    _describe -t commands 'uv auth helper commands' commands "$@"
}
(( $+functions[_uv__auth__helper__get_commands] )) ||
_uv__auth__helper__get_commands() {
    local commands; commands=()
    _describe -t commands 'uv auth helper get commands' commands "$@"
}
(( $+functions[_uv__auth__login_commands] )) ||
_uv__auth__login_commands() {
    local commands; commands=()
    _describe -t commands 'uv auth login commands' commands "$@"
}
(( $+functions[_uv__auth__logout_commands] )) ||
_uv__auth__logout_commands() {
    local commands; commands=()
    _describe -t commands 'uv auth logout commands' commands "$@"
}
(( $+functions[_uv__auth__token_commands] )) ||
_uv__auth__token_commands() {
    local commands; commands=()
    _describe -t commands 'uv auth token commands' commands "$@"
}
(( $+functions[_uv__build_commands] )) ||
_uv__build_commands() {
    local commands; commands=()
    _describe -t commands 'uv build commands' commands "$@"
}
(( $+functions[_uv__build-backend_commands] )) ||
_uv__build-backend_commands() {
    local commands; commands=(
'build-sdist:PEP 517 hook \`build_sdist\`' \
'build-wheel:PEP 517 hook \`build_wheel\`' \
'build-editable:PEP 660 hook \`build_editable\`' \
'get-requires-for-build-sdist:PEP 517 hook \`get_requires_for_build_sdist\`' \
'get-requires-for-build-wheel:PEP 517 hook \`get_requires_for_build_wheel\`' \
'prepare-metadata-for-build-wheel:PEP 517 hook \`prepare_metadata_for_build_wheel\`' \
'get-requires-for-build-editable:PEP 660 hook \`get_requires_for_build_editable\`' \
'prepare-metadata-for-build-editable:PEP 660 hook \`prepare_metadata_for_build_editable\`' \
    )
    _describe -t commands 'uv build-backend commands' commands "$@"
}
(( $+functions[_uv__build-backend__build-editable_commands] )) ||
_uv__build-backend__build-editable_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend build-editable commands' commands "$@"
}
(( $+functions[_uv__build-backend__build-sdist_commands] )) ||
_uv__build-backend__build-sdist_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend build-sdist commands' commands "$@"
}
(( $+functions[_uv__build-backend__build-wheel_commands] )) ||
_uv__build-backend__build-wheel_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend build-wheel commands' commands "$@"
}
(( $+functions[_uv__build-backend__get-requires-for-build-editable_commands] )) ||
_uv__build-backend__get-requires-for-build-editable_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend get-requires-for-build-editable commands' commands "$@"
}
(( $+functions[_uv__build-backend__get-requires-for-build-sdist_commands] )) ||
_uv__build-backend__get-requires-for-build-sdist_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend get-requires-for-build-sdist commands' commands "$@"
}
(( $+functions[_uv__build-backend__get-requires-for-build-wheel_commands] )) ||
_uv__build-backend__get-requires-for-build-wheel_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend get-requires-for-build-wheel commands' commands "$@"
}
(( $+functions[_uv__build-backend__prepare-metadata-for-build-editable_commands] )) ||
_uv__build-backend__prepare-metadata-for-build-editable_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend prepare-metadata-for-build-editable commands' commands "$@"
}
(( $+functions[_uv__build-backend__prepare-metadata-for-build-wheel_commands] )) ||
_uv__build-backend__prepare-metadata-for-build-wheel_commands() {
    local commands; commands=()
    _describe -t commands 'uv build-backend prepare-metadata-for-build-wheel commands' commands "$@"
}
(( $+functions[_uv__cache_commands] )) ||
_uv__cache_commands() {
    local commands; commands=(
'clean:Clear the cache, removing all entries or those linked to specific packages' \
'prune:Prune dangling cache entries and cached environments' \
'dir:Show the cache directory' \
'size:Show the cache size' \
    )
    _describe -t commands 'uv cache commands' commands "$@"
}
(( $+functions[_uv__cache__clean_commands] )) ||
_uv__cache__clean_commands() {
    local commands; commands=()
    _describe -t commands 'uv cache clean commands' commands "$@"
}
(( $+functions[_uv__cache__dir_commands] )) ||
_uv__cache__dir_commands() {
    local commands; commands=()
    _describe -t commands 'uv cache dir commands' commands "$@"
}
(( $+functions[_uv__cache__prune_commands] )) ||
_uv__cache__prune_commands() {
    local commands; commands=()
    _describe -t commands 'uv cache prune commands' commands "$@"
}
(( $+functions[_uv__cache__size_commands] )) ||
_uv__cache__size_commands() {
    local commands; commands=()
    _describe -t commands 'uv cache size commands' commands "$@"
}
(( $+functions[_uv__check_commands] )) ||
_uv__check_commands() {
    local commands; commands=()
    _describe -t commands 'uv check commands' commands "$@"
}
(( $+functions[_uv__clean_commands] )) ||
_uv__clean_commands() {
    local commands; commands=()
    _describe -t commands 'uv clean commands' commands "$@"
}
(( $+functions[_uv__export_commands] )) ||
_uv__export_commands() {
    local commands; commands=()
    _describe -t commands 'uv export commands' commands "$@"
}
(( $+functions[_uv__format_commands] )) ||
_uv__format_commands() {
    local commands; commands=()
    _describe -t commands 'uv format commands' commands "$@"
}
(( $+functions[_uv__generate-shell-completion_commands] )) ||
_uv__generate-shell-completion_commands() {
    local commands; commands=()
    _describe -t commands 'uv generate-shell-completion commands' commands "$@"
}
(( $+functions[_uv__help_commands] )) ||
_uv__help_commands() {
    local commands; commands=()
    _describe -t commands 'uv help commands' commands "$@"
}
(( $+functions[_uv__init_commands] )) ||
_uv__init_commands() {
    local commands; commands=()
    _describe -t commands 'uv init commands' commands "$@"
}
(( $+functions[_uv__lock_commands] )) ||
_uv__lock_commands() {
    local commands; commands=()
    _describe -t commands 'uv lock commands' commands "$@"
}
(( $+functions[_uv__pip_commands] )) ||
_uv__pip_commands() {
    local commands; commands=(
'compile:Compile a \`requirements.in\` file to a \`requirements.txt\` or \`pylock.toml\` file' \
'sync:Sync an environment with a \`requirements.txt\` or \`pylock.toml\` file' \
'install:Install packages into an environment' \
'uninstall:Uninstall packages from an environment' \
'freeze:List, in requirements format, packages installed in an environment' \
'list:List, in tabular format, packages installed in an environment' \
'show:Show information about one or more installed packages' \
'tree:Display the dependency tree for an environment' \
'check:Verify installed packages have compatible dependencies' \
'debug:Display debug information (unsupported)' \
    )
    _describe -t commands 'uv pip commands' commands "$@"
}
(( $+functions[_uv__pip__check_commands] )) ||
_uv__pip__check_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip check commands' commands "$@"
}
(( $+functions[_uv__pip__compile_commands] )) ||
_uv__pip__compile_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip compile commands' commands "$@"
}
(( $+functions[_uv__pip__debug_commands] )) ||
_uv__pip__debug_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip debug commands' commands "$@"
}
(( $+functions[_uv__pip__freeze_commands] )) ||
_uv__pip__freeze_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip freeze commands' commands "$@"
}
(( $+functions[_uv__pip__install_commands] )) ||
_uv__pip__install_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip install commands' commands "$@"
}
(( $+functions[_uv__pip__list_commands] )) ||
_uv__pip__list_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip list commands' commands "$@"
}
(( $+functions[_uv__pip__show_commands] )) ||
_uv__pip__show_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip show commands' commands "$@"
}
(( $+functions[_uv__pip__sync_commands] )) ||
_uv__pip__sync_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip sync commands' commands "$@"
}
(( $+functions[_uv__pip__tree_commands] )) ||
_uv__pip__tree_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip tree commands' commands "$@"
}
(( $+functions[_uv__pip__uninstall_commands] )) ||
_uv__pip__uninstall_commands() {
    local commands; commands=()
    _describe -t commands 'uv pip uninstall commands' commands "$@"
}
(( $+functions[_uv__publish_commands] )) ||
_uv__publish_commands() {
    local commands; commands=()
    _describe -t commands 'uv publish commands' commands "$@"
}
(( $+functions[_uv__python_commands] )) ||
_uv__python_commands() {
    local commands; commands=(
'list:List the available Python installations' \
'install:Download and install Python versions' \
'upgrade:Upgrade installed Python versions' \
'find:Search for a Python installation' \
'pin:Pin to a specific Python version' \
'dir:Show the uv Python installation directory' \
'uninstall:Uninstall Python versions' \
'update-shell:Ensure that the Python executable directory is on the \`PATH\`' \
    )
    _describe -t commands 'uv python commands' commands "$@"
}
(( $+functions[_uv__python__dir_commands] )) ||
_uv__python__dir_commands() {
    local commands; commands=()
    _describe -t commands 'uv python dir commands' commands "$@"
}
(( $+functions[_uv__python__find_commands] )) ||
_uv__python__find_commands() {
    local commands; commands=()
    _describe -t commands 'uv python find commands' commands "$@"
}
(( $+functions[_uv__python__install_commands] )) ||
_uv__python__install_commands() {
    local commands; commands=()
    _describe -t commands 'uv python install commands' commands "$@"
}
(( $+functions[_uv__python__list_commands] )) ||
_uv__python__list_commands() {
    local commands; commands=()
    _describe -t commands 'uv python list commands' commands "$@"
}
(( $+functions[_uv__python__pin_commands] )) ||
_uv__python__pin_commands() {
    local commands; commands=()
    _describe -t commands 'uv python pin commands' commands "$@"
}
(( $+functions[_uv__python__uninstall_commands] )) ||
_uv__python__uninstall_commands() {
    local commands; commands=()
    _describe -t commands 'uv python uninstall commands' commands "$@"
}
(( $+functions[_uv__python__update-shell_commands] )) ||
_uv__python__update-shell_commands() {
    local commands; commands=()
    _describe -t commands 'uv python update-shell commands' commands "$@"
}
(( $+functions[_uv__python__upgrade_commands] )) ||
_uv__python__upgrade_commands() {
    local commands; commands=()
    _describe -t commands 'uv python upgrade commands' commands "$@"
}
(( $+functions[_uv__remove_commands] )) ||
_uv__remove_commands() {
    local commands; commands=()
    _describe -t commands 'uv remove commands' commands "$@"
}
(( $+functions[_uv__run_commands] )) ||
_uv__run_commands() {
    local commands; commands=()
    _describe -t commands 'uv run commands' commands "$@"
}
(( $+functions[_uv__self_commands] )) ||
_uv__self_commands() {
    local commands; commands=(
'update:Update uv' \
'version:Display uv'\''s version' \
    )
    _describe -t commands 'uv self commands' commands "$@"
}
(( $+functions[_uv__self__update_commands] )) ||
_uv__self__update_commands() {
    local commands; commands=()
    _describe -t commands 'uv self update commands' commands "$@"
}
(( $+functions[_uv__self__version_commands] )) ||
_uv__self__version_commands() {
    local commands; commands=()
    _describe -t commands 'uv self version commands' commands "$@"
}
(( $+functions[_uv__sync_commands] )) ||
_uv__sync_commands() {
    local commands; commands=()
    _describe -t commands 'uv sync commands' commands "$@"
}
(( $+functions[_uv__tool_commands] )) ||
_uv__tool_commands() {
    local commands; commands=(
'run:Run a command provided by a Python package' \
'uvx:Run a command provided by a Python package.' \
'install:Install commands provided by a Python package' \
'upgrade:Upgrade installed tools' \
'list:List installed tools' \
'audit:Audit installed tools and their dependencies' \
'uninstall:Uninstall a tool' \
'update-shell:Ensure that the tool executable directory is on the \`PATH\`' \
'dir:Show the path to the uv tools directory' \
    )
    _describe -t commands 'uv tool commands' commands "$@"
}
(( $+functions[_uv__tool__audit_commands] )) ||
_uv__tool__audit_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool audit commands' commands "$@"
}
(( $+functions[_uv__tool__dir_commands] )) ||
_uv__tool__dir_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool dir commands' commands "$@"
}
(( $+functions[_uv__tool__install_commands] )) ||
_uv__tool__install_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool install commands' commands "$@"
}
(( $+functions[_uv__tool__list_commands] )) ||
_uv__tool__list_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool list commands' commands "$@"
}
(( $+functions[_uv__tool__run_commands] )) ||
_uv__tool__run_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool run commands' commands "$@"
}
(( $+functions[_uv__tool__uninstall_commands] )) ||
_uv__tool__uninstall_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool uninstall commands' commands "$@"
}
(( $+functions[_uv__tool__update-shell_commands] )) ||
_uv__tool__update-shell_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool update-shell commands' commands "$@"
}
(( $+functions[_uv__tool__upgrade_commands] )) ||
_uv__tool__upgrade_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool upgrade commands' commands "$@"
}
(( $+functions[_uv__tool__uvx_commands] )) ||
_uv__tool__uvx_commands() {
    local commands; commands=()
    _describe -t commands 'uv tool uvx commands' commands "$@"
}
(( $+functions[_uv__tree_commands] )) ||
_uv__tree_commands() {
    local commands; commands=()
    _describe -t commands 'uv tree commands' commands "$@"
}
(( $+functions[_uv__upgrade_commands] )) ||
_uv__upgrade_commands() {
    local commands; commands=()
    _describe -t commands 'uv upgrade commands' commands "$@"
}
(( $+functions[_uv__venv_commands] )) ||
_uv__venv_commands() {
    local commands; commands=()
    _describe -t commands 'uv venv commands' commands "$@"
}
(( $+functions[_uv__version_commands] )) ||
_uv__version_commands() {
    local commands; commands=()
    _describe -t commands 'uv version commands' commands "$@"
}
(( $+functions[_uv__workspace_commands] )) ||
_uv__workspace_commands() {
    local commands; commands=(
'metadata:View metadata about the current workspace' \
'dir:Display the path of a workspace member' \
'list:List the members of a workspace' \
    )
    _describe -t commands 'uv workspace commands' commands "$@"
}
(( $+functions[_uv__workspace__dir_commands] )) ||
_uv__workspace__dir_commands() {
    local commands; commands=()
    _describe -t commands 'uv workspace dir commands' commands "$@"
}
(( $+functions[_uv__workspace__list_commands] )) ||
_uv__workspace__list_commands() {
    local commands; commands=()
    _describe -t commands 'uv workspace list commands' commands "$@"
}
(( $+functions[_uv__workspace__metadata_commands] )) ||
_uv__workspace__metadata_commands() {
    local commands; commands=()
    _describe -t commands 'uv workspace metadata commands' commands "$@"
}
if [ "$funcstack[1]" = "_uv" ]; then
    _uv "$@"
else
    compdef _uv uv
fi
[2026-11-10 16:04:43] [INFO] Installing Python 3.11 via uv
Downloading cpython-3.11.18-linux-x86_64-gnu (download) (29.2MiB)
 Downloaded cpython-3.11.18-linux-x86_64-gnu (download)
Installed Python 3.11.18 in 2.20s
 + cpython-3.11.18-linux-x86_64-gnu (python3.11)
warning: `/root/.local/bin` is not on your PATH. To use installed Python executables, run `export PATH="/root/.local/bin:$PATH"` or `uv python update-shell`.
[2026-11-10 16:04:45] [OK] Python 3.11 installed
[2026-11-10 16:04:46] [OK] Setup uv 0.13.7
[2026-11-10 16:04:46] [INFO] Setting up Python Environment
Using CPython 3.11.18
Creating virtual environment at: .venv
Resolved 239 packages in 5ms
   Building hindsight-api-slim @ file:///opt/hindsight/hindsight-api-slim
Downloading aiohttp (1.8MiB)
Downloading cryptography (4.5MiB)
Downloading pygments (1.2MiB)
Downloading torch (182.9MiB)
Downloading tokenizers (3.1MiB)
Downloading sympy (6.0MiB)
Downloading uvloop (3.6MiB)
Downloading ty (13.5MiB)
Downloading pandas (12.2MiB)
Downloading beartype (1.3MiB)
Downloading sqlalchemy (3.2MiB)
Downloading numpy (16.2MiB)
Downloading psycopg2-binary (4.0MiB)
Downloading onnxruntime (22.7MiB)
Downloading pillow (6.8MiB)
Downloading asyncpg (3.1MiB)
Downloading pydantic-core (2.0MiB)
Downloading claude-agent-sdk (109.1MiB)
Downloading magika (14.7MiB)
Downloading scikit-learn (9.3MiB)
Downloading google-genai (1.0MiB)
Downloading toktok-rs (4.3MiB)
Downloading tiktoken (1.1MiB)
Downloading hf-xet (4.0MiB)
Downloading botocore (15.3MiB)
Downloading pypdfium2 (2.9MiB)
Downloading fastavro (3.3MiB)
Downloading litellm (35.1MiB)
Downloading transformers (10.6MiB)
Downloading pdfminer-six (6.3MiB)
Downloading networkx (1.9MiB)
Downloading obstore (3.6MiB)
Downloading openai (1.1MiB)
Downloading lxml (5.0MiB)
Downloading ruff (13.5MiB)
Downloading scipy (34.2MiB)
 Downloaded torch
 Downloaded google-genai
 Downloaded openai
 Downloaded tiktoken
 Downloaded pygments
 Downloaded beartype
 Downloaded aiohttp
 Downloaded networkx
 Downloaded pydantic-core
      Built hindsight-api-slim @ file:///opt/hindsight/hindsight-api-slim
 Downloaded pypdfium2
 Downloaded tokenizers
 Downloaded sqlalchemy
 Downloaded asyncpg
 Downloaded fastavro
 Downloaded obstore
 Downloaded uvloop
 Downloaded hf-xet
 Downloaded psycopg2-binary
 Downloaded toktok-rs
 Downloaded cryptography
 Downloaded lxml
 Downloaded sympy
 Downloaded pdfminer-six
 Downloaded pillow
 Downloaded scikit-learn
 Downloaded transformers
 Downloaded pandas
 Downloaded ruff
 Downloaded ty
 Downloaded magika
 Downloaded botocore
 Downloaded numpy
 Downloaded onnxruntime
 Downloaded scipy
 Downloaded litellm
 Downloaded claude-agent-sdk
Prepared 214 packages in 47.45s
Installed 214 packages in 1.60s
 + aiofile==3.9.0
 + aiohappyeyeballs==2.6.1
 + aiohttp==3.14.5
 + aiosignal==1.4.0
 + alembic==1.17.1
 + annotated-doc==0.0.4
 + annotated-types==0.7.0
 + anthropic==0.99.0
 + anyio==4.14.2
 + asgiref==3.11.0
 + asyncpg==0.32.0
 + attrs==25.4.0
 + authlib==1.9.1
 + backports-tarfile==1.2.0
 + beartype==0.22.5
 + beautifulsoup4==4.14.2
 + boto3==1.43.108
 + botocore==1.43.108
 + cachetools==6.2.1
 + caio==0.9.25
 + certifi==2026.10.19
 + cffi==2.0.0
 + charset-normalizer==3.4.4
 + claude-agent-sdk==0.2.168
 + click==8.1.8
 + cobble==0.1.4
 + cohere==5.20.1
 + croniter==6.2.2
 + cryptography==50.0.0
 + cyclopts==4.2.2
 + dateparser==1.5.0
 + defusedxml==0.7.1
 + distro==1.9.0
 + dnspython==2.9.0
 + docker==7.1.0
 + docstring-parser==0.17.0
 + docutils==0.22.3
 + einops==0.8.2
 + email-validator==2.3.0
 + et-xmlfile==2.0.0
 + exceptiongroup==1.3.0
 + execnet==2.1.2
 + fastapi==0.136.3
 + fastapi-cli==0.0.16
 + fastapi-cloud-cli==0.3.1
 + fastar==0.11.0
 + fastavro==1.12.1
 + fastmcp==3.4.11
 + fastmcp-slim==3.4.11
 + fastuuid==0.14.0
 + filelock==3.20.3
 + flashrank==0.2.10
 + flatbuffers==25.12.19
 + frozenlist==1.8.0
 + fsspec==2026.9.0
 + github-copilot-sdk==1.0.11
 + google-auth==2.56.3
 + google-genai==2.18.1
 + googleapis-common-protos==1.75.0
 + greenlet==3.2.4
 + griffelib==2.4.1
 + h11==0.16.0
 + h2==4.4.1
 + hf-xet==1.3.2
 + hindsight-api-slim==1.2.1 (from file:///opt/hindsight/hindsight-api-slim)
 + hpack==4.2.0
 + httpcore==1.0.9
 + httptools==0.7.1
 + httpx==0.28.1
 + httpx-sse==0.4.3
 + huggingface-hub==1.6.0
 + hyperframe==6.1.0
 + idna==3.15
 + importlib-metadata==8.5.0
 + iniconfig==2.3.0
 + jaraco-classes==3.4.0
 + jaraco-context==6.1.2
 + jaraco-functools==4.3.0
 + jeepney==0.9.0
 + jinja2==3.1.6
 + jiter==0.12.0
 + jmespath==1.1.0
 + joblib==1.5.2
 + joserfc==1.7.7
 + json-repair==0.63.2
 + jsonref==1.1.0
 + jsonschema==4.23.0
 + jsonschema-path==0.3.4
 + jsonschema-specifications==2025.9.1
 + keyring==25.6.0
 + litellm==1.104.0
 + lxml==6.1.0
 + magika==0.6.3
 + mako==1.4.3
 + mammoth==1.11.0
 + markdown-it-py==4.0.0
 + markdownify==1.2.2
 + markitdown==0.1.5b1
 + markupsafe==3.0.3
 + mcp==1.30.0
 + mdurl==0.1.2
 + more-itertools==10.8.0
 + mpmath==1.3.0
 + multidict==6.9.1
 + networkx==3.5
 + numpy==2.3.4
 + obstore==0.8.2
 + onnxruntime==1.31.0
 + openai==2.24.0
 + openapi-pydantic==0.5.1
 + openpyxl==3.1.5
 + opentelemetry-api==1.45.1
 + opentelemetry-exporter-http-transport==0.66b1
 + opentelemetry-exporter-otlp-common==0.66b1
 + opentelemetry-exporter-otlp-proto-common==1.45.1
 + opentelemetry-exporter-otlp-proto-http==1.45.1
 + opentelemetry-exporter-prometheus==0.66b1
 + opentelemetry-instrumentation==0.66b1
 + opentelemetry-instrumentation-asgi==0.66b1
 + opentelemetry-instrumentation-fastapi==0.66b1
 + opentelemetry-proto==1.45.1
 + opentelemetry-sdk==1.45.1
 + opentelemetry-semantic-conventions==0.66b1
 + opentelemetry-util-http==0.66b1
 + orjson==3.12.0
 + packaging==25.0
 + pandas==2.3.3
 + pathable==0.4.4
 + pdfminer-six==20251230
 + pdfplumber==0.11.9
 + pgvector==0.4.1
 + pillow==13.0.0
 + platformdirs==4.5.0
 + pluggy==1.6.0
 + prometheus-client==0.23.1
 + propcache==0.4.1
 + protobuf==7.35.1
 + psycopg2-binary==2.9.11
 + py-key-value-aio==0.4.4
 + pyasn1==0.6.5
 + pyasn1-modules==0.4.2
 + pycparser==2.23
 + pydantic==2.12.5
 + pydantic-core==2.41.5
 + pydantic-extra-types==2.11.1
 + pydantic-settings==2.14.2
 + pygments==2.20.0
 + pyjwt==2.15.1
 + pypdfium2==5.4.0
 + pyperclip==1.11.0
 + pytest==9.0.3
 + pytest-asyncio==1.3.0
 + pytest-rerunfailures==16.1
 + pytest-timeout==2.4.0
 + pytest-xdist==3.8.0
 + python-dateutil==2.9.0.post0
 + python-dotenv==1.2.2
 + python-multipart==0.0.32
 + python-pptx==1.0.2
 + pytz==2025.2
 + pyyaml==6.0.3
 + referencing==0.36.2
 + regex==2026.9.3
 + requests==2.34.2
 + rich==14.2.0
 + rich-rst==1.3.2
 + rich-toolkit==0.15.1
 + rignore==0.7.6
 + rpds-py==0.28.0
 + ruff==0.14.9
 + s3transfer==0.19.2
 + safetensors==0.6.2
 + scikit-learn==1.7.2
 + scipy==1.16.3
 + secretstorage==3.4.1
 + sentence-transformers==5.7.0
 + sentry-sdk==2.44.0
 + setuptools==84.2.1
 + shellingham==1.5.4
 + six==1.17.0
 + sniffio==1.3.1
 + soupsieve==2.9.2
 + sqlalchemy==2.0.44
 + sse-starlette==3.0.3
 + starlette==1.3.1
 + sympy==1.14.0
 + tenacity==9.1.2
 + testcontainers==4.14.1
 + threadpoolctl==3.6.0
 + tiktoken==0.12.0
 + tokenizers==0.22.2
 + toktok-rs==0.3.0
 + torch==2.13.0+cpu
 + tqdm==4.67.1
 + transformers==5.12.1
 + ty==0.0.84
 + typer==0.20.0
 + types-requests==2.32.4.20260107
 + typing-extensions==4.15.0
 + typing-inspection==0.4.2
 + tzdata==2025.2
 + tzlocal==5.3.1
 + uncalled-for==0.2.0
 + urllib3==2.8.0
 + uvicorn==0.38.0
 + uvloop==0.22.1
 + watchfiles==1.1.1
 + websockets==15.0.1
 + wrapt==1.17.3
 + wsproto==1.3.2
 + xlrd==2.0.2
 + xlsxwriter==3.2.9
 + yarl==1.25.1
 + zipp==3.23.0
[2026-11-10 16:05:35] [OK] Set up Python Environment
[2026-11-10 16:05:35] [INFO] Downloading Embedding and Reranker Models
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
Loading weights:   0%|          | 0/199 [00:00<?, ?it/s]
Loading weights: 100%|██████████| 199/199 [00:00<00:00, 2895.41it/s]
Loading weights:   0%|          | 0/105 [00:00<?, ?it/s]
Loading weights: 100%|██████████| 105/105 [00:00<00:00, 2732.55it/s]
[2026-11-10 16:06:27] [OK] Downloaded Embedding and Reranker Models
[2026-11-10 16:06:27] [INFO] Configuring Hindsight
[2026-11-10 16:06:27] [OK] Configured Hindsight
[2026-11-10 16:06:27] [INFO] Creating Service
[2026-11-10 16:06:28] [OK] Created Service
[2026-11-10 16:06:28] [WARN] No LLM configured: Hindsight stores plain chunks only. Set HINDSIGHT_API_LLM_PROVIDER and its key in /opt/hindsight.env, then run systemctl restart hindsight
[2026-11-10 16:06:28] [INFO] Customizing Container
[2026-11-10 16:06:29] [OK] Customized Container
[2026-11-10 16:06:30] [INFO] Cleaning up
Reading package lists...
Building dependency tree...
Reading state information...
Summary:
  Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
[2026-11-10 16:06:32] [OK] Cleaned

Full logs: workflow run (artifacts result-*). Comment /test to build again.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants