tau-coding-agent 0.6.8__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tau_coding_agent-0.6.8/tau_coding_agent.egg-info → tau_coding_agent-0.7.0}/PKG-INFO +2 -2
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/pyproject.toml +3 -2
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/prompt/builder.py +14 -1
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/__init__.py +8 -1
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/cli.py +4 -1
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/loader.py +26 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/anthropic_claude_code.py +3 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/github_copilot.py +3 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/google_antigravity.py +3 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/openai_codex.py +3 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/xai_grok.py +3 -5
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/types.py +4 -2
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/utils.py +19 -10
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/version_check.py +24 -11
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0/tau_coding_agent.egg-info}/PKG-INFO +2 -2
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau_coding_agent.egg-info/requires.txt +1 -1
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/LICENSE +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/MANIFEST.in +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/README.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/architecture.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/auth.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/cli-reference.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/creating-tools.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/development.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/docs.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/engine.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/extension-settings.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/extensions.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/http-proxy.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/index.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/inference-providers.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/inference.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/installation.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/keybindings.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/messages.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/project-context.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/project-structure.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/prompts.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/python-api.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/quickstart.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/sessions.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/settings.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/skills.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/themes.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/tools.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/tui.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/docs/usage.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/setup.cfg +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/embedded.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/prompt/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/prompt/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/agent/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/auth/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/auth/storage.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/auth/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/commands/clear.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/commands/compact.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/commands/reload.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/commands/session.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/component.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/schema.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/tool.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/btw/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/footer/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/footer/git.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/footer/model.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/footer/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/header/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/loop/README.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/loop/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/loop/dispatch.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/loop/duration.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/loop/state.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/subagent_schema.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/todo_schema.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/todo_tool.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/watch/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/base.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/tools/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/tools/fetch.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/tools/search.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/manifest.json +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/model.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/runner.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/workflow/store.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/models/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/models/audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/models/image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/models/text.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/models/video.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/commit.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/docs.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/explain.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/fix.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/refactor.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/review.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/prompts/test.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/providers/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/providers/audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/providers/image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/providers/text.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/providers/video.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/skills/code-review/SKILL.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/skills/debug/SKILL.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/skills/git-commit/SKILL.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/ayu-dark.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/catppuccin.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/dark.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/dracula.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/everforest.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/gruvbox.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/horizon.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/kanagawa.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/light.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/material-ocean.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/monokai.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/night-owl.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/nord.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/one-dark.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/rose-pine.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/solarized-dark.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/themes/tokyo-night.yaml +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/edit.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/glob.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/grep.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/ls.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/read.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/terminal.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/tools/write.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/commands/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/commands/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/commands/auth.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/commands/packages.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/console/commands/update.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/core/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/core/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/engine/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/engine/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/engine/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/api.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/context.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/runtime.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/extensions/settings.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/engine.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/inference.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/runtime.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/session.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/tui.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/hooks/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/base.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/builtins.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/gemini_audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/openai_audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/sarvam_audio.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/audio/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/availability.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/base.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/builtins.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/gemini_image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/openai_image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/openrouter.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/image/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/anthropic_claude_code.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/anthropic_messages.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/anthropic_vertex.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/base.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/builtins.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/dialect.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/gemini_generate.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/github_copilot_chat.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/google_antigravity.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/google_vertex.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/mistral_chat.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/ollama_chat.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/openai_codex_responses.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/openai_completions.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/openai_responses.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/openai_vertex.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/text/xai_responses.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/base.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/builtins.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/fal_video.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/openrouter_video.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/api/video/zai_video.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/model/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/model/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/model/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/pkce.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/oauth/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/provider/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/inference/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/message/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/message/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/message/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/agent_hooks.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/app.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/appearance.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/auth.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/context.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/extensions.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/misc.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/model.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/commands/session.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/command_palette.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/config_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/extension_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/file_picker.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/layout.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/message_list.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/model_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/oauth_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/overlays.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/selector_controller.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/session_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/settings_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/theme_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/thinking_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/tree_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/trust_screen.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/components/voice_selector.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/input_handler.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/interactive/ui_context.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/print/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/rpc/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/rpc/mode.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/modes/rpc/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/packages/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/packages/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/packages/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/packages/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/prompts/expand.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/prompts/loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/prompts/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/prompts/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/resources/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/resources/loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/resources/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/runtime/dependencies.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/runtime/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/runtime/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/session/branch_summarization.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/session/compaction.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/session/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/session/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/session/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/settings/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/settings/paths.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/settings/storage.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/settings/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/settings/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/skills/loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/skills/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/skills/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/telemetry/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/telemetry/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/telemetry/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/themes/loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/themes/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/themes/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tool/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tool/registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tool/render.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tool/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/trust/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/trust/manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/trust/types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/trust/utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/ansi_bridge.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/autocomplete.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/backend.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/buffer.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/component.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/box.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/editor.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/select_list.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/simple_picker.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/spinner.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/text_input.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/components/widget_bridge.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/frame.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/geometry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/input.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/keybinding_hints.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/layout.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/markdown.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/palette.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/service.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/style.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/terminal.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/testing.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/text.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/theme.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widget.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/barchart.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/block.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/calendar.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/canvas.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/chart.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/clear.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/gauge.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/list.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/paragraph.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/scrollbar.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/sparkline.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/symbols.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/table.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/tui/widgets/tabs.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/__init__.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/format.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/http_proxy.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/image_processing.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/utils/secrets.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau_coding_agent.egg-info/SOURCES.txt +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau_coding_agent.egg-info/entry_points.txt +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau_coding_agent.egg-info/top_level.txt +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_agent_compaction.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_agent_hooks.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_agent_prompt.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_agent_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_ansi.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_ansi_bridge_legacy_image.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_anthropic_tool_history.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_ask_user_extension.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_audio_transcription_apis.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_auth_command.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_auth_manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_auth_storage.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_autocomplete_modifiers.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_branch_navigation.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_branch_summarization.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_builtin_tools.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_builtin_watch.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_cli_inputs.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_cmd_copy.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_command_execution_policy.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_command_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_compaction.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_component_buffer_bridge.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_diff.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_editor_protocol.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_engine_execution.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_engine_length_and_live_tools.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_engine_steering.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_engine_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_escape_behavior.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_extension_api.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_extension_lifecycle.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_footer_model.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_footer_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_fuzzy.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_gemini_generate.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_google_antigravity.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_google_vertex.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_http_proxy.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_image_processing.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_inference_api_text_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_inference_dialect.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_inference_error_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_inference_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_inference_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_keybindings.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_layout_render_cells.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_markdown.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_message_list_frozen.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_message_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_message_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_model_availability.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_model_command.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_model_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_model_selector_modal.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_model_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_oauth_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_package_resources.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_packages_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_peer_extension.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_pkce.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_prompts_expand.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_prompts_loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_prompts_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_provider_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_resource_loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_rpc_mode.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_runtime_sdk.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_scrollback_raw_writes.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_scrollback_terminal.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_secrets.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_select_list_render_cells.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_selector_controller.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_session_manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_session_trust_persist.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_session_types.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_session_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_settings_manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_settings_paths.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_settings_storage.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_settings_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_skills_loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_skills_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_strip_control_chars.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_subagent_context.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_telemetry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_text_input.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_text_input_render_cells.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_text_llm_invoke.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_text_llm_model_resolution.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_theme_loader.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_themes_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_thinking_render.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tool_registry.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tool_render.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tree_branch_restore.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_trust_manager.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_trust_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_capabilities.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_child_rows.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_input.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_layout_sizing.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_public_api.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_renderer.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_select_list.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_theme.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_tui_utils.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_ui_context.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_utils_hashline.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_version_check.py +0 -0
- {tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tests/test_voice_selector.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tau-coding-agent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -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.
|
|
7
|
+
version = "0.7.0"
|
|
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
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/__init__.py
RENAMED
|
@@ -74,7 +74,14 @@ def register(tau: ExtensionAPI) -> None:
|
|
|
74
74
|
asyncio.ensure_future(_prewarm())
|
|
75
75
|
|
|
76
76
|
@tau.on("session_shutdown")
|
|
77
|
-
async def
|
|
77
|
+
async def _on_session_shutdown(_event: Any, _ctx: ExtensionContext) -> None:
|
|
78
|
+
await manager.stop()
|
|
79
|
+
|
|
80
|
+
@tau.on("runtime_stop")
|
|
81
|
+
async def _on_runtime_stop(_event: Any, _ctx: ExtensionContext) -> None:
|
|
82
|
+
# session_shutdown only fires on session transitions (new/resume/clone),
|
|
83
|
+
# not on actual process exit, so the microVM would otherwise keep running
|
|
84
|
+
# until its own idle_timeout — reap it here too, same as the lsp extension.
|
|
78
85
|
await manager.stop()
|
|
79
86
|
|
|
80
87
|
async def cmd_sandbox(ctx: ExtensionContext, args: list[str]) -> None:
|
|
@@ -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
|
|
|
@@ -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.8 → tau_coding_agent-0.7.0}/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.8 → tau_coding_agent-0.7.0}/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.8 → tau_coding_agent-0.7.0}/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
|
|
@@ -269,11 +269,9 @@ class XAIGrokOAuthProvider(OAuthProvider):
|
|
|
269
269
|
await asyncio.to_thread(_revoke_token_sync, credential.refresh)
|
|
270
270
|
|
|
271
271
|
@property
|
|
272
|
-
def api(self):
|
|
273
|
-
"""
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
return XAIAPIResponses
|
|
272
|
+
def api(self) -> str:
|
|
273
|
+
"""Registry key for the API class; resolved (and the SDK imported) lazily."""
|
|
274
|
+
return "xai"
|
|
277
275
|
|
|
278
276
|
async def validate(
|
|
279
277
|
self, credential: OAuthCredential, signal: AbortSignal | None = None
|
|
@@ -32,8 +32,10 @@ class OAuthProvider(ABC):
|
|
|
32
32
|
|
|
33
33
|
@property
|
|
34
34
|
@abstractmethod
|
|
35
|
-
def api(self) -> type[BaseLLMAPI]:
|
|
36
|
-
"""Return the LLM API class for this provider
|
|
35
|
+
def api(self) -> str | type[BaseLLMAPI]:
|
|
36
|
+
"""Return the LLM API class for this provider, or a lazy 'registry-key' /
|
|
37
|
+
'module:ClassName' reference so the provider SDK isn't imported until
|
|
38
|
+
the API is actually resolved (first request)."""
|
|
37
39
|
...
|
|
38
40
|
|
|
39
41
|
@abstractmethod
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import difflib
|
|
4
3
|
import re
|
|
5
4
|
import subprocess
|
|
6
5
|
import unicodedata
|
|
@@ -633,24 +632,34 @@ def _is_diff(text: str) -> bool:
|
|
|
633
632
|
|
|
634
633
|
|
|
635
634
|
def _word_diff(old: str, new: str, inverse: Callable[[str], str]) -> tuple[str, str]:
|
|
636
|
-
"""Highlight changed words with inverse video.
|
|
635
|
+
"""Highlight changed words with inverse video.
|
|
636
|
+
|
|
637
|
+
Uses rapidfuzz's C++ Indel opcodes instead of difflib.SequenceMatcher —
|
|
638
|
+
difflib has pathological worst-case slowness on some inputs, and
|
|
639
|
+
rapidfuzz is meaningfully faster on long lines with the same
|
|
640
|
+
equal/insert/delete opcode semantics (Indel never emits "replace"; a
|
|
641
|
+
substitution surfaces as an adjacent delete+insert pair instead, which
|
|
642
|
+
renders identically here since each tag only ever touches one side).
|
|
643
|
+
"""
|
|
644
|
+
from rapidfuzz.distance import Indel
|
|
645
|
+
|
|
637
646
|
old_words = re.split(r"(\s+)", old)
|
|
638
647
|
new_words = re.split(r"(\s+)", new)
|
|
639
|
-
|
|
648
|
+
opcodes = Indel.opcodes(old_words, new_words)
|
|
640
649
|
|
|
641
650
|
old_out, new_out = [], []
|
|
642
|
-
for
|
|
643
|
-
old_chunk = "".join(old_words[
|
|
644
|
-
new_chunk = "".join(new_words[
|
|
645
|
-
if tag == "equal":
|
|
651
|
+
for op in opcodes:
|
|
652
|
+
old_chunk = "".join(old_words[op.src_start : op.src_end])
|
|
653
|
+
new_chunk = "".join(new_words[op.dest_start : op.dest_end])
|
|
654
|
+
if op.tag == "equal":
|
|
646
655
|
old_out.append(old_chunk)
|
|
647
656
|
new_out.append(new_chunk)
|
|
648
|
-
elif tag == "replace":
|
|
657
|
+
elif op.tag == "replace":
|
|
649
658
|
old_out.append(inverse(old_chunk) if old_chunk.strip() else old_chunk)
|
|
650
659
|
new_out.append(inverse(new_chunk) if new_chunk.strip() else new_chunk)
|
|
651
|
-
elif tag == "delete":
|
|
660
|
+
elif op.tag == "delete":
|
|
652
661
|
old_out.append(inverse(old_chunk) if old_chunk.strip() else old_chunk)
|
|
653
|
-
elif tag == "insert":
|
|
662
|
+
elif op.tag == "insert":
|
|
654
663
|
new_out.append(inverse(new_chunk) if new_chunk.strip() else new_chunk)
|
|
655
664
|
|
|
656
665
|
return "".join(old_out), "".join(new_out)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import asyncio
|
|
3
4
|
import contextlib
|
|
4
5
|
|
|
5
6
|
_TIMEOUT = 5.0
|
|
@@ -42,19 +43,31 @@ def _is_newer(latest: str, current: str) -> bool:
|
|
|
42
43
|
return False
|
|
43
44
|
|
|
44
45
|
|
|
46
|
+
def _fetch_latest_version_sync() -> str:
|
|
47
|
+
"""Blocking GET against PyPI; run off the event loop (see ``check_for_new_version``)."""
|
|
48
|
+
import httpx
|
|
49
|
+
|
|
50
|
+
with httpx.Client(timeout=_TIMEOUT) as client:
|
|
51
|
+
resp = client.get(_pypi_url(), headers={"Accept": "application/json"})
|
|
52
|
+
resp.raise_for_status()
|
|
53
|
+
data = resp.json()
|
|
54
|
+
return data.get("info", {}).get("version", "")
|
|
55
|
+
|
|
56
|
+
|
|
45
57
|
async def check_for_new_version(current_version: str) -> str | None:
|
|
46
|
-
"""Return the latest PyPI version string if newer than current, else None.
|
|
58
|
+
"""Return the latest PyPI version string if newer than current, else None.
|
|
59
|
+
|
|
60
|
+
Runs on a worker thread: building an httpx client constructs an SSL
|
|
61
|
+
context, which on Windows enumerates the system certificate store and can
|
|
62
|
+
take several hundred ms of synchronous CPU work. Doing that inline on the
|
|
63
|
+
event loop — even though this whole check is itself a backgrounded,
|
|
64
|
+
unawaited task — would still stall the just-launched TUI's render loop for
|
|
65
|
+
that duration, since both share the same thread.
|
|
66
|
+
"""
|
|
47
67
|
try:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
resp = await client.get(_pypi_url(), headers={"Accept": "application/json"})
|
|
52
|
-
if not resp.is_success:
|
|
53
|
-
return None
|
|
54
|
-
data = resp.json()
|
|
55
|
-
latest = data.get("info", {}).get("version", "")
|
|
56
|
-
if latest and _is_newer(latest, current_version):
|
|
57
|
-
return latest
|
|
68
|
+
latest = await asyncio.to_thread(_fetch_latest_version_sync)
|
|
69
|
+
if latest and _is_newer(latest, current_version):
|
|
70
|
+
return latest
|
|
58
71
|
except Exception:
|
|
59
72
|
return None
|
|
60
73
|
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tau-coding-agent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -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">
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/__init__.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/component.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/manifest.json
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/ask_user/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/footer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/header/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/manager.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/manifest.json
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/sandbox/sandbox_tool.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/oracle.md
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/planner.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/scout.md
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents/worker.md
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/agents.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/manifest.json
RENAMED
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/subagent/subagent_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/manifest.json
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/todo/todo_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/__init__.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/base.py
RENAMED
|
File without changes
|
{tau_coding_agent-0.6.8 → tau_coding_agent-0.7.0}/tau/builtins/extensions/web/engines/ddgs_engine.py
RENAMED
|
File without changes
|