deepagents-code 0.2.0__tar.gz → 0.2.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 (640) hide show
  1. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/AGENTS.md +30 -0
  2. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/CHANGELOG.md +55 -0
  3. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/PKG-INFO +22 -22
  4. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_build_info.py +1 -1
  5. deepagents_code-0.2.2/deepagents_code/_checkpointer_adapter.py +86 -0
  6. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_env_vars.py +29 -3
  7. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_git.py +8 -2
  8. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_js_cost.py +15 -0
  9. deepagents_code-0.2.2/deepagents_code/_langsmith_runtime.py +91 -0
  10. deepagents_code-0.2.2/deepagents_code/_run_queue_wakeup.py +156 -0
  11. deepagents_code-0.2.2/deepagents_code/_session_lock.py +184 -0
  12. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_textual_patches.py +5 -0
  13. deepagents_code-0.2.2/deepagents_code/_trace_redaction.py +145 -0
  14. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_version.py +1 -1
  15. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/agent.py +40 -5
  16. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/app.py +779 -176
  17. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/app.tcss +1 -1
  18. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/auto_mode.py +192 -16
  19. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/btw.py +176 -37
  20. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/btw_api.py +80 -1
  21. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/deepagents-plugin-discovery/SKILL.md +3 -1
  22. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/launch/_server_bootstrap.py +11 -1
  23. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/launch/server.py +62 -15
  24. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/launch/server_manager.py +97 -4
  25. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/non_interactive.py +39 -30
  26. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/remote_client.py +44 -0
  27. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/config.py +137 -11
  28. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/config_manifest.py +13 -1
  29. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/goal_tools.py +25 -9
  30. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/domain.py +6 -1
  31. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/transcript.py +24 -5
  32. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/sandbox_factory.py +69 -2
  33. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/local_context.py +85 -20
  34. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/main.py +165 -24
  35. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_tools.py +11 -0
  36. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/memory_guard.py +4 -0
  37. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/model_config.py +88 -14
  38. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/offload_api.py +84 -6
  39. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/__init__.py +4 -0
  40. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/adapters/mcp.py +2 -4
  41. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/adapters/skills.py +13 -9
  42. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/adapters/skills_middleware.py +4 -0
  43. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/commands_cli.py +127 -4
  44. deepagents_code-0.2.2/deepagents_code/plugins/discovery.py +835 -0
  45. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/models.py +55 -1
  46. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/store.py +40 -1
  47. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/server_graph.py +2 -0
  48. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/sessions.py +8 -2
  49. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/thread_ownership.py +59 -15
  50. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/__init__.py +57 -0
  51. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/content.py +41 -0
  52. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/models.py +8 -1
  53. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/state.py +25 -2
  54. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_links.py +43 -2
  55. deepagents_code-0.2.2/deepagents_code/tui/widgets/_static_update.py +35 -0
  56. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/autocomplete.py +185 -57
  57. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/chat_input.py +43 -1
  58. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/__init__.py +18 -0
  59. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/_layout.py +287 -0
  60. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/_parse.py +158 -0
  61. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/_rows.py +126 -0
  62. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/_table.py +136 -0
  63. deepagents_code-0.2.2/deepagents_code/tui/widgets/final_markdown/_widget.py +329 -0
  64. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/loading.py +5 -3
  65. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/message_store.py +93 -9
  66. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/messages.py +179 -67
  67. deepagents_code-0.2.2/deepagents_code/tui/widgets/selection_action.py +131 -0
  68. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/thread_selector.py +218 -49
  69. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/ui.py +3 -0
  70. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/update_check.py +30 -5
  71. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/workspace_diagnostics.py +7 -2
  72. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/pyproject.toml +15 -15
  73. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/scripts/check_process_cwd.py +2 -2
  74. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_server_owner_lifetime.py +4 -0
  75. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/conftest.py +87 -0
  76. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_transcript.py +38 -0
  77. deepagents_code-0.2.2/tests/unit_tests/plugins/test_broken_install.py +245 -0
  78. deepagents_code-0.2.2/tests/unit_tests/plugins/test_plugin_updates.py +200 -0
  79. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/plugins/test_plugins_p0.py +8 -6
  80. deepagents_code-0.2.2/tests/unit_tests/skills/test_skill_tools.py +244 -0
  81. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/smoke_tests/snapshots/system_prompt_headless_local.md +1 -1
  82. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/smoke_tests/snapshots/system_prompt_interactive_local.md +1 -1
  83. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_app.py +378 -7
  84. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_auto_mode.py +97 -9
  85. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_btw.py +92 -19
  86. deepagents_code-0.2.2/tests/unit_tests/test_checkpointer_adapter.py +107 -0
  87. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_config.py +259 -0
  88. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cost_tracking.py +141 -0
  89. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_git.py +30 -2
  90. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_js_cost_tracking.py +96 -2
  91. deepagents_code-0.2.2/tests/unit_tests/test_langsmith_runtime.py +98 -0
  92. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_local_context.py +138 -0
  93. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_main.py +150 -6
  94. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_tools.py +36 -0
  95. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_model_config.py +81 -19
  96. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_non_interactive.py +10 -0
  97. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_offload_api.py +65 -1
  98. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_reload.py +41 -5
  99. deepagents_code-0.2.2/tests/unit_tests/test_run_queue_wakeup.py +110 -0
  100. deepagents_code-0.2.2/tests/unit_tests/test_selection_action.py +619 -0
  101. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server.py +115 -2
  102. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_helpers.py +12 -1
  103. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_manager.py +189 -1
  104. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_pipe.py +108 -4
  105. deepagents_code-0.2.2/tests/unit_tests/test_session_lock.py +114 -0
  106. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_sessions.py +66 -0
  107. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_skill_invocation.py +17 -0
  108. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_thread_ownership.py +33 -0
  109. deepagents_code-0.2.2/tests/unit_tests/test_trace_redaction.py +67 -0
  110. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_transcript_virtualization.py +55 -5
  111. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_update_check.py +13 -0
  112. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/test_textual_adapter.py +16 -0
  113. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_autocomplete.py +158 -1
  114. deepagents_code-0.2.2/tests/unit_tests/tui/widgets/test_final_markdown.py +224 -0
  115. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_links.py +70 -0
  116. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_loading.py +24 -0
  117. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_message_store.py +96 -0
  118. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_messages.py +226 -9
  119. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_thread_selector.py +64 -0
  120. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/uv.lock +337 -176
  121. deepagents_code-0.2.0/deepagents_code/plugins/discovery.py +0 -545
  122. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/.gitignore +0 -0
  123. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/ARCHITECTURE.md +0 -0
  124. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/COMMANDS.md +0 -0
  125. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/DEVELOPMENT.md +0 -0
  126. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/EXTENSIONS.md +0 -0
  127. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/HOOKS.md +0 -0
  128. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/LICENSE +0 -0
  129. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/Makefile +0 -0
  130. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/PRICING.md +0 -0
  131. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/README.md +0 -0
  132. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/THREAT_MODEL.md +0 -0
  133. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/__init__.py +0 -0
  134. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/__main__.py +0 -0
  135. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_ask_user_types.py +0 -0
  136. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_async.py +0 -0
  137. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_cli_context.py +0 -0
  138. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_constants.py +0 -0
  139. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_content_blocks.py +0 -0
  140. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_debug.py +0 -0
  141. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_debug_buffer.py +0 -0
  142. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_dep_floor_check.py +0 -0
  143. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_fake_models.py +0 -0
  144. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_glm_5p2_profile.py +0 -0
  145. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_home_error.py +0 -0
  146. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_invocation.py +0 -0
  147. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_markdown.py +0 -0
  148. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_paths.py +0 -0
  149. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_repository_bounds.py +0 -0
  150. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_reserved_names.py +0 -0
  151. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_server_config.py +0 -0
  152. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_session_stats.py +0 -0
  153. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_startup_error.py +0 -0
  154. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_terminal_stderr.py +0 -0
  155. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_testing_models.py +0 -0
  156. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_tool_free.py +0 -0
  157. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_tool_stream.py +0 -0
  158. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/_tracing.py +0 -0
  159. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/acp.py +0 -0
  160. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/approval_mode.py +0 -0
  161. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/ask_user.py +0 -0
  162. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/auth_display.py +0 -0
  163. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/auth_store.py +0 -0
  164. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/btw_cost.py +0 -0
  165. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/__init__.py +0 -0
  166. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/deepagents-thread-inspector/SKILL.md +0 -0
  167. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/deepagents-thread-inspector/scripts/inspect_sessions.py +0 -0
  168. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/remember/SKILL.md +0 -0
  169. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/skill-creator/SKILL.md +0 -0
  170. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  171. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  172. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/bundled_prices.README.md +0 -0
  173. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/bundled_prices.json +0 -0
  174. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/__init__.py +0 -0
  175. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/__init__.py +0 -0
  176. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/auth.py +0 -0
  177. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/config.py +0 -0
  178. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/extras.py +0 -0
  179. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/mcp.py +0 -0
  180. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/commands/tools.py +0 -0
  181. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/headless_resume.py +0 -0
  182. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/launch/__init__.py +0 -0
  183. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/client/session_cost.py +0 -0
  184. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/clipboard.py +0 -0
  185. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/cold_cache.py +0 -0
  186. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/command_registry.py +0 -0
  187. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configurable_model.py +0 -0
  188. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/__init__.py +0 -0
  189. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/interpreter.py +0 -0
  190. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/paths.py +0 -0
  191. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/provider.py +0 -0
  192. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/providers.py +0 -0
  193. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/resolver.py +0 -0
  194. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/service.py +0 -0
  195. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/theme_resolution.py +0 -0
  196. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/types.py +0 -0
  197. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/configuration/writer.py +0 -0
  198. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/context_doctor.py +0 -0
  199. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/cost_tracking.py +0 -0
  200. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/default_agent_prompt.md +0 -0
  201. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/diff_utils.py +0 -0
  202. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/doctor.py +0 -0
  203. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/editor.py +0 -0
  204. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/event_bus.py +0 -0
  205. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/__init__.py +0 -0
  206. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/api.py +0 -0
  207. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/discovery.py +0 -0
  208. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/hosting.py +0 -0
  209. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/loader.py +0 -0
  210. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/registry.py +0 -0
  211. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/runtime.py +0 -0
  212. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/settings.py +0 -0
  213. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extensions/trust.py +0 -0
  214. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/extras_info.py +0 -0
  215. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/file_ops.py +0 -0
  216. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/formatting.py +0 -0
  217. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/goal_rubric.py +0 -0
  218. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/goal_state_limits.py +0 -0
  219. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/goal_state_notice.py +0 -0
  220. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/__init__.py +0 -0
  221. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/capabilities.py +0 -0
  222. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/client.py +0 -0
  223. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/client_lifecycle.py +0 -0
  224. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/context.py +0 -0
  225. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/engine.py +0 -0
  226. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/env.py +0 -0
  227. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/envelope.py +0 -0
  228. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/interrupt.py +0 -0
  229. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/legacy.py +0 -0
  230. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/loading.py +0 -0
  231. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/manager.py +0 -0
  232. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/migration.py +0 -0
  233. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/__init__.py +0 -0
  234. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/adapters.py +0 -0
  235. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/config.py +0 -0
  236. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/transport.py +0 -0
  237. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/models/wire.py +0 -0
  238. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/permissions.py +0 -0
  239. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/presenter.py +0 -0
  240. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/projection.py +0 -0
  241. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/reducer.py +0 -0
  242. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/runner.py +0 -0
  243. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/runtime.py +0 -0
  244. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/server_middleware.py +0 -0
  245. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/snapshot.py +0 -0
  246. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/tools.py +0 -0
  247. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/trust.py +0 -0
  248. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/hooks/validate_terminal_sequence.py +0 -0
  249. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/input.py +0 -0
  250. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/__init__.py +0 -0
  251. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/openai_codex.py +0 -0
  252. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/sandbox_config.py +0 -0
  253. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/sandbox_provider.py +0 -0
  254. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/integrations/sandbox_registry.py +0 -0
  255. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/iterm_cursor_guide.py +0 -0
  256. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/json_types.py +0 -0
  257. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/managed_tools.py +0 -0
  258. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_auth.py +0 -0
  259. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_config.py +0 -0
  260. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_disabled.py +0 -0
  261. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_login_service.py +0 -0
  262. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_middleware.py +0 -0
  263. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_oauth_ui.py +0 -0
  264. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_providers/__init__.py +0 -0
  265. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_providers/_registry.py +0 -0
  266. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_providers/base.py +0 -0
  267. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_providers/github.py +0 -0
  268. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_providers/slack.py +0 -0
  269. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/mcp_proxy.py +0 -0
  270. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/media_utils.py +0 -0
  271. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/model_api.py +0 -0
  272. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/model_catalog.py +0 -0
  273. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/model_metadata.py +0 -0
  274. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/model_retry.py +0 -0
  275. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/notifications.py +0 -0
  276. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/offload.py +0 -0
  277. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/offload_middleware.py +0 -0
  278. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/onboarding.py +0 -0
  279. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/output.py +0 -0
  280. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/paste_collapse.py +0 -0
  281. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/_json.py +0 -0
  282. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/adapters/__init__.py +0 -0
  283. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/adapters/hooks.py +0 -0
  284. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/manifest.py +0 -0
  285. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/marketplace.py +0 -0
  286. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/plugins/substitution.py +0 -0
  287. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/project_utils.py +0 -0
  288. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/py.typed +0 -0
  289. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/reasoning_effort.py +0 -0
  290. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/reliable_rubric.py +0 -0
  291. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/resume_policy.py +0 -0
  292. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/resume_state.py +0 -0
  293. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/__init__.py +0 -0
  294. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/commands.py +0 -0
  295. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/invocation.py +0 -0
  296. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/load.py +0 -0
  297. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/load_errors.py +0 -0
  298. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/merge.py +0 -0
  299. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/skills/trust.py +0 -0
  300. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/state_migration.py +0 -0
  301. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/subagents.py +0 -0
  302. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/system_prompt.md +0 -0
  303. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/terminal_capabilities.py +0 -0
  304. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/terminal_escape.py +0 -0
  305. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/terminal_title.py +0 -0
  306. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/theme.py +0 -0
  307. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/thread_titles.py +0 -0
  308. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tool_catalog.py +0 -0
  309. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tool_display.py +0 -0
  310. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tools.py +0 -0
  311. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/__init__.py +0 -0
  312. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/key_hints.py +0 -0
  313. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/__init__.py +0 -0
  314. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/_cost_breakdown.py +0 -0
  315. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/btw.py +0 -0
  316. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/btw.tcss +0 -0
  317. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/cold_cache.py +0 -0
  318. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/cost_breakdown.py +0 -0
  319. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/mcp_servers.py +0 -0
  320. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/mcp_servers.tcss +0 -0
  321. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/model_switch.py +0 -0
  322. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/plugin_manager.tcss +0 -0
  323. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/plugin_manager/tabs.py +0 -0
  324. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/prompt_clipboard.py +0 -0
  325. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/prompt_clipboard.tcss +0 -0
  326. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/resume_blocked.py +0 -0
  327. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/resume_compact.py +0 -0
  328. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/session_cost.py +0 -0
  329. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/session_cost.tcss +0 -0
  330. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/thread_name.py +0 -0
  331. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/modals/thread_name.tcss +0 -0
  332. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/screens/__init__.py +0 -0
  333. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/textual_adapter.py +0 -0
  334. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/__init__.py +0 -0
  335. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_condense_path.py +0 -0
  336. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_copy_spans.py +0 -0
  337. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_inline_prompt.py +0 -0
  338. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_js_eval_display.py +0 -0
  339. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/_paste_textarea.py +0 -0
  340. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/agent_selector.py +0 -0
  341. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/approval.py +0 -0
  342. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/ask_user.py +0 -0
  343. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/auth.py +0 -0
  344. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/auto_mode_notice.py +0 -0
  345. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/codex_auth.py +0 -0
  346. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/context_usage.py +0 -0
  347. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/cwd_switch.py +0 -0
  348. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/debug_console.py +0 -0
  349. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/diff.py +0 -0
  350. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/effort_selector.py +0 -0
  351. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/goal_review.py +0 -0
  352. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/goal_status.py +0 -0
  353. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/history.py +0 -0
  354. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/install_confirm.py +0 -0
  355. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/launch_init.py +0 -0
  356. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/mcp_login.py +0 -0
  357. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/mcp_reconnect.py +0 -0
  358. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/mcp_viewer.py +0 -0
  359. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/model_selector.py +0 -0
  360. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/notification_center.py +0 -0
  361. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/notification_detail.py +0 -0
  362. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/notification_settings.py +0 -0
  363. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/prompt_search.py +0 -0
  364. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/restart_prompt.py +0 -0
  365. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/skill_trust.py +0 -0
  366. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/startup_tip.py +0 -0
  367. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/status.py +0 -0
  368. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/subagent_panel.py +0 -0
  369. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/theme_selector.py +0 -0
  370. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/thread_agent_switch.py +0 -0
  371. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/tool_renderers.py +0 -0
  372. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/tool_widgets.py +0 -0
  373. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/update_available.py +0 -0
  374. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/update_confirm.py +0 -0
  375. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/update_progress.py +0 -0
  376. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/welcome.py +0 -0
  377. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/tui/widgets/yolo_mode_notice.py +0 -0
  378. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/unicode_security.py +0 -0
  379. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/deepagents_code/workspace.py +0 -0
  380. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/extensions/memory_store.py +0 -0
  381. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/arxiv-search/SKILL.md +0 -0
  382. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  383. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/langgraph-docs/SKILL.md +0 -0
  384. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/skill-creator/SKILL.md +0 -0
  385. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  386. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  387. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/examples/skills/web-research/SKILL.md +0 -0
  388. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/hatch_build.py +0 -0
  389. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/images/debug-console-cost-breakdown.png +0 -0
  390. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/images/model-stream-retry.png +0 -0
  391. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/images/tui.png +0 -0
  392. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/scripts/check_imports.py +0 -0
  393. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/scripts/debug_server.sh +0 -0
  394. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/scripts/generate_commands_catalog.py +0 -0
  395. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/scripts/install.sh +0 -0
  396. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/README.md +0 -0
  397. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/__init__.py +0 -0
  398. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/benchmarks/__init__.py +0 -0
  399. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  400. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/benchmarks/test_local_context_benchmarks.py +0 -0
  401. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -0
  402. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/benchmarks/test_thread_loading_benchmarks.py +0 -0
  403. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/conftest.py +0 -0
  404. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_acp_mode.py +0 -0
  405. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_auto_approve_remote.py +0 -0
  406. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_compact_resume.py +0 -0
  407. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_headless_resume.py +0 -0
  408. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_offload_server_side.py +0 -0
  409. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_pending_work_recovery.py +0 -0
  410. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_sandbox_factory.py +0 -0
  411. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/integration_tests/test_sandbox_operations.py +0 -0
  412. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/__init__.py +0 -0
  413. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/__init__.py +0 -0
  414. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/commands/__init__.py +0 -0
  415. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/commands/test_auth.py +0 -0
  416. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/commands/test_extras.py +0 -0
  417. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/commands/test_mcp.py +0 -0
  418. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/client/commands/test_tools.py +0 -0
  419. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/data/coding_agent_v1_validator.json +0 -0
  420. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/__init__.py +0 -0
  421. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/models/__init__.py +0 -0
  422. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/models/test_models.py +0 -0
  423. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_client_lifecycle.py +0 -0
  424. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_configuration.py +0 -0
  425. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_engine.py +0 -0
  426. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_execution.py +0 -0
  427. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_manager.py +0 -0
  428. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_presenter.py +0 -0
  429. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_server_lifecycle.py +0 -0
  430. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/hooks/test_trust.py +0 -0
  431. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/plugins/__init__.py +0 -0
  432. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/plugins/test_marketplace.py +0 -0
  433. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/plugins/test_plugin_hooks.py +0 -0
  434. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/__init__.py +0 -0
  435. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_commands.py +0 -0
  436. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_load.py +0 -0
  437. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_merge.py +0 -0
  438. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_pinned_skills.py +0 -0
  439. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_skill_trust.py +0 -0
  440. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_skills_json.py +0 -0
  441. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/skills/test_thread_inspector.py +0 -0
  442. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/smoke_tests/__init__.py +0 -0
  443. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/smoke_tests/conftest.py +0 -0
  444. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/smoke_tests/test_system_prompt.py +0 -0
  445. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test__tool_stream.py +0 -0
  446. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_acp.py +0 -0
  447. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_agent.py +0 -0
  448. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_agent_friendly.py +0 -0
  449. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_agent_mcp_timeout.py +0 -0
  450. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_app_thread_ownership.py +0 -0
  451. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_approval_mode.py +0 -0
  452. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_args.py +0 -0
  453. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  454. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_ask_user_types.py +0 -0
  455. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_auth_display.py +0 -0
  456. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_auth_store.py +0 -0
  457. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_auth_web_search_restart.py +0 -0
  458. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_btw_api.py +0 -0
  459. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cache_expiry.py +0 -0
  460. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_charset.py +0 -0
  461. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cli_provider.py +0 -0
  462. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_clipboard.py +0 -0
  463. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_coding_agent_metadata.py +0 -0
  464. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cold_cache.py +0 -0
  465. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_command_registry.py +0 -0
  466. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_compact_tool.py +0 -0
  467. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_config_manifest.py +0 -0
  468. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_configurable_model.py +0 -0
  469. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_configuration.py +0 -0
  470. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_configuration_resolution.py +0 -0
  471. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_configuration_resolver.py +0 -0
  472. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_context_doctor.py +0 -0
  473. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cost_breakdown.py +0 -0
  474. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_cursor_style.py +0 -0
  475. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_debug.py +0 -0
  476. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_debug_buffer.py +0 -0
  477. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_debug_console.py +0 -0
  478. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_dep_floor_check.py +0 -0
  479. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_diff_utils.py +0 -0
  480. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_doctor.py +0 -0
  481. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_editor.py +0 -0
  482. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_end_to_end.py +0 -0
  483. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_env_vars.py +0 -0
  484. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_event_bus.py +0 -0
  485. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_exception_handling.py +0 -0
  486. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_api.py +0 -0
  487. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_cli_trust.py +0 -0
  488. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_config_manifest.py +0 -0
  489. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_discovery.py +0 -0
  490. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_display.py +0 -0
  491. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_host_runtime.py +0 -0
  492. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_hosting.py +0 -0
  493. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extension_runtime.py +0 -0
  494. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extra_skills_dirs.py +0 -0
  495. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_extras_info.py +0 -0
  496. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_file_ops.py +0 -0
  497. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_fork_goal_notice.py +0 -0
  498. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_formatting.py +0 -0
  499. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_glm_5p2_profile.py +0 -0
  500. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_criteria_client.py +0 -0
  501. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_rubric.py +0 -0
  502. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_state_limits.py +0 -0
  503. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_state_notice.py +0 -0
  504. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_state_persistence.py +0 -0
  505. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_goal_tools.py +0 -0
  506. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_groq_tool_limit.py +0 -0
  507. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_hatch_build.py +0 -0
  508. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_headless_resume.py +0 -0
  509. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_hooks.py +0 -0
  510. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_idle_compaction.py +0 -0
  511. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_imports.py +0 -0
  512. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_input_parsing.py +0 -0
  513. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_install_command.py +0 -0
  514. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_install_script.py +0 -0
  515. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_interpreter_workspace_policy.py +0 -0
  516. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_invocation.py +0 -0
  517. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_iterm_cursor_guide.py +0 -0
  518. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_js_cost_sync.py +0 -0
  519. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_json_types.py +0 -0
  520. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_main_acp_mode.py +0 -0
  521. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_main_args.py +0 -0
  522. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_managed_tools.py +0 -0
  523. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_auth.py +0 -0
  524. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_config.py +0 -0
  525. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_disabled.py +0 -0
  526. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_lifecycle.py +0 -0
  527. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_login_service.py +0 -0
  528. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_middleware.py +0 -0
  529. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_oauth_ui.py +0 -0
  530. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_proxy.py +0 -0
  531. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_mcp_schema.py +0 -0
  532. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_media_utils.py +0 -0
  533. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_memory_guard.py +0 -0
  534. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_model_catalog.py +0 -0
  535. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_model_metadata.py +0 -0
  536. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_model_retry.py +0 -0
  537. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_model_switch.py +0 -0
  538. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_notifications.py +0 -0
  539. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_offload.py +0 -0
  540. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_onboarding.py +0 -0
  541. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_openai_codex_integration.py +0 -0
  542. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_output.py +0 -0
  543. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_paths.py +0 -0
  544. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_process_cwd_check.py +0 -0
  545. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_python_migration_bridge.py +0 -0
  546. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_reasoning_effort.py +0 -0
  547. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_reliable_rubric.py +0 -0
  548. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_remote_client.py +0 -0
  549. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_repository_bounds.py +0 -0
  550. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_resume_compaction_recovery.py +0 -0
  551. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_resume_state.py +0 -0
  552. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_resume_workspace_errors.py +0 -0
  553. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_rubric_cli.py +0 -0
  554. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_sandbox_config.py +0 -0
  555. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_sandbox_factory.py +0 -0
  556. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_sandbox_provider.py +0 -0
  557. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_sandbox_registry.py +0 -0
  558. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_config.py +0 -0
  559. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_graph.py +0 -0
  560. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_server_tracing.py +0 -0
  561. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_session_stats.py +0 -0
  562. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_shell_allow_list.py +0 -0
  563. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_startup_fast_paths.py +0 -0
  564. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_state_migration.py +0 -0
  565. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_subagents.py +0 -0
  566. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  567. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_terminal_escape.py +0 -0
  568. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_terminal_progress_preference.py +0 -0
  569. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_terminal_stderr.py +0 -0
  570. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_terminal_title.py +0 -0
  571. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_text_encoding.py +0 -0
  572. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_textual_patches.py +0 -0
  573. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_theme.py +0 -0
  574. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_thread_naming_app.py +0 -0
  575. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_thread_ownership_transitions.py +0 -0
  576. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_thread_titles.py +0 -0
  577. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_threads_resume.py +0 -0
  578. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_tool_catalog.py +0 -0
  579. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_tool_display.py +0 -0
  580. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_tracing.py +0 -0
  581. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_tracing_replicas.py +0 -0
  582. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_ui.py +0 -0
  583. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_unicode_security.py +0 -0
  584. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_uninstall_command.py +0 -0
  585. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_version.py +0 -0
  586. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_workspace.py +0 -0
  587. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/test_workspace_diagnostics.py +0 -0
  588. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tools/__init__.py +0 -0
  589. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tools/test_current_thread.py +0 -0
  590. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tools/test_fetch_url.py +0 -0
  591. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tools/test_tool_arg_schemas.py +0 -0
  592. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tools/test_web_search.py +0 -0
  593. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/__init__.py +0 -0
  594. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/__init__.py +0 -0
  595. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/plugin_manager/__init__.py +0 -0
  596. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/plugin_manager/test_inspection.py +0 -0
  597. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/plugin_manager/test_structure.py +0 -0
  598. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/test_cold_cache.py +0 -0
  599. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/test_model_switch.py +0 -0
  600. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/test_prompt_clipboard.py +0 -0
  601. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/test_resume_blocked.py +0 -0
  602. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/modals/test_session_cost.py +0 -0
  603. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/test_key_hints.py +0 -0
  604. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/test_modal_footer_layout.py +0 -0
  605. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/test_subagent_stream.py +0 -0
  606. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/__init__.py +0 -0
  607. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_agent_selector.py +0 -0
  608. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_approval.py +0 -0
  609. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_ask_user.py +0 -0
  610. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_auth_widgets.py +0 -0
  611. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_auto_mode_notice.py +0 -0
  612. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_chat_input.py +0 -0
  613. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_condense_path.py +0 -0
  614. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_copy_spans.py +0 -0
  615. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_cwd_switch.py +0 -0
  616. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_diff.py +0 -0
  617. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_goal_review.py +0 -0
  618. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_history.py +0 -0
  619. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_inline_prompt.py +0 -0
  620. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_install_confirm.py +0 -0
  621. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_launch_init.py +0 -0
  622. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_mcp_login_modal.py +0 -0
  623. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_mcp_reconnect.py +0 -0
  624. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_mcp_viewer.py +0 -0
  625. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_model_selector.py +0 -0
  626. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_notification_center.py +0 -0
  627. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_notification_detail.py +0 -0
  628. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_notification_settings.py +0 -0
  629. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_prompt_search.py +0 -0
  630. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_restart_prompt.py +0 -0
  631. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_skill_trust_screen.py +0 -0
  632. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_startup_tip.py +0 -0
  633. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_status.py +0 -0
  634. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_subagent_panel.py +0 -0
  635. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_thread_agent_switch.py +0 -0
  636. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_tool_renderers.py +0 -0
  637. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_update_available.py +0 -0
  638. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_update_confirm.py +0 -0
  639. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_update_progress.py +0 -0
  640. {deepagents_code-0.2.0 → deepagents_code-0.2.2}/tests/unit_tests/tui/widgets/test_welcome.py +0 -0
@@ -133,6 +133,36 @@ Debug logging is configured **once**, on the `deepagents_code` package logger, b
133
133
  - The **file** handler only attaches when `DEEPAGENTS_CODE_DEBUG` is truthy and the active thread is known; that path is a small env-var read and filesystem operation, so it's safe on the startup hot path. See `DEVELOPMENT.md` for the `DEEPAGENTS_CODE_DEBUG` / `DEEPAGENTS_CODE_DEBUG_DIRECTORY` / `DEEPAGENTS_CODE_LOG_LEVEL` env vars.
134
134
  - Separately, an **always-on in-memory ring buffer** (`_debug_buffer.install_log_buffer`, called from `__init__.py` right before `configure_debug_logging`) attaches unconditionally at import so the in-app Debug Console (`Ctrl+\`) can tail recent `deepagents_code.*` records without file logging. It captures `INFO` and above by default (or `DEEPAGENTS_CODE_LOG_LEVEL`), and may lower the package logger to `INFO` for the process lifetime. It never spills to the terminal (a handler is always found, so `lastResort` is skipped) and is bounded (a `deque` of 1000 records *per log level*), so it's cheap enough to keep on. Because it installs *before* `configure_debug_logging`, warnings that helper emits at startup are captured and visible in the console.
135
135
 
136
+ ## Agent middleware
137
+
138
+ ### Trace policy
139
+
140
+ Every `AgentMiddleware` subclass in `deepagents_code` must omit its hook inputs from traces:
141
+
142
+ ```python
143
+ from langchain.agents.middleware.types import AgentMiddleware, TracePolicy, omit_payload
144
+
145
+
146
+ class MyMiddleware(AgentMiddleware):
147
+ trace_policy = TracePolicy(process_inputs=omit_payload)
148
+ ```
149
+
150
+ Trace inputs only for a documented reason, and put that reason in a comment next to the override. `GoalToolsMiddleware` (`goal_tools.py`) is a reference example.
151
+
152
+ Why: without this policy, each `wrap_model_call` and `awrap_model_call` span traces the full `ModelRequest`, which includes the whole message history. Each middleware adds one more copy per model call. When secret redaction is on, the server also runs regex redaction over each copy on the event loop. One middleware without the policy once added about 28% of traced bytes and about 27% of per-turn latency for users with tracing on.
153
+
154
+ ### Checkpointed state
155
+
156
+ Each checkpoint row stores the value of every graph state channel inline. The SQLite saver does not deduplicate blobs, and only `messages` is delta-encoded. Thus every state value is written again on each step.
157
+
158
+ - Do not put large or derivable values in state channels. This includes rendered prompts, file contents, caches, and metadata that you can compute again. The rule also applies to private channels (`PrivateStateAttr`).
159
+ - Store large per-thread data in a dcode side table keyed by thread ID, such as `dcode_thread_names` (`sessions.py`) or `dcode_thread_workspaces` (`workspace.py`). Write to it only when the data changes.
160
+ - Keep per-step `Command(update=...)` writes small.
161
+
162
+ Why: one 58 KB value written on each model call made checkpoints about 2× larger and made resume and state reads slower.
163
+
164
+ Private channels do not cross the subagent `task` tool boundary. The tool strips them in both directions, so a subagent does not see or return the parent's private state.
165
+
136
166
  ## CLI help screen
137
167
 
138
168
  The `deepagents-code --help` screen is hand-maintained in `ui.show_help()`, separate from the argparse definitions in `main.parse_args()`. When adding a new CLI flag, update **both** files. A drift-detection test (`test_args.TestHelpScreenDrift`) fails if a flag is registered in argparse but missing from the help screen.
@@ -2,6 +2,61 @@
2
2
 
3
3
  # Deep Agents Code Changelog
4
4
 
5
+ ## [0.2.2](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.2.1...deepagents-code==0.2.2) (2026-10-26)
6
+
7
+ This update includes considerable security and performance improvements. We recommend upgrading as soon as feasible.
8
+
9
+ ### Features
10
+
11
+ - Add support for GPT-6.1 Terra ([#7295](https://github.com/langchain-ai/deepagents/pull/7295)).
12
+ - Bring selected text into the chat input ([#6955](https://github.com/langchain-ai/deepagents/pull/6955)).
13
+ - Detect plugin updates and notify you when they are available ([#7234](https://github.com/langchain-ai/deepagents/pull/7234)).
14
+
15
+ ### Bug Fixes
16
+
17
+ - Prevent project `.env` files from setting extension, shell, plugin, and skill trust ([#7275](https://github.com/langchain-ai/deepagents/pull/7275)).
18
+ - Restrict links opened from the terminal UI to HTTP and HTTPS ([#7277](https://github.com/langchain-ai/deepagents/pull/7277)).
19
+ - Restrict Git options in Auto mode's read-only fast path to an allowlist ([#7276](https://github.com/langchain-ai/deepagents/pull/7276)).
20
+ - Stop the local server from uploading usage metadata to LangSmith ([#7252](https://github.com/langchain-ai/deepagents/pull/7252)).
21
+ - Detect and repair enabled plugins with missing installed files ([#7278](https://github.com/langchain-ai/deepagents/pull/7278)).
22
+ - Explain repeated skill-trust denials and clear them on `/reload` ([#7291](https://github.com/langchain-ai/deepagents/pull/7291)).
23
+ - Fix transcript height calculations for folded tool rows and spacers so scrolling reaches the newest message ([#7251](https://github.com/langchain-ai/deepagents/pull/7251), [#7253](https://github.com/langchain-ai/deepagents/pull/7253)).
24
+ - Keep the terminal UI responsive when quitting during server startup ([#7190](https://github.com/langchain-ai/deepagents/pull/7190)).
25
+ - Contain JavaScript subagent failures ([#7211](https://github.com/langchain-ai/deepagents/pull/7211)).
26
+ - Manage sandbox lifetime from the client in non-interactive runs ([#6368](https://github.com/langchain-ai/deepagents/pull/6368)).
27
+ - Preserve shipped bytecode for read-only installations ([#7196](https://github.com/langchain-ai/deepagents/pull/7196)).
28
+ - Correctly read the current branch in reftable repositories through Git ([#7268](https://github.com/langchain-ai/deepagents/pull/7268)).
29
+
30
+ ### Performance Improvements
31
+
32
+ - Reuse the parent's local context in forked subagents ([#7233](https://github.com/langchain-ai/deepagents/pull/7233)).
33
+ - Show the terminal UI sooner by deferring imports and trace redacting-client setup until after the initial display ([#7189](https://github.com/langchain-ai/deepagents/pull/7189), [#7215](https://github.com/langchain-ai/deepagents/pull/7215)).
34
+ - Start the server earlier, before import prewarming, app-module imports, and post-display initialization ([#7184](https://github.com/langchain-ai/deepagents/pull/7184), [#7249](https://github.com/langchain-ai/deepagents/pull/7249), [#7208](https://github.com/langchain-ai/deepagents/pull/7208)).
35
+ - Streamline server startup by deferring Textual imports, excluding custom routes from the OpenAPI specification, caching bytecode, and skipping a PyPI version check ([#7242](https://github.com/langchain-ai/deepagents/pull/7242), [#7193](https://github.com/langchain-ai/deepagents/pull/7193), [#7198](https://github.com/langchain-ai/deepagents/pull/7198)).
36
+ - Build the agent graph during server startup and start runs without the in-memory queue's polling delay ([#7214](https://github.com/langchain-ai/deepagents/pull/7214), [#7243](https://github.com/langchain-ai/deepagents/pull/7243)).
37
+ - Improve streaming responsiveness by re-rendering Markdown only when blocks change, adapting the flush interval to rendering cost, and avoiding duplicate chunk merging ([#7210](https://github.com/langchain-ai/deepagents/pull/7210), [#7205](https://github.com/langchain-ai/deepagents/pull/7205), [#7200](https://github.com/langchain-ai/deepagents/pull/7200)).
38
+ - Reduce transcript rendering overhead by compacting finished tool runs into lazy group rows, rendering completed replies as single widgets, limiting mounted rows to 350, and batching row removal ([#7254](https://github.com/langchain-ai/deepagents/pull/7254), [#7255](https://github.com/langchain-ai/deepagents/pull/7255), [#7256](https://github.com/langchain-ai/deepagents/pull/7256), [#7250](https://github.com/langchain-ai/deepagents/pull/7250)).
39
+ - Reduce background UI work by avoiding transcript relayouts on spinner ticks and DOM traversal on cache-expiry ticks ([#7203](https://github.com/langchain-ai/deepagents/pull/7203), [#7246](https://github.com/langchain-ai/deepagents/pull/7246)).
40
+ - Return control to the terminal sooner on exit by restoring it before server shutdown finishes, skipping the final garbage-collection pass, and avoiding the full shutdown wait for abandoned startups ([#7192](https://github.com/langchain-ai/deepagents/pull/7192), [#7191](https://github.com/langchain-ai/deepagents/pull/7191), [#7194](https://github.com/langchain-ai/deepagents/pull/7194)).
41
+ - Speed up `@` file-completion scoring ([#7248](https://github.com/langchain-ai/deepagents/pull/7248)).
42
+ - Speed up the thread picker by filtering without remounting rows and keeping thread-list queries on a covering index ([#7207](https://github.com/langchain-ai/deepagents/pull/7207), [#7232](https://github.com/langchain-ai/deepagents/pull/7232)).
43
+ - Reduce post-turn data fetching to cost and cache channels, and cache SDK version lookups when building stream configuration ([#7206](https://github.com/langchain-ai/deepagents/pull/7206), [#7230](https://github.com/langchain-ai/deepagents/pull/7230)).
44
+ - Reduce tracing overhead by caching tracing secret redaction across runs, omitting `BtwOperation` hook inputs from traces, and skipping tracing-related thread hops when tracing is disabled ([#7209](https://github.com/langchain-ai/deepagents/pull/7209), [#7199](https://github.com/langchain-ai/deepagents/pull/7199), [#7247](https://github.com/langchain-ai/deepagents/pull/7247)).
45
+ - Improve checkpoint efficiency by forwarding delta-channel history reads to the SQLite saver, queuing in-process writers instead of polling, and keeping the `/btw` system prompt out of checkpoints ([#7244](https://github.com/langchain-ai/deepagents/pull/7244), [#7245](https://github.com/langchain-ai/deepagents/pull/7245), [#7202](https://github.com/langchain-ai/deepagents/pull/7202)).
46
+ - Skip redundant goal-notice history scans ([#7201](https://github.com/langchain-ai/deepagents/pull/7201)).
47
+
48
+ ## [0.2.1](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.2.0...deepagents-code==0.2.1) (2026-10-23)
49
+
50
+ ### Features
51
+
52
+ - Support skill-scoped MCP tools ([#7010](https://github.com/langchain-ai/deepagents/pull/7010)).
53
+ - Default the Anthropic Auto classifier to Claude Sonnet 5.5 ([#7163](https://github.com/langchain-ai/deepagents/pull/7163)).
54
+
55
+ ### Bug Fixes
56
+
57
+ - Automatically migrate to Python 3.14 when no other session is running ([#7160](https://github.com/langchain-ai/deepagents/pull/7160)).
58
+ - Use native structured output for the Anthropic Auto classifier ([#7162](https://github.com/langchain-ai/deepagents/pull/7162)).
59
+
5
60
  ## [0.2.0](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.88...deepagents-code==0.2.0) (2026-10-22)
6
61
 
7
62
  ### ⚠ BREAKING CHANGES
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: deepagents-code
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Terminal coding agent built on the Deep Agents SDK - works with any model, with persistent memory, customizable skills, subagents, and approval controls.
5
5
  Project-URL: Homepage, https://www.langchain.com/dcode
6
6
  Project-URL: Documentation, https://docs.langchain.com/oss/deepagents/code/overview
@@ -27,21 +27,21 @@ Classifier: Topic :: Terminals
27
27
  Requires-Python: <3.15,>=3.14
28
28
  Requires-Dist: aiosqlite>=0.22.1
29
29
  Requires-Dist: anyio>=4.14.2
30
- Requires-Dist: deepagents-acp<1.0.0,>=0.0.10
31
- Requires-Dist: deepagents==0.7.30
30
+ Requires-Dist: deepagents-acp<1.0.0,>=0.0.13
31
+ Requires-Dist: deepagents==0.7.32
32
32
  Requires-Dist: fastmcp>=4.0.0b4
33
- Requires-Dist: filelock<3.30,>=3.29.7
33
+ Requires-Dist: filelock<4.3,>=3.29.7
34
34
  Requires-Dist: genai-prices<0.2.0,>=0.1.13
35
35
  Requires-Dist: httpx>=0.28.1
36
36
  Requires-Dist: langchain-anthropic<2.0.0,>=1.7.6
37
37
  Requires-Dist: langchain-google-genai<5.0.0,>=4.4.2
38
38
  Requires-Dist: langchain-openai<2.0.0,>=1.7.2
39
- Requires-Dist: langchain-quickjs<0.4.0,>=0.3.4
39
+ Requires-Dist: langchain-quickjs<0.4.0,>=0.3.9
40
40
  Requires-Dist: langchain<2.0.0,>=1.4.7
41
41
  Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.1.2
42
- Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.37
43
- Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.36.4
44
- Requires-Dist: langgraph-sdk<1.0.0,>=0.4.8
42
+ Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.40
43
+ Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.36.7
44
+ Requires-Dist: langgraph-sdk<1.0.0,>=0.4.9
45
45
  Requires-Dist: langsmith[sandbox]>=0.14.12
46
46
  Requires-Dist: markdownify>=1.2.3
47
47
  Requires-Dist: mcp>=2.0.0
@@ -65,17 +65,17 @@ Requires-Dist: langchain-agentcore-codeinterpreter<1.0.0,>=0.0.5; extra == 'agen
65
65
  Provides-Extra: all-providers
66
66
  Requires-Dist: aiohttp>=3.14.3; extra == 'all-providers'
67
67
  Requires-Dist: langchain-anthropic<2.0.0,>=1.7.6; extra == 'all-providers'
68
- Requires-Dist: langchain-aws<2.0.0,>=1.9.0; extra == 'all-providers'
68
+ Requires-Dist: langchain-aws<2.0.0,>=1.9.1; extra == 'all-providers'
69
69
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.5; extra == 'all-providers'
70
70
  Requires-Dist: langchain-cohere<1.0.0,>=0.6.0; extra == 'all-providers'
71
71
  Requires-Dist: langchain-deepseek<2.0.0,>=1.1.1; extra == 'all-providers'
72
72
  Requires-Dist: langchain-fireworks<2.0.0,>=1.7.1; extra == 'all-providers'
73
73
  Requires-Dist: langchain-google-genai<5.0.0,>=4.4.2; extra == 'all-providers'
74
- Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.4; extra == 'all-providers'
74
+ Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.5; extra == 'all-providers'
75
75
  Requires-Dist: langchain-groq<2.0.0,>=1.1.3; extra == 'all-providers'
76
76
  Requires-Dist: langchain-huggingface<2.0.0,>=1.2.3; extra == 'all-providers'
77
77
  Requires-Dist: langchain-ibm<2.0.0,>=1.1.2; extra == 'all-providers'
78
- Requires-Dist: langchain-litellm<2.0.0,>=0.11.1; extra == 'all-providers'
78
+ Requires-Dist: langchain-litellm<2.0.0,>=0.11.2; extra == 'all-providers'
79
79
  Requires-Dist: langchain-meta<2.0.0,>=0.5.0; extra == 'all-providers'
80
80
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.6; extra == 'all-providers'
81
81
  Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.5.0; extra == 'all-providers'
@@ -87,21 +87,21 @@ Requires-Dist: langchain-together<2.0.0,>=0.4.0; extra == 'all-providers'
87
87
  Requires-Dist: langchain-xai<2.0.0,>=1.3.0; extra == 'all-providers'
88
88
  Provides-Extra: all-sandboxes
89
89
  Requires-Dist: langchain-agentcore-codeinterpreter<1.0.0,>=0.0.5; extra == 'all-sandboxes'
90
- Requires-Dist: langchain-daytona>=0.0.7; extra == 'all-sandboxes'
91
- Requires-Dist: langchain-modal>=0.0.5; extra == 'all-sandboxes'
90
+ Requires-Dist: langchain-daytona>=0.0.9; extra == 'all-sandboxes'
91
+ Requires-Dist: langchain-modal>=0.0.7; extra == 'all-sandboxes'
92
92
  Requires-Dist: langchain-nvidia-openshell>=0.1.1; extra == 'all-sandboxes'
93
- Requires-Dist: langchain-runloop>=0.0.6; extra == 'all-sandboxes'
94
- Requires-Dist: langchain-vercel-sandbox>=0.0.1; extra == 'all-sandboxes'
93
+ Requires-Dist: langchain-runloop>=0.0.7; extra == 'all-sandboxes'
94
+ Requires-Dist: langchain-vercel-sandbox>=0.0.2; extra == 'all-sandboxes'
95
95
  Provides-Extra: anthropic
96
96
  Requires-Dist: langchain-anthropic<2.0.0,>=1.7.6; extra == 'anthropic'
97
97
  Provides-Extra: baseten
98
98
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.5; extra == 'baseten'
99
99
  Provides-Extra: bedrock
100
- Requires-Dist: langchain-aws<2.0.0,>=1.9.0; extra == 'bedrock'
100
+ Requires-Dist: langchain-aws<2.0.0,>=1.9.1; extra == 'bedrock'
101
101
  Provides-Extra: cohere
102
102
  Requires-Dist: langchain-cohere<1.0.0,>=0.6.0; extra == 'cohere'
103
103
  Provides-Extra: daytona
104
- Requires-Dist: langchain-daytona>=0.0.7; extra == 'daytona'
104
+ Requires-Dist: langchain-daytona>=0.0.9; extra == 'daytona'
105
105
  Provides-Extra: deepseek
106
106
  Requires-Dist: langchain-deepseek<2.0.0,>=1.1.1; extra == 'deepseek'
107
107
  Provides-Extra: fireworks
@@ -115,7 +115,7 @@ Requires-Dist: langchain-huggingface<2.0.0,>=1.2.3; extra == 'huggingface'
115
115
  Provides-Extra: ibm
116
116
  Requires-Dist: langchain-ibm<2.0.0,>=1.1.2; extra == 'ibm'
117
117
  Provides-Extra: litellm
118
- Requires-Dist: langchain-litellm<2.0.0,>=0.11.1; extra == 'litellm'
118
+ Requires-Dist: langchain-litellm<2.0.0,>=0.11.2; extra == 'litellm'
119
119
  Provides-Extra: media
120
120
  Requires-Dist: av>=18.0.0; extra == 'media'
121
121
  Requires-Dist: pillow>=13.0.0; extra == 'media'
@@ -124,7 +124,7 @@ Requires-Dist: langchain-meta<2.0.0,>=0.5.0; extra == 'meta'
124
124
  Provides-Extra: mistralai
125
125
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.6; extra == 'mistralai'
126
126
  Provides-Extra: modal
127
- Requires-Dist: langchain-modal>=0.0.5; extra == 'modal'
127
+ Requires-Dist: langchain-modal>=0.0.7; extra == 'modal'
128
128
  Provides-Extra: nvidia
129
129
  Requires-Dist: aiohttp>=3.14.3; extra == 'nvidia'
130
130
  Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.5.0; extra == 'nvidia'
@@ -140,13 +140,13 @@ Provides-Extra: perplexity
140
140
  Requires-Dist: langchain-perplexity<2.0.0,>=1.4.2; extra == 'perplexity'
141
141
  Provides-Extra: quickjs
142
142
  Provides-Extra: runloop
143
- Requires-Dist: langchain-runloop>=0.0.6; extra == 'runloop'
143
+ Requires-Dist: langchain-runloop>=0.0.7; extra == 'runloop'
144
144
  Provides-Extra: together
145
145
  Requires-Dist: langchain-together<2.0.0,>=0.4.0; extra == 'together'
146
146
  Provides-Extra: vercel
147
- Requires-Dist: langchain-vercel-sandbox>=0.0.1; extra == 'vercel'
147
+ Requires-Dist: langchain-vercel-sandbox>=0.0.2; extra == 'vercel'
148
148
  Provides-Extra: vertex
149
- Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.4; extra == 'vertex'
149
+ Requires-Dist: langchain-google-vertexai<4.0.0,>=3.2.5; extra == 'vertex'
150
150
  Provides-Extra: xai
151
151
  Requires-Dist: langchain-xai<2.0.0,>=1.3.0; extra == 'xai'
152
152
  Description-Content-Type: text/markdown
@@ -1,3 +1,3 @@
1
1
  """Generated at build time. Do not edit or commit."""
2
2
 
3
- BUILD_COMMIT = "981a87a"
3
+ BUILD_COMMIT = "42e4f08"
@@ -0,0 +1,86 @@
1
+ """Forward delta-channel history reads through langgraph-api's saver adapter.
2
+
3
+ The LangGraph dev server wraps a custom checkpointer in
4
+ `langgraph_api._checkpointer._adapter._CustomCheckpointerAdapter`. The adapter
5
+ forwards unknown attributes to the inner saver through `__getattr__`, but
6
+ `BaseCheckpointSaver` already defines `aget_delta_channel_history`, so the
7
+ forwarding never fires. The adapter then runs the base ancestor walk: one
8
+ `aget_tuple` and one full checkpoint decode per ancestor. The SQLite saver
9
+ overrides the method with two indexed queries, and long threads pay the
10
+ difference on every state read and every run start.
11
+
12
+ This module is a best-effort patch over a private langgraph-api class. It only
13
+ patches when the adapter still inherits the base method, and it falls back to
14
+ the base walk when the inner saver has no override of its own. Remove it when
15
+ the adapter forwards these methods itself.
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import logging
21
+ from typing import TYPE_CHECKING
22
+
23
+ from langgraph.checkpoint.base import BaseCheckpointSaver
24
+
25
+ if TYPE_CHECKING:
26
+ from collections.abc import Mapping, Sequence
27
+
28
+ from langchain_core.runnables import RunnableConfig
29
+ from langgraph.checkpoint.base import DeltaChannelHistory
30
+
31
+ logger = logging.getLogger(__name__)
32
+
33
+ _BASE_ASYNC = BaseCheckpointSaver.aget_delta_channel_history
34
+ _BASE_SYNC = BaseCheckpointSaver.get_delta_channel_history
35
+
36
+
37
+ def _overriding_inner(
38
+ adapter: BaseCheckpointSaver, name: str
39
+ ) -> BaseCheckpointSaver | None:
40
+ """Return the adapter's inner saver if it overrides the base method `name`."""
41
+ inner = adapter.__dict__.get("_inner")
42
+ if not isinstance(inner, BaseCheckpointSaver):
43
+ return None
44
+ if getattr(type(inner), name) is getattr(BaseCheckpointSaver, name):
45
+ return None
46
+ return inner
47
+
48
+
49
+ async def _aget_delta_channel_history(
50
+ self: BaseCheckpointSaver, *, config: RunnableConfig, channels: Sequence[str]
51
+ ) -> Mapping[str, DeltaChannelHistory]:
52
+ inner = _overriding_inner(self, "aget_delta_channel_history")
53
+ if inner is None:
54
+ return await _BASE_ASYNC(self, config=config, channels=channels)
55
+ return await inner.aget_delta_channel_history(config=config, channels=channels)
56
+
57
+
58
+ def _get_delta_channel_history(
59
+ self: BaseCheckpointSaver, *, config: RunnableConfig, channels: Sequence[str]
60
+ ) -> Mapping[str, DeltaChannelHistory]:
61
+ inner = _overriding_inner(self, "get_delta_channel_history")
62
+ if inner is None:
63
+ return _BASE_SYNC(self, config=config, channels=channels)
64
+ return inner.get_delta_channel_history(config=config, channels=channels)
65
+
66
+
67
+ def install_delta_history_forwarding() -> None:
68
+ """Make langgraph-api's checkpointer adapter use the inner saver's fast path.
69
+
70
+ Call this in the server process before the adapter serves requests. It is
71
+ idempotent and a no-op when the adapter is missing or already overrides
72
+ the methods.
73
+ """
74
+ try:
75
+ # The adapter has no public seam; this patch exists to reach it.
76
+ from langgraph_api._checkpointer._adapter import ( # noqa: PLC2701
77
+ _CustomCheckpointerAdapter,
78
+ )
79
+ except ImportError:
80
+ logger.warning("langgraph-api checkpointer adapter not found; skipping patch")
81
+ return
82
+ adapter = _CustomCheckpointerAdapter
83
+ if adapter.aget_delta_channel_history is _BASE_ASYNC:
84
+ adapter.aget_delta_channel_history = _aget_delta_channel_history
85
+ if adapter.get_delta_channel_history is _BASE_SYNC:
86
+ adapter.get_delta_channel_history = _get_delta_channel_history
@@ -77,6 +77,15 @@ Values outside 1-900 seconds are ignored in favor of the next config source.
77
77
  Also settable via `[mcp].tool_timeout` in config.toml.
78
78
  """
79
79
 
80
+ ASK_ABOUT_SELECTION = "DEEPAGENTS_CODE_ASK_ABOUT_SELECTION"
81
+ """Show "Ask about this" when conversation text is selected.
82
+
83
+ Enabled by default; set to a falsy value (`0`, `false`, `no`, `off`) to hide
84
+ it. Parsed by `classify_env_bool` (an unrecognized or empty value falls through
85
+ to the config value rather than forcing the default). Also settable via
86
+ `[ui].ask_about_selection` in config.toml. `/reload` applies a change.
87
+ """
88
+
80
89
  AUTO_UPDATE = "DEEPAGENTS_CODE_AUTO_UPDATE"
81
90
  """Toggle automatic app updates. Enabled by default; set to a falsy value
82
91
  ('0', 'false', 'no', 'off', or empty) to opt out."""
@@ -277,13 +286,20 @@ EXPERIMENTAL = "DEEPAGENTS_CODE_EXPERIMENTAL"
277
286
  Off by default; parsed by `is_env_truthy` (see there for the accepted truthy
278
287
  values). Marks experimental runs in UI/trace metadata. Behavior behind this
279
288
  flag may change or be removed without notice.
289
+
290
+ Set only through the launching shell or global `~/.deepagents/.env`; a project
291
+ `.env` cannot set it.
280
292
  """
281
293
 
282
294
  EXTENSIONS = "DEEPAGENTS_CODE_EXTENSIONS"
283
295
  """Enable loading installed-plugin and trusted-project Python extensions."""
284
296
 
285
297
  EXTENSIONS_TRUST = "DEEPAGENTS_CODE_EXTENSIONS_TRUST"
286
- """Default project extension trust policy: `ask`, `always`, or `never`."""
298
+ """Default project extension trust policy: `ask`, `always`, or `never`.
299
+
300
+ Set only through the launching shell or global `~/.deepagents/.env`; a project
301
+ `.env` cannot set it.
302
+ """
287
303
 
288
304
  EXTERNAL_EVENT_SOCKET = "DEEPAGENTS_CODE_EXTERNAL_EVENT_SOCKET"
289
305
  """Enable the local Unix-socket external event listener.
@@ -296,7 +312,11 @@ EXTERNAL_EVENT_SOCKET_PATH = "DEEPAGENTS_CODE_EXTERNAL_EVENT_SOCKET_PATH"
296
312
  """Override the default Unix-socket path for the external event listener."""
297
313
 
298
314
  EXTRA_SKILLS_DIRS = "DEEPAGENTS_CODE_EXTRA_SKILLS_DIRS"
299
- """Paths added to the skill containment allowlist, split with `os.pathsep`."""
315
+ """Paths added to the skill containment allowlist, split with `os.pathsep`.
316
+
317
+ Set only through the launching shell or global `~/.deepagents/.env`; a project
318
+ `.env` cannot set it.
319
+ """
300
320
 
301
321
  GOAL_AUTO_ACCEPT_CRITERIA = "DEEPAGENTS_CODE_GOAL_AUTO_ACCEPT_CRITERIA"
302
322
  """Apply generated goal criteria automatically in Auto mode.
@@ -485,6 +505,8 @@ PLUGIN_CACHE_DIR = "DEEPAGENTS_CODE_PLUGIN_CACHE_DIR"
485
505
  """Override the plugin install/marketplace cache root.
486
506
 
487
507
  When unset, plugins are stored under `DEFAULT_CONFIG_DIR / "plugins"`.
508
+ Set only through the launching shell or global `~/.deepagents/.env`; a project
509
+ `.env` cannot set it.
488
510
  """
489
511
 
490
512
  PRICES_AUTO_UPDATE = "DEEPAGENTS_CODE_PRICES_AUTO_UPDATE"
@@ -564,7 +586,11 @@ SERVER_ENV_PREFIX = "DEEPAGENTS_CODE_SERVER_"
564
586
  """Environment variable prefix used to pass CLI config to the server subprocess."""
565
587
 
566
588
  SHELL_ALLOW_LIST = "DEEPAGENTS_CODE_SHELL_ALLOW_LIST"
567
- """Comma-separated shell commands to allow (or 'recommended'/'all')."""
589
+ """Comma-separated shell commands to allow (or 'recommended'/'all').
590
+
591
+ Set only through the launching shell or global `~/.deepagents/.env`; a project
592
+ `.env` cannot set it.
593
+ """
568
594
 
569
595
  SHOW_HEADER = "DEEPAGENTS_CODE_SHOW_HEADER"
570
596
  """Show Textual's native header bar at the top of the TUI when enabled."""
@@ -17,6 +17,9 @@ _GIT_DIR_POINTER_PREFIX = "gitdir: "
17
17
  _GIT_HEAD_REF_PREFIX = "ref: "
18
18
  """Prefix used by `HEAD` when it points at a named ref instead of a commit."""
19
19
 
20
+ _REFTABLE_HEAD_PLACEHOLDER = "refs/heads/.invalid"
21
+ """Ref a reftable repository writes to `HEAD`; the real refs live in `reftable/`."""
22
+
20
23
  _GIT_REF_PREFIXES = ("refs/heads/", "refs/remotes/", "refs/tags/", "refs/")
21
24
  """Known git ref prefixes stripped when formatting a branch-like display name."""
22
25
 
@@ -411,7 +414,8 @@ def read_git_branch_from_filesystem(path: str | Path) -> str | None:
411
414
  Returns:
412
415
  The abbreviated branch name, `HEAD` for detached HEAD, an empty string
413
416
  when `path` is not inside a git repository, or `None` when metadata
414
- exists but cannot be parsed confidently.
417
+ exists but cannot be parsed confidently (including reftable
418
+ repositories, whose `HEAD` file only holds a placeholder).
415
419
  """
416
420
  git_dir = find_git_dir(path)
417
421
  if git_dir is None:
@@ -431,7 +435,9 @@ def read_git_branch_from_filesystem(path: str | Path) -> str | None:
431
435
  return ""
432
436
  if head.startswith(_GIT_HEAD_REF_PREFIX):
433
437
  ref = head.removeprefix(_GIT_HEAD_REF_PREFIX).strip()
434
- return _abbreviate_git_ref(ref) if ref else None
438
+ if not ref or ref == _REFTABLE_HEAD_PLACEHOLDER:
439
+ return None
440
+ return _abbreviate_git_ref(ref)
435
441
  return "HEAD"
436
442
 
437
443
 
@@ -7,6 +7,7 @@ import dataclasses
7
7
  import hashlib
8
8
  import itertools
9
9
  import json
10
+ import logging
10
11
  import math
11
12
  from collections.abc import Mapping
12
13
  from typing import TYPE_CHECKING, override
@@ -19,6 +20,7 @@ from langgraph.checkpoint.base import (
19
20
  empty_checkpoint,
20
21
  )
21
22
  from langgraph.config import get_config
23
+ from langgraph.errors import GraphBubbleUp, NodeCancelledError
22
24
  from langgraph.types import Command
23
25
 
24
26
  from deepagents_code.cost_tracking import (
@@ -37,6 +39,8 @@ if TYPE_CHECKING:
37
39
 
38
40
  from deepagents_code.cost_tracking import CostBreakdown
39
41
 
42
+ logger = logging.getLogger(__name__)
43
+
40
44
  _ACCOUNTING_KEY = "__deepagents_js_cost_owner"
41
45
  _RESPONSE_FORMAT_KEY = "__deepagents_subagent_response_format"
42
46
 
@@ -172,6 +176,17 @@ def _cost_task(
172
176
  config=config,
173
177
  tool_call_id=runtime.tool_call_id,
174
178
  )
179
+ except asyncio.CancelledError, GraphBubbleUp, NodeCancelledError:
180
+ raise
181
+ except Exception as exc:
182
+ logger.debug("Subagent %r failed", subagent_type, exc_info=exc)
183
+ return {
184
+ "error": (
185
+ f"Subagent {subagent_type!r} failed: "
186
+ f"{type(exc).__name__}: {str(exc)[:300]}. You may retry this task."
187
+ ),
188
+ "failed": True,
189
+ }
175
190
  finally:
176
191
  if invocation is not None:
177
192
  active.discard(invocation)
@@ -0,0 +1,91 @@
1
+ """Run untraced `@traceable` bookkeeping inline on the server loop.
2
+
3
+ LangChain wraps every middleware `awrap_tool_call` and `awrap_model_call` hook
4
+ in `langsmith.traceable`. Its async wrapper sends two calls to a worker thread
5
+ per hook: one to set up the run and one to end it. It does this even when
6
+ tracing is off and both calls only build an empty container. About 20 traced
7
+ hooks run per tool round trip, so each round trip pays for about 40 thread
8
+ hops that do no work.
9
+
10
+ `install_untraced_inline_override` installs a LangSmith runtime override. The
11
+ override runs those two calls inline when they cannot trace, and gives every
12
+ other call to LangSmith's default thread hop.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ import functools
18
+ import logging
19
+ from typing import TYPE_CHECKING, Any
20
+
21
+ if TYPE_CHECKING:
22
+ import contextvars
23
+ from collections.abc import Awaitable, Callable
24
+
25
+ DefaultAioToThread = Callable[..., Awaitable[Any]]
26
+
27
+ logger = logging.getLogger(__name__)
28
+
29
+
30
+ def _target(func: Callable[..., Any]) -> Callable[..., Any]:
31
+ """Return the function a `functools.partial` wraps, else `func` itself.
32
+
33
+ Returns:
34
+ The underlying callable.
35
+ """
36
+ return func.func if isinstance(func, functools.partial) else func
37
+
38
+
39
+ def _runs_inline(
40
+ ctx: contextvars.Context,
41
+ func: Callable[..., Any],
42
+ args: tuple[Any, ...],
43
+ ) -> bool:
44
+ """Whether a `traceable` bookkeeping call cannot trace, so it is cheap.
45
+
46
+ Only run setup and run end qualify. Any other call (for example an async
47
+ `Client` API method) can do network I/O, so it keeps the thread hop.
48
+
49
+ Returns:
50
+ `True` when the call is safe to run on the event loop.
51
+ """
52
+ from langsmith import run_helpers
53
+ from langsmith.utils import tracing_is_enabled
54
+
55
+ target = _target(func)
56
+ if target is getattr(run_helpers, "_setup_run", None):
57
+ return not ctx.run(tracing_is_enabled)
58
+ if target is getattr(run_helpers, "_handle_container_end", None):
59
+ container = args[0] if args else None
60
+ return isinstance(container, dict) and container.get("new_run") is None
61
+ return False
62
+
63
+
64
+ async def _untraced_inline_aio_to_thread(
65
+ default: DefaultAioToThread,
66
+ ctx: contextvars.Context,
67
+ func: Callable[..., Any],
68
+ /,
69
+ *args: Any, # forwards arbitrary LangSmith call arguments
70
+ **kwargs: Any, # forwards arbitrary LangSmith call arguments
71
+ ) -> Any: # noqa: ANN401 # returns whatever `func` returns
72
+ """Run untraced bookkeeping inline; hop to a thread for everything else.
73
+
74
+ Returns:
75
+ The result of `func`.
76
+ """
77
+ if _runs_inline(ctx, func, args):
78
+ return ctx.run(func, *args, **kwargs)
79
+ return await default(ctx, func, *args, **kwargs)
80
+
81
+
82
+ def install_untraced_inline_override() -> None:
83
+ """Install the override for this process.
84
+
85
+ The override is process-global. Call it only in the server process, which
86
+ owns its event loop and pins one tracing configuration for its lifetime.
87
+ """
88
+ import langsmith
89
+
90
+ langsmith.set_runtime_overrides(aio_to_thread=_untraced_inline_aio_to_thread)
91
+ logger.debug("Installed inline LangSmith runtime override for untraced runs")