teddy-cli 0.1.17.dev1419__tar.gz → 0.1.17.dev1421__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.dev1419 → teddy_cli-0.1.17.dev1421}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +50 -25
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/README.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/editor_names.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -287,6 +287,9 @@ _PULL_SKIPPED_WARNING = "⚠ Workspace pull skipped; continuing with the current
|
|
|
287
287
|
_PULL_TIMEOUT_WARNING = "⚠ Workspace pull timed out; continuing without it."
|
|
288
288
|
_PULL_GIT_UNAVAILABLE_WARNING = "⚠ Workspace pull skipped; git is unavailable."
|
|
289
289
|
_PULL_UP_TO_DATE_NOTICE = "✓ Workspace up-to-date with remote"
|
|
290
|
+
_PULL_IN_PROGRESS_NOTICE = "✓ Workspace pull skipped; Git operation in progress"
|
|
291
|
+
_PULL_DETACHED_HEAD_NOTICE = "✓ Workspace pull skipped; detached HEAD"
|
|
292
|
+
_PULL_NO_UPSTREAM_NOTICE = "✓ Workspace pull skipped; no upstream branch"
|
|
290
293
|
_IN_PROGRESS_GIT_MARKERS = (
|
|
291
294
|
"rebase-merge",
|
|
292
295
|
"rebase-apply",
|
|
@@ -304,6 +307,15 @@ def _warn_pull(message: str) -> None:
|
|
|
304
307
|
typer.secho(message, fg=typer.colors.YELLOW, err=True)
|
|
305
308
|
|
|
306
309
|
|
|
310
|
+
def _notice_pull(message: str) -> None:
|
|
311
|
+
"""Print one green pull notice.
|
|
312
|
+
|
|
313
|
+
The checkmark line joins the startup block, so it carries no trailing
|
|
314
|
+
blank and never uses the warning color.
|
|
315
|
+
"""
|
|
316
|
+
typer.secho(message, fg=typer.colors.GREEN, err=True)
|
|
317
|
+
|
|
318
|
+
|
|
307
319
|
def _pull_workspace_on_start(
|
|
308
320
|
config_service: IConfigService,
|
|
309
321
|
run_func: Optional[Callable[..., Any]] = None,
|
|
@@ -313,10 +325,11 @@ def _pull_workspace_on_start(
|
|
|
313
325
|
The pull runs only when ``workspace.pull`` is enabled and the workspace is
|
|
314
326
|
a Git repository, so a disabled toggle or a non-repository directory stays
|
|
315
327
|
silent. A detached HEAD, a missing upstream, or an in-progress operation
|
|
316
|
-
|
|
317
|
-
worktree, a failed pull, a timeout, or an unavailable
|
|
318
|
-
one warning and leaves the workspace unchanged. A
|
|
319
|
-
names the number of commits it moved
|
|
328
|
+
reports one checkmark notice, because the user needs a pull outcome on
|
|
329
|
+
every run. A dirty worktree, a failed pull, a timeout, or an unavailable
|
|
330
|
+
git binary reports one warning and leaves the workspace unchanged. A
|
|
331
|
+
successful fast-forward names the number of commits it moved, and a pull
|
|
332
|
+
that moves no commit confirms the workspace is up to date.
|
|
320
333
|
|
|
321
334
|
The Git process is injected through ``run_func`` so every decision is
|
|
322
335
|
testable without spawning a real repository.
|
|
@@ -339,12 +352,16 @@ def _fast_forward_workspace(git_run: Callable[..., Any]) -> None:
|
|
|
339
352
|
|
|
340
353
|
Each precondition is probed before the pull so an unsafe state never
|
|
341
354
|
reaches ``git pull``. A dirty worktree reports one warning, while every
|
|
342
|
-
other unsafe state
|
|
355
|
+
other unsafe state reports one checkmark notice so the user always sees a
|
|
356
|
+
pull outcome.
|
|
343
357
|
"""
|
|
344
|
-
|
|
345
|
-
if
|
|
346
|
-
|
|
347
|
-
|
|
358
|
+
skip = _pull_skip_reason(git_run)
|
|
359
|
+
if skip is not None:
|
|
360
|
+
message, is_warning = skip
|
|
361
|
+
if is_warning:
|
|
362
|
+
_warn_pull(message)
|
|
363
|
+
else:
|
|
364
|
+
_notice_pull(message)
|
|
348
365
|
return
|
|
349
366
|
before = _read_head(git_run)
|
|
350
367
|
result = git_run(
|
|
@@ -360,30 +377,33 @@ def _fast_forward_workspace(git_run: Callable[..., Any]) -> None:
|
|
|
360
377
|
_report_fast_forward(git_run, before, _read_head(git_run))
|
|
361
378
|
|
|
362
379
|
|
|
363
|
-
def _pull_skip_reason(
|
|
364
|
-
|
|
380
|
+
def _pull_skip_reason(
|
|
381
|
+
git_run: Callable[..., Any],
|
|
382
|
+
) -> Optional[tuple[str, bool]]:
|
|
383
|
+
"""Return the outcome text and severity, or None when the pull may proceed.
|
|
365
384
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
385
|
+
Each unsafe state names its own reason, because the user needs a pull
|
|
386
|
+
outcome on every run. The boolean marks a warning (``True``) versus a
|
|
387
|
+
checkmark notice (``False``). A dirty worktree returns the skipped
|
|
388
|
+
warning, because tracked changes can conflict.
|
|
369
389
|
"""
|
|
370
390
|
git_dir = Path.cwd() / ".git"
|
|
371
391
|
if any((git_dir / marker).exists() for marker in _IN_PROGRESS_GIT_MARKERS):
|
|
372
|
-
return
|
|
392
|
+
return _PULL_IN_PROGRESS_NOTICE, False
|
|
373
393
|
detached = git_run(
|
|
374
394
|
["git", "symbolic-ref", "-q", "HEAD"],
|
|
375
395
|
capture_output=True,
|
|
376
396
|
timeout=_GIT_PULL_TIMEOUT_SECONDS,
|
|
377
397
|
)
|
|
378
398
|
if detached.returncode != 0:
|
|
379
|
-
return
|
|
399
|
+
return _PULL_DETACHED_HEAD_NOTICE, False
|
|
380
400
|
upstream = git_run(
|
|
381
401
|
["git", "rev-parse", "--abbrev-ref", "--symbolic-full-name", "@{u}"],
|
|
382
402
|
capture_output=True,
|
|
383
403
|
timeout=_GIT_PULL_TIMEOUT_SECONDS,
|
|
384
404
|
)
|
|
385
405
|
if upstream.returncode != 0:
|
|
386
|
-
return
|
|
406
|
+
return _PULL_NO_UPSTREAM_NOTICE, False
|
|
387
407
|
status = git_run(
|
|
388
408
|
["git", "status", "--porcelain"],
|
|
389
409
|
capture_output=True,
|
|
@@ -396,7 +416,7 @@ def _pull_skip_reason(git_run: Callable[..., Any]) -> Optional[str]:
|
|
|
396
416
|
if line and not line.startswith("??")
|
|
397
417
|
]
|
|
398
418
|
if tracked_changes:
|
|
399
|
-
return _PULL_SKIPPED_WARNING
|
|
419
|
+
return _PULL_SKIPPED_WARNING, True
|
|
400
420
|
return None
|
|
401
421
|
|
|
402
422
|
|
|
@@ -774,10 +794,10 @@ def _display_drift_notification(container: Container) -> list[str]:
|
|
|
774
794
|
fired.append("checks.templates")
|
|
775
795
|
|
|
776
796
|
if drift_lines:
|
|
777
|
-
#
|
|
778
|
-
# lines carry no trailing newline, so the
|
|
779
|
-
# (emitted next) abuts the final drift line.
|
|
780
|
-
typer.echo("\n".join(drift_lines))
|
|
797
|
+
# Stderr keeps the notices in the startup banner order even when the
|
|
798
|
+
# run is redirected. The lines carry no trailing newline, so the
|
|
799
|
+
# shared disable-footer (emitted next) abuts the final drift line.
|
|
800
|
+
typer.echo("\n".join(drift_lines), err=True)
|
|
781
801
|
|
|
782
802
|
return fired
|
|
783
803
|
|
|
@@ -797,10 +817,14 @@ def _display_checks_footer(keys: list[str]) -> None:
|
|
|
797
817
|
ordered = [key for key in canonical if key in unique]
|
|
798
818
|
|
|
799
819
|
if len(ordered) == 1:
|
|
800
|
-
typer.echo(
|
|
820
|
+
typer.echo(
|
|
821
|
+
f"You can disable this check in .teddy/config.yaml: {ordered[0]}.",
|
|
822
|
+
err=True,
|
|
823
|
+
)
|
|
801
824
|
else:
|
|
802
825
|
typer.echo(
|
|
803
|
-
f"You can disable these checks in .teddy/config.yaml: {', '.join(ordered)}."
|
|
826
|
+
f"You can disable these checks in .teddy/config.yaml: {', '.join(ordered)}.",
|
|
827
|
+
err=True,
|
|
804
828
|
)
|
|
805
829
|
|
|
806
830
|
|
|
@@ -838,7 +862,8 @@ def _display_update_notification(container: Container, cache_path: Path) -> list
|
|
|
838
862
|
f"ℹ A new version {latest} is available. "
|
|
839
863
|
f"To upgrade, run: {command}\n",
|
|
840
864
|
fg=typer.colors.YELLOW,
|
|
841
|
-
)
|
|
865
|
+
),
|
|
866
|
+
err=True,
|
|
842
867
|
)
|
|
843
868
|
return ["checks.update"]
|
|
844
869
|
except Exception:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/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
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/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.dev1419 → teddy_cli-0.1.17.dev1421}/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.dev1419 → teddy_cli-0.1.17.dev1421}/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.dev1419 → teddy_cli-0.1.17.dev1421}/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.dev1419 → teddy_cli-0.1.17.dev1421}/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
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/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.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/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
|
|
File without changes
|
{teddy_cli-0.1.17.dev1419 → teddy_cli-0.1.17.dev1421}/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
|