teddy-cli 0.1.17.dev1301__tar.gz → 0.1.17.dev1302__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.dev1301 → teddy_cli-0.1.17.dev1302}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/init_service.py +46 -12
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/vertical-slice.md +7 -2
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/README.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/specification-document.md +0 -0
|
@@ -146,6 +146,35 @@ class InitService(IInitUseCase):
|
|
|
146
146
|
"""Returns a filename's case-folded stem for identity comparison."""
|
|
147
147
|
return Path(filename).stem.casefold()
|
|
148
148
|
|
|
149
|
+
def _present_stems(self, dest_dir: str) -> set[str]:
|
|
150
|
+
"""Returns the case-folded stems of every entry in ``dest_dir``.
|
|
151
|
+
|
|
152
|
+
Returns an empty set when ``dest_dir`` is absent, because the file-system
|
|
153
|
+
adapter raises ``FileNotFoundError`` when asked to list a missing
|
|
154
|
+
directory. Single-sources the directory scan shared by the prompt copy
|
|
155
|
+
routine and the drift check.
|
|
156
|
+
"""
|
|
157
|
+
if not self._file_system.path_exists(dest_dir):
|
|
158
|
+
return set()
|
|
159
|
+
return {
|
|
160
|
+
self._stem_key(name) for name in self._file_system.list_directory(dest_dir)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
def _entry_is_present(
|
|
164
|
+
self, target_path: str, filename: str, present_stems: set[str]
|
|
165
|
+
) -> bool:
|
|
166
|
+
"""True when the exact file OR a same-stem sibling exists in the directory.
|
|
167
|
+
|
|
168
|
+
``present_stems`` carries the case-folded stems of the directory entries,
|
|
169
|
+
so a same-stem file under ANY extension counts as present. An empty set
|
|
170
|
+
means the caller disabled stem identity or the directory holds no
|
|
171
|
+
same-stem entry. Single-sources the stem-membership predicate shared by
|
|
172
|
+
the prompt copy routine and the drift check.
|
|
173
|
+
"""
|
|
174
|
+
return self._file_system.path_exists(target_path) or (
|
|
175
|
+
self._stem_key(filename) in present_stems
|
|
176
|
+
)
|
|
177
|
+
|
|
149
178
|
def _prune_same_stem(self, dest_dir: str, filename: str) -> None:
|
|
150
179
|
"""Removes same-stem files with a different name (stem identity).
|
|
151
180
|
|
|
@@ -183,20 +212,11 @@ class InitService(IInitUseCase):
|
|
|
183
212
|
stem_identity = policy.stem_identity
|
|
184
213
|
if not self._file_system.path_exists(dest_dir):
|
|
185
214
|
self._file_system.create_directory(dest_dir)
|
|
186
|
-
|
|
187
|
-
{
|
|
188
|
-
self._stem_key(name)
|
|
189
|
-
for name in self._file_system.list_directory(dest_dir)
|
|
190
|
-
}
|
|
191
|
-
if stem_identity
|
|
192
|
-
else set()
|
|
193
|
-
)
|
|
215
|
+
present_stems = self._present_stems(dest_dir) if stem_identity else set()
|
|
194
216
|
count = 0
|
|
195
217
|
for fname in filenames:
|
|
196
218
|
target_path = f"{dest_dir}/{fname}"
|
|
197
|
-
exists = self.
|
|
198
|
-
stem_identity and self._stem_key(fname) in same_stems
|
|
199
|
-
)
|
|
219
|
+
exists = self._entry_is_present(target_path, fname, present_stems)
|
|
200
220
|
if not exists or (overwrite and fname not in create_only):
|
|
201
221
|
content = resolve_content(fname)
|
|
202
222
|
if content is not None:
|
|
@@ -353,6 +373,7 @@ class InitService(IInitUseCase):
|
|
|
353
373
|
dest_dir: str,
|
|
354
374
|
filenames: Sequence[str],
|
|
355
375
|
resolve_bundled: Callable[[str], str | None],
|
|
376
|
+
stem_identity: bool = False,
|
|
356
377
|
) -> tuple[tuple[str, ...], tuple[str, ...]]:
|
|
357
378
|
"""Partitions ``filenames`` into (edited, missing) against bundled defaults.
|
|
358
379
|
|
|
@@ -360,14 +381,26 @@ class InitService(IInitUseCase):
|
|
|
360
381
|
user copy exists, a bundled default is resolvable, and the two contents
|
|
361
382
|
differ. Unresolvable bundled defaults are skipped (never reported as
|
|
362
383
|
drift). Order is preserved from ``filenames`` for deterministic output.
|
|
384
|
+
|
|
385
|
+
When ``stem_identity`` is set (prompt checks only), a destination entry
|
|
386
|
+
sharing an entry's stem under ANY extension (e.g. a pre-migration
|
|
387
|
+
``.xml``) counts as PRESENT and is reported as EDITED. Such a file
|
|
388
|
+
diverges from the bundled ``.md`` default, so it is not missing. This
|
|
389
|
+
mirrors the stem identity used by the prompt copy routine.
|
|
363
390
|
"""
|
|
364
391
|
edited: list[str] = []
|
|
365
392
|
missing: list[str] = []
|
|
393
|
+
present_stems = self._present_stems(dest_dir) if stem_identity else set()
|
|
366
394
|
for fname in filenames:
|
|
367
395
|
user_path = f"{dest_dir}/{fname}"
|
|
368
|
-
if not self.
|
|
396
|
+
if not self._entry_is_present(user_path, fname, present_stems):
|
|
369
397
|
missing.append(fname)
|
|
370
398
|
continue
|
|
399
|
+
if not self._file_system.path_exists(user_path):
|
|
400
|
+
# Present only as a same-stem sibling (e.g. a stale ``.xml``);
|
|
401
|
+
# it diverges from the bundled ``.md`` default.
|
|
402
|
+
edited.append(fname)
|
|
403
|
+
continue
|
|
371
404
|
bundled_content = resolve_bundled(fname)
|
|
372
405
|
if bundled_content is None:
|
|
373
406
|
continue
|
|
@@ -389,6 +422,7 @@ class InitService(IInitUseCase):
|
|
|
389
422
|
dest_dir=".teddy/prompts",
|
|
390
423
|
filenames=_PROMPT_FILES,
|
|
391
424
|
resolve_bundled=lambda fname: self._get_default_content(f"prompts/{fname}"),
|
|
425
|
+
stem_identity=True,
|
|
392
426
|
)
|
|
393
427
|
edited_templates, missing_templates = self._classify_drift(
|
|
394
428
|
dest_dir="docs/templates",
|
|
@@ -80,5 +80,10 @@ Free-form notes recording decisions, deviations, or discoveries during implement
|
|
|
80
80
|
<!-- Do NOT include running automated tests here; those are covered by the automated test suite. -->
|
|
81
81
|
|
|
82
82
|
**Format:**
|
|
83
|
-
- [ ] **
|
|
84
|
-
|
|
83
|
+
- [ ] **Title:**
|
|
84
|
+
Run `command <args>`.
|
|
85
|
+
Verify output contains `expected output`.
|
|
86
|
+
- [ ] **Title:**
|
|
87
|
+
Navigate to `[View/Screen]`.
|
|
88
|
+
Trigger `[Action]`.
|
|
89
|
+
Confirm `[Observed State/Element]`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/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
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1301 → teddy_cli-0.1.17.dev1302}/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.dev1301 → teddy_cli-0.1.17.dev1302}/src/teddy_executor/resources/templates/ci.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|