tau-coding-agent 0.4.7__tar.gz → 0.5.0__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.
- {tau_coding_agent-0.4.7/tau_coding_agent.egg-info → tau_coding_agent-0.5.0}/PKG-INFO +7 -6
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/README.md +5 -5
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/architecture.md +11 -9
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/auth.md +9 -9
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/cli-reference.md +16 -8
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/development.md +18 -31
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/docs.json +8 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/extension-settings.md +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/extensions.md +15 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/http-proxy.md +10 -7
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/index.md +2 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/inference-providers.md +23 -85
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/installation.md +6 -11
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/keybindings.md +24 -8
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/messages.md +25 -26
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/project-structure.md +22 -26
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/prompts.md +2 -5
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/python-api.md +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/quickstart.md +11 -13
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/sessions.md +14 -17
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/settings.md +34 -5
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/skills.md +13 -7
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/themes.md +9 -25
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/tools.md +58 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/usage.md +8 -14
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/pyproject.toml +2 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/audio.py +10 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/image.py +19 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/text.py +664 -86
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/video.py +65 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/audio.py +6 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/image.py +6 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/text.py +7 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/video.py +6 -0
- tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/LICENSE.txt +13 -0
- tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/SKILL.md +153 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/edit.py +51 -1
- tau_coding_agent-0.5.0/tau/builtins/tools/grep.py +302 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/service.py +0 -4
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/api.py +8 -3
- tau_coding_agent-0.5.0/tau/inference/api/text/dialect.py +144 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/github_copilot_chat.py +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_completions.py +12 -21
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_vertex.py +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/utils.py +24 -7
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/builtins.py +1 -0
- tau_coding_agent-0.5.0/tau/inference/api/video/zai_video.py +139 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/types.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/app.py +99 -19
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/appearance.py +25 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/auth.py +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/model.py +1 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/command_palette.py +4 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/config_selector.py +0 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/file_picker.py +4 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/layout.py +35 -29
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/message_list.py +11 -9
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/overlays.py +2 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/session_selector.py +4 -7
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/service.py +18 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/manager.py +30 -4
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/types.py +4 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/autocomplete.py +4 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/select_list.py +40 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/text_input.py +191 -25
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/input.py +41 -31
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/markdown.py +33 -9
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/tui.py +30 -6
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/ui_context.py +30 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/utils.py +73 -6
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/http_proxy.py +4 -2
- tau_coding_agent-0.5.0/tau/utils/telemetry.py +42 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0/tau_coding_agent.egg-info}/PKG-INFO +7 -6
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/SOURCES.txt +11 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/requires.txt +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_ansi.py +12 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_command.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_manager.py +5 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_storage.py +12 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_builtin_tools.py +46 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_diff.py +3 -8
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_editor_protocol.py +2 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_types.py +1 -0
- tau_coding_agent-0.5.0/tests/test_escape_behavior.py +39 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_extension_api.py +71 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_footer_utils.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_fuzzy.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_http_proxy.py +10 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_image_processing.py +43 -12
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_api_text_utils.py +11 -5
- tau_coding_agent-0.5.0/tests/test_inference_dialect.py +31 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_error_utils.py +2 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_types.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_utils.py +20 -11
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_keybindings.py +6 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_markdown.py +34 -15
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_message_types.py +20 -4
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_message_utils.py +8 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_availability.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_registry.py +9 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_types.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_oauth_utils.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_packages_utils.py +6 -0
- tau_coding_agent-0.5.0/tests/test_peer_extension.py +46 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_pkce.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_expand.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_loader.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_registry.py +7 -2
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_provider_registry.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_rpc_mode.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_secrets.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_trust_persist.py +2 -3
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_types.py +6 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_utils.py +7 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_manager.py +7 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_paths.py +7 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_storage.py +10 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_utils.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_skills_loader.py +4 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_skills_registry.py +15 -0
- tau_coding_agent-0.5.0/tests/test_telemetry.py +75 -0
- tau_coding_agent-0.5.0/tests/test_text_input.py +229 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_text_llm_invoke.py +49 -19
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_theme_loader.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_themes_registry.py +14 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tool_render.py +55 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_trust_manager.py +2 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_trust_utils.py +6 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_capabilities.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_input.py +48 -10
- tau_coding_agent-0.5.0/tests/test_tui_renderer.py +150 -0
- tau_coding_agent-0.5.0/tests/test_tui_select_list.py +40 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_theme.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_utils.py +1 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_version_check.py +1 -0
- tau_coding_agent-0.4.7/docs/IMPLEMENTATION_SUMMARY.md +0 -163
- tau_coding_agent-0.4.7/tau/builtins/tools/grep.py +0 -178
- tau_coding_agent-0.4.7/tests/test_text_input.py +0 -17
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/LICENSE +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/MANIFEST.in +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/project-context.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/setup.cfg +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/builder.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/manager.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/storage.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/clear.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/compact.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/reload.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/session.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/btw/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/git.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/model.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/header/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/watch/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/commit.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/docs.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/explain.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/fix.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/refactor.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/review.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/test.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/code-review/SKILL.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/debug/SKILL.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/git-commit/SKILL.md +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/themes/dark.yaml +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/themes/light.yaml +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/glob.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/ls.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/read.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/terminal.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/write.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/cli.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/auth.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/packages.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/update.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/core/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/core/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/context.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/runtime.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/settings.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/engine.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/inference.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/runtime.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/session.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/tui.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/base.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/builtins.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/gemini_audio.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/openai_audio.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/sarvam_audio.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/availability.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/base.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/builtins.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/gemini_image.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/openai_image.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/openrouter.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_messages.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_vertex.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/base.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/builtins.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/gemini_generate.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_antigravity.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_vertex.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/mistral_chat.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/ollama_chat.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_codex_responses.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_responses.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/base.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/fal_video.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/openrouter_video.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/service.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/github_copilot.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/google_antigravity.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/openai_codex.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/pkce.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/agent_hooks.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/context.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/extensions.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/misc.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/session.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/extension_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/model_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/oauth_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/selector_controller.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/settings_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/theme_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/thinking_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/tree_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/trust_screen.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/voice_selector.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/input_handler.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/print/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/mode.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/manager.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/expand.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/dependencies.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/branch_summarization.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/compaction.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/manager.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/paths.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/storage.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/render.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/manager.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/utils.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/component.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/box.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/editor.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/image.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/spinner.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/keybinding_hints.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/terminal.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/theme.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/__init__.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/image_processing.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/secrets.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/version_check.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/entry_points.txt +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/top_level.txt +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_compaction.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_prompt.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_types.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_branch_navigation.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_branch_summarization.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_builtin_watch.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_cli_inputs.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_command_execution_policy.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_command_registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_compaction.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_execution.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_steering.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_extension_lifecycle.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_footer_model.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_command.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_selector_modal.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_package_resources.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_resource_loader.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_runtime_sdk.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_selector_controller.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_manager.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_subagents_extension.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_thinking_render.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tool_registry.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_layout_sizing.py +1 -1
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_ui_context.py +0 -0
- {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_voice_selector.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tau-coding-agent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -29,6 +29,7 @@ Requires-Dist: grapheme==0.6.0
|
|
|
29
29
|
Requires-Dist: arrow==1.4.0
|
|
30
30
|
Provides-Extra: tools
|
|
31
31
|
Requires-Dist: ripgrep>=14.0.0; extra == "tools"
|
|
32
|
+
Requires-Dist: ast-grep-cli>=0.44.0; extra == "tools"
|
|
32
33
|
Dynamic: license-file
|
|
33
34
|
|
|
34
35
|
# Tau (τ)
|
|
@@ -74,7 +75,7 @@ tau # Interactive mode
|
|
|
74
75
|
tau --resume # Resume most recent session
|
|
75
76
|
tau --model claude-sonnet-4-6 # Use specific model
|
|
76
77
|
tau --print "Summarize this repo" # One-shot mode
|
|
77
|
-
tau
|
|
78
|
+
tau --provider anthropic --print "Explain this code" # Print mode with provider
|
|
78
79
|
tau --mode rpc # RPC mode for IDE extensions
|
|
79
80
|
```
|
|
80
81
|
|
|
@@ -82,13 +83,13 @@ tau --mode rpc # RPC mode for IDE extensions
|
|
|
82
83
|
|
|
83
84
|
## Features
|
|
84
85
|
|
|
85
|
-
- **Multi-provider LLM support** — Anthropic
|
|
86
|
+
- **Multi-provider LLM support** — Anthropic, OpenAI, Google Gemini, Mistral AI, Ollama, Groq, xAI, AWS Bedrock, OpenRouter, Z.ai, and more
|
|
86
87
|
- **Terminal UI** — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
|
|
87
88
|
- **Rich media support** — Work with text files, images, audio files, and video files via file references or clipboard input
|
|
88
89
|
- **Session management** — Persistent sessions with branching, forking, and resuming capabilities
|
|
89
|
-
- **Tool execution** — Built-in tools (terminal, file I/O,
|
|
90
|
+
- **Tool execution** — Built-in tools (terminal, file I/O, search) with full user permissions and extensibility
|
|
90
91
|
- **Plugin system** — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
|
|
91
|
-
- **
|
|
92
|
+
- **Themes** — Dark and light base themes, customizable and extensible via YAML
|
|
92
93
|
- **Context management** — Automatic context compaction and branch summarization for long conversations
|
|
93
94
|
- **Python API** — Embed Tau in your own applications programmatically
|
|
94
95
|
- **Multiple run modes** — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
|
|
@@ -173,7 +174,7 @@ See [SECURITY.md](SECURITY.md) for detailed practices and vulnerability reportin
|
|
|
173
174
|
```bash
|
|
174
175
|
python -m pytest # Run tests
|
|
175
176
|
pyright tau/ # Type checking
|
|
176
|
-
python -m tau
|
|
177
|
+
python -m tau # Launch from source
|
|
177
178
|
```
|
|
178
179
|
|
|
179
180
|
See [Development Setup](docs/development.md) for detailed instructions.
|
|
@@ -41,7 +41,7 @@ tau # Interactive mode
|
|
|
41
41
|
tau --resume # Resume most recent session
|
|
42
42
|
tau --model claude-sonnet-4-6 # Use specific model
|
|
43
43
|
tau --print "Summarize this repo" # One-shot mode
|
|
44
|
-
tau
|
|
44
|
+
tau --provider anthropic --print "Explain this code" # Print mode with provider
|
|
45
45
|
tau --mode rpc # RPC mode for IDE extensions
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -49,13 +49,13 @@ tau --mode rpc # RPC mode for IDE extensions
|
|
|
49
49
|
|
|
50
50
|
## Features
|
|
51
51
|
|
|
52
|
-
- **Multi-provider LLM support** — Anthropic
|
|
52
|
+
- **Multi-provider LLM support** — Anthropic, OpenAI, Google Gemini, Mistral AI, Ollama, Groq, xAI, AWS Bedrock, OpenRouter, Z.ai, and more
|
|
53
53
|
- **Terminal UI** — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
|
|
54
54
|
- **Rich media support** — Work with text files, images, audio files, and video files via file references or clipboard input
|
|
55
55
|
- **Session management** — Persistent sessions with branching, forking, and resuming capabilities
|
|
56
|
-
- **Tool execution** — Built-in tools (terminal, file I/O,
|
|
56
|
+
- **Tool execution** — Built-in tools (terminal, file I/O, search) with full user permissions and extensibility
|
|
57
57
|
- **Plugin system** — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
|
|
58
|
-
- **
|
|
58
|
+
- **Themes** — Dark and light base themes, customizable and extensible via YAML
|
|
59
59
|
- **Context management** — Automatic context compaction and branch summarization for long conversations
|
|
60
60
|
- **Python API** — Embed Tau in your own applications programmatically
|
|
61
61
|
- **Multiple run modes** — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
|
|
@@ -140,7 +140,7 @@ See [SECURITY.md](SECURITY.md) for detailed practices and vulnerability reportin
|
|
|
140
140
|
```bash
|
|
141
141
|
python -m pytest # Run tests
|
|
142
142
|
pyright tau/ # Type checking
|
|
143
|
-
python -m tau
|
|
143
|
+
python -m tau # Launch from source
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
See [Development Setup](docs/development.md) for detailed instructions.
|
|
@@ -183,8 +183,9 @@ Extensions can react to lifecycle events:
|
|
|
183
183
|
- `session_start` - Session begins
|
|
184
184
|
- `turn_start` - New inference turn starts
|
|
185
185
|
- `turn_end` - Turn completes (before rendering)
|
|
186
|
-
- `
|
|
187
|
-
- `
|
|
186
|
+
- `tool_call` - Tool call can be inspected, rewritten, or blocked
|
|
187
|
+
- `tool_result` - Tool result can be inspected or rewritten
|
|
188
|
+
- `tool_execution_start` / `tool_execution_end` - Tool handler lifecycle
|
|
188
189
|
- `tui_ready` - TUI is ready for input
|
|
189
190
|
- `tui_exit` - TUI is exiting
|
|
190
191
|
- `compaction_start` - Compaction begins
|
|
@@ -194,12 +195,13 @@ Hooks allow extensions to inspect state, modify messages, or react to events.
|
|
|
194
195
|
|
|
195
196
|
## Provider Abstraction
|
|
196
197
|
|
|
197
|
-
|
|
198
|
+
Providers describe authentication, endpoints, and the API adapter used for a
|
|
199
|
+
request. Adapters stream normalized `LLMEvent` objects:
|
|
198
200
|
|
|
199
201
|
```python
|
|
200
|
-
class
|
|
201
|
-
async def
|
|
202
|
-
|
|
202
|
+
class BaseAPI:
|
|
203
|
+
async def stream(self, context, model, options) -> AsyncIterator[LLMEvent]:
|
|
204
|
+
...
|
|
203
205
|
```
|
|
204
206
|
|
|
205
207
|
The inference module handles provider-specific details (API keys, endpoints, format conversions).
|
|
@@ -217,7 +219,7 @@ Tools are executed in a sandboxed environment:
|
|
|
217
219
|
6. Result is serialized and added to context
|
|
218
220
|
```
|
|
219
221
|
|
|
220
|
-
Built-in tools (
|
|
222
|
+
Built-in tools (terminal, read, write, edit, glob, grep, ls) are enabled by default.
|
|
221
223
|
`RuntimeConfig` can allow or exclude tools by name. Custom tools are registered
|
|
222
224
|
via extensions or passed directly to the runtime.
|
|
223
225
|
|
|
@@ -289,9 +291,9 @@ React to lifecycle events:
|
|
|
289
291
|
|
|
290
292
|
```python
|
|
291
293
|
def register(tau):
|
|
292
|
-
async def
|
|
294
|
+
async def on_tool_end(event, ctx):
|
|
293
295
|
print(f"Tool {event.tool_name} finished")
|
|
294
|
-
tau.
|
|
296
|
+
tau.on("tool_execution_end", on_tool_end)
|
|
295
297
|
```
|
|
296
298
|
|
|
297
299
|
### Dialogs
|
|
@@ -6,7 +6,7 @@ Tau stores credentials for LLM providers in `~/.tau/auth.json`. This page explai
|
|
|
6
6
|
|
|
7
7
|
For each provider, tau resolves credentials in this order:
|
|
8
8
|
|
|
9
|
-
1. **Runtime override** — set
|
|
9
|
+
1. **Runtime override** — set programmatically through `AuthManager` (not persisted)
|
|
10
10
|
2. **Stored credential** — read from `~/.tau/auth.json`
|
|
11
11
|
3. **Environment variable** — `{PROVIDER}_API_KEY` (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`)
|
|
12
12
|
|
|
@@ -69,13 +69,11 @@ export OPENAI_API_KEY="sk-..."
|
|
|
69
69
|
|
|
70
70
|
No file is needed — tau picks these up automatically.
|
|
71
71
|
|
|
72
|
-
###
|
|
72
|
+
### Runtime override
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Not stored. Only applies to the current session.
|
|
74
|
+
Embedding applications may call
|
|
75
|
+
`auth_manager.set_runtime_api_key(provider, key)`. The main Tau CLI does not
|
|
76
|
+
provide an `--api-key` flag.
|
|
79
77
|
|
|
80
78
|
### Auth file (direct edit)
|
|
81
79
|
|
|
@@ -91,7 +89,9 @@ Run `/login` from within a session. Tau asks which authentication type to use:
|
|
|
91
89
|
|
|
92
90
|
### `/logout` command
|
|
93
91
|
|
|
94
|
-
Run `/logout` to open a list of providers that have credentials stored in
|
|
92
|
+
Run `/logout` to open a list of providers that have credentials stored in
|
|
93
|
+
`~/.tau/auth.json`. Select one to remove it. Environment variables and
|
|
94
|
+
programmatic runtime overrides are unaffected.
|
|
95
95
|
|
|
96
96
|
## Auth File Format
|
|
97
97
|
|
|
@@ -120,7 +120,7 @@ From Python (e.g. in an extension):
|
|
|
120
120
|
status = auth_manager.get_auth_status("anthropic")
|
|
121
121
|
# status.configured → True / False
|
|
122
122
|
# status.source → "stored" | "runtime" | "env" | None
|
|
123
|
-
# status.label → env var name or "
|
|
123
|
+
# status.label → env var name or "runtime override"
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
## Security
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Usage
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
tau [OPTIONS] [
|
|
6
|
+
tau [OPTIONS] COMMAND [ARGS]...
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Use `--prompt TEXT` for a non-interactive prompt. Piped stdin can supply or
|
|
@@ -13,14 +13,20 @@ augment it.
|
|
|
13
13
|
|
|
14
14
|
| Option | Short | Description |
|
|
15
15
|
|--------|-------|-------------|
|
|
16
|
+
| `--version` | `-v` | Print the installed version |
|
|
17
|
+
| `--debug` | `-d` | Enable debug logging |
|
|
18
|
+
| `--cwd PATH` | `-c` | Set the working directory |
|
|
16
19
|
| `--prompt` | `-p` | Run a non-interactive prompt |
|
|
20
|
+
| `--output-format` | `-f` | Non-interactive output: `text` or `json` |
|
|
21
|
+
| `--quiet` | `-q` | Hide the non-interactive spinner |
|
|
17
22
|
| `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
|
|
18
23
|
| `--model` | | Model ID, or `provider/model` shorthand (e.g. `groq/llama-3.3-70b-versatile`) |
|
|
19
|
-
| `--theme` | `-t` | UI theme: `
|
|
24
|
+
| `--theme` | `-t` | UI theme: `dark`, `light`, or an installed custom theme |
|
|
20
25
|
| `--resume [ID]` | `-r` | Resume the most recent or a specified session |
|
|
21
26
|
| `--fork ID` | | Fork a specified session at startup |
|
|
22
27
|
| `--session-dir PATH` | | Override session storage |
|
|
23
28
|
| `--name NAME` | | Set the session display name at startup |
|
|
29
|
+
| `--system TEXT` | `-s` | Replace the generated system prompt |
|
|
24
30
|
| `--ephemeral` | `-e` | Don't save this session to disk |
|
|
25
31
|
| `--approve` | `-a` | Trust project-local files (extensions, settings, context files) for this run |
|
|
26
32
|
| `--no-approve` | `-na` | Don't trust project-local files for this run |
|
|
@@ -66,7 +72,7 @@ that order.
|
|
|
66
72
|
Emit a JSON event stream on stdout:
|
|
67
73
|
|
|
68
74
|
```bash
|
|
69
|
-
tau --mode json "Your prompt"
|
|
75
|
+
tau --mode json --prompt "Your prompt"
|
|
70
76
|
```
|
|
71
77
|
|
|
72
78
|
Each line is a JSON object representing a lifecycle event (`agent_start`, `message_end`, etc.).
|
|
@@ -200,8 +206,8 @@ Events do **not** have an `id` field. Only responses do.
|
|
|
200
206
|
|
|
201
207
|
| Command | Key fields | Description |
|
|
202
208
|
|---------|-----------|-------------|
|
|
203
|
-
| `
|
|
204
|
-
| `
|
|
209
|
+
| `terminal` | `command` (required), `excludeFromContext?` | Run a shell command; output is added to the next LLM context |
|
|
210
|
+
| `abort_terminal` | — | Abort a running terminal subprocess |
|
|
205
211
|
|
|
206
212
|
##### Session
|
|
207
213
|
|
|
@@ -345,8 +351,7 @@ An explicit `--provider` always overrides the inferred provider.
|
|
|
345
351
|
|
|
346
352
|
```bash
|
|
347
353
|
tau --resume # continue most recent session
|
|
348
|
-
tau --
|
|
349
|
-
tau --session ~/.tau/sessions/proj/file.jsonl # resume by file path
|
|
354
|
+
tau --resume abc123 # resume by session ID
|
|
350
355
|
tau --ephemeral # temporary session, nothing saved
|
|
351
356
|
```
|
|
352
357
|
|
|
@@ -360,13 +365,16 @@ Manage provider credentials.
|
|
|
360
365
|
tau auth --help
|
|
361
366
|
```
|
|
362
367
|
|
|
368
|
+
Package management is available through `tau install`, `tau remove`,
|
|
369
|
+
`tau list`, and `tau update`.
|
|
370
|
+
|
|
363
371
|
## Environment Variables
|
|
364
372
|
|
|
365
373
|
| Variable | Effect |
|
|
366
374
|
|----------|--------|
|
|
367
375
|
| `ANTHROPIC_API_KEY` | Anthropic API key |
|
|
368
376
|
| `OPENAI_API_KEY` | OpenAI API key |
|
|
369
|
-
| `
|
|
377
|
+
| `GOOGLE_API_KEY` | Google Gemini key |
|
|
370
378
|
| `<PROVIDER>_API_KEY` | API key for any provider (uppercased provider name) |
|
|
371
379
|
|
|
372
380
|
Provider and model can also be set permanently in `settings.json` — see [Settings](settings.md).
|
|
@@ -4,15 +4,15 @@ This page covers setting up a development environment for tau.
|
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
|
-
- Python 3.
|
|
7
|
+
- Python 3.12 or higher
|
|
8
8
|
- git
|
|
9
9
|
- pip or uv (Python package manager)
|
|
10
10
|
|
|
11
11
|
## Clone the Repository
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
git clone https://github.com/
|
|
15
|
-
cd
|
|
14
|
+
git clone https://github.com/Jeomon/Tau.git
|
|
15
|
+
cd Tau
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Install Dependencies
|
|
@@ -63,7 +63,7 @@ tau --theme dark
|
|
|
63
63
|
### Run with Debug Logging
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
|
|
66
|
+
tau --debug
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### Run Tests
|
|
@@ -128,40 +128,30 @@ ruff format tau/
|
|
|
128
128
|
4. Test manually:
|
|
129
129
|
```bash
|
|
130
130
|
tau -p "test prompt"
|
|
131
|
-
tau --list-models
|
|
132
131
|
```
|
|
133
132
|
|
|
134
133
|
## Testing
|
|
135
134
|
|
|
136
135
|
### Test Structure
|
|
137
136
|
|
|
138
|
-
Tests are organized by module:
|
|
137
|
+
Tests are organized by module, with granular filenames per submodule:
|
|
139
138
|
|
|
140
139
|
```text
|
|
141
140
|
tests/
|
|
142
|
-
├──
|
|
143
|
-
├──
|
|
144
|
-
├──
|
|
145
|
-
|
|
141
|
+
├── test_agent_compaction.py
|
|
142
|
+
├── test_agent_prompt.py
|
|
143
|
+
├── test_agent_types.py
|
|
144
|
+
├── test_inference_dialect.py
|
|
145
|
+
├── test_inference_types.py
|
|
146
|
+
├── test_engine_execution.py
|
|
147
|
+
├── test_engine_steering.py
|
|
148
|
+
├── test_tui_renderer.py
|
|
149
|
+
└── ...
|
|
146
150
|
```
|
|
147
151
|
|
|
148
152
|
### Writing Tests
|
|
149
153
|
|
|
150
|
-
Use pytest
|
|
151
|
-
|
|
152
|
-
```python
|
|
153
|
-
import pytest
|
|
154
|
-
from tau.agent import Agent
|
|
155
|
-
|
|
156
|
-
def test_agent_creation():
|
|
157
|
-
agent = Agent(client=MockClient())
|
|
158
|
-
assert agent is not None
|
|
159
|
-
|
|
160
|
-
def test_agent_run():
|
|
161
|
-
agent = Agent(client=MockClient())
|
|
162
|
-
result = agent.run("test prompt")
|
|
163
|
-
assert "result" in result.lower()
|
|
164
|
-
```
|
|
154
|
+
Use pytest, following the existing patterns in `tests/`.
|
|
165
155
|
|
|
166
156
|
### Running Tests
|
|
167
157
|
|
|
@@ -172,11 +162,8 @@ python -m pytest
|
|
|
172
162
|
# Run with verbose output
|
|
173
163
|
python -m pytest -v
|
|
174
164
|
|
|
175
|
-
# Run
|
|
176
|
-
python -m pytest
|
|
177
|
-
|
|
178
|
-
# Run specific test file
|
|
179
|
-
python -m pytest tests/test_agent.py
|
|
165
|
+
# Run a specific module's tests
|
|
166
|
+
python -m pytest tests/test_agent_compaction.py
|
|
180
167
|
```
|
|
181
168
|
|
|
182
169
|
## Debugging
|
|
@@ -215,7 +202,7 @@ logger.error("Error message")
|
|
|
215
202
|
Enable debug logging:
|
|
216
203
|
|
|
217
204
|
```bash
|
|
218
|
-
|
|
205
|
+
tau --debug
|
|
219
206
|
```
|
|
220
207
|
|
|
221
208
|
## IDE Setup
|
|
@@ -61,6 +61,10 @@
|
|
|
61
61
|
"title": "Extensions",
|
|
62
62
|
"path": "extensions.md"
|
|
63
63
|
},
|
|
64
|
+
{
|
|
65
|
+
"title": "Extension Settings",
|
|
66
|
+
"path": "extension-settings.md"
|
|
67
|
+
},
|
|
64
68
|
{
|
|
65
69
|
"title": "Themes",
|
|
66
70
|
"path": "themes.md"
|
|
@@ -80,6 +84,10 @@
|
|
|
80
84
|
{
|
|
81
85
|
"title": "Authentication",
|
|
82
86
|
"path": "auth.md"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"title": "HTTP Proxy",
|
|
90
|
+
"path": "http-proxy.md"
|
|
83
91
|
}
|
|
84
92
|
]
|
|
85
93
|
},
|
|
@@ -445,7 +445,7 @@ Use the explicit `group` type when you want the sub-panel to have a header label
|
|
|
445
445
|
#### Basic example
|
|
446
446
|
|
|
447
447
|
```python
|
|
448
|
-
from tau.
|
|
448
|
+
from tau.modes.interactive.components.settings_selector import SettingItem
|
|
449
449
|
|
|
450
450
|
def register(tau):
|
|
451
451
|
def on_change(key, value):
|
|
@@ -656,6 +656,19 @@ def register(tau):
|
|
|
656
656
|
|
|
657
657
|
## Keyboard shortcuts
|
|
658
658
|
|
|
659
|
+
`register_shortcut` takes a literal key combination. Tau compares extension
|
|
660
|
+
shortcuts with the effective `KeyMap`.
|
|
661
|
+
Safety-critical editor and application bindings are reserved and cannot be
|
|
662
|
+
replaced by extensions. An extension may replace a non-reserved global
|
|
663
|
+
application binding, with a warning. If multiple extensions register the same
|
|
664
|
+
key, the last loaded extension wins and Tau reports a warning.
|
|
665
|
+
|
|
666
|
+
Some low-level editor operations that are not exposed as `KeyMap` actions,
|
|
667
|
+
such as cursor movement, are still consumed directly by the focused editor.
|
|
668
|
+
Registering an extension shortcut does not replace those operations. See
|
|
669
|
+
[Customising keybindings](keybindings.md#customising-keybindings) for the
|
|
670
|
+
available actions.
|
|
671
|
+
|
|
659
672
|
```python
|
|
660
673
|
def register(tau):
|
|
661
674
|
@tau.register_shortcut("ctrl+g", "Open greeter")
|
|
@@ -844,7 +857,7 @@ def register(tau):
|
|
|
844
857
|
| `tau.register_tool(tool)` | Add a tool the agent can call |
|
|
845
858
|
| `tau.register_command(name, desc, handler, aliases=[], get_argument_completions=None, argument_hint=None, requires_idle=True)` | Add a `/name` slash command; set `requires_idle=False` only for UI-only or read-only handlers safe during an active turn |
|
|
846
859
|
| `tau.on(event, handler)` / `@tau.on(event)` | Subscribe to a lifecycle event |
|
|
847
|
-
| `tau.register_shortcut(key, desc, handler)` | Bind a keyboard shortcut |
|
|
860
|
+
| `tau.register_shortcut(key, desc, handler)` | Bind a literal keyboard shortcut |
|
|
848
861
|
| `tau.append_prompt(text)` | Append text to the system prompt |
|
|
849
862
|
| `tau.register_theme(name, theme)` | Add a named theme to the picker |
|
|
850
863
|
| `tau.register_message_renderer(type, fn)` | Render custom message types in the TUI |
|
|
@@ -1315,7 +1328,7 @@ ctx.ui.paste_to_editor("@file.py ") # insert at cursor position
|
|
|
1315
1328
|
|
|
1316
1329
|
```python
|
|
1317
1330
|
names = ctx.ui.get_all_themes() # list[str] of theme names
|
|
1318
|
-
ok = ctx.ui.set_theme("
|
|
1331
|
+
ok = ctx.ui.set_theme("dark") # True on success, False if unknown
|
|
1319
1332
|
theme = ctx.ui.theme # LayoutTheme — current active theme
|
|
1320
1333
|
```
|
|
1321
1334
|
|
|
@@ -124,7 +124,8 @@ api_base = "https://api.example.com"
|
|
|
124
124
|
proxies = get_proxies_for_client(api_base, settings_manager)
|
|
125
125
|
headers = get_proxy_headers(settings_manager)
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
|
|
128
|
+
async with httpx.AsyncClient(mounts=mounts, headers=headers) as client:
|
|
128
129
|
response = await client.get(f"{api_base}/v1/models")
|
|
129
130
|
```
|
|
130
131
|
|
|
@@ -144,7 +145,8 @@ headers = {
|
|
|
144
145
|
**proxy_headers, # Include custom proxy headers
|
|
145
146
|
}
|
|
146
147
|
|
|
147
|
-
|
|
148
|
+
mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
|
|
149
|
+
async with httpx.AsyncClient(mounts=mounts, headers=headers) as client:
|
|
148
150
|
response = await client.get(f"{api_base}/v1/models")
|
|
149
151
|
```
|
|
150
152
|
|
|
@@ -159,9 +161,9 @@ proxy_url = get_proxy_url_for_target(api_base)
|
|
|
159
161
|
|
|
160
162
|
client_kwargs = {}
|
|
161
163
|
if proxy_url:
|
|
162
|
-
client_kwargs["
|
|
163
|
-
"http://": proxy_url,
|
|
164
|
-
"https://": proxy_url,
|
|
164
|
+
client_kwargs["mounts"] = {
|
|
165
|
+
"http://": httpx.AsyncHTTPTransport(proxy=proxy_url),
|
|
166
|
+
"https://": httpx.AsyncHTTPTransport(proxy=proxy_url),
|
|
165
167
|
}
|
|
166
168
|
|
|
167
169
|
async with httpx.AsyncClient(**client_kwargs) as client:
|
|
@@ -334,7 +336,8 @@ from tau.utils.http_proxy import get_proxies_for_client
|
|
|
334
336
|
import httpx
|
|
335
337
|
|
|
336
338
|
proxies = get_proxies_for_client("https://api.example.com")
|
|
337
|
-
|
|
339
|
+
mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
|
|
340
|
+
async with httpx.AsyncClient(mounts=mounts) as client:
|
|
338
341
|
response = await client.get("...")
|
|
339
342
|
```
|
|
340
343
|
|
|
@@ -378,4 +381,4 @@ OAuth login/refresh operations (e.g., GitHub Copilot, OpenAI, Anthropic) also re
|
|
|
378
381
|
|
|
379
382
|
- [Settings](settings.md) — Main settings reference
|
|
380
383
|
- [Extensions](extensions.md) — Extensions can also use proxy settings via SettingsManager
|
|
381
|
-
- [Providers](providers.md) — Model provider configuration
|
|
384
|
+
- [Inference Providers](inference-providers.md) — Model provider configuration
|
|
@@ -6,7 +6,7 @@ Tau is a Python CLI framework for building interactive agent applications. It pr
|
|
|
6
6
|
|
|
7
7
|
Tau allows you to:
|
|
8
8
|
- Chat with LLMs (Claude, GPT, Gemini, Mistral, Ollama) in a terminal UI
|
|
9
|
-
- Execute tools (terminal commands,
|
|
9
|
+
- Execute tools (terminal commands, file operations, search) within conversations
|
|
10
10
|
- Save and resume sessions with branching and forking
|
|
11
11
|
- Extend Tau with custom tools, commands, themes, and skills
|
|
12
12
|
- Embed Tau in Python applications as a library
|
|
@@ -53,14 +53,13 @@ Tau allows you to:
|
|
|
53
53
|
|
|
54
54
|
- [Project Structure](project-structure.md) - Codebase organization and module breakdown
|
|
55
55
|
- [Development Setup](development.md) - Local development environment and testing
|
|
56
|
-
- [Implementation Summary](IMPLEMENTATION_SUMMARY.md) - Recent changes and features
|
|
57
56
|
|
|
58
57
|
## Reference
|
|
59
58
|
|
|
60
59
|
- [CLI Reference](cli-reference.md) - All flags, modes (interactive/print/json/rpc)
|
|
61
60
|
- [Settings Reference](settings.md) - Complete settings schema
|
|
62
61
|
- [Session Format](sessions.md) - JSONL file format and structure
|
|
63
|
-
- [Hooks & Events](extensions.md#hooks) - All available hooks and events
|
|
62
|
+
- [Hooks & Events](extensions.md#event-hooks) - All available hooks and events
|
|
64
63
|
|
|
65
64
|
---
|
|
66
65
|
|