tau-coding-agent 0.7.6__tar.gz → 0.7.8__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 (564) hide show
  1. {tau_coding_agent-0.7.6/tau_coding_agent.egg-info → tau_coding_agent-0.7.8}/PKG-INFO +7 -6
  2. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/README.md +6 -5
  3. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/cli-reference.md +19 -0
  4. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/installation.md +11 -0
  5. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/pyproject.toml +2 -1
  6. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/__init__.py +75 -0
  7. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/computer.py +306 -0
  8. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/README.md +941 -0
  9. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/__init__.py +396 -0
  10. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/controls.py +2284 -0
  11. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/core.py +2056 -0
  12. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/enums.py +982 -0
  13. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/events.py +416 -0
  14. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/patterns.py +478 -0
  15. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/desktop/__init__.py +3 -0
  16. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/desktop/config.py +26 -0
  17. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/desktop/service.py +222 -0
  18. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/tree/__init__.py +12 -0
  19. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/tree/config.py +109 -0
  20. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/tree/service.py +410 -0
  21. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/tree/views.py +122 -0
  22. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/watchdog/__init__.py +3 -0
  23. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/watchdog/service.py +98 -0
  24. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/manifest.json +33 -0
  25. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/router.py +41 -0
  26. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/state.py +53 -0
  27. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/types.py +199 -0
  28. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/desktop/__init__.py +3 -0
  29. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/desktop/service.py +252 -0
  30. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/__init__.py +13 -0
  31. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/cache_utils.py +121 -0
  32. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/config.py +74 -0
  33. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/service.py +737 -0
  34. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/utils.py +18 -0
  35. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/tree/views.py +155 -0
  36. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/__init__.py +5 -0
  37. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/controls.py +5803 -0
  38. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/core.py +2575 -0
  39. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/enums.py +2120 -0
  40. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/events.py +84 -0
  41. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/exceptions.py +102 -0
  42. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/uia/patterns.py +2158 -0
  43. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/watchdog/__init__.py +1 -0
  44. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/watchdog/event_handlers.py +66 -0
  45. tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/windows/watchdog/service.py +236 -0
  46. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/footer/model.py +8 -6
  47. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/__init__.py +4 -0
  48. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/engines/base.py +8 -0
  49. tau_coding_agent-0.7.8/tau/builtins/extensions/web/engines/ddgs_engine.py +166 -0
  50. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/engines/tavily_engine.py +5 -0
  51. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/console/cli.py +42 -0
  52. tau_coding_agent-0.7.8/tau/console/commands/doctor.py +647 -0
  53. tau_coding_agent-0.7.8/tau/console/commands/serve.py +41 -0
  54. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/engine/service.py +1 -0
  55. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/openai_codex_responses.py +11 -4
  56. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/openai_responses.py +32 -2
  57. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/utils.py +16 -0
  58. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/session.py +7 -2
  59. tau_coding_agent-0.7.8/tau/modes/serve/mode.py +72 -0
  60. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/packages/manager.py +12 -1
  61. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/runtime/types.py +7 -0
  62. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/settings/paths.py +12 -0
  63. tau_coding_agent-0.7.8/tau/tui/components/__init__.py +0 -0
  64. tau_coding_agent-0.7.8/tau/utils/__init__.py +0 -0
  65. tau_coding_agent-0.7.8/tau/utils/logging.py +33 -0
  66. tau_coding_agent-0.7.8/tau/utils/timing.py +58 -0
  67. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8/tau_coding_agent.egg-info}/PKG-INFO +7 -6
  68. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau_coding_agent.egg-info/SOURCES.txt +51 -0
  69. tau_coding_agent-0.7.8/tests/test_doctor.py +629 -0
  70. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_openai_codex_responses_lite.py +15 -1
  71. tau_coding_agent-0.7.8/tests/test_openai_responses_extra_body.py +43 -0
  72. tau_coding_agent-0.7.8/tests/test_package_manager_venv.py +70 -0
  73. tau_coding_agent-0.7.8/tests/test_startup_timing.py +95 -0
  74. tau_coding_agent-0.7.6/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -146
  75. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/LICENSE +0 -0
  76. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/MANIFEST.in +0 -0
  77. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/architecture.md +0 -0
  78. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/auth.md +0 -0
  79. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/creating-tools.md +0 -0
  80. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/development.md +0 -0
  81. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/docs.json +0 -0
  82. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/engine.md +0 -0
  83. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/extension-settings.md +0 -0
  84. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/extensions.md +0 -0
  85. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/http-proxy.md +0 -0
  86. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/index.md +0 -0
  87. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/inference-providers.md +0 -0
  88. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/inference.md +0 -0
  89. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/keybindings.md +0 -0
  90. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/messages.md +0 -0
  91. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/project-context.md +0 -0
  92. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/project-structure.md +0 -0
  93. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/prompts.md +0 -0
  94. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/python-api.md +0 -0
  95. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/quickstart.md +0 -0
  96. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/sessions.md +0 -0
  97. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/settings.md +0 -0
  98. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/skills.md +0 -0
  99. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/themes.md +0 -0
  100. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/tools.md +0 -0
  101. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/tui.md +0 -0
  102. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/docs/usage.md +0 -0
  103. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/setup.cfg +0 -0
  104. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/__init__.py +0 -0
  105. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/__init__.py +0 -0
  106. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/embedded.py +0 -0
  107. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/prompt/__init__.py +0 -0
  108. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/prompt/builder.py +0 -0
  109. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/prompt/types.py +0 -0
  110. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/service.py +0 -0
  111. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/agent/types.py +0 -0
  112. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/auth/manager.py +0 -0
  113. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/auth/storage.py +0 -0
  114. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/auth/types.py +0 -0
  115. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/__init__.py +0 -0
  116. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/commands/__init__.py +0 -0
  117. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/commands/clear.py +0 -0
  118. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/commands/compact.py +0 -0
  119. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/commands/reload.py +0 -0
  120. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/commands/session.py +0 -0
  121. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/ask_user/__init__.py +0 -0
  122. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/ask_user/component.py +0 -0
  123. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/ask_user/manifest.json +0 -0
  124. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/ask_user/schema.py +0 -0
  125. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/ask_user/tool.py +0 -0
  126. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/btw/__init__.py +0 -0
  127. /tau_coding_agent-0.7.6/tau/builtins/extensions/web/tools/__init__.py → /tau_coding_agent-0.7.8/tau/builtins/extensions/computer_use/macos/ax/py.typed +0 -0
  128. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/footer/__init__.py +0 -0
  129. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/footer/git.py +0 -0
  130. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/footer/utils.py +0 -0
  131. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/header/__init__.py +0 -0
  132. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/loop/README.md +0 -0
  133. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/loop/__init__.py +0 -0
  134. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/loop/dispatch.py +0 -0
  135. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/loop/duration.py +0 -0
  136. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/loop/state.py +0 -0
  137. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/sandbox/__init__.py +0 -0
  138. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/sandbox/manager.py +0 -0
  139. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/sandbox/manifest.json +0 -0
  140. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
  141. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/__init__.py +0 -0
  142. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
  143. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
  144. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
  145. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
  146. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
  147. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
  148. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
  149. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
  150. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/agents.py +0 -0
  151. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/manifest.json +0 -0
  152. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/subagent_schema.py +0 -0
  153. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
  154. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/todo/__init__.py +0 -0
  155. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/todo/manifest.json +0 -0
  156. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/todo/todo_schema.py +0 -0
  157. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/todo/todo_tool.py +0 -0
  158. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/watch/__init__.py +0 -0
  159. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/engines/__init__.py +0 -0
  160. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
  161. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
  162. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/manifest.json +0 -0
  163. {tau_coding_agent-0.7.6/tau/builtins/models → tau_coding_agent-0.7.8/tau/builtins/extensions/web/tools}/__init__.py +0 -0
  164. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/tools/fetch.py +0 -0
  165. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/web/tools/search.py +0 -0
  166. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/__init__.py +0 -0
  167. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
  168. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/manifest.json +0 -0
  169. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/model.py +0 -0
  170. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/runner.py +0 -0
  171. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
  172. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/extensions/workflow/store.py +0 -0
  173. {tau_coding_agent-0.7.6/tau/builtins/providers → tau_coding_agent-0.7.8/tau/builtins/models}/__init__.py +0 -0
  174. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/models/audio.py +0 -0
  175. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/models/image.py +0 -0
  176. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/models/text.py +0 -0
  177. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/models/video.py +0 -0
  178. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/commit.md +0 -0
  179. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/docs.md +0 -0
  180. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/explain.md +0 -0
  181. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/fix.md +0 -0
  182. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/refactor.md +0 -0
  183. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/review.md +0 -0
  184. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/prompts/test.md +0 -0
  185. {tau_coding_agent-0.7.6/tau/console → tau_coding_agent-0.7.8/tau/builtins/providers}/__init__.py +0 -0
  186. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/providers/audio.py +0 -0
  187. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/providers/image.py +0 -0
  188. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/providers/text.py +0 -0
  189. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/providers/video.py +0 -0
  190. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/skills/code-review/SKILL.md +0 -0
  191. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/skills/debug/SKILL.md +0 -0
  192. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/skills/git-commit/SKILL.md +0 -0
  193. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
  194. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
  195. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/ayu-dark.yaml +0 -0
  196. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/catppuccin.yaml +0 -0
  197. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/dark.yaml +0 -0
  198. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/dracula.yaml +0 -0
  199. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/everforest.yaml +0 -0
  200. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/gruvbox.yaml +0 -0
  201. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/horizon.yaml +0 -0
  202. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/kanagawa.yaml +0 -0
  203. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/light.yaml +0 -0
  204. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/material-ocean.yaml +0 -0
  205. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/monokai.yaml +0 -0
  206. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/night-owl.yaml +0 -0
  207. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/nord.yaml +0 -0
  208. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/one-dark.yaml +0 -0
  209. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/rose-pine.yaml +0 -0
  210. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/solarized-dark.yaml +0 -0
  211. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/themes/tokyo-night.yaml +0 -0
  212. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/__init__.py +0 -0
  213. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/edit.py +0 -0
  214. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/glob.py +0 -0
  215. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/grep.py +0 -0
  216. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/ls.py +0 -0
  217. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/read.py +0 -0
  218. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/terminal.py +0 -0
  219. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/utils.py +0 -0
  220. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/builtins/tools/write.py +0 -0
  221. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/commands/__init__.py +0 -0
  222. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/commands/registry.py +0 -0
  223. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/commands/types.py +0 -0
  224. {tau_coding_agent-0.7.6/tau/console/commands → tau_coding_agent-0.7.8/tau/console}/__init__.py +0 -0
  225. {tau_coding_agent-0.7.6/tau/core → tau_coding_agent-0.7.8/tau/console/commands}/__init__.py +0 -0
  226. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/console/commands/auth.py +0 -0
  227. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/console/commands/packages.py +0 -0
  228. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/console/commands/update.py +0 -0
  229. {tau_coding_agent-0.7.6/tau/inference/api → tau_coding_agent-0.7.8/tau/core}/__init__.py +0 -0
  230. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/core/registry.py +0 -0
  231. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/engine/__init__.py +0 -0
  232. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/engine/types.py +0 -0
  233. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/__init__.py +0 -0
  234. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/api.py +0 -0
  235. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/context.py +0 -0
  236. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/loader.py +0 -0
  237. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/runtime.py +0 -0
  238. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/extensions/settings.py +0 -0
  239. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/__init__.py +0 -0
  240. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/engine.py +0 -0
  241. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/inference.py +0 -0
  242. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/runtime.py +0 -0
  243. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/service.py +0 -0
  244. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/session.py +0 -0
  245. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/tui.py +0 -0
  246. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/hooks/types.py +0 -0
  247. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/__init__.py +0 -0
  248. {tau_coding_agent-0.7.6/tau/inference/api/audio → tau_coding_agent-0.7.8/tau/inference/api}/__init__.py +0 -0
  249. {tau_coding_agent-0.7.6/tau/inference/api/image → tau_coding_agent-0.7.8/tau/inference/api/audio}/__init__.py +0 -0
  250. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/base.py +0 -0
  251. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/builtins.py +0 -0
  252. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
  253. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/gemini_audio.py +0 -0
  254. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/openai_audio.py +0 -0
  255. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/registry.py +0 -0
  256. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/sarvam_audio.py +0 -0
  257. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/service.py +0 -0
  258. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/audio/utils.py +0 -0
  259. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/availability.py +0 -0
  260. {tau_coding_agent-0.7.6/tau/inference/api/text → tau_coding_agent-0.7.8/tau/inference/api/image}/__init__.py +0 -0
  261. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/base.py +0 -0
  262. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/builtins.py +0 -0
  263. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/gemini_image.py +0 -0
  264. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/openai_image.py +0 -0
  265. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/openrouter.py +0 -0
  266. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/registry.py +0 -0
  267. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/image/service.py +0 -0
  268. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/registry.py +0 -0
  269. {tau_coding_agent-0.7.6/tau/inference/api/video → tau_coding_agent-0.7.8/tau/inference/api/text}/__init__.py +0 -0
  270. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/anthropic_claude_code.py +0 -0
  271. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/anthropic_messages.py +0 -0
  272. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/anthropic_vertex.py +0 -0
  273. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/base.py +0 -0
  274. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/builtins.py +0 -0
  275. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/dialect.py +0 -0
  276. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/gemini_generate.py +0 -0
  277. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/github_copilot_chat.py +0 -0
  278. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/google_antigravity.py +0 -0
  279. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/google_vertex.py +0 -0
  280. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/mistral_chat.py +0 -0
  281. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/ollama_chat.py +0 -0
  282. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/openai_completions.py +0 -0
  283. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/openai_vertex.py +0 -0
  284. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/registry.py +0 -0
  285. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/service.py +0 -0
  286. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/types.py +0 -0
  287. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/text/xai_responses.py +0 -0
  288. {tau_coding_agent-0.7.6/tau/inference/model → tau_coding_agent-0.7.8/tau/inference/api/video}/__init__.py +0 -0
  289. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/base.py +0 -0
  290. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/builtins.py +0 -0
  291. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/fal_video.py +0 -0
  292. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/openrouter_video.py +0 -0
  293. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/registry.py +0 -0
  294. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/service.py +0 -0
  295. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/api/video/zai_video.py +0 -0
  296. {tau_coding_agent-0.7.6/tau/inference/provider → tau_coding_agent-0.7.8/tau/inference/model}/__init__.py +0 -0
  297. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/local/__init__.py +0 -0
  298. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/local/llamacpp.py +0 -0
  299. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/local/lmstudio.py +0 -0
  300. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/local/ollama.py +0 -0
  301. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/local/vllm.py +0 -0
  302. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/registry.py +0 -0
  303. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/model/types.py +0 -0
  304. {tau_coding_agent-0.7.6/tau/message → tau_coding_agent-0.7.8/tau/inference/provider}/__init__.py +0 -0
  305. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/__init__.py +0 -0
  306. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
  307. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/github_copilot.py +0 -0
  308. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/google_antigravity.py +0 -0
  309. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/openai_codex.py +0 -0
  310. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/pkce.py +0 -0
  311. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/types.py +0 -0
  312. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/utils.py +0 -0
  313. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/oauth/xai_grok.py +0 -0
  314. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/registry.py +0 -0
  315. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/provider/types.py +0 -0
  316. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/types.py +0 -0
  317. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/inference/utils.py +0 -0
  318. {tau_coding_agent-0.7.6/tau/modes → tau_coding_agent-0.7.8/tau/message}/__init__.py +0 -0
  319. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/message/types.py +0 -0
  320. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/message/utils.py +0 -0
  321. {tau_coding_agent-0.7.6/tau/modes/interactive → tau_coding_agent-0.7.8/tau/modes}/__init__.py +0 -0
  322. {tau_coding_agent-0.7.6/tau/modes/interactive/components → tau_coding_agent-0.7.8/tau/modes/interactive}/__init__.py +0 -0
  323. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/agent_hooks.py +0 -0
  324. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/app.py +0 -0
  325. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/__init__.py +0 -0
  326. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/appearance.py +0 -0
  327. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/auth.py +0 -0
  328. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/context.py +0 -0
  329. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/extensions.py +0 -0
  330. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/misc.py +0 -0
  331. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/commands/model.py +0 -0
  332. {tau_coding_agent-0.7.6/tau/modes/print → tau_coding_agent-0.7.8/tau/modes/interactive/components}/__init__.py +0 -0
  333. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/command_palette.py +0 -0
  334. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/config_selector.py +0 -0
  335. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/extension_selector.py +0 -0
  336. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/file_picker.py +0 -0
  337. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/layout.py +0 -0
  338. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/message_list.py +0 -0
  339. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/model_selector.py +0 -0
  340. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/oauth_selector.py +0 -0
  341. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/overlays.py +0 -0
  342. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/selector_controller.py +0 -0
  343. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/session_selector.py +0 -0
  344. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/settings_selector.py +0 -0
  345. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/theme_selector.py +0 -0
  346. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/thinking_selector.py +0 -0
  347. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/tree_selector.py +0 -0
  348. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/trust_screen.py +0 -0
  349. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/components/voice_selector.py +0 -0
  350. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/input_handler.py +0 -0
  351. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/interactive/ui_context.py +0 -0
  352. {tau_coding_agent-0.7.6/tau/tui/components → tau_coding_agent-0.7.8/tau/modes/print}/__init__.py +0 -0
  353. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/rpc/__init__.py +0 -0
  354. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/rpc/mode.py +0 -0
  355. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/modes/rpc/types.py +0 -0
  356. {tau_coding_agent-0.7.6/tau/utils → tau_coding_agent-0.7.8/tau/modes/serve}/__init__.py +0 -0
  357. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/packages/__init__.py +0 -0
  358. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/packages/types.py +0 -0
  359. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/packages/utils.py +0 -0
  360. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/prompts/expand.py +0 -0
  361. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/prompts/loader.py +0 -0
  362. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/prompts/registry.py +0 -0
  363. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/prompts/types.py +0 -0
  364. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/resources/__init__.py +0 -0
  365. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/resources/loader.py +0 -0
  366. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/resources/types.py +0 -0
  367. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/runtime/dependencies.py +0 -0
  368. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/runtime/service.py +0 -0
  369. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/session/branch_summarization.py +0 -0
  370. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/session/compaction.py +0 -0
  371. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/session/manager.py +0 -0
  372. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/session/types.py +0 -0
  373. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/session/utils.py +0 -0
  374. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/settings/manager.py +0 -0
  375. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/settings/storage.py +0 -0
  376. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/settings/types.py +0 -0
  377. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/settings/utils.py +0 -0
  378. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/skills/loader.py +0 -0
  379. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/skills/registry.py +0 -0
  380. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/skills/types.py +0 -0
  381. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/telemetry/__init__.py +0 -0
  382. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/telemetry/service.py +0 -0
  383. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/telemetry/types.py +0 -0
  384. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/themes/loader.py +0 -0
  385. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/themes/registry.py +0 -0
  386. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/themes/types.py +0 -0
  387. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tool/__init__.py +0 -0
  388. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tool/registry.py +0 -0
  389. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tool/render.py +0 -0
  390. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tool/types.py +0 -0
  391. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/trust/__init__.py +0 -0
  392. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/trust/manager.py +0 -0
  393. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/trust/types.py +0 -0
  394. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/trust/utils.py +0 -0
  395. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/__init__.py +0 -0
  396. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/ansi_bridge.py +0 -0
  397. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/autocomplete.py +0 -0
  398. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/backend.py +0 -0
  399. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/buffer.py +0 -0
  400. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/component.py +0 -0
  401. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/box.py +0 -0
  402. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/editor.py +0 -0
  403. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/image.py +0 -0
  404. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/select_list.py +0 -0
  405. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/simple_picker.py +0 -0
  406. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/spinner.py +0 -0
  407. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/text_input.py +0 -0
  408. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/components/widget_bridge.py +0 -0
  409. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/frame.py +0 -0
  410. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/geometry.py +0 -0
  411. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/input.py +0 -0
  412. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/keybinding_hints.py +0 -0
  413. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/layout.py +0 -0
  414. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/markdown.py +0 -0
  415. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/palette.py +0 -0
  416. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/service.py +0 -0
  417. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/style.py +0 -0
  418. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/terminal.py +0 -0
  419. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/testing.py +0 -0
  420. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/text.py +0 -0
  421. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/theme.py +0 -0
  422. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/utils.py +0 -0
  423. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widget.py +0 -0
  424. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/__init__.py +0 -0
  425. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/barchart.py +0 -0
  426. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/block.py +0 -0
  427. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/calendar.py +0 -0
  428. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/canvas.py +0 -0
  429. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/chart.py +0 -0
  430. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/clear.py +0 -0
  431. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/gauge.py +0 -0
  432. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/list.py +0 -0
  433. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/paragraph.py +0 -0
  434. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/scrollbar.py +0 -0
  435. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/sparkline.py +0 -0
  436. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/symbols.py +0 -0
  437. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/table.py +0 -0
  438. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/tui/widgets/tabs.py +0 -0
  439. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/utils/format.py +0 -0
  440. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/utils/http_proxy.py +0 -0
  441. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/utils/image_processing.py +0 -0
  442. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/utils/secrets.py +0 -0
  443. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau/utils/version_check.py +0 -0
  444. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
  445. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau_coding_agent.egg-info/entry_points.txt +0 -0
  446. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau_coding_agent.egg-info/requires.txt +0 -0
  447. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tau_coding_agent.egg-info/top_level.txt +0 -0
  448. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_agent_compaction.py +0 -0
  449. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_agent_hooks.py +0 -0
  450. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_agent_prompt.py +0 -0
  451. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_agent_types.py +0 -0
  452. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_ansi.py +0 -0
  453. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_ansi_bridge_legacy_image.py +0 -0
  454. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_anthropic_tool_history.py +0 -0
  455. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_ask_user_extension.py +0 -0
  456. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_audio_transcription_apis.py +0 -0
  457. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_auth_command.py +0 -0
  458. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_auth_manager.py +0 -0
  459. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_auth_storage.py +0 -0
  460. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_autocomplete_modifiers.py +0 -0
  461. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_branch_navigation.py +0 -0
  462. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_branch_summarization.py +0 -0
  463. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_builtin_tools.py +0 -0
  464. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_builtin_watch.py +0 -0
  465. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_cli_inputs.py +0 -0
  466. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_cmd_copy.py +0 -0
  467. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_command_execution_policy.py +0 -0
  468. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_command_registry.py +0 -0
  469. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_compaction.py +0 -0
  470. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_component_buffer_bridge.py +0 -0
  471. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_diff.py +0 -0
  472. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_editor_protocol.py +0 -0
  473. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_engine_execution.py +0 -0
  474. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_engine_length_and_live_tools.py +0 -0
  475. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_engine_steering.py +0 -0
  476. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_engine_types.py +0 -0
  477. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_escape_behavior.py +0 -0
  478. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_extension_api.py +0 -0
  479. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_extension_lifecycle.py +0 -0
  480. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_footer_model.py +0 -0
  481. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_footer_utils.py +0 -0
  482. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_fuzzy.py +0 -0
  483. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_gemini_generate.py +0 -0
  484. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_google_antigravity.py +0 -0
  485. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_google_vertex.py +0 -0
  486. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_http_proxy.py +0 -0
  487. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_image_processing.py +0 -0
  488. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_inference_api_text_utils.py +0 -0
  489. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_inference_dialect.py +0 -0
  490. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_inference_error_utils.py +0 -0
  491. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_inference_types.py +0 -0
  492. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_inference_utils.py +0 -0
  493. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_input_handler_paste.py +0 -0
  494. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_keybindings.py +0 -0
  495. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_layout_render_cells.py +0 -0
  496. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_local_model_discovery.py +0 -0
  497. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_markdown.py +0 -0
  498. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_message_list_frozen.py +0 -0
  499. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_message_types.py +0 -0
  500. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_message_utils.py +0 -0
  501. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_audio_modality.py +0 -0
  502. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_availability.py +0 -0
  503. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_command.py +0 -0
  504. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_file_modality.py +0 -0
  505. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_registry.py +0 -0
  506. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_selector_modal.py +0 -0
  507. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_model_types.py +0 -0
  508. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_oauth_utils.py +0 -0
  509. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_package_resources.py +0 -0
  510. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_packages_utils.py +0 -0
  511. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_peer_extension.py +0 -0
  512. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_pkce.py +0 -0
  513. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_prompts_expand.py +0 -0
  514. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_prompts_loader.py +0 -0
  515. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_prompts_registry.py +0 -0
  516. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_provider_audio_content.py +0 -0
  517. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_provider_file_content.py +0 -0
  518. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_provider_registry.py +0 -0
  519. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_resource_loader.py +0 -0
  520. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_rpc_mode.py +0 -0
  521. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_runtime_sdk.py +0 -0
  522. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_scrollback_raw_writes.py +0 -0
  523. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_scrollback_terminal.py +0 -0
  524. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_secrets.py +0 -0
  525. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_select_list_render_cells.py +0 -0
  526. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_selector_controller.py +0 -0
  527. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_session_manager.py +0 -0
  528. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_session_trust_persist.py +0 -0
  529. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_session_types.py +0 -0
  530. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_session_utils.py +0 -0
  531. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_settings_manager.py +0 -0
  532. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_settings_paths.py +0 -0
  533. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_settings_storage.py +0 -0
  534. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_settings_utils.py +0 -0
  535. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_skills_loader.py +0 -0
  536. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_skills_registry.py +0 -0
  537. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_strip_control_chars.py +0 -0
  538. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_subagent_context.py +0 -0
  539. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_telemetry.py +0 -0
  540. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_text_input.py +0 -0
  541. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_text_input_render_cells.py +0 -0
  542. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_text_llm_invoke.py +0 -0
  543. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_text_llm_model_resolution.py +0 -0
  544. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_theme_loader.py +0 -0
  545. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_themes_registry.py +0 -0
  546. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_thinking_render.py +0 -0
  547. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tool_registry.py +0 -0
  548. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tool_render.py +0 -0
  549. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tree_branch_restore.py +0 -0
  550. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_trust_manager.py +0 -0
  551. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_trust_utils.py +0 -0
  552. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_capabilities.py +0 -0
  553. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_child_rows.py +0 -0
  554. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_input.py +0 -0
  555. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_layout_sizing.py +0 -0
  556. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_public_api.py +0 -0
  557. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_renderer.py +0 -0
  558. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_select_list.py +0 -0
  559. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_theme.py +0 -0
  560. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_tui_utils.py +0 -0
  561. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_ui_context.py +0 -0
  562. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_utils_hashline.py +0 -0
  563. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/tests/test_version_check.py +0 -0
  564. {tau_coding_agent-0.7.6 → tau_coding_agent-0.7.8}/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.7.6
3
+ Version: 0.7.8
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
@@ -141,11 +141,12 @@ Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-
141
141
  ### Subcommands
142
142
 
143
143
  ```bash
144
- tau auth # Manage provider credentials (login/logout, list)
145
- tau install # Install a package (extension/skill/theme)
146
- tau remove # Remove an installed package
147
- tau list # List installed packages
148
- tau update # Update installed packages
144
+ tau auth # Manage provider credentials (login/logout, list)
145
+ tau doctor # Diagnose config, auth, models, extensions, sessions, packages (--fix to repair)
146
+ tau install # Install a package (extension/skill/theme)
147
+ tau remove # Remove an installed package
148
+ tau list # List installed packages
149
+ tau update # Update installed packages
149
150
  ```
150
151
 
151
152
  ### Interactive slash commands
@@ -102,11 +102,12 @@ Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-
102
102
  ### Subcommands
103
103
 
104
104
  ```bash
105
- tau auth # Manage provider credentials (login/logout, list)
106
- tau install # Install a package (extension/skill/theme)
107
- tau remove # Remove an installed package
108
- tau list # List installed packages
109
- tau update # Update installed packages
105
+ tau auth # Manage provider credentials (login/logout, list)
106
+ tau doctor # Diagnose config, auth, models, extensions, sessions, packages (--fix to repair)
107
+ tau install # Install a package (extension/skill/theme)
108
+ tau remove # Remove an installed package
109
+ tau list # List installed packages
110
+ tau update # Update installed packages
110
111
  ```
111
112
 
112
113
  ### Interactive slash commands
@@ -15,6 +15,7 @@ augment it.
15
15
  |--------|-------|-------------|
16
16
  | `--version` | `-v` | Print the installed version |
17
17
  | `--debug` | `-d` | Enable debug logging |
18
+ | `--startup` | | Print per-phase startup timing diagnostics to stderr (settings, model/LLM, session manager, resources, extensions, agent) |
18
19
  | `--cwd PATH` | `-c` | Set the working directory |
19
20
  | `--prompt` | `-p` | Run a non-interactive prompt |
20
21
  | `--output-format` | `-f` | Non-interactive output: `text` or `json` |
@@ -384,6 +385,24 @@ Manage provider credentials.
384
385
  tau auth --help
385
386
  ```
386
387
 
388
+ ### `tau doctor`
389
+
390
+ Diagnose Tau's configuration, credentials, model setup, extensions, session
391
+ storage, logs, environment, and installed packages. Reports each check as
392
+ pass/warn/fail; exits non-zero if anything failed.
393
+
394
+ ```bash
395
+ tau doctor # report only
396
+ tau doctor --json # machine-readable output
397
+ tau doctor --fix # apply safe, reversible repairs:
398
+ # - refresh expired OAuth tokens
399
+ # - remove dangling extension entries
400
+ # - quarantine corrupt session files into .corrupt/
401
+ ```
402
+
403
+ `--fix` never rewrites `settings.json`/`auth.json` directly, reinstalls
404
+ packages, or touches anything that isn't easily reversible.
405
+
387
406
  Package management is available through `tau install`, `tau remove`,
388
407
  `tau list`, and `tau update`.
389
408
 
@@ -154,6 +154,17 @@ This removes the tau command but leaves configuration and session data in `~/.ta
154
154
 
155
155
  ## Troubleshooting
156
156
 
157
+ Run `tau doctor` first — it checks settings/auth file integrity, credential
158
+ status (including whether stored OAuth tokens are still valid), model/provider
159
+ resolution, extensions, session storage, logs, and installed packages in one
160
+ pass. Add `--fix` to auto-repair the safe, reversible cases (expired OAuth
161
+ tokens, dangling extension entries, corrupt session files).
162
+
163
+ ```bash
164
+ tau doctor
165
+ tau doctor --fix
166
+ ```
167
+
157
168
  ### No Models Found
158
169
 
159
170
  Check that your API key is set correctly:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tau-coding-agent"
7
- version = "0.7.6"
7
+ version = "0.7.8"
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"
@@ -84,4 +84,5 @@ dev = [
84
84
  "ruff>=0.4.0",
85
85
  "mypy==1.19.1",
86
86
  "pyright>=1.1.360",
87
+ "pytest-asyncio==1.3.0",
87
88
  ]
@@ -0,0 +1,75 @@
1
+ """computer_use — control the local desktop (macOS Accessibility API / Windows UI Automation).
2
+
3
+ Registers a single ``computer`` tool that drives the mouse, keyboard, and
4
+ application windows through a platform-neutral ``Desktop`` interface (see
5
+ ``types.py``); the concrete implementation is picked at registration time by
6
+ ``router.get_desktop_class()`` based on the host OS.
7
+
8
+ Disabled by default (see manifest.json) — this tool controls the real mouse
9
+ and keyboard, so it should be turned on deliberately via /settings or
10
+ extensions.list settings.
11
+
12
+ {
13
+ "extensions": {
14
+ "list": [{ "path": "computer_use", "settings": { "enabled": true } }]
15
+ }
16
+ }
17
+
18
+ While the desktop session is open (after a computer action='open' call), a
19
+ compact desktop-state summary is injected ephemerally into LLM context at the
20
+ start of every turn, the same way the todo extension re-asserts its live
21
+ list: via the "context" hook returning
22
+ ContextEventResult(ephemeral_messages=[...]). It is never written to session
23
+ history, so it always reflects the current screen rather than a stale
24
+ snapshot from whenever the model last looked.
25
+
26
+ The `mode` setting (see manifest.json) controls what that summary contains:
27
+ "screenshot" (an image of the screen), "accessibility_tree" (the default —
28
+ focused/open windows plus accessible interactive elements, see state.py), or
29
+ "both". The screenshot is only ever included if the active model actually
30
+ accepts image input (checked fresh every turn against Modality.Image, since
31
+ /model can switch models mid-session); otherwise the accessibility tree is
32
+ used instead so the turn still gets a usable observation.
33
+ """
34
+
35
+ from __future__ import annotations
36
+
37
+ from typing import TYPE_CHECKING
38
+
39
+ from .computer import ComputerTool
40
+ from .router import get_desktop_class
41
+ from .state import build_state_message
42
+
43
+ if TYPE_CHECKING:
44
+ from tau.extensions.api import ExtensionAPI
45
+ from tau.extensions.context import ExtensionContext
46
+
47
+
48
+ def register(tau: ExtensionAPI) -> None:
49
+ config = tau.config or {}
50
+ if not config.get("enabled", False):
51
+ return
52
+ try:
53
+ desktop = get_desktop_class()()
54
+ except RuntimeError:
55
+ return # unsupported platform (e.g. Linux)
56
+
57
+ tau.register_tool(ComputerTool(desktop))
58
+
59
+ mode = config.get("mode", "accessibility_tree")
60
+
61
+ def _inject_desktop_state(_event, _ctx: ExtensionContext):
62
+ from tau.hooks.engine import ContextEventResult
63
+ from tau.inference.model.types import Modality
64
+
65
+ model = getattr(_ctx.llm, "model", None)
66
+ supports_image = model is not None and Modality.Image in model.input
67
+ message = build_state_message(desktop, mode, supports_image)
68
+ return ContextEventResult(ephemeral_messages=[message] if message is not None else [])
69
+
70
+ tau.on("context", _inject_desktop_state)
71
+
72
+ @tau.on("extension_unload")
73
+ async def _close_desktop(_event, _ctx: ExtensionContext) -> None:
74
+ if desktop.is_open:
75
+ desktop.close()
@@ -0,0 +1,306 @@
1
+ """computer — control the local desktop (click, type, scroll, window management, screenshots)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import Enum
6
+ from typing import TYPE_CHECKING
7
+
8
+ from pydantic import BaseModel, Field, model_validator
9
+
10
+ from tau.tool.render import call_line
11
+ from tau.tool.types import (
12
+ AbortSignal,
13
+ Tool,
14
+ ToolContext,
15
+ ToolExecutionUpdateCallback,
16
+ ToolInvocation,
17
+ ToolKind,
18
+ ToolResult,
19
+ )
20
+
21
+ if TYPE_CHECKING:
22
+ from .types import Desktop
23
+
24
+
25
+ class ComputerAction(str, Enum):
26
+ """Desktop automation action: open, close, click, type, wait, app, scroll, move, drag, shortcut."""
27
+
28
+ open = "open"
29
+ close = "close"
30
+ click = "click"
31
+ type = "type"
32
+ wait = "wait"
33
+ app = "app"
34
+ scroll = "scroll"
35
+ move = "move"
36
+ drag = "drag"
37
+ shortcut = "shortcut"
38
+
39
+
40
+ class AppMode(str, Enum):
41
+ launch = "launch"
42
+ switch = "switch"
43
+ resize = "resize"
44
+ move = "move"
45
+
46
+
47
+ class MouseButton(str, Enum):
48
+ left = "left"
49
+ right = "right"
50
+ middle = "middle"
51
+
52
+
53
+ class ScrollOrientation(str, Enum):
54
+ vertical = "vertical"
55
+ horizontal = "horizontal"
56
+
57
+
58
+ class ScrollDirection(str, Enum):
59
+ up = "up"
60
+ down = "down"
61
+ left = "left"
62
+ right = "right"
63
+
64
+
65
+ class CaretPosition(str, Enum):
66
+ start = "start"
67
+ idle = "idle"
68
+ end = "end"
69
+
70
+
71
+ class ComputerSchema(BaseModel):
72
+ """Input schema for computer; action-specific required fields validated via model_validator."""
73
+
74
+ action: ComputerAction = Field(
75
+ description=(
76
+ "Computer action to perform: open (enable desktop access), "
77
+ "close (release desktop access), click, type, wait, app, "
78
+ "scroll, move, drag, or shortcut."
79
+ )
80
+ )
81
+ loc: tuple[int, int] | None = Field(default=None, description="Target screen coordinate as [x, y].")
82
+ x: int | None = Field(default=None, description="Target x coordinate. Used when loc is omitted.")
83
+ y: int | None = Field(default=None, description="Target y coordinate. Used when loc is omitted.")
84
+ text: str | None = Field(default=None, description="Text to type. Required for action=type.")
85
+ duration: float = Field(default=1.0, ge=0, le=60, description="Seconds to wait for action=wait.")
86
+ button: MouseButton = Field(default=MouseButton.left, description="Mouse button for action=click.")
87
+ clicks: int = Field(default=1, ge=0, le=3, description="Number of clicks. Use 0 to only move the pointer.")
88
+ clear: bool = Field(default=False, description="Clear focused text before typing.")
89
+ press_enter: bool = Field(default=False, description="Press Enter after typing.")
90
+ caret_position: CaretPosition = Field(default=CaretPosition.idle, description="Caret movement before typing.")
91
+ app_mode: AppMode = Field(default=AppMode.launch, description="Application operation for action=app.")
92
+ name: str | None = Field(default=None, description="Application name for action=app.")
93
+ size: tuple[int, int] | None = Field(default=None, description="Window size as [width, height] for app resize.")
94
+ orientation: ScrollOrientation = Field(default=ScrollOrientation.vertical, description="Scroll axis.")
95
+ direction: ScrollDirection = Field(default=ScrollDirection.down, description="Scroll direction.")
96
+ wheel_times: int = Field(default=1, ge=1, le=20, description="Number of wheel ticks for action=scroll.")
97
+ shortcut: str | None = Field(default=None, description="Keyboard shortcut such as command+c or ctrl+c.")
98
+
99
+ @model_validator(mode="after")
100
+ def _check_action_fields(self) -> ComputerSchema:
101
+ loc = self.loc or ((self.x, self.y) if self.x is not None and self.y is not None else None)
102
+ if (
103
+ self.action in {ComputerAction.click, ComputerAction.type, ComputerAction.move, ComputerAction.drag}
104
+ and loc is None
105
+ ):
106
+ raise ValueError("'loc' or both 'x' and 'y' are required for this action")
107
+ if self.action == ComputerAction.type and self.text is None:
108
+ raise ValueError("'text' is required when action='type'")
109
+ if self.action == ComputerAction.shortcut and not self.shortcut:
110
+ raise ValueError("'shortcut' is required when action='shortcut'")
111
+ if self.action == ComputerAction.app:
112
+ if self.app_mode in {AppMode.launch, AppMode.switch} and not self.name:
113
+ raise ValueError("'name' is required when action='app' with launch or switch")
114
+ if self.app_mode == AppMode.resize and self.size is None:
115
+ raise ValueError("'size' is required when action='app' with resize")
116
+ if self.app_mode == AppMode.move and loc is None:
117
+ raise ValueError("'loc' or both 'x' and 'y' are required when action='app' with move")
118
+ return self
119
+
120
+
121
+ def _render_call(args: dict, _streaming: bool = False) -> list[str]:
122
+ action = args.get("action", "")
123
+ detail = {
124
+ "type": args.get("text", ""),
125
+ "app": args.get("name", ""),
126
+ "shortcut": args.get("shortcut", ""),
127
+ }.get(action, "")
128
+ return call_line("computer", action, detail)
129
+
130
+
131
+ class ComputerTool(Tool):
132
+ """Desktop automation tool that drives mouse, keyboard, and application management."""
133
+
134
+ def __init__(self, desktop: Desktop) -> None:
135
+ self._desktop = desktop
136
+ super().__init__(
137
+ name="computer",
138
+ description=(
139
+ "Control the local desktop through one action-based computer tool. "
140
+ "Use open to enable desktop access (required before any other action) and "
141
+ "close to release it. Use click/type/scroll/move/drag for pointer and text input, "
142
+ "shortcut for keyboard shortcuts, wait for delays, and app for "
143
+ "launching, switching, resizing, or moving applications."
144
+ ),
145
+ schema=ComputerSchema,
146
+ kind=ToolKind.Execute,
147
+ render_call=_render_call,
148
+ prompt_guidelines=(
149
+ "Call action='open' once before any other computer action, and action='close' "
150
+ "when finished controlling the desktop. Prefer the dedicated read/write/edit/"
151
+ "terminal tools over the computer tool for anything achievable without a GUI."
152
+ ),
153
+ )
154
+
155
+ def get_display_name(self, args: dict) -> str:
156
+ action = args.get("action", "")
157
+ text = args.get("text") or ""
158
+ name = args.get("name") or ""
159
+ app_mode = args.get("app_mode") or ""
160
+ shortcut = args.get("shortcut") or ""
161
+ duration = args.get("duration", "")
162
+ if action == "open":
163
+ return "Opening desktop"
164
+ if action == "close":
165
+ return "Closing desktop"
166
+ if action == "click":
167
+ return "Clicking"
168
+ if action == "type":
169
+ return f"Typing: {text[:30]}" if text else "Typing"
170
+ if action == "wait":
171
+ return f"Waiting {duration}s" if duration else "Waiting"
172
+ if action == "app":
173
+ if app_mode == "launch":
174
+ return f"Launching: {name}" if name else "Launching app"
175
+ if app_mode == "switch":
176
+ return f"Switching to: {name}" if name else "Switching app"
177
+ return f"App: {app_mode}" if app_mode else "App"
178
+ if action == "scroll":
179
+ return "Scrolling"
180
+ if action == "move":
181
+ return "Moving cursor"
182
+ if action == "drag":
183
+ return "Dragging"
184
+ if action == "shortcut":
185
+ return f"Shortcut: {shortcut}" if shortcut else "Shortcut"
186
+ return "Computer"
187
+
188
+ async def execute(
189
+ self,
190
+ invocation: ToolInvocation,
191
+ tool_execution_update_callback: ToolExecutionUpdateCallback | None = None,
192
+ signal: AbortSignal | None = None,
193
+ context: ToolContext | None = None,
194
+ ) -> ToolResult:
195
+ try:
196
+ params = ComputerSchema.model_validate(invocation.params)
197
+ except Exception as exc:
198
+ return ToolResult.error(id=invocation.id, content=f"computer: {exc}")
199
+
200
+ async def update(text: str) -> None:
201
+ if tool_execution_update_callback is not None:
202
+ await tool_execution_update_callback(ToolResult.ok(invocation.id, text))
203
+
204
+ desktop = self._desktop
205
+ try:
206
+ if params.action == ComputerAction.open:
207
+ if desktop.is_open:
208
+ return ToolResult.ok(id=invocation.id, content="Desktop is already open.")
209
+ await update("Opening desktop…")
210
+ desktop.open()
211
+ return ToolResult.ok(id=invocation.id, content="Desktop access enabled.")
212
+
213
+ if params.action == ComputerAction.close:
214
+ if not desktop.is_open:
215
+ return ToolResult.ok(id=invocation.id, content="Desktop is not open.")
216
+ await update("Closing desktop…")
217
+ desktop.close()
218
+ return ToolResult.ok(id=invocation.id, content="Desktop access released.")
219
+
220
+ if not desktop.is_open:
221
+ return ToolResult.error(
222
+ id=invocation.id,
223
+ content="Desktop is not accessible. Use action='open' to enable desktop control first.",
224
+ )
225
+
226
+ await self._announce(update, params)
227
+ content = self._run_action(desktop, params)
228
+ return ToolResult.ok(id=invocation.id, content=content)
229
+ except Exception as exc:
230
+ return ToolResult.error(id=invocation.id, content=f"computer: {exc}")
231
+
232
+ async def _announce(self, update, params: ComputerSchema) -> None:
233
+ loc = self._loc(params)
234
+ if params.action == ComputerAction.click:
235
+ coord = f"({loc[0]}, {loc[1]})" if loc else ""
236
+ clicks = f" ×{params.clicks}" if params.clicks > 1 else ""
237
+ await update(f"Clicking {params.button.value}{clicks} at {coord}…")
238
+ elif params.action == ComputerAction.type:
239
+ preview = (params.text or "")[:40]
240
+ preview += "…" if len(params.text or "") > 40 else ""
241
+ await update(f'Typing "{preview}"…')
242
+ elif params.action == ComputerAction.wait:
243
+ await update(f"Waiting {params.duration:g}s…")
244
+ elif params.action == ComputerAction.app:
245
+ label = params.name or params.app_mode.value
246
+ await update(f"App {params.app_mode.value}: {label}…")
247
+ elif params.action == ComputerAction.scroll:
248
+ await update(f"Scrolling {params.direction.value} {params.wheel_times}×…")
249
+ elif params.action == ComputerAction.move:
250
+ coord = f"({loc[0]}, {loc[1]})" if loc else ""
251
+ await update(f"Moving pointer to {coord}…")
252
+ elif params.action == ComputerAction.drag:
253
+ coord = f"({loc[0]}, {loc[1]})" if loc else ""
254
+ await update(f"Dragging to {coord}…")
255
+ elif params.action == ComputerAction.shortcut:
256
+ await update(f"Shortcut {params.shortcut}…")
257
+
258
+ def _run_action(self, desktop: Desktop, params: ComputerSchema) -> str:
259
+ loc = self._loc(params)
260
+ if params.action == ComputerAction.click:
261
+ assert loc is not None
262
+ desktop.click(loc, button=params.button.value, clicks=params.clicks)
263
+ return f"Clicked {params.button.value} at {loc[0]},{loc[1]}."
264
+ if params.action == ComputerAction.type:
265
+ assert loc is not None
266
+ desktop.type(
267
+ loc,
268
+ text=params.text or "",
269
+ caret_position=params.caret_position.value,
270
+ clear=params.clear,
271
+ press_enter=params.press_enter,
272
+ )
273
+ return "Typed text."
274
+ if params.action == ComputerAction.wait:
275
+ desktop.wait(params.duration)
276
+ return f"Waited {params.duration:g} seconds."
277
+ if params.action == ComputerAction.app:
278
+ result = desktop.app(mode=params.app_mode.value, name=params.name, loc=loc, size=params.size)
279
+ return str(result or "App action completed.")
280
+ if params.action == ComputerAction.scroll:
281
+ desktop.scroll(
282
+ loc=loc,
283
+ orientation=params.orientation.value,
284
+ direction=params.direction.value,
285
+ wheel_times=params.wheel_times,
286
+ )
287
+ return "Scrolled."
288
+ if params.action == ComputerAction.move:
289
+ assert loc is not None
290
+ desktop.move(loc)
291
+ return f"Moved pointer to {loc[0]},{loc[1]}."
292
+ if params.action == ComputerAction.drag:
293
+ assert loc is not None
294
+ desktop.drag(loc)
295
+ return f"Dragged pointer to {loc[0]},{loc[1]}."
296
+ if params.action == ComputerAction.shortcut:
297
+ desktop.shortcut(params.shortcut or "")
298
+ return f"Pressed shortcut {params.shortcut}."
299
+ return f"Unknown action: {params.action.value}"
300
+
301
+ def _loc(self, params: ComputerSchema) -> tuple[int, int] | None:
302
+ if params.loc is not None:
303
+ return params.loc
304
+ if params.x is not None and params.y is not None:
305
+ return (params.x, params.y)
306
+ return None