teddy-cli 0.1.17.dev1343__tar.gz → 0.1.17.dev1345__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.dev1343 → teddy_cli-0.1.17.dev1345}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +8 -3
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/container.py +5 -4
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/interrupt_guard.py +12 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/architect.md +1 -1
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/ARCHITECTURE.md +8 -21
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/README.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -16,12 +16,12 @@ from __future__ import annotations
|
|
|
16
16
|
import importlib
|
|
17
17
|
import os
|
|
18
18
|
import select
|
|
19
|
-
import signal
|
|
20
19
|
import sys
|
|
21
20
|
import threading
|
|
22
21
|
from typing import Any, Optional, cast
|
|
23
22
|
|
|
24
23
|
from teddy_executor.core.ports.outbound.quit_key_listener import QuitCallback
|
|
24
|
+
from teddy_executor.core.utils.interrupt_guard import raise_interrupt
|
|
25
25
|
from teddy_executor.core.utils.stdin_ownership import is_stdin_owned
|
|
26
26
|
from teddy_executor.core.utils.terminal import restore_cooked_mode
|
|
27
27
|
|
|
@@ -150,8 +150,13 @@ class TerminalQuitKeyListener:
|
|
|
150
150
|
self._trigger()
|
|
151
151
|
|
|
152
152
|
def _trigger(self) -> None:
|
|
153
|
-
"""Invoke the injected hook, or self-deliver SIGINT by default.
|
|
153
|
+
"""Invoke the injected hook, or self-deliver SIGINT by default.
|
|
154
|
+
|
|
155
|
+
The default branch uses the shared ``raise_interrupt`` primitive so
|
|
156
|
+
the installed guard handler runs on every platform. ``os.kill`` would
|
|
157
|
+
terminate the process on Windows before the handler runs.
|
|
158
|
+
"""
|
|
154
159
|
if self._on_quit is not None:
|
|
155
160
|
self._on_quit()
|
|
156
161
|
return
|
|
157
|
-
|
|
162
|
+
raise_interrupt()
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import os
|
|
4
|
-
import signal
|
|
5
3
|
import time
|
|
6
4
|
|
|
7
5
|
import punq
|
|
@@ -41,10 +39,13 @@ def _record_quit_source(container: punq.Container) -> None:
|
|
|
41
39
|
default `Ctrl+C`; the self-delivered SIGINT then drives the shared guard's
|
|
42
40
|
already-tested WAITING/EXECUTING branch unchanged.
|
|
43
41
|
"""
|
|
44
|
-
from teddy_executor.core.utils.interrupt_guard import
|
|
42
|
+
from teddy_executor.core.utils.interrupt_guard import (
|
|
43
|
+
InterruptGuard,
|
|
44
|
+
raise_interrupt,
|
|
45
|
+
)
|
|
45
46
|
|
|
46
47
|
container.resolve(InterruptGuard).record_source("q")
|
|
47
|
-
|
|
48
|
+
raise_interrupt()
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
def _register_services(container: punq.Container) -> None:
|
|
@@ -121,3 +121,15 @@ class InterruptGuard:
|
|
|
121
121
|
finally:
|
|
122
122
|
self._executing = False
|
|
123
123
|
self._first_signal_at = None
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def raise_interrupt() -> None:
|
|
127
|
+
"""Deliver SIGINT in-process so the installed handler runs on every platform.
|
|
128
|
+
|
|
129
|
+
``os.kill(os.getpid(), signal.SIGINT)`` terminates the process on Windows
|
|
130
|
+
through ``TerminateProcess`` instead of invoking the Python SIGINT handler,
|
|
131
|
+
which suppresses the interrupt notice. ``signal.raise_signal`` uses the
|
|
132
|
+
process-level CRT raise path and reaches the handler from the main thread
|
|
133
|
+
and from a reader thread on every platform.
|
|
134
|
+
"""
|
|
135
|
+
signal.raise_signal(signal.SIGINT)
|
|
@@ -30,7 +30,7 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
|
|
|
30
30
|
3. **Draft Component Designs:**
|
|
31
31
|
CREATE or EDIT draft design docs for affected components. Focus strictly on strategic intent, purpose, conceptual Port responsibilities, operations, and invariants. Enforce Test Double Integrity (Ban Global Patching) and avoid leaky abstractions. Leave concrete typing and internal implementation details to the Developer. Transition updated existing docs to Refactoring status.
|
|
32
32
|
4. **Architecture Maintenance:**
|
|
33
|
-
|
|
33
|
+
If needed, update the Ubiquitous Language, Component and Boundary Map, and Key Architectural Decisions in `docs/architecture/ARCHITECTURE.md` to reflect the design.
|
|
34
34
|
5. **Delta Analysis:**
|
|
35
35
|
Use EXECUTE `git grep` and READ on all targeted components, contracts, interfaces, and DTOs. Catalog the delta: skip work that already exists, note remaining work for partially implemented pieces, and add only truly missing pieces as deliverables. Never create deliverables for code that demonstrably exists.
|
|
36
36
|
6. **Draft Milestone Slices:**
|
|
@@ -22,6 +22,14 @@ This section defines foundational engineering practices. Each entry MUST be a sp
|
|
|
22
22
|
`docs/architecture/BOUNDARY/LAYER/TYPE/name.md` -> Source path: `src/{pkg}/BOUNDARY/LAYER/TYPE/name.ext` -> Test path: `tests/suites/TEST_TYPE/BOUNDARY/LAYER/TYPE/test_name.ext`
|
|
23
23
|
- **Makefile Commands:** The `Makefile` is the canonical entry point for the version control workflow and on-demand test runs: `make test` (full suite), `make commit '<msg>'` (local commit with advisory auto-fix and unskippable post-commit test gate), `make push` (rebase and push), `make ci-watch` (CI monitoring), and `make probe '<reason>'` (Remote Probing Protocol). See [docs/templates/makefile.md](docs/templates/makefile.md).
|
|
24
24
|
|
|
25
|
+
## Ubiquitous Language
|
|
26
|
+
|
|
27
|
+
The canonical domain vocabulary. All documentation, component names, tests, and agent prompts must use these terms consistently.
|
|
28
|
+
|
|
29
|
+
**Template format:** `- **Term:** Concise definition and operational boundary.`
|
|
30
|
+
|
|
31
|
+
- **TermName:** Definition of the core domain concept and its operational boundaries.
|
|
32
|
+
|
|
25
33
|
## Component & Boundary Map
|
|
26
34
|
|
|
27
35
|
Single source of truth for system structure, organized by architectural layer.
|
|
@@ -56,27 +64,6 @@ Test drivers, observers, shared fakes, and test setup fixtures.
|
|
|
56
64
|
|
|
57
65
|
Each Contract column links to the Component Design Document or Interface definition.
|
|
58
66
|
|
|
59
|
-
## Domain Model & Ubiquitous Language
|
|
60
|
-
|
|
61
|
-
The shared vocabulary exchanged by every service, port, and adapter. Record the core entities, enumerations, value objects, domain exceptions, and port bundles that do not warrant a dedicated component design document.
|
|
62
|
-
|
|
63
|
-
**Template format:** Group the types by concept. List each type with its module, kind, fields, and any invariant.
|
|
64
|
-
|
|
65
|
-
### Enumerations
|
|
66
|
-
- **`TypeName`** (`module.py`, Enum): `VALUE_A`, `VALUE_B`.
|
|
67
|
-
|
|
68
|
-
### Aggregates
|
|
69
|
-
- **`AggregateName`** (`module.py`, dataclass): `field_a`, `field_b`. Exposes `helper_method()`.
|
|
70
|
-
|
|
71
|
-
### Port Bundles
|
|
72
|
-
- **`PortBundleName`** (`module.py`, frozen dataclass): `dependency_a`, `dependency_b`.
|
|
73
|
-
|
|
74
|
-
### Supporting Value Objects
|
|
75
|
-
- **`ValueObjectName`** (`module.py`, frozen dataclass): `field_a`, `field_b`.
|
|
76
|
-
|
|
77
|
-
### Domain Exceptions
|
|
78
|
-
- **`ExceptionName`** (`BaseException`): carries `field`.
|
|
79
|
-
|
|
80
67
|
## Key Architectural Decisions
|
|
81
68
|
|
|
82
69
|
A living "System Law" document capturing explicit, prescriptive design decisions.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/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
|
{teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/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
|