teddy-cli 0.1.17.dev1302__tar.gz → 0.1.17.dev1303__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.dev1302 → teddy_cli-0.1.17.dev1303}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +83 -72
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/README.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -241,6 +241,71 @@ def _run_health_checks() -> None:
|
|
|
241
241
|
_check_git_initialized()
|
|
242
242
|
|
|
243
243
|
|
|
244
|
+
def _start_background_update_check(container: Container) -> list[str]:
|
|
245
|
+
"""Start the non-blocking version check and report the update-check keys.
|
|
246
|
+
|
|
247
|
+
Both session entry points share this preamble: it spawns the daemon
|
|
248
|
+
version-fetch thread, then emits the cached update notification (if any).
|
|
249
|
+
The returned list names the checks that fired so the shared disable-footer
|
|
250
|
+
can report them.
|
|
251
|
+
"""
|
|
252
|
+
import threading
|
|
253
|
+
|
|
254
|
+
cache_path = find_project_root() / ".teddy" / ".update_cache.json"
|
|
255
|
+
thread = threading.Thread(
|
|
256
|
+
target=background_check,
|
|
257
|
+
args=(cache_path,),
|
|
258
|
+
daemon=True,
|
|
259
|
+
)
|
|
260
|
+
thread.start()
|
|
261
|
+
return _display_update_notification(container, cache_path)
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def _run_startup_preamble(
|
|
265
|
+
container: Container,
|
|
266
|
+
fired: list[str],
|
|
267
|
+
agent: Optional[str] = None,
|
|
268
|
+
setup_editor: Optional[bool] = None,
|
|
269
|
+
setup_api_key: Optional[bool] = None,
|
|
270
|
+
) -> None:
|
|
271
|
+
"""Run the shared startup preamble for both session entry points.
|
|
272
|
+
|
|
273
|
+
The order is fixed so the banner layout cannot drift: health checks, the
|
|
274
|
+
``Checking configurations...`` line, the preflight check (whose returned
|
|
275
|
+
keys extend ``fired``), then the shared disable-footer. ``start`` forwards
|
|
276
|
+
its ``agent`` so the preflight validates the agent prompt; ``resume``
|
|
277
|
+
leaves it ``None`` and validates no agent.
|
|
278
|
+
"""
|
|
279
|
+
_run_health_checks()
|
|
280
|
+
typer.echo("Checking configurations...", err=True)
|
|
281
|
+
fired.extend(
|
|
282
|
+
_run_cli_preflight_check(
|
|
283
|
+
container,
|
|
284
|
+
agent=agent,
|
|
285
|
+
setup_editor=setup_editor,
|
|
286
|
+
setup_api_key=setup_api_key,
|
|
287
|
+
)
|
|
288
|
+
)
|
|
289
|
+
_display_checks_footer(fired)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
def _handle_startup_error(container: Container, error: Exception) -> None:
|
|
293
|
+
"""Print a startup error and exit with code 1 (shared by both entry points).
|
|
294
|
+
|
|
295
|
+
A ``ConfigurationError`` additionally prints the configuration path hint.
|
|
296
|
+
"""
|
|
297
|
+
from teddy_executor.core.domain.models.exceptions import ConfigurationError
|
|
298
|
+
|
|
299
|
+
if isinstance(error, ConfigurationError):
|
|
300
|
+
config_service = container.resolve(IConfigService)
|
|
301
|
+
config_path = config_service.get_config_path()
|
|
302
|
+
typer.echo(f"Error: {error}", err=True)
|
|
303
|
+
typer.echo(f"Please update your configuration at: {config_path}", err=True)
|
|
304
|
+
else:
|
|
305
|
+
typer.echo(f"Error: {error}", err=True)
|
|
306
|
+
raise typer.Exit(code=1)
|
|
307
|
+
|
|
308
|
+
|
|
244
309
|
def _determine_session_name(name: Optional[str], message: Optional[str]) -> str:
|
|
245
310
|
"""Determine session name (slugify message if name is missing)."""
|
|
246
311
|
if name:
|
|
@@ -565,17 +630,7 @@ def handle_new_session( # noqa: PLR0913
|
|
|
565
630
|
setup_api_key: Optional[bool] = None,
|
|
566
631
|
):
|
|
567
632
|
"""Logic for the 'start' command."""
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
# Start non-blocking background version check
|
|
571
|
-
cache_path = find_project_root() / ".teddy" / ".update_cache.json"
|
|
572
|
-
thread = threading.Thread(
|
|
573
|
-
target=background_check,
|
|
574
|
-
args=(cache_path,),
|
|
575
|
-
daemon=True,
|
|
576
|
-
)
|
|
577
|
-
thread.start()
|
|
578
|
-
fired = _display_update_notification(container, cache_path)
|
|
633
|
+
fired = _start_background_update_check(container)
|
|
579
634
|
|
|
580
635
|
try:
|
|
581
636
|
# 0. Pipeline mode requires an initial message
|
|
@@ -587,20 +642,14 @@ def handle_new_session( # noqa: PLR0913
|
|
|
587
642
|
# 1. Ensure project is initialized
|
|
588
643
|
container.resolve(IInitUseCase).ensure_initialized()
|
|
589
644
|
|
|
590
|
-
# 2.
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
container,
|
|
598
|
-
agent=agent,
|
|
599
|
-
setup_editor=setup_editor,
|
|
600
|
-
setup_api_key=setup_api_key,
|
|
601
|
-
)
|
|
645
|
+
# 2. Shared startup preamble (health checks + preflight + footer)
|
|
646
|
+
_run_startup_preamble(
|
|
647
|
+
container,
|
|
648
|
+
fired,
|
|
649
|
+
agent=agent,
|
|
650
|
+
setup_editor=setup_editor,
|
|
651
|
+
setup_api_key=setup_api_key,
|
|
602
652
|
)
|
|
603
|
-
_display_checks_footer(fired)
|
|
604
653
|
_echo_config_success(container, agent, model=model)
|
|
605
654
|
|
|
606
655
|
session_manager: ISessionManager = container.resolve(ISessionManager)
|
|
@@ -635,18 +684,7 @@ def handle_new_session( # noqa: PLR0913
|
|
|
635
684
|
)
|
|
636
685
|
|
|
637
686
|
except Exception as e:
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
if isinstance(e, ConfigurationError):
|
|
641
|
-
from teddy_executor.core.ports.outbound.config_service import IConfigService
|
|
642
|
-
|
|
643
|
-
config_service = container.resolve(IConfigService)
|
|
644
|
-
config_path = config_service.get_config_path()
|
|
645
|
-
typer.echo(f"Error: {e}", err=True)
|
|
646
|
-
typer.echo(f"Please update your configuration at: {config_path}", err=True)
|
|
647
|
-
else:
|
|
648
|
-
typer.echo(f"Error: {e}", err=True)
|
|
649
|
-
raise typer.Exit(code=1)
|
|
687
|
+
_handle_startup_error(container, e)
|
|
650
688
|
|
|
651
689
|
|
|
652
690
|
def _echo_config_success(
|
|
@@ -1109,32 +1147,16 @@ def handle_resume_session( # noqa: PLR0913
|
|
|
1109
1147
|
setup_api_key: Optional[bool] = None,
|
|
1110
1148
|
):
|
|
1111
1149
|
"""Logic for the 'resume' command."""
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
# Start non-blocking background version check
|
|
1115
|
-
cache_path = find_project_root() / ".teddy" / ".update_cache.json"
|
|
1116
|
-
thread = threading.Thread(
|
|
1117
|
-
target=background_check,
|
|
1118
|
-
args=(cache_path,),
|
|
1119
|
-
daemon=True,
|
|
1120
|
-
)
|
|
1121
|
-
thread.start()
|
|
1122
|
-
fired = _display_update_notification(container, cache_path)
|
|
1150
|
+
fired = _start_background_update_check(container)
|
|
1123
1151
|
|
|
1124
1152
|
try:
|
|
1125
|
-
# 1.
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
_run_cli_preflight_check(
|
|
1132
|
-
container,
|
|
1133
|
-
setup_editor=setup_editor,
|
|
1134
|
-
setup_api_key=setup_api_key,
|
|
1135
|
-
)
|
|
1153
|
+
# 1. Shared startup preamble (health checks + preflight + footer)
|
|
1154
|
+
_run_startup_preamble(
|
|
1155
|
+
container,
|
|
1156
|
+
fired,
|
|
1157
|
+
setup_editor=setup_editor,
|
|
1158
|
+
setup_api_key=setup_api_key,
|
|
1136
1159
|
)
|
|
1137
|
-
_display_checks_footer(fired)
|
|
1138
1160
|
|
|
1139
1161
|
# 2. Resolve session name
|
|
1140
1162
|
session_name = _resolve_session_name(container, path)
|
|
@@ -1146,7 +1168,7 @@ def handle_resume_session( # noqa: PLR0913
|
|
|
1146
1168
|
|
|
1147
1169
|
# 4. Display session path (below the Agent/Model identity block)
|
|
1148
1170
|
session_relative_path = str(Path(".teddy") / "sessions" / session_name)
|
|
1149
|
-
typer.echo(f"
|
|
1171
|
+
typer.echo(f"Resuming session: {session_relative_path}")
|
|
1150
1172
|
|
|
1151
1173
|
# 5. Agent switch: if -a/--agent provided, update session agent permanently
|
|
1152
1174
|
if agent:
|
|
@@ -1163,15 +1185,4 @@ def handle_resume_session( # noqa: PLR0913
|
|
|
1163
1185
|
)
|
|
1164
1186
|
|
|
1165
1187
|
except Exception as e:
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
if isinstance(e, ConfigurationError):
|
|
1169
|
-
from teddy_executor.core.ports.outbound.config_service import IConfigService
|
|
1170
|
-
|
|
1171
|
-
config_service = container.resolve(IConfigService)
|
|
1172
|
-
config_path = config_service.get_config_path()
|
|
1173
|
-
typer.echo(f"Error: {e}", err=True)
|
|
1174
|
-
typer.echo(f"Please update your configuration at: {config_path}", err=True)
|
|
1175
|
-
else:
|
|
1176
|
-
typer.echo(f"Error: {e}", err=True)
|
|
1177
|
-
raise typer.Exit(code=1)
|
|
1188
|
+
_handle_startup_error(container, e)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/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
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1302 → teddy_cli-0.1.17.dev1303}/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.dev1302 → teddy_cli-0.1.17.dev1303}/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
|