teddy-cli 0.1.17.dev1288__tar.gz → 0.1.17.dev1289__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.dev1288 → teddy_cli-0.1.17.dev1289}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +3 -5
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_lifecycle_manager.py +11 -4
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_orchestrator.py +4 -7
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/terminal.py +18 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/MRP.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "teddy-cli"
|
|
3
|
-
version = "0.1.17.
|
|
3
|
+
version = "0.1.17.dev1289"
|
|
4
4
|
description = "A local-first, file-based AI coding workflow that applies the UNIX philosophy to AI collaboration."
|
|
5
5
|
authors = [{ name = "Raphael Atteritano" }]
|
|
6
6
|
license = { text = "AGPL-3.0-only" }
|
|
@@ -5,6 +5,8 @@ import io
|
|
|
5
5
|
import logging
|
|
6
6
|
from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
|
8
|
+
from teddy_executor.core.utils.terminal import emit_user_message
|
|
9
|
+
|
|
8
10
|
if TYPE_CHECKING:
|
|
9
11
|
from teddy_executor.adapters.inbound.textual_plan_reviewer_app import ReviewerApp
|
|
10
12
|
from teddy_executor.core.domain.models.plan import ActionData
|
|
@@ -183,11 +185,7 @@ async def orchestrate_execution(app: ReviewerApp, node: Any, update_fn: Any) ->
|
|
|
183
185
|
and isinstance(log.details, str)
|
|
184
186
|
and log.details.strip()
|
|
185
187
|
):
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
typer.secho("")
|
|
189
|
-
typer.secho("User Message:")
|
|
190
|
-
typer.secho(log.details.strip())
|
|
188
|
+
emit_user_message(log.details)
|
|
191
189
|
except Exception as e:
|
|
192
190
|
logging.getLogger(__name__).debug("Background execution failed: %s", e)
|
|
193
191
|
action.executed, action.state = True, ExecutionStatus.FAILURE
|
|
@@ -50,7 +50,7 @@ class SessionLifecycleManager:
|
|
|
50
50
|
self._report_assembler = ports.report_assembler
|
|
51
51
|
self.tee_active = False
|
|
52
52
|
|
|
53
|
-
def resume(
|
|
53
|
+
def resume( # noqa: PLR0913
|
|
54
54
|
self,
|
|
55
55
|
session_name: str,
|
|
56
56
|
orchestrator: IRunPlanUseCase,
|
|
@@ -245,7 +245,7 @@ class SessionLifecycleManager:
|
|
|
245
245
|
content += f"\n\n## User Request\n{fence}text\n{message}\n{fence}\n"
|
|
246
246
|
self._file_system_manager.write_file(report_path, content)
|
|
247
247
|
|
|
248
|
-
def _consume_awaiting_reply(
|
|
248
|
+
def _consume_awaiting_reply( # noqa: PLR0913
|
|
249
249
|
self,
|
|
250
250
|
turn_path: str,
|
|
251
251
|
turn_meta: dict[str, Any],
|
|
@@ -407,7 +407,7 @@ class SessionLifecycleManager:
|
|
|
407
407
|
)
|
|
408
408
|
)
|
|
409
409
|
|
|
410
|
-
def _handle_planning_and_execution(
|
|
410
|
+
def _handle_planning_and_execution( # noqa: PLR0913
|
|
411
411
|
self,
|
|
412
412
|
turn_dir: str,
|
|
413
413
|
orchestrator: IRunPlanUseCase,
|
|
@@ -451,13 +451,20 @@ class SessionLifecycleManager:
|
|
|
451
451
|
tee = None
|
|
452
452
|
|
|
453
453
|
try:
|
|
454
|
-
# Print initial request before turn header (before planning)
|
|
454
|
+
# Print initial request before turn header (before planning).
|
|
455
|
+
# Turn 01 is covered by the initial-request echo (the injected
|
|
456
|
+
# message is appended to initial_request.md); every later turn
|
|
457
|
+
# echoes the injected `resume -m` message directly so resuming
|
|
458
|
+
# gives the same visible confirmation as starting.
|
|
455
459
|
from teddy_executor.core.services.session_orchestrator import (
|
|
456
460
|
_print_initial_request,
|
|
457
461
|
)
|
|
462
|
+
from teddy_executor.core.utils.terminal import emit_user_message
|
|
458
463
|
|
|
459
464
|
if Path(turn_dir).name == "01":
|
|
460
465
|
_print_initial_request(None, True, plan_path=Path(turn_dir).as_posix())
|
|
466
|
+
elif message and message.strip():
|
|
467
|
+
emit_user_message(message)
|
|
461
468
|
new_name, gathered_context = self._session_planner.trigger_new_plan(
|
|
462
469
|
turn_dir, message=message
|
|
463
470
|
)
|
|
@@ -14,6 +14,7 @@ from teddy_executor.core.ports.inbound.run_plan_use_case import IRunPlanUseCase
|
|
|
14
14
|
from teddy_executor.core.ports.outbound.file_system_manager import IFileSystemManager
|
|
15
15
|
from teddy_executor.core.services.session_replanner import SessionReplanner
|
|
16
16
|
from teddy_executor.core.utils.io import Tee as _Tee
|
|
17
|
+
from teddy_executor.core.utils.terminal import emit_user_message
|
|
17
18
|
import typer
|
|
18
19
|
|
|
19
20
|
logger = logging.getLogger(__name__)
|
|
@@ -37,7 +38,7 @@ def _print_initial_request(
|
|
|
37
38
|
|
|
38
39
|
Only prints when is_session=True and message is non-empty.
|
|
39
40
|
Output::
|
|
40
|
-
|
|
41
|
+
User Message:
|
|
41
42
|
{content}
|
|
42
43
|
(blank line separator)
|
|
43
44
|
"""
|
|
@@ -58,9 +59,7 @@ def _print_initial_request(
|
|
|
58
59
|
)
|
|
59
60
|
if not message or not message.strip():
|
|
60
61
|
return
|
|
61
|
-
|
|
62
|
-
typer.secho("Initial Request:")
|
|
63
|
-
typer.secho(message.strip())
|
|
62
|
+
emit_user_message(message)
|
|
64
63
|
|
|
65
64
|
|
|
66
65
|
def _print_header_bar(plan: Any, is_session: bool) -> None:
|
|
@@ -146,9 +145,7 @@ def _print_user_message(
|
|
|
146
145
|
if not message or not message.strip():
|
|
147
146
|
return
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
typer.secho("User Message:")
|
|
151
|
-
typer.secho(message.strip())
|
|
148
|
+
emit_user_message(message)
|
|
152
149
|
|
|
153
150
|
|
|
154
151
|
class SessionOrchestrator(IRunPlanUseCase):
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
@@ -10,9 +10,27 @@ import logging
|
|
|
10
10
|
import os
|
|
11
11
|
import sys
|
|
12
12
|
|
|
13
|
+
import typer
|
|
14
|
+
|
|
13
15
|
logger = logging.getLogger(__name__)
|
|
14
16
|
|
|
15
17
|
|
|
18
|
+
def emit_user_message(content: str) -> None:
|
|
19
|
+
"""Echo a user's message to the terminal under the "User Message:" label.
|
|
20
|
+
|
|
21
|
+
The single source of truth for the terminal-echo format, shared by the
|
|
22
|
+
initial-request echo, the post-execution user-message echo, and the
|
|
23
|
+
injected ``resume -m`` echo. Renders a blank separator, the
|
|
24
|
+
"User Message:" label, then the stripped content. Empty or
|
|
25
|
+
whitespace-only content is a no-op so an empty echo never becomes noise.
|
|
26
|
+
"""
|
|
27
|
+
if not content or not content.strip():
|
|
28
|
+
return
|
|
29
|
+
typer.secho("")
|
|
30
|
+
typer.secho("User Message:")
|
|
31
|
+
typer.secho(content.strip())
|
|
32
|
+
|
|
33
|
+
|
|
16
34
|
def restore_cooked_mode() -> None:
|
|
17
35
|
"""Restore the terminal's cooked mode (Unix only; no-op elsewhere).
|
|
18
36
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1288 → teddy_cli-0.1.17.dev1289}/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.dev1288 → teddy_cli-0.1.17.dev1289}/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
|