tau-coding-agent 0.4.8__tar.gz → 0.5.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.
Files changed (374) hide show
  1. {tau_coding_agent-0.4.8/tau_coding_agent.egg-info → tau_coding_agent-0.5.0}/PKG-INFO +6 -6
  2. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/README.md +5 -5
  3. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/architecture.md +1 -1
  4. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/cli-reference.md +2 -2
  5. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/development.md +13 -26
  6. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/extension-settings.md +1 -1
  7. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/extensions.md +1 -1
  8. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/http-proxy.md +9 -6
  9. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/inference-providers.md +11 -22
  10. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/messages.md +1 -1
  11. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/project-structure.md +6 -6
  12. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/python-api.md +1 -1
  13. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/quickstart.md +3 -0
  14. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/sessions.md +9 -7
  15. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/settings.md +23 -0
  16. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/skills.md +11 -0
  17. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/usage.md +6 -0
  18. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/pyproject.toml +1 -1
  19. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/models/audio.py +10 -0
  20. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/models/image.py +19 -0
  21. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/models/text.py +228 -0
  22. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/models/video.py +65 -0
  23. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/providers/audio.py +6 -0
  24. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/providers/image.py +6 -0
  25. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/providers/text.py +6 -0
  26. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/providers/video.py +6 -0
  27. tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/LICENSE.txt +13 -0
  28. tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/SKILL.md +153 -0
  29. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/builtins.py +1 -0
  30. tau_coding_agent-0.5.0/tau/inference/api/video/zai_video.py +139 -0
  31. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/appearance.py +8 -0
  32. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/runtime/service.py +18 -0
  33. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/settings/manager.py +15 -0
  34. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/settings/types.py +1 -0
  35. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/markdown.py +33 -9
  36. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/tui.py +15 -3
  37. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/utils.py +40 -4
  38. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/utils/http_proxy.py +4 -2
  39. tau_coding_agent-0.5.0/tau/utils/telemetry.py +42 -0
  40. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0/tau_coding_agent.egg-info}/PKG-INFO +6 -6
  41. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/SOURCES.txt +5 -0
  42. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_markdown.py +30 -14
  43. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_settings_manager.py +7 -0
  44. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_skills_registry.py +14 -0
  45. tau_coding_agent-0.5.0/tests/test_telemetry.py +75 -0
  46. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_renderer.py +33 -0
  47. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/LICENSE +0 -0
  48. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/MANIFEST.in +0 -0
  49. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/auth.md +0 -0
  50. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/docs.json +0 -0
  51. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/index.md +0 -0
  52. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/installation.md +0 -0
  53. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/keybindings.md +0 -0
  54. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/project-context.md +0 -0
  55. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/prompts.md +0 -0
  56. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/themes.md +0 -0
  57. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/docs/tools.md +0 -0
  58. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/setup.cfg +0 -0
  59. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/__init__.py +0 -0
  60. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/__init__.py +0 -0
  61. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/prompt/__init__.py +0 -0
  62. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/prompt/builder.py +0 -0
  63. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/prompt/types.py +0 -0
  64. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/service.py +0 -0
  65. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/agent/types.py +0 -0
  66. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/auth/manager.py +0 -0
  67. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/auth/storage.py +0 -0
  68. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/auth/types.py +0 -0
  69. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/__init__.py +0 -0
  70. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/commands/__init__.py +0 -0
  71. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/commands/clear.py +0 -0
  72. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/commands/compact.py +0 -0
  73. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/commands/reload.py +0 -0
  74. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/commands/session.py +0 -0
  75. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/btw/__init__.py +0 -0
  76. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/__init__.py +0 -0
  77. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/git.py +0 -0
  78. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/model.py +0 -0
  79. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/utils.py +0 -0
  80. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/header/__init__.py +0 -0
  81. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/extensions/watch/__init__.py +0 -0
  82. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/models/__init__.py +0 -0
  83. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/commit.md +0 -0
  84. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/docs.md +0 -0
  85. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/explain.md +0 -0
  86. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/fix.md +0 -0
  87. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/refactor.md +0 -0
  88. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/review.md +0 -0
  89. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/prompts/test.md +0 -0
  90. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/providers/__init__.py +0 -0
  91. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/skills/code-review/SKILL.md +0 -0
  92. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/skills/debug/SKILL.md +0 -0
  93. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/skills/git-commit/SKILL.md +0 -0
  94. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/themes/dark.yaml +0 -0
  95. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/themes/light.yaml +0 -0
  96. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/__init__.py +0 -0
  97. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/edit.py +0 -0
  98. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/glob.py +0 -0
  99. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/grep.py +0 -0
  100. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/ls.py +0 -0
  101. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/read.py +0 -0
  102. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/terminal.py +0 -0
  103. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/utils.py +0 -0
  104. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/builtins/tools/write.py +0 -0
  105. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/commands/__init__.py +0 -0
  106. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/commands/registry.py +0 -0
  107. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/commands/types.py +0 -0
  108. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/__init__.py +0 -0
  109. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/cli.py +0 -0
  110. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/commands/__init__.py +0 -0
  111. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/commands/auth.py +0 -0
  112. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/commands/packages.py +0 -0
  113. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/console/commands/update.py +0 -0
  114. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/core/__init__.py +0 -0
  115. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/core/registry.py +0 -0
  116. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/engine/__init__.py +0 -0
  117. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/engine/service.py +0 -0
  118. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/engine/types.py +0 -0
  119. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/__init__.py +0 -0
  120. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/api.py +0 -0
  121. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/context.py +0 -0
  122. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/loader.py +0 -0
  123. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/runtime.py +0 -0
  124. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/extensions/settings.py +0 -0
  125. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/__init__.py +0 -0
  126. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/engine.py +0 -0
  127. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/inference.py +0 -0
  128. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/runtime.py +0 -0
  129. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/service.py +0 -0
  130. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/session.py +0 -0
  131. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/tui.py +0 -0
  132. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/hooks/types.py +0 -0
  133. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/__init__.py +0 -0
  134. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/__init__.py +0 -0
  135. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/__init__.py +0 -0
  136. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/base.py +0 -0
  137. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/builtins.py +0 -0
  138. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
  139. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/gemini_audio.py +0 -0
  140. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/openai_audio.py +0 -0
  141. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/registry.py +0 -0
  142. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/sarvam_audio.py +0 -0
  143. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/service.py +0 -0
  144. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/audio/utils.py +0 -0
  145. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/availability.py +0 -0
  146. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/__init__.py +0 -0
  147. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/base.py +0 -0
  148. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/builtins.py +0 -0
  149. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/gemini_image.py +0 -0
  150. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/openai_image.py +0 -0
  151. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/openrouter.py +0 -0
  152. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/registry.py +0 -0
  153. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/image/service.py +0 -0
  154. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/registry.py +0 -0
  155. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/__init__.py +0 -0
  156. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_claude_code.py +0 -0
  157. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_messages.py +0 -0
  158. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_vertex.py +0 -0
  159. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/base.py +0 -0
  160. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/builtins.py +0 -0
  161. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/dialect.py +0 -0
  162. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/gemini_generate.py +0 -0
  163. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/github_copilot_chat.py +0 -0
  164. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_antigravity.py +0 -0
  165. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_vertex.py +0 -0
  166. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/mistral_chat.py +0 -0
  167. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/ollama_chat.py +0 -0
  168. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_codex_responses.py +0 -0
  169. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_completions.py +0 -0
  170. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_responses.py +0 -0
  171. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_vertex.py +0 -0
  172. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/registry.py +0 -0
  173. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/service.py +0 -0
  174. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/types.py +0 -0
  175. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/text/utils.py +0 -0
  176. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/__init__.py +0 -0
  177. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/base.py +0 -0
  178. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/fal_video.py +0 -0
  179. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/openrouter_video.py +0 -0
  180. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/registry.py +0 -0
  181. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/api/video/service.py +0 -0
  182. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/model/__init__.py +0 -0
  183. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/model/registry.py +0 -0
  184. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/model/types.py +0 -0
  185. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/__init__.py +0 -0
  186. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/__init__.py +0 -0
  187. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
  188. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/github_copilot.py +0 -0
  189. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/google_antigravity.py +0 -0
  190. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/openai_codex.py +0 -0
  191. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/pkce.py +0 -0
  192. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/types.py +0 -0
  193. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/utils.py +0 -0
  194. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/registry.py +0 -0
  195. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/provider/types.py +0 -0
  196. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/types.py +0 -0
  197. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/inference/utils.py +0 -0
  198. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/message/__init__.py +0 -0
  199. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/message/types.py +0 -0
  200. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/message/utils.py +0 -0
  201. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/__init__.py +0 -0
  202. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/__init__.py +0 -0
  203. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/agent_hooks.py +0 -0
  204. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/app.py +0 -0
  205. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/__init__.py +0 -0
  206. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/auth.py +0 -0
  207. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/context.py +0 -0
  208. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/extensions.py +0 -0
  209. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/misc.py +0 -0
  210. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/model.py +0 -0
  211. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/session.py +0 -0
  212. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/__init__.py +0 -0
  213. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/command_palette.py +0 -0
  214. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/config_selector.py +0 -0
  215. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/extension_selector.py +0 -0
  216. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/file_picker.py +0 -0
  217. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/layout.py +0 -0
  218. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/message_list.py +0 -0
  219. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/model_selector.py +0 -0
  220. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/oauth_selector.py +0 -0
  221. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/overlays.py +0 -0
  222. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/selector_controller.py +0 -0
  223. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/session_selector.py +0 -0
  224. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/settings_selector.py +0 -0
  225. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/theme_selector.py +0 -0
  226. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/thinking_selector.py +0 -0
  227. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/tree_selector.py +0 -0
  228. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/trust_screen.py +0 -0
  229. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/voice_selector.py +0 -0
  230. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/interactive/input_handler.py +0 -0
  231. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/print/__init__.py +0 -0
  232. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/rpc/__init__.py +0 -0
  233. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/rpc/mode.py +0 -0
  234. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/modes/rpc/types.py +0 -0
  235. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/packages/__init__.py +0 -0
  236. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/packages/manager.py +0 -0
  237. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/packages/types.py +0 -0
  238. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/packages/utils.py +0 -0
  239. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/prompts/expand.py +0 -0
  240. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/prompts/loader.py +0 -0
  241. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/prompts/registry.py +0 -0
  242. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/prompts/types.py +0 -0
  243. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/resources/__init__.py +0 -0
  244. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/resources/loader.py +0 -0
  245. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/resources/types.py +0 -0
  246. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/runtime/dependencies.py +0 -0
  247. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/runtime/types.py +0 -0
  248. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/session/branch_summarization.py +0 -0
  249. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/session/compaction.py +0 -0
  250. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/session/manager.py +0 -0
  251. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/session/types.py +0 -0
  252. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/session/utils.py +0 -0
  253. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/settings/paths.py +0 -0
  254. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/settings/storage.py +0 -0
  255. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/settings/utils.py +0 -0
  256. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/skills/loader.py +0 -0
  257. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/skills/registry.py +0 -0
  258. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/skills/types.py +0 -0
  259. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/themes/loader.py +0 -0
  260. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/themes/registry.py +0 -0
  261. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/themes/types.py +0 -0
  262. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tool/__init__.py +0 -0
  263. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tool/registry.py +0 -0
  264. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tool/render.py +0 -0
  265. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tool/types.py +0 -0
  266. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/trust/__init__.py +0 -0
  267. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/trust/manager.py +0 -0
  268. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/trust/types.py +0 -0
  269. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/trust/utils.py +0 -0
  270. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/__init__.py +0 -0
  271. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/autocomplete.py +0 -0
  272. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/component.py +0 -0
  273. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/__init__.py +0 -0
  274. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/box.py +0 -0
  275. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/editor.py +0 -0
  276. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/image.py +0 -0
  277. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/select_list.py +0 -0
  278. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/spinner.py +0 -0
  279. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/components/text_input.py +0 -0
  280. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/input.py +0 -0
  281. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/keybinding_hints.py +0 -0
  282. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/terminal.py +0 -0
  283. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/theme.py +0 -0
  284. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/tui/ui_context.py +0 -0
  285. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/utils/__init__.py +0 -0
  286. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/utils/image_processing.py +0 -0
  287. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/utils/secrets.py +0 -0
  288. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau/utils/version_check.py +0 -0
  289. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
  290. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/entry_points.txt +0 -0
  291. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/requires.txt +0 -0
  292. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/top_level.txt +0 -0
  293. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_agent_compaction.py +0 -0
  294. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_agent_prompt.py +0 -0
  295. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_agent_types.py +0 -0
  296. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_ansi.py +0 -0
  297. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_auth_command.py +0 -0
  298. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_auth_manager.py +0 -0
  299. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_auth_storage.py +0 -0
  300. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_branch_navigation.py +0 -0
  301. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_branch_summarization.py +0 -0
  302. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_builtin_tools.py +0 -0
  303. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_builtin_watch.py +0 -0
  304. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_cli_inputs.py +0 -0
  305. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_command_execution_policy.py +0 -0
  306. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_command_registry.py +0 -0
  307. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_compaction.py +0 -0
  308. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_diff.py +0 -0
  309. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_editor_protocol.py +0 -0
  310. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_engine_execution.py +0 -0
  311. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_engine_steering.py +0 -0
  312. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_engine_types.py +0 -0
  313. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_escape_behavior.py +0 -0
  314. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_extension_api.py +0 -0
  315. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_extension_lifecycle.py +0 -0
  316. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_footer_model.py +0 -0
  317. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_footer_utils.py +0 -0
  318. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_fuzzy.py +0 -0
  319. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_http_proxy.py +0 -0
  320. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_image_processing.py +0 -0
  321. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_inference_api_text_utils.py +0 -0
  322. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_inference_dialect.py +0 -0
  323. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_inference_error_utils.py +0 -0
  324. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_inference_types.py +0 -0
  325. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_inference_utils.py +0 -0
  326. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_keybindings.py +0 -0
  327. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_message_types.py +0 -0
  328. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_message_utils.py +0 -0
  329. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_model_availability.py +0 -0
  330. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_model_command.py +0 -0
  331. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_model_registry.py +0 -0
  332. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_model_selector_modal.py +0 -0
  333. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_model_types.py +0 -0
  334. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_oauth_utils.py +0 -0
  335. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_package_resources.py +0 -0
  336. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_packages_utils.py +0 -0
  337. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_peer_extension.py +0 -0
  338. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_pkce.py +0 -0
  339. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_prompts_expand.py +0 -0
  340. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_prompts_loader.py +0 -0
  341. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_prompts_registry.py +0 -0
  342. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_provider_registry.py +0 -0
  343. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_resource_loader.py +0 -0
  344. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_rpc_mode.py +0 -0
  345. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_runtime_sdk.py +0 -0
  346. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_secrets.py +0 -0
  347. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_selector_controller.py +0 -0
  348. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_session_manager.py +0 -0
  349. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_session_trust_persist.py +0 -0
  350. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_session_types.py +0 -0
  351. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_session_utils.py +0 -0
  352. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_settings_paths.py +0 -0
  353. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_settings_storage.py +0 -0
  354. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_settings_utils.py +0 -0
  355. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_skills_loader.py +0 -0
  356. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_subagents_extension.py +0 -0
  357. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_text_input.py +0 -0
  358. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_text_llm_invoke.py +0 -0
  359. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_theme_loader.py +0 -0
  360. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_themes_registry.py +0 -0
  361. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_thinking_render.py +0 -0
  362. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tool_registry.py +0 -0
  363. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tool_render.py +0 -0
  364. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_trust_manager.py +0 -0
  365. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_trust_utils.py +0 -0
  366. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_capabilities.py +0 -0
  367. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_input.py +0 -0
  368. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_layout_sizing.py +0 -0
  369. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_select_list.py +0 -0
  370. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_theme.py +0 -0
  371. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_tui_utils.py +0 -0
  372. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_ui_context.py +0 -0
  373. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.0}/tests/test_version_check.py +0 -0
  374. {tau_coding_agent-0.4.8 → tau_coding_agent-0.5.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.4.8
3
+ Version: 0.5.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
@@ -75,7 +75,7 @@ tau # Interactive mode
75
75
  tau --resume # Resume most recent session
76
76
  tau --model claude-sonnet-4-6 # Use specific model
77
77
  tau --print "Summarize this repo" # One-shot mode
78
- tau -p anthropic --print "Explain this code" # Print mode with provider
78
+ tau --provider anthropic --print "Explain this code" # Print mode with provider
79
79
  tau --mode rpc # RPC mode for IDE extensions
80
80
  ```
81
81
 
@@ -83,13 +83,13 @@ tau --mode rpc # RPC mode for IDE extensions
83
83
 
84
84
  ## Features
85
85
 
86
- - **Multi-provider LLM support** — Anthropic Claude, OpenAI GPT, Google Gemini, Mistral AI, Ollama, Azure OpenAI
86
+ - **Multi-provider LLM support** — Anthropic, OpenAI, Google Gemini, Mistral AI, Ollama, Groq, xAI, AWS Bedrock, OpenRouter, Z.ai, and more
87
87
  - **Terminal UI** — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
88
88
  - **Rich media support** — Work with text files, images, audio files, and video files via file references or clipboard input
89
89
  - **Session management** — Persistent sessions with branching, forking, and resuming capabilities
90
- - **Tool execution** — Built-in tools (terminal, file I/O, web fetch) with sandboxed execution and extensibility
90
+ - **Tool execution** — Built-in tools (terminal, file I/O, search) with full user permissions and extensibility
91
91
  - **Plugin system** — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
92
- - **16 built-in themes** — Dark and light themes including dracula, nord, gruvbox, catppuccin, ayu-dark, tokyo-night, rose-pine, and more
92
+ - **Themes** — Dark and light base themes, customizable and extensible via YAML
93
93
  - **Context management** — Automatic context compaction and branch summarization for long conversations
94
94
  - **Python API** — Embed Tau in your own applications programmatically
95
95
  - **Multiple run modes** — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
@@ -174,7 +174,7 @@ See [SECURITY.md](SECURITY.md) for detailed practices and vulnerability reportin
174
174
  ```bash
175
175
  python -m pytest # Run tests
176
176
  pyright tau/ # Type checking
177
- python -m tau --mode tui # Launch from source
177
+ python -m tau # Launch from source
178
178
  ```
179
179
 
180
180
  See [Development Setup](docs/development.md) for detailed instructions.
@@ -41,7 +41,7 @@ tau # Interactive mode
41
41
  tau --resume # Resume most recent session
42
42
  tau --model claude-sonnet-4-6 # Use specific model
43
43
  tau --print "Summarize this repo" # One-shot mode
44
- tau -p anthropic --print "Explain this code" # Print mode with provider
44
+ tau --provider anthropic --print "Explain this code" # Print mode with provider
45
45
  tau --mode rpc # RPC mode for IDE extensions
46
46
  ```
47
47
 
@@ -49,13 +49,13 @@ tau --mode rpc # RPC mode for IDE extensions
49
49
 
50
50
  ## Features
51
51
 
52
- - **Multi-provider LLM support** — Anthropic Claude, OpenAI GPT, Google Gemini, Mistral AI, Ollama, Azure OpenAI
52
+ - **Multi-provider LLM support** — Anthropic, OpenAI, Google Gemini, Mistral AI, Ollama, Groq, xAI, AWS Bedrock, OpenRouter, Z.ai, and more
53
53
  - **Terminal UI** — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
54
54
  - **Rich media support** — Work with text files, images, audio files, and video files via file references or clipboard input
55
55
  - **Session management** — Persistent sessions with branching, forking, and resuming capabilities
56
- - **Tool execution** — Built-in tools (terminal, file I/O, web fetch) with sandboxed execution and extensibility
56
+ - **Tool execution** — Built-in tools (terminal, file I/O, search) with full user permissions and extensibility
57
57
  - **Plugin system** — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
58
- - **16 built-in themes** — Dark and light themes including dracula, nord, gruvbox, catppuccin, ayu-dark, tokyo-night, rose-pine, and more
58
+ - **Themes** — Dark and light base themes, customizable and extensible via YAML
59
59
  - **Context management** — Automatic context compaction and branch summarization for long conversations
60
60
  - **Python API** — Embed Tau in your own applications programmatically
61
61
  - **Multiple run modes** — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
@@ -140,7 +140,7 @@ See [SECURITY.md](SECURITY.md) for detailed practices and vulnerability reportin
140
140
  ```bash
141
141
  python -m pytest # Run tests
142
142
  pyright tau/ # Type checking
143
- python -m tau --mode tui # Launch from source
143
+ python -m tau # Launch from source
144
144
  ```
145
145
 
146
146
  See [Development Setup](docs/development.md) for detailed instructions.
@@ -219,7 +219,7 @@ Tools are executed in a sandboxed environment:
219
219
  6. Result is serialized and added to context
220
220
  ```
221
221
 
222
- Built-in tools (bash, read, write, edit, glob, grep, ls) are enabled by default.
222
+ Built-in tools (terminal, read, write, edit, glob, grep, ls) are enabled by default.
223
223
  `RuntimeConfig` can allow or exclude tools by name. Custom tools are registered
224
224
  via extensions or passed directly to the runtime.
225
225
 
@@ -206,8 +206,8 @@ Events do **not** have an `id` field. Only responses do.
206
206
 
207
207
  | Command | Key fields | Description |
208
208
  |---------|-----------|-------------|
209
- | `bash` | `command` (required), `excludeFromContext?` | Run a shell command; output is added to the next LLM context |
210
- | `abort_bash` | — | Abort a running bash subprocess |
209
+ | `terminal` | `command` (required), `excludeFromContext?` | Run a shell command; output is added to the next LLM context |
210
+ | `abort_terminal` | — | Abort a running terminal subprocess |
211
211
 
212
212
  ##### Session
213
213
 
@@ -128,40 +128,30 @@ ruff format tau/
128
128
  4. Test manually:
129
129
  ```bash
130
130
  tau -p "test prompt"
131
- tau --list-models
132
131
  ```
133
132
 
134
133
  ## Testing
135
134
 
136
135
  ### Test Structure
137
136
 
138
- Tests are organized by module:
137
+ Tests are organized by module, with granular filenames per submodule:
139
138
 
140
139
  ```text
141
140
  tests/
142
- ├── test_agent.py
143
- ├── test_inference.py
144
- ├── test_engine.py
145
- └── test_tui.py
141
+ ├── test_agent_compaction.py
142
+ ├── test_agent_prompt.py
143
+ ├── test_agent_types.py
144
+ ├── test_inference_dialect.py
145
+ ├── test_inference_types.py
146
+ ├── test_engine_execution.py
147
+ ├── test_engine_steering.py
148
+ ├── test_tui_renderer.py
149
+ └── ...
146
150
  ```
147
151
 
148
152
  ### Writing Tests
149
153
 
150
- Use pytest:
151
-
152
- ```python
153
- import pytest
154
- from tau.agent import Agent
155
-
156
- def test_agent_creation():
157
- agent = Agent(client=MockClient())
158
- assert agent is not None
159
-
160
- def test_agent_run():
161
- agent = Agent(client=MockClient())
162
- result = agent.run("test prompt")
163
- assert "result" in result.lower()
164
- ```
154
+ Use pytest, following the existing patterns in `tests/`.
165
155
 
166
156
  ### Running Tests
167
157
 
@@ -172,11 +162,8 @@ python -m pytest
172
162
  # Run with verbose output
173
163
  python -m pytest -v
174
164
 
175
- # Run with coverage
176
- python -m pytest --cov=tau
177
-
178
- # Run specific test file
179
- python -m pytest tests/test_agent.py
165
+ # Run a specific module's tests
166
+ python -m pytest tests/test_agent_compaction.py
180
167
  ```
181
168
 
182
169
  ## Debugging
@@ -445,7 +445,7 @@ Use the explicit `group` type when you want the sub-panel to have a header label
445
445
  #### Basic example
446
446
 
447
447
  ```python
448
- from tau.tui.components.settings_modal import SettingItem
448
+ from tau.modes.interactive.components.settings_selector import SettingItem
449
449
 
450
450
  def register(tau):
451
451
  def on_change(key, value):
@@ -1328,7 +1328,7 @@ ctx.ui.paste_to_editor("@file.py ") # insert at cursor position
1328
1328
 
1329
1329
  ```python
1330
1330
  names = ctx.ui.get_all_themes() # list[str] of theme names
1331
- ok = ctx.ui.set_theme("dracula") # True on success, False if unknown
1331
+ ok = ctx.ui.set_theme("dark") # True on success, False if unknown
1332
1332
  theme = ctx.ui.theme # LayoutTheme — current active theme
1333
1333
  ```
1334
1334
 
@@ -124,7 +124,8 @@ api_base = "https://api.example.com"
124
124
  proxies = get_proxies_for_client(api_base, settings_manager)
125
125
  headers = get_proxy_headers(settings_manager)
126
126
 
127
- async with httpx.AsyncClient(proxies=proxies, headers=headers) as client:
127
+ mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
128
+ async with httpx.AsyncClient(mounts=mounts, headers=headers) as client:
128
129
  response = await client.get(f"{api_base}/v1/models")
129
130
  ```
130
131
 
@@ -144,7 +145,8 @@ headers = {
144
145
  **proxy_headers, # Include custom proxy headers
145
146
  }
146
147
 
147
- async with httpx.AsyncClient(proxies=proxies, headers=headers) as client:
148
+ mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
149
+ async with httpx.AsyncClient(mounts=mounts, headers=headers) as client:
148
150
  response = await client.get(f"{api_base}/v1/models")
149
151
  ```
150
152
 
@@ -159,9 +161,9 @@ proxy_url = get_proxy_url_for_target(api_base)
159
161
 
160
162
  client_kwargs = {}
161
163
  if proxy_url:
162
- client_kwargs["proxies"] = {
163
- "http://": proxy_url,
164
- "https://": proxy_url,
164
+ client_kwargs["mounts"] = {
165
+ "http://": httpx.AsyncHTTPTransport(proxy=proxy_url),
166
+ "https://": httpx.AsyncHTTPTransport(proxy=proxy_url),
165
167
  }
166
168
 
167
169
  async with httpx.AsyncClient(**client_kwargs) as client:
@@ -334,7 +336,8 @@ from tau.utils.http_proxy import get_proxies_for_client
334
336
  import httpx
335
337
 
336
338
  proxies = get_proxies_for_client("https://api.example.com")
337
- async with httpx.AsyncClient(proxies=proxies) as client:
339
+ mounts = {s: httpx.AsyncHTTPTransport(proxy=u) for s, u in proxies.items()} if proxies else None
340
+ async with httpx.AsyncClient(mounts=mounts) as client:
338
341
  response = await client.get("...")
339
342
  ```
340
343
 
@@ -8,7 +8,7 @@ Tau supports the following inference providers:
8
8
 
9
9
  Built-in API-key providers are `openai`, `anthropic`, `google`, `nvidia`,
10
10
  `groq`, `openrouter`, `perplexity`, `xai`, `bedrock`, `kimi`, `minimax`,
11
- `cerebras`, `deepseek`, `kilocode`, `fireworks`, and `mistral`.
11
+ `cerebras`, `deepseek`, `zai`, `kilocode`, `fireworks`, and `mistral`.
12
12
 
13
13
  Tau also includes local `ollama`, Google/Anthropic/OpenAI-compatible Vertex AI
14
14
  providers, and OAuth providers for OpenAI Codex, Claude Code, GitHub Copilot,
@@ -159,44 +159,33 @@ Use a specific provider for a single session:
159
159
  ```bash
160
160
  tau --provider anthropic
161
161
  tau --model openai/gpt-4o
162
- tau --provider ollama/mistral
162
+ tau --model ollama/mistral
163
163
  ```
164
164
 
165
165
  ### Interactive
166
166
 
167
- Press **Ctrl+L** during a session to switch models.
167
+ Use the `/model` slash command during a session to switch models.
168
168
 
169
169
  ### Default
170
170
 
171
- Set your default provider in `~/.tau/settings.json`:
171
+ Set your default provider and model in `~/.tau/settings.json`:
172
172
 
173
173
  ```json
174
174
  {
175
- "defaultProvider": "anthropic",
176
- "defaultModel": "claude-3-5-sonnet"
175
+ "model": {
176
+ "text": {
177
+ "provider": "anthropic",
178
+ "id": "claude-sonnet-4-6"
179
+ }
180
+ }
177
181
  }
178
182
  ```
179
183
 
180
- ## Model Listing
181
-
182
- List all available models:
183
-
184
- ```bash
185
- tau --list-models
186
- ```
187
-
188
- Filter by provider:
189
-
190
- ```bash
191
- tau --list-models anthropic
192
- tau --list-models openai
193
- ```
194
-
195
184
  ## Troubleshooting
196
185
 
197
186
  ### Provider Not Found
198
187
 
199
- If a provider is not listed in `tau --list-models`, check:
188
+ If a provider isn't picking up credentials, check:
200
189
 
201
190
  1. **API key is set**: `env | grep API_KEY`
202
191
  2. **Provider is supported**: Verify it's in the list above
@@ -180,7 +180,7 @@ Configure how steering and follow-up messages are delivered in [Settings](settin
180
180
 
181
181
  | Mode | Behavior |
182
182
  |------|----------|
183
- | `one-at-a-time` | Each message queued and sent separately |
183
+ | `one_at_a_time` | Each message queued and sent separately |
184
184
  | `all` | All queued messages sent together |
185
185
 
186
186
  ## Next Steps
@@ -11,9 +11,9 @@ tau/ # Main package
11
11
  ├── agent/ # Agent execution service
12
12
  ├── auth/ # Authentication & credential management
13
13
  ├── builtins/ # Built-in tools, commands, themes, skills
14
- │ ├── tools/ # Pre-installed tools (bash, read, write, etc.)
14
+ │ ├── tools/ # Pre-installed tools (terminal, read, write, etc.)
15
15
  │ ├── commands/ # Built-in slash commands
16
- │ ├── themes/ # Default themes (dracula, nord, etc.)
16
+ │ ├── themes/ # Default themes (dark, light)
17
17
  │ ├── providers/ # Built-in LLM provider configurations
18
18
  │ ├── prompts/ # Built-in prompt templates
19
19
  │ └── skills/ # Built-in skills
@@ -113,7 +113,7 @@ Executes tools with sandboxing and result collection.
113
113
 
114
114
  Loading and API for custom extensions.
115
115
 
116
- - `api.py` - Extension API (35 KB, main extension interface)
116
+ - `api.py` - Extension API (main extension interface)
117
117
  - `loader.py` - Extension discovery and loading
118
118
  - `context.py` - Extension runtime context
119
119
  - `runtime.py` - Runtime context management
@@ -179,7 +179,7 @@ Prompt loading and variable substitution.
179
179
  - `expand.py` - Argument substitution
180
180
  - `types.py` - Prompt types
181
181
 
182
- ### `rpc/` - JSON-RPC Protocol
182
+ ### `modes/rpc/` - JSON-RPC Protocol
183
183
 
184
184
  JSON-RPC server for IDE integration.
185
185
 
@@ -408,10 +408,10 @@ See [Extensions Guide](extensions.md) for detailed examples.
408
408
 
409
409
  ## Code Statistics
410
410
 
411
- - **Total modules**: 205 Python files
411
+ - **Total modules**: 235 Python files
412
412
  - **Main package**: tau/ (25 subpackages)
413
413
  - **Test coverage**: tests/ directory
414
- - **Lines of code**: ~8,000 LOC (excluding tests and docs)
414
+ - **Lines of code**: ~58,000 LOC (excluding tests and docs)
415
415
  - **Type hints**: Full type coverage with mypy/pyright
416
416
 
417
417
  ## Next Steps
@@ -312,7 +312,7 @@ await runtime.set_model("claude-opus-4-8", provider="anthropic")
312
312
  ### Shell commands
313
313
 
314
314
  ```python
315
- await runtime.execute_bash("git status")
315
+ await runtime.execute_terminal("git status")
316
316
  ```
317
317
 
318
318
  ### Properties
@@ -54,6 +54,9 @@ You will be prompted to select a model from your configured providers. By defaul
54
54
  - `write` - create or overwrite files
55
55
  - `edit` - patch files
56
56
  - `terminal` - run shell commands
57
+ - `glob` - find files by pattern
58
+ - `grep` - search file contents
59
+ - `ls` - list directory contents
57
60
 
58
61
  Type a prompt and press Enter:
59
62
 
@@ -25,13 +25,15 @@ Sessions are stored per-project. The working directory is encoded into a safe su
25
25
  ```text
26
26
  ~/.tau/sessions/
27
27
  ├── --Users-alice-projects-myapp--/
28
- │ ├── 2024-01-15_10-30-45_abc123.jsonl
29
- │ ├── 2024-01-15_14-22-19_def456.jsonl
30
- │ └── 2024-01-16_09-15-33_ghi789.jsonl
28
+ │ ├── 2024-01-15T10-30-45-123456_01912e4a-6b3f-7a21-9c88-4f2e6d1a9b3c.jsonl
29
+ │ ├── 2024-01-15T14-22-19-654321_01912e6f-2c1a-70e3-8a4d-9b1e5c7f2d0a.jsonl
30
+ │ └── 2024-01-16T09-15-33-789012_01912ea3-5d8b-71f4-b2c3-6a9e4f0d1c8b.jsonl
31
31
  └── --Users-alice-projects-other--/
32
- └── 2024-01-16_11-45-22_jkl012.jsonl
32
+ └── 2024-01-16T11-45-22-345678_01912ec1-9a4f-72b5-c3d6-8e1a5b0f4d2c.jsonl
33
33
  ```
34
34
 
35
+ Each filename is `<timestamp>_<session-id>.jsonl`, where the timestamp is `strftime("%Y-%m-%dT%H-%M-%S-%f")` and the session ID is a UUIDv7.
36
+
35
37
  The subdirectory name is derived from the absolute path of the working directory (`/Users/alice/projects/myapp` → `--Users-alice-projects-myapp--`). This keeps sessions from different projects completely separate, so browsing with `/resume` always shows only the sessions relevant to the current project.
36
38
 
37
39
  Files are in JSONL format (one JSON object per line), allowing efficient appending and compression.
@@ -200,7 +202,7 @@ Shows a read-only overlay (Esc to close) with:
200
202
  To delete a session, remove the session file:
201
203
 
202
204
  ```bash
203
- rm ~/.tau/sessions/path_to_project/2024-01-15_10-30-45_abc123.jsonl
205
+ rm ~/.tau/sessions/path_to_project/2024-01-15T10-30-45-123456_01912e4a-6b3f-7a21-9c88-4f2e6d1a9b3c.jsonl
204
206
  ```
205
207
 
206
208
  ## Backup Sessions
@@ -218,7 +220,7 @@ Session files are JSONL — one JSON object per line. The first line is always a
218
220
  ### Header
219
221
 
220
222
  ```json
221
- {"type": "session", "version": 3, "id": "abc12345", "cwd": "/home/user/project", "timestamp": 1718000000.0}
223
+ {"type": "session", "version": 3, "id": "01912e4a-6b3f-7a21-9c88-4f2e6d1a9b3c", "cwd": "/home/user/project", "timestamp": 1718000000.0}
222
224
  ```
223
225
 
224
226
  ### Entry types
@@ -241,7 +243,7 @@ All entries share `id`, `timestamp`, and `parent_id` fields. `parent_id` is null
241
243
  ### Example
242
244
 
243
245
  ```jsonl
244
- {"type": "session", "version": 3, "id": "a1b2c3d4", "cwd": "/home/user/myproject", "timestamp": 1718000000.0}
246
+ {"type": "session", "version": 3, "id": "01912e4a-6b3f-7a21-9c88-4f2e6d1a9b3c", "cwd": "/home/user/myproject", "timestamp": 1718000000.0}
245
247
  {"type": "message", "id": "e5f6g7h8", "parent_id": null, "timestamp": 1718000001.0, "message": {"role": "user", ...}}
246
248
  {"type": "message", "id": "i9j0k1l2", "parent_id": "e5f6g7h8", "timestamp": 1718000005.0, "message": {"role": "assistant", ...}}
247
249
  {"type": "compaction", "id": "m3n4o5p6", "parent_id": "i9j0k1l2", "summary": "## Goal\n...", "first_kept_entry_id": "i9j0k1l2", "tokens_before": 94000, "timestamp": 1718000010.0}
@@ -53,6 +53,7 @@ All settings documented in the reference below are editable from the TUI. Settin
53
53
  | Setting | Panel location |
54
54
  |---------|----------------|
55
55
  | `project_trust` | Top level — cycles `"ask"` / `"always"` / `"never"` |
56
+ | `telemetry` | Top level — boolean toggle |
56
57
  | `double_escape_action` | Top level — cycles `"clear"` / `"fork"` / `"tree"` / `"none"` |
57
58
  | `tree_filter_mode` | Top level — cycles all five modes |
58
59
  | `show_hardware_cursor` | Top level — boolean toggle |
@@ -142,6 +143,28 @@ Toggle during a session with `/effort` or the effort picker.
142
143
  | `double_escape_action` | string | `"clear"` | What happens when Escape is pressed twice while idle: `"clear"` clears TUI messages, `"fork"` clones the current branch, `"tree"` opens the branch navigator, `"none"` does nothing |
143
144
  | `tree_filter_mode` | string | `"default"` | Default message filter when `/tree` opens: `"default"`, `"no-tools"`, `"user-only"`, `"labeled-only"`, `"all"` |
144
145
 
146
+ ### Telemetry
147
+
148
+ | Field | Type | Default | Description |
149
+ |-------|------|---------|-------------|
150
+ | `telemetry` | boolean | `true` | Send one anonymous version-only install/update count |
151
+
152
+ Telemetry sends only the installed Tau version to Tau's Cloudflare Worker once
153
+ per version. Tau does not persist identifiers or IP addresses and does not send
154
+ prompts, paths, models, authentication state, session data, or tool activity.
155
+ As with any HTTP request, Cloudflare necessarily processes the source IP under
156
+ its own privacy policy. Failed requests are ignored and never block startup.
157
+
158
+ This is a global preference: project settings cannot enable telemetry after it
159
+ has been disabled globally. Disable it in `/settings` or in
160
+ `~/.tau/settings.json`:
161
+
162
+ ```json
163
+ {
164
+ "telemetry": false
165
+ }
166
+ ```
167
+
145
168
  #### Hardware Cursor & Editor Padding
146
169
 
147
170
  **`show_hardware_cursor`** — Enable this if you're using IME (input method editor) for CJK, Arabic, or other languages. When enabled, the terminal cursor remains visible as it's repositioned for text input, improving the IME experience. Default is `false` for standard keyboard input.
@@ -20,6 +20,17 @@ Skills are loaded from three sources:
20
20
 
21
21
  Higher-priority skills override lower-priority ones with the same name.
22
22
 
23
+ ## Built-in Skills
24
+
25
+ Tau includes these skills:
26
+
27
+ | Skill | Purpose |
28
+ |-------|---------|
29
+ | `code-review` | Review code for correctness, security, and maintainability |
30
+ | `debug` | Diagnose failures systematically and verify fixes |
31
+ | `git-commit` | Prepare focused commits with conventional messages |
32
+ | `skill-creator` | Create or update Tau skills and reusable resources |
33
+
23
34
  ## Creating a Skill
24
35
 
25
36
  ### Single-file skill
@@ -10,6 +10,12 @@ Run `tau` to open the terminal UI. The interface has three areas:
10
10
  - **Messages** — conversation history, tool calls, results
11
11
  - **Editor** — where you type prompts
12
12
 
13
+ Named Markdown links display their label without repeating the destination URL.
14
+ In terminals with OSC 8 support, use the terminal's link gesture (commonly
15
+ Alt+click or Cmd+click) to open the destination. Autolinks remain visible as URLs.
16
+ Markdown images render as linked placeholders when inline image display is not
17
+ available; local image paths link through an absolute `file://` URI.
18
+
13
19
  ## Editor Features
14
20
 
15
21
  | Feature | How |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tau-coding-agent"
7
- version = "0.4.8"
7
+ version = "0.5.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"
@@ -257,4 +257,14 @@ models = [
257
257
  output=_TEXT,
258
258
  api="openai-audio",
259
259
  ),
260
+ # Z.ai STT (no TTS/voice-generation endpoint offered)
261
+ Model(
262
+ id="glm-asr-2512",
263
+ name="GLM-ASR-2512",
264
+ provider="zai",
265
+ cost=Cost(input=0.03),
266
+ input=_AUDIO,
267
+ output=_TEXT,
268
+ api="openai-audio",
269
+ ),
260
270
  ]
@@ -225,4 +225,23 @@ models = [
225
225
  input=_TEXT_IMAGE,
226
226
  output=_IMAGE,
227
227
  ),
228
+ # Z.ai — cost is flat $/image (0.01 / 0.015), not per-million-token
229
+ Model(
230
+ id="cogview-4-250304",
231
+ name="CogView-4",
232
+ provider="zai",
233
+ cost=Cost(input=0.01),
234
+ input=_TEXT,
235
+ output=_IMAGE,
236
+ api="openai-image",
237
+ ),
238
+ Model(
239
+ id="glm-image",
240
+ name="GLM-Image",
241
+ provider="zai",
242
+ cost=Cost(input=0.015),
243
+ input=_TEXT,
244
+ output=_IMAGE,
245
+ api="openai-image",
246
+ ),
228
247
  ]