KohakuTerrarium 2.0.0.dev2__tar.gz → 2.0.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kohakuterrarium-2.0.0.dev2/src/KohakuTerrarium.egg-info → kohakuterrarium-2.0.0.dev3}/PKG-INFO +1 -1
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/pyproject.toml +18 -21
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3/src/KohakuTerrarium.egg-info}/PKG-INFO +1 -1
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/SOURCES.txt +12 -11
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/api/routes/app_update.py +272 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/server_info.py +3 -3
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/cli/self_update.py +172 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/__init__.py +36 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/bootloader.py +194 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/downloader.py +220 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/feeds.py +303 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/migration.py +79 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/paths.py +167 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/settings.py +306 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/tree_ops.py +322 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/launcher/update_runner.py +394 -0
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/_id_-CU3uGW47.js → kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/_id_-CQuALEFj.js +1 -1
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/_key_-DvKoPuoc.js → kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/_key_-Dwr8H8dF.js +1 -1
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/api-BV0fScbj.js +1 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/axios-BPEz4Z9Y.js +1 -0
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/index-DrSNCGQH.css +1 -0
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/index-DjzJ77md.js → kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/index-WCbP0Trd.js +74 -74
- kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/instances-DqdS7Lrl.js +1 -0
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/pages-Cko_YsNQ.js → kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/pages-DSvfMUqz.js +1 -1
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/panel-debug-BSGIYOa5.js → kohakuterrarium-2.0.0.dev3/src/kohakuterrarium/web_dist/assets/panel-debug-D0a3hCe3.js +1 -1
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/index.html +2 -2
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/api/routes/app_update.py +0 -282
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/cli/self_update.py +0 -233
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/__init__.py +0 -32
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/bootloader.py +0 -160
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/migration.py +0 -68
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/paths.py +0 -151
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/settings.py +0 -240
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/sources.py +0 -88
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/update_runner.py +0 -304
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/launcher/venv_ops.py +0 -179
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/api-Bu8fp5qd.js +0 -1
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/axios-DEoS1rCJ.js +0 -1
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/index-0ZdG87aI.css +0 -1
- kohakuterrarium-2.0.0.dev2/src/kohakuterrarium/web_dist/assets/instances-BILX_VEN.js +0 -1
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/LICENSE +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/README.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/setup.cfg +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/dependency_links.txt +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/entry_points.txt +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/requires.txt +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/top_level.txt +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/__briefcase__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/__main__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/_io_executor.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/app.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/deps.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/main.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/attach/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/attach/files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/attach/policies.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/_deps.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/builtins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/commands.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/creatures.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/creatures_scan.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/extensions.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/manifest.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/models.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/modules.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/packages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/registry.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/schema.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/skills.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/templates.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/terrariums_scan.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/validate.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/catalog/workspace.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/health.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/api_keys.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/codex.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/config_files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/llm.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/mcp.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/node_routing.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/settings.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/identity/ui_prefs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/lab_clients.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/lab_status.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/metrics.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/nodes.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/_executor.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/artifacts.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/fork.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/history.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/memory_index.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/resume.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/saved.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/persistence/viewer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/runtime_graph.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/_helpers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/active.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_chat.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_command.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_ctl.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_modules.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_plugins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/creatures_state.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/memory.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/topology.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/routes/sessions_v2/wiring.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/schemas.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/app.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/deps.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/routes/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/routes/meta.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/routes/packages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/utils/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/studio/utils/paths.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/daemon_logs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/io.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/logs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/memory_build.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/observer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/pty.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/runtime_graph.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/api/ws/trace.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/app_icons/app.ico +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/app_icons/app.png +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/app_icons/window.ico +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/app_icons/window.png +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/agent_init.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/io.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/llm.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/plugins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/subagents.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/bootstrap/triggers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/README.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/coordinator.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/critic.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/explore.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/memory_read.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/memory_write.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/plan.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/research.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/response.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/summarize.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/subagents/worker.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/ask_user.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/bash.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/edit.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/glob.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/grep.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/image_gen.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/info.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/json_read.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/json_write.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/mcp_call.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/mcp_connect.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/mcp_disconnect.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/mcp_list.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/multi_edit.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/notebook_edit.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/notebook_read.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/python.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/read.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/scratchpad.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/search_memory.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/send_message.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/show_card.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/skill.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/stop_task.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/tree.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/web_fetch.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/web_search.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtin_skills/tools/write.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/app.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/app_multi.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/app_output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/diff.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/footer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/message.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/tool.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/blocks/tool_renderers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/commit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/completer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/composer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/creature_status.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/agent_overlay.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/bus_overlay.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/model_picker.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/module_picker.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/module_picker_model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/module_picker_render.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/peek_panel.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/settings.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/settings_model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/dialogs/settings_render.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/focus.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/hint_bar.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/input.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/live_region.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/live_state.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/multiplex.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/paste_store.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/roster.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/runtime.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/cli_rich/theme.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/inputs/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/inputs/cli.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/inputs/none.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/outputs/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/outputs/stdout.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/outputs/tts.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugin_catalog.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/budget/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/budget/plugin.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/compact/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/compact/auto.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/permgate/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/permgate/plugin.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/sandbox/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/plugins/sandbox/plugin.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagent_catalog.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/README.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/_base_prompt.md +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/_prompt_loader.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/coordinator.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/critic.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/explore.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/memory_read.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/memory_write.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/plan.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/research.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/response.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/summarize.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/subagents/worker.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tool_catalog.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/ask_user.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/bash.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/edit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/glob.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/grep.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/image_gen.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/info.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/json_read.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/json_write.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/multi_edit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/notebook_edit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/notebook_read.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/notebook_utils.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/read.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/registry.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/scratchpad_tool.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/search_memory.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/send_message.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/show_card.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/skill.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/stop_task.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/subprocess/shell_utils.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/tree.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/web_fetch.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/web_search.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tools/write.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/app.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/input.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/session.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/blocks.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/bus_blocks.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/helpers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/input.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/messages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/modals.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/model_picker_modal.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/modules_modal.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/panels.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/tui/widgets/ui_event_modals.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/branch.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/channels.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/clear.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/compact.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/edit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/env.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/exit.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/fork.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/help.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/jobs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/module.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/plugin.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/regen.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/registry.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/scratchpad.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/settings.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/skill.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/spawn.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/start.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/status.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/stop.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/system_prompt.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/tool_options.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/triggers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/builtins/user_commands/workspace.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/_aio_entrypoint.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/_aliases.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/_config_layers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/auth.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/config_prompts.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/extension.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_backend.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_codex.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_keys.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_llm.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_mcp.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/identity_settings.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/lab_client.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/memory.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/packages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/resume.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/run.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/serve.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/service.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/cli/version.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/commands/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/commands/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/commands/read.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/compose/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/compose/agent.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/compose/core.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/compose/effects.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_budget_recovery.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_compact.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_handlers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_helpers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_lifecycle.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_mcp.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_messages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_native_tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_observability.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_plugin_options.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_pre_dispatch.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_runtime_tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_tools_metrics.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/agent_workspace.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/backgroundify.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/budget.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/channel.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/compact.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/compact_text.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/config_merge.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/config_serde.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/config_types.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/constants.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/controller.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/controller_metrics.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/controller_plugins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/conversation.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/environment.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/executor.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/job.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/loader.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/metrics_hook.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/native_tool_validation.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/output_wiring.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/registry.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/scratchpad.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/session.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/single_flight.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/termination.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/tool_output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/core/trigger_manager.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/addressing.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/app.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/auth.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/backpressure.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/client.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/control.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/envelope.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/host.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/membership.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/protocol.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/streams.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/transport_base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/transport_inproc.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/_internal/transport_ws.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/_worker_session.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/file_scopes.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/studio_catalog.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/studio_deploy.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/studio_identity.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_attach.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_broadcast.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_output_wire.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_pty.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_runtime.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/adapters/terrarium_session.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/file_transfer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/identity_cache.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/protocols.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/streams.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/verbs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/laboratory/ws_proxy.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/launcher/__main__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/launcher/_lock.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/launcher/log.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/launcher/splash_server.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/launcher/splash_window.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/anthropic_cache.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/anthropic_format.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/anthropic_provider.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/api_keys.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/backends.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/codex_auth.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/codex_format.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/codex_image_gen.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/codex_provider.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/codex_rate_limits.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/deferred_provider.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/litellm_provider.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/message.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/openai.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/openai_helpers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/openai_sanitize.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/preset_aliases.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/preset_store.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/presets.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/profile_types.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/profiles.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/recovery.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/tool_schemas.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/llm/variations.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/mcp/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/mcp/client.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/mcp/tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/input/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/input/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/event.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/router.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/router_interactive.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/router_multi.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/router_parsing.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/output/router_state.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/plugin/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/plugin/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/plugin/manager.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/plugin/option_validation.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/parse.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/presets.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/profile.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/sandbox/violations.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/interactive.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/interactive_mgr.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/manager.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/result.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/subagent/runtime_builders.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/tool/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/tool/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/callable.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/channel.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/context.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/scheduler.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/timer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/trigger/universal.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/user_command/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/modules/user_command/base.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/install.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/locations.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/manifest.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/resolve.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/slots.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packages/walk.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packaging/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packaging/systemd/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packaging/systemd/kohakuterrarium-all.service.template +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packaging/systemd/kohakuterrarium-client@.service.template +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/packaging/systemd/kohakuterrarium-host.service.template +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/parsing/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/parsing/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/parsing/format.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/parsing/patterns.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/parsing/state_machine.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/plugins_context.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/aggregator.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/framework_hints.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/loader.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/plugins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/skill_loader.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/template.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/prompt/tool_contributions.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/serving/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/serving/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/serving/process_metrics.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/serving/web.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/agent_attach.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/artifacts.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/attach.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/attachment_service.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/embedding.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/errors.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/history.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/memory.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/migrations/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/migrations/v1_to_v2.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/resume.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/rollup.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/session.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/store.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/store_counters.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/store_fork.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/store_protocol.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/sync.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/token_views.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/session/version.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skill_docs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/command.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/discovery.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/hints.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/index.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/paths.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/registry.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/skills/user_slash.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/_runtime.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/_event_stream.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/io.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/io_cluster.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/log.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/observer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/policies.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/pty_posix.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/pty_router.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/pty_windows.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/trace.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/workspace_files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/attach/workspace_watch.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/builtins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/catalog_sources.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/creatures.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/introspect.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/modules.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/packages.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/packages_aggregate.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/packages_remote.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/packages_scan.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/catalog/spawnable.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/deploy.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_common.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_init.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_io.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_pending.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_plugin.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_subagent.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_tool.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/codegen_trigger.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/creatures_crud.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/modules_crud.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/plugin_hooks.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/skills_state.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/creature_config.yaml.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/input.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/output.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/plugin.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/subagent.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/system_prompt.md.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/tool.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/templates_data/trigger.py.j2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/utils_paths.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/validators.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/workspace_fs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/workspace_manifest.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/yaml_creature.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/editors/yaml_manifest.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/files.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/api_keys.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/codex_oauth.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/llm_backends.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/llm_default.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/llm_native_tools.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/llm_profiles.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/mcp_servers.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/mcp_usage.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/settings.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/identity/ui_prefs.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/nodes.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/artifacts.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/fork.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/history.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/resume.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/store.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/diff.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/export.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/paths.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/rollups.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/summary.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/tree.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/persistence/viewer/turns.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/cluster_fold.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/cluster_paths.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_chat.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_command.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_ctl.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_model.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_modules.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_plugins.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/creature_state.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/find.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/handles.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/lifecycle.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/memory_build.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/memory_search.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/remote_meta.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/stop.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/topology.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/sessions/wiring.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/studio/studio.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/channel_lifecycle.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/channels.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/cli_output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/config.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/creature.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/creature_host.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/creature_ops.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/engine.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/engine_cli.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/engine_rich_cli.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/group_hooks.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/group_tool_context.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/multi_node_channels.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/multi_node_cluster.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/multi_node_replication.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/multi_node_routing.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/multi_node_service.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/observer.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/output_log.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/output_wiring.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/recipe.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/remote_service.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/resume.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/root.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/runtime_prompt.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/service.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/session_coord.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_channel.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_common.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_lifecycle.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_send.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_status.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/tools_group_wire.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/topology.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/topology_snapshot.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/wire.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/terrarium/wiring.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/agent.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/events.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/fake_llm_provider.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/llm.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/output.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/subprocess_seam.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/testing/terrarium.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/__init__.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/async_utils.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/config_dir.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/file_guard.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/file_walk.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/utils/logging.py +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/abap-DNgBPGRI.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/apex-B4r7dYl2.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/azcli-BKm6S2Cw.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/bat-BSxnouuk.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/bicep-B_GZ-wpx.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/cameligo-CXBRVnLk.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/clojure-cnfZdiGc.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/coffee-Cl1ACx-O.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/cpp-DnANvcr4.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/csharp-j4Zsiuzn.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/csp-CJnfk5It.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/css-CX2KWW-Q.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/css.worker-CpJJqcA4.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/cssMode-CtfXwgnY.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/cypher-D4V0lKaT.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/dart-CLzO6BZf.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/dockerfile-Bt15Hhqr.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/ecl-DLgnzhBc.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/editor.main-D4M8mfOA.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/element-plus-Bl9PS9H7.css +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/element-plus-Dy9KxKFU.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/elixir-Dc0k6n94.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/flow9-Cmb0SGvr.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/freemarker2-Dz8yjL95.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/fsharp-DUjP-BKm.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/go-DSFt5f-B.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/graphql-BGj0n4rN.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/handlebars-B9-G7gwA.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/hcl-CN-Ztzb4.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/highlight-BEOF7mkP.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/highlight-C8LL_u4z.css +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/html-DVGxM4pJ.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/html.worker-wsVgX3gp.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/htmlMode-C5KOTPV1.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/ini-BeMa714h.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/java-Dq86Qznf.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/javascript-BOm_W1Jn.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/json.worker-CcNiYOcv.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/jsonMode-CwOj3Xo4.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/julia-Bc53DpKu.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/kotlin-CQRm1pZj.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/less-BfrtPnli.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/lexon-D2S1YkuX.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/liquid-kAsMw2d0.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/lua-DQEY0YnT.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/m3-BuflAguW.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/markdown-BK2Bx0Uc.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/mdx-GqCrln-N.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/mips-1qOAKy2g.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/monaco-editor-BZeDFz3E.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/monaco-editor-Br_kD0ds.css +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/msdax-_4dmgZQ-.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/mysql-P77yJQsH.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/objective-c-ClnQjoXg.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/pascal-Bc7vQ0ww.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/pascaligo-CU0Jj3mr.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/perl-DUQq7oYb.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/pgsql-DiaHC3-b.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/php-BlWW-s9t.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/pla-C3G0xNH_.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/postiats-DuDQ2g7d.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/powerquery-A0ZakVXM.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/powershell-CR6g6RNz.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/protobuf-VgxhPgSb.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/pug-C_DyW9aF.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/python-NFGiUyiK.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/qsharp-DoW7kwI_.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/r-Cm84JybY.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/razor-DF_wJ9vT.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/redis-DrL-NF5O.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/redshift-BFyI3dDM.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/restructuredtext-BAnVJkrD.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/rolldown-runtime-Ckerh37x.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/ruby-BYkT7NSf.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/rust-fRZUAapC.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/sb-BEQIq6mo.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/scala-CtA-Dpyr.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/scheme-CUVe3YvV.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/scss-5W3dNF3Y.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/shell-DBgxJgVK.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/solidity-Dye8lGhL.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/sophia-DmcDOq41.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/sparql-Cv3vTK64.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/sql-D06NJRlu.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/st-Ca1c9xyP.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/swift-_jxqZxpE.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/systemverilog-B6m9LHIf.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/tcl-iZQEJ5k-.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/ts.worker-DfMAw22J.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/tsMode-ByqsHXMY.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/twig-tgVGZ8a3.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/typescript-fw_MGe8q.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/typespec-C5xfuswf.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/vb-BMkNQk3p.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/vue-vendor-GLcKlkIp.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/wgsl-Borzlq4p.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/xml-zEmrWqLn.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/assets/yaml-Bnn6I1fK.js +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/favicon.ico +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/favicon.png +0 -0
- {kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/kohakuterrarium/web_dist/kohaku-icon.png +0 -0
{kohakuterrarium-2.0.0.dev2/src/KohakuTerrarium.egg-info → kohakuterrarium-2.0.0.dev3}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KohakuTerrarium
|
|
3
|
-
Version: 2.0.0.
|
|
3
|
+
Version: 2.0.0.dev3
|
|
4
4
|
Summary: A universal agent framework for building self-driven AI agents and multi-agent teams
|
|
5
5
|
Author-email: "Shih-Ying Yeh (KohakuBlueLeaf)" <apolloyeh0123@gmail.com>
|
|
6
6
|
License: KohakuTerrarium-1.0
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "KohakuTerrarium"
|
|
7
|
-
version = "2.0.0.
|
|
7
|
+
version = "2.0.0.dev3"
|
|
8
8
|
description = "A universal agent framework for building self-driven AI agents and multi-agent teams"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Shih-Ying Yeh (KohakuBlueLeaf)", email = "apolloyeh0123@gmail.com" },
|
|
@@ -157,7 +157,7 @@ select = ["F401", "F841"]
|
|
|
157
157
|
[tool.briefcase]
|
|
158
158
|
project_name = "KohakuTerrarium"
|
|
159
159
|
bundle = "com.kohaku.terrarium"
|
|
160
|
-
version = "2.0.0.
|
|
160
|
+
version = "2.0.0.dev3"
|
|
161
161
|
url = "https://github.com/Kohaku-Lab/KohakuTerrarium"
|
|
162
162
|
license.file = "LICENSE"
|
|
163
163
|
author = "Shih-Ying Yeh (KohakuBlueLeaf)"
|
|
@@ -167,32 +167,29 @@ author_email = "apolloyeh0123@gmail.com"
|
|
|
167
167
|
formal_name = "KohakuTerrarium"
|
|
168
168
|
description = "Universal Agent Framework - Desktop App"
|
|
169
169
|
icon = "src/kohakuterrarium/app_icons/app"
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
# ``
|
|
173
|
-
# ``plans/1.5.0-roadmap/
|
|
170
|
+
# 06b — wrapper-only sources. The framework is DOWNLOADED as a
|
|
171
|
+
# pre-built release tarball at first launch (offline from
|
|
172
|
+
# ``bundled-release/`` or online from the configured channel feed).
|
|
173
|
+
# See ``plans/1.5.0-roadmap/06b-release-bundle-update/`` for the design.
|
|
174
174
|
#
|
|
175
|
-
# ``
|
|
176
|
-
# the launcher's ``
|
|
177
|
-
# populates ``
|
|
178
|
-
# before ``briefcase create
|
|
179
|
-
|
|
180
|
-
# ``plans/1.5.0-roadmap/06-app-update/01-bundled-first-install/``.
|
|
181
|
-
sources = ["src/kohakuterrarium", "wheels-bundle"]
|
|
175
|
+
# ``bundled-release/`` ships as a sibling directory inside the bundle
|
|
176
|
+
# so the launcher's ``bundled_release_dir()`` finds it at runtime.
|
|
177
|
+
# CI populates ``bundled-release/`` from the matrix ``release-tree``
|
|
178
|
+
# job before ``briefcase create``.
|
|
179
|
+
sources = ["src/kohakuterrarium", "bundled-release"]
|
|
182
180
|
startup_module = "kohakuterrarium.__briefcase__"
|
|
183
181
|
requires = [
|
|
184
|
-
# Launcher needs only
|
|
185
|
-
# splash
|
|
186
|
-
#
|
|
187
|
-
|
|
182
|
+
# Launcher needs only packaging (version compare), pywebview
|
|
183
|
+
# (splash UI — optional, Tk fallback), and zstandard (preferred
|
|
184
|
+
# tarball compression — .tar.gz fallback). NO pip, NO venv,
|
|
185
|
+
# NO ensurepip — the 06 design that depended on those was dead-on-
|
|
186
|
+
# arrival on Windows briefcase shells that strip stdlib modules.
|
|
188
187
|
"packaging>=23.0",
|
|
189
188
|
"pywebview==6.1",
|
|
189
|
+
"zstandard>=0.22",
|
|
190
190
|
]
|
|
191
191
|
# proxy_tools (pywebview dep) only has sdist on PyPI — pre-build wheel in CI.
|
|
192
|
-
|
|
193
|
-
# deps for offline first-launch (populated by
|
|
194
|
-
# ``scripts/build_wrapper_wheels.py`` before ``briefcase build``).
|
|
195
|
-
requirement_installer_args = ["--find-links", "wheels", "--find-links", "wheels-bundle"]
|
|
192
|
+
requirement_installer_args = ["--find-links", "wheels"]
|
|
196
193
|
|
|
197
194
|
[tool.briefcase.app.kohakuterrarium.macOS]
|
|
198
195
|
universal_build = false
|
{kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3/src/KohakuTerrarium.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KohakuTerrarium
|
|
3
|
-
Version: 2.0.0.
|
|
3
|
+
Version: 2.0.0.dev3
|
|
4
4
|
Summary: A universal agent framework for building self-driven AI agents and multi-agent teams
|
|
5
5
|
Author-email: "Shih-Ying Yeh (KohakuBlueLeaf)" <apolloyeh0123@gmail.com>
|
|
6
6
|
License: KohakuTerrarium-1.0
|
{kohakuterrarium-2.0.0.dev2 → kohakuterrarium-2.0.0.dev3}/src/KohakuTerrarium.egg-info/SOURCES.txt
RENAMED
|
@@ -407,15 +407,16 @@ src/kohakuterrarium/launcher/__init__.py
|
|
|
407
407
|
src/kohakuterrarium/launcher/__main__.py
|
|
408
408
|
src/kohakuterrarium/launcher/_lock.py
|
|
409
409
|
src/kohakuterrarium/launcher/bootloader.py
|
|
410
|
+
src/kohakuterrarium/launcher/downloader.py
|
|
411
|
+
src/kohakuterrarium/launcher/feeds.py
|
|
410
412
|
src/kohakuterrarium/launcher/log.py
|
|
411
413
|
src/kohakuterrarium/launcher/migration.py
|
|
412
414
|
src/kohakuterrarium/launcher/paths.py
|
|
413
415
|
src/kohakuterrarium/launcher/settings.py
|
|
414
|
-
src/kohakuterrarium/launcher/sources.py
|
|
415
416
|
src/kohakuterrarium/launcher/splash_server.py
|
|
416
417
|
src/kohakuterrarium/launcher/splash_window.py
|
|
418
|
+
src/kohakuterrarium/launcher/tree_ops.py
|
|
417
419
|
src/kohakuterrarium/launcher/update_runner.py
|
|
418
|
-
src/kohakuterrarium/launcher/venv_ops.py
|
|
419
420
|
src/kohakuterrarium/llm/__init__.py
|
|
420
421
|
src/kohakuterrarium/llm/anthropic_cache.py
|
|
421
422
|
src/kohakuterrarium/llm/anthropic_format.py
|
|
@@ -766,12 +767,12 @@ src/kohakuterrarium/web_dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2
|
|
|
766
767
|
src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff
|
|
767
768
|
src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2
|
|
768
769
|
src/kohakuterrarium/web_dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf
|
|
769
|
-
src/kohakuterrarium/web_dist/assets/_id_-
|
|
770
|
-
src/kohakuterrarium/web_dist/assets/_key_-
|
|
770
|
+
src/kohakuterrarium/web_dist/assets/_id_-CQuALEFj.js
|
|
771
|
+
src/kohakuterrarium/web_dist/assets/_key_-Dwr8H8dF.js
|
|
771
772
|
src/kohakuterrarium/web_dist/assets/abap-DNgBPGRI.js
|
|
772
773
|
src/kohakuterrarium/web_dist/assets/apex-B4r7dYl2.js
|
|
773
|
-
src/kohakuterrarium/web_dist/assets/api-
|
|
774
|
-
src/kohakuterrarium/web_dist/assets/axios-
|
|
774
|
+
src/kohakuterrarium/web_dist/assets/api-BV0fScbj.js
|
|
775
|
+
src/kohakuterrarium/web_dist/assets/axios-BPEz4Z9Y.js
|
|
775
776
|
src/kohakuterrarium/web_dist/assets/azcli-BKm6S2Cw.js
|
|
776
777
|
src/kohakuterrarium/web_dist/assets/bat-BSxnouuk.js
|
|
777
778
|
src/kohakuterrarium/web_dist/assets/bicep-B_GZ-wpx.js
|
|
@@ -805,10 +806,10 @@ src/kohakuterrarium/web_dist/assets/highlight-C8LL_u4z.css
|
|
|
805
806
|
src/kohakuterrarium/web_dist/assets/html-DVGxM4pJ.js
|
|
806
807
|
src/kohakuterrarium/web_dist/assets/html.worker-wsVgX3gp.js
|
|
807
808
|
src/kohakuterrarium/web_dist/assets/htmlMode-C5KOTPV1.js
|
|
808
|
-
src/kohakuterrarium/web_dist/assets/index-
|
|
809
|
-
src/kohakuterrarium/web_dist/assets/index-
|
|
809
|
+
src/kohakuterrarium/web_dist/assets/index-DrSNCGQH.css
|
|
810
|
+
src/kohakuterrarium/web_dist/assets/index-WCbP0Trd.js
|
|
810
811
|
src/kohakuterrarium/web_dist/assets/ini-BeMa714h.js
|
|
811
|
-
src/kohakuterrarium/web_dist/assets/instances-
|
|
812
|
+
src/kohakuterrarium/web_dist/assets/instances-DqdS7Lrl.js
|
|
812
813
|
src/kohakuterrarium/web_dist/assets/java-Dq86Qznf.js
|
|
813
814
|
src/kohakuterrarium/web_dist/assets/javascript-BOm_W1Jn.js
|
|
814
815
|
src/kohakuterrarium/web_dist/assets/json.worker-CcNiYOcv.js
|
|
@@ -828,8 +829,8 @@ src/kohakuterrarium/web_dist/assets/monaco-editor-Br_kD0ds.css
|
|
|
828
829
|
src/kohakuterrarium/web_dist/assets/msdax-_4dmgZQ-.js
|
|
829
830
|
src/kohakuterrarium/web_dist/assets/mysql-P77yJQsH.js
|
|
830
831
|
src/kohakuterrarium/web_dist/assets/objective-c-ClnQjoXg.js
|
|
831
|
-
src/kohakuterrarium/web_dist/assets/pages-
|
|
832
|
-
src/kohakuterrarium/web_dist/assets/panel-debug-
|
|
832
|
+
src/kohakuterrarium/web_dist/assets/pages-DSvfMUqz.js
|
|
833
|
+
src/kohakuterrarium/web_dist/assets/panel-debug-D0a3hCe3.js
|
|
833
834
|
src/kohakuterrarium/web_dist/assets/pascal-Bc7vQ0ww.js
|
|
834
835
|
src/kohakuterrarium/web_dist/assets/pascaligo-CU0Jj3mr.js
|
|
835
836
|
src/kohakuterrarium/web_dist/assets/perl-DUQq7oYb.js
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"""``/api/app/*`` — app-update API for the Vue ``Admin → Updates`` tab.
|
|
2
|
+
|
|
3
|
+
Wraps the launcher's update_runner + feeds + settings helpers in HTTP
|
|
4
|
+
+ WebSocket form so the frontend can drive the same flow the CLI's
|
|
5
|
+
``kt self-update`` exposes. Only mounted in standalone and lab-host
|
|
6
|
+
modes; worker installs (lab-client) return 404 across the whole
|
|
7
|
+
namespace.
|
|
8
|
+
|
|
9
|
+
Endpoints (canonical: ``plans/1.5.0-roadmap/06b-release-bundle-update/design.md`` §11):
|
|
10
|
+
|
|
11
|
+
| GET | ``/api/app/settings`` | round-trip settings |
|
|
12
|
+
| PUT | ``/api/app/settings`` | round-trip settings |
|
|
13
|
+
| POST | ``/api/app/feeds/probe`` | force-fetch channel manifest |
|
|
14
|
+
| GET | ``/api/app/state`` | aggregate UI state |
|
|
15
|
+
| POST | ``/api/app/update`` | start update; returns WS path |
|
|
16
|
+
| POST | ``/api/app/rollback`` | revert pointer |
|
|
17
|
+
| WS | ``/ws/app/update`` | streams progress frames |
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
import asyncio
|
|
21
|
+
import json
|
|
22
|
+
from typing import Any
|
|
23
|
+
|
|
24
|
+
from fastapi import APIRouter, HTTPException, Request, WebSocket, WebSocketDisconnect
|
|
25
|
+
|
|
26
|
+
from kohakuterrarium.launcher import settings as _launcher_settings
|
|
27
|
+
from kohakuterrarium.launcher.feeds import (
|
|
28
|
+
FeedError,
|
|
29
|
+
current_platform_tag,
|
|
30
|
+
current_py_abi_tag,
|
|
31
|
+
fetch_manifest,
|
|
32
|
+
list_available_releases,
|
|
33
|
+
)
|
|
34
|
+
from kohakuterrarium.launcher.migration import (
|
|
35
|
+
is_launcher_install,
|
|
36
|
+
is_legacy_bundle,
|
|
37
|
+
)
|
|
38
|
+
from kohakuterrarium.launcher.tree_ops import (
|
|
39
|
+
list_installed_versions,
|
|
40
|
+
read_active_pointer,
|
|
41
|
+
)
|
|
42
|
+
from kohakuterrarium.launcher.update_runner import (
|
|
43
|
+
UpdateResult,
|
|
44
|
+
probe_only,
|
|
45
|
+
rollback,
|
|
46
|
+
run_update,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
router = APIRouter()
|
|
50
|
+
# WebSocket lives on its own router so the API router's ``/api/app``
|
|
51
|
+
# prefix doesn't shift the canonical ``/ws/app/update`` path.
|
|
52
|
+
ws_router = APIRouter()
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _wrapper_mode_only(request: Request) -> None:
|
|
56
|
+
"""Reject the call when the host isn't a wrapper / standalone install."""
|
|
57
|
+
lab_mode = getattr(request.app.state, "lab_mode", "standalone")
|
|
58
|
+
if lab_mode == "lab-client":
|
|
59
|
+
raise HTTPException(
|
|
60
|
+
404, "app-update routes are not available in lab-client mode"
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _result_to_dict(r: UpdateResult) -> dict[str, Any]:
|
|
65
|
+
return {
|
|
66
|
+
"ok": r.ok,
|
|
67
|
+
"version": r.version,
|
|
68
|
+
"build_id": r.build_id,
|
|
69
|
+
"error": r.error,
|
|
70
|
+
"restart-required": r.restart_required,
|
|
71
|
+
"skipped-reason": r.skipped_reason,
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
# ── Settings ────────────────────────────────────────────────────────
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@router.get("/settings")
|
|
79
|
+
async def get_settings(request: Request) -> dict[str, Any]:
|
|
80
|
+
_wrapper_mode_only(request)
|
|
81
|
+
return _launcher_settings.to_public_dict(_launcher_settings.load())
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@router.put("/settings")
|
|
85
|
+
async def put_settings(request: Request, body: dict[str, Any]) -> dict[str, Any]:
|
|
86
|
+
_wrapper_mode_only(request)
|
|
87
|
+
if not isinstance(body, dict):
|
|
88
|
+
raise HTTPException(400, "request body must be a JSON object")
|
|
89
|
+
new_settings = _launcher_settings.from_public_dict(body)
|
|
90
|
+
_launcher_settings.save(new_settings)
|
|
91
|
+
return _launcher_settings.to_public_dict(new_settings)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
# ── State + probe ───────────────────────────────────────────────────
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@router.get("/state")
|
|
98
|
+
async def get_state(request: Request) -> dict[str, Any]:
|
|
99
|
+
_wrapper_mode_only(request)
|
|
100
|
+
cfg = _launcher_settings.load()
|
|
101
|
+
ptr = read_active_pointer()
|
|
102
|
+
installed = [
|
|
103
|
+
{
|
|
104
|
+
"version": p.version,
|
|
105
|
+
"build_id": p.build_id,
|
|
106
|
+
"installed_at": p.installed_at,
|
|
107
|
+
}
|
|
108
|
+
for p in list_installed_versions()
|
|
109
|
+
]
|
|
110
|
+
return {
|
|
111
|
+
"active": (
|
|
112
|
+
{
|
|
113
|
+
"version": ptr.version,
|
|
114
|
+
"build_id": ptr.build_id,
|
|
115
|
+
"installed_at": ptr.installed_at,
|
|
116
|
+
}
|
|
117
|
+
if ptr is not None
|
|
118
|
+
else None
|
|
119
|
+
),
|
|
120
|
+
"installed": installed,
|
|
121
|
+
"settings": _launcher_settings.to_public_dict(cfg),
|
|
122
|
+
"launcher_install": is_launcher_install(),
|
|
123
|
+
"legacy_bundle": is_legacy_bundle(),
|
|
124
|
+
"platform": current_platform_tag(),
|
|
125
|
+
"py_abi": current_py_abi_tag(),
|
|
126
|
+
"last_check_at": cfg.runtime.last_check_at,
|
|
127
|
+
"last_check_error": cfg.runtime.last_check_error,
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
@router.post("/feeds/probe")
|
|
132
|
+
async def post_feeds_probe(request: Request) -> dict[str, Any]:
|
|
133
|
+
"""Force-fetch the channel manifest; return its releases filtered
|
|
134
|
+
for the running platform/abi (newest first)."""
|
|
135
|
+
_wrapper_mode_only(request)
|
|
136
|
+
cfg = _launcher_settings.load()
|
|
137
|
+
plat = current_platform_tag()
|
|
138
|
+
abi = current_py_abi_tag()
|
|
139
|
+
try:
|
|
140
|
+
manifest = await asyncio.to_thread(fetch_manifest, cfg, force_refresh=True)
|
|
141
|
+
except FeedError as e:
|
|
142
|
+
raise HTTPException(502, f"feed probe failed: {e}") from e
|
|
143
|
+
releases = list_available_releases(manifest, platform_tag=plat, py_abi_tag=abi)
|
|
144
|
+
latest = releases[0]["version"] if releases else None
|
|
145
|
+
return {
|
|
146
|
+
"channel": cfg.channel,
|
|
147
|
+
"feed": _launcher_settings.to_public_dict(cfg)["feed"],
|
|
148
|
+
"platform": plat,
|
|
149
|
+
"py_abi": abi,
|
|
150
|
+
"latest_version": latest,
|
|
151
|
+
"releases": releases,
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
# ── Update / rollback ───────────────────────────────────────────────
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
@router.post("/update")
|
|
159
|
+
async def post_update(request: Request) -> dict[str, Any]:
|
|
160
|
+
_wrapper_mode_only(request)
|
|
161
|
+
if not is_launcher_install():
|
|
162
|
+
raise HTTPException(
|
|
163
|
+
409,
|
|
164
|
+
"this install is not launcher-managed; "
|
|
165
|
+
"run `kt self-update` from the terminal instead",
|
|
166
|
+
)
|
|
167
|
+
return {"websocket": "/ws/app/update"}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
@router.post("/rollback")
|
|
171
|
+
async def post_rollback(request: Request) -> dict[str, Any]:
|
|
172
|
+
_wrapper_mode_only(request)
|
|
173
|
+
if not is_launcher_install():
|
|
174
|
+
raise HTTPException(409, "rollback is launcher-only")
|
|
175
|
+
result = await asyncio.to_thread(rollback)
|
|
176
|
+
return _result_to_dict(result)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
@router.post("/check")
|
|
180
|
+
async def post_check(request: Request) -> dict[str, Any]:
|
|
181
|
+
"""Probe what would be installed without doing it."""
|
|
182
|
+
_wrapper_mode_only(request)
|
|
183
|
+
result = await asyncio.to_thread(probe_only)
|
|
184
|
+
return _result_to_dict(result)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
# ── WebSocket ───────────────────────────────────────────────────────
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
_WS_PATH = "/ws/app/update"
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
async def _stream_update(ws: WebSocket) -> None:
|
|
194
|
+
"""Drive run_update() to completion, streaming progress frames."""
|
|
195
|
+
queue: asyncio.Queue = asyncio.Queue()
|
|
196
|
+
|
|
197
|
+
def _push(phase: str, percent: float, message: str) -> None:
|
|
198
|
+
# Called from the worker thread; thread-safe enqueue.
|
|
199
|
+
try:
|
|
200
|
+
queue.put_nowait({"phase": phase, "percent": percent, "message": message})
|
|
201
|
+
except Exception: # pragma: no cover - defensive
|
|
202
|
+
pass
|
|
203
|
+
|
|
204
|
+
loop = asyncio.get_running_loop()
|
|
205
|
+
|
|
206
|
+
async def _pump() -> UpdateResult:
|
|
207
|
+
return await loop.run_in_executor(None, lambda: run_update(_push))
|
|
208
|
+
|
|
209
|
+
runner_task = asyncio.create_task(_pump())
|
|
210
|
+
try:
|
|
211
|
+
while True:
|
|
212
|
+
done, _ = await asyncio.wait(
|
|
213
|
+
[runner_task, asyncio.create_task(queue.get())],
|
|
214
|
+
return_when=asyncio.FIRST_COMPLETED,
|
|
215
|
+
timeout=0.5,
|
|
216
|
+
)
|
|
217
|
+
# Drain whatever frames are pending.
|
|
218
|
+
while not queue.empty():
|
|
219
|
+
frame = queue.get_nowait()
|
|
220
|
+
await ws.send_text(json.dumps(frame))
|
|
221
|
+
if runner_task in done:
|
|
222
|
+
break
|
|
223
|
+
finally:
|
|
224
|
+
result = await runner_task
|
|
225
|
+
terminal = {
|
|
226
|
+
"phase": "done" if result.ok else "failed",
|
|
227
|
+
"percent": 100,
|
|
228
|
+
"message": (
|
|
229
|
+
f"updated to {result.version}" if result.ok else (result.error or "failed")
|
|
230
|
+
),
|
|
231
|
+
"status": "ok" if result.ok else "failed",
|
|
232
|
+
"restart-required": result.restart_required,
|
|
233
|
+
"version": result.version,
|
|
234
|
+
"build_id": result.build_id,
|
|
235
|
+
"skipped-reason": result.skipped_reason,
|
|
236
|
+
}
|
|
237
|
+
await ws.send_text(json.dumps(terminal))
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
@ws_router.websocket(_WS_PATH)
|
|
241
|
+
async def ws_update(ws: WebSocket) -> None:
|
|
242
|
+
lab_mode = getattr(ws.app.state, "lab_mode", "standalone")
|
|
243
|
+
if lab_mode == "lab-client":
|
|
244
|
+
await ws.close(code=4404)
|
|
245
|
+
return
|
|
246
|
+
if not is_launcher_install():
|
|
247
|
+
await ws.accept()
|
|
248
|
+
await ws.send_text(
|
|
249
|
+
json.dumps(
|
|
250
|
+
{
|
|
251
|
+
"phase": "refused",
|
|
252
|
+
"percent": 0,
|
|
253
|
+
"message": "non-launcher install; use `kt self-update` from terminal",
|
|
254
|
+
"status": "failed",
|
|
255
|
+
}
|
|
256
|
+
)
|
|
257
|
+
)
|
|
258
|
+
await ws.close()
|
|
259
|
+
return
|
|
260
|
+
await ws.accept()
|
|
261
|
+
try:
|
|
262
|
+
await _stream_update(ws)
|
|
263
|
+
except WebSocketDisconnect:
|
|
264
|
+
return
|
|
265
|
+
finally:
|
|
266
|
+
try:
|
|
267
|
+
await ws.close()
|
|
268
|
+
except Exception: # pragma: no cover - already closed
|
|
269
|
+
pass
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
__all__ = ["router", "ws_router"]
|
|
@@ -24,7 +24,7 @@ from typing import Any
|
|
|
24
24
|
from fastapi import APIRouter, Depends, Request
|
|
25
25
|
|
|
26
26
|
from kohakuterrarium.api.deps import get_service
|
|
27
|
-
from kohakuterrarium.launcher.
|
|
27
|
+
from kohakuterrarium.launcher.migration import is_launcher_install
|
|
28
28
|
from kohakuterrarium.utils.config_dir import config_dir
|
|
29
29
|
from kohakuterrarium.utils.logging import get_logger
|
|
30
30
|
|
|
@@ -45,9 +45,9 @@ def _get_version() -> str:
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
def _install_kind() -> str:
|
|
48
|
-
"""
|
|
48
|
+
"""Launcher-managed install vs other (dev, packaged python, etc.)."""
|
|
49
49
|
try:
|
|
50
|
-
return "
|
|
50
|
+
return "launcher" if is_launcher_install() else "user"
|
|
51
51
|
except OSError:
|
|
52
52
|
return "user"
|
|
53
53
|
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"""``kt self-update`` — CLI parity for the launcher's update flow.
|
|
2
|
+
|
|
3
|
+
The 06b launcher is the *only* thing that updates this install. This
|
|
4
|
+
verb is a thin client over :mod:`launcher.update_runner`:
|
|
5
|
+
|
|
6
|
+
- **Launcher install** (active pointer + interpreter under
|
|
7
|
+
``runtime/versions/``) → call :func:`launcher.update_runner.run_update`
|
|
8
|
+
with optional one-shot overrides (`--channel`, `--feed-url`, `--pin`).
|
|
9
|
+
- **Anything else** (dev install via ``pip install -e .``, lab worker
|
|
10
|
+
node, system package, pipx) → refuse with a one-line explanation.
|
|
11
|
+
No more "fall back to pip" — the framework process running outside
|
|
12
|
+
the launcher is by definition not something we manage.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import argparse
|
|
16
|
+
import importlib.metadata
|
|
17
|
+
import sys
|
|
18
|
+
|
|
19
|
+
from kohakuterrarium.launcher import settings as _launcher_settings
|
|
20
|
+
from kohakuterrarium.launcher.feeds import (
|
|
21
|
+
FeedError,
|
|
22
|
+
resolve_feed,
|
|
23
|
+
)
|
|
24
|
+
from kohakuterrarium.launcher.migration import is_launcher_install
|
|
25
|
+
from kohakuterrarium.launcher.tree_ops import read_active_pointer
|
|
26
|
+
from kohakuterrarium.launcher.update_runner import (
|
|
27
|
+
probe_only,
|
|
28
|
+
rollback,
|
|
29
|
+
run_update,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _print(line: str) -> None:
|
|
34
|
+
sys.stdout.write(line + "\n")
|
|
35
|
+
sys.stdout.flush()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _current_version() -> str | None:
|
|
39
|
+
try:
|
|
40
|
+
return importlib.metadata.version("kohakuterrarium")
|
|
41
|
+
except importlib.metadata.PackageNotFoundError:
|
|
42
|
+
return None
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _apply_overrides(args: argparse.Namespace) -> None:
|
|
46
|
+
"""Apply ``--channel``, ``--feed-url``, ``--pin`` overrides to settings.
|
|
47
|
+
|
|
48
|
+
Persisted so the next launcher launch inherits the new choice —
|
|
49
|
+
matches the GUI's behaviour where the dropdown is sticky.
|
|
50
|
+
"""
|
|
51
|
+
cfg = _launcher_settings.load()
|
|
52
|
+
touched = False
|
|
53
|
+
if args.channel is not None:
|
|
54
|
+
cfg.channel = args.channel
|
|
55
|
+
touched = True
|
|
56
|
+
if args.feed_url is not None:
|
|
57
|
+
cfg.feed.kind = "custom"
|
|
58
|
+
cfg.feed.url = args.feed_url
|
|
59
|
+
touched = True
|
|
60
|
+
if args.pin is not None:
|
|
61
|
+
cfg.pinned_version = args.pin or None
|
|
62
|
+
touched = True
|
|
63
|
+
if touched:
|
|
64
|
+
_launcher_settings.save(cfg)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _refuse_non_launcher() -> int:
|
|
68
|
+
_print("kt self-update: this process is not running inside a launcher install.")
|
|
69
|
+
_print(
|
|
70
|
+
" - Developer checkout? Run `git pull` (or `pip install -e .`) in your tree."
|
|
71
|
+
)
|
|
72
|
+
_print(" - Worker node? Update the host's launcher install separately.")
|
|
73
|
+
_print(" - pipx / system pip? Use those tools' own update commands.")
|
|
74
|
+
return 2
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def self_update_cli(args: argparse.Namespace) -> int:
|
|
78
|
+
cur = _current_version() or "unknown"
|
|
79
|
+
|
|
80
|
+
if not is_launcher_install():
|
|
81
|
+
if args.check_only:
|
|
82
|
+
_print(
|
|
83
|
+
f"kt self-update: current={cur}; not running inside a launcher install"
|
|
84
|
+
)
|
|
85
|
+
return 2
|
|
86
|
+
return _refuse_non_launcher()
|
|
87
|
+
|
|
88
|
+
_apply_overrides(args)
|
|
89
|
+
|
|
90
|
+
if args.check_only:
|
|
91
|
+
result = probe_only()
|
|
92
|
+
if not result.ok:
|
|
93
|
+
_print(f"kt self-update: probe failed — {result.error}")
|
|
94
|
+
return 2
|
|
95
|
+
_print(f"kt self-update: current={cur}; latest={result.version}")
|
|
96
|
+
return 0 if result.skipped_reason != "up-to-date" else 1
|
|
97
|
+
|
|
98
|
+
if args.rollback:
|
|
99
|
+
result = rollback()
|
|
100
|
+
if not result.ok:
|
|
101
|
+
_print(f"kt self-update: rollback failed — {result.error}")
|
|
102
|
+
return 1
|
|
103
|
+
_print(
|
|
104
|
+
f"kt self-update: pointer reverted to {result.version}; restart to use it"
|
|
105
|
+
)
|
|
106
|
+
return 0
|
|
107
|
+
|
|
108
|
+
if args.dry_run:
|
|
109
|
+
cfg = _launcher_settings.load()
|
|
110
|
+
try:
|
|
111
|
+
target = resolve_feed(cfg, force_refresh=True)
|
|
112
|
+
except FeedError as e:
|
|
113
|
+
_print(f"kt self-update: dry-run resolution failed — {e}")
|
|
114
|
+
return 2
|
|
115
|
+
ptr = read_active_pointer()
|
|
116
|
+
active = ptr.version if ptr else "<none>"
|
|
117
|
+
_print(
|
|
118
|
+
f"kt self-update: --dry-run; would install {target.version} "
|
|
119
|
+
f"(active={active}, feed={cfg.feed.kind}, channel={cfg.channel})"
|
|
120
|
+
)
|
|
121
|
+
return 0
|
|
122
|
+
|
|
123
|
+
result = run_update()
|
|
124
|
+
if not result.ok:
|
|
125
|
+
_print(f"kt self-update: failed — {result.error}")
|
|
126
|
+
return 1
|
|
127
|
+
if result.skipped_reason == "up-to-date":
|
|
128
|
+
_print(f"kt self-update: already on {result.version}; no change")
|
|
129
|
+
return 0
|
|
130
|
+
_print(f"kt self-update: updated to {result.version}; restart the app to use it")
|
|
131
|
+
return 0
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def add_self_update_subparser(subparsers) -> None:
|
|
135
|
+
parser = subparsers.add_parser(
|
|
136
|
+
"self-update",
|
|
137
|
+
help="Update KohakuTerrarium via the launcher's release feed",
|
|
138
|
+
)
|
|
139
|
+
parser.add_argument(
|
|
140
|
+
"--check-only",
|
|
141
|
+
action="store_true",
|
|
142
|
+
help="Resolve the feed and print latest available; exit 0 if newer, 1 if up-to-date.",
|
|
143
|
+
)
|
|
144
|
+
parser.add_argument(
|
|
145
|
+
"--dry-run",
|
|
146
|
+
action="store_true",
|
|
147
|
+
help="Resolve the feed and print what would be installed; do not install.",
|
|
148
|
+
)
|
|
149
|
+
parser.add_argument(
|
|
150
|
+
"--rollback",
|
|
151
|
+
action="store_true",
|
|
152
|
+
help="Revert the active pointer to the previous installed version.",
|
|
153
|
+
)
|
|
154
|
+
parser.add_argument(
|
|
155
|
+
"--channel",
|
|
156
|
+
choices=("stable", "beta", "nightly"),
|
|
157
|
+
default=None,
|
|
158
|
+
help="Persist a new channel before updating (sticky, mirrors the GUI dropdown).",
|
|
159
|
+
)
|
|
160
|
+
parser.add_argument(
|
|
161
|
+
"--feed-url",
|
|
162
|
+
default=None,
|
|
163
|
+
help="Switch to a custom feed URL before updating (sticky).",
|
|
164
|
+
)
|
|
165
|
+
parser.add_argument(
|
|
166
|
+
"--pin",
|
|
167
|
+
default=None,
|
|
168
|
+
help='Persist a pinned version (e.g. "1.5.1"); empty string clears.',
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
__all__ = ["add_self_update_subparser", "self_update_cli"]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""KohakuTerrarium launcher — thin wrapper that owns the runtime tree.
|
|
2
|
+
|
|
3
|
+
This package is the briefcase desktop bundle's *only* runtime entry
|
|
4
|
+
point. It manages versioned installs under
|
|
5
|
+
``~/.kohakuterrarium/runtime/versions/<X.Y.Z>/``, atomically swaps the
|
|
6
|
+
``runtime/active`` pointer, and ``os.execv``'s into the active
|
|
7
|
+
version's ``scripts/kt`` to replace itself with the real framework
|
|
8
|
+
process.
|
|
9
|
+
|
|
10
|
+
**Strict isolation rule.** Modules under
|
|
11
|
+
:mod:`kohakuterrarium.launcher` must NOT import from any other
|
|
12
|
+
``kohakuterrarium.*`` package. The launcher runs BEFORE any framework
|
|
13
|
+
code is on ``sys.path`` (first launch, recovery), and a missing
|
|
14
|
+
transitive import would crash the wrapper. A dep-graph guard test in
|
|
15
|
+
``tests/unit/`` enforces this.
|
|
16
|
+
|
|
17
|
+
The package ``__init__`` deliberately re-exports NOTHING so that
|
|
18
|
+
``import kohakuterrarium.launcher.<submodule>`` from any submodule's
|
|
19
|
+
top of file does not trigger a circular import chain through
|
|
20
|
+
``bootloader`` → ``update_runner`` → ``settings`` → … back to
|
|
21
|
+
``launcher.__init__``. Callers (``__main__``, ``__briefcase__``)
|
|
22
|
+
import :func:`bootloader.main` directly.
|
|
23
|
+
|
|
24
|
+
Wrapper-only dependencies (intentionally small):
|
|
25
|
+
|
|
26
|
+
- stdlib: ``argparse``, ``json``, ``os``, ``pathlib``, ``subprocess``,
|
|
27
|
+
``shutil``, ``hashlib``, ``urllib``, ``tarfile``, ``http.server``,
|
|
28
|
+
``threading``, ``logging``
|
|
29
|
+
- third-party: ``packaging`` (any), ``pywebview`` (splash UI — optional;
|
|
30
|
+
Tk fallback if missing), ``zstandard`` (optional; ``.tar.gz`` fallback
|
|
31
|
+
if missing)
|
|
32
|
+
|
|
33
|
+
Notably **not** required: ``pip``, ``venv``, ``ensurepip``, ``git``,
|
|
34
|
+
``installer``. The launcher never installs Python packages on the
|
|
35
|
+
user's machine — it downloads pre-built site-packages trees.
|
|
36
|
+
"""
|