teddy-cli 0.1.17.dev1256__tar.gz → 0.1.17.dev1258__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.dev1256 → teddy_cli-0.1.17.dev1258}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +51 -16
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/MRP.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/task-brief.md +0 -0
- {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1258"
|
|
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" }
|
|
@@ -18,7 +18,7 @@ from teddy_executor.core.ports.outbound.session_loop_guard import ISessionLoopGu
|
|
|
18
18
|
from teddy_executor.core.ports.outbound.config_service import IConfigService
|
|
19
19
|
from teddy_executor.core.ports.outbound.session_repository import ISessionRepository
|
|
20
20
|
from teddy_executor.core.utils.interrupt_guard import INTERRUPT_REASON, InterruptGuard
|
|
21
|
-
from teddy_executor.core.utils.string import slugify
|
|
21
|
+
from teddy_executor.core.utils.string import canonical_agent_name, slugify
|
|
22
22
|
from teddy_executor.adapters.inbound.cli_formatter import format_project_context
|
|
23
23
|
from teddy_executor.adapters.inbound.cli_helpers import (
|
|
24
24
|
echo_and_copy,
|
|
@@ -415,7 +415,7 @@ def _display_drift_notification(container: Container) -> list[str]:
|
|
|
415
415
|
config = container.resolve(IConfigService)
|
|
416
416
|
report = container.resolve(IInitUseCase).check_drift()
|
|
417
417
|
fired: list[str] = []
|
|
418
|
-
|
|
418
|
+
drift_lines: list[str] = []
|
|
419
419
|
|
|
420
420
|
if config.get_setting("checks.prompts", True) and report.prompts_drifted:
|
|
421
421
|
clause = _format_drift_clause(
|
|
@@ -425,7 +425,7 @@ def _display_drift_notification(container: Container) -> list[str]:
|
|
|
425
425
|
report.edited_prompts,
|
|
426
426
|
report.missing_prompts,
|
|
427
427
|
)
|
|
428
|
-
|
|
428
|
+
drift_lines.append(
|
|
429
429
|
typer.style(
|
|
430
430
|
f"ℹ {clause}. To update them, run: teddy init prompts",
|
|
431
431
|
fg=typer.colors.YELLOW,
|
|
@@ -441,7 +441,7 @@ def _display_drift_notification(container: Container) -> list[str]:
|
|
|
441
441
|
report.edited_templates,
|
|
442
442
|
report.missing_templates,
|
|
443
443
|
)
|
|
444
|
-
|
|
444
|
+
drift_lines.append(
|
|
445
445
|
typer.style(
|
|
446
446
|
f"ℹ {clause}. To update them, run: teddy init templates",
|
|
447
447
|
fg=typer.colors.YELLOW,
|
|
@@ -449,10 +449,12 @@ def _display_drift_notification(container: Container) -> list[str]:
|
|
|
449
449
|
)
|
|
450
450
|
fired.append("checks.templates")
|
|
451
451
|
|
|
452
|
-
if
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
452
|
+
if drift_lines:
|
|
453
|
+
# A single leading blank separates this block from the
|
|
454
|
+
# ``Checking configurations...`` line above it. The lines carry no
|
|
455
|
+
# trailing newline, so the shared disable-footer (emitted next) abuts
|
|
456
|
+
# the final drift line.
|
|
457
|
+
typer.echo("\n" + "\n".join(drift_lines))
|
|
456
458
|
|
|
457
459
|
return fired
|
|
458
460
|
|
|
@@ -508,11 +510,10 @@ def _display_update_notification(container: Container, cache_path: Path) -> list
|
|
|
508
510
|
command = "uv tool install teddy-cli --force"
|
|
509
511
|
else:
|
|
510
512
|
command = "uv tool upgrade teddy-cli"
|
|
511
|
-
typer.echo("") # blank separator ABOVE the notification block
|
|
512
513
|
typer.echo(
|
|
513
514
|
typer.style(
|
|
514
515
|
f"ℹ A new version {latest} is available. "
|
|
515
|
-
f"To upgrade, run: {command}",
|
|
516
|
+
f"To upgrade, run: {command}\n",
|
|
516
517
|
fg=typer.colors.YELLOW,
|
|
517
518
|
)
|
|
518
519
|
)
|
|
@@ -576,6 +577,7 @@ def handle_new_session( # noqa: PLR0913
|
|
|
576
577
|
)
|
|
577
578
|
)
|
|
578
579
|
_display_checks_footer(fired)
|
|
580
|
+
_echo_config_success(container, agent, model=model)
|
|
579
581
|
|
|
580
582
|
session_manager: ISessionManager = container.resolve(ISessionManager)
|
|
581
583
|
user_interactor: IUserInteractor = container.resolve(IUserInteractor)
|
|
@@ -623,6 +625,38 @@ def handle_new_session( # noqa: PLR0913
|
|
|
623
625
|
raise typer.Exit(code=1)
|
|
624
626
|
|
|
625
627
|
|
|
628
|
+
def _echo_config_success(
|
|
629
|
+
container: Container,
|
|
630
|
+
agent: Optional[str] = None,
|
|
631
|
+
model: Optional[str] = None,
|
|
632
|
+
actual_model: Optional[str] = None,
|
|
633
|
+
) -> None:
|
|
634
|
+
"""Retrieves and echoes the active model and agent configuration on success.
|
|
635
|
+
|
|
636
|
+
Args:
|
|
637
|
+
container: The DI container with resolved services.
|
|
638
|
+
agent: Optional agent name to display.
|
|
639
|
+
model: Optional model override from CLI. If provided, this takes
|
|
640
|
+
precedence over the config file value.
|
|
641
|
+
actual_model: Optional actual serving model from meta.yaml. If provided,
|
|
642
|
+
this takes precedence over the model parameter.
|
|
643
|
+
"""
|
|
644
|
+
config_service = container.resolve(IConfigService)
|
|
645
|
+
if actual_model:
|
|
646
|
+
resolved_model = actual_model
|
|
647
|
+
elif model:
|
|
648
|
+
resolved_model = model
|
|
649
|
+
else:
|
|
650
|
+
resolved_model = config_service.get_setting("llm.model", "unknown")
|
|
651
|
+
identity_lines: list[str] = []
|
|
652
|
+
if agent:
|
|
653
|
+
identity_lines.append(f"Agent: {canonical_agent_name(agent)}")
|
|
654
|
+
identity_lines.append(f"Model: {resolved_model}")
|
|
655
|
+
# A leading blank separates the identity block from whatever precedes it
|
|
656
|
+
# (``Checking configurations...`` or the drift block/footer).
|
|
657
|
+
typer.echo("\n" + "\n".join(identity_lines), err=True)
|
|
658
|
+
|
|
659
|
+
|
|
626
660
|
def _run_cli_preflight_check(
|
|
627
661
|
container: Container,
|
|
628
662
|
agent: Optional[str] = None,
|
|
@@ -993,8 +1027,9 @@ def _sync_and_display_session_meta(
|
|
|
993
1027
|
|
|
994
1028
|
latest_turn_path = session_manager.get_latest_turn(session_name)
|
|
995
1029
|
meta = repository.load_meta(latest_turn_path)
|
|
996
|
-
# Clear actual_model so
|
|
1030
|
+
# Clear actual_model so display falls through to current model (override or config)
|
|
997
1031
|
meta.pop("actual_model", None)
|
|
1032
|
+
_echo_config_success(container, agent=meta.get("agent_name"), model=model)
|
|
998
1033
|
|
|
999
1034
|
# Sync latest turn's meta.yaml with current config model/overrides
|
|
1000
1035
|
config_model = config_service.get_setting("llm.model", "unknown")
|
|
@@ -1056,15 +1091,15 @@ def handle_resume_session( # noqa: PLR0913
|
|
|
1056
1091
|
# 2. Resolve session name
|
|
1057
1092
|
session_name = _resolve_session_name(container, path)
|
|
1058
1093
|
|
|
1059
|
-
# 3. Display
|
|
1060
|
-
session_relative_path = str(Path(".teddy") / "sessions" / session_name)
|
|
1061
|
-
typer.echo(f"Resuming session: {session_relative_path}")
|
|
1062
|
-
|
|
1063
|
-
# 4. Display actual_model and sync config overrides
|
|
1094
|
+
# 3. Display actual_model and sync config overrides
|
|
1064
1095
|
_sync_and_display_session_meta(
|
|
1065
1096
|
container, session_name, model=model, api_key=api_key
|
|
1066
1097
|
)
|
|
1067
1098
|
|
|
1099
|
+
# 4. Display session path (below the Agent/Model identity block)
|
|
1100
|
+
session_relative_path = str(Path(".teddy") / "sessions" / session_name)
|
|
1101
|
+
typer.echo(f"\nResuming session: {session_relative_path}")
|
|
1102
|
+
|
|
1068
1103
|
# 5. Agent switch: if -a/--agent provided, update session agent permanently
|
|
1069
1104
|
if agent:
|
|
1070
1105
|
container.resolve(ISessionManager).set_session_agent(session_name, agent)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256 → teddy_cli-0.1.17.dev1258}/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
|
|
File without changes
|