tau-coding-agent 0.7.1__tar.gz → 0.7.2__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 (500) hide show
  1. {tau_coding_agent-0.7.1/tau_coding_agent.egg-info → tau_coding_agent-0.7.2}/PKG-INFO +1 -1
  2. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/pyproject.toml +1 -1
  3. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/google_antigravity.py +45 -5
  4. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/utils.py +13 -7
  5. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2/tau_coding_agent.egg-info}/PKG-INFO +1 -1
  6. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_google_antigravity.py +53 -2
  7. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/LICENSE +0 -0
  8. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/MANIFEST.in +0 -0
  9. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/README.md +0 -0
  10. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/architecture.md +0 -0
  11. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/auth.md +0 -0
  12. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/cli-reference.md +0 -0
  13. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/creating-tools.md +0 -0
  14. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/development.md +0 -0
  15. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/docs.json +0 -0
  16. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/engine.md +0 -0
  17. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/extension-settings.md +0 -0
  18. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/extensions.md +0 -0
  19. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/http-proxy.md +0 -0
  20. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/index.md +0 -0
  21. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/inference-providers.md +0 -0
  22. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/inference.md +0 -0
  23. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/installation.md +0 -0
  24. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/keybindings.md +0 -0
  25. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/messages.md +0 -0
  26. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/project-context.md +0 -0
  27. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/project-structure.md +0 -0
  28. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/prompts.md +0 -0
  29. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/python-api.md +0 -0
  30. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/quickstart.md +0 -0
  31. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/sessions.md +0 -0
  32. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/settings.md +0 -0
  33. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/skills.md +0 -0
  34. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/themes.md +0 -0
  35. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/tools.md +0 -0
  36. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/tui.md +0 -0
  37. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/docs/usage.md +0 -0
  38. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/setup.cfg +0 -0
  39. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/__init__.py +0 -0
  40. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/__init__.py +0 -0
  41. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/embedded.py +0 -0
  42. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/prompt/__init__.py +0 -0
  43. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/prompt/builder.py +0 -0
  44. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/prompt/types.py +0 -0
  45. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/service.py +0 -0
  46. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/agent/types.py +0 -0
  47. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/auth/manager.py +0 -0
  48. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/auth/storage.py +0 -0
  49. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/auth/types.py +0 -0
  50. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/__init__.py +0 -0
  51. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/commands/__init__.py +0 -0
  52. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/commands/clear.py +0 -0
  53. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/commands/compact.py +0 -0
  54. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/commands/reload.py +0 -0
  55. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/commands/session.py +0 -0
  56. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/ask_user/__init__.py +0 -0
  57. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/ask_user/component.py +0 -0
  58. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/ask_user/manifest.json +0 -0
  59. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/ask_user/schema.py +0 -0
  60. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/ask_user/tool.py +0 -0
  61. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/btw/__init__.py +0 -0
  62. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/footer/__init__.py +0 -0
  63. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/footer/git.py +0 -0
  64. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/footer/model.py +0 -0
  65. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/footer/utils.py +0 -0
  66. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/header/__init__.py +0 -0
  67. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/loop/README.md +0 -0
  68. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/loop/__init__.py +0 -0
  69. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/loop/dispatch.py +0 -0
  70. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/loop/duration.py +0 -0
  71. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/loop/state.py +0 -0
  72. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/sandbox/__init__.py +0 -0
  73. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/sandbox/manager.py +0 -0
  74. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/sandbox/manifest.json +0 -0
  75. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
  76. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/__init__.py +0 -0
  77. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
  78. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
  79. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
  80. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
  81. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
  82. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
  83. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
  84. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
  85. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/agents.py +0 -0
  86. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/manifest.json +0 -0
  87. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/subagent_schema.py +0 -0
  88. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
  89. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/todo/__init__.py +0 -0
  90. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/todo/manifest.json +0 -0
  91. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/todo/todo_schema.py +0 -0
  92. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/todo/todo_tool.py +0 -0
  93. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/watch/__init__.py +0 -0
  94. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/__init__.py +0 -0
  95. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/__init__.py +0 -0
  96. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/base.py +0 -0
  97. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
  98. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
  99. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
  100. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
  101. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/manifest.json +0 -0
  102. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/tools/__init__.py +0 -0
  103. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/tools/fetch.py +0 -0
  104. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/web/tools/search.py +0 -0
  105. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/__init__.py +0 -0
  106. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
  107. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/manifest.json +0 -0
  108. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/model.py +0 -0
  109. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/runner.py +0 -0
  110. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
  111. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/extensions/workflow/store.py +0 -0
  112. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/models/__init__.py +0 -0
  113. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/models/audio.py +0 -0
  114. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/models/image.py +0 -0
  115. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/models/text.py +0 -0
  116. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/models/video.py +0 -0
  117. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/commit.md +0 -0
  118. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/docs.md +0 -0
  119. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/explain.md +0 -0
  120. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/fix.md +0 -0
  121. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/refactor.md +0 -0
  122. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/review.md +0 -0
  123. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/prompts/test.md +0 -0
  124. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/providers/__init__.py +0 -0
  125. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/providers/audio.py +0 -0
  126. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/providers/image.py +0 -0
  127. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/providers/text.py +0 -0
  128. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/providers/video.py +0 -0
  129. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/skills/code-review/SKILL.md +0 -0
  130. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/skills/debug/SKILL.md +0 -0
  131. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/skills/git-commit/SKILL.md +0 -0
  132. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
  133. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
  134. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/ayu-dark.yaml +0 -0
  135. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/catppuccin.yaml +0 -0
  136. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/dark.yaml +0 -0
  137. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/dracula.yaml +0 -0
  138. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/everforest.yaml +0 -0
  139. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/gruvbox.yaml +0 -0
  140. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/horizon.yaml +0 -0
  141. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/kanagawa.yaml +0 -0
  142. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/light.yaml +0 -0
  143. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/material-ocean.yaml +0 -0
  144. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/monokai.yaml +0 -0
  145. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/night-owl.yaml +0 -0
  146. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/nord.yaml +0 -0
  147. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/one-dark.yaml +0 -0
  148. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/rose-pine.yaml +0 -0
  149. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/solarized-dark.yaml +0 -0
  150. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/themes/tokyo-night.yaml +0 -0
  151. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/__init__.py +0 -0
  152. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/edit.py +0 -0
  153. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/glob.py +0 -0
  154. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/grep.py +0 -0
  155. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/ls.py +0 -0
  156. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/read.py +0 -0
  157. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/terminal.py +0 -0
  158. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/utils.py +0 -0
  159. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/builtins/tools/write.py +0 -0
  160. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/commands/__init__.py +0 -0
  161. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/commands/registry.py +0 -0
  162. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/commands/types.py +0 -0
  163. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/__init__.py +0 -0
  164. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/cli.py +0 -0
  165. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/commands/__init__.py +0 -0
  166. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/commands/auth.py +0 -0
  167. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/commands/packages.py +0 -0
  168. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/console/commands/update.py +0 -0
  169. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/core/__init__.py +0 -0
  170. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/core/registry.py +0 -0
  171. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/engine/__init__.py +0 -0
  172. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/engine/service.py +0 -0
  173. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/engine/types.py +0 -0
  174. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/__init__.py +0 -0
  175. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/api.py +0 -0
  176. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/context.py +0 -0
  177. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/loader.py +0 -0
  178. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/runtime.py +0 -0
  179. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/extensions/settings.py +0 -0
  180. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/__init__.py +0 -0
  181. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/engine.py +0 -0
  182. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/inference.py +0 -0
  183. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/runtime.py +0 -0
  184. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/service.py +0 -0
  185. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/session.py +0 -0
  186. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/tui.py +0 -0
  187. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/hooks/types.py +0 -0
  188. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/__init__.py +0 -0
  189. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/__init__.py +0 -0
  190. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/__init__.py +0 -0
  191. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/base.py +0 -0
  192. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/builtins.py +0 -0
  193. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
  194. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/gemini_audio.py +0 -0
  195. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/openai_audio.py +0 -0
  196. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/registry.py +0 -0
  197. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/sarvam_audio.py +0 -0
  198. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/service.py +0 -0
  199. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/audio/utils.py +0 -0
  200. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/availability.py +0 -0
  201. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/__init__.py +0 -0
  202. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/base.py +0 -0
  203. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/builtins.py +0 -0
  204. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/gemini_image.py +0 -0
  205. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/openai_image.py +0 -0
  206. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/openrouter.py +0 -0
  207. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/registry.py +0 -0
  208. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/image/service.py +0 -0
  209. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/registry.py +0 -0
  210. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/__init__.py +0 -0
  211. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/anthropic_claude_code.py +0 -0
  212. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/anthropic_messages.py +0 -0
  213. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/anthropic_vertex.py +0 -0
  214. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/base.py +0 -0
  215. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/builtins.py +0 -0
  216. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/dialect.py +0 -0
  217. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/gemini_generate.py +0 -0
  218. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/github_copilot_chat.py +0 -0
  219. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/google_vertex.py +0 -0
  220. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/mistral_chat.py +0 -0
  221. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/ollama_chat.py +0 -0
  222. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/openai_codex_responses.py +0 -0
  223. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/openai_completions.py +0 -0
  224. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/openai_responses.py +0 -0
  225. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/openai_vertex.py +0 -0
  226. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/registry.py +0 -0
  227. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/service.py +0 -0
  228. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/types.py +0 -0
  229. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/text/xai_responses.py +0 -0
  230. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/__init__.py +0 -0
  231. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/base.py +0 -0
  232. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/builtins.py +0 -0
  233. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/fal_video.py +0 -0
  234. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/openrouter_video.py +0 -0
  235. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/registry.py +0 -0
  236. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/service.py +0 -0
  237. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/api/video/zai_video.py +0 -0
  238. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/model/__init__.py +0 -0
  239. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/model/registry.py +0 -0
  240. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/model/types.py +0 -0
  241. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/__init__.py +0 -0
  242. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/__init__.py +0 -0
  243. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/anthropic_claude_code.py +0 -0
  244. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/github_copilot.py +0 -0
  245. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/google_antigravity.py +0 -0
  246. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/openai_codex.py +0 -0
  247. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/pkce.py +0 -0
  248. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/types.py +0 -0
  249. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/utils.py +0 -0
  250. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/oauth/xai_grok.py +0 -0
  251. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/registry.py +0 -0
  252. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/provider/types.py +0 -0
  253. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/types.py +0 -0
  254. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/inference/utils.py +0 -0
  255. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/message/__init__.py +0 -0
  256. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/message/types.py +0 -0
  257. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/message/utils.py +0 -0
  258. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/__init__.py +0 -0
  259. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/__init__.py +0 -0
  260. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/agent_hooks.py +0 -0
  261. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/app.py +0 -0
  262. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/__init__.py +0 -0
  263. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/appearance.py +0 -0
  264. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/auth.py +0 -0
  265. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/context.py +0 -0
  266. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/extensions.py +0 -0
  267. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/misc.py +0 -0
  268. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/model.py +0 -0
  269. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/commands/session.py +0 -0
  270. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/__init__.py +0 -0
  271. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/command_palette.py +0 -0
  272. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/config_selector.py +0 -0
  273. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/extension_selector.py +0 -0
  274. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/file_picker.py +0 -0
  275. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/layout.py +0 -0
  276. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/message_list.py +0 -0
  277. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/model_selector.py +0 -0
  278. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/oauth_selector.py +0 -0
  279. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/overlays.py +0 -0
  280. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/selector_controller.py +0 -0
  281. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/session_selector.py +0 -0
  282. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/settings_selector.py +0 -0
  283. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/theme_selector.py +0 -0
  284. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/thinking_selector.py +0 -0
  285. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/tree_selector.py +0 -0
  286. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/trust_screen.py +0 -0
  287. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/components/voice_selector.py +0 -0
  288. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/input_handler.py +0 -0
  289. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/interactive/ui_context.py +0 -0
  290. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/print/__init__.py +0 -0
  291. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/rpc/__init__.py +0 -0
  292. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/rpc/mode.py +0 -0
  293. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/modes/rpc/types.py +0 -0
  294. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/packages/__init__.py +0 -0
  295. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/packages/manager.py +0 -0
  296. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/packages/types.py +0 -0
  297. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/packages/utils.py +0 -0
  298. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/prompts/expand.py +0 -0
  299. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/prompts/loader.py +0 -0
  300. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/prompts/registry.py +0 -0
  301. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/prompts/types.py +0 -0
  302. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/resources/__init__.py +0 -0
  303. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/resources/loader.py +0 -0
  304. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/resources/types.py +0 -0
  305. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/runtime/dependencies.py +0 -0
  306. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/runtime/service.py +0 -0
  307. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/runtime/types.py +0 -0
  308. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/session/branch_summarization.py +0 -0
  309. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/session/compaction.py +0 -0
  310. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/session/manager.py +0 -0
  311. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/session/types.py +0 -0
  312. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/session/utils.py +0 -0
  313. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/settings/manager.py +0 -0
  314. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/settings/paths.py +0 -0
  315. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/settings/storage.py +0 -0
  316. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/settings/types.py +0 -0
  317. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/settings/utils.py +0 -0
  318. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/skills/loader.py +0 -0
  319. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/skills/registry.py +0 -0
  320. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/skills/types.py +0 -0
  321. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/telemetry/__init__.py +0 -0
  322. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/telemetry/service.py +0 -0
  323. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/telemetry/types.py +0 -0
  324. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/themes/loader.py +0 -0
  325. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/themes/registry.py +0 -0
  326. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/themes/types.py +0 -0
  327. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tool/__init__.py +0 -0
  328. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tool/registry.py +0 -0
  329. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tool/render.py +0 -0
  330. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tool/types.py +0 -0
  331. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/trust/__init__.py +0 -0
  332. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/trust/manager.py +0 -0
  333. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/trust/types.py +0 -0
  334. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/trust/utils.py +0 -0
  335. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/__init__.py +0 -0
  336. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/ansi_bridge.py +0 -0
  337. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/autocomplete.py +0 -0
  338. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/backend.py +0 -0
  339. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/buffer.py +0 -0
  340. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/component.py +0 -0
  341. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/__init__.py +0 -0
  342. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/box.py +0 -0
  343. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/editor.py +0 -0
  344. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/image.py +0 -0
  345. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/select_list.py +0 -0
  346. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/simple_picker.py +0 -0
  347. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/spinner.py +0 -0
  348. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/text_input.py +0 -0
  349. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/components/widget_bridge.py +0 -0
  350. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/frame.py +0 -0
  351. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/geometry.py +0 -0
  352. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/input.py +0 -0
  353. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/keybinding_hints.py +0 -0
  354. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/layout.py +0 -0
  355. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/markdown.py +0 -0
  356. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/palette.py +0 -0
  357. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/service.py +0 -0
  358. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/style.py +0 -0
  359. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/terminal.py +0 -0
  360. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/testing.py +0 -0
  361. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/text.py +0 -0
  362. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/theme.py +0 -0
  363. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/utils.py +0 -0
  364. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widget.py +0 -0
  365. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/__init__.py +0 -0
  366. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/barchart.py +0 -0
  367. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/block.py +0 -0
  368. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/calendar.py +0 -0
  369. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/canvas.py +0 -0
  370. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/chart.py +0 -0
  371. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/clear.py +0 -0
  372. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/gauge.py +0 -0
  373. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/list.py +0 -0
  374. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/paragraph.py +0 -0
  375. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/scrollbar.py +0 -0
  376. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/sparkline.py +0 -0
  377. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/symbols.py +0 -0
  378. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/table.py +0 -0
  379. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/tui/widgets/tabs.py +0 -0
  380. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/__init__.py +0 -0
  381. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/format.py +0 -0
  382. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/http_proxy.py +0 -0
  383. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/image_processing.py +0 -0
  384. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/secrets.py +0 -0
  385. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau/utils/version_check.py +0 -0
  386. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau_coding_agent.egg-info/SOURCES.txt +0 -0
  387. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
  388. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau_coding_agent.egg-info/entry_points.txt +0 -0
  389. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau_coding_agent.egg-info/requires.txt +0 -0
  390. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tau_coding_agent.egg-info/top_level.txt +0 -0
  391. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_agent_compaction.py +0 -0
  392. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_agent_hooks.py +0 -0
  393. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_agent_prompt.py +0 -0
  394. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_agent_types.py +0 -0
  395. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_ansi.py +0 -0
  396. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_ansi_bridge_legacy_image.py +0 -0
  397. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_anthropic_tool_history.py +0 -0
  398. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_ask_user_extension.py +0 -0
  399. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_audio_transcription_apis.py +0 -0
  400. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_auth_command.py +0 -0
  401. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_auth_manager.py +0 -0
  402. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_auth_storage.py +0 -0
  403. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_autocomplete_modifiers.py +0 -0
  404. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_branch_navigation.py +0 -0
  405. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_branch_summarization.py +0 -0
  406. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_builtin_tools.py +0 -0
  407. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_builtin_watch.py +0 -0
  408. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_cli_inputs.py +0 -0
  409. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_cmd_copy.py +0 -0
  410. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_command_execution_policy.py +0 -0
  411. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_command_registry.py +0 -0
  412. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_compaction.py +0 -0
  413. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_component_buffer_bridge.py +0 -0
  414. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_diff.py +0 -0
  415. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_editor_protocol.py +0 -0
  416. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_engine_execution.py +0 -0
  417. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_engine_length_and_live_tools.py +0 -0
  418. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_engine_steering.py +0 -0
  419. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_engine_types.py +0 -0
  420. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_escape_behavior.py +0 -0
  421. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_extension_api.py +0 -0
  422. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_extension_lifecycle.py +0 -0
  423. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_footer_model.py +0 -0
  424. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_footer_utils.py +0 -0
  425. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_fuzzy.py +0 -0
  426. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_gemini_generate.py +0 -0
  427. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_google_vertex.py +0 -0
  428. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_http_proxy.py +0 -0
  429. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_image_processing.py +0 -0
  430. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_inference_api_text_utils.py +0 -0
  431. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_inference_dialect.py +0 -0
  432. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_inference_error_utils.py +0 -0
  433. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_inference_types.py +0 -0
  434. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_inference_utils.py +0 -0
  435. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_keybindings.py +0 -0
  436. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_layout_render_cells.py +0 -0
  437. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_markdown.py +0 -0
  438. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_message_list_frozen.py +0 -0
  439. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_message_types.py +0 -0
  440. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_message_utils.py +0 -0
  441. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_model_availability.py +0 -0
  442. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_model_command.py +0 -0
  443. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_model_registry.py +0 -0
  444. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_model_selector_modal.py +0 -0
  445. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_model_types.py +0 -0
  446. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_oauth_utils.py +0 -0
  447. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_package_resources.py +0 -0
  448. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_packages_utils.py +0 -0
  449. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_peer_extension.py +0 -0
  450. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_pkce.py +0 -0
  451. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_prompts_expand.py +0 -0
  452. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_prompts_loader.py +0 -0
  453. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_prompts_registry.py +0 -0
  454. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_provider_registry.py +0 -0
  455. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_resource_loader.py +0 -0
  456. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_rpc_mode.py +0 -0
  457. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_runtime_sdk.py +0 -0
  458. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_scrollback_raw_writes.py +0 -0
  459. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_scrollback_terminal.py +0 -0
  460. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_secrets.py +0 -0
  461. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_select_list_render_cells.py +0 -0
  462. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_selector_controller.py +0 -0
  463. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_session_manager.py +0 -0
  464. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_session_trust_persist.py +0 -0
  465. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_session_types.py +0 -0
  466. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_session_utils.py +0 -0
  467. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_settings_manager.py +0 -0
  468. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_settings_paths.py +0 -0
  469. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_settings_storage.py +0 -0
  470. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_settings_utils.py +0 -0
  471. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_skills_loader.py +0 -0
  472. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_skills_registry.py +0 -0
  473. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_strip_control_chars.py +0 -0
  474. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_subagent_context.py +0 -0
  475. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_telemetry.py +0 -0
  476. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_text_input.py +0 -0
  477. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_text_input_render_cells.py +0 -0
  478. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_text_llm_invoke.py +0 -0
  479. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_text_llm_model_resolution.py +0 -0
  480. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_theme_loader.py +0 -0
  481. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_themes_registry.py +0 -0
  482. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_thinking_render.py +0 -0
  483. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tool_registry.py +0 -0
  484. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tool_render.py +0 -0
  485. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tree_branch_restore.py +0 -0
  486. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_trust_manager.py +0 -0
  487. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_trust_utils.py +0 -0
  488. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_capabilities.py +0 -0
  489. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_child_rows.py +0 -0
  490. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_input.py +0 -0
  491. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_layout_sizing.py +0 -0
  492. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_public_api.py +0 -0
  493. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_renderer.py +0 -0
  494. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_select_list.py +0 -0
  495. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_theme.py +0 -0
  496. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_tui_utils.py +0 -0
  497. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_ui_context.py +0 -0
  498. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_utils_hashline.py +0 -0
  499. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/tests/test_version_check.py +0 -0
  500. {tau_coding_agent-0.7.1 → tau_coding_agent-0.7.2}/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.1
3
+ Version: 0.7.2
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tau-coding-agent"
7
- version = "0.7.1"
7
+ version = "0.7.2"
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"
@@ -232,6 +232,10 @@ def _messages_to_contents(
232
232
  ) -> tuple[str | None, list[dict[str, Any]]]:
233
233
  system: str | None = None
234
234
  raw: list[dict[str, Any]] = []
235
+ # Tool call ids whose functionCall was downgraded to plain text below (no
236
+ # thoughtSignature) — their matching ToolResultContent must be downgraded
237
+ # too, or the backend sees a tool_result with no corresponding tool_use.
238
+ downgraded_call_ids: set[str] = set()
235
239
 
236
240
  for msg in messages:
237
241
  match msg:
@@ -257,6 +261,13 @@ def _messages_to_contents(
257
261
  case TextContent():
258
262
  parts.append({"text": item.content})
259
263
  case ThinkingContent():
264
+ if not item.content:
265
+ # Claude's backend behind this API rejects a
266
+ # thought part with no text ("thinking.thinking:
267
+ # Field required") — drop no-op blocks left
268
+ # over from a provider/model switch instead of
269
+ # replaying them verbatim.
270
+ continue
260
271
  tp: dict[str, Any] = {"thought": True, "text": item.content}
261
272
  if item.signature and not distrust_thought_signatures:
262
273
  tp["thoughtSignature"] = item.signature
@@ -279,6 +290,8 @@ def _messages_to_contents(
279
290
  parts.append(
280
291
  {"text": f"[Tool Call: {item.name}]\nArguments: {args_str}"}
281
292
  )
293
+ if item.id:
294
+ downgraded_call_ids.add(item.id)
282
295
  else:
283
296
  function_call: dict[str, Any] = {
284
297
  "name": item.name,
@@ -296,6 +309,15 @@ def _messages_to_contents(
296
309
  parts = []
297
310
  for content in msg.contents:
298
311
  if isinstance(content, ToolResultContent):
312
+ if content.id and content.id in downgraded_call_ids:
313
+ # Matching functionCall was downgraded to text above
314
+ # (no thoughtSignature) — sending this as a
315
+ # functionResponse would reference a tool_use the
316
+ # backend never saw, so downgrade it too.
317
+ parts.append(
318
+ {"text": f"[Tool Result: {content.tool_name}]\n{tool_result_text(content)}"}
319
+ )
320
+ continue
299
321
  # functionResponse correlates to its functionCall by name (the
300
322
  # tool name, matching the functionCall.name above) — not by the
301
323
  # per-call id, which lives in its own "id" field.
@@ -422,18 +444,36 @@ class GoogleAntigravityAPI(BaseAPI):
422
444
  if schema is not None:
423
445
  generation_config["responseMimeType"] = "application/json"
424
446
  generation_config["responseSchema"] = schema
447
+ is_claude = "claude" in model.id
425
448
  if self.options.thinking_level is not None:
426
449
  from tau.inference.types import ThinkingBudgets
427
450
  from tau.inference.types import ThinkingLevel as _TL
428
451
 
429
452
  if self.options.thinking_level == _TL.Off:
430
- generation_config["thinkingConfig"] = {"thinkingBudget": 0}
453
+ generation_config["thinkingConfig"] = (
454
+ {"thinking_budget": 0} if is_claude else {"thinkingBudget": 0}
455
+ )
431
456
  else:
432
457
  budgets = self.options.thinking_budgets or ThinkingBudgets()
433
- generation_config["thinkingConfig"] = {
434
- "thinkingBudget": budgets.get(self.options.thinking_level),
435
- "includeThoughts": True,
436
- }
458
+ budget = budgets.get(self.options.thinking_level)
459
+ if is_claude:
460
+ # Antigravity's Claude backend only reliably returns thought
461
+ # parts when thinkingConfig is snake_case, and requires
462
+ # maxOutputTokens to exceed the thinking budget.
463
+ generation_config["thinkingConfig"] = {
464
+ "thinking_budget": budget,
465
+ "include_thoughts": True,
466
+ }
467
+ current_max = generation_config.get("maxOutputTokens")
468
+ if not current_max or current_max <= budget:
469
+ generation_config["maxOutputTokens"] = max(
470
+ budget + 8_192, model.max_output_tokens or 0
471
+ )
472
+ else:
473
+ generation_config["thinkingConfig"] = {
474
+ "thinkingBudget": budget,
475
+ "includeThoughts": True,
476
+ }
437
477
 
438
478
  inner: dict[str, Any] = {"contents": contents}
439
479
  if system:
@@ -400,13 +400,19 @@ def anthropic_messages_to_list(
400
400
  text_parts_asst.append(item.content)
401
401
  case ThinkingContent():
402
402
  if supports_thinking:
403
- parts.append(
404
- {
405
- "type": "thinking",
406
- "thinking": item.content,
407
- "signature": item.signature,
408
- }
409
- )
403
+ # Anthropic rejects a "thinking" block with an
404
+ # empty thinking field ("each thinking block
405
+ # must contain thinking") — drop no-op blocks
406
+ # (e.g. left over from a provider/model switch)
407
+ # instead of replaying them verbatim.
408
+ if item.content:
409
+ parts.append(
410
+ {
411
+ "type": "thinking",
412
+ "thinking": item.content,
413
+ "signature": item.signature,
414
+ }
415
+ )
410
416
  else:
411
417
  thinking_parts.append(item.content)
412
418
  case ToolCallContent():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tau-coding-agent
3
- Version: 0.7.1
3
+ Version: 0.7.2
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
@@ -14,12 +14,23 @@ Covers four related fixes to _messages_to_contents:
14
14
  back to a text part instead, for every model behind this API.
15
15
  4. thoughtSignature must not be replayed across a model switch mid-session,
16
16
  since it may not be valid bytes for whichever backend is now active.
17
+ 5. An empty ThinkingContent block (no text) must be dropped, not replayed as
18
+ a thought part with empty text — Claude's backend behind this API rejects
19
+ that with "thinking.thinking: Field required".
17
20
  """
18
21
 
19
22
  from __future__ import annotations
20
23
 
21
24
  from tau.inference.api.text.google_antigravity import _messages_to_contents
22
- from tau.message.types import AssistantMessage, ToolCallContent, ToolMessage, ToolResultContent, UserMessage
25
+ from tau.message.types import (
26
+ AssistantMessage,
27
+ TextContent,
28
+ ThinkingContent,
29
+ ToolCallContent,
30
+ ToolMessage,
31
+ ToolResultContent,
32
+ UserMessage,
33
+ )
23
34
 
24
35
  _SIGNATURE = {"thoughtSignature": "sig"}
25
36
 
@@ -52,7 +63,9 @@ def test_function_response_error_uses_error_key() -> None:
52
63
  # "result"/"isError") — older Gemini models tolerated the wrong shape.
53
64
  messages = [
54
65
  UserMessage.from_text("hi"),
55
- AssistantMessage(contents=[ToolCallContent(id="tc1", name="read_file", args={})]),
66
+ AssistantMessage(
67
+ contents=[ToolCallContent(id="tc1", name="read_file", args={}, metadata=_SIGNATURE)]
68
+ ),
56
69
  ToolMessage(
57
70
  contents=[
58
71
  ToolResultContent(
@@ -89,6 +102,44 @@ def test_gemini_model_omits_tool_call_id() -> None:
89
102
  assert "id" not in call
90
103
 
91
104
 
105
+ def test_unsigned_tool_call_downgrades_matching_result_too() -> None:
106
+ # If the functionCall has no thoughtSignature it's downgraded to plain
107
+ # text (see module docstring, point 3). Sending the paired
108
+ # ToolResultContent as a functionResponse in that case leaves a
109
+ # tool_result with no matching tool_use, which Claude rejects with
110
+ # "unexpected `tool_use_id` found in `tool_result` blocks". The result
111
+ # must be downgraded to text alongside its call.
112
+ messages = [
113
+ UserMessage.from_text("hi"),
114
+ AssistantMessage(contents=[ToolCallContent(id="tc1", name="read_file", args={"path": "x"})]),
115
+ ToolMessage(
116
+ contents=[ToolResultContent(id="tc1", content="file contents", tool_name="read_file")]
117
+ ),
118
+ ]
119
+
120
+ _, contents = _messages_to_contents(messages, "claude-sonnet-4-6")
121
+
122
+ for content in contents:
123
+ for part in content["parts"]:
124
+ assert "functionCall" not in part
125
+ assert "functionResponse" not in part
126
+
127
+
128
+ def test_empty_thinking_content_is_dropped() -> None:
129
+ messages = [
130
+ UserMessage.from_text("hi"),
131
+ AssistantMessage(
132
+ contents=[ThinkingContent(content=""), TextContent(content="hello there")]
133
+ ),
134
+ ]
135
+
136
+ _, contents = _messages_to_contents(messages, "claude-sonnet-4-6")
137
+
138
+ model_turn = next(c for c in contents if c["role"] == "model")
139
+ assert not any(p.get("thought") for p in model_turn["parts"])
140
+ assert {"text": "hello there"} in model_turn["parts"]
141
+
142
+
92
143
  def test_unsigned_tool_call_falls_back_to_text_on_gemini3() -> None:
93
144
  messages = [
94
145
  UserMessage.from_text("hi"),