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.
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/__main__.py +13 -1
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +7 -2
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -30
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_loop_guard.py +2 -16
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/infrastructure.py +3 -1
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/config.yaml +1 -1
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/README.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {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
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {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
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {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
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/editor_names.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -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
|
-
|
|
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__(
|
|
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
|
|
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>``
|
|
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",
|
|
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 =
|
|
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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/domain/models/plan.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/ports/inbound/init.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/editor_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1405 → teddy_cli-0.1.17.dev1406}/src/teddy_executor/resources/templates/ci.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|