deepagents-code 0.1.66__tar.gz → 0.1.67__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.66 → deepagents_code-0.1.67}/.gitignore +1 -0
  2. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/CHANGELOG.md +18 -0
  3. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/DEVELOPMENT.md +2 -0
  4. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/PKG-INFO +6 -6
  5. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_build_info.py +1 -1
  6. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_constants.py +15 -0
  7. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_env_vars.py +14 -3
  8. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_server_config.py +189 -6
  9. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_version.py +1 -1
  10. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/agent.py +68 -39
  11. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/app.py +784 -271
  12. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/auto_mode.py +30 -8
  13. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/launch/server.py +38 -14
  14. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/launch/server_manager.py +2 -2
  15. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/remote_client.py +70 -13
  16. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/config.py +1164 -399
  17. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/config_manifest.py +133 -19
  18. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configurable_model.py +75 -47
  19. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/providers.py +56 -13
  20. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/service.py +4 -1
  21. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/goal_rubric.py +10 -1
  22. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/sandbox_factory.py +251 -51
  23. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_config.py +4 -2
  24. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/model_config.py +108 -34
  25. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/offload_api.py +103 -18
  26. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/offload_middleware.py +29 -12
  27. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/server_graph.py +352 -92
  28. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/sessions.py +21 -0
  29. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tools.py +119 -10
  30. deepagents_code-0.1.67/deepagents_code/tui/modals/resume_blocked.py +184 -0
  31. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/message_store.py +24 -0
  32. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/model_selector.py +1 -0
  33. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/update_check.py +8 -2
  34. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/workspace.py +132 -20
  35. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/pyproject.toml +5 -5
  36. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/scripts/check_process_cwd.py +9 -4
  37. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/conftest.py +3 -0
  38. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_agent.py +150 -32
  39. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_app.py +978 -72
  40. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_auto_mode.py +48 -0
  41. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_config.py +1350 -172
  42. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_config_manifest.py +194 -0
  43. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_configurable_model.py +26 -0
  44. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_configuration_resolution.py +4 -0
  45. deepagents_code-0.1.67/tests/unit_tests/test_extra_skills_dirs.py +34 -0
  46. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_model_config.py +95 -3
  47. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_offload_api.py +343 -8
  48. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_reload.py +40 -17
  49. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_remote_client.py +60 -0
  50. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_sandbox_factory.py +499 -0
  51. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_server_config.py +62 -0
  52. deepagents_code-0.1.67/tests/unit_tests/test_server_graph.py +1162 -0
  53. deepagents_code-0.1.67/tests/unit_tests/test_server_helpers.py +279 -0
  54. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_server_manager.py +52 -0
  55. deepagents_code-0.1.67/tests/unit_tests/test_server_tracing.py +193 -0
  56. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_sessions.py +28 -0
  57. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_update_check.py +20 -0
  58. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_workspace.py +91 -6
  59. deepagents_code-0.1.67/tests/unit_tests/tools/test_web_search.py +81 -0
  60. deepagents_code-0.1.67/tests/unit_tests/tui/modals/test_resume_blocked.py +61 -0
  61. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_auth_widgets.py +4 -3
  62. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_message_store.py +48 -0
  63. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_thread_selector.py +22 -0
  64. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/uv.lock +87 -80
  65. deepagents_code-0.1.66/tests/unit_tests/test_server_graph.py +0 -404
  66. deepagents_code-0.1.66/tests/unit_tests/test_server_helpers.py +0 -125
  67. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/AGENTS.md +0 -0
  68. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/ARCHITECTURE.md +0 -0
  69. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/COMMANDS.md +0 -0
  70. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/EXTENSIONS.md +0 -0
  71. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/HOOKS.md +0 -0
  72. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/LICENSE +0 -0
  73. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/Makefile +0 -0
  74. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/PRICING.md +0 -0
  75. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/README.md +0 -0
  76. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/THREAT_MODEL.md +0 -0
  77. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/__init__.py +0 -0
  78. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/__main__.py +0 -0
  79. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_ask_user_types.py +0 -0
  80. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_cli_context.py +0 -0
  81. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_content_blocks.py +0 -0
  82. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_debug.py +0 -0
  83. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_debug_buffer.py +0 -0
  84. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_dep_floor_check.py +0 -0
  85. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_fake_models.py +0 -0
  86. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_git.py +0 -0
  87. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_glm_5p2_profile.py +0 -0
  88. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_home_error.py +0 -0
  89. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_invocation.py +0 -0
  90. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_markdown.py +0 -0
  91. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_paths.py +0 -0
  92. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_repository_bounds.py +0 -0
  93. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_reserved_names.py +0 -0
  94. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_session_stats.py +0 -0
  95. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_startup_error.py +0 -0
  96. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_terminal_stderr.py +0 -0
  97. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_testing_models.py +0 -0
  98. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_textual_patches.py +0 -0
  99. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_tool_stream.py +0 -0
  100. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/_tracing.py +0 -0
  101. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/acp.py +0 -0
  102. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/app.tcss +0 -0
  103. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/approval_mode.py +0 -0
  104. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/ask_user.py +0 -0
  105. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/auth_display.py +0 -0
  106. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/auth_store.py +0 -0
  107. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/__init__.py +0 -0
  108. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/deepagents-thread-inspector/SKILL.md +0 -0
  109. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/deepagents-thread-inspector/scripts/inspect_sessions.py +0 -0
  110. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/remember/SKILL.md +0 -0
  111. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/skill-creator/SKILL.md +0 -0
  112. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/skill-creator/scripts/init_skill.py +0 -0
  113. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/built_in_skills/skill-creator/scripts/quick_validate.py +0 -0
  114. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/bundled_prices.README.md +0 -0
  115. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/bundled_prices.json +0 -0
  116. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/__init__.py +0 -0
  117. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/__init__.py +0 -0
  118. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/auth.py +0 -0
  119. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/config.py +0 -0
  120. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/extras.py +0 -0
  121. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/mcp.py +0 -0
  122. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/commands/tools.py +0 -0
  123. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/launch/__init__.py +0 -0
  124. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/client/non_interactive.py +0 -0
  125. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/clipboard.py +0 -0
  126. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/cold_cache.py +0 -0
  127. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/command_registry.py +0 -0
  128. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/__init__.py +0 -0
  129. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/interpreter.py +0 -0
  130. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/paths.py +0 -0
  131. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/provider.py +0 -0
  132. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/resolver.py +0 -0
  133. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/theme_resolution.py +0 -0
  134. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/types.py +0 -0
  135. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/configuration/writer.py +0 -0
  136. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/context_doctor.py +0 -0
  137. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/cost_tracking.py +0 -0
  138. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/default_agent_prompt.md +0 -0
  139. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/diff_utils.py +0 -0
  140. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/doctor.py +0 -0
  141. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/editor.py +0 -0
  142. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/event_bus.py +0 -0
  143. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/__init__.py +0 -0
  144. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/api.py +0 -0
  145. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/discovery.py +0 -0
  146. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/hosting.py +0 -0
  147. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/loader.py +0 -0
  148. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/registry.py +0 -0
  149. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/runtime.py +0 -0
  150. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/settings.py +0 -0
  151. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extensions/trust.py +0 -0
  152. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/extras_info.py +0 -0
  153. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/file_ops.py +0 -0
  154. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/formatting.py +0 -0
  155. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/goal_state_limits.py +0 -0
  156. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/goal_state_notice.py +0 -0
  157. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/goal_tools.py +0 -0
  158. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/__init__.py +0 -0
  159. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/capabilities.py +0 -0
  160. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/client.py +0 -0
  161. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/client_lifecycle.py +0 -0
  162. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/context.py +0 -0
  163. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/engine.py +0 -0
  164. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/env.py +0 -0
  165. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/envelope.py +0 -0
  166. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/interrupt.py +0 -0
  167. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/legacy.py +0 -0
  168. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/loading.py +0 -0
  169. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/manager.py +0 -0
  170. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/migration.py +0 -0
  171. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/__init__.py +0 -0
  172. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/adapters.py +0 -0
  173. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/config.py +0 -0
  174. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/domain.py +0 -0
  175. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/transport.py +0 -0
  176. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/models/wire.py +0 -0
  177. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/permissions.py +0 -0
  178. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/presenter.py +0 -0
  179. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/projection.py +0 -0
  180. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/reducer.py +0 -0
  181. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/runner.py +0 -0
  182. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/runtime.py +0 -0
  183. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/server_middleware.py +0 -0
  184. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/snapshot.py +0 -0
  185. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/tools.py +0 -0
  186. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/transcript.py +0 -0
  187. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/trust.py +0 -0
  188. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/hooks/validate_terminal_sequence.py +0 -0
  189. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/input.py +0 -0
  190. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/__init__.py +0 -0
  191. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/openai_codex.py +0 -0
  192. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/sandbox_config.py +0 -0
  193. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/sandbox_provider.py +0 -0
  194. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/integrations/sandbox_registry.py +0 -0
  195. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/iterm_cursor_guide.py +0 -0
  196. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/json_types.py +0 -0
  197. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/local_context.py +0 -0
  198. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/main.py +0 -0
  199. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/managed_tools.py +0 -0
  200. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_auth.py +0 -0
  201. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_disabled.py +0 -0
  202. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_login_service.py +0 -0
  203. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_oauth_ui.py +0 -0
  204. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_providers/__init__.py +0 -0
  205. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_providers/_registry.py +0 -0
  206. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_providers/base.py +0 -0
  207. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_providers/github.py +0 -0
  208. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_providers/slack.py +0 -0
  209. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/mcp_tools.py +0 -0
  210. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/media_utils.py +0 -0
  211. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/memory_guard.py +0 -0
  212. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/model_retry.py +0 -0
  213. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/notifications.py +0 -0
  214. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/offload.py +0 -0
  215. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/onboarding.py +0 -0
  216. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/output.py +0 -0
  217. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/paste_collapse.py +0 -0
  218. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/__init__.py +0 -0
  219. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/_json.py +0 -0
  220. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/adapters/__init__.py +0 -0
  221. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/adapters/hooks.py +0 -0
  222. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/adapters/mcp.py +0 -0
  223. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/adapters/skills.py +0 -0
  224. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/adapters/skills_middleware.py +0 -0
  225. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/commands_cli.py +0 -0
  226. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/discovery.py +0 -0
  227. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/manifest.py +0 -0
  228. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/marketplace.py +0 -0
  229. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/models.py +0 -0
  230. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/store.py +0 -0
  231. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/plugins/substitution.py +0 -0
  232. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/project_utils.py +0 -0
  233. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/py.typed +0 -0
  234. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/reasoning_effort.py +0 -0
  235. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/reliable_rubric.py +0 -0
  236. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/resume_state.py +0 -0
  237. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/__init__.py +0 -0
  238. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/commands.py +0 -0
  239. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/invocation.py +0 -0
  240. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/load.py +0 -0
  241. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/merge.py +0 -0
  242. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/skills/trust.py +0 -0
  243. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/state_migration.py +0 -0
  244. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/subagents.py +0 -0
  245. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/system_prompt.md +0 -0
  246. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/terminal_capabilities.py +0 -0
  247. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/terminal_escape.py +0 -0
  248. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/theme.py +0 -0
  249. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tool_catalog.py +0 -0
  250. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tool_display.py +0 -0
  251. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/__init__.py +0 -0
  252. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/key_hints.py +0 -0
  253. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/__init__.py +0 -0
  254. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/cold_cache.py +0 -0
  255. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/model_switch.py +0 -0
  256. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/__init__.py +0 -0
  257. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/content.py +0 -0
  258. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/models.py +0 -0
  259. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/plugin_manager.tcss +0 -0
  260. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/state.py +0 -0
  261. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/plugin_manager/tabs.py +0 -0
  262. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/prompt_clipboard.py +0 -0
  263. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/prompt_clipboard.tcss +0 -0
  264. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/modals/resume_compact.py +0 -0
  265. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/screens/__init__.py +0 -0
  266. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/textual_adapter.py +0 -0
  267. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/__init__.py +0 -0
  268. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/_copy_spans.py +0 -0
  269. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/_inline_prompt.py +0 -0
  270. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/_js_eval_display.py +0 -0
  271. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/_links.py +0 -0
  272. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/_paste_textarea.py +0 -0
  273. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/agent_selector.py +0 -0
  274. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/approval.py +0 -0
  275. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/ask_user.py +0 -0
  276. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/auth.py +0 -0
  277. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/auto_mode_notice.py +0 -0
  278. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/autocomplete.py +0 -0
  279. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/chat_input.py +0 -0
  280. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/codex_auth.py +0 -0
  281. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/context_usage.py +0 -0
  282. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/cwd_switch.py +0 -0
  283. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/debug_console.py +0 -0
  284. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/diff.py +0 -0
  285. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/effort_selector.py +0 -0
  286. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/goal_review.py +0 -0
  287. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/goal_status.py +0 -0
  288. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/history.py +0 -0
  289. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/install_confirm.py +0 -0
  290. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/launch_init.py +0 -0
  291. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/loading.py +0 -0
  292. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/mcp_login.py +0 -0
  293. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/mcp_reconnect.py +0 -0
  294. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/mcp_viewer.py +0 -0
  295. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/messages.py +0 -0
  296. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/notification_center.py +0 -0
  297. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/notification_detail.py +0 -0
  298. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/notification_settings.py +0 -0
  299. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/prompt_search.py +0 -0
  300. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/restart_prompt.py +0 -0
  301. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/skill_trust.py +0 -0
  302. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/startup_tip.py +0 -0
  303. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/status.py +0 -0
  304. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/subagent_panel.py +0 -0
  305. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/theme_selector.py +0 -0
  306. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/thread_agent_switch.py +0 -0
  307. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/thread_selector.py +0 -0
  308. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/tool_renderers.py +0 -0
  309. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/tool_widgets.py +0 -0
  310. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/update_available.py +0 -0
  311. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/update_confirm.py +0 -0
  312. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/update_progress.py +0 -0
  313. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/welcome.py +0 -0
  314. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/tui/widgets/yolo_mode_notice.py +0 -0
  315. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/ui.py +0 -0
  316. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/deepagents_code/unicode_security.py +0 -0
  317. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/extensions/memory_store.py +0 -0
  318. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/arxiv-search/SKILL.md +0 -0
  319. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  320. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/langgraph-docs/SKILL.md +0 -0
  321. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/skill-creator/SKILL.md +0 -0
  322. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  323. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  324. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/examples/skills/web-research/SKILL.md +0 -0
  325. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/hatch_build.py +0 -0
  326. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/images/model-stream-retry.png +0 -0
  327. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/images/tui.png +0 -0
  328. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/scripts/check_imports.py +0 -0
  329. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/scripts/debug_server.sh +0 -0
  330. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/scripts/generate_commands_catalog.py +0 -0
  331. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/scripts/install.sh +0 -0
  332. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/README.md +0 -0
  333. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/__init__.py +0 -0
  334. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/benchmarks/__init__.py +0 -0
  335. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/benchmarks/test_codspeed_import_benchmarks.py +0 -0
  336. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/benchmarks/test_local_context_benchmarks.py +0 -0
  337. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/benchmarks/test_startup_benchmarks.py +0 -0
  338. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/conftest.py +0 -0
  339. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_acp_mode.py +0 -0
  340. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_auto_approve_remote.py +0 -0
  341. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_compact_resume.py +0 -0
  342. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_offload_server_side.py +0 -0
  343. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_pending_work_recovery.py +0 -0
  344. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_sandbox_factory.py +0 -0
  345. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/integration_tests/test_sandbox_operations.py +0 -0
  346. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/__init__.py +0 -0
  347. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/__init__.py +0 -0
  348. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/commands/__init__.py +0 -0
  349. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/commands/test_auth.py +0 -0
  350. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/commands/test_extras.py +0 -0
  351. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/commands/test_mcp.py +0 -0
  352. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/client/commands/test_tools.py +0 -0
  353. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/data/coding_agent_v1_validator.json +0 -0
  354. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/__init__.py +0 -0
  355. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/models/__init__.py +0 -0
  356. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/models/test_models.py +0 -0
  357. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_client_lifecycle.py +0 -0
  358. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_configuration.py +0 -0
  359. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_engine.py +0 -0
  360. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_execution.py +0 -0
  361. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_manager.py +0 -0
  362. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_presenter.py +0 -0
  363. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_server_lifecycle.py +0 -0
  364. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_transcript.py +0 -0
  365. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/hooks/test_trust.py +0 -0
  366. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/plugins/__init__.py +0 -0
  367. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/plugins/test_marketplace.py +0 -0
  368. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/plugins/test_plugin_hooks.py +0 -0
  369. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/plugins/test_plugins_p0.py +0 -0
  370. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/__init__.py +0 -0
  371. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_commands.py +0 -0
  372. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_load.py +0 -0
  373. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_merge.py +0 -0
  374. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_skill_trust.py +0 -0
  375. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_skills_json.py +0 -0
  376. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/skills/test_thread_inspector.py +0 -0
  377. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/smoke_tests/__init__.py +0 -0
  378. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/smoke_tests/conftest.py +0 -0
  379. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/smoke_tests/snapshots/system_prompt_interactive_local.md +0 -0
  380. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/smoke_tests/test_system_prompt.py +0 -0
  381. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test__tool_stream.py +0 -0
  382. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_acp.py +0 -0
  383. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_agent_friendly.py +0 -0
  384. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_approval_mode.py +0 -0
  385. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_args.py +0 -0
  386. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_ask_user_middleware.py +0 -0
  387. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_ask_user_types.py +0 -0
  388. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_auth_display.py +0 -0
  389. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_auth_store.py +0 -0
  390. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_auth_web_search_restart.py +0 -0
  391. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_charset.py +0 -0
  392. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_cli_provider.py +0 -0
  393. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_clipboard.py +0 -0
  394. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_coding_agent_metadata.py +0 -0
  395. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_cold_cache.py +0 -0
  396. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_command_registry.py +0 -0
  397. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_compact_tool.py +0 -0
  398. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_configuration.py +0 -0
  399. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_configuration_resolver.py +0 -0
  400. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_context_doctor.py +0 -0
  401. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_cost_tracking.py +0 -0
  402. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_cursor_style.py +0 -0
  403. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_debug.py +0 -0
  404. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_debug_buffer.py +0 -0
  405. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_debug_console.py +0 -0
  406. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_dep_floor_check.py +0 -0
  407. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_diff_utils.py +0 -0
  408. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_doctor.py +0 -0
  409. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_editor.py +0 -0
  410. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_end_to_end.py +0 -0
  411. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_env_vars.py +0 -0
  412. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_event_bus.py +0 -0
  413. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_exception_handling.py +0 -0
  414. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_api.py +0 -0
  415. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_cli_trust.py +0 -0
  416. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_config_manifest.py +0 -0
  417. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_discovery.py +0 -0
  418. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_display.py +0 -0
  419. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_host_runtime.py +0 -0
  420. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_hosting.py +0 -0
  421. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extension_runtime.py +0 -0
  422. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_extras_info.py +0 -0
  423. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_file_ops.py +0 -0
  424. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_formatting.py +0 -0
  425. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_git.py +0 -0
  426. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_glm_5p2_profile.py +0 -0
  427. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_criteria_client.py +0 -0
  428. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_rubric.py +0 -0
  429. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_state_limits.py +0 -0
  430. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_state_notice.py +0 -0
  431. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_state_persistence.py +0 -0
  432. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_goal_tools.py +0 -0
  433. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_hatch_build.py +0 -0
  434. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_hooks.py +0 -0
  435. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_imports.py +0 -0
  436. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_input_parsing.py +0 -0
  437. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_install_command.py +0 -0
  438. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_install_script.py +0 -0
  439. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_invocation.py +0 -0
  440. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_iterm_cursor_guide.py +0 -0
  441. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_json_types.py +0 -0
  442. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_local_context.py +0 -0
  443. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_main.py +0 -0
  444. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_main_acp_mode.py +0 -0
  445. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_main_args.py +0 -0
  446. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_managed_tools.py +0 -0
  447. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_auth.py +0 -0
  448. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_config.py +0 -0
  449. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_disabled.py +0 -0
  450. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_login_service.py +0 -0
  451. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_oauth_ui.py +0 -0
  452. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_mcp_tools.py +0 -0
  453. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_media_utils.py +0 -0
  454. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_memory_guard.py +0 -0
  455. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_model_retry.py +0 -0
  456. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_model_switch.py +0 -0
  457. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_non_interactive.py +0 -0
  458. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_notifications.py +0 -0
  459. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_offload.py +0 -0
  460. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_onboarding.py +0 -0
  461. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_openai_codex_integration.py +0 -0
  462. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_output.py +0 -0
  463. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_paths.py +0 -0
  464. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_process_cwd_check.py +0 -0
  465. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_reasoning_effort.py +0 -0
  466. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_reliable_rubric.py +0 -0
  467. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_repository_bounds.py +0 -0
  468. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_resume_compaction_recovery.py +0 -0
  469. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_resume_state.py +0 -0
  470. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_rubric_cli.py +0 -0
  471. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_sandbox_config.py +0 -0
  472. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_sandbox_provider.py +0 -0
  473. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_sandbox_registry.py +0 -0
  474. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_server.py +0 -0
  475. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_session_stats.py +0 -0
  476. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_shell_allow_list.py +0 -0
  477. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_skill_invocation.py +0 -0
  478. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_startup_fast_paths.py +0 -0
  479. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_state_migration.py +0 -0
  480. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_subagents.py +0 -0
  481. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_terminal_capabilities.py +0 -0
  482. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_terminal_escape.py +0 -0
  483. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_terminal_progress_preference.py +0 -0
  484. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_terminal_stderr.py +0 -0
  485. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_textual_patches.py +0 -0
  486. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_theme.py +0 -0
  487. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_threads_resume.py +0 -0
  488. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_tool_catalog.py +0 -0
  489. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_tool_display.py +0 -0
  490. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_tracing.py +0 -0
  491. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_tracing_replicas.py +0 -0
  492. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_transcript_virtualization.py +0 -0
  493. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_ui.py +0 -0
  494. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_unicode_security.py +0 -0
  495. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_uninstall_command.py +0 -0
  496. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/test_version.py +0 -0
  497. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tools/__init__.py +0 -0
  498. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tools/test_current_thread.py +0 -0
  499. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tools/test_fetch_url.py +0 -0
  500. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tools/test_tool_arg_schemas.py +0 -0
  501. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/__init__.py +0 -0
  502. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/__init__.py +0 -0
  503. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/plugin_manager/__init__.py +0 -0
  504. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/plugin_manager/test_structure.py +0 -0
  505. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/test_cold_cache.py +0 -0
  506. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/test_model_switch.py +0 -0
  507. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/modals/test_prompt_clipboard.py +0 -0
  508. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/test_key_hints.py +0 -0
  509. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/test_modal_footer_layout.py +0 -0
  510. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/test_subagent_stream.py +0 -0
  511. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/test_textual_adapter.py +0 -0
  512. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/__init__.py +0 -0
  513. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_agent_selector.py +0 -0
  514. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_approval.py +0 -0
  515. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_ask_user.py +0 -0
  516. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_auto_mode_notice.py +0 -0
  517. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_autocomplete.py +0 -0
  518. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_chat_input.py +0 -0
  519. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_copy_spans.py +0 -0
  520. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_cwd_switch.py +0 -0
  521. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_diff.py +0 -0
  522. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_goal_review.py +0 -0
  523. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_history.py +0 -0
  524. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_inline_prompt.py +0 -0
  525. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_install_confirm.py +0 -0
  526. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_launch_init.py +0 -0
  527. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_links.py +0 -0
  528. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_loading.py +0 -0
  529. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_mcp_login_modal.py +0 -0
  530. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_mcp_reconnect.py +0 -0
  531. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_mcp_viewer.py +0 -0
  532. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_messages.py +0 -0
  533. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_model_selector.py +0 -0
  534. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_notification_center.py +0 -0
  535. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_notification_detail.py +0 -0
  536. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_notification_settings.py +0 -0
  537. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_prompt_search.py +0 -0
  538. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_restart_prompt.py +0 -0
  539. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_skill_trust_screen.py +0 -0
  540. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_startup_tip.py +0 -0
  541. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_status.py +0 -0
  542. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_subagent_panel.py +0 -0
  543. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_thread_agent_switch.py +0 -0
  544. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_tool_renderers.py +0 -0
  545. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_update_available.py +0 -0
  546. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_update_confirm.py +0 -0
  547. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_update_progress.py +0 -0
  548. {deepagents_code-0.1.66 → deepagents_code-0.1.67}/tests/unit_tests/tui/widgets/test_welcome.py +0 -0
@@ -158,6 +158,7 @@ venv.bak/
158
158
  *.jks
159
159
  credentials.json
160
160
  token.json
161
+ **/.deepagents/mcp-tokens/
161
162
  Cookies
162
163
  Cookies.db
163
164
  cookies.sqlite
@@ -2,6 +2,24 @@
2
2
 
3
3
  # Deep Agents Code Changelog
4
4
 
5
+ ## [0.1.67](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.66...deepagents-code==0.1.67) (2026-09-09)
6
+
7
+ ### Features
8
+
9
+ - Added `GPT-6 Astra` support ([#6141](https://github.com/langchain-ai/deepagents/issues/6141)).
10
+ - Reuses the server across workspace switches ([#6152](https://github.com/langchain-ai/deepagents/issues/6152)).
11
+ - Limits thread resume age ([#6068](https://github.com/langchain-ai/deepagents/issues/6068)).
12
+
13
+ ### Bug Fixes
14
+
15
+ - Improved workspace isolation by resolving project policy per workspace, scoping project dotenv to workspaces, and isolating LangSmith auth and workspace tracing ([#6064](https://github.com/langchain-ai/deepagents/issues/6064), [#5980](https://github.com/langchain-ai/deepagents/issues/5980), [#6061](https://github.com/langchain-ai/deepagents/issues/6061)).
16
+ - Improved transcript tail reconciliation by bounding and serializing reconciliation work ([#6057](https://github.com/langchain-ai/deepagents/issues/6057), [#6143](https://github.com/langchain-ai/deepagents/issues/6143)).
17
+ - Refuses a second sandbox workspace and moves sandbox creation and entry off the guarded event loop ([#5979](https://github.com/langchain-ai/deepagents/issues/5979), [#6017](https://github.com/langchain-ai/deepagents/issues/6017)).
18
+ - Surfaces stale updates in-session ([#6063](https://github.com/langchain-ai/deepagents/issues/6063)).
19
+ - Surfaces the LangSmith credential in `dcode config` ([#6083](https://github.com/langchain-ai/deepagents/issues/6083)).
20
+ - Offloads server config imports ([#6089](https://github.com/langchain-ai/deepagents/issues/6089)).
21
+ - Correctly parses extra skill directories with the platform separator ([#6151](https://github.com/langchain-ai/deepagents/issues/6151)).
22
+
5
23
  ## [0.1.66](https://github.com/langchain-ai/deepagents/compare/deepagents-code==0.1.65...deepagents-code==0.1.66) (2026-09-03)
6
24
 
7
25
  ### Features
@@ -89,6 +89,8 @@ Set the same override for [local dev installs](#local-dev-installs) (`dcode-dev`
89
89
 
90
90
  When onboarding a new tracing project to Engine, capture the nature of that project first: a production/GA app warrants high-priority alerts, while a staging or active-dev project should use looser thresholds (or stay off Engine) so it does not generate false positives.
91
91
 
92
+ A server keeps the first workspace's tracing configuration for its lifetime. Workspaces sharing that server must use matching tracing credentials, projects, endpoints, profile selectors, tracing flags, and redaction policy. A conflicting workspace is refused before its settings can affect cached or concurrent runs; start a separate server for that workspace. Restart the server to change its tracing configuration.
93
+
92
94
  ## Debugging
93
95
 
94
96
  Deep Agents Code runs as two processes: the **Textual TUI** you interact with, and a **`langgraph dev` subprocess** that hosts the agent graph. Each writes its own log, and a single switch turns both on:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: deepagents-code
3
- Version: 0.1.66
3
+ Version: 0.1.67
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
@@ -37,14 +37,14 @@ Requires-Dist: httpx<1.0.0,>=0.28.1
37
37
  Requires-Dist: langchain-anthropic<2.0.0,>=1.7.1
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.0
40
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.1
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
- Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.33.3
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.1
47
+ Requires-Dist: langsmith[sandbox]>=0.12.2
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
@@ -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.0; extra == 'all-providers'
85
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.1; 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'
@@ -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.0; extra == 'openai'
135
+ Requires-Dist: langchain-openai<2.0.0,>=1.6.1; 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 = "3812967"
3
+ BUILD_COMMIT = "d0fbc7c"
@@ -44,6 +44,21 @@ is the drift guard that fails when the two diverge.
44
44
  FIREWORKS_PROVIDER_ID_PREFIX: Final[str] = "accounts/fireworks/"
45
45
  """Prefix used to infer Fireworks from fully-qualified IDs."""
46
46
 
47
+ LANGSMITH_API_KEY_ENV: Final[str] = "LANGSMITH_API_KEY"
48
+ """Primary env var the LangSmith SDK reads for its API key."""
49
+
50
+ LANGSMITH_API_KEY_FALLBACK_ENV_VARS: Final[tuple[str, ...]] = ("LANGCHAIN_API_KEY",)
51
+ """Legacy env vars the LangSmith SDK accepts after `LANGSMITH_API_KEY_ENV`."""
52
+
53
+ LANGSMITH_API_KEY_ENV_VARS: Final[tuple[str, ...]] = (
54
+ LANGSMITH_API_KEY_ENV,
55
+ *LANGSMITH_API_KEY_FALLBACK_ENV_VARS,
56
+ )
57
+ """Env vars LangSmith reads for its API key, in precedence order.
58
+
59
+ Mirrors the SDK's own `LANGSMITH_`-then-`LANGCHAIN_` lookup.
60
+ """
61
+
47
62
  FIREWORKS_MODEL_ID_PREFIXES: Final[tuple[str, ...]] = (
48
63
  "accounts/fireworks/models/",
49
64
  "accounts/fireworks/routers/",
@@ -24,6 +24,10 @@ ever renamed, only the value here changes.
24
24
  from __future__ import annotations
25
25
 
26
26
  import os
27
+ from typing import TYPE_CHECKING
28
+
29
+ if TYPE_CHECKING:
30
+ from collections.abc import Mapping
27
31
 
28
32
  # ---------------------------------------------------------------------------
29
33
  # Constants — import these instead of bare string literals.
@@ -285,7 +289,7 @@ EXTERNAL_EVENT_SOCKET_PATH = "DEEPAGENTS_CODE_EXTERNAL_EVENT_SOCKET_PATH"
285
289
  """Override the default Unix-socket path for the external event listener."""
286
290
 
287
291
  EXTRA_SKILLS_DIRS = "DEEPAGENTS_CODE_EXTRA_SKILLS_DIRS"
288
- """Colon-separated paths added to the skill containment allowlist."""
292
+ """Paths added to the skill containment allowlist, split with `os.pathsep`."""
289
293
 
290
294
  GOAL_AUTO_ACCEPT_CRITERIA = "DEEPAGENTS_CODE_GOAL_AUTO_ACCEPT_CRITERIA"
291
295
  """Apply generated goal criteria automatically in Auto mode.
@@ -694,7 +698,12 @@ def classify_env_bool(raw: str) -> bool | None:
694
698
  return None
695
699
 
696
700
 
697
- def is_env_truthy(name: str, *, default: bool = False) -> bool:
701
+ def is_env_truthy(
702
+ name: str,
703
+ *,
704
+ default: bool = False,
705
+ environ: Mapping[str, str] | None = None,
706
+ ) -> bool:
698
707
  """Return whether env var *name* is set to a recognizably truthy value.
699
708
 
700
709
  Unlike `bool(os.environ.get(name))`, this does not treat `"0"` or
@@ -706,12 +715,14 @@ def is_env_truthy(name: str, *, default: bool = False) -> bool:
706
715
  constant from this module).
707
716
  default: Value returned when the variable is unset OR set to a
708
717
  value that is neither recognizably truthy nor falsy.
718
+ environ: Environment to read, defaulting to the process environment.
719
+ Pass a workspace snapshot to keep the read scoped.
709
720
 
710
721
  Returns:
711
722
  `True` for `1`/`true`/`yes`/`on` (case-insensitive), `False` for
712
723
  `0`/`false`/`no`/`off`/empty string, or `default` otherwise.
713
724
  """
714
- raw = os.environ.get(name)
725
+ raw = (os.environ if environ is None else environ).get(name)
715
726
  if raw is None:
716
727
  return default
717
728
  classified = classify_env_bool(raw)
@@ -12,8 +12,9 @@ with `from_env()`.
12
12
  from __future__ import annotations
13
13
 
14
14
  import json
15
+ import logging
15
16
  import os
16
- from dataclasses import dataclass
17
+ from dataclasses import dataclass, replace
17
18
  from pathlib import Path
18
19
  from typing import TYPE_CHECKING, Any, cast
19
20
 
@@ -21,10 +22,92 @@ from deepagents_code._constants import DEFAULT_AGENT_NAME as DEFAULT_ASSISTANT_I
21
22
  from deepagents_code._env_vars import SERVER_ENV_PREFIX
22
23
 
23
24
  if TYPE_CHECKING:
25
+ from collections.abc import Mapping
26
+
24
27
  from deepagents import FsToolName
25
28
 
26
29
  from deepagents_code.project_utils import ProjectContext
27
30
 
31
+ logger = logging.getLogger(__name__)
32
+
33
+
34
+ SESSION_WORKSPACE_FIELDS = frozenset(
35
+ {
36
+ "allow_fs_tools",
37
+ "assistant_id",
38
+ "auto_approve",
39
+ "enable_ask_user",
40
+ "enable_interpreter",
41
+ "enable_memory",
42
+ "enable_shell",
43
+ "enable_skills",
44
+ "interactive",
45
+ "interpreter_ptc",
46
+ "interpreter_ptc_acknowledge_unsafe",
47
+ "interrupt_shell_only",
48
+ "no_mcp",
49
+ "recursion_limit",
50
+ "sandbox_id",
51
+ "sandbox_snapshot_name",
52
+ "sandbox_type",
53
+ "shell_allow_list",
54
+ }
55
+ )
56
+ """Policy a managed client may claim for its own command invocation.
57
+
58
+ These come from the client's own CLI flags, so the client already knows them
59
+ and claiming them proves only that both sides agree. Together with
60
+ `PROJECT_WORKSPACE_FIELDS` this must partition `to_workspace_payload()`
61
+ exactly: a payload field in neither set is never verified against a client
62
+ claim and never checked for project drift.
63
+ `test_workspace_claim_partitions_every_policy_field` pins that.
64
+ """
65
+ PROJECT_WORKSPACE_FIELDS = frozenset(
66
+ {
67
+ "extension_paths",
68
+ "mcp_config_path",
69
+ "sandbox_setup",
70
+ "trust_project_extensions",
71
+ "trust_project_mcp",
72
+ }
73
+ )
74
+ """Policy the server must resolve per project directory, never accept.
75
+
76
+ Each of these grants code execution scoped to a checkout -- MCP servers,
77
+ sandbox setup commands, Python extensions. A client that could claim them could
78
+ execute one directory's configuration against another directory's trust
79
+ decision.
80
+ """
81
+
82
+
83
+ def _same_workspace_project(first: str | None, second: str) -> bool:
84
+ """Whether two paths name the same project directory.
85
+
86
+ Fails closed: an unset launch root, a missing path, or an undecidable
87
+ comparison counts as *different*, so the caller drops project policy rather
88
+ than carrying it across an unverified boundary. `_same_directory` compares
89
+ by device and inode, so a symlinked or differently cased spelling of one
90
+ directory still compares equal.
91
+
92
+ Returns:
93
+ `True` only when both paths name the same directory.
94
+ """
95
+ if first is None:
96
+ return False
97
+ from deepagents_code._paths import DeepAgentsHomeError, _same_directory
98
+
99
+ try:
100
+ return _same_directory(Path(first), Path(second))
101
+ except DeepAgentsHomeError:
102
+ logger.warning(
103
+ "Could not compare project directories %s and %s; treating as "
104
+ "separate projects, so project-scoped policy will not apply",
105
+ first,
106
+ second,
107
+ exc_info=True,
108
+ )
109
+ return False
110
+
28
111
 
29
112
  def _read_env_bool(suffix: str, *, default: bool = False) -> bool:
30
113
  """Read a `DEEPAGENTS_CODE_SERVER_*` boolean from the environment.
@@ -452,19 +535,119 @@ class ServerConfig:
452
535
  "extension_paths": list(self.extension_paths),
453
536
  }
454
537
 
455
- def workspace_fingerprint(self) -> str:
456
- """Fingerprint the full effective config without persisting its contents.
538
+ def to_session_workspace_claim(self) -> dict[str, Any]:
539
+ """Return the command-scoped policy a managed client may claim.
540
+
541
+ Returns:
542
+ The session-scoped subset of the workspace policy.
543
+ """
544
+ return {
545
+ key: value
546
+ for key, value in self.to_workspace_payload().items()
547
+ if key in SESSION_WORKSPACE_FIELDS
548
+ }
549
+
550
+ def to_project_workspace_policy(self) -> dict[str, Any]:
551
+ """Return policy that must be resolved for each project directory.
552
+
553
+ Returns:
554
+ The project-scoped subset of the workspace policy.
555
+ """
556
+ return {
557
+ key: value
558
+ for key, value in self.to_workspace_payload().items()
559
+ if key in PROJECT_WORKSPACE_FIELDS
560
+ }
561
+
562
+ def session_workspace_fingerprint(self) -> str:
563
+ """Fingerprint the exact client-claimable session policy.
457
564
 
458
565
  Returns:
459
566
  The canonical SHA-256 fingerprint.
460
567
  """
461
- import hashlib
568
+ from deepagents_code.workspace import canonical_fingerprint
569
+
570
+ return canonical_fingerprint(self.to_session_workspace_claim())
571
+
572
+ def resolve_workspace(
573
+ self,
574
+ cwd: str,
575
+ project_root: str | None,
576
+ ) -> ServerConfig:
577
+ """Resolve directory-bound policy for one server workspace.
578
+
579
+ Project-scoped policy (`PROJECT_WORKSPACE_FIELDS`) is valid only for
580
+ the directory it was resolved against: it came from the launch-time CLI
581
+ and that project's trust decisions. Reusing it for another directory
582
+ would apply one project's MCP servers, sandbox setup, and extensions to
583
+ a different, possibly untrusted, checkout.
584
+
585
+ So the launch project keeps its policy verbatim, and any other project
586
+ starts from nothing: MCP and sandbox setup are *dropped* rather than
587
+ rediscovered, and extension trust is re-read from the trust store for
588
+ that project. `_same_workspace_project` fails closed, so an
589
+ unresolvable path also takes the drop branch.
590
+
591
+ Args:
592
+ cwd: Absolute, canonical working directory for the workspace.
593
+ project_root: Canonical project root, or `None` when the workspace
594
+ has none. The launch cwd uses the server's explicit root when
595
+ configured. Otherwise, extension trust is keyed on `cwd` when
596
+ no root exists.
597
+
598
+ Returns:
599
+ A config whose session policy is unchanged and whose project policy
600
+ is either the launch project's or empty.
601
+ """
602
+ if self.project_root is not None and _same_workspace_project(self.cwd, cwd):
603
+ project_root = str(Path(self.project_root).expanduser().resolve())
604
+ launch_root = self.project_root or self.cwd
605
+ target_root = project_root or cwd
606
+ if _same_workspace_project(launch_root, target_root):
607
+ return replace(self, cwd=cwd, project_root=project_root)
608
+ from deepagents_code.extensions.trust import is_project_extensions_trusted
609
+
610
+ return replace(
611
+ self,
612
+ cwd=cwd,
613
+ project_root=project_root,
614
+ sandbox_setup=None,
615
+ mcp_config_path=None,
616
+ trust_project_mcp=None,
617
+ trust_project_extensions=is_project_extensions_trusted(target_root),
618
+ extension_paths=(),
619
+ )
620
+
621
+ def preserve_bound_extension_trust(
622
+ self, bound_policy: Mapping[str, object]
623
+ ) -> ServerConfig:
624
+ """Keep an existing thread's extension trust when a new grant appears.
625
+
626
+ Args:
627
+ bound_policy: Server policy persisted when the thread was bound.
628
+
629
+ Returns:
630
+ A config that defers new grants to new threads. Revocations remain
631
+ visible so binding and runtime validation can reject them.
632
+ """
633
+ if bound_policy.get("trust_project_extensions") is False and (
634
+ self.trust_project_extensions is True
635
+ ):
636
+ return replace(self, trust_project_extensions=False)
637
+ return self
462
638
 
639
+ def workspace_fingerprint(self) -> str:
640
+ """Fingerprint the resolved runtime config except workspace identity.
641
+
642
+ Returns:
643
+ The canonical SHA-256 fingerprint.
644
+ """
463
645
  values = self.to_env()
464
646
  values.pop("CWD")
465
647
  values.pop("PROJECT_ROOT")
466
- serialized = json.dumps(values, sort_keys=True, separators=(",", ":"))
467
- return hashlib.sha256(serialized.encode()).hexdigest()
648
+ from deepagents_code.workspace import canonical_fingerprint
649
+
650
+ return canonical_fingerprint(values)
468
651
 
469
652
  def __post_init__(self) -> None:
470
653
  """Normalize fields and validate invariants.
@@ -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.66" # x-release-please-version
5
+ __version__ = "0.1.67" # 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."""