deepagents-code 0.1.67__tar.gz → 0.1.69__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 (548) hide show
  1. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/CHANGELOG.md +36 -0
  2. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/PKG-INFO +11 -11
  3. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_build_info.py +1 -1
  4. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_env_vars.py +3 -0
  5. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_session_stats.py +201 -10
  6. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_version.py +1 -1
  7. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/app.py +237 -73
  8. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/auto_mode.py +17 -1
  9. deepagents_code-0.1.69/deepagents_code/bundled_prices.json +39 -0
  10. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/config.py +54 -3
  11. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/non_interactive.py +7 -0
  12. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/remote_client.py +20 -7
  13. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/cold_cache.py +103 -40
  14. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/config.py +124 -1
  15. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configurable_model.py +18 -5
  16. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/local_context.py +24 -4
  17. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/offload_api.py +46 -23
  18. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/sessions.py +11 -9
  19. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/theme.py +2 -0
  20. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/textual_adapter.py +34 -5
  21. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/cwd_switch.py +28 -2
  22. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/debug_console.py +14 -3
  23. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/effort_selector.py +4 -1
  24. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/loading.py +8 -2
  25. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/messages.py +60 -0
  26. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/model_selector.py +10 -5
  27. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/status.py +16 -9
  28. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/thread_selector.py +2 -2
  29. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/pyproject.toml +8 -8
  30. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/scripts/check_process_cwd.py +3 -0
  31. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/conftest.py +30 -0
  32. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_app.py +698 -28
  33. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_auto_mode.py +78 -5
  34. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_cold_cache.py +110 -1
  35. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_config.py +352 -0
  36. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_configurable_model.py +107 -4
  37. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_debug_console.py +45 -0
  38. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_formatting.py +27 -3
  39. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_local_context.py +36 -0
  40. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_non_interactive.py +47 -0
  41. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_offload_api.py +35 -0
  42. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_reasoning_effort.py +40 -1
  43. deepagents_code-0.1.69/tests/unit_tests/test_session_stats.py +1282 -0
  44. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_theme.py +9 -0
  45. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/test_textual_adapter.py +117 -2
  46. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_cwd_switch.py +36 -1
  47. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_messages.py +126 -54
  48. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_status.py +31 -0
  49. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/uv.lock +29 -29
  50. deepagents_code-0.1.67/deepagents_code/bundled_prices.json +0 -21
  51. deepagents_code-0.1.67/tests/unit_tests/test_session_stats.py +0 -573
  52. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/.gitignore +0 -0
  53. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/AGENTS.md +0 -0
  54. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/ARCHITECTURE.md +0 -0
  55. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/COMMANDS.md +0 -0
  56. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/DEVELOPMENT.md +0 -0
  57. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/EXTENSIONS.md +0 -0
  58. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/HOOKS.md +0 -0
  59. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/LICENSE +0 -0
  60. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/Makefile +0 -0
  61. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/PRICING.md +0 -0
  62. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/README.md +0 -0
  63. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/THREAT_MODEL.md +0 -0
  64. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/__init__.py +0 -0
  65. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/__main__.py +0 -0
  66. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_ask_user_types.py +0 -0
  67. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_cli_context.py +0 -0
  68. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_constants.py +0 -0
  69. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_content_blocks.py +0 -0
  70. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_debug.py +0 -0
  71. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_debug_buffer.py +0 -0
  72. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_dep_floor_check.py +0 -0
  73. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_fake_models.py +0 -0
  74. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_git.py +0 -0
  75. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_glm_5p2_profile.py +0 -0
  76. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_home_error.py +0 -0
  77. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_invocation.py +0 -0
  78. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_markdown.py +0 -0
  79. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_paths.py +0 -0
  80. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_repository_bounds.py +0 -0
  81. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_reserved_names.py +0 -0
  82. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_server_config.py +0 -0
  83. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_startup_error.py +0 -0
  84. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_terminal_stderr.py +0 -0
  85. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_testing_models.py +0 -0
  86. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_textual_patches.py +0 -0
  87. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_tool_stream.py +0 -0
  88. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/_tracing.py +0 -0
  89. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/acp.py +0 -0
  90. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/agent.py +0 -0
  91. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/app.tcss +0 -0
  92. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/approval_mode.py +0 -0
  93. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/ask_user.py +0 -0
  94. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/auth_display.py +0 -0
  95. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/auth_store.py +0 -0
  96. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/__init__.py +0 -0
  97. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/deepagents-thread-inspector/SKILL.md +0 -0
  98. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/deepagents-thread-inspector/scripts/inspect_sessions.py +0 -0
  99. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/remember/SKILL.md +0 -0
  100. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/skill-creator/SKILL.md +0 -0
  101. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  102. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  103. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/bundled_prices.README.md +0 -0
  104. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/__init__.py +0 -0
  105. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/__init__.py +0 -0
  106. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/auth.py +0 -0
  107. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/extras.py +0 -0
  108. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/mcp.py +0 -0
  109. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/commands/tools.py +0 -0
  110. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/launch/__init__.py +0 -0
  111. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/launch/server.py +0 -0
  112. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/client/launch/server_manager.py +0 -0
  113. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/clipboard.py +0 -0
  114. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/command_registry.py +0 -0
  115. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/config_manifest.py +0 -0
  116. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/__init__.py +0 -0
  117. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/interpreter.py +0 -0
  118. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/paths.py +0 -0
  119. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/provider.py +0 -0
  120. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/providers.py +0 -0
  121. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/resolver.py +0 -0
  122. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/service.py +0 -0
  123. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/theme_resolution.py +0 -0
  124. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/types.py +0 -0
  125. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/configuration/writer.py +0 -0
  126. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/context_doctor.py +0 -0
  127. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/cost_tracking.py +0 -0
  128. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/default_agent_prompt.md +0 -0
  129. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/diff_utils.py +0 -0
  130. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/doctor.py +0 -0
  131. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/editor.py +0 -0
  132. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/event_bus.py +0 -0
  133. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/__init__.py +0 -0
  134. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/api.py +0 -0
  135. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/discovery.py +0 -0
  136. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/hosting.py +0 -0
  137. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/loader.py +0 -0
  138. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/registry.py +0 -0
  139. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/runtime.py +0 -0
  140. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/settings.py +0 -0
  141. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extensions/trust.py +0 -0
  142. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/extras_info.py +0 -0
  143. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/file_ops.py +0 -0
  144. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/formatting.py +0 -0
  145. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/goal_rubric.py +0 -0
  146. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/goal_state_limits.py +0 -0
  147. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/goal_state_notice.py +0 -0
  148. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/goal_tools.py +0 -0
  149. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/__init__.py +0 -0
  150. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/capabilities.py +0 -0
  151. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/client.py +0 -0
  152. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/client_lifecycle.py +0 -0
  153. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/context.py +0 -0
  154. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/engine.py +0 -0
  155. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/env.py +0 -0
  156. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/envelope.py +0 -0
  157. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/interrupt.py +0 -0
  158. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/legacy.py +0 -0
  159. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/loading.py +0 -0
  160. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/manager.py +0 -0
  161. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/migration.py +0 -0
  162. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/__init__.py +0 -0
  163. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/adapters.py +0 -0
  164. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/config.py +0 -0
  165. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/domain.py +0 -0
  166. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/transport.py +0 -0
  167. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/models/wire.py +0 -0
  168. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/permissions.py +0 -0
  169. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/presenter.py +0 -0
  170. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/projection.py +0 -0
  171. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/reducer.py +0 -0
  172. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/runner.py +0 -0
  173. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/runtime.py +0 -0
  174. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/server_middleware.py +0 -0
  175. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/snapshot.py +0 -0
  176. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/tools.py +0 -0
  177. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/transcript.py +0 -0
  178. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/trust.py +0 -0
  179. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/hooks/validate_terminal_sequence.py +0 -0
  180. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/input.py +0 -0
  181. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/__init__.py +0 -0
  182. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/openai_codex.py +0 -0
  183. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/sandbox_config.py +0 -0
  184. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/sandbox_factory.py +0 -0
  185. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/sandbox_provider.py +0 -0
  186. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/integrations/sandbox_registry.py +0 -0
  187. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/iterm_cursor_guide.py +0 -0
  188. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/json_types.py +0 -0
  189. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/main.py +0 -0
  190. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/managed_tools.py +0 -0
  191. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_auth.py +0 -0
  192. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_config.py +0 -0
  193. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_disabled.py +0 -0
  194. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_login_service.py +0 -0
  195. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_oauth_ui.py +0 -0
  196. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_providers/__init__.py +0 -0
  197. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_providers/_registry.py +0 -0
  198. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_providers/base.py +0 -0
  199. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_providers/github.py +0 -0
  200. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_providers/slack.py +0 -0
  201. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/mcp_tools.py +0 -0
  202. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/media_utils.py +0 -0
  203. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/memory_guard.py +0 -0
  204. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/model_config.py +0 -0
  205. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/model_retry.py +0 -0
  206. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/notifications.py +0 -0
  207. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/offload.py +0 -0
  208. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/offload_middleware.py +0 -0
  209. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/onboarding.py +0 -0
  210. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/output.py +0 -0
  211. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/paste_collapse.py +0 -0
  212. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/__init__.py +0 -0
  213. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/_json.py +0 -0
  214. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/adapters/__init__.py +0 -0
  215. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/adapters/hooks.py +0 -0
  216. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/adapters/mcp.py +0 -0
  217. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/adapters/skills.py +0 -0
  218. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/adapters/skills_middleware.py +0 -0
  219. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/commands_cli.py +0 -0
  220. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/discovery.py +0 -0
  221. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/manifest.py +0 -0
  222. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/marketplace.py +0 -0
  223. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/models.py +0 -0
  224. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/store.py +0 -0
  225. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/plugins/substitution.py +0 -0
  226. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/project_utils.py +0 -0
  227. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/py.typed +0 -0
  228. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/reasoning_effort.py +0 -0
  229. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/reliable_rubric.py +0 -0
  230. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/resume_state.py +0 -0
  231. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/server_graph.py +0 -0
  232. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/__init__.py +0 -0
  233. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/commands.py +0 -0
  234. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/invocation.py +0 -0
  235. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/load.py +0 -0
  236. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/merge.py +0 -0
  237. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/skills/trust.py +0 -0
  238. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/state_migration.py +0 -0
  239. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/subagents.py +0 -0
  240. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/system_prompt.md +0 -0
  241. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/terminal_capabilities.py +0 -0
  242. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/terminal_escape.py +0 -0
  243. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tool_catalog.py +0 -0
  244. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tool_display.py +0 -0
  245. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tools.py +0 -0
  246. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/__init__.py +0 -0
  247. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/key_hints.py +0 -0
  248. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/__init__.py +0 -0
  249. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/cold_cache.py +0 -0
  250. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/model_switch.py +0 -0
  251. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/__init__.py +0 -0
  252. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/content.py +0 -0
  253. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/models.py +0 -0
  254. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/plugin_manager.tcss +0 -0
  255. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/state.py +0 -0
  256. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/plugin_manager/tabs.py +0 -0
  257. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/prompt_clipboard.py +0 -0
  258. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/prompt_clipboard.tcss +0 -0
  259. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/resume_blocked.py +0 -0
  260. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/modals/resume_compact.py +0 -0
  261. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/screens/__init__.py +0 -0
  262. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/__init__.py +0 -0
  263. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/_copy_spans.py +0 -0
  264. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/_inline_prompt.py +0 -0
  265. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/_js_eval_display.py +0 -0
  266. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/_links.py +0 -0
  267. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/_paste_textarea.py +0 -0
  268. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/agent_selector.py +0 -0
  269. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/approval.py +0 -0
  270. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/ask_user.py +0 -0
  271. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/auth.py +0 -0
  272. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/auto_mode_notice.py +0 -0
  273. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/autocomplete.py +0 -0
  274. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/chat_input.py +0 -0
  275. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/codex_auth.py +0 -0
  276. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/context_usage.py +0 -0
  277. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/diff.py +0 -0
  278. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/goal_review.py +0 -0
  279. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/goal_status.py +0 -0
  280. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/history.py +0 -0
  281. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/install_confirm.py +0 -0
  282. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/launch_init.py +0 -0
  283. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/mcp_login.py +0 -0
  284. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/mcp_reconnect.py +0 -0
  285. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/mcp_viewer.py +0 -0
  286. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/message_store.py +0 -0
  287. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/notification_center.py +0 -0
  288. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/notification_detail.py +0 -0
  289. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/notification_settings.py +0 -0
  290. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/prompt_search.py +0 -0
  291. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/restart_prompt.py +0 -0
  292. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/skill_trust.py +0 -0
  293. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/startup_tip.py +0 -0
  294. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/subagent_panel.py +0 -0
  295. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/theme_selector.py +0 -0
  296. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/thread_agent_switch.py +0 -0
  297. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/tool_renderers.py +0 -0
  298. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/tool_widgets.py +0 -0
  299. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/update_available.py +0 -0
  300. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/update_confirm.py +0 -0
  301. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/update_progress.py +0 -0
  302. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/welcome.py +0 -0
  303. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/tui/widgets/yolo_mode_notice.py +0 -0
  304. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/ui.py +0 -0
  305. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/unicode_security.py +0 -0
  306. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/update_check.py +0 -0
  307. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/deepagents_code/workspace.py +0 -0
  308. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/extensions/memory_store.py +0 -0
  309. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/arxiv-search/SKILL.md +0 -0
  310. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  311. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/langgraph-docs/SKILL.md +0 -0
  312. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/skill-creator/SKILL.md +0 -0
  313. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  314. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  315. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/examples/skills/web-research/SKILL.md +0 -0
  316. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/hatch_build.py +0 -0
  317. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/images/model-stream-retry.png +0 -0
  318. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/images/tui.png +0 -0
  319. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/scripts/check_imports.py +0 -0
  320. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/scripts/debug_server.sh +0 -0
  321. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/scripts/generate_commands_catalog.py +0 -0
  322. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/scripts/install.sh +0 -0
  323. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/README.md +0 -0
  324. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/__init__.py +0 -0
  325. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/benchmarks/__init__.py +0 -0
  326. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  327. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/benchmarks/test_local_context_benchmarks.py +0 -0
  328. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -0
  329. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/conftest.py +0 -0
  330. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_acp_mode.py +0 -0
  331. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_auto_approve_remote.py +0 -0
  332. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_compact_resume.py +0 -0
  333. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_offload_server_side.py +0 -0
  334. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_pending_work_recovery.py +0 -0
  335. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_sandbox_factory.py +0 -0
  336. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/integration_tests/test_sandbox_operations.py +0 -0
  337. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/__init__.py +0 -0
  338. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/__init__.py +0 -0
  339. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/commands/__init__.py +0 -0
  340. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/commands/test_auth.py +0 -0
  341. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/commands/test_extras.py +0 -0
  342. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/commands/test_mcp.py +0 -0
  343. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/client/commands/test_tools.py +0 -0
  344. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/data/coding_agent_v1_validator.json +0 -0
  345. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/__init__.py +0 -0
  346. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/models/__init__.py +0 -0
  347. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/models/test_models.py +0 -0
  348. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_client_lifecycle.py +0 -0
  349. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_configuration.py +0 -0
  350. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_engine.py +0 -0
  351. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_execution.py +0 -0
  352. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_manager.py +0 -0
  353. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_presenter.py +0 -0
  354. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_server_lifecycle.py +0 -0
  355. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_transcript.py +0 -0
  356. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/hooks/test_trust.py +0 -0
  357. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/plugins/__init__.py +0 -0
  358. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/plugins/test_marketplace.py +0 -0
  359. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/plugins/test_plugin_hooks.py +0 -0
  360. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/plugins/test_plugins_p0.py +0 -0
  361. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/__init__.py +0 -0
  362. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_commands.py +0 -0
  363. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_load.py +0 -0
  364. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_merge.py +0 -0
  365. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_skill_trust.py +0 -0
  366. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_skills_json.py +0 -0
  367. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/skills/test_thread_inspector.py +0 -0
  368. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/smoke_tests/__init__.py +0 -0
  369. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/smoke_tests/conftest.py +0 -0
  370. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/smoke_tests/snapshots/system_prompt_interactive_local.md +0 -0
  371. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/smoke_tests/test_system_prompt.py +0 -0
  372. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test__tool_stream.py +0 -0
  373. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_acp.py +0 -0
  374. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_agent.py +0 -0
  375. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_agent_friendly.py +0 -0
  376. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_approval_mode.py +0 -0
  377. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_args.py +0 -0
  378. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  379. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_ask_user_types.py +0 -0
  380. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_auth_display.py +0 -0
  381. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_auth_store.py +0 -0
  382. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_auth_web_search_restart.py +0 -0
  383. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_charset.py +0 -0
  384. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_cli_provider.py +0 -0
  385. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_clipboard.py +0 -0
  386. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_coding_agent_metadata.py +0 -0
  387. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_command_registry.py +0 -0
  388. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_compact_tool.py +0 -0
  389. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_config_manifest.py +0 -0
  390. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_configuration.py +0 -0
  391. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_configuration_resolution.py +0 -0
  392. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_configuration_resolver.py +0 -0
  393. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_context_doctor.py +0 -0
  394. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_cost_tracking.py +0 -0
  395. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_cursor_style.py +0 -0
  396. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_debug.py +0 -0
  397. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_debug_buffer.py +0 -0
  398. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_dep_floor_check.py +0 -0
  399. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_diff_utils.py +0 -0
  400. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_doctor.py +0 -0
  401. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_editor.py +0 -0
  402. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_end_to_end.py +0 -0
  403. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_env_vars.py +0 -0
  404. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_event_bus.py +0 -0
  405. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_exception_handling.py +0 -0
  406. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_api.py +0 -0
  407. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_cli_trust.py +0 -0
  408. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_config_manifest.py +0 -0
  409. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_discovery.py +0 -0
  410. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_display.py +0 -0
  411. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_host_runtime.py +0 -0
  412. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_hosting.py +0 -0
  413. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extension_runtime.py +0 -0
  414. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extra_skills_dirs.py +0 -0
  415. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_extras_info.py +0 -0
  416. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_file_ops.py +0 -0
  417. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_git.py +0 -0
  418. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_glm_5p2_profile.py +0 -0
  419. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_criteria_client.py +0 -0
  420. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_rubric.py +0 -0
  421. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_state_limits.py +0 -0
  422. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_state_notice.py +0 -0
  423. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_state_persistence.py +0 -0
  424. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_goal_tools.py +0 -0
  425. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_hatch_build.py +0 -0
  426. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_hooks.py +0 -0
  427. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_imports.py +0 -0
  428. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_input_parsing.py +0 -0
  429. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_install_command.py +0 -0
  430. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_install_script.py +0 -0
  431. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_invocation.py +0 -0
  432. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_iterm_cursor_guide.py +0 -0
  433. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_json_types.py +0 -0
  434. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_main.py +0 -0
  435. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_main_acp_mode.py +0 -0
  436. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_main_args.py +0 -0
  437. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_managed_tools.py +0 -0
  438. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_auth.py +0 -0
  439. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_config.py +0 -0
  440. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_disabled.py +0 -0
  441. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_login_service.py +0 -0
  442. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_oauth_ui.py +0 -0
  443. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_mcp_tools.py +0 -0
  444. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_media_utils.py +0 -0
  445. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_memory_guard.py +0 -0
  446. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_model_config.py +0 -0
  447. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_model_retry.py +0 -0
  448. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_model_switch.py +0 -0
  449. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_notifications.py +0 -0
  450. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_offload.py +0 -0
  451. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_onboarding.py +0 -0
  452. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_openai_codex_integration.py +0 -0
  453. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_output.py +0 -0
  454. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_paths.py +0 -0
  455. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_process_cwd_check.py +0 -0
  456. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_reliable_rubric.py +0 -0
  457. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_reload.py +0 -0
  458. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_remote_client.py +0 -0
  459. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_repository_bounds.py +0 -0
  460. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_resume_compaction_recovery.py +0 -0
  461. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_resume_state.py +0 -0
  462. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_rubric_cli.py +0 -0
  463. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_sandbox_config.py +0 -0
  464. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_sandbox_factory.py +0 -0
  465. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_sandbox_provider.py +0 -0
  466. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_sandbox_registry.py +0 -0
  467. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server.py +0 -0
  468. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server_config.py +0 -0
  469. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server_graph.py +0 -0
  470. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server_helpers.py +0 -0
  471. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server_manager.py +0 -0
  472. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_server_tracing.py +0 -0
  473. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_sessions.py +0 -0
  474. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_shell_allow_list.py +0 -0
  475. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_skill_invocation.py +0 -0
  476. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_startup_fast_paths.py +0 -0
  477. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_state_migration.py +0 -0
  478. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_subagents.py +0 -0
  479. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  480. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_terminal_escape.py +0 -0
  481. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_terminal_progress_preference.py +0 -0
  482. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_terminal_stderr.py +0 -0
  483. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_textual_patches.py +0 -0
  484. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_threads_resume.py +0 -0
  485. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_tool_catalog.py +0 -0
  486. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_tool_display.py +0 -0
  487. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_tracing.py +0 -0
  488. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_tracing_replicas.py +0 -0
  489. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_transcript_virtualization.py +0 -0
  490. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_ui.py +0 -0
  491. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_unicode_security.py +0 -0
  492. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_uninstall_command.py +0 -0
  493. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_update_check.py +0 -0
  494. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_version.py +0 -0
  495. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/test_workspace.py +0 -0
  496. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tools/__init__.py +0 -0
  497. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tools/test_current_thread.py +0 -0
  498. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tools/test_fetch_url.py +0 -0
  499. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tools/test_tool_arg_schemas.py +0 -0
  500. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tools/test_web_search.py +0 -0
  501. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/__init__.py +0 -0
  502. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/__init__.py +0 -0
  503. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/plugin_manager/__init__.py +0 -0
  504. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/plugin_manager/test_structure.py +0 -0
  505. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/test_cold_cache.py +0 -0
  506. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/test_model_switch.py +0 -0
  507. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/test_prompt_clipboard.py +0 -0
  508. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/modals/test_resume_blocked.py +0 -0
  509. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/test_key_hints.py +0 -0
  510. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/test_modal_footer_layout.py +0 -0
  511. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/test_subagent_stream.py +0 -0
  512. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/__init__.py +0 -0
  513. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_agent_selector.py +0 -0
  514. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_approval.py +0 -0
  515. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_ask_user.py +0 -0
  516. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_auth_widgets.py +0 -0
  517. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_auto_mode_notice.py +0 -0
  518. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_autocomplete.py +0 -0
  519. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_chat_input.py +0 -0
  520. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_copy_spans.py +0 -0
  521. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_diff.py +0 -0
  522. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_goal_review.py +0 -0
  523. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_history.py +0 -0
  524. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_inline_prompt.py +0 -0
  525. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_install_confirm.py +0 -0
  526. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_launch_init.py +0 -0
  527. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_links.py +0 -0
  528. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_loading.py +0 -0
  529. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_mcp_login_modal.py +0 -0
  530. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_mcp_reconnect.py +0 -0
  531. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_mcp_viewer.py +0 -0
  532. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_message_store.py +0 -0
  533. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_model_selector.py +0 -0
  534. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_notification_center.py +0 -0
  535. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_notification_detail.py +0 -0
  536. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_notification_settings.py +0 -0
  537. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_prompt_search.py +0 -0
  538. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_restart_prompt.py +0 -0
  539. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_skill_trust_screen.py +0 -0
  540. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_startup_tip.py +0 -0
  541. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_subagent_panel.py +0 -0
  542. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_thread_agent_switch.py +0 -0
  543. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_thread_selector.py +0 -0
  544. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_tool_renderers.py +0 -0
  545. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_update_available.py +0 -0
  546. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_update_confirm.py +0 -0
  547. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_update_progress.py +0 -0
  548. {deepagents_code-0.1.67 → deepagents_code-0.1.69}/tests/unit_tests/tui/widgets/test_welcome.py +0 -0
@@ -2,6 +2,42 @@
2
2
 
3
3
  # Deep Agents Code Changelog
4
4
 
5
+ ## [0.1.69](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.68...deepagents-code==0.1.69) (2026-09-14)
6
+
7
+ ### Features
8
+
9
+ - Update `read_file` output formatting. ([#5648](https://github.com/langchain-ai/deepagents/pull/5648))
10
+ - Surface DeepSeek V4.1 Flash in the model picker. ([#6254](https://github.com/langchain-ai/deepagents/pull/6254))
11
+ - Surface locally tracked GitHub stacks in agent context. ([#6290](https://github.com/langchain-ai/deepagents/pull/6290))
12
+ - Copy a model slug with Ctrl+click. ([#6243](https://github.com/langchain-ai/deepagents/pull/6243))
13
+ - Show session length in the Debug Console. ([#6224](https://github.com/langchain-ai/deepagents/pull/6224))
14
+
15
+ ### Bug Fixes
16
+
17
+ - Price nested usage with its own model and honor completions. ([#6251](https://github.com/langchain-ai/deepagents/pull/6251))
18
+ - Drop stale Anthropic thinking blocks. ([#6300](https://github.com/langchain-ai/deepagents/pull/6300))
19
+ - Isolate credentials used for user shell tracing. ([#6242](https://github.com/langchain-ai/deepagents/pull/6242))
20
+ - Attribute dotenv configuration sources. ([#6222](https://github.com/langchain-ai/deepagents/pull/6222))
21
+ - Expose unknown reasoning effort values. ([#6241](https://github.com/langchain-ai/deepagents/pull/6241))
22
+ - Open the Debug Console at the bottom of the log. ([#6218](https://github.com/langchain-ai/deepagents/pull/6218))
23
+ - Order Debug Console log filters. ([#6217](https://github.com/langchain-ai/deepagents/pull/6217))
24
+ - Show the spinner during pre-stream turn setup. ([#6253](https://github.com/langchain-ai/deepagents/pull/6253))
25
+ - Demote no-output hint suppression messages to debug logging. ([#6245](https://github.com/langchain-ai/deepagents/pull/6245))
26
+
27
+ ## [0.1.68](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.67...deepagents-code==0.1.68) (2026-09-10)
28
+
29
+ ### Features
30
+
31
+ - Recommended GLM 5.3 models are now available in code workflows ([#6211](https://github.com/langchain-ai/deepagents/pull/6211)).
32
+
33
+ ### Bug Fixes
34
+
35
+ - Added pricing support for Fireworks GLM-5.3 and GLM-5.3 Flash usage ([#6221](https://github.com/langchain-ai/deepagents/pull/6221), [#6223](https://github.com/langchain-ai/deepagents/pull/6223)).
36
+ - Workspace switches now ask for confirmation before restarting the server ([#6178](https://github.com/langchain-ai/deepagents/pull/6178)).
37
+ - Effort changes are now included in cache identity for OpenAI and Anthropic requests ([#6196](https://github.com/langchain-ai/deepagents/pull/6196)).
38
+ - Standardized the recent-thread environment variable ([#6205](https://github.com/langchain-ai/deepagents/pull/6205)).
39
+ - Silenced warnings when the themes config is absent ([#6220](https://github.com/langchain-ai/deepagents/pull/6220)).
40
+
5
41
  ## [0.1.67](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.66...deepagents-code==0.1.67) (2026-09-09)
6
42
 
7
43
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: deepagents-code
3
- Version: 0.1.67
3
+ Version: 0.1.69
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
@@ -30,21 +30,21 @@ Requires-Python: <4.0,>=3.12
30
30
  Requires-Dist: aiosqlite<1.0.0,>=0.22.1
31
31
  Requires-Dist: anyio<5.0.0,>=4.14.2
32
32
  Requires-Dist: deepagents-acp<1.0.0,>=0.0.10
33
- Requires-Dist: deepagents==0.7.13
33
+ Requires-Dist: deepagents==0.7.14
34
34
  Requires-Dist: filelock<3.30,>=3.29.7
35
35
  Requires-Dist: genai-prices<0.2.0,>=0.1.6
36
36
  Requires-Dist: httpx<1.0.0,>=0.28.1
37
- Requires-Dist: langchain-anthropic<2.0.0,>=1.7.1
37
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.7.2
38
38
  Requires-Dist: langchain-google-genai<5.0.0,>=4.4.0
39
39
  Requires-Dist: langchain-mcp-adapters<1.0.0,>=0.3.2
40
- Requires-Dist: langchain-openai<2.0.0,>=1.6.1
40
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.2
41
41
  Requires-Dist: langchain-quickjs<0.4.0,>=0.3.4
42
42
  Requires-Dist: langchain<2.0.0,>=1.4.0
43
43
  Requires-Dist: langgraph-checkpoint-sqlite<4.0.0,>=3.1.1
44
44
  Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.31
45
45
  Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.34.0
46
46
  Requires-Dist: langgraph-sdk<1.0.0,>=0.4.4
47
- Requires-Dist: langsmith[sandbox]>=0.12.2
47
+ Requires-Dist: langsmith[sandbox]>=0.12.4
48
48
  Requires-Dist: markdownify<2.0.0,>=1.2.3
49
49
  Requires-Dist: mcp<2.0.0,>=1.28.1
50
50
  Requires-Dist: packaging>=26.2
@@ -66,8 +66,8 @@ Provides-Extra: agentcore
66
66
  Requires-Dist: langchain-agentcore-codeinterpreter<1.0.0,>=0.0.5; extra == 'agentcore'
67
67
  Provides-Extra: all-providers
68
68
  Requires-Dist: aiohttp<3.15.0,>=3.14.3; extra == 'all-providers'
69
- Requires-Dist: langchain-anthropic<2.0.0,>=1.7.1; extra == 'all-providers'
70
- Requires-Dist: langchain-aws<2.0.0,>=1.7.5; extra == 'all-providers'
69
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.7.2; extra == 'all-providers'
70
+ Requires-Dist: langchain-aws<2.0.0,>=1.7.6; extra == 'all-providers'
71
71
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.4; extra == 'all-providers'
72
72
  Requires-Dist: langchain-cohere<1.0.0,>=0.6.0; extra == 'all-providers'
73
73
  Requires-Dist: langchain-deepseek<2.0.0,>=1.1.0; extra == 'all-providers'
@@ -82,7 +82,7 @@ Requires-Dist: langchain-meta<2.0.0,>=0.5.0; extra == 'all-providers'
82
82
  Requires-Dist: langchain-mistralai<2.0.0,>=1.1.6; extra == 'all-providers'
83
83
  Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'all-providers'
84
84
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'all-providers'
85
- Requires-Dist: langchain-openai<2.0.0,>=1.6.1; extra == 'all-providers'
85
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.2; extra == 'all-providers'
86
86
  Requires-Dist: langchain-openrouter<2.0.0,>=0.2.8; extra == 'all-providers'
87
87
  Requires-Dist: langchain-perplexity<2.0.0,>=1.4.1; extra == 'all-providers'
88
88
  Requires-Dist: langchain-together<2.0.0,>=0.4.0; extra == 'all-providers'
@@ -94,11 +94,11 @@ Requires-Dist: langchain-modal>=0.0.5; extra == 'all-sandboxes'
94
94
  Requires-Dist: langchain-runloop>=0.0.6; extra == 'all-sandboxes'
95
95
  Requires-Dist: langchain-vercel-sandbox>=0.0.1; extra == 'all-sandboxes'
96
96
  Provides-Extra: anthropic
97
- Requires-Dist: langchain-anthropic<2.0.0,>=1.7.1; extra == 'anthropic'
97
+ Requires-Dist: langchain-anthropic<2.0.0,>=1.7.2; extra == 'anthropic'
98
98
  Provides-Extra: baseten
99
99
  Requires-Dist: langchain-baseten<1.0.0,>=0.2.4; extra == 'baseten'
100
100
  Provides-Extra: bedrock
101
- Requires-Dist: langchain-aws<2.0.0,>=1.7.5; extra == 'bedrock'
101
+ Requires-Dist: langchain-aws<2.0.0,>=1.7.6; extra == 'bedrock'
102
102
  Provides-Extra: cohere
103
103
  Requires-Dist: langchain-cohere<1.0.0,>=0.6.0; extra == 'cohere'
104
104
  Provides-Extra: daytona
@@ -132,7 +132,7 @@ Requires-Dist: langchain-nvidia-ai-endpoints<2.0.0,>=1.4.3; extra == 'nvidia'
132
132
  Provides-Extra: ollama
133
133
  Requires-Dist: langchain-ollama<2.0.0,>=1.1.0; extra == 'ollama'
134
134
  Provides-Extra: openai
135
- Requires-Dist: langchain-openai<2.0.0,>=1.6.1; extra == 'openai'
135
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.2; extra == 'openai'
136
136
  Provides-Extra: openrouter
137
137
  Requires-Dist: langchain-openrouter<2.0.0,>=0.2.8; extra == 'openrouter'
138
138
  Provides-Extra: perplexity
@@ -1,3 +1,3 @@
1
1
  """Generated at build time. Do not edit or commit."""
2
2
 
3
- BUILD_COMMIT = "d0fbc7c"
3
+ BUILD_COMMIT = "1d3232c"
@@ -506,6 +506,9 @@ hostile values the dotenv denylist does not yet enumerate. The global
506
506
  repo file, so a project `.env` cannot disable itself.
507
507
  """
508
508
 
509
+ RECENT_THREADS = "DEEPAGENTS_CODE_RECENT_THREADS"
510
+ """Maximum number of recent threads loaded and displayed (default: 20)."""
511
+
509
512
  RECURSION_LIMIT = "DEEPAGENTS_CODE_RECURSION_LIMIT"
510
513
  """Override the main agent's LangGraph `recursion_limit` (graph step budget).
511
514
 
@@ -149,6 +149,32 @@ class RecordedUsage:
149
149
  request_tokens: int
150
150
  """Running token total for the request after applying this message."""
151
151
 
152
+ request_id: str | None = None
153
+ """Opaque key naming the request this delta belongs to, when known.
154
+
155
+ Keys each correction to the request it applies to. A late revision then
156
+ cannot subtract spend that belongs to other requests. `None` when the
157
+ message carried no usable ID, which is also when the ledger refuses to key
158
+ the request at all.
159
+
160
+ Built by `_provisional_bucket_key`, so it separates retry attempts exactly
161
+ as the ledger does. Treat it as a bucket key, not as a provider message ID.
162
+ """
163
+
164
+ is_correction: bool = False
165
+ """Whether this delta only revises spend already reported for the request.
166
+
167
+ A correction re-states what an earlier delta already contributed: a
168
+ completion replacing its chunks, or a request re-priced under the model it
169
+ finally named. New spend is not a correction, even when it arrives on a
170
+ request that already has a record, because the tokens themselves are new.
171
+
172
+ Lets the consumer drop a correction whose subject is gone -- a backend
173
+ total has already absorbed that request -- whatever the correction's sign.
174
+ A stale *positive* correction would otherwise re-inflate a display the
175
+ total had just settled.
176
+ """
177
+
152
178
 
153
179
  UsageLedgerKey = str | tuple[Hashable, str]
154
180
  """Key of the recorded-request ledger: a message ID, optionally scoped.
@@ -460,6 +486,36 @@ def finalize_recorded_requests(
460
486
  recorded_requests[request_id[1]] = closed
461
487
 
462
488
 
489
+ def _provisional_bucket_key(request_id: UsageLedgerKey | None) -> str | None:
490
+ """Return a string key naming the request a provisional delta belongs to.
491
+
492
+ The consumer keys a pool of provisional dollars by this value, so it must
493
+ separate exactly what the ledger separates. An attempt-scoped key therefore
494
+ keeps its scope: two attempts that reuse one provider message ID are
495
+ distinct requests, and collapsing them to the bare ID would let one
496
+ attempt's late retraction draw on the other attempt's deposit.
497
+
498
+ Scope cannot change under a request while it still reports deltas. A chunk
499
+ or completion whose record is already finalized is rejected before any
500
+ delta is built, and `finalize_recorded_requests` closes every entry at the
501
+ end of a stream round -- so one request's deltas all carry one scope, and
502
+ the key stays stable for as long as the pool holds its money.
503
+
504
+ Args:
505
+ request_id: Ledger key for the request, or `None` when the message
506
+ carried no usable ID.
507
+
508
+ Returns:
509
+ An opaque bucket key, or `None` when there is no ledger key to name.
510
+ """
511
+ if request_id is None:
512
+ return None
513
+ if isinstance(request_id, tuple):
514
+ attempt_scope, message_id = request_id
515
+ return f"{attempt_scope!r}\x00{message_id}"
516
+ return request_id
517
+
518
+
463
519
  def _names_a_model(message: object) -> bool:
464
520
  """Report whether a message's own metadata names the model that served it.
465
521
 
@@ -630,21 +686,24 @@ def _resolve_usage_model(
630
686
  The `(model_name, provider)` pair to record and price under.
631
687
  """
632
688
  from deepagents_code.cost_tracking import (
689
+ _CONFIGURED_MODEL_METADATA_KEY,
633
690
  _CONFIGURED_PROVIDER_METADATA_KEY,
634
691
  resolve_message_model,
635
692
  )
636
693
 
637
- configured_provider = (
638
- request_metadata.get(_CONFIGURED_PROVIDER_METADATA_KEY)
639
- if request_metadata is not None
640
- else None
641
- )
694
+ request_metadata = request_metadata or {}
695
+ configured_provider = request_metadata.get(_CONFIGURED_PROVIDER_METADATA_KEY)
642
696
  has_request_provider = isinstance(configured_provider, str) and bool(
643
697
  configured_provider
644
698
  )
699
+ configured_model = request_metadata.get(_CONFIGURED_MODEL_METADATA_KEY)
700
+ has_request_model = isinstance(configured_model, str) and bool(configured_model)
645
701
  return resolve_message_model(
646
702
  message,
647
- fallback_model=fallback_model,
703
+ # The request's own configured model describes this very call, so unlike
704
+ # the caller's fallback it is valid for nested calls too; it only
705
+ # replaces the parent-fallback step, ahead of the existing chain.
706
+ fallback_model=configured_model if has_request_model else fallback_model,
648
707
  fallback_provider=(
649
708
  configured_provider if has_request_provider else fallback_provider
650
709
  ),
@@ -733,6 +792,117 @@ def _move_request_to_named_model(
733
792
  )
734
793
 
735
794
 
795
+ def _finalize_from_completed(
796
+ stats: SessionStats,
797
+ message: object,
798
+ previous: RecordedRequest,
799
+ *,
800
+ usage: Mapping[str, Any],
801
+ recorded_requests: dict[UsageLedgerKey, RecordedRequest],
802
+ request_id: UsageLedgerKey,
803
+ fallback_model: str,
804
+ fallback_provider: str,
805
+ request_metadata: Mapping[str, Any] | None,
806
+ kind: UsageKind,
807
+ ) -> RecordedUsage | None:
808
+ """Replace a chunk-built request record with a completed message's usage.
809
+
810
+ Chunks report incremental deltas, so a request recorded mid-stream holds
811
+ partial tokens priced under whatever model was known then. The completed
812
+ message carries the whole usage; it must replace the partial record rather
813
+ than join it, or corrected token counts, cache details, and model
814
+ attribution never reach the stats.
815
+
816
+ Args:
817
+ stats: Accumulator holding the partial request.
818
+ message: The completed message with the request's whole usage.
819
+ previous: The partial ledger entry to supersede.
820
+ usage: The completed message's whole usage metadata.
821
+ recorded_requests: Ledger to update in place.
822
+ request_id: Message ID keying the ledger entry.
823
+ fallback_model: Model to use when response metadata does not name one.
824
+ fallback_provider: Provider to use when response metadata omits it.
825
+ request_metadata: Stream metadata for this specific request, if any.
826
+ kind: Request class used by the type breakdown.
827
+
828
+ Returns:
829
+ The signed cost change the replacement applied, for the caller's
830
+ provisional display, or `None` when nothing changed.
831
+ """
832
+ from deepagents_code.cost_tracking import cache_token_counts, estimate_cost
833
+
834
+ model_name, provider = _resolve_usage_model(
835
+ message,
836
+ fallback_model=fallback_model,
837
+ fallback_provider=fallback_provider,
838
+ request_metadata=request_metadata,
839
+ kind=kind,
840
+ )
841
+ if not _names_a_model(message):
842
+ # An earlier chunk may already have upgraded the record off the
843
+ # caller's fallback. A completion that names no model of its own must
844
+ # not undo that, or the request goes back to the parent's pricing --
845
+ # the very mis-attribution the chunk path guards against.
846
+ model_name, provider = previous.model_name, previous.provider
847
+ input_count, output_count = _display_token_counts(usage)
848
+ cost_usd = estimate_cost(usage, model_name, provider)
849
+ cache_reads, cache_writes = cache_token_counts(usage)
850
+
851
+ if (
852
+ not input_count
853
+ and not output_count
854
+ and _carries_token_counts(previous.usage_metadata)
855
+ ):
856
+ # A completion that corrects its chunks downward is ordinary -- the
857
+ # provider revises an over-counted prompt. Reporting *no* token field
858
+ # at all is not: it normalizes to zero and wipes a request the chunks
859
+ # had counted. Replace the record regardless, since the completion is
860
+ # authoritative, but say so rather than losing the tokens quietly.
861
+ logger.warning(
862
+ "A completed message states no token counts, so it replaces its "
863
+ "chunks with zero. request_id=%r dropped=%d/%d",
864
+ request_id,
865
+ previous.input_tokens,
866
+ previous.output_tokens,
867
+ )
868
+ stats.retract_request(previous)
869
+ stats.record_request(
870
+ model_name,
871
+ input_count,
872
+ output_count,
873
+ provider,
874
+ cost_usd=cost_usd,
875
+ kind=kind,
876
+ cache_read_tokens=cache_reads,
877
+ cache_write_tokens=sum(cache_writes),
878
+ )
879
+ recorded_requests[request_id] = RecordedRequest(
880
+ model_name=model_name,
881
+ provider=provider,
882
+ kind=kind,
883
+ input_tokens=input_count,
884
+ output_tokens=output_count,
885
+ cache_read_tokens=cache_reads,
886
+ cache_write_tokens=sum(cache_writes),
887
+ cost_usd=cost_usd,
888
+ usage_metadata=usage,
889
+ finalized=True,
890
+ )
891
+ return RecordedUsage(
892
+ input_tokens=input_count - previous.input_tokens,
893
+ output_tokens=output_count - previous.output_tokens,
894
+ cost_usd=_cost_delta(
895
+ previous.cost_usd,
896
+ cost_usd,
897
+ model_name=model_name,
898
+ previous_model_name=previous.model_name,
899
+ ),
900
+ request_tokens=input_count + output_count,
901
+ request_id=_provisional_bucket_key(request_id),
902
+ is_correction=True,
903
+ )
904
+
905
+
736
906
  def record_message_usage(
737
907
  stats: SessionStats,
738
908
  message: object,
@@ -810,10 +980,28 @@ def record_message_usage(
810
980
  request_id = (attempt_scope, request_id)
811
981
  is_chunk = isinstance(message, AIMessageChunk)
812
982
  if request_id is not None and request_id in recorded_requests and not is_chunk:
813
- # A completed message repeats the whole request. Whether the request was
814
- # built from chunks or from an identical earlier replay, it is already
815
- # accounted for.
816
- return None
983
+ previous = recorded_requests[request_id]
984
+ if previous.finalized:
985
+ # A completed message repeats the whole request, and a completed
986
+ # record already holds it in full. Whether this entry was built
987
+ # from an identical earlier completion or re-records one, it is
988
+ # already accounted for.
989
+ return None
990
+ # A partial ledger entry was built only from incremental chunks; this
991
+ # completion carries the request's whole usage and must *replace* it.
992
+ # Retry-attempt scoping keeps this keyed to its own attempt's entry.
993
+ return _finalize_from_completed(
994
+ stats,
995
+ message,
996
+ previous,
997
+ usage=usage,
998
+ recorded_requests=recorded_requests,
999
+ request_id=request_id,
1000
+ fallback_model=fallback_model,
1001
+ fallback_provider=fallback_provider,
1002
+ request_metadata=request_metadata,
1003
+ kind=kind,
1004
+ )
817
1005
 
818
1006
  input_count, output_count = _display_token_counts(usage)
819
1007
  previous = recorded_requests.get(request_id) if request_id is not None else None
@@ -850,6 +1038,8 @@ def record_message_usage(
850
1038
  output_tokens=0,
851
1039
  cost_usd=reprice_delta,
852
1040
  request_tokens=previous.input_tokens + previous.output_tokens,
1041
+ request_id=_provisional_bucket_key(request_id),
1042
+ is_correction=True,
853
1043
  )
854
1044
  return None
855
1045
 
@@ -925,6 +1115,7 @@ def record_message_usage(
925
1115
  previous_model_name=previous.model_name if previous else model_name,
926
1116
  ),
927
1117
  request_tokens=input_count + output_count,
1118
+ request_id=_provisional_bucket_key(request_id),
928
1119
  )
929
1120
 
930
1121
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Keep the `x-release-please-version` annotation — release-please uses it to
4
4
  # bump `__version__` in sync with `pyproject.toml` on every release PR.
5
- __version__ = "0.1.67" # x-release-please-version
5
+ __version__ = "0.1.69" # x-release-please-version
6
6
 
7
7
  DOCS_URL = "https://docs.langchain.com/oss/python/deepagents/code"
8
8
  """URL for `deepagents-code` documentation."""