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