tau-coding-agent 0.6.7__tar.gz → 0.6.9__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.6.7/tau_coding_agent.egg-info → tau_coding_agent-0.6.9}/PKG-INFO +2 -2
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/pyproject.toml +3 -2
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/prompt/builder.py +14 -1
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/models/text.py +100 -14
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/providers/text.py +2 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/cli.py +4 -1
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/loader.py +26 -5
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/builtins.py +1 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/openai_responses.py +31 -33
- tau_coding_agent-0.6.9/tau/inference/api/text/xai_responses.py +31 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/__init__.py +6 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/anthropic_claude_code.py +3 -5
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/github_copilot.py +3 -5
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/google_antigravity.py +3 -5
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/openai_codex.py +3 -5
- tau_coding_agent-0.6.9/tau/inference/provider/oauth/xai_grok.py +284 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/types.py +4 -2
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/utils.py +19 -10
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/version_check.py +24 -11
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9/tau_coding_agent.egg-info}/PKG-INFO +2 -2
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau_coding_agent.egg-info/SOURCES.txt +2 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau_coding_agent.egg-info/requires.txt +1 -1
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/LICENSE +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/MANIFEST.in +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/README.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/architecture.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/auth.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/cli-reference.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/creating-tools.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/development.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/docs.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/engine.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/extension-settings.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/extensions.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/http-proxy.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/index.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/inference-providers.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/inference.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/installation.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/keybindings.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/messages.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/project-context.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/project-structure.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/prompts.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/python-api.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/quickstart.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/sessions.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/settings.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/skills.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/themes.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/tools.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/tui.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/docs/usage.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/setup.cfg +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/embedded.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/prompt/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/prompt/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/agent/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/auth/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/auth/storage.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/auth/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/commands/clear.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/commands/compact.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/commands/reload.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/commands/session.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/ask_user/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/ask_user/component.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/ask_user/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/ask_user/schema.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/ask_user/tool.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/btw/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/footer/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/footer/git.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/footer/model.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/footer/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/header/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/loop/README.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/loop/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/loop/dispatch.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/loop/duration.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/loop/state.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/sandbox/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/sandbox/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/sandbox/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/agents.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/subagent_schema.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/todo/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/todo/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/todo/todo_schema.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/todo/todo_tool.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/watch/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/base.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/tools/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/tools/fetch.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/web/tools/search.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/manifest.json +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/model.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/runner.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/extensions/workflow/store.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/models/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/models/audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/models/image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/models/video.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/commit.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/docs.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/explain.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/fix.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/refactor.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/review.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/prompts/test.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/providers/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/providers/audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/providers/image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/providers/video.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/skills/code-review/SKILL.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/skills/debug/SKILL.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/skills/git-commit/SKILL.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/ayu-dark.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/catppuccin.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/dark.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/dracula.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/everforest.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/gruvbox.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/horizon.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/kanagawa.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/light.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/material-ocean.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/monokai.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/night-owl.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/nord.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/one-dark.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/rose-pine.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/solarized-dark.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/themes/tokyo-night.yaml +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/edit.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/glob.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/grep.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/ls.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/read.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/terminal.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/builtins/tools/write.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/commands/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/commands/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/commands/auth.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/commands/packages.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/console/commands/update.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/core/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/core/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/engine/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/engine/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/engine/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/api.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/context.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/runtime.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/extensions/settings.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/engine.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/inference.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/runtime.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/session.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/tui.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/hooks/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/base.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/builtins.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/gemini_audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/openai_audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/sarvam_audio.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/audio/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/availability.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/base.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/builtins.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/gemini_image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/openai_image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/openrouter.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/image/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/anthropic_messages.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/anthropic_vertex.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/base.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/dialect.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/gemini_generate.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/github_copilot_chat.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/google_antigravity.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/google_vertex.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/mistral_chat.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/ollama_chat.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/openai_codex_responses.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/openai_completions.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/openai_vertex.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/base.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/builtins.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/fal_video.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/openrouter_video.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/video/zai_video.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/model/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/model/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/model/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/pkce.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/message/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/message/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/message/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/agent_hooks.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/app.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/appearance.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/auth.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/context.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/extensions.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/misc.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/model.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/commands/session.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/command_palette.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/config_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/extension_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/file_picker.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/layout.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/message_list.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/model_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/oauth_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/overlays.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/selector_controller.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/session_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/settings_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/theme_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/thinking_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/tree_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/trust_screen.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/components/voice_selector.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/input_handler.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/interactive/ui_context.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/print/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/rpc/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/rpc/mode.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/modes/rpc/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/packages/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/packages/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/packages/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/packages/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/prompts/expand.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/prompts/loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/prompts/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/prompts/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/resources/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/resources/loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/resources/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/runtime/dependencies.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/runtime/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/runtime/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/session/branch_summarization.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/session/compaction.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/session/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/session/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/session/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/settings/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/settings/paths.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/settings/storage.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/settings/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/settings/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/skills/loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/skills/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/skills/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/telemetry/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/telemetry/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/telemetry/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/themes/loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/themes/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/themes/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tool/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tool/registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tool/render.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tool/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/trust/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/trust/manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/trust/types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/trust/utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/ansi_bridge.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/autocomplete.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/backend.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/buffer.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/component.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/box.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/editor.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/select_list.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/simple_picker.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/spinner.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/text_input.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/components/widget_bridge.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/frame.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/geometry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/input.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/keybinding_hints.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/layout.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/markdown.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/palette.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/service.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/style.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/terminal.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/testing.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/text.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/theme.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widget.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/barchart.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/block.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/calendar.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/canvas.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/chart.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/clear.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/gauge.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/list.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/paragraph.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/scrollbar.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/sparkline.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/symbols.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/table.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/tui/widgets/tabs.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/__init__.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/format.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/http_proxy.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/image_processing.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/utils/secrets.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau_coding_agent.egg-info/entry_points.txt +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau_coding_agent.egg-info/top_level.txt +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_agent_compaction.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_agent_hooks.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_agent_prompt.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_agent_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_ansi.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_ansi_bridge_legacy_image.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_anthropic_tool_history.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_ask_user_extension.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_audio_transcription_apis.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_auth_command.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_auth_manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_auth_storage.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_autocomplete_modifiers.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_branch_navigation.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_branch_summarization.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_builtin_tools.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_builtin_watch.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_cli_inputs.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_cmd_copy.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_command_execution_policy.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_command_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_compaction.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_component_buffer_bridge.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_diff.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_editor_protocol.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_engine_execution.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_engine_length_and_live_tools.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_engine_steering.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_engine_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_escape_behavior.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_extension_api.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_extension_lifecycle.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_footer_model.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_footer_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_fuzzy.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_gemini_generate.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_google_antigravity.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_google_vertex.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_http_proxy.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_image_processing.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_inference_api_text_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_inference_dialect.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_inference_error_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_inference_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_inference_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_keybindings.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_layout_render_cells.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_markdown.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_message_list_frozen.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_message_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_message_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_model_availability.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_model_command.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_model_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_model_selector_modal.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_model_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_oauth_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_package_resources.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_packages_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_peer_extension.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_pkce.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_prompts_expand.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_prompts_loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_prompts_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_provider_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_resource_loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_rpc_mode.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_runtime_sdk.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_scrollback_raw_writes.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_scrollback_terminal.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_secrets.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_select_list_render_cells.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_selector_controller.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_session_manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_session_trust_persist.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_session_types.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_session_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_settings_manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_settings_paths.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_settings_storage.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_settings_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_skills_loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_skills_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_strip_control_chars.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_subagent_context.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_telemetry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_text_input.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_text_input_render_cells.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_text_llm_invoke.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_text_llm_model_resolution.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_theme_loader.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_themes_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_thinking_render.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tool_registry.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tool_render.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tree_branch_restore.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_trust_manager.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_trust_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_capabilities.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_child_rows.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_input.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_layout_sizing.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_public_api.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_renderer.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_select_list.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_theme.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_tui_utils.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_ui_context.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_utils_hashline.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tests/test_version_check.py +0 -0
- {tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/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.6.
|
|
3
|
+
Version: 0.6.9
|
|
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
|
|
@@ -31,9 +31,9 @@ Requires-Dist: grapheme==0.6.0
|
|
|
31
31
|
Requires-Dist: arrow==1.4.0
|
|
32
32
|
Requires-Dist: kiwisolver==1.5.0
|
|
33
33
|
Requires-Dist: tiktoken==0.13.0
|
|
34
|
+
Requires-Dist: rapidfuzz==3.14.3
|
|
34
35
|
Provides-Extra: tools
|
|
35
36
|
Requires-Dist: ripgrep>=14.0.0; extra == "tools"
|
|
36
|
-
Requires-Dist: ast-grep-cli>=0.44.0; extra == "tools"
|
|
37
37
|
Dynamic: license-file
|
|
38
38
|
|
|
39
39
|
<div align="center">
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tau-coding-agent"
|
|
7
|
-
version = "0.6.
|
|
7
|
+
version = "0.6.9"
|
|
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"
|
|
@@ -35,6 +35,7 @@ dependencies = [
|
|
|
35
35
|
"arrow==1.4.0",
|
|
36
36
|
"kiwisolver==1.5.0",
|
|
37
37
|
"tiktoken==0.13.0",
|
|
38
|
+
"rapidfuzz==3.14.3",
|
|
38
39
|
]
|
|
39
40
|
|
|
40
41
|
[project.scripts]
|
|
@@ -74,7 +75,7 @@ tau = [
|
|
|
74
75
|
testpaths = ["tests"]
|
|
75
76
|
|
|
76
77
|
[project.optional-dependencies]
|
|
77
|
-
tools = ["ripgrep>=14.0.0"
|
|
78
|
+
tools = ["ripgrep>=14.0.0"]
|
|
78
79
|
|
|
79
80
|
[dependency-groups]
|
|
80
81
|
dev = [
|
|
@@ -212,10 +212,23 @@ def _detect_machine() -> str:
|
|
|
212
212
|
|
|
213
213
|
|
|
214
214
|
def _detect_shell() -> str:
|
|
215
|
-
"""Detect the user's shell from $SHELL, falling back to common shells on PATH.
|
|
215
|
+
"""Detect the user's shell from $SHELL, falling back to common shells on PATH.
|
|
216
|
+
|
|
217
|
+
On Windows, ``$SHELL`` is a POSIX convention and is essentially never set,
|
|
218
|
+
so this used to fall through to up to 4 ``shutil.which()`` calls, each
|
|
219
|
+
scanning every ``PATH`` entry against every ``PATHEXT`` suffix for shells
|
|
220
|
+
(zsh, fish, sh) that don't exist on Windows. We instead resolve the native
|
|
221
|
+
shell directly from environment variables the OS always sets, with no
|
|
222
|
+
PATH scan.
|
|
223
|
+
"""
|
|
216
224
|
shell = os.environ.get("SHELL", "")
|
|
217
225
|
if shell:
|
|
218
226
|
return Path(shell).name
|
|
227
|
+
if sys.platform == "win32":
|
|
228
|
+
if os.environ.get("PSModulePath"):
|
|
229
|
+
return "powershell"
|
|
230
|
+
comspec = os.environ.get("COMSPEC", "")
|
|
231
|
+
return Path(comspec).stem if comspec else "cmd"
|
|
219
232
|
for candidate in ("bash", "zsh", "fish", "sh"):
|
|
220
233
|
if shutil.which(candidate):
|
|
221
234
|
return candidate
|
|
@@ -1008,6 +1008,16 @@ models = [
|
|
|
1008
1008
|
output=_TEXT,
|
|
1009
1009
|
),
|
|
1010
1010
|
# xAI
|
|
1011
|
+
Model(
|
|
1012
|
+
id="grok-4.5",
|
|
1013
|
+
name="Grok 4.5",
|
|
1014
|
+
provider="xai",
|
|
1015
|
+
cost=Cost(input=2.00, output=6.00),
|
|
1016
|
+
thinking=True,
|
|
1017
|
+
context_window=500_000,
|
|
1018
|
+
input=_TEXT_IMAGE,
|
|
1019
|
+
output=_TEXT,
|
|
1020
|
+
),
|
|
1011
1021
|
Model(
|
|
1012
1022
|
id="grok-4.3",
|
|
1013
1023
|
name="Grok 4.3",
|
|
@@ -1028,6 +1038,42 @@ models = [
|
|
|
1028
1038
|
input=_TEXT_IMAGE,
|
|
1029
1039
|
output=_TEXT,
|
|
1030
1040
|
),
|
|
1041
|
+
# xAI Grok CLI (OAuth — SuperGrok/X Premium+ subscription quota via
|
|
1042
|
+
# cli-chat-proxy.grok.com, the same backend the official Grok CLI uses).
|
|
1043
|
+
# grok-4.3 and grok-build are recognized by the proxy alongside grok-4.5
|
|
1044
|
+
# (confirmed live: HTTP 402 "need subscription" rather than 404/401 when
|
|
1045
|
+
# the account isn't entitled to them) — same models as the "xai" API-key
|
|
1046
|
+
# provider, just billed against subscription quota instead of per-token.
|
|
1047
|
+
Model(
|
|
1048
|
+
id="grok-4.5",
|
|
1049
|
+
name="Grok 4.5",
|
|
1050
|
+
provider="xai-grok",
|
|
1051
|
+
cost=Cost(),
|
|
1052
|
+
thinking=True,
|
|
1053
|
+
context_window=500_000,
|
|
1054
|
+
input=_TEXT_IMAGE,
|
|
1055
|
+
output=_TEXT,
|
|
1056
|
+
),
|
|
1057
|
+
Model(
|
|
1058
|
+
id="grok-4.3",
|
|
1059
|
+
name="Grok 4.3",
|
|
1060
|
+
provider="xai-grok",
|
|
1061
|
+
cost=Cost(),
|
|
1062
|
+
thinking=True,
|
|
1063
|
+
context_window=1_000_000,
|
|
1064
|
+
input=_TEXT_IMAGE,
|
|
1065
|
+
output=_TEXT,
|
|
1066
|
+
),
|
|
1067
|
+
Model(
|
|
1068
|
+
id="grok-build",
|
|
1069
|
+
name="Grok Build",
|
|
1070
|
+
provider="xai-grok",
|
|
1071
|
+
cost=Cost(),
|
|
1072
|
+
thinking=True,
|
|
1073
|
+
context_window=256_000,
|
|
1074
|
+
input=_TEXT_IMAGE,
|
|
1075
|
+
output=_TEXT,
|
|
1076
|
+
),
|
|
1031
1077
|
# AWS Bedrock
|
|
1032
1078
|
Model(
|
|
1033
1079
|
id="openai.gpt-oss-120b",
|
|
@@ -1552,7 +1598,8 @@ models = [
|
|
|
1552
1598
|
input=_TEXT,
|
|
1553
1599
|
output=_TEXT,
|
|
1554
1600
|
),
|
|
1555
|
-
# Mistral
|
|
1601
|
+
# Mistral. Magistral (reasoning-only line) is deprecated — Medium 3.5 and
|
|
1602
|
+
# Small 4 absorbed its reasoning mode behind the reasoning_effort param.
|
|
1556
1603
|
Model(
|
|
1557
1604
|
id="mistral-large-latest",
|
|
1558
1605
|
name="Mistral Large 3",
|
|
@@ -1566,8 +1613,9 @@ models = [
|
|
|
1566
1613
|
id="mistral-medium-latest",
|
|
1567
1614
|
name="Mistral Medium 3.5",
|
|
1568
1615
|
provider="mistral",
|
|
1569
|
-
cost=Cost(input=
|
|
1570
|
-
|
|
1616
|
+
cost=Cost(input=1.50, output=7.50),
|
|
1617
|
+
thinking=True,
|
|
1618
|
+
context_window=262_144,
|
|
1571
1619
|
input=_TEXT_IMAGE,
|
|
1572
1620
|
output=_TEXT,
|
|
1573
1621
|
),
|
|
@@ -1575,27 +1623,26 @@ models = [
|
|
|
1575
1623
|
id="mistral-small-latest",
|
|
1576
1624
|
name="Mistral Small 4",
|
|
1577
1625
|
provider="mistral",
|
|
1578
|
-
cost=Cost(input=0.
|
|
1626
|
+
cost=Cost(input=0.15, output=0.60),
|
|
1579
1627
|
thinking=True,
|
|
1580
|
-
context_window=
|
|
1628
|
+
context_window=262_144,
|
|
1581
1629
|
input=_TEXT_IMAGE,
|
|
1582
1630
|
output=_TEXT,
|
|
1583
1631
|
),
|
|
1584
1632
|
Model(
|
|
1585
|
-
id="
|
|
1586
|
-
name="
|
|
1633
|
+
id="devstral-medium-latest",
|
|
1634
|
+
name="Devstral 2",
|
|
1587
1635
|
provider="mistral",
|
|
1588
|
-
cost=Cost(input=
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
input=_TEXT_IMAGE,
|
|
1636
|
+
cost=Cost(input=0.40, output=2.0),
|
|
1637
|
+
context_window=262_144,
|
|
1638
|
+
input=_TEXT,
|
|
1592
1639
|
output=_TEXT,
|
|
1593
1640
|
),
|
|
1594
1641
|
Model(
|
|
1595
|
-
id="devstral-latest",
|
|
1596
|
-
name="Devstral 2",
|
|
1642
|
+
id="devstral-small-latest",
|
|
1643
|
+
name="Devstral Small 2",
|
|
1597
1644
|
provider="mistral",
|
|
1598
|
-
cost=Cost(input=0.
|
|
1645
|
+
cost=Cost(input=0.10, output=0.30),
|
|
1599
1646
|
context_window=262_144,
|
|
1600
1647
|
input=_TEXT,
|
|
1601
1648
|
output=_TEXT,
|
|
@@ -1609,6 +1656,45 @@ models = [
|
|
|
1609
1656
|
input=_TEXT,
|
|
1610
1657
|
output=_TEXT,
|
|
1611
1658
|
),
|
|
1659
|
+
# Labs (free/experimental) — code agent for Lean 4 formal proof engineering
|
|
1660
|
+
# and automated theorem proving, not a general chat model.
|
|
1661
|
+
Model(
|
|
1662
|
+
id="labs-leanstral-1-5",
|
|
1663
|
+
name="Leanstral 1.5",
|
|
1664
|
+
provider="mistral",
|
|
1665
|
+
cost=Cost(),
|
|
1666
|
+
thinking=True,
|
|
1667
|
+
context_window=256_000,
|
|
1668
|
+
input=_TEXT,
|
|
1669
|
+
output=_TEXT,
|
|
1670
|
+
),
|
|
1671
|
+
Model(
|
|
1672
|
+
id="ministral-3-14b-2512",
|
|
1673
|
+
name="Ministral 3 14B",
|
|
1674
|
+
provider="mistral",
|
|
1675
|
+
cost=Cost(input=0.20, output=0.20),
|
|
1676
|
+
context_window=128_000,
|
|
1677
|
+
input=_TEXT_IMAGE,
|
|
1678
|
+
output=_TEXT,
|
|
1679
|
+
),
|
|
1680
|
+
Model(
|
|
1681
|
+
id="ministral-3-8b-2512",
|
|
1682
|
+
name="Ministral 3 8B",
|
|
1683
|
+
provider="mistral",
|
|
1684
|
+
cost=Cost(input=0.15, output=0.15),
|
|
1685
|
+
context_window=128_000,
|
|
1686
|
+
input=_TEXT_IMAGE,
|
|
1687
|
+
output=_TEXT,
|
|
1688
|
+
),
|
|
1689
|
+
Model(
|
|
1690
|
+
id="ministral-3-3b-2512",
|
|
1691
|
+
name="Ministral 3 3B",
|
|
1692
|
+
provider="mistral",
|
|
1693
|
+
cost=Cost(input=0.10, output=0.10),
|
|
1694
|
+
context_window=128_000,
|
|
1695
|
+
input=_TEXT_IMAGE,
|
|
1696
|
+
output=_TEXT,
|
|
1697
|
+
),
|
|
1612
1698
|
# Ollama Cloud (catalog from models.dev / ollama-cloud — https://ollama.com/v1)
|
|
1613
1699
|
Model(
|
|
1614
1700
|
id="cogito-2.1:671b-cloud",
|
|
@@ -4,6 +4,7 @@ from tau.inference.provider.oauth.anthropic_claude_code import AnthropicClaudeCo
|
|
|
4
4
|
from tau.inference.provider.oauth.github_copilot import GitHubCopilotOAuthProvider
|
|
5
5
|
from tau.inference.provider.oauth.google_antigravity import GoogleAntigravityOAuthProvider
|
|
6
6
|
from tau.inference.provider.oauth.openai_codex import OpenAICodexOAuthProvider
|
|
7
|
+
from tau.inference.provider.oauth.xai_grok import XAIGrokOAuthProvider
|
|
7
8
|
from tau.inference.provider.types import APIProvider
|
|
8
9
|
from tau.inference.types import AuthType, LLMOptions
|
|
9
10
|
|
|
@@ -129,6 +130,7 @@ oauth_providers = [
|
|
|
129
130
|
AnthropicClaudeCodeOAuthProvider(),
|
|
130
131
|
GitHubCopilotOAuthProvider(),
|
|
131
132
|
GoogleAntigravityOAuthProvider(),
|
|
133
|
+
XAIGrokOAuthProvider(),
|
|
132
134
|
]
|
|
133
135
|
|
|
134
136
|
providers = api_providers + oauth_providers
|
|
@@ -5,15 +5,18 @@ import logging
|
|
|
5
5
|
import os
|
|
6
6
|
import sys
|
|
7
7
|
from pathlib import Path
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
8
9
|
|
|
9
10
|
import click
|
|
10
11
|
|
|
11
12
|
from tau.console.commands.auth import auth
|
|
12
13
|
from tau.console.commands.packages import install, list_packages, remove
|
|
13
14
|
from tau.console.commands.update import update
|
|
14
|
-
from tau.runtime.service import Runtime
|
|
15
15
|
from tau.settings.paths import get_app_version
|
|
16
16
|
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from tau.runtime.service import Runtime
|
|
19
|
+
|
|
17
20
|
_MODES = ("interactive", "print", "json", "rpc")
|
|
18
21
|
_OUTPUT_FORMATS = ("text", "json")
|
|
19
22
|
|
|
@@ -409,7 +409,11 @@ class ExtensionLoader:
|
|
|
409
409
|
"""Install an extension's declared dependencies, once per dependency set.
|
|
410
410
|
|
|
411
411
|
Runs synchronously (called via ``asyncio.to_thread``) so the blocking
|
|
412
|
-
subprocess install doesn't stall the event loop.
|
|
412
|
+
subprocess install doesn't stall the event loop. A failed install is
|
|
413
|
+
cached too, not just successes — otherwise a dependency that can never
|
|
414
|
+
build on this interpreter (e.g. no wheel for a free-threaded Python
|
|
415
|
+
build, missing compiler) retries the full failing subprocess on every
|
|
416
|
+
single startup instead of failing fast after the first attempt.
|
|
413
417
|
"""
|
|
414
418
|
from tau.packages.manager import PackageManager
|
|
415
419
|
|
|
@@ -424,7 +428,7 @@ class ExtensionLoader:
|
|
|
424
428
|
|
|
425
429
|
digest = hashlib.sha256("\n".join(sorted(deps)).encode("utf-8")).hexdigest()
|
|
426
430
|
cache_file = venv_dir / ".tau_ext_deps.json"
|
|
427
|
-
cache: dict[str,
|
|
431
|
+
cache: dict[str, Any] = {}
|
|
428
432
|
if cache_file.is_file():
|
|
429
433
|
try:
|
|
430
434
|
cache = json.loads(cache_file.read_text(encoding="utf-8"))
|
|
@@ -433,12 +437,29 @@ class ExtensionLoader:
|
|
|
433
437
|
cache = {}
|
|
434
438
|
|
|
435
439
|
key = str(subdir.resolve())
|
|
436
|
-
|
|
437
|
-
|
|
440
|
+
entry = cache.get(key)
|
|
441
|
+
# Older cache files stored the digest directly as a bare string (success-only).
|
|
442
|
+
cached_digest = entry.get("digest") if isinstance(entry, dict) else entry
|
|
443
|
+
if cached_digest == digest:
|
|
444
|
+
if isinstance(entry, dict) and not entry.get("ok", True):
|
|
445
|
+
raise RuntimeError(
|
|
446
|
+
f"Dependencies for extension {subdir.name!r} previously failed to "
|
|
447
|
+
f"install: {entry.get('error', 'unknown error')}"
|
|
448
|
+
)
|
|
449
|
+
add_site_packages_path(pkg_mgr.site_packages())
|
|
450
|
+
return
|
|
451
|
+
|
|
452
|
+
_log.info("Installing dependencies for extension %r: %s", subdir.name, ", ".join(deps))
|
|
453
|
+
try:
|
|
438
454
|
pkg_mgr.install_requirements(deps)
|
|
439
|
-
|
|
455
|
+
except Exception as exc:
|
|
456
|
+
cache[key] = {"digest": digest, "ok": False, "error": str(exc)}
|
|
440
457
|
cache_file.parent.mkdir(parents=True, exist_ok=True)
|
|
441
458
|
cache_file.write_text(json.dumps(cache, indent=2), encoding="utf-8")
|
|
459
|
+
raise
|
|
460
|
+
cache[key] = {"digest": digest, "ok": True}
|
|
461
|
+
cache_file.parent.mkdir(parents=True, exist_ok=True)
|
|
462
|
+
cache_file.write_text(json.dumps(cache, indent=2), encoding="utf-8")
|
|
442
463
|
|
|
443
464
|
add_site_packages_path(pkg_mgr.site_packages())
|
|
444
465
|
|
|
@@ -22,6 +22,7 @@ LLM_APIS: list[tuple[str, str]] = [
|
|
|
22
22
|
("google_vertex", "tau.inference.api.text.google_vertex:GoogleVertexAPI"),
|
|
23
23
|
("anthropic_vertex", "tau.inference.api.text.anthropic_vertex:AnthropicVertexAPI"),
|
|
24
24
|
("openai_vertex", "tau.inference.api.text.openai_vertex:OpenAIVertexAPI"),
|
|
25
|
+
("xai", "tau.inference.api.text.xai_responses:XAIAPIResponses"),
|
|
25
26
|
]
|
|
26
27
|
|
|
27
28
|
# Backward-compat alias
|
{tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/api/text/openai_responses.py
RENAMED
|
@@ -88,15 +88,9 @@ def _content_to_openai(content_items: list, supports_thinking: bool = True) -> l
|
|
|
88
88
|
else f"data:{mime or 'image/png'};base64,{b64}"
|
|
89
89
|
)
|
|
90
90
|
other_parts.append({"type": "input_image", "image_url": url})
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"type": "function_call",
|
|
95
|
-
"call_id": item.id,
|
|
96
|
-
"name": item.name,
|
|
97
|
-
"arguments": json.dumps(item.args),
|
|
98
|
-
}
|
|
99
|
-
)
|
|
91
|
+
# ToolCallContent is handled by _messages_to_input, which hoists
|
|
92
|
+
# it out to a top-level function_call item — see the comment
|
|
93
|
+
# on the supports_thinking=True branch below.
|
|
100
94
|
parts: list[dict[str, Any]] = []
|
|
101
95
|
if thinking_parts or text_parts:
|
|
102
96
|
merged = "\n".join(thinking_parts + text_parts)
|
|
@@ -104,6 +98,11 @@ def _content_to_openai(content_items: list, supports_thinking: bool = True) -> l
|
|
|
104
98
|
parts.extend(other_parts)
|
|
105
99
|
return parts
|
|
106
100
|
|
|
101
|
+
# ThinkingContent and ToolCallContent are intentionally not handled here:
|
|
102
|
+
# the Responses API has no "thinking" content-part type (reasoning is
|
|
103
|
+
# ephemeral and isn't replayed on later turns — see openai_codex_responses.py),
|
|
104
|
+
# and function_call is a top-level input item, not nested inside a
|
|
105
|
+
# message's content array. _messages_to_input hoists it out separately.
|
|
107
106
|
parts = []
|
|
108
107
|
for item in content_items:
|
|
109
108
|
match item:
|
|
@@ -117,23 +116,6 @@ def _content_to_openai(content_items: list, supports_thinking: bool = True) -> l
|
|
|
117
116
|
else f"data:{mime or 'image/png'};base64,{b64}"
|
|
118
117
|
)
|
|
119
118
|
parts.append({"type": "input_image", "image_url": url})
|
|
120
|
-
case ThinkingContent():
|
|
121
|
-
parts.append(
|
|
122
|
-
{
|
|
123
|
-
"type": "thinking",
|
|
124
|
-
"thinking": item.content,
|
|
125
|
-
"signature": item.signature,
|
|
126
|
-
}
|
|
127
|
-
)
|
|
128
|
-
case ToolCallContent():
|
|
129
|
-
parts.append(
|
|
130
|
-
{
|
|
131
|
-
"type": "function_call",
|
|
132
|
-
"call_id": item.id,
|
|
133
|
-
"name": item.name,
|
|
134
|
-
"arguments": json.dumps(item.args),
|
|
135
|
-
}
|
|
136
|
-
)
|
|
137
119
|
return parts
|
|
138
120
|
|
|
139
121
|
|
|
@@ -167,6 +149,19 @@ def _messages_to_input(
|
|
|
167
149
|
parts = _content_to_openai(msg.contents, supports_thinking=supports_thinking)
|
|
168
150
|
if parts:
|
|
169
151
|
input_items.append({"role": role, "content": parts})
|
|
152
|
+
# function_call is a top-level input item in the Responses API,
|
|
153
|
+
# not nested inside a message's content array. It must precede
|
|
154
|
+
# its matching function_call_output (emitted by the ToolMessage).
|
|
155
|
+
for content in msg.contents:
|
|
156
|
+
if isinstance(content, ToolCallContent):
|
|
157
|
+
input_items.append(
|
|
158
|
+
{
|
|
159
|
+
"type": "function_call",
|
|
160
|
+
"call_id": content.id,
|
|
161
|
+
"name": content.name,
|
|
162
|
+
"arguments": json.dumps(content.args),
|
|
163
|
+
}
|
|
164
|
+
)
|
|
170
165
|
|
|
171
166
|
return instructions, input_items
|
|
172
167
|
|
|
@@ -258,7 +253,12 @@ class OpenAIResponsesAPI(BaseAPI):
|
|
|
258
253
|
if modified is not None:
|
|
259
254
|
params = modified
|
|
260
255
|
|
|
261
|
-
|
|
256
|
+
# Keyed by the response item's own id (event.item_id in the arguments
|
|
257
|
+
# delta/done events), mapping to (call_id, name). item_id and call_id
|
|
258
|
+
# are two distinct identifiers — OpenAI's backend happens to make them
|
|
259
|
+
# equal, but other Responses-API-compatible backends (e.g. xAI's Grok
|
|
260
|
+
# CLI proxy) don't, so they must be tracked separately.
|
|
261
|
+
tool_calls: dict[str, tuple[str, str]] = {}
|
|
262
262
|
_input_tokens = 0
|
|
263
263
|
_output_tokens = 0
|
|
264
264
|
_cache_read_tokens = 0
|
|
@@ -279,7 +279,7 @@ class OpenAIResponsesAPI(BaseAPI):
|
|
|
279
279
|
elif item.type == "reasoning":
|
|
280
280
|
yield ThinkingStartEvent(thinking=None)
|
|
281
281
|
elif item.type == "function_call":
|
|
282
|
-
|
|
282
|
+
tool_calls[item.id] = (item.call_id, item.name) # type: ignore[union-attr,index]
|
|
283
283
|
yield ToolCallStartEvent(
|
|
284
284
|
tool_call=ToolCallContent(id=item.call_id, name=item.name) # type: ignore[union-attr,arg-type]
|
|
285
285
|
)
|
|
@@ -297,18 +297,16 @@ class OpenAIResponsesAPI(BaseAPI):
|
|
|
297
297
|
yield ThinkingEndEvent(thinking=ThinkingContent(content=event.text)) # type: ignore[union-attr]
|
|
298
298
|
|
|
299
299
|
elif etype == "response.function_call_arguments.delta":
|
|
300
|
-
call_id = event.item_id # type: ignore[union-attr]
|
|
300
|
+
call_id, _ = tool_calls.get(event.item_id, (event.item_id, "")) # type: ignore[union-attr]
|
|
301
301
|
yield ToolCallDeltaEvent(tool_call=ToolCallContent(id=call_id))
|
|
302
302
|
|
|
303
303
|
elif etype == "response.function_call_arguments.done":
|
|
304
|
-
call_id = event.item_id # type: ignore[union-attr]
|
|
304
|
+
call_id, name = tool_calls.get(event.item_id, (event.item_id, "")) # type: ignore[union-attr]
|
|
305
305
|
args_str = event.arguments.strip() # type: ignore[union-attr]
|
|
306
306
|
args = parse_tool_args(args_str)
|
|
307
307
|
|
|
308
308
|
yield ToolCallEndEvent(
|
|
309
|
-
tool_call=ToolCallContent(
|
|
310
|
-
id=call_id, name=tool_names.get(call_id, ""), args=args
|
|
311
|
-
)
|
|
309
|
+
tool_call=ToolCallContent(id=call_id, name=name, args=args)
|
|
312
310
|
)
|
|
313
311
|
|
|
314
312
|
elif etype == "response.done":
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
xAI Grok CLI API — thin wrapper around the OpenAI Responses API adapter,
|
|
3
|
+
pointed at the Grok CLI's cli-chat-proxy.grok.com backend.
|
|
4
|
+
|
|
5
|
+
That proxy gatekeeps on client-identity headers (confirmed live: a request
|
|
6
|
+
without ``x-grok-client-version`` is rejected with HTTP 426 "outdated
|
|
7
|
+
version"), which the plain OpenAI Responses client doesn't send.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from tau.inference.api.text.openai_responses import OpenAIResponsesAPI
|
|
13
|
+
from tau.inference.types import LLMOptions
|
|
14
|
+
|
|
15
|
+
__all__ = ["XAIAPIResponses"]
|
|
16
|
+
|
|
17
|
+
_DEFAULT_BASE_URL = "https://cli-chat-proxy.grok.com/v1"
|
|
18
|
+
_CLIENT_VERSION = "0.2.93"
|
|
19
|
+
|
|
20
|
+
_GROK_CLI_HEADERS = {
|
|
21
|
+
"x-grok-client-identifier": "grok-cli",
|
|
22
|
+
"x-grok-client-version": _CLIENT_VERSION,
|
|
23
|
+
"x-xai-token-auth": "xai-grok-cli",
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class XAIAPIResponses(OpenAIResponsesAPI):
|
|
28
|
+
def __init__(self, options: LLMOptions) -> None:
|
|
29
|
+
options.base_url = options.base_url or _DEFAULT_BASE_URL
|
|
30
|
+
options.headers = {**_GROK_CLI_HEADERS, **(options.headers or {})}
|
|
31
|
+
super().__init__(options)
|
|
@@ -17,6 +17,7 @@ if TYPE_CHECKING:
|
|
|
17
17
|
)
|
|
18
18
|
from tau.inference.provider.oauth.google_antigravity import GoogleAntigravityOAuthProvider
|
|
19
19
|
from tau.inference.provider.oauth.openai_codex import OpenAICodexOAuthProvider
|
|
20
|
+
from tau.inference.provider.oauth.xai_grok import XAIGrokOAuthProvider
|
|
20
21
|
|
|
21
22
|
__all__ = [
|
|
22
23
|
"OAuthProvider",
|
|
@@ -30,6 +31,7 @@ __all__ = [
|
|
|
30
31
|
"GitHubCopilotOAuthProvider",
|
|
31
32
|
"get_copilot_base_url",
|
|
32
33
|
"GoogleAntigravityOAuthProvider",
|
|
34
|
+
"XAIGrokOAuthProvider",
|
|
33
35
|
]
|
|
34
36
|
|
|
35
37
|
|
|
@@ -57,4 +59,8 @@ def __getattr__(name: str):
|
|
|
57
59
|
from tau.inference.provider.oauth.google_antigravity import GoogleAntigravityOAuthProvider
|
|
58
60
|
|
|
59
61
|
return GoogleAntigravityOAuthProvider
|
|
62
|
+
if name == "XAIGrokOAuthProvider":
|
|
63
|
+
from tau.inference.provider.oauth.xai_grok import XAIGrokOAuthProvider
|
|
64
|
+
|
|
65
|
+
return XAIGrokOAuthProvider
|
|
60
66
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
@@ -308,11 +308,9 @@ class AnthropicClaudeCodeOAuthProvider(OAuthProvider):
|
|
|
308
308
|
pass
|
|
309
309
|
|
|
310
310
|
@property
|
|
311
|
-
def api(self):
|
|
312
|
-
"""
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return AnthropicClaudeCodeAPI
|
|
311
|
+
def api(self) -> str:
|
|
312
|
+
"""Registry key for the API class; resolved (and the SDK imported) lazily."""
|
|
313
|
+
return "anthropic_claude_code"
|
|
316
314
|
|
|
317
315
|
async def validate(
|
|
318
316
|
self, credential: OAuthCredential, signal: AbortSignal | None = None
|
{tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/github_copilot.py
RENAMED
|
@@ -353,8 +353,6 @@ class GitHubCopilotOAuthProvider(OAuthProvider):
|
|
|
353
353
|
return not (signal and signal.is_set())
|
|
354
354
|
|
|
355
355
|
@property
|
|
356
|
-
def api(self):
|
|
357
|
-
"""
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
return GitHubCopilotChatAPI
|
|
356
|
+
def api(self) -> str:
|
|
357
|
+
"""Registry key for the API class; resolved (and the SDK imported) lazily."""
|
|
358
|
+
return "github_copilot_chat"
|
{tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/google_antigravity.py
RENAMED
|
@@ -277,11 +277,9 @@ class GoogleAntigravityOAuthProvider(OAuthProvider):
|
|
|
277
277
|
pass
|
|
278
278
|
|
|
279
279
|
@property
|
|
280
|
-
def api(self):
|
|
281
|
-
"""
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
return GoogleAntigravityAPI
|
|
280
|
+
def api(self) -> str:
|
|
281
|
+
"""Registry key for the API class; resolved (and the SDK imported) lazily."""
|
|
282
|
+
return "google_antigravity"
|
|
285
283
|
|
|
286
284
|
async def validate(
|
|
287
285
|
self, credential: OAuthCredential, signal: AbortSignal | None = None
|
{tau_coding_agent-0.6.7 → tau_coding_agent-0.6.9}/tau/inference/provider/oauth/openai_codex.py
RENAMED
|
@@ -326,11 +326,9 @@ class OpenAICodexOAuthProvider(OAuthProvider):
|
|
|
326
326
|
await asyncio.to_thread(_revoke_token_sync, credential.refresh)
|
|
327
327
|
|
|
328
328
|
@property
|
|
329
|
-
def api(self):
|
|
330
|
-
"""
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
return OpenAICodexResponsesAPI
|
|
329
|
+
def api(self) -> str:
|
|
330
|
+
"""Registry key for the API class; resolved (and the SDK imported) lazily."""
|
|
331
|
+
return "openai_codex_responses"
|
|
334
332
|
|
|
335
333
|
async def validate(
|
|
336
334
|
self, credential: OAuthCredential, signal: AbortSignal | None = None
|