Files
zeekay 1b367e2b62 chore: rebase the tree onto upstream master
The tree was a debranded snapshot of upstream taken around 2026-02-20, and
upstream has moved about five months since. This replaces it with upstream
master, mechanically re-derived: bin/debrand does the rename, and the
pipeline and squashed migrations are restored from the shipped tree.

Not a merge. The previous import replaced the tree wholesale in a single
commit, so there is no shared content history to merge against. Reproducing
the rename on the new tree is what actually converges.

What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints,
compose files, LLM.md, and insights/migrations. The squashed initial
migration is load-bearing — the live database records it by name, so
upstream's ~918 individual migrations cannot come back.

Nine products are dropped as unreferenced. Twenty-one more that we do not run
are kept anyway because the core app still imports them; unpicking those is a
refactor and does not belong in a rebase.

This base does not build yet, and the reasons are not in the rename:
upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against
our 4.2, and the dependency manifests still name upstream packages that we
republish under our own names. Those are decisions, not renames.
2026-08-01 15:44:40 -07:00

186 lines
7.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP tool definition — tool entries are scaffolded from the OpenAPI schema.
# The tool list and operation IDs are kept in sync automatically:
# pnpm --filter=@hanzo/mcp run scaffold-yaml -- --sync-all
#
# To enable a tool, set enabled: true and add required scopes + annotations.
# All other fields (title, description, enrich_url, etc.) are yours to configure.
category: Streamlit apps
feature: streamlit_apps
url_prefix: /streamlit-apps
ui_apps: {}
tools:
streamlit-apps-activate-version:
operation: streamlit_apps_activate_version_create
enabled: false
streamlit-apps-connect-info:
operation: streamlit_apps_connect_info_retrieve
enabled: false
streamlit-apps-create:
operation: streamlit_apps_create
enabled: true
scopes:
- streamlit_app:write
annotations:
readOnly: false
destructive: false
idempotent: false
enrich_url: '{short_id}'
title: Create Streamlit app
description: >
Create a new Streamlit app (metadata only — it has no code until you call streamlit-apps-set-source).
Typical flow: create the app, set its source, then start it. cpu_cores (0.25–8) and memory_gb (0.5–16)
control the sandbox size and default to 0.5 / 1.
feature_flag: streamlit-apps
streamlit-apps-delete:
operation: streamlit_apps_destroy
enabled: true
scopes:
- streamlit_app:write
annotations:
readOnly: false
destructive: true
idempotent: true
title: Delete Streamlit app
description: |
Delete a Streamlit app by short_id. Stops any running sandbox and soft-deletes the app.
feature_flag: streamlit-apps
streamlit-apps-get:
operation: streamlit_apps_retrieve
enabled: true
scopes:
- streamlit_app:read
annotations:
readOnly: true
destructive: false
idempotent: true
enrich_url: '{short_id}'
title: Get Streamlit app
description: |
Get a single Streamlit app by its short_id, including its active version and live sandbox status.
feature_flag: streamlit-apps
streamlit-apps-list:
operation: streamlit_apps_list
enabled: true
scopes:
- streamlit_app:read
annotations:
readOnly: true
destructive: false
idempotent: true
enrich_url: '{short_id}'
list: true
title: List Streamlit apps
description: >
List all Streamlit apps in the current project. Each app is a Python data app that runs in an isolated
sandbox. Returns short_id, name, description, resource config, and current sandbox status.
feature_flag: streamlit-apps
streamlit-apps-put-update:
operation: streamlit_apps_update
enabled: false
streamlit-apps-restart:
operation: streamlit_apps_restart_create
enabled: false
streamlit-apps-set-source:
operation: streamlit_apps_create_version_from_source_create
enabled: true
scopes:
- streamlit_app:write
- query:read
annotations:
readOnly: false
destructive: false
idempotent: false
title: Set Streamlit app source
description: >
Create a new version of a Streamlit app from a single free-text app.py source string, and set it as the
active version. This is the simplest way to ship code — no zip upload required. If the app is running, its
sandbox is stopped; call streamlit-apps-start afterwards to serve the new version. Use
insights_apps.query("<InsightsQL>") inside the app to read Insights data as a pandas DataFrame. There is no way to
add pip dependencies — only packages baked into the sandbox image are importable.
param_overrides:
source:
description: >
The complete Python source for the app's root app.py (a Streamlit script, e.g. starting with `import
streamlit as st`). Sent as plain text.
feature_flag: streamlit-apps
streamlit-apps-start:
operation: streamlit_apps_start_create
enabled: true
scopes:
- streamlit_app:write
- query:read
annotations:
readOnly: false
destructive: false
idempotent: true
enrich_url: '{short_id}'
title: Start Streamlit app
description: >
Start the app's sandbox (boots the active version). Returns immediately while the sandbox boots
asynchronously — poll streamlit-apps-status until it reports running. Requires an active version (set one
first with streamlit-apps-set-source). Idempotent: a no-op if already running or starting. The response's
_insightsUrl is the app's page in Insights — share that link with humans.
feature_flag: streamlit-apps
streamlit-apps-status:
operation: streamlit_apps_status_retrieve
enabled: true
scopes:
- streamlit_app:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Get Streamlit app status
description: >
Get the live sandbox status for a Streamlit app: one of starting, running, stopping, stopped, or error, plus
restart_count and last_error. Use this to poll after starting an app.
feature_flag: streamlit-apps
streamlit-apps-stop:
operation: streamlit_apps_stop_create
enabled: true
scopes:
- streamlit_app:write
annotations:
readOnly: false
destructive: false
idempotent: true
enrich_url: '{short_id}'
title: Stop Streamlit app
description: >
Stop the app's running sandbox. Idempotent: a no-op if the app is not running. The app's code and versions
are unaffected — it can be started again later.
feature_flag: streamlit-apps
streamlit-apps-update:
operation: streamlit_apps_partial_update
enabled: true
scopes:
- streamlit_app:write
annotations:
readOnly: false
destructive: false
idempotent: true
enrich_url: '{short_id}'
title: Update Streamlit app
description: >
Update an app's metadata or sandbox sizing: name, description, cpu_cores (0.25–8), memory_gb (0.5–16). Only
the fields you provide change. Resizing applies the next time the sandbox starts. Code changes go through
streamlit-apps-set-source, not this tool.
feature_flag: streamlit-apps
streamlit-apps-upload-version:
operation: streamlit_apps_upload_version_create
enabled: false
streamlit-apps-versions:
operation: streamlit_apps_versions_retrieve
enabled: true
scopes:
- streamlit_app:read
annotations:
readOnly: true
destructive: false
idempotent: true
list: true
title: List Streamlit app versions
description: |
List a Streamlit app's versions (latest first). Each version is an immutable snapshot of the app's code.
feature_flag: streamlit-apps