tau-coding-agent 0.4.7__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 (377) hide show
  1. {tau_coding_agent-0.4.7/tau_coding_agent.egg-info → tau_coding_agent-0.5.0}/PKG-INFO +7 -6
  2. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/README.md +5 -5
  3. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/architecture.md +11 -9
  4. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/auth.md +9 -9
  5. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/cli-reference.md +16 -8
  6. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/development.md +18 -31
  7. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/docs.json +8 -0
  8. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/extension-settings.md +1 -1
  9. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/extensions.md +15 -2
  10. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/http-proxy.md +10 -7
  11. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/index.md +2 -3
  12. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/inference-providers.md +23 -85
  13. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/installation.md +6 -11
  14. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/keybindings.md +24 -8
  15. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/messages.md +25 -26
  16. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/project-structure.md +22 -26
  17. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/prompts.md +2 -5
  18. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/python-api.md +1 -1
  19. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/quickstart.md +11 -13
  20. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/sessions.md +14 -17
  21. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/settings.md +34 -5
  22. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/skills.md +13 -7
  23. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/themes.md +9 -25
  24. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/tools.md +58 -2
  25. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/usage.md +8 -14
  26. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/pyproject.toml +2 -2
  27. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/audio.py +10 -0
  28. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/image.py +19 -0
  29. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/text.py +664 -86
  30. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/video.py +65 -0
  31. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/audio.py +6 -0
  32. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/image.py +6 -0
  33. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/text.py +7 -3
  34. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/video.py +6 -0
  35. tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/LICENSE.txt +13 -0
  36. tau_coding_agent-0.5.0/tau/builtins/skills/skill-creator/SKILL.md +153 -0
  37. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/edit.py +51 -1
  38. tau_coding_agent-0.5.0/tau/builtins/tools/grep.py +302 -0
  39. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/service.py +0 -4
  40. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/api.py +8 -3
  41. tau_coding_agent-0.5.0/tau/inference/api/text/dialect.py +144 -0
  42. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/github_copilot_chat.py +1 -1
  43. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_completions.py +12 -21
  44. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_vertex.py +1 -1
  45. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/utils.py +24 -7
  46. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/builtins.py +1 -0
  47. tau_coding_agent-0.5.0/tau/inference/api/video/zai_video.py +139 -0
  48. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/types.py +1 -0
  49. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/app.py +99 -19
  50. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/appearance.py +25 -2
  51. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/auth.py +1 -1
  52. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/model.py +1 -3
  53. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/command_palette.py +4 -3
  54. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/config_selector.py +0 -1
  55. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/file_picker.py +4 -3
  56. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/layout.py +35 -29
  57. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/message_list.py +11 -9
  58. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/overlays.py +2 -1
  59. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/session_selector.py +4 -7
  60. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/service.py +18 -0
  61. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/manager.py +30 -4
  62. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/types.py +4 -2
  63. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/autocomplete.py +4 -3
  64. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/select_list.py +40 -0
  65. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/text_input.py +191 -25
  66. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/input.py +41 -31
  67. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/markdown.py +33 -9
  68. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/tui.py +30 -6
  69. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/ui_context.py +30 -0
  70. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/utils.py +73 -6
  71. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/http_proxy.py +4 -2
  72. tau_coding_agent-0.5.0/tau/utils/telemetry.py +42 -0
  73. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0/tau_coding_agent.egg-info}/PKG-INFO +7 -6
  74. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/SOURCES.txt +11 -1
  75. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/requires.txt +1 -0
  76. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_ansi.py +12 -1
  77. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_command.py +1 -0
  78. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_manager.py +5 -0
  79. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_auth_storage.py +12 -3
  80. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_builtin_tools.py +46 -0
  81. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_diff.py +3 -8
  82. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_editor_protocol.py +2 -0
  83. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_types.py +1 -0
  84. tau_coding_agent-0.5.0/tests/test_escape_behavior.py +39 -0
  85. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_extension_api.py +71 -1
  86. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_footer_utils.py +1 -0
  87. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_fuzzy.py +1 -0
  88. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_http_proxy.py +10 -2
  89. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_image_processing.py +43 -12
  90. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_api_text_utils.py +11 -5
  91. tau_coding_agent-0.5.0/tests/test_inference_dialect.py +31 -0
  92. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_error_utils.py +2 -0
  93. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_types.py +1 -0
  94. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_inference_utils.py +20 -11
  95. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_keybindings.py +6 -2
  96. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_markdown.py +34 -15
  97. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_message_types.py +20 -4
  98. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_message_utils.py +8 -1
  99. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_availability.py +1 -0
  100. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_registry.py +9 -0
  101. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_types.py +1 -0
  102. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_oauth_utils.py +1 -0
  103. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_packages_utils.py +6 -0
  104. tau_coding_agent-0.5.0/tests/test_peer_extension.py +46 -0
  105. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_pkce.py +1 -0
  106. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_expand.py +1 -0
  107. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_loader.py +1 -0
  108. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_prompts_registry.py +7 -2
  109. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_provider_registry.py +1 -0
  110. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_rpc_mode.py +1 -0
  111. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_secrets.py +1 -0
  112. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_trust_persist.py +2 -3
  113. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_types.py +6 -1
  114. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_utils.py +7 -1
  115. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_manager.py +7 -0
  116. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_paths.py +7 -0
  117. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_storage.py +10 -1
  118. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_settings_utils.py +1 -0
  119. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_skills_loader.py +4 -1
  120. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_skills_registry.py +15 -0
  121. tau_coding_agent-0.5.0/tests/test_telemetry.py +75 -0
  122. tau_coding_agent-0.5.0/tests/test_text_input.py +229 -0
  123. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_text_llm_invoke.py +49 -19
  124. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_theme_loader.py +1 -0
  125. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_themes_registry.py +14 -0
  126. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tool_render.py +55 -0
  127. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_trust_manager.py +2 -0
  128. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_trust_utils.py +6 -0
  129. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_capabilities.py +1 -0
  130. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_input.py +48 -10
  131. tau_coding_agent-0.5.0/tests/test_tui_renderer.py +150 -0
  132. tau_coding_agent-0.5.0/tests/test_tui_select_list.py +40 -0
  133. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_theme.py +1 -0
  134. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_utils.py +1 -0
  135. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_version_check.py +1 -0
  136. tau_coding_agent-0.4.7/docs/IMPLEMENTATION_SUMMARY.md +0 -163
  137. tau_coding_agent-0.4.7/tau/builtins/tools/grep.py +0 -178
  138. tau_coding_agent-0.4.7/tests/test_text_input.py +0 -17
  139. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/LICENSE +0 -0
  140. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/MANIFEST.in +0 -0
  141. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/docs/project-context.md +0 -0
  142. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/setup.cfg +0 -0
  143. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/__init__.py +0 -0
  144. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/__init__.py +0 -0
  145. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/__init__.py +0 -0
  146. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/builder.py +0 -0
  147. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/prompt/types.py +0 -0
  148. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/service.py +0 -0
  149. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/agent/types.py +0 -0
  150. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/manager.py +0 -0
  151. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/storage.py +0 -0
  152. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/auth/types.py +0 -0
  153. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/__init__.py +0 -0
  154. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/__init__.py +0 -0
  155. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/clear.py +0 -0
  156. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/compact.py +0 -0
  157. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/reload.py +0 -0
  158. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/commands/session.py +0 -0
  159. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/btw/__init__.py +0 -0
  160. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/__init__.py +0 -0
  161. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/git.py +0 -0
  162. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/model.py +0 -0
  163. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/footer/utils.py +0 -0
  164. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/header/__init__.py +0 -0
  165. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/extensions/watch/__init__.py +0 -0
  166. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/models/__init__.py +0 -0
  167. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/commit.md +0 -0
  168. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/docs.md +0 -0
  169. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/explain.md +0 -0
  170. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/fix.md +0 -0
  171. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/refactor.md +0 -0
  172. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/review.md +0 -0
  173. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/prompts/test.md +0 -0
  174. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/providers/__init__.py +0 -0
  175. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/code-review/SKILL.md +0 -0
  176. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/debug/SKILL.md +0 -0
  177. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/skills/git-commit/SKILL.md +0 -0
  178. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/themes/dark.yaml +0 -0
  179. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/themes/light.yaml +0 -0
  180. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/__init__.py +0 -0
  181. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/glob.py +0 -0
  182. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/ls.py +0 -0
  183. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/read.py +0 -0
  184. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/terminal.py +0 -0
  185. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/utils.py +0 -0
  186. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/builtins/tools/write.py +0 -0
  187. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/__init__.py +0 -0
  188. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/registry.py +0 -0
  189. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/commands/types.py +0 -0
  190. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/__init__.py +0 -0
  191. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/cli.py +0 -0
  192. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/__init__.py +0 -0
  193. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/auth.py +0 -0
  194. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/packages.py +0 -0
  195. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/console/commands/update.py +0 -0
  196. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/core/__init__.py +0 -0
  197. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/core/registry.py +0 -0
  198. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/__init__.py +0 -0
  199. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/engine/types.py +0 -0
  200. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/__init__.py +0 -0
  201. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/context.py +0 -0
  202. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/loader.py +0 -0
  203. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/runtime.py +0 -0
  204. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/extensions/settings.py +0 -0
  205. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/__init__.py +0 -0
  206. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/engine.py +0 -0
  207. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/inference.py +0 -0
  208. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/runtime.py +0 -0
  209. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/service.py +0 -0
  210. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/session.py +0 -0
  211. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/tui.py +0 -0
  212. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/hooks/types.py +0 -0
  213. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/__init__.py +0 -0
  214. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/__init__.py +0 -0
  215. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/__init__.py +0 -0
  216. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/base.py +0 -0
  217. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/builtins.py +0 -0
  218. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
  219. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/gemini_audio.py +0 -0
  220. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/openai_audio.py +0 -0
  221. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/registry.py +0 -0
  222. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/sarvam_audio.py +0 -0
  223. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/service.py +0 -0
  224. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/audio/utils.py +0 -0
  225. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/availability.py +0 -0
  226. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/__init__.py +0 -0
  227. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/base.py +0 -0
  228. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/builtins.py +0 -0
  229. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/gemini_image.py +0 -0
  230. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/openai_image.py +0 -0
  231. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/openrouter.py +0 -0
  232. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/registry.py +0 -0
  233. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/image/service.py +0 -0
  234. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/registry.py +0 -0
  235. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/__init__.py +0 -0
  236. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_claude_code.py +0 -0
  237. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_messages.py +0 -0
  238. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/anthropic_vertex.py +0 -0
  239. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/base.py +0 -0
  240. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/builtins.py +0 -0
  241. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/gemini_generate.py +0 -0
  242. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_antigravity.py +0 -0
  243. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/google_vertex.py +0 -0
  244. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/mistral_chat.py +0 -0
  245. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/ollama_chat.py +0 -0
  246. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_codex_responses.py +0 -0
  247. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/openai_responses.py +0 -0
  248. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/registry.py +0 -0
  249. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/service.py +0 -0
  250. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/text/types.py +0 -0
  251. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/__init__.py +0 -0
  252. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/base.py +0 -0
  253. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/fal_video.py +0 -0
  254. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/openrouter_video.py +0 -0
  255. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/registry.py +0 -0
  256. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/api/video/service.py +0 -0
  257. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/__init__.py +0 -0
  258. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/model/registry.py +0 -0
  259. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/__init__.py +0 -0
  260. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/__init__.py +0 -0
  261. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
  262. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/github_copilot.py +0 -0
  263. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/google_antigravity.py +0 -0
  264. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/openai_codex.py +0 -0
  265. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/pkce.py +0 -0
  266. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/types.py +0 -0
  267. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/oauth/utils.py +0 -0
  268. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/registry.py +0 -0
  269. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/provider/types.py +0 -0
  270. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/types.py +0 -0
  271. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/inference/utils.py +0 -0
  272. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/__init__.py +0 -0
  273. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/types.py +0 -0
  274. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/message/utils.py +0 -0
  275. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/__init__.py +0 -0
  276. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/__init__.py +0 -0
  277. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/agent_hooks.py +0 -0
  278. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/__init__.py +0 -0
  279. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/context.py +0 -0
  280. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/extensions.py +0 -0
  281. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/misc.py +0 -0
  282. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/commands/session.py +0 -0
  283. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/__init__.py +0 -0
  284. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/extension_selector.py +0 -0
  285. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/model_selector.py +0 -0
  286. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/oauth_selector.py +0 -0
  287. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/selector_controller.py +0 -0
  288. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/settings_selector.py +0 -0
  289. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/theme_selector.py +0 -0
  290. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/thinking_selector.py +0 -0
  291. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/tree_selector.py +0 -0
  292. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/trust_screen.py +0 -0
  293. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/components/voice_selector.py +0 -0
  294. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/interactive/input_handler.py +0 -0
  295. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/print/__init__.py +0 -0
  296. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/__init__.py +0 -0
  297. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/mode.py +0 -0
  298. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/modes/rpc/types.py +0 -0
  299. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/__init__.py +0 -0
  300. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/manager.py +0 -0
  301. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/types.py +0 -0
  302. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/packages/utils.py +0 -0
  303. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/expand.py +0 -0
  304. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/loader.py +0 -0
  305. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/registry.py +0 -0
  306. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/prompts/types.py +0 -0
  307. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/__init__.py +0 -0
  308. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/loader.py +0 -0
  309. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/resources/types.py +0 -0
  310. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/dependencies.py +0 -0
  311. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/runtime/types.py +0 -0
  312. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/branch_summarization.py +0 -0
  313. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/compaction.py +0 -0
  314. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/manager.py +0 -0
  315. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/types.py +0 -0
  316. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/session/utils.py +0 -0
  317. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/paths.py +0 -0
  318. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/storage.py +0 -0
  319. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/settings/utils.py +0 -0
  320. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/loader.py +0 -0
  321. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/registry.py +0 -0
  322. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/skills/types.py +0 -0
  323. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/loader.py +0 -0
  324. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/registry.py +0 -0
  325. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/themes/types.py +0 -0
  326. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/__init__.py +0 -0
  327. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/registry.py +0 -0
  328. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/render.py +0 -0
  329. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tool/types.py +0 -0
  330. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/__init__.py +0 -0
  331. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/manager.py +0 -0
  332. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/types.py +0 -0
  333. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/trust/utils.py +0 -0
  334. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/__init__.py +0 -0
  335. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/component.py +0 -0
  336. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/__init__.py +0 -0
  337. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/box.py +0 -0
  338. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/editor.py +0 -0
  339. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/image.py +0 -0
  340. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/components/spinner.py +0 -0
  341. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/keybinding_hints.py +0 -0
  342. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/terminal.py +0 -0
  343. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/tui/theme.py +0 -0
  344. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/__init__.py +0 -0
  345. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/image_processing.py +0 -0
  346. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/secrets.py +0 -0
  347. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau/utils/version_check.py +0 -0
  348. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
  349. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/entry_points.txt +0 -0
  350. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tau_coding_agent.egg-info/top_level.txt +0 -0
  351. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_compaction.py +0 -0
  352. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_prompt.py +0 -0
  353. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_agent_types.py +0 -0
  354. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_branch_navigation.py +0 -0
  355. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_branch_summarization.py +0 -0
  356. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_builtin_watch.py +0 -0
  357. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_cli_inputs.py +0 -0
  358. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_command_execution_policy.py +0 -0
  359. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_command_registry.py +0 -0
  360. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_compaction.py +0 -0
  361. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_execution.py +0 -0
  362. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_engine_steering.py +0 -0
  363. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_extension_lifecycle.py +0 -0
  364. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_footer_model.py +0 -0
  365. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_command.py +0 -0
  366. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_model_selector_modal.py +0 -0
  367. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_package_resources.py +0 -0
  368. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_resource_loader.py +0 -0
  369. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_runtime_sdk.py +0 -0
  370. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_selector_controller.py +0 -0
  371. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_session_manager.py +0 -0
  372. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_subagents_extension.py +0 -0
  373. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_thinking_render.py +0 -0
  374. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tool_registry.py +0 -0
  375. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_tui_layout_sizing.py +1 -1
  376. {tau_coding_agent-0.4.7 → tau_coding_agent-0.5.0}/tests/test_ui_context.py +0 -0
  377. {tau_coding_agent-0.4.7 → 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.7
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
@@ -29,6 +29,7 @@ Requires-Dist: grapheme==0.6.0
29
29
  Requires-Dist: arrow==1.4.0
30
30
  Provides-Extra: tools
31
31
  Requires-Dist: ripgrep>=14.0.0; extra == "tools"
32
+ Requires-Dist: ast-grep-cli>=0.44.0; extra == "tools"
32
33
  Dynamic: license-file
33
34
 
34
35
  # Tau (τ)
@@ -74,7 +75,7 @@ tau # Interactive mode
74
75
  tau --resume # Resume most recent session
75
76
  tau --model claude-sonnet-4-6 # Use specific model
76
77
  tau --print "Summarize this repo" # One-shot mode
77
- tau -p anthropic --print "Explain this code" # Print mode with provider
78
+ tau --provider anthropic --print "Explain this code" # Print mode with provider
78
79
  tau --mode rpc # RPC mode for IDE extensions
79
80
  ```
80
81
 
@@ -82,13 +83,13 @@ tau --mode rpc # RPC mode for IDE extensions
82
83
 
83
84
  ## Features
84
85
 
85
- - **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
86
87
  - **Terminal UI** — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
87
88
  - **Rich media support** — Work with text files, images, audio files, and video files via file references or clipboard input
88
89
  - **Session management** — Persistent sessions with branching, forking, and resuming capabilities
89
- - **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
90
91
  - **Plugin system** — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
91
- - **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
92
93
  - **Context management** — Automatic context compaction and branch summarization for long conversations
93
94
  - **Python API** — Embed Tau in your own applications programmatically
94
95
  - **Multiple run modes** — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
@@ -173,7 +174,7 @@ See [SECURITY.md](SECURITY.md) for detailed practices and vulnerability reportin
173
174
  ```bash
174
175
  python -m pytest # Run tests
175
176
  pyright tau/ # Type checking
176
- python -m tau --mode tui # Launch from source
177
+ python -m tau # Launch from source
177
178
  ```
178
179
 
179
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.
@@ -183,8 +183,9 @@ Extensions can react to lifecycle events:
183
183
  - `session_start` - Session begins
184
184
  - `turn_start` - New inference turn starts
185
185
  - `turn_end` - Turn completes (before rendering)
186
- - `tool_execute` - Tool is about to execute
187
- - `tool_complete` - Tool execution finished
186
+ - `tool_call` - Tool call can be inspected, rewritten, or blocked
187
+ - `tool_result` - Tool result can be inspected or rewritten
188
+ - `tool_execution_start` / `tool_execution_end` - Tool handler lifecycle
188
189
  - `tui_ready` - TUI is ready for input
189
190
  - `tui_exit` - TUI is exiting
190
191
  - `compaction_start` - Compaction begins
@@ -194,12 +195,13 @@ Hooks allow extensions to inspect state, modify messages, or react to events.
194
195
 
195
196
  ## Provider Abstraction
196
197
 
197
- All LLM providers (Anthropic, OpenAI, Google, Mistral, Ollama, Azure) implement a common interface:
198
+ Providers describe authentication, endpoints, and the API adapter used for a
199
+ request. Adapters stream normalized `LLMEvent` objects:
198
200
 
199
201
  ```python
200
- class Provider:
201
- async def call(messages, tools, model) -> Response
202
- async def stream(messages, tools, model) -> AsyncIterator[Event]
202
+ class BaseAPI:
203
+ async def stream(self, context, model, options) -> AsyncIterator[LLMEvent]:
204
+ ...
203
205
  ```
204
206
 
205
207
  The inference module handles provider-specific details (API keys, endpoints, format conversions).
@@ -217,7 +219,7 @@ Tools are executed in a sandboxed environment:
217
219
  6. Result is serialized and added to context
218
220
  ```
219
221
 
220
- 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.
221
223
  `RuntimeConfig` can allow or exclude tools by name. Custom tools are registered
222
224
  via extensions or passed directly to the runtime.
223
225
 
@@ -289,9 +291,9 @@ React to lifecycle events:
289
291
 
290
292
  ```python
291
293
  def register(tau):
292
- async def on_tool_complete(event):
294
+ async def on_tool_end(event, ctx):
293
295
  print(f"Tool {event.tool_name} finished")
294
- tau.on_hook("tool_complete", on_tool_complete)
296
+ tau.on("tool_execution_end", on_tool_end)
295
297
  ```
296
298
 
297
299
  ### Dialogs
@@ -6,7 +6,7 @@ Tau stores credentials for LLM providers in `~/.tau/auth.json`. This page explai
6
6
 
7
7
  For each provider, tau resolves credentials in this order:
8
8
 
9
- 1. **Runtime override** — set via `--api-key` on the CLI (not persisted)
9
+ 1. **Runtime override** — set programmatically through `AuthManager` (not persisted)
10
10
  2. **Stored credential** — read from `~/.tau/auth.json`
11
11
  3. **Environment variable** — `{PROVIDER}_API_KEY` (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`)
12
12
 
@@ -69,13 +69,11 @@ export OPENAI_API_KEY="sk-..."
69
69
 
70
70
  No file is needed — tau picks these up automatically.
71
71
 
72
- ### CLI flag (one-off override)
72
+ ### Runtime override
73
73
 
74
- ```bash
75
- tau --api-key sk-ant-...
76
- ```
77
-
78
- Not stored. Only applies to the current session.
74
+ Embedding applications may call
75
+ `auth_manager.set_runtime_api_key(provider, key)`. The main Tau CLI does not
76
+ provide an `--api-key` flag.
79
77
 
80
78
  ### Auth file (direct edit)
81
79
 
@@ -91,7 +89,9 @@ Run `/login` from within a session. Tau asks which authentication type to use:
91
89
 
92
90
  ### `/logout` command
93
91
 
94
- Run `/logout` to open a list of providers that have credentials stored in `~/.tau/auth.json`. Select one to remove it. Environment variables and CLI `--api-key` flags are unaffected.
92
+ Run `/logout` to open a list of providers that have credentials stored in
93
+ `~/.tau/auth.json`. Select one to remove it. Environment variables and
94
+ programmatic runtime overrides are unaffected.
95
95
 
96
96
  ## Auth File Format
97
97
 
@@ -120,7 +120,7 @@ From Python (e.g. in an extension):
120
120
  status = auth_manager.get_auth_status("anthropic")
121
121
  # status.configured → True / False
122
122
  # status.source → "stored" | "runtime" | "env" | None
123
- # status.label → env var name or "--api-key" if runtime
123
+ # status.label → env var name or "runtime override"
124
124
  ```
125
125
 
126
126
  ## Security
@@ -3,7 +3,7 @@
3
3
  ## Usage
4
4
 
5
5
  ```bash
6
- tau [OPTIONS] [MESSAGE]
6
+ tau [OPTIONS] COMMAND [ARGS]...
7
7
  ```
8
8
 
9
9
  Use `--prompt TEXT` for a non-interactive prompt. Piped stdin can supply or
@@ -13,14 +13,20 @@ augment it.
13
13
 
14
14
  | Option | Short | Description |
15
15
  |--------|-------|-------------|
16
+ | `--version` | `-v` | Print the installed version |
17
+ | `--debug` | `-d` | Enable debug logging |
18
+ | `--cwd PATH` | `-c` | Set the working directory |
16
19
  | `--prompt` | `-p` | Run a non-interactive prompt |
20
+ | `--output-format` | `-f` | Non-interactive output: `text` or `json` |
21
+ | `--quiet` | `-q` | Hide the non-interactive spinner |
17
22
  | `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
18
23
  | `--model` | | Model ID, or `provider/model` shorthand (e.g. `groq/llama-3.3-70b-versatile`) |
19
- | `--theme` | `-t` | UI theme: `default`, `dracula`, `nord`, `gruvbox`, `catppuccin`, `ayu-dark`, `everforest`, `horizon`, `kanagawa`, `material-ocean`, `monokai`, `night-owl`, `one-dark`, `rose-pine`, `solarized-dark`, `tokyo-night`, or a custom name |
24
+ | `--theme` | `-t` | UI theme: `dark`, `light`, or an installed custom theme |
20
25
  | `--resume [ID]` | `-r` | Resume the most recent or a specified session |
21
26
  | `--fork ID` | | Fork a specified session at startup |
22
27
  | `--session-dir PATH` | | Override session storage |
23
28
  | `--name NAME` | | Set the session display name at startup |
29
+ | `--system TEXT` | `-s` | Replace the generated system prompt |
24
30
  | `--ephemeral` | `-e` | Don't save this session to disk |
25
31
  | `--approve` | `-a` | Trust project-local files (extensions, settings, context files) for this run |
26
32
  | `--no-approve` | `-na` | Don't trust project-local files for this run |
@@ -66,7 +72,7 @@ that order.
66
72
  Emit a JSON event stream on stdout:
67
73
 
68
74
  ```bash
69
- tau --mode json "Your prompt"
75
+ tau --mode json --prompt "Your prompt"
70
76
  ```
71
77
 
72
78
  Each line is a JSON object representing a lifecycle event (`agent_start`, `message_end`, etc.).
@@ -200,8 +206,8 @@ Events do **not** have an `id` field. Only responses do.
200
206
 
201
207
  | Command | Key fields | Description |
202
208
  |---------|-----------|-------------|
203
- | `bash` | `command` (required), `excludeFromContext?` | Run a shell command; output is added to the next LLM context |
204
- | `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 |
205
211
 
206
212
  ##### Session
207
213
 
@@ -345,8 +351,7 @@ An explicit `--provider` always overrides the inferred provider.
345
351
 
346
352
  ```bash
347
353
  tau --resume # continue most recent session
348
- tau --session abc123 # resume by session ID
349
- tau --session ~/.tau/sessions/proj/file.jsonl # resume by file path
354
+ tau --resume abc123 # resume by session ID
350
355
  tau --ephemeral # temporary session, nothing saved
351
356
  ```
352
357
 
@@ -360,13 +365,16 @@ Manage provider credentials.
360
365
  tau auth --help
361
366
  ```
362
367
 
368
+ Package management is available through `tau install`, `tau remove`,
369
+ `tau list`, and `tau update`.
370
+
363
371
  ## Environment Variables
364
372
 
365
373
  | Variable | Effect |
366
374
  |----------|--------|
367
375
  | `ANTHROPIC_API_KEY` | Anthropic API key |
368
376
  | `OPENAI_API_KEY` | OpenAI API key |
369
- | `GEMINI_API_KEY` | Google Gemini key |
377
+ | `GOOGLE_API_KEY` | Google Gemini key |
370
378
  | `<PROVIDER>_API_KEY` | API key for any provider (uppercased provider name) |
371
379
 
372
380
  Provider and model can also be set permanently in `settings.json` — see [Settings](settings.md).
@@ -4,15 +4,15 @@ This page covers setting up a development environment for tau.
4
4
 
5
5
  ## Prerequisites
6
6
 
7
- - Python 3.13 or higher
7
+ - Python 3.12 or higher
8
8
  - git
9
9
  - pip or uv (Python package manager)
10
10
 
11
11
  ## Clone the Repository
12
12
 
13
13
  ```bash
14
- git clone https://github.com/yourusername/tau.git
15
- cd tau
14
+ git clone https://github.com/Jeomon/Tau.git
15
+ cd Tau
16
16
  ```
17
17
 
18
18
  ## Install Dependencies
@@ -63,7 +63,7 @@ tau --theme dark
63
63
  ### Run with Debug Logging
64
64
 
65
65
  ```bash
66
- TAU_LOG_LEVEL=DEBUG tau
66
+ tau --debug
67
67
  ```
68
68
 
69
69
  ### Run Tests
@@ -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
@@ -215,7 +202,7 @@ logger.error("Error message")
215
202
  Enable debug logging:
216
203
 
217
204
  ```bash
218
- TAU_LOG_LEVEL=DEBUG tau
205
+ tau --debug
219
206
  ```
220
207
 
221
208
  ## IDE Setup
@@ -61,6 +61,10 @@
61
61
  "title": "Extensions",
62
62
  "path": "extensions.md"
63
63
  },
64
+ {
65
+ "title": "Extension Settings",
66
+ "path": "extension-settings.md"
67
+ },
64
68
  {
65
69
  "title": "Themes",
66
70
  "path": "themes.md"
@@ -80,6 +84,10 @@
80
84
  {
81
85
  "title": "Authentication",
82
86
  "path": "auth.md"
87
+ },
88
+ {
89
+ "title": "HTTP Proxy",
90
+ "path": "http-proxy.md"
83
91
  }
84
92
  ]
85
93
  },
@@ -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):
@@ -656,6 +656,19 @@ def register(tau):
656
656
 
657
657
  ## Keyboard shortcuts
658
658
 
659
+ `register_shortcut` takes a literal key combination. Tau compares extension
660
+ shortcuts with the effective `KeyMap`.
661
+ Safety-critical editor and application bindings are reserved and cannot be
662
+ replaced by extensions. An extension may replace a non-reserved global
663
+ application binding, with a warning. If multiple extensions register the same
664
+ key, the last loaded extension wins and Tau reports a warning.
665
+
666
+ Some low-level editor operations that are not exposed as `KeyMap` actions,
667
+ such as cursor movement, are still consumed directly by the focused editor.
668
+ Registering an extension shortcut does not replace those operations. See
669
+ [Customising keybindings](keybindings.md#customising-keybindings) for the
670
+ available actions.
671
+
659
672
  ```python
660
673
  def register(tau):
661
674
  @tau.register_shortcut("ctrl+g", "Open greeter")
@@ -844,7 +857,7 @@ def register(tau):
844
857
  | `tau.register_tool(tool)` | Add a tool the agent can call |
845
858
  | `tau.register_command(name, desc, handler, aliases=[], get_argument_completions=None, argument_hint=None, requires_idle=True)` | Add a `/name` slash command; set `requires_idle=False` only for UI-only or read-only handlers safe during an active turn |
846
859
  | `tau.on(event, handler)` / `@tau.on(event)` | Subscribe to a lifecycle event |
847
- | `tau.register_shortcut(key, desc, handler)` | Bind a keyboard shortcut |
860
+ | `tau.register_shortcut(key, desc, handler)` | Bind a literal keyboard shortcut |
848
861
  | `tau.append_prompt(text)` | Append text to the system prompt |
849
862
  | `tau.register_theme(name, theme)` | Add a named theme to the picker |
850
863
  | `tau.register_message_renderer(type, fn)` | Render custom message types in the TUI |
@@ -1315,7 +1328,7 @@ ctx.ui.paste_to_editor("@file.py ") # insert at cursor position
1315
1328
 
1316
1329
  ```python
1317
1330
  names = ctx.ui.get_all_themes() # list[str] of theme names
1318
- 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
1319
1332
  theme = ctx.ui.theme # LayoutTheme — current active theme
1320
1333
  ```
1321
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
 
@@ -378,4 +381,4 @@ OAuth login/refresh operations (e.g., GitHub Copilot, OpenAI, Anthropic) also re
378
381
 
379
382
  - [Settings](settings.md) — Main settings reference
380
383
  - [Extensions](extensions.md) — Extensions can also use proxy settings via SettingsManager
381
- - [Providers](providers.md) — Model provider configuration (some may have custom proxy handling)
384
+ - [Inference Providers](inference-providers.md) — Model provider configuration
@@ -6,7 +6,7 @@ Tau is a Python CLI framework for building interactive agent applications. It pr
6
6
 
7
7
  Tau allows you to:
8
8
  - Chat with LLMs (Claude, GPT, Gemini, Mistral, Ollama) in a terminal UI
9
- - Execute tools (terminal commands, read/write files, fetch web content) within conversations
9
+ - Execute tools (terminal commands, file operations, search) within conversations
10
10
  - Save and resume sessions with branching and forking
11
11
  - Extend Tau with custom tools, commands, themes, and skills
12
12
  - Embed Tau in Python applications as a library
@@ -53,14 +53,13 @@ Tau allows you to:
53
53
 
54
54
  - [Project Structure](project-structure.md) - Codebase organization and module breakdown
55
55
  - [Development Setup](development.md) - Local development environment and testing
56
- - [Implementation Summary](IMPLEMENTATION_SUMMARY.md) - Recent changes and features
57
56
 
58
57
  ## Reference
59
58
 
60
59
  - [CLI Reference](cli-reference.md) - All flags, modes (interactive/print/json/rpc)
61
60
  - [Settings Reference](settings.md) - Complete settings schema
62
61
  - [Session Format](sessions.md) - JSONL file format and structure
63
- - [Hooks & Events](extensions.md#hooks) - All available hooks and events
62
+ - [Hooks & Events](extensions.md#event-hooks) - All available hooks and events
64
63
 
65
64
  ---
66
65