teddy-cli 0.1.17.dev1405__tar.gz → 0.1.17.dev1406__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 (165) hide show
  1. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/__main__.py +13 -1
  4. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +7 -2
  5. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -30
  6. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_loop_guard.py +2 -16
  7. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/infrastructure.py +3 -1
  8. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/config.yaml +1 -1
  9. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/.gitignore +0 -0
  10. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/LICENSE +0 -0
  11. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/README.md +0 -0
  12. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/__init__.py +0 -0
  14. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  15. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  16. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  17. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  18. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  19. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  20. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  21. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  22. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  23. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  24. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  25. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  26. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  27. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  28. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  29. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  30. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  31. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  32. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  35. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  37. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  38. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  40. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  42. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/container.py +0 -0
  45. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  48. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  49. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  50. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
  51. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  52. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  53. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  54. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  55. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/plan.py +0 -0
  56. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  57. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  58. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  59. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/session.py +0 -0
  60. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  61. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  62. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/__init__.py +0 -0
  63. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  64. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  65. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  66. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  67. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  68. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  69. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  70. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  71. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  72. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  73. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  74. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  75. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  76. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  78. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  79. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  81. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  82. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  83. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  84. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  85. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  86. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  87. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  88. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  89. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  90. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/__init__.py +0 -0
  92. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  93. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  94. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  95. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_executor.py +0 -0
  96. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_factory.py +0 -0
  97. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  98. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  99. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/context_service.py +0 -0
  100. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  101. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  102. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  103. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/init_service.py +0 -0
  104. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  105. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  106. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  107. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  108. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  109. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/plan_validator.py +0 -0
  110. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/planning_service.py +0 -0
  111. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  112. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  113. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  114. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_planner.py +0 -0
  115. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  116. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_replanner.py +0 -0
  117. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_repository.py +0 -0
  118. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_service.py +0 -0
  119. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  120. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/update_checker.py +0 -0
  121. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  122. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  123. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  124. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  125. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  126. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  127. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  128. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  129. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/__init__.py +0 -0
  130. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/diff.py +0 -0
  131. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/editor_names.py +0 -0
  132. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  133. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
  134. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/io.py +0 -0
  135. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/markdown.py +0 -0
  136. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/paths.py +0 -0
  137. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/serialization.py +0 -0
  138. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/session_notices.py +0 -0
  139. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  140. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/string.py +0 -0
  141. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/terminal.py +0 -0
  142. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/prompts.py +0 -0
  143. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/reviewer.py +0 -0
  145. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/validators.py +0 -0
  146. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/MRP.md +0 -0
  147. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/__init__.py +0 -0
  148. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/__init__.py +0 -0
  149. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/init.context +0 -0
  150. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  151. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  152. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  153. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  154. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  155. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  156. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  157. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  158. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/case-file.md +0 -0
  159. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/ci.md +0 -0
  160. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/component-design.md +0 -0
  161. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/makefile.md +0 -0
  162. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/milestone.md +0 -0
  163. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  164. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  165. {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: teddy-cli
3
- Version: 0.1.17.dev1405
3
+ Version: 0.1.17.dev1406
4
4
  Summary: The local-first, test-driven agentic engineering harness. Because you should own the means of development.
5
5
  Author: Raphael Atteritano
6
6
  License: AGPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1405"
3
+ version = "0.1.17.dev1406"
4
4
  description = "The local-first, test-driven agentic engineering harness. Because you should own the means of development."
5
5
  readme = "README.md"
6
6
  keywords = [
@@ -186,7 +186,19 @@ def _ensure_project_initialized(container, root_dir: str | None = None) -> None:
186
186
  if not is_override(IFileSystemManager):
187
187
  c.register(IFileSystemManager, LocalFileSystemAdapter, root_dir=root)
188
188
  if not is_override(IRepoTreeGenerator):
189
- c.register(IRepoTreeGenerator, LocalRepoTreeGenerator, root_dir=root)
189
+ # Forward the configured depth through a lazy factory. The anchoring
190
+ # step runs before configuration resolution finishes, so the depth is
191
+ # read at resolve time instead of at registration time.
192
+ c.register(
193
+ IRepoTreeGenerator,
194
+ factory=lambda: LocalRepoTreeGenerator(
195
+ root_dir=root,
196
+ max_depth=c.resolve(IConfigService).get_setting(
197
+ "context.max_tree_depth", 4
198
+ ),
199
+ ),
200
+ scope=Scope.transient,
201
+ )
190
202
  if not is_override(IConfigService):
191
203
  c.register(IConfigService, YamlConfigAdapter, root_dir=root)
192
204
 
@@ -1,6 +1,7 @@
1
1
  import logging
2
2
  import os
3
3
  from pathlib import Path
4
+ from teddy_executor.core.domain.models.config_schema import DEFAULT_APP_CONFIG
4
5
  from teddy_executor.core.ports.outbound.repo_tree_generator import IRepoTreeGenerator
5
6
 
6
7
  logger = logging.getLogger(__name__)
@@ -14,7 +15,11 @@ class LocalRepoTreeGenerator(IRepoTreeGenerator):
14
15
  respecting .gitignore and .teddyignore rules.
15
16
  """
16
17
 
17
- def __init__(self, root_dir: str = ".", max_depth: int = 0):
18
+ def __init__(
19
+ self,
20
+ root_dir: str = ".",
21
+ max_depth: int = DEFAULT_APP_CONFIG.context.max_tree_depth,
22
+ ):
18
23
  from teddy_executor.adapters.outbound.filesystem_helpers import (
19
24
  load_ignore_spec,
20
25
  )
@@ -64,7 +69,7 @@ class LocalRepoTreeGenerator(IRepoTreeGenerator):
64
69
  costs no additional stat call. Symlinks are listed as files and are
65
70
  never followed, which keeps circular links from recursing.
66
71
  """
67
- if self._max_depth > 0 and depth >= self._max_depth:
72
+ if depth >= self._max_depth:
68
73
  marker = self._depth_limit_marker(directory, relative_path)
69
74
  return [marker] if marker else []
70
75
 
@@ -19,13 +19,6 @@ _INTERPOLATION_PATTERN = re.compile(
19
19
 
20
20
  _MERGE_TAG = "tag:yaml.org,2002:merge"
21
21
 
22
- # Legacy ``execution.<key>`` names and the canonical group each one now lives in.
23
- _LEGACY_EXECUTION_KEY_GROUPS = {
24
- "default_timeout_seconds": "execute",
25
- "max_output_lines": "execute",
26
- "similarity_threshold": "edit",
27
- }
28
-
29
22
  # ``llm.*`` keys pass straight through to LiteLLM and stay on the live walk,
30
23
  # because a mid-run ``.env`` write must remain visible on the same adapter.
31
24
  _PASSTHROUGH_KEY_PREFIX = "llm."
@@ -143,31 +136,8 @@ class YamlConfigAdapter(IConfigService):
143
136
  except (yaml.YAMLError, OSError):
144
137
  return {}
145
138
 
146
- self._migrate_legacy_execution_keys(user_config)
147
139
  return user_config
148
140
 
149
- def _migrate_legacy_execution_keys(self, user_config: Dict[str, Any]) -> None:
150
- """Copies tuned legacy ``execution.*`` values to their canonical groups.
151
-
152
- A user file written before the execute/edit split still holds these
153
- keys. The copy runs on the in-memory user dict before the baseline
154
- merge, so the canonical key resolves while the user file stays
155
- untouched. An absent or non-mapping legacy parent is left alone, a
156
- ``None`` value is skipped, and an existing canonical key wins.
157
- """
158
- legacy = user_config.get("execution")
159
- if not isinstance(legacy, dict):
160
- return
161
- for legacy_key, group in _LEGACY_EXECUTION_KEY_GROUPS.items():
162
- value = legacy.get(legacy_key)
163
- if value is None:
164
- continue
165
- target = user_config.get(group)
166
- if not isinstance(target, dict):
167
- target = {}
168
- user_config[group] = target
169
- target.setdefault(legacy_key, value)
170
-
171
141
  def _merge_dicts(self, base: Dict[str, Any], overrides: Dict[str, Any]) -> None:
172
142
  """Recursively merges overrides into base. Prunes keys set to None."""
173
143
  for key, value in overrides.items():
@@ -5,12 +5,6 @@ from teddy_executor.core.ports.outbound.session_loop_guard import ISessionLoopGu
5
5
  from teddy_executor.core.ports.outbound.system_environment import ISystemEnvironment
6
6
 
7
7
 
8
- # Sentinel distinguishing "key absent" from a present falsy value, so the
9
- # legacy `yolo_guardrails` namespace is consulted only when the renamed
10
- # `guardrails` key is missing.
11
- _UNSET = object()
12
-
13
-
14
8
  class ProductionSessionLoopGuard(ISessionLoopGuard):
15
9
  """
16
10
  Production implementation: bounds a non-interactive run by turns and cost.
@@ -34,16 +28,8 @@ class ProductionSessionLoopGuard(ISessionLoopGuard):
34
28
  self._max_cost_override = max_cost
35
29
 
36
30
  def _read_config(self, key: str, default: Any) -> Any:
37
- """Reads ``guardrails.<key>`` with a legacy ``yolo_guardrails`` fallback.
38
-
39
- Existing user configs still use the ``yolo_guardrails`` namespace, so
40
- when the renamed ``guardrails`` key is absent the legacy key is read
41
- before the default applies.
42
- """
43
- value = self._config_service.get_setting(f"guardrails.{key}", _UNSET)
44
- if value is _UNSET:
45
- value = self._config_service.get_setting(f"yolo_guardrails.{key}", _UNSET)
46
- return default if value is _UNSET else value
31
+ """Reads ``guardrails.<key>`` and falls back to the supplied default."""
32
+ return self._config_service.get_setting(f"guardrails.{key}", default)
47
33
 
48
34
  def _resolve_limit(
49
35
  self,
@@ -1,6 +1,8 @@
1
1
  from __future__ import annotations
2
2
  import punq
3
3
 
4
+ from teddy_executor.core.domain.models.config_schema import DEFAULT_APP_CONFIG
5
+
4
6
 
5
7
  def register_infrastructure(container: punq.Container) -> None:
6
8
  """Registers core OS and infrastructure adapters."""
@@ -145,7 +147,7 @@ def register_infrastructure(container: punq.Container) -> None:
145
147
  IRepoTreeGenerator,
146
148
  factory=lambda: LocalRepoTreeGenerator(
147
149
  max_depth=container.resolve(IConfigService).get_setting(
148
- "context.max_tree_depth", 0
150
+ "context.max_tree_depth", DEFAULT_APP_CONFIG.context.max_tree_depth
149
151
  )
150
152
  ),
151
153
  scope=punq.Scope.transient,
@@ -18,7 +18,7 @@ read:
18
18
  max_lines: 1000 # Caps READ action output lines.
19
19
 
20
20
  context:
21
- max_tree_depth: 4 # Max project tree depth (0 = unlimited).
21
+ max_tree_depth: 4 # Max project tree depth (0 = omit tree; raise the number to show more levels).
22
22
 
23
23
  research:
24
24
  max_results: 5 # Number of search results to fetch and scrape.