tau-coding-agent 0.7.2__tar.gz → 0.7.4__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.7.4/PKG-INFO +285 -0
- tau_coding_agent-0.7.4/README.md +247 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/auth.md +2 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/development.md +2 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/http-proxy.md +7 -7
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/inference-providers.md +31 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/keybindings.md +2 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/project-structure.md +14 -9
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/quickstart.md +3 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/themes.md +15 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/tui.md +2 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/usage.md +2 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/pyproject.toml +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/builder.py +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/service.py +4 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/component.py +43 -24
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/tool.py +3 -4
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/__init__.py +16 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/model.py +16 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/__init__.py +21 -6
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/duration.py +6 -7
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/state.py +16 -8
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/subagent_schema.py +3 -9
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/__init__.py +10 -9
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/todo_schema.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/todo_tool.py +12 -4
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/text.py +715 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/text.py +6 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/grep.py +6 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/ls.py +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/read.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/utils.py +0 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/service.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/service.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/gemini_generate.py +13 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/github_copilot_chat.py +15 -7
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/google_antigravity.py +35 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/google_vertex.py +10 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/mistral_chat.py +8 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_completions.py +15 -7
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_vertex.py +18 -5
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/anthropic_claude_code.py +17 -4
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/xai_grok.py +5 -4
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/agent_hooks.py +47 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/session.py +1 -3
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/message_list.py +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/settings_selector.py +6 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/spinner.py +89 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/theme.py +2 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/utils.py +33 -0
- tau_coding_agent-0.7.4/tau/utils/format.py +25 -0
- tau_coding_agent-0.7.4/tau_coding_agent.egg-info/PKG-INFO +285 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_hooks.py +22 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_builtin_tools.py +2 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_compaction.py +2 -4
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_length_and_live_tools.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_gemini_generate.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_google_antigravity.py +13 -7
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_google_vertex.py +7 -2
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_subagent_context.py +100 -45
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_input.py +3 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tree_branch_restore.py +3 -1
- tau_coding_agent-0.7.2/PKG-INFO +0 -235
- tau_coding_agent-0.7.2/README.md +0 -197
- tau_coding_agent-0.7.2/tau/utils/format.py +0 -40
- tau_coding_agent-0.7.2/tau_coding_agent.egg-info/PKG-INFO +0 -235
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/LICENSE +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/MANIFEST.in +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/architecture.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/cli-reference.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/creating-tools.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/docs.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/engine.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/extension-settings.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/extensions.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/index.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/inference.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/installation.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/messages.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/project-context.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/prompts.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/python-api.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/sessions.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/settings.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/skills.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/tools.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/setup.cfg +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/embedded.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/storage.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/clear.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/compact.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/reload.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/session.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/schema.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/btw/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/git.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/header/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/README.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/dispatch.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/watch/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/base.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/fetch.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/search.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/manifest.json +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/model.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/runner.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/store.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/video.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/commit.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/docs.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/explain.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/fix.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/refactor.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/review.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/test.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/video.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/code-review/SKILL.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/debug/SKILL.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/git-commit/SKILL.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/ayu-dark.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/catppuccin.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/dark.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/dracula.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/everforest.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/gruvbox.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/horizon.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/kanagawa.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/light.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/material-ocean.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/monokai.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/night-owl.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/nord.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/one-dark.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/rose-pine.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/solarized-dark.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/tokyo-night.yaml +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/edit.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/glob.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/terminal.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/write.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/cli.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/auth.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/packages.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/update.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/core/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/core/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/api.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/context.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/runtime.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/settings.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/engine.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/inference.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/runtime.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/session.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/tui.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/base.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/builtins.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/gemini_audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/openai_audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/sarvam_audio.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/availability.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/base.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/builtins.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/gemini_image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/openai_image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/openrouter.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_messages.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_vertex.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/base.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/builtins.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/dialect.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/ollama_chat.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_codex_responses.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_responses.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/xai_responses.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/base.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/builtins.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/fal_video.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/openrouter_video.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/zai_video.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/github_copilot.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/google_antigravity.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/openai_codex.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/pkce.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/app.py +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/appearance.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/auth.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/context.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/extensions.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/misc.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/model.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/command_palette.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/config_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/extension_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/file_picker.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/layout.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/model_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/oauth_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/overlays.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/selector_controller.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/session_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/theme_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/thinking_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/tree_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/trust_screen.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/voice_selector.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/input_handler.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/ui_context.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/print/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/mode.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/expand.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/dependencies.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/branch_summarization.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/compaction.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/paths.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/storage.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/render.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/__init__.py +1 -1
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/ansi_bridge.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/autocomplete.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/backend.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/buffer.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/component.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/box.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/editor.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/select_list.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/simple_picker.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/text_input.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/widget_bridge.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/frame.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/geometry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/input.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/keybinding_hints.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/layout.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/markdown.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/palette.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/service.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/style.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/terminal.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/testing.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/text.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widget.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/barchart.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/block.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/calendar.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/canvas.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/chart.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/clear.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/gauge.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/list.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/paragraph.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/scrollbar.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/sparkline.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/symbols.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/table.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/tabs.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/__init__.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/http_proxy.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/image_processing.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/secrets.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/version_check.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/SOURCES.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/entry_points.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/requires.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/top_level.txt +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_compaction.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_prompt.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ansi.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ansi_bridge_legacy_image.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_anthropic_tool_history.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ask_user_extension.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_audio_transcription_apis.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_command.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_storage.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_autocomplete_modifiers.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_branch_navigation.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_branch_summarization.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_builtin_watch.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_cli_inputs.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_cmd_copy.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_command_execution_policy.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_command_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_component_buffer_bridge.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_diff.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_editor_protocol.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_execution.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_steering.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_escape_behavior.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_extension_api.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_extension_lifecycle.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_footer_model.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_footer_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_fuzzy.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_http_proxy.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_image_processing.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_api_text_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_dialect.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_error_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_keybindings.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_layout_render_cells.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_markdown.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_list_frozen.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_availability.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_command.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_selector_modal.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_oauth_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_package_resources.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_packages_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_peer_extension.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_pkce.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_expand.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_provider_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_resource_loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_rpc_mode.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_runtime_sdk.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_scrollback_raw_writes.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_scrollback_terminal.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_secrets.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_select_list_render_cells.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_selector_controller.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_trust_persist.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_types.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_paths.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_storage.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_skills_loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_skills_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_strip_control_chars.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_telemetry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_input_render_cells.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_llm_invoke.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_llm_model_resolution.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_theme_loader.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_themes_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_thinking_render.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tool_registry.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tool_render.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_trust_manager.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_trust_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_capabilities.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_child_rows.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_input.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_layout_sizing.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_public_api.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_renderer.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_select_list.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_theme.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_utils.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ui_context.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_utils_hashline.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_version_check.py +0 -0
- {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_voice_selector.py +0 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tau-coding-agent
|
|
3
|
+
Version: 0.7.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
|
+
Requires-Python: >=3.12
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: anthropic==0.109.1
|
|
9
|
+
Requires-Dist: certifi==2026.5.20
|
|
10
|
+
Requires-Dist: click==8.4.1
|
|
11
|
+
Requires-Dist: filelock==3.29.3
|
|
12
|
+
Requires-Dist: google-genai==2.8.0
|
|
13
|
+
Requires-Dist: httpx==0.28.1
|
|
14
|
+
Requires-Dist: mistralai==2.4.9
|
|
15
|
+
Requires-Dist: ollama==0.6.2
|
|
16
|
+
Requires-Dist: openai==2.41.1
|
|
17
|
+
Requires-Dist: packaging==26.2
|
|
18
|
+
Requires-Dist: pillow==12.2.0
|
|
19
|
+
Requires-Dist: pydantic==2.13.4
|
|
20
|
+
Requires-Dist: python-dotenv==1.2.2
|
|
21
|
+
Requires-Dist: uuid7==0.1.0
|
|
22
|
+
Requires-Dist: websockets==16.0
|
|
23
|
+
Requires-Dist: mistletoe==1.5.1
|
|
24
|
+
Requires-Dist: pyyaml==6.0.2
|
|
25
|
+
Requires-Dist: pygments==2.20.0
|
|
26
|
+
Requires-Dist: pathspec==1.1.1
|
|
27
|
+
Requires-Dist: posthog==7.21.3
|
|
28
|
+
Requires-Dist: pylatexenc==2.10
|
|
29
|
+
Requires-Dist: gitpython==3.1.50
|
|
30
|
+
Requires-Dist: grapheme==0.6.0
|
|
31
|
+
Requires-Dist: arrow==1.4.0
|
|
32
|
+
Requires-Dist: kiwisolver==1.5.0
|
|
33
|
+
Requires-Dist: tiktoken==0.13.0
|
|
34
|
+
Requires-Dist: rapidfuzz==3.14.3
|
|
35
|
+
Provides-Extra: tools
|
|
36
|
+
Requires-Dist: ripgrep>=14.0.0; extra == "tools"
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
<div align="center">
|
|
40
|
+
|
|
41
|
+
<img src="assets/wordmark.svg" alt="Tau" height="160">
|
|
42
|
+
<br>
|
|
43
|
+
<a href="https://pypi.org/project/tau-coding-agent/">
|
|
44
|
+
<img src="https://img.shields.io/pypi/v/tau-coding-agent.svg" alt="PyPI version">
|
|
45
|
+
</a>
|
|
46
|
+
<a href="https://pepy.tech/project/tau-coding-agent">
|
|
47
|
+
<img src="https://static.pepy.tech/badge/tau-coding-agent" alt="PyPI Downloads">
|
|
48
|
+
</a>
|
|
49
|
+
<a href="https://github.com/Jeomon/Tau/blob/main/LICENSE">
|
|
50
|
+
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
|
|
51
|
+
</a>
|
|
52
|
+
<img src="https://img.shields.io/badge/python-3.12%2B-blue" alt="Python">
|
|
53
|
+
<br>
|
|
54
|
+
<a href="https://github.com/Jeomon/Tau/actions/workflows/ci.yml">
|
|
55
|
+
<img src="https://github.com/Jeomon/Tau/actions/workflows/ci.yml/badge.svg" alt="CI status">
|
|
56
|
+
</a>
|
|
57
|
+
<a href="https://github.com/Jeomon/Tau/commits/main">
|
|
58
|
+
<img src="https://img.shields.io/github/last-commit/Jeomon/Tau.svg" alt="Last commit">
|
|
59
|
+
</a>
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<br>
|
|
64
|
+
|
|
65
|
+
Tau is a Python-based coding agent harness, heavily inspired by [Pi](https://github.com/earendil-works/pi) created by [Mario Zechner](https://github.com/badlogic). It combines an interactive terminal UI, multiple model providers, persistent sessions, tool execution, and an extension system in one package.
|
|
66
|
+
|
|
67
|
+
> **Note:** There are several coding-agent projects also named
|
|
68
|
+
> "Tau," including at least one that is itself a Python port of Pi. This
|
|
69
|
+
> project (`tau`, [Jeomon/Tau](https://github.com/Jeomon/Tau)) was built
|
|
70
|
+
> independently, taking inspiration only from the original
|
|
71
|
+
> [Pi](https://github.com/earendil-works/pi) project. No other "Tau" project,
|
|
72
|
+
> or any other Pi port, was referenced or used in its development.
|
|
73
|
+
|
|
74
|
+
<p align="center">
|
|
75
|
+
<img src="assets/tui.jpeg" alt="Tau interactive terminal interface" width="700">
|
|
76
|
+
</p>
|
|
77
|
+
|
|
78
|
+
## Quick start
|
|
79
|
+
|
|
80
|
+
Requires Python 3.12+.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install tau-coding-agent
|
|
84
|
+
export NVIDIA_API_KEY=nvapi-...
|
|
85
|
+
tau --provider nvidia
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Then ask Tau to work in the current directory:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
Explain this repository, run its tests, and fix any failures.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Other providers:** pass `--model <provider>/<model>` with the matching API
|
|
95
|
+
key set, e.g. `GOOGLE_API_KEY=... tau --model google/gemini-2.5-flash`.
|
|
96
|
+
|
|
97
|
+
## Commands
|
|
98
|
+
|
|
99
|
+
### CLI usage
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
tau [OPTIONS] [MESSAGE]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
tau # Start an interactive session
|
|
107
|
+
tau --resume # Resume the latest session
|
|
108
|
+
tau --resume abc123 # Resume a specific session by ID
|
|
109
|
+
tau --model claude-sonnet-4-6 # Start with a specific model
|
|
110
|
+
tau --model groq/llama-3.3-70b-versatile # provider/model shorthand
|
|
111
|
+
tau --print "Summarize this repository" # Run once and print the result
|
|
112
|
+
tau --mode json --prompt "Summarize this repo" # Emit structured JSON events
|
|
113
|
+
tau --mode rpc # Start JSON-RPC mode for IDE clients
|
|
114
|
+
tau --ephemeral # Temporary session, nothing saved
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Common flags:
|
|
118
|
+
|
|
119
|
+
| Flag | Short | Description |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| `--prompt TEXT` | `-p` | Run a non-interactive prompt |
|
|
122
|
+
| `--print` | | Print mode — run `MESSAGE` and exit (shorthand for `--mode print`) |
|
|
123
|
+
| `--mode` | | `interactive` (default), `print`, `json`, `rpc` |
|
|
124
|
+
| `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
|
|
125
|
+
| `--model` | | Model ID, or `provider/model` shorthand |
|
|
126
|
+
| `--resume [ID]` | `-r` | Resume the most recent or a specified session |
|
|
127
|
+
| `--fork ID` | | Fork a specified session at startup |
|
|
128
|
+
| `--ephemeral` | `-e` | Don't save this session to disk |
|
|
129
|
+
| `--theme` | `-t` | UI theme: `dark`, `light`, or a custom theme |
|
|
130
|
+
| `--cwd PATH` | `-c` | Set the working directory |
|
|
131
|
+
| `--output-format` | `-f` | Non-interactive output: `text` or `json` |
|
|
132
|
+
| `--quiet` | `-q` | Hide the non-interactive spinner |
|
|
133
|
+
| `--version` | `-v` | Print the installed version |
|
|
134
|
+
| `--help` | `-h` | Show help message |
|
|
135
|
+
|
|
136
|
+
Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-reference.md).
|
|
137
|
+
|
|
138
|
+
### Subcommands
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
tau auth # Manage provider credentials (login/logout, list)
|
|
142
|
+
tau install # Install a package (extension/skill/theme)
|
|
143
|
+
tau remove # Remove an installed package
|
|
144
|
+
tau list # List installed packages
|
|
145
|
+
tau update # Update installed packages
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Interactive slash commands
|
|
149
|
+
|
|
150
|
+
Type these inside an interactive session (`tau`):
|
|
151
|
+
|
|
152
|
+
| Command | What it does |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `/new` | Start a fresh session |
|
|
155
|
+
| `/resume` | Browse and resume a past session |
|
|
156
|
+
| `/fork [entry-id]` | Branch the session tree at a specific entry |
|
|
157
|
+
| `/tree` | Navigate the session tree, switch branches |
|
|
158
|
+
| `/clone` | Duplicate the current session at the current position |
|
|
159
|
+
| `/compact` | Summarize and compact the current context |
|
|
160
|
+
| `/session` | Show session info, message counts, and stats |
|
|
161
|
+
| `/model` | Pick a model by modality |
|
|
162
|
+
| `/theme` | Open the theme picker |
|
|
163
|
+
| `/effort` | Set the thinking effort level |
|
|
164
|
+
| `/login` | Save credentials for a provider (API key or OAuth) |
|
|
165
|
+
| `/logout` | Remove stored credentials for a provider |
|
|
166
|
+
| `/clear` | Clear all messages from the current session |
|
|
167
|
+
| `/copy` | Copy the last assistant message to the clipboard |
|
|
168
|
+
| `/reload` | Reload extensions, skills, prompts, and settings |
|
|
169
|
+
| `/settings` | Show current settings |
|
|
170
|
+
| `/extensions` | Enable or disable extensions by scope |
|
|
171
|
+
| `/watch <url> [question]` | Load public video metadata/captions via `yt-dlp` |
|
|
172
|
+
| `/help` or `/?` | List all commands and keyboard shortcuts |
|
|
173
|
+
| `/quit`, `/q`, or `/exit` | Exit Tau |
|
|
174
|
+
|
|
175
|
+
Full interactive workflow guide: [Usage](docs/usage.md).
|
|
176
|
+
|
|
177
|
+
## Compared to Pi
|
|
178
|
+
|
|
179
|
+
| Area | Pi | Tau |
|
|
180
|
+
|---|---|---|
|
|
181
|
+
| Language | TypeScript | Python |
|
|
182
|
+
| TUI rendering | Line-level diffing — rewrites a full line if any part of it changed | Cell-level diffing (`Buffer`/`Cell`, modeled after [ratatui](https://github.com/ratatui/ratatui)'s `Buffer::diff`) — only the changed cells within a row are redrawn |
|
|
183
|
+
| LLM providers | ~40, including many CN/regional and gateway vendors | 14 major providers |
|
|
184
|
+
| Audio (TTS/STT) | Not supported | ElevenLabs, Sarvam, Gemini, OpenAI |
|
|
185
|
+
| Image/video generation | Not supported | OpenAI, Gemini, OpenRouter, Fal, Zai |
|
|
186
|
+
| Sandboxing | microVM sandbox (Gondolin) is an example extension, excluded from the main build — the user wires it in themselves | `microsandbox` microVM ships as a builtin extension, enabled by default |
|
|
187
|
+
| Packaging | 5 separately published npm packages | Single PyPI package |
|
|
188
|
+
|
|
189
|
+
Core mechanics — built-in tools, session branching/compaction, extension and
|
|
190
|
+
hook API, and the interactive/print/RPC execution modes — are functionally
|
|
191
|
+
equivalent between the two.
|
|
192
|
+
|
|
193
|
+
## Referencing files
|
|
194
|
+
|
|
195
|
+
Type `@` in the interactive editor to search for a project file:
|
|
196
|
+
|
|
197
|
+
```text
|
|
198
|
+
Review @src/service.py and add tests for its error handling.
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
For one-shot execution, attach a file explicitly:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
tau -p "Explain this file" @src/service.py
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Tau also discovers project instructions from `AGENTS.md` and `CLAUDE.md`.
|
|
208
|
+
See [Project Context Files](docs/project-context.md) for trust and discovery
|
|
209
|
+
behavior.
|
|
210
|
+
|
|
211
|
+
## Authentication and configuration
|
|
212
|
+
|
|
213
|
+
Tau resolves provider credentials in this order:
|
|
214
|
+
|
|
215
|
+
1. A programmatic runtime override
|
|
216
|
+
2. A credential saved in `~/.tau/auth.json` (including keys saved by `/login`)
|
|
217
|
+
3. A provider environment variable such as `ANTHROPIC_API_KEY`,
|
|
218
|
+
`OPENAI_API_KEY`, and `GOOGLE_API_KEY`
|
|
219
|
+
|
|
220
|
+
Settings are merged in this order:
|
|
221
|
+
|
|
222
|
+
1. Built-in defaults
|
|
223
|
+
2. `~/.tau/settings.json`
|
|
224
|
+
3. `.tau/settings.json`
|
|
225
|
+
4. Environment variables
|
|
226
|
+
5. Command-line options
|
|
227
|
+
|
|
228
|
+
See [Authentication](docs/auth.md), [Installation](docs/installation.md), and
|
|
229
|
+
[Inference Providers](docs/inference-providers.md) for provider-specific
|
|
230
|
+
setup.
|
|
231
|
+
|
|
232
|
+
## Documentation
|
|
233
|
+
|
|
234
|
+
- [Quickstart](docs/quickstart.md) — First session in five minutes
|
|
235
|
+
- [Usage](docs/usage.md) — Interactive workflows and commands
|
|
236
|
+
- [CLI Reference](docs/cli-reference.md) — Command-line options and modes
|
|
237
|
+
- [Inference Providers](docs/inference-providers.md) — Providers and speech timestamps
|
|
238
|
+
- [Sessions](docs/sessions.md) — Persistence, branching, and compaction
|
|
239
|
+
- [Tools](docs/tools.md) — Built-in and custom tools
|
|
240
|
+
- [Extensions](docs/extensions.md) — Tools, commands, hooks, and plugins
|
|
241
|
+
- [Terminal UI](docs/tui.md) — Rendering, Markdown, math, and components
|
|
242
|
+
- [Python API](docs/python-api.md) — Embed Tau in another application
|
|
243
|
+
- [Architecture](docs/architecture.md) — Internal design and data flow
|
|
244
|
+
|
|
245
|
+
The complete documentation index is available at [docs/index.md](docs/index.md).
|
|
246
|
+
|
|
247
|
+
## Install from source
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
git clone https://github.com/Jeomon/Tau.git
|
|
251
|
+
cd Tau
|
|
252
|
+
pip install -e .
|
|
253
|
+
tau
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Security
|
|
257
|
+
|
|
258
|
+
Tau executes enabled tools with the operating-system permissions of the process
|
|
259
|
+
that launched it. The built-in `sandbox` extension routes terminal execution
|
|
260
|
+
through a `microsandbox` microVM by default, but requires the `microsandbox`
|
|
261
|
+
package and a supported platform — otherwise it falls back to unsandboxed host
|
|
262
|
+
execution. Review project instructions and commands before approving work in
|
|
263
|
+
untrusted repositories, and verify the sandbox is actually active (`/sandbox`)
|
|
264
|
+
when stronger isolation matters.
|
|
265
|
+
|
|
266
|
+
Dependency versions are pinned and recorded in `uv.lock`. See
|
|
267
|
+
[SECURITY.md](SECURITY.md) for vulnerability reporting and supply-chain
|
|
268
|
+
practices.
|
|
269
|
+
|
|
270
|
+
## Development
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
mypy tau/
|
|
274
|
+
pyright tau/
|
|
275
|
+
ruff check tau/
|
|
276
|
+
ruff format tau/
|
|
277
|
+
python -m pytest
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
See [Development Setup](docs/development.md) and
|
|
281
|
+
[Contributing](CONTRIBUTING.md).
|
|
282
|
+
|
|
283
|
+
## License
|
|
284
|
+
|
|
285
|
+
Tau is licensed under the [MIT License](LICENSE).
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="assets/wordmark.svg" alt="Tau" height="160">
|
|
4
|
+
<br>
|
|
5
|
+
<a href="https://pypi.org/project/tau-coding-agent/">
|
|
6
|
+
<img src="https://img.shields.io/pypi/v/tau-coding-agent.svg" alt="PyPI version">
|
|
7
|
+
</a>
|
|
8
|
+
<a href="https://pepy.tech/project/tau-coding-agent">
|
|
9
|
+
<img src="https://static.pepy.tech/badge/tau-coding-agent" alt="PyPI Downloads">
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://github.com/Jeomon/Tau/blob/main/LICENSE">
|
|
12
|
+
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
|
|
13
|
+
</a>
|
|
14
|
+
<img src="https://img.shields.io/badge/python-3.12%2B-blue" alt="Python">
|
|
15
|
+
<br>
|
|
16
|
+
<a href="https://github.com/Jeomon/Tau/actions/workflows/ci.yml">
|
|
17
|
+
<img src="https://github.com/Jeomon/Tau/actions/workflows/ci.yml/badge.svg" alt="CI status">
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://github.com/Jeomon/Tau/commits/main">
|
|
20
|
+
<img src="https://img.shields.io/github/last-commit/Jeomon/Tau.svg" alt="Last commit">
|
|
21
|
+
</a>
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<br>
|
|
26
|
+
|
|
27
|
+
Tau is a Python-based coding agent harness, heavily inspired by [Pi](https://github.com/earendil-works/pi) created by [Mario Zechner](https://github.com/badlogic). It combines an interactive terminal UI, multiple model providers, persistent sessions, tool execution, and an extension system in one package.
|
|
28
|
+
|
|
29
|
+
> **Note:** There are several coding-agent projects also named
|
|
30
|
+
> "Tau," including at least one that is itself a Python port of Pi. This
|
|
31
|
+
> project (`tau`, [Jeomon/Tau](https://github.com/Jeomon/Tau)) was built
|
|
32
|
+
> independently, taking inspiration only from the original
|
|
33
|
+
> [Pi](https://github.com/earendil-works/pi) project. No other "Tau" project,
|
|
34
|
+
> or any other Pi port, was referenced or used in its development.
|
|
35
|
+
|
|
36
|
+
<p align="center">
|
|
37
|
+
<img src="assets/tui.jpeg" alt="Tau interactive terminal interface" width="700">
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
## Quick start
|
|
41
|
+
|
|
42
|
+
Requires Python 3.12+.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install tau-coding-agent
|
|
46
|
+
export NVIDIA_API_KEY=nvapi-...
|
|
47
|
+
tau --provider nvidia
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Then ask Tau to work in the current directory:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
Explain this repository, run its tests, and fix any failures.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Other providers:** pass `--model <provider>/<model>` with the matching API
|
|
57
|
+
key set, e.g. `GOOGLE_API_KEY=... tau --model google/gemini-2.5-flash`.
|
|
58
|
+
|
|
59
|
+
## Commands
|
|
60
|
+
|
|
61
|
+
### CLI usage
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
tau [OPTIONS] [MESSAGE]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
tau # Start an interactive session
|
|
69
|
+
tau --resume # Resume the latest session
|
|
70
|
+
tau --resume abc123 # Resume a specific session by ID
|
|
71
|
+
tau --model claude-sonnet-4-6 # Start with a specific model
|
|
72
|
+
tau --model groq/llama-3.3-70b-versatile # provider/model shorthand
|
|
73
|
+
tau --print "Summarize this repository" # Run once and print the result
|
|
74
|
+
tau --mode json --prompt "Summarize this repo" # Emit structured JSON events
|
|
75
|
+
tau --mode rpc # Start JSON-RPC mode for IDE clients
|
|
76
|
+
tau --ephemeral # Temporary session, nothing saved
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Common flags:
|
|
80
|
+
|
|
81
|
+
| Flag | Short | Description |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| `--prompt TEXT` | `-p` | Run a non-interactive prompt |
|
|
84
|
+
| `--print` | | Print mode — run `MESSAGE` and exit (shorthand for `--mode print`) |
|
|
85
|
+
| `--mode` | | `interactive` (default), `print`, `json`, `rpc` |
|
|
86
|
+
| `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
|
|
87
|
+
| `--model` | | Model ID, or `provider/model` shorthand |
|
|
88
|
+
| `--resume [ID]` | `-r` | Resume the most recent or a specified session |
|
|
89
|
+
| `--fork ID` | | Fork a specified session at startup |
|
|
90
|
+
| `--ephemeral` | `-e` | Don't save this session to disk |
|
|
91
|
+
| `--theme` | `-t` | UI theme: `dark`, `light`, or a custom theme |
|
|
92
|
+
| `--cwd PATH` | `-c` | Set the working directory |
|
|
93
|
+
| `--output-format` | `-f` | Non-interactive output: `text` or `json` |
|
|
94
|
+
| `--quiet` | `-q` | Hide the non-interactive spinner |
|
|
95
|
+
| `--version` | `-v` | Print the installed version |
|
|
96
|
+
| `--help` | `-h` | Show help message |
|
|
97
|
+
|
|
98
|
+
Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-reference.md).
|
|
99
|
+
|
|
100
|
+
### Subcommands
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
tau auth # Manage provider credentials (login/logout, list)
|
|
104
|
+
tau install # Install a package (extension/skill/theme)
|
|
105
|
+
tau remove # Remove an installed package
|
|
106
|
+
tau list # List installed packages
|
|
107
|
+
tau update # Update installed packages
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Interactive slash commands
|
|
111
|
+
|
|
112
|
+
Type these inside an interactive session (`tau`):
|
|
113
|
+
|
|
114
|
+
| Command | What it does |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `/new` | Start a fresh session |
|
|
117
|
+
| `/resume` | Browse and resume a past session |
|
|
118
|
+
| `/fork [entry-id]` | Branch the session tree at a specific entry |
|
|
119
|
+
| `/tree` | Navigate the session tree, switch branches |
|
|
120
|
+
| `/clone` | Duplicate the current session at the current position |
|
|
121
|
+
| `/compact` | Summarize and compact the current context |
|
|
122
|
+
| `/session` | Show session info, message counts, and stats |
|
|
123
|
+
| `/model` | Pick a model by modality |
|
|
124
|
+
| `/theme` | Open the theme picker |
|
|
125
|
+
| `/effort` | Set the thinking effort level |
|
|
126
|
+
| `/login` | Save credentials for a provider (API key or OAuth) |
|
|
127
|
+
| `/logout` | Remove stored credentials for a provider |
|
|
128
|
+
| `/clear` | Clear all messages from the current session |
|
|
129
|
+
| `/copy` | Copy the last assistant message to the clipboard |
|
|
130
|
+
| `/reload` | Reload extensions, skills, prompts, and settings |
|
|
131
|
+
| `/settings` | Show current settings |
|
|
132
|
+
| `/extensions` | Enable or disable extensions by scope |
|
|
133
|
+
| `/watch <url> [question]` | Load public video metadata/captions via `yt-dlp` |
|
|
134
|
+
| `/help` or `/?` | List all commands and keyboard shortcuts |
|
|
135
|
+
| `/quit`, `/q`, or `/exit` | Exit Tau |
|
|
136
|
+
|
|
137
|
+
Full interactive workflow guide: [Usage](docs/usage.md).
|
|
138
|
+
|
|
139
|
+
## Compared to Pi
|
|
140
|
+
|
|
141
|
+
| Area | Pi | Tau |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| Language | TypeScript | Python |
|
|
144
|
+
| TUI rendering | Line-level diffing — rewrites a full line if any part of it changed | Cell-level diffing (`Buffer`/`Cell`, modeled after [ratatui](https://github.com/ratatui/ratatui)'s `Buffer::diff`) — only the changed cells within a row are redrawn |
|
|
145
|
+
| LLM providers | ~40, including many CN/regional and gateway vendors | 14 major providers |
|
|
146
|
+
| Audio (TTS/STT) | Not supported | ElevenLabs, Sarvam, Gemini, OpenAI |
|
|
147
|
+
| Image/video generation | Not supported | OpenAI, Gemini, OpenRouter, Fal, Zai |
|
|
148
|
+
| Sandboxing | microVM sandbox (Gondolin) is an example extension, excluded from the main build — the user wires it in themselves | `microsandbox` microVM ships as a builtin extension, enabled by default |
|
|
149
|
+
| Packaging | 5 separately published npm packages | Single PyPI package |
|
|
150
|
+
|
|
151
|
+
Core mechanics — built-in tools, session branching/compaction, extension and
|
|
152
|
+
hook API, and the interactive/print/RPC execution modes — are functionally
|
|
153
|
+
equivalent between the two.
|
|
154
|
+
|
|
155
|
+
## Referencing files
|
|
156
|
+
|
|
157
|
+
Type `@` in the interactive editor to search for a project file:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Review @src/service.py and add tests for its error handling.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
For one-shot execution, attach a file explicitly:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
tau -p "Explain this file" @src/service.py
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Tau also discovers project instructions from `AGENTS.md` and `CLAUDE.md`.
|
|
170
|
+
See [Project Context Files](docs/project-context.md) for trust and discovery
|
|
171
|
+
behavior.
|
|
172
|
+
|
|
173
|
+
## Authentication and configuration
|
|
174
|
+
|
|
175
|
+
Tau resolves provider credentials in this order:
|
|
176
|
+
|
|
177
|
+
1. A programmatic runtime override
|
|
178
|
+
2. A credential saved in `~/.tau/auth.json` (including keys saved by `/login`)
|
|
179
|
+
3. A provider environment variable such as `ANTHROPIC_API_KEY`,
|
|
180
|
+
`OPENAI_API_KEY`, and `GOOGLE_API_KEY`
|
|
181
|
+
|
|
182
|
+
Settings are merged in this order:
|
|
183
|
+
|
|
184
|
+
1. Built-in defaults
|
|
185
|
+
2. `~/.tau/settings.json`
|
|
186
|
+
3. `.tau/settings.json`
|
|
187
|
+
4. Environment variables
|
|
188
|
+
5. Command-line options
|
|
189
|
+
|
|
190
|
+
See [Authentication](docs/auth.md), [Installation](docs/installation.md), and
|
|
191
|
+
[Inference Providers](docs/inference-providers.md) for provider-specific
|
|
192
|
+
setup.
|
|
193
|
+
|
|
194
|
+
## Documentation
|
|
195
|
+
|
|
196
|
+
- [Quickstart](docs/quickstart.md) — First session in five minutes
|
|
197
|
+
- [Usage](docs/usage.md) — Interactive workflows and commands
|
|
198
|
+
- [CLI Reference](docs/cli-reference.md) — Command-line options and modes
|
|
199
|
+
- [Inference Providers](docs/inference-providers.md) — Providers and speech timestamps
|
|
200
|
+
- [Sessions](docs/sessions.md) — Persistence, branching, and compaction
|
|
201
|
+
- [Tools](docs/tools.md) — Built-in and custom tools
|
|
202
|
+
- [Extensions](docs/extensions.md) — Tools, commands, hooks, and plugins
|
|
203
|
+
- [Terminal UI](docs/tui.md) — Rendering, Markdown, math, and components
|
|
204
|
+
- [Python API](docs/python-api.md) — Embed Tau in another application
|
|
205
|
+
- [Architecture](docs/architecture.md) — Internal design and data flow
|
|
206
|
+
|
|
207
|
+
The complete documentation index is available at [docs/index.md](docs/index.md).
|
|
208
|
+
|
|
209
|
+
## Install from source
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
git clone https://github.com/Jeomon/Tau.git
|
|
213
|
+
cd Tau
|
|
214
|
+
pip install -e .
|
|
215
|
+
tau
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Security
|
|
219
|
+
|
|
220
|
+
Tau executes enabled tools with the operating-system permissions of the process
|
|
221
|
+
that launched it. The built-in `sandbox` extension routes terminal execution
|
|
222
|
+
through a `microsandbox` microVM by default, but requires the `microsandbox`
|
|
223
|
+
package and a supported platform — otherwise it falls back to unsandboxed host
|
|
224
|
+
execution. Review project instructions and commands before approving work in
|
|
225
|
+
untrusted repositories, and verify the sandbox is actually active (`/sandbox`)
|
|
226
|
+
when stronger isolation matters.
|
|
227
|
+
|
|
228
|
+
Dependency versions are pinned and recorded in `uv.lock`. See
|
|
229
|
+
[SECURITY.md](SECURITY.md) for vulnerability reporting and supply-chain
|
|
230
|
+
practices.
|
|
231
|
+
|
|
232
|
+
## Development
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
mypy tau/
|
|
236
|
+
pyright tau/
|
|
237
|
+
ruff check tau/
|
|
238
|
+
ruff format tau/
|
|
239
|
+
python -m pytest
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
See [Development Setup](docs/development.md) and
|
|
243
|
+
[Contributing](CONTRIBUTING.md).
|
|
244
|
+
|
|
245
|
+
## License
|
|
246
|
+
|
|
247
|
+
Tau is licensed under the [MIT License](LICENSE).
|
|
@@ -144,7 +144,8 @@ The provider ID used as the key in `auth.json` and the `{PROVIDER}_API_KEY` env
|
|
|
144
144
|
| Google | `google` | `GOOGLE_API_KEY` |
|
|
145
145
|
| Mistral | `mistral` | `MISTRAL_API_KEY` |
|
|
146
146
|
| Fireworks AI | `fireworks` | `FIREWORKS_API_KEY` |
|
|
147
|
-
|
|
|
147
|
+
| Hugging Face | `huggingface` | `HUGGINGFACE_API_KEY` |
|
|
148
|
+
| Ollama | `ollama` | None required (local server, default `http://localhost:11434`) |
|
|
148
149
|
|
|
149
150
|
## Next Steps
|
|
150
151
|
|
|
@@ -240,7 +240,7 @@ Create `.vscode/settings.json`:
|
|
|
240
240
|
Recommended: Use a virtual environment:
|
|
241
241
|
|
|
242
242
|
```bash
|
|
243
|
-
python3.
|
|
243
|
+
python3.12 -m venv venv
|
|
244
244
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
245
245
|
|
|
246
246
|
pip install -e .
|
|
@@ -272,7 +272,7 @@ Check your Python version:
|
|
|
272
272
|
python --version
|
|
273
273
|
```
|
|
274
274
|
|
|
275
|
-
Ensure it's 3.
|
|
275
|
+
Ensure it's 3.12 or higher.
|
|
276
276
|
|
|
277
277
|
### Missing Dependencies
|
|
278
278
|
|
|
@@ -5,7 +5,7 @@ Tau supports HTTP proxy configuration for all HTTP/HTTPS traffic via **settings.
|
|
|
5
5
|
## Use Cases
|
|
6
6
|
|
|
7
7
|
### Corporate and Enterprise Environments
|
|
8
|
-
Many organizations require all HTTP/HTTPS traffic to route through corporate proxies for security monitoring, compliance, and access control. The `
|
|
8
|
+
Many organizations require all HTTP/HTTPS traffic to route through corporate proxies for security monitoring, compliance, and access control. The `http_proxy` setting allows tau to work in these restricted environments without manual environment variable configuration.
|
|
9
9
|
|
|
10
10
|
### Network Restrictions
|
|
11
11
|
Some networks block direct access to external LLM provider APIs (Anthropic, OpenAI, Google, Bedrock, etc.). Proxy support enables routing through approved servers that have whitelist access.
|
|
@@ -25,9 +25,9 @@ Configure HTTP proxy in `~/.tau/settings.json` or `.tau/settings.json`. **Note:*
|
|
|
25
25
|
|
|
26
26
|
```json
|
|
27
27
|
{
|
|
28
|
-
"
|
|
28
|
+
"http_proxy": {
|
|
29
29
|
"url": "http://proxy.example.com:8080",
|
|
30
|
-
"
|
|
30
|
+
"no_proxy": "localhost,127.0.0.1,*.internal.example.com",
|
|
31
31
|
"headers": {
|
|
32
32
|
"Proxy-Authorization": "Bearer token123",
|
|
33
33
|
"X-Custom-Header": "value"
|
|
@@ -38,7 +38,7 @@ Configure HTTP proxy in `~/.tau/settings.json` or `.tau/settings.json`. **Note:*
|
|
|
38
38
|
|
|
39
39
|
**Fields:**
|
|
40
40
|
- `url` (required) — Proxy URL for both HTTP and HTTPS requests
|
|
41
|
-
- `
|
|
41
|
+
- `no_proxy` (optional) — Comma-separated hosts to bypass the proxy
|
|
42
42
|
- `headers` (optional) — Custom headers for proxy authentication
|
|
43
43
|
|
|
44
44
|
Settings here override corresponding environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY).
|
|
@@ -49,7 +49,7 @@ Some corporate proxies require custom authentication headers:
|
|
|
49
49
|
|
|
50
50
|
```json
|
|
51
51
|
{
|
|
52
|
-
"
|
|
52
|
+
"http_proxy": {
|
|
53
53
|
"url": "http://proxy.example.com:8080",
|
|
54
54
|
"headers": {
|
|
55
55
|
"Proxy-Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
|
|
@@ -63,7 +63,7 @@ Alternatively, embed credentials directly in the proxy URL:
|
|
|
63
63
|
|
|
64
64
|
```json
|
|
65
65
|
{
|
|
66
|
-
"
|
|
66
|
+
"http_proxy": {
|
|
67
67
|
"url": "http://username:password@proxy.example.com:8080"
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -370,7 +370,7 @@ OAuth login/refresh operations (e.g., GitHub Copilot, OpenAI, Anthropic) also re
|
|
|
370
370
|
|
|
371
371
|
### Notes
|
|
372
372
|
|
|
373
|
-
- The `
|
|
373
|
+
- The `http_proxy` setting can be set globally (`~/.tau/settings.json`) or per-project (`.tau/settings.json`); project settings are merged over global settings
|
|
374
374
|
- Different providers may have additional proxy-related configuration options (e.g., Amazon Bedrock VPC endpoints)
|
|
375
375
|
- Proxy validation occurs at startup — invalid proxy URLs will raise an error before any requests are made
|
|
376
376
|
- SOCKS and PAC proxies are not supported; only HTTP/HTTPS proxies are allowed
|
|
@@ -8,11 +8,12 @@ Tau supports the following inference providers:
|
|
|
8
8
|
|
|
9
9
|
Built-in API-key providers are `openai`, `anthropic`, `google`, `nvidia`,
|
|
10
10
|
`groq`, `openrouter`, `perplexity`, `xai`, `bedrock`, `kimi`, `minimax`,
|
|
11
|
-
`cerebras`, `deepseek`, `zai`, `kilocode`, `fireworks`, and
|
|
11
|
+
`cerebras`, `deepseek`, `zai`, `kilocode`, `fireworks`, `huggingface`, and
|
|
12
|
+
`mistral`.
|
|
12
13
|
|
|
13
14
|
Tau also includes local `ollama`, Google/Anthropic/OpenAI-compatible Vertex AI
|
|
14
15
|
providers, and OAuth providers for OpenAI Codex, Claude Code, GitHub Copilot,
|
|
15
|
-
and
|
|
16
|
+
Google Antigravity, and xAI Grok. Extensions can register additional providers.
|
|
16
17
|
|
|
17
18
|
The model picker is the authoritative model catalogue. Built-in model metadata
|
|
18
19
|
changes more frequently than this guide, so model IDs and pricing are not
|
|
@@ -132,6 +133,34 @@ tau --model fireworks/accounts/fireworks/models/llama-v3p3-70b-instruct -p "Say
|
|
|
132
133
|
- Uses the OpenAI-compatible completions API under the hood
|
|
133
134
|
- Session affinity is maintained automatically via a per-request `x-session-affinity` header
|
|
134
135
|
|
|
136
|
+
## Hugging Face
|
|
137
|
+
|
|
138
|
+
Hugging Face's Inference Providers router gives OpenAI-compatible access to
|
|
139
|
+
open-source models (DeepSeek, Llama, Qwen, Mixtral, and more) hosted across
|
|
140
|
+
its partner inference providers.
|
|
141
|
+
|
|
142
|
+
### Setup
|
|
143
|
+
|
|
144
|
+
1. Create an account at [Hugging Face](https://huggingface.co)
|
|
145
|
+
2. Generate an access token at [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) (a `read` token is sufficient)
|
|
146
|
+
3. Set the environment variable:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
export HUGGINGFACE_API_KEY=hf_...
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Verify
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
tau --model huggingface/deepseek-ai/DeepSeek-V3-0324 -p "Say hello"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Notes
|
|
159
|
+
|
|
160
|
+
- Uses the OpenAI-compatible completions API under the hood, routed through `https://router.huggingface.co/v1`
|
|
161
|
+
- Model IDs are Hugging Face Hub repo IDs (e.g. `meta-llama/Llama-3.3-70B-Instruct`)
|
|
162
|
+
- Built-in model entries are pinned to a specific backend with `<repo>:<provider>` (e.g. `openai/gpt-oss-120b:groq`) rather than the router's default `:fastest` routing, since unpinned routing can silently switch to a backend with different tool-calling behavior. You can still use any model/backend combination the router supports via `tau --model huggingface/<repo>[:<provider>]` even if it isn't in the built-in list.
|
|
163
|
+
|
|
135
164
|
## Ollama (Local)
|
|
136
165
|
|
|
137
166
|
Run open-source models locally without API keys or internet.
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
| Shortcut | Action |
|
|
22
22
|
|----------|--------|
|
|
23
23
|
| Alt+Enter | Queue as follow-up message (delivered when agent is fully idle) |
|
|
24
|
-
|
|
|
24
|
+
| Ctrl+Up | Restore queued messages into editor |
|
|
25
25
|
|
|
26
26
|
### App
|
|
27
27
|
|
|
@@ -76,7 +76,7 @@ A `KeyMap` is `dict[str, list[str]]` — action name → list of key combos that
|
|
|
76
76
|
| `tui.input.clear` | `ctrl+u` | Kill from cursor to start |
|
|
77
77
|
| `tui.input.word_back` | `ctrl+w` | Delete previous word |
|
|
78
78
|
| `app.message.followup` | `alt+enter` | Queue as follow-up message |
|
|
79
|
-
| `app.message.dequeue` | `
|
|
79
|
+
| `app.message.dequeue` | `ctrl+up` | Restore queued messages into editor |
|
|
80
80
|
| `app.details.toggle` | `ctrl+o` | Toggle thinking and tool-result previews |
|
|
81
81
|
| `app.invocations.toggle` | `ctrl+e` | Toggle template and skill blocks |
|
|
82
82
|
| `tui.app.quit` | `ctrl+c`, `ctrl+d` | Quit tau |
|