tau-coding-agent 0.7.5__tar.gz → 0.7.6__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.5/tau_coding_agent.egg-info → tau_coding_agent-0.7.6}/PKG-INFO +1 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/pyproject.toml +1 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/sandbox/sandbox_tool.py +1 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/todo/__init__.py +7 -8
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/todo/todo_tool.py +4 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/models/text.py +11 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/providers/text.py +18 -3
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/edit.py +3 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/glob.py +3 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/grep.py +3 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/ls.py +3 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/read.py +56 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/terminal.py +1 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/utils.py +20 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/write.py +3 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/engine/service.py +15 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_claude_code.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_messages.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_vertex.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/gemini_generate.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/github_copilot_chat.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/google_antigravity.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/mistral_chat.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/ollama_chat.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_codex_responses.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_completions.py +0 -4
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_responses.py +0 -4
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_vertex.py +0 -2
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/utils.py +8 -51
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/utils.py +1 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/message_list.py +6 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tool/types.py +1 -10
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6/tau_coding_agent.egg-info}/PKG-INFO +1 -1
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_inference_error_utils.py +6 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_inference_utils.py +22 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/LICENSE +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/MANIFEST.in +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/README.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/architecture.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/auth.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/cli-reference.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/creating-tools.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/development.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/docs.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/engine.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/extension-settings.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/extensions.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/http-proxy.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/index.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/inference-providers.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/inference.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/installation.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/keybindings.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/messages.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/project-context.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/project-structure.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/prompts.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/python-api.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/quickstart.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/sessions.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/settings.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/skills.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/themes.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/tools.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/tui.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/docs/usage.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/setup.cfg +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/embedded.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/prompt/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/prompt/builder.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/prompt/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/agent/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/auth/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/auth/storage.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/auth/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/commands/clear.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/commands/compact.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/commands/reload.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/commands/session.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/ask_user/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/ask_user/component.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/ask_user/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/ask_user/schema.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/ask_user/tool.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/btw/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/footer/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/footer/git.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/footer/model.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/footer/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/header/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/loop/README.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/loop/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/loop/dispatch.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/loop/duration.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/loop/state.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/sandbox/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/sandbox/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/sandbox/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/agents.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/subagent_schema.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/todo/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/todo/todo_schema.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/watch/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/base.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/tools/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/tools/fetch.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/web/tools/search.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/manifest.json +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/model.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/runner.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/workflow/store.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/models/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/models/audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/models/image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/models/video.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/commit.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/docs.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/explain.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/fix.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/refactor.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/review.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/prompts/test.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/providers/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/providers/audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/providers/image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/providers/video.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/skills/code-review/SKILL.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/skills/debug/SKILL.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/skills/git-commit/SKILL.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/ayu-dark.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/catppuccin.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/dark.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/dracula.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/everforest.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/gruvbox.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/horizon.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/kanagawa.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/light.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/material-ocean.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/monokai.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/night-owl.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/nord.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/one-dark.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/rose-pine.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/solarized-dark.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/themes/tokyo-night.yaml +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/tools/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/commands/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/commands/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/cli.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/commands/auth.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/commands/packages.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/console/commands/update.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/core/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/core/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/engine/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/engine/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/api.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/context.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/runtime.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/extensions/settings.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/engine.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/inference.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/runtime.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/session.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/tui.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/hooks/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/base.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/builtins.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/gemini_audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/openai_audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/sarvam_audio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/audio/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/availability.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/base.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/builtins.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/gemini_image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/openai_image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/openrouter.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/image/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/base.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/builtins.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/dialect.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/google_vertex.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/xai_responses.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/base.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/builtins.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/fal_video.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/openrouter_video.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/video/zai_video.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/local/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/local/llamacpp.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/local/lmstudio.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/local/ollama.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/local/vllm.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/model/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/github_copilot.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/google_antigravity.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/openai_codex.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/pkce.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/oauth/xai_grok.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/provider/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/message/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/message/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/message/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/agent_hooks.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/app.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/appearance.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/auth.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/context.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/extensions.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/misc.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/model.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/commands/session.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/command_palette.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/config_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/extension_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/file_picker.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/layout.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/model_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/oauth_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/overlays.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/selector_controller.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/session_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/settings_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/theme_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/thinking_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/tree_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/trust_screen.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/components/voice_selector.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/input_handler.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/interactive/ui_context.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/print/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/rpc/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/rpc/mode.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/modes/rpc/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/packages/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/packages/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/packages/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/packages/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/prompts/expand.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/prompts/loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/prompts/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/prompts/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/resources/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/resources/loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/resources/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/runtime/dependencies.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/runtime/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/runtime/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/session/branch_summarization.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/session/compaction.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/session/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/session/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/session/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/settings/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/settings/paths.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/settings/storage.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/settings/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/settings/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/skills/loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/skills/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/skills/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/telemetry/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/telemetry/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/telemetry/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/themes/loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/themes/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/themes/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tool/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tool/registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tool/render.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/trust/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/trust/manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/trust/types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/trust/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/ansi_bridge.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/autocomplete.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/backend.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/buffer.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/component.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/box.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/editor.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/select_list.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/simple_picker.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/spinner.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/text_input.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/components/widget_bridge.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/frame.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/geometry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/input.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/keybinding_hints.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/layout.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/markdown.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/palette.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/service.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/style.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/terminal.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/testing.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/text.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/theme.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widget.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/barchart.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/block.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/calendar.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/canvas.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/chart.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/clear.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/gauge.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/list.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/paragraph.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/scrollbar.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/sparkline.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/symbols.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/table.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/tui/widgets/tabs.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/__init__.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/format.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/http_proxy.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/image_processing.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/secrets.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/utils/version_check.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau_coding_agent.egg-info/SOURCES.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau_coding_agent.egg-info/entry_points.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau_coding_agent.egg-info/requires.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau_coding_agent.egg-info/top_level.txt +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_agent_compaction.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_agent_hooks.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_agent_prompt.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_agent_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_ansi.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_ansi_bridge_legacy_image.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_anthropic_tool_history.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_ask_user_extension.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_audio_transcription_apis.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_auth_command.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_auth_manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_auth_storage.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_autocomplete_modifiers.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_branch_navigation.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_branch_summarization.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_builtin_tools.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_builtin_watch.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_cli_inputs.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_cmd_copy.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_command_execution_policy.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_command_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_compaction.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_component_buffer_bridge.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_diff.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_editor_protocol.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_engine_execution.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_engine_length_and_live_tools.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_engine_steering.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_engine_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_escape_behavior.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_extension_api.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_extension_lifecycle.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_footer_model.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_footer_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_fuzzy.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_gemini_generate.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_google_antigravity.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_google_vertex.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_http_proxy.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_image_processing.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_inference_api_text_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_inference_dialect.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_inference_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_input_handler_paste.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_keybindings.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_layout_render_cells.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_local_model_discovery.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_markdown.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_message_list_frozen.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_message_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_message_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_audio_modality.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_availability.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_command.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_file_modality.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_selector_modal.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_model_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_oauth_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_openai_codex_responses_lite.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_package_resources.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_packages_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_peer_extension.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_pkce.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_prompts_expand.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_prompts_loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_prompts_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_provider_audio_content.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_provider_file_content.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_provider_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_resource_loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_rpc_mode.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_runtime_sdk.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_scrollback_raw_writes.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_scrollback_terminal.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_secrets.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_select_list_render_cells.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_selector_controller.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_session_manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_session_trust_persist.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_session_types.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_session_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_settings_manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_settings_paths.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_settings_storage.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_settings_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_skills_loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_skills_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_strip_control_chars.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_subagent_context.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_telemetry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_text_input.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_text_input_render_cells.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_text_llm_invoke.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_text_llm_model_resolution.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_theme_loader.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_themes_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_thinking_render.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tool_registry.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tool_render.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tree_branch_restore.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_trust_manager.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_trust_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_capabilities.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_child_rows.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_input.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_layout_sizing.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_public_api.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_renderer.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_select_list.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_theme.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_tui_utils.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_ui_context.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_utils_hashline.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tests/test_version_check.py +0 -0
- {tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/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.7.
|
|
3
|
+
Version: 0.7.6
|
|
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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tau-coding-agent"
|
|
7
|
-
version = "0.7.
|
|
7
|
+
version = "0.7.6"
|
|
8
8
|
description = "A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/builtins/extensions/sandbox/sandbox_tool.py
RENAMED
|
@@ -45,7 +45,7 @@ def _render_result(content: str, opts: Any) -> list[str]:
|
|
|
45
45
|
metadata = opts.metadata or {}
|
|
46
46
|
exit_code = metadata.get("exit_code", 0)
|
|
47
47
|
timed_out = metadata.get("timed_out", False)
|
|
48
|
-
failed = timed_out or exit_code != 0
|
|
48
|
+
failed = opts.is_error or timed_out or exit_code != 0
|
|
49
49
|
|
|
50
50
|
if timed_out:
|
|
51
51
|
return [f"{RED}Timed out{RESET}"]
|
|
@@ -6,9 +6,9 @@ rebuilt by replaying the session's custom entries (so it naturally follows
|
|
|
6
6
|
branch/fork navigation), plus a `/todos` command for a quick look.
|
|
7
7
|
|
|
8
8
|
The task list itself is surfaced through a board widget above the input box
|
|
9
|
-
rather than the tool call/result in the transcript — the board
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
rather than the tool call/result in the transcript — the board appears as
|
|
10
|
+
soon as a task exists and stays up (showing done/failed tasks too) until the
|
|
11
|
+
list is explicitly cleared or every task is deleted.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
14
|
from __future__ import annotations
|
|
@@ -60,7 +60,7 @@ class TodoBoard:
|
|
|
60
60
|
|
|
61
61
|
def _lines(self, theme: Any) -> list[str]:
|
|
62
62
|
from tau.modes.interactive.components.message_list import apply_render_shell
|
|
63
|
-
from tau.tui.style import apply_style
|
|
63
|
+
from tau.tui.style import Style, apply_style
|
|
64
64
|
|
|
65
65
|
glyphs = {
|
|
66
66
|
"pending": ("☐", theme.muted),
|
|
@@ -73,16 +73,15 @@ class TodoBoard:
|
|
|
73
73
|
glyph, style = glyphs[item.status]
|
|
74
74
|
subject = item.subject
|
|
75
75
|
if item.status == "done":
|
|
76
|
-
subject = apply_style(
|
|
76
|
+
subject = apply_style(theme.muted.patch(Style().dim().strikethrough()), subject)
|
|
77
77
|
items.append(f"{apply_style(style, glyph)} {item.id}. {subject}")
|
|
78
|
-
return apply_render_shell(items, theme)
|
|
78
|
+
return apply_render_shell(items, theme.message)
|
|
79
79
|
|
|
80
80
|
def sync(self, ctx: ExtensionContext) -> None:
|
|
81
81
|
ui = ctx.ui
|
|
82
82
|
if ui is None:
|
|
83
83
|
return
|
|
84
|
-
|
|
85
|
-
if not pending:
|
|
84
|
+
if not self._state.items:
|
|
86
85
|
if self._shown:
|
|
87
86
|
ui.remove_widget(WIDGET_KEY)
|
|
88
87
|
self._shown = False
|
|
@@ -305,7 +305,10 @@ class TodoTool(Tool):
|
|
|
305
305
|
"for one task (requires 'id'); 'delete' removes a task (requires 'id'); "
|
|
306
306
|
"'clear' removes every task. The list is shown to the user in a board above "
|
|
307
307
|
"the input, not in the transcript, so don't repeat task contents back to the "
|
|
308
|
-
"user after calling this tool.
|
|
308
|
+
"user after calling this tool. The board stays visible — even once every task "
|
|
309
|
+
"is 'done'/'failed' — until 'clear' is called, so once the whole plan is "
|
|
310
|
+
"complete, call 'clear' to dismiss it instead of leaving it up. State persists "
|
|
311
|
+
"across branches and restarts. "
|
|
309
312
|
"Never tell the user a task was created, updated, or completed unless you "
|
|
310
313
|
"actually made the matching 'create'/'update' call in this turn — calling "
|
|
311
314
|
"'list' alone does not change anything. If it's unclear which task or field "
|
|
@@ -1106,6 +1106,17 @@ models = [
|
|
|
1106
1106
|
input=_TEXT,
|
|
1107
1107
|
output=_TEXT,
|
|
1108
1108
|
),
|
|
1109
|
+
Model(
|
|
1110
|
+
id="gemma-4-31b",
|
|
1111
|
+
name="Gemma 4 31B",
|
|
1112
|
+
provider="cerebras",
|
|
1113
|
+
cost=Cost(input=0.99, output=1.49),
|
|
1114
|
+
thinking=True,
|
|
1115
|
+
context_window=131_072,
|
|
1116
|
+
max_output_tokens=40_960,
|
|
1117
|
+
input=_TEXT_IMAGE,
|
|
1118
|
+
output=_TEXT,
|
|
1119
|
+
),
|
|
1109
1120
|
# Perplexity
|
|
1110
1121
|
Model(
|
|
1111
1122
|
id="perplexity/sonar",
|
|
@@ -9,9 +9,24 @@ from tau.inference.provider.types import APIProvider
|
|
|
9
9
|
from tau.inference.types import AuthType, LLMOptions
|
|
10
10
|
|
|
11
11
|
api_providers = [
|
|
12
|
-
APIProvider(
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
APIProvider(
|
|
13
|
+
id="openai",
|
|
14
|
+
name="OpenAI",
|
|
15
|
+
api="openai_responses",
|
|
16
|
+
options=LLMOptions()
|
|
17
|
+
),
|
|
18
|
+
APIProvider(
|
|
19
|
+
id="anthropic",
|
|
20
|
+
name="Anthropic",
|
|
21
|
+
api="anthropic_messages",
|
|
22
|
+
options=LLMOptions()
|
|
23
|
+
),
|
|
24
|
+
APIProvider(
|
|
25
|
+
id="google",
|
|
26
|
+
name="Google",
|
|
27
|
+
api="gemini_generate",
|
|
28
|
+
options=LLMOptions()
|
|
29
|
+
),
|
|
15
30
|
APIProvider(
|
|
16
31
|
id="google-vertex",
|
|
17
32
|
name="Google Vertex AI",
|
|
@@ -231,6 +231,9 @@ def _collapse_hunk_context(
|
|
|
231
231
|
def _render_edit_result(content: str, opts: Any) -> list[str]:
|
|
232
232
|
from tau.tui.utils import GREEN, RED, RESET
|
|
233
233
|
|
|
234
|
+
if opts.is_error:
|
|
235
|
+
return content.splitlines() or [content]
|
|
236
|
+
|
|
234
237
|
metadata = opts.metadata or {}
|
|
235
238
|
added = metadata.get("lines_added", 0)
|
|
236
239
|
removed = metadata.get("lines_removed", 0)
|
|
@@ -312,7 +315,6 @@ class EditTool(Tool):
|
|
|
312
315
|
" Re-read before editing again if the file may have changed since your"
|
|
313
316
|
" last read — a formatter, hook, or another edit can shift anchors."
|
|
314
317
|
),
|
|
315
|
-
strict="prefer",
|
|
316
318
|
)
|
|
317
319
|
|
|
318
320
|
def get_display_name(self, args: dict[str, Any]) -> str:
|
|
@@ -29,6 +29,9 @@ _MAX_RESULTS = 1000
|
|
|
29
29
|
def _render_glob_result(content: str, opts: Any) -> list[str]:
|
|
30
30
|
from tau.tui.utils import DIM, RESET
|
|
31
31
|
|
|
32
|
+
if opts.is_error:
|
|
33
|
+
return content.splitlines() or [content]
|
|
34
|
+
|
|
32
35
|
metadata = opts.metadata or {}
|
|
33
36
|
match_count = metadata.get("match_count", 0)
|
|
34
37
|
truncated = metadata.get("truncated", False)
|
|
@@ -31,6 +31,9 @@ def _render_grep_call(args: dict, _streaming: bool) -> list[str]:
|
|
|
31
31
|
def _render_grep_result(content: str, opts: Any) -> list[str]:
|
|
32
32
|
from tau.tui.utils import DIM, RESET
|
|
33
33
|
|
|
34
|
+
if opts.is_error:
|
|
35
|
+
return content.splitlines() or [content]
|
|
36
|
+
|
|
34
37
|
metadata = opts.metadata or {}
|
|
35
38
|
match_count = metadata.get("match_count", 0)
|
|
36
39
|
files_searched = metadata.get("files_searched", 0)
|
|
@@ -39,6 +39,9 @@ class LsParams(BaseModel):
|
|
|
39
39
|
def _render_ls_result(content: str, opts: Any) -> list[str]:
|
|
40
40
|
from tau.tui.utils import DIM, RESET
|
|
41
41
|
|
|
42
|
+
if opts.is_error:
|
|
43
|
+
return content.splitlines() or [content]
|
|
44
|
+
|
|
42
45
|
metadata = opts.metadata or {}
|
|
43
46
|
path = metadata.get("path", "")
|
|
44
47
|
file_count = metadata.get("file_count", 0)
|
|
@@ -4,7 +4,12 @@ from typing import Any
|
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
-
from tau.builtins.tools.utils import
|
|
7
|
+
from tau.builtins.tools.utils import (
|
|
8
|
+
compute_line_hashes,
|
|
9
|
+
detect_image_mime,
|
|
10
|
+
looks_like_binary,
|
|
11
|
+
resolve_tool_path,
|
|
12
|
+
)
|
|
8
13
|
from tau.tool.render import call_line
|
|
9
14
|
from tau.tool.types import (
|
|
10
15
|
AbortSignal,
|
|
@@ -16,6 +21,7 @@ from tau.tool.types import (
|
|
|
16
21
|
ToolKind,
|
|
17
22
|
ToolResult,
|
|
18
23
|
)
|
|
24
|
+
from tau.utils.format import human_size
|
|
19
25
|
|
|
20
26
|
|
|
21
27
|
def _render_read_call(args: dict, _streaming: bool) -> list[str]:
|
|
@@ -23,6 +29,10 @@ def _render_read_call(args: dict, _streaming: bool) -> list[str]:
|
|
|
23
29
|
|
|
24
30
|
|
|
25
31
|
_MAX_LINE_CHARS = 4000
|
|
32
|
+
# Generous enough for any real screenshot/photo while bounding the base64
|
|
33
|
+
# payload handed to the model — most vision APIs downscale well past this
|
|
34
|
+
# anyway, so there's little value in reading a larger file as an image.
|
|
35
|
+
_MAX_IMAGE_BYTES = 10 * 1024 * 1024
|
|
26
36
|
|
|
27
37
|
|
|
28
38
|
def _display_line(line: str) -> str:
|
|
@@ -68,7 +78,14 @@ class ReadParams(BaseModel):
|
|
|
68
78
|
def _render_read_result(content: str, opts: Any) -> list[str]:
|
|
69
79
|
from tau.tui.utils import DIM, RESET
|
|
70
80
|
|
|
81
|
+
if opts.is_error:
|
|
82
|
+
return content.splitlines() or [content]
|
|
83
|
+
|
|
71
84
|
metadata = opts.metadata or {}
|
|
85
|
+
|
|
86
|
+
if metadata.get("is_image"):
|
|
87
|
+
return [content]
|
|
88
|
+
|
|
72
89
|
lines_returned = metadata.get("lines_returned", 0)
|
|
73
90
|
|
|
74
91
|
line_word = "line" if lines_returned == 1 else "lines"
|
|
@@ -101,7 +118,11 @@ class ReadTool(Tool):
|
|
|
101
118
|
"'<line>:<hash>|<content>'. Every line in the file gets a distinct anchor, "
|
|
102
119
|
"including blank lines and repeated content. Use offset and limit to read "
|
|
103
120
|
f"large files in chunks. A single line longer than {_MAX_LINE_CHARS} characters "
|
|
104
|
-
"is truncated for display
|
|
121
|
+
"is truncated for display. A PNG, JPEG, GIF, or WEBP file (detected from its "
|
|
122
|
+
"magic bytes, regardless of extension) is returned as image content instead of "
|
|
123
|
+
f"text, up to {_MAX_IMAGE_BYTES // (1024 * 1024)} MiB; offset/limit don't apply "
|
|
124
|
+
"to images, and this fails if the active model doesn't accept image input. "
|
|
125
|
+
"Any other binary content is refused."
|
|
105
126
|
),
|
|
106
127
|
schema=ReadParams,
|
|
107
128
|
kind=ToolKind.Read,
|
|
@@ -140,6 +161,39 @@ class ReadTool(Tool):
|
|
|
140
161
|
except OSError as e:
|
|
141
162
|
return ToolResult.error(invocation.id, f"Cannot read file: {e}")
|
|
142
163
|
|
|
164
|
+
mime = detect_image_mime(raw)
|
|
165
|
+
if mime is not None:
|
|
166
|
+
model = getattr(context, "llm", None)
|
|
167
|
+
model = getattr(model, "model", None) if model is not None else None
|
|
168
|
+
if model is not None:
|
|
169
|
+
from tau.inference.model.types import Modality
|
|
170
|
+
|
|
171
|
+
if Modality.Image not in model.input:
|
|
172
|
+
return ToolResult.error(
|
|
173
|
+
invocation.id,
|
|
174
|
+
f"'{params.path}' is a {mime} image, but the active model "
|
|
175
|
+
f"({model.name}) doesn't accept image input. Switch to a "
|
|
176
|
+
"vision-capable model to read this file.",
|
|
177
|
+
)
|
|
178
|
+
if len(raw) > _MAX_IMAGE_BYTES:
|
|
179
|
+
return ToolResult.error(
|
|
180
|
+
invocation.id,
|
|
181
|
+
f"'{params.path}' is a {human_size(len(raw))} {mime} image, over the "
|
|
182
|
+
f"{human_size(_MAX_IMAGE_BYTES)} limit for reading images.",
|
|
183
|
+
)
|
|
184
|
+
metadata = {
|
|
185
|
+
"file_path": str(path),
|
|
186
|
+
"is_image": True,
|
|
187
|
+
"mime_type": mime,
|
|
188
|
+
"byte_size": len(raw),
|
|
189
|
+
}
|
|
190
|
+
return ToolResult.with_images(
|
|
191
|
+
invocation.id,
|
|
192
|
+
f"Read image '{params.path}' ({mime}, {human_size(len(raw))})",
|
|
193
|
+
images=[raw],
|
|
194
|
+
metadata=metadata,
|
|
195
|
+
)
|
|
196
|
+
|
|
143
197
|
if looks_like_binary(raw):
|
|
144
198
|
return ToolResult.error(
|
|
145
199
|
invocation.id,
|
|
@@ -47,7 +47,7 @@ def _render_terminal_result(content: str, opts: Any) -> list[str]:
|
|
|
47
47
|
metadata = opts.metadata or {}
|
|
48
48
|
exit_code = metadata.get("exit_code", 0)
|
|
49
49
|
timed_out = metadata.get("timed_out", False)
|
|
50
|
-
failed = timed_out or exit_code != 0
|
|
50
|
+
failed = opts.is_error or timed_out or exit_code != 0
|
|
51
51
|
|
|
52
52
|
if timed_out:
|
|
53
53
|
return [f"{RED}Timed out{RESET}"]
|
|
@@ -209,6 +209,26 @@ def looks_like_binary(data: bytes) -> bool:
|
|
|
209
209
|
return b"\x00" in data[:_BINARY_SNIFF_BYTES]
|
|
210
210
|
|
|
211
211
|
|
|
212
|
+
def detect_image_mime(data: bytes) -> str | None:
|
|
213
|
+
"""Return the MIME type if ``data`` starts with a recognized image magic number.
|
|
214
|
+
|
|
215
|
+
Unlike ``tau.message.utils.detect_image_mime``, this never guesses — it
|
|
216
|
+
returns ``None`` for anything that isn't unambiguously PNG/JPEG/GIF/WEBP,
|
|
217
|
+
so callers can tell "this is an image" apart from "this is some other
|
|
218
|
+
binary format" (e.g. a zip, a compiled object) instead of mislabeling
|
|
219
|
+
every non-text file as a PNG.
|
|
220
|
+
"""
|
|
221
|
+
if data[:3] == b"\xff\xd8\xff":
|
|
222
|
+
return "image/jpeg"
|
|
223
|
+
if data[:8] == b"\x89PNG\r\n\x1a\n":
|
|
224
|
+
return "image/png"
|
|
225
|
+
if data[:6] in (b"GIF87a", b"GIF89a"):
|
|
226
|
+
return "image/gif"
|
|
227
|
+
if data[:4] == b"RIFF" and len(data) >= 12 and data[8:12] == b"WEBP":
|
|
228
|
+
return "image/webp"
|
|
229
|
+
return None
|
|
230
|
+
|
|
231
|
+
|
|
212
232
|
def resolve_tool_path(raw_path: str, cwd: Path | None) -> Path:
|
|
213
233
|
"""Resolve a tool's ``path`` argument against the invocation's working directory.
|
|
214
234
|
|
|
@@ -41,6 +41,9 @@ class WriteParams(BaseModel):
|
|
|
41
41
|
def _render_write_result(content: str, opts: Any) -> list[str]:
|
|
42
42
|
from tau.tui.utils import DIM, GREEN, RESET
|
|
43
43
|
|
|
44
|
+
if opts.is_error:
|
|
45
|
+
return content.splitlines() or [content]
|
|
46
|
+
|
|
44
47
|
metadata = opts.metadata or {}
|
|
45
48
|
total_lines = metadata.get("total_lines", 0)
|
|
46
49
|
created = metadata.get("created", False)
|
|
@@ -77,7 +80,6 @@ class WriteTool(Tool):
|
|
|
77
80
|
prompt_guidelines=(
|
|
78
81
|
"Only use for new files or complete rewrites. Use edit to modify existing files."
|
|
79
82
|
),
|
|
80
|
-
strict="prefer",
|
|
81
83
|
)
|
|
82
84
|
|
|
83
85
|
def get_display_name(self, args: dict[str, Any]) -> str:
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import logging
|
|
5
|
+
import traceback
|
|
5
6
|
from collections.abc import Callable, Coroutine
|
|
6
7
|
from contextlib import suppress
|
|
7
8
|
from pathlib import Path
|
|
@@ -370,12 +371,24 @@ class Engine:
|
|
|
370
371
|
)
|
|
371
372
|
except Exception as e:
|
|
372
373
|
_log.error("tool %s raised: %s", tool_call.name, e, exc_info=True)
|
|
373
|
-
|
|
374
|
+
# First line is a concise summary (what a collapsed render shows); the
|
|
375
|
+
# full traceback follows so both the model and an expanded TUI view
|
|
376
|
+
# get the real root cause instead of just str(e) — see whichever
|
|
377
|
+
# tool.render_result is in play (or the generic fallback) for how
|
|
378
|
+
# this gets collapsed/expanded in the transcript.
|
|
379
|
+
error = (
|
|
380
|
+
f"Tool '{tool_call.name}' execution failed: {e}\n\n{traceback.format_exc()}"
|
|
381
|
+
)
|
|
374
382
|
tool_result = ToolResultContent(
|
|
375
383
|
id=tool_call.id,
|
|
376
384
|
is_error=True,
|
|
377
385
|
content=error,
|
|
378
|
-
|
|
386
|
+
# Tells the renderer to skip this tool's own render_result and use
|
|
387
|
+
# the generic error display instead — an unhandled exception's
|
|
388
|
+
# traceback needs the standard collapse/expand treatment
|
|
389
|
+
# regardless of whether this particular tool's custom renderer
|
|
390
|
+
# was written to handle multi-line error content correctly.
|
|
391
|
+
metadata={"_unhandled_exception": True},
|
|
379
392
|
tool_name=tool_call.name,
|
|
380
393
|
)
|
|
381
394
|
await emit(
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_claude_code.py
RENAMED
|
@@ -12,7 +12,6 @@ from tau.inference.api.text.utils import (
|
|
|
12
12
|
anthropic_apply_message_cache,
|
|
13
13
|
anthropic_messages_to_list,
|
|
14
14
|
anthropic_output_config,
|
|
15
|
-
check_strict_tools_supported,
|
|
16
15
|
has_tool_history,
|
|
17
16
|
parse_tool_args,
|
|
18
17
|
)
|
|
@@ -209,7 +208,6 @@ class AnthropicClaudeCodeAPI(BaseAPI):
|
|
|
209
208
|
ephemeral_message_count: int = 0,
|
|
210
209
|
) -> dict[str, Any]:
|
|
211
210
|
"""Assemble the Anthropic API request payload, including thinking and tool configs."""
|
|
212
|
-
check_strict_tools_supported(tools)
|
|
213
211
|
_suppress_temp = any(s in model.id for s in ("opus-4-7", "opus-4-8"))
|
|
214
212
|
params: dict[str, Any] = {
|
|
215
213
|
"model": model.id,
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_messages.py
RENAMED
|
@@ -10,7 +10,6 @@ from tau.inference.api.text.utils import (
|
|
|
10
10
|
anthropic_apply_message_cache,
|
|
11
11
|
anthropic_messages_to_list,
|
|
12
12
|
anthropic_output_config,
|
|
13
|
-
check_strict_tools_supported,
|
|
14
13
|
has_tool_history,
|
|
15
14
|
parse_tool_args,
|
|
16
15
|
)
|
|
@@ -77,7 +76,6 @@ class AnthropicMessagesAPI(BaseAPI):
|
|
|
77
76
|
ephemeral_message_count: int = 0,
|
|
78
77
|
) -> dict[str, Any]:
|
|
79
78
|
"""Assemble the Anthropic API request payload, including thinking and tool configs."""
|
|
80
|
-
check_strict_tools_supported(tools)
|
|
81
79
|
_suppress_temp = any(s in model.id for s in ("opus-4-7", "opus-4-8"))
|
|
82
80
|
params: dict[str, Any] = {
|
|
83
81
|
"model": model.id,
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/anthropic_vertex.py
RENAMED
|
@@ -11,7 +11,6 @@ from tau.inference.api.text.utils import (
|
|
|
11
11
|
anthropic_apply_message_cache,
|
|
12
12
|
anthropic_messages_to_list,
|
|
13
13
|
anthropic_output_config,
|
|
14
|
-
check_strict_tools_supported,
|
|
15
14
|
has_tool_history,
|
|
16
15
|
parse_tool_args,
|
|
17
16
|
)
|
|
@@ -96,7 +95,6 @@ class AnthropicVertexAPI(BaseAPI):
|
|
|
96
95
|
tools: list[Tool] | None = None,
|
|
97
96
|
ephemeral_message_count: int = 0,
|
|
98
97
|
) -> dict[str, Any]:
|
|
99
|
-
check_strict_tools_supported(tools)
|
|
100
98
|
_suppress_temp = any(s in model.id for s in ("opus-4-7", "opus-4-8"))
|
|
101
99
|
params: dict[str, Any] = {
|
|
102
100
|
"model": model.id,
|
|
@@ -10,7 +10,6 @@ from google.genai import types as genai_types
|
|
|
10
10
|
|
|
11
11
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
12
12
|
from tau.inference.api.text.utils import (
|
|
13
|
-
check_strict_tools_supported,
|
|
14
13
|
gemini_function_response_parts,
|
|
15
14
|
gemini_tool_schema,
|
|
16
15
|
tool_result_text,
|
|
@@ -267,7 +266,6 @@ class GeminiGenerateAPI(BaseAPI):
|
|
|
267
266
|
include_thoughts=True,
|
|
268
267
|
)
|
|
269
268
|
|
|
270
|
-
check_strict_tools_supported(tools)
|
|
271
269
|
if tools:
|
|
272
270
|
params["tools"] = [
|
|
273
271
|
genai_types.Tool(
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/github_copilot_chat.py
RENAMED
|
@@ -7,7 +7,6 @@ from openai import AsyncOpenAI
|
|
|
7
7
|
|
|
8
8
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
9
9
|
from tau.inference.api.text.utils import (
|
|
10
|
-
check_strict_tools_supported,
|
|
11
10
|
openai_messages_to_chat,
|
|
12
11
|
openai_response_format,
|
|
13
12
|
parse_tool_args,
|
|
@@ -81,7 +80,6 @@ class GitHubCopilotChatAPI(BaseAPI):
|
|
|
81
80
|
if self.options.max_tokens is not None:
|
|
82
81
|
params["max_completion_tokens"] = self.options.max_tokens
|
|
83
82
|
|
|
84
|
-
check_strict_tools_supported(tools)
|
|
85
83
|
if tools:
|
|
86
84
|
params["tools"] = [
|
|
87
85
|
{
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/google_antigravity.py
RENAMED
|
@@ -18,7 +18,6 @@ import httpx
|
|
|
18
18
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
19
19
|
from tau.inference.api.text.types import APIResponse
|
|
20
20
|
from tau.inference.api.text.utils import (
|
|
21
|
-
check_strict_tools_supported,
|
|
22
21
|
gemini_function_response_parts_raw,
|
|
23
22
|
gemini_tool_schema,
|
|
24
23
|
parse_tool_args,
|
|
@@ -424,7 +423,6 @@ class GoogleAntigravityAPI(BaseAPI):
|
|
|
424
423
|
inside `items`/`anyOf`/`oneOf`/`allOf`, which Gemini tolerates but
|
|
425
424
|
Claude does not — so the fix has to walk the whole tree, not just the root.
|
|
426
425
|
"""
|
|
427
|
-
check_strict_tools_supported(tools)
|
|
428
426
|
is_claude = "claude" in model_id
|
|
429
427
|
seen: set[str] = set()
|
|
430
428
|
decls = []
|
|
@@ -10,7 +10,6 @@ from mistralai.client.types import UNSET
|
|
|
10
10
|
|
|
11
11
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
12
12
|
from tau.inference.api.text.utils import (
|
|
13
|
-
check_strict_tools_supported,
|
|
14
13
|
openai_response_format,
|
|
15
14
|
openai_user_content,
|
|
16
15
|
parse_tool_args,
|
|
@@ -212,7 +211,6 @@ class MistralChatAPI(BaseAPI):
|
|
|
212
211
|
kwargs["response_format"] = response_format
|
|
213
212
|
|
|
214
213
|
tools = context.tools or None
|
|
215
|
-
check_strict_tools_supported(tools)
|
|
216
214
|
if tools:
|
|
217
215
|
kwargs["tools"] = [
|
|
218
216
|
{
|
|
@@ -8,7 +8,6 @@ from ollama import AsyncClient
|
|
|
8
8
|
|
|
9
9
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
10
10
|
from tau.inference.api.text.utils import (
|
|
11
|
-
check_strict_tools_supported,
|
|
12
11
|
parse_tool_args,
|
|
13
12
|
tool_result_text,
|
|
14
13
|
)
|
|
@@ -182,7 +181,6 @@ class OllamaChatAPI(BaseAPI):
|
|
|
182
181
|
payload["format"] = response_format
|
|
183
182
|
|
|
184
183
|
tools = context.tools or None
|
|
185
|
-
check_strict_tools_supported(tools)
|
|
186
184
|
if tools:
|
|
187
185
|
payload["tools"] = [
|
|
188
186
|
{
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_codex_responses.py
RENAMED
|
@@ -16,7 +16,6 @@ import websockets.asyncio.client
|
|
|
16
16
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
17
17
|
from tau.inference.api.text.types import APIResponse
|
|
18
18
|
from tau.inference.api.text.utils import (
|
|
19
|
-
check_strict_tools_supported,
|
|
20
19
|
openai_responses_function_call_output,
|
|
21
20
|
parse_tool_args,
|
|
22
21
|
)
|
|
@@ -262,7 +261,6 @@ def _build_body(
|
|
|
262
261
|
# ("Unsupported parameter") — unlike the standard OpenAI Responses API.
|
|
263
262
|
# Output length is governed by the subscription, so we never send it.
|
|
264
263
|
|
|
265
|
-
check_strict_tools_supported(tools)
|
|
266
264
|
if tools:
|
|
267
265
|
body["tools"] = [
|
|
268
266
|
{
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_completions.py
RENAMED
|
@@ -11,7 +11,6 @@ from tau.inference.api.text.utils import (
|
|
|
11
11
|
openai_messages_to_chat,
|
|
12
12
|
openai_response_format,
|
|
13
13
|
parse_tool_args,
|
|
14
|
-
strict_json_schema,
|
|
15
14
|
)
|
|
16
15
|
from tau.inference.model.types import Model
|
|
17
16
|
from tau.inference.types import (
|
|
@@ -107,9 +106,6 @@ class OpenAICompletionsAPI(BaseAPI):
|
|
|
107
106
|
"description": tool.description,
|
|
108
107
|
"parameters": schema,
|
|
109
108
|
}
|
|
110
|
-
if tool.strict:
|
|
111
|
-
function["parameters"] = strict_json_schema(schema)
|
|
112
|
-
function["strict"] = True
|
|
113
109
|
tool_defs.append({"type": "function", "function": function})
|
|
114
110
|
params["tools"] = tool_defs
|
|
115
111
|
params["tool_choice"] = "auto"
|
{tau_coding_agent-0.7.5 → tau_coding_agent-0.7.6}/tau/inference/api/text/openai_responses.py
RENAMED
|
@@ -10,7 +10,6 @@ from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
|
10
10
|
from tau.inference.api.text.utils import (
|
|
11
11
|
openai_responses_function_call_output,
|
|
12
12
|
parse_tool_args,
|
|
13
|
-
strict_json_schema,
|
|
14
13
|
)
|
|
15
14
|
from tau.inference.model.types import Model
|
|
16
15
|
from tau.inference.types import (
|
|
@@ -232,9 +231,6 @@ class OpenAIResponsesAPI(BaseAPI):
|
|
|
232
231
|
"description": tool.description,
|
|
233
232
|
"parameters": schema,
|
|
234
233
|
}
|
|
235
|
-
if tool.strict:
|
|
236
|
-
tool_def["parameters"] = strict_json_schema(schema)
|
|
237
|
-
tool_def["strict"] = True
|
|
238
234
|
tool_defs.append(tool_def)
|
|
239
235
|
params["tools"] = tool_defs
|
|
240
236
|
|
|
@@ -9,7 +9,6 @@ from openai import AsyncOpenAI
|
|
|
9
9
|
|
|
10
10
|
from tau.inference.api.text.base import BaseLLMAPI as BaseAPI
|
|
11
11
|
from tau.inference.api.text.utils import (
|
|
12
|
-
check_strict_tools_supported,
|
|
13
12
|
openai_messages_to_chat,
|
|
14
13
|
openai_response_format,
|
|
15
14
|
parse_tool_args,
|
|
@@ -163,7 +162,6 @@ class OpenAIVertexAPI(BaseAPI):
|
|
|
163
162
|
if self.options.max_tokens is not None:
|
|
164
163
|
params["max_completion_tokens"] = self.options.max_tokens
|
|
165
164
|
|
|
166
|
-
check_strict_tools_supported(tools)
|
|
167
165
|
if tools:
|
|
168
166
|
params["tools"] = [
|
|
169
167
|
{
|