teddy-cli 0.1.17.dev1420__tar.gz → 0.1.17.dev1422__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.dev1420 → teddy_cli-0.1.17.dev1422}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +50 -25
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/makefile.md +21 -16
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/README.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/editor_names.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/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:
|
|
@@ -202,7 +202,7 @@ Attribution is deterministic: SHA → run → run-level + per-job conclusion (ne
|
|
|
202
202
|
|
|
203
203
|
Key behaviors:
|
|
204
204
|
|
|
205
|
-
1. **Automatic SHA and BASE resolution.** `SHA` defaults to current `HEAD` (or `COMMIT=<sha>`), and `BASE` resolves per workflow to the most recent ancestor of `SHA` that carries a run for that workflow
|
|
205
|
+
1. **Automatic SHA and BASE resolution.** `SHA` defaults to current `HEAD` (or `COMMIT=<sha>`), and `BASE` resolves per workflow to the most recent ancestor of `SHA` that carries a run for that workflow. The target fetches one bounded list of the workflow's latest runs (`BASE_SCAN`, default 200) and intersects it with the newest `BASE_DEPTH` ancestors (`git rev-list`, default 50), so resolution costs one API call instead of one per ancestor. An explicit `BASE=<sha>` pins the baseline verbatim and skips resolution; if the pinned commit carries no run for the workflow, the target fails safe as an unknown base.
|
|
206
206
|
2. **Registration lag is tolerated by a bounded retry.** CI can fail to register a run for the pushed SHA immediately. The target polls `gh run list --commit <sha>` up to `RETRY_POLLS × RETRY_SLEEP` (default 10 × 2s ≈ 20s) before attributing. It fails safe if the run never registers.
|
|
207
207
|
3. **No CI is non-blocking.** If the repository has no workflow files under `.github/workflows/` (`*.yml`/`*.yaml`), the target logs `No CI configured - skipping attribution` and exits 0.
|
|
208
208
|
4. **Workflow names with spaces stay whole.** The target reads workflow names one line at a time. A name such as `Publish to PyPI` is attributed as one workflow.
|
|
@@ -214,6 +214,7 @@ RETRY_POLLS ?= 10
|
|
|
214
214
|
RETRY_SLEEP ?= 2
|
|
215
215
|
DETAIL_LINES ?= 50
|
|
216
216
|
BASE_DEPTH ?= 50
|
|
217
|
+
BASE_SCAN ?= 200
|
|
217
218
|
BASE ?=
|
|
218
219
|
|
|
219
220
|
ci-watch: _preflight
|
|
@@ -250,9 +251,10 @@ ci-watch: _preflight
|
|
|
250
251
|
while IFS= read -r WF; do \
|
|
251
252
|
NEW=$$(gh run list --commit "$$SHA" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
252
253
|
gh run watch "$$NEW" --exit-status >/dev/null 2>&1 || true; \
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
NEWMETA=$$(gh run view "$$NEW" --json conclusion,jobs --jq '.conclusion, ([.jobs[] | select(.conclusion=="failure") | .name] | sort | join(",")), ([.jobs[] | select(.conclusion=="failure") | .steps[]? | select(.conclusion=="failure") | .name] | sort | join(", "))'); \
|
|
255
|
+
NEWCONC=$$(printf '%s\n' "$$NEWMETA" | sed -n '1p'); \
|
|
256
|
+
NEWFAIL=$$(printf '%s\n' "$$NEWMETA" | sed -n '2p'); \
|
|
257
|
+
NEWSTEPS=$$(printf '%s\n' "$$NEWMETA" | sed -n '3p'); \
|
|
256
258
|
if [ -n "$$NEWSTEPS" ]; then \
|
|
257
259
|
echo "$$WF: failing step(s): $$NEWSTEPS (run $$NEW)"; \
|
|
258
260
|
gh run view "$$NEW" --log-failed 2>/dev/null | awk -F'\t' '{ l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/) next; gsub(/^##\[error\]/,"Error: ",l); print l }' | tail -n $(DETAIL_LINES) | sed 's/^/ /'; \
|
|
@@ -272,33 +274,36 @@ ci-watch: _preflight
|
|
|
272
274
|
echo "$$WF: unknown conclusion '$$NEWCONC' on run $$NEW blocks the session." >&2; \
|
|
273
275
|
STATUS=1; continue; \
|
|
274
276
|
fi; \
|
|
275
|
-
BASE="$(BASE)";
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
277
|
+
BASE="$(BASE)"; OLD=""; \
|
|
278
|
+
if [ -n "$$BASE" ]; then \
|
|
279
|
+
OLD=$$(gh run list --commit "$$BASE" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
280
|
+
else \
|
|
281
|
+
RUNLIST=$${TMPDIR:-/tmp}/ci-watch-runs.$$$$; \
|
|
282
|
+
gh run list --workflow "$$WF" -L $(BASE_SCAN) --json headSha,databaseId --jq '.[] | "\(.headSha) \(.databaseId)"' > "$$RUNLIST" 2>/dev/null; \
|
|
283
|
+
for CUR in $$(git rev-list -n $(BASE_DEPTH) "$$SHA^" 2>/dev/null); do \
|
|
284
|
+
OLD=$$(awk -v sha="$$CUR" '$$1 == sha { print $$2; exit }' "$$RUNLIST"); \
|
|
285
|
+
if [ -n "$$OLD" ]; then BASE="$$CUR"; break; fi; \
|
|
286
|
+
done; \
|
|
287
|
+
rm -f "$$RUNLIST"; \
|
|
288
|
+
fi; \
|
|
284
289
|
if [ -z "$$BASE" ]; then \
|
|
285
290
|
echo "$$WF: BLOCKING failure ($$NEWFAIL) - no run-bearing ancestor (unknown base) - YOUR regression"; \
|
|
286
291
|
echo "$$WF: no run-bearing ancestor within $(BASE_DEPTH) commits, so the baseline is unknown." >&2; \
|
|
287
292
|
STATUS=1; continue; \
|
|
288
293
|
fi; \
|
|
289
|
-
OLD=$$(gh run list --commit "$$BASE" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
290
294
|
if [ -z "$$OLD" ]; then \
|
|
291
295
|
echo "$$WF: BLOCKING failure ($$NEWFAIL) - pinned base has no run (unknown base) - YOUR regression"; \
|
|
292
296
|
echo "$$WF: pinned base $$BASE carries no run for this workflow." >&2; \
|
|
293
297
|
STATUS=1; continue; \
|
|
294
298
|
fi; \
|
|
295
|
-
|
|
299
|
+
OLDMETA=$$(gh run view "$$OLD" --json jobs --jq '(.jobs | length), ([.jobs[] | select(.conclusion=="failure") | .name] | sort | join(","))'); \
|
|
300
|
+
OLDJOBS=$$(printf '%s\n' "$$OLDMETA" | sed -n '1p'); \
|
|
296
301
|
if [ "$$OLDJOBS" = "0" ]; then \
|
|
297
302
|
echo "$$WF: BLOCKING failure ($$NEWFAIL) - base run is job-less (invalid workflow, not green) - YOUR regression"; \
|
|
298
303
|
echo "$$WF: base run $$OLD carries zero jobs, so it cannot prove a green baseline." >&2; \
|
|
299
304
|
STATUS=1; continue; \
|
|
300
305
|
fi; \
|
|
301
|
-
OLDFAIL=$$(
|
|
306
|
+
OLDFAIL=$$(printf '%s\n' "$$OLDMETA" | sed -n '2p'); \
|
|
302
307
|
SUBSET=$$(awk -v new="$$NEWFAIL" -v old="$$OLDFAIL" 'BEGIN { n=split(new,na,","); m=split(old,oa,","); for (i=1;i<=n;i++) { if (na[i]=="") continue; f=0; for (j=1;j<=m;j++) { if (oa[j]==na[i]) { f=1; break } } if (!f) { print "regression"; exit } } print "pre-existing" }' </dev/null); \
|
|
303
308
|
if [ "$$SUBSET" = "pre-existing" ]; then \
|
|
304
309
|
echo "$$WF: pre-existing BLOCKING failure ($$NEWFAIL) - not yours"; \
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1420 → teddy_cli-0.1.17.dev1422}/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.dev1420 → teddy_cli-0.1.17.dev1422}/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
|