teddy-cli 0.1.17.dev1258__tar.gz → 0.1.17.dev1259__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.dev1258 → teddy_cli-0.1.17.dev1259}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +46 -29
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/MRP.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/resources/templates/task-brief.md +0 -0
- {teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1259"
|
|
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" }
|
|
@@ -249,7 +249,48 @@ def _determine_session_name(name: Optional[str], message: Optional[str]) -> str:
|
|
|
249
249
|
return "session-auto"
|
|
250
250
|
|
|
251
251
|
|
|
252
|
-
def
|
|
252
|
+
def _resolve_initial_turn(session_manager: ISessionManager, session_name: str) -> int:
|
|
253
|
+
"""Resolves the process-relative turn baseline for the guardrails.
|
|
254
|
+
|
|
255
|
+
get_latest_turn returns a path string whose folder name is the turn ID. A
|
|
256
|
+
fresh session seeds turn 01 before the loop starts, so the baseline is 0; a
|
|
257
|
+
resume's latest turn is the last completed turn, so the baseline is that
|
|
258
|
+
turn. Non-numeric names (or test doubles) fall back to 0.
|
|
259
|
+
"""
|
|
260
|
+
latest_turn_path = session_manager.get_latest_turn(session_name)
|
|
261
|
+
try:
|
|
262
|
+
latest_turn = int(Path(latest_turn_path).name) if latest_turn_path else 0
|
|
263
|
+
return max(0, latest_turn - 1) if latest_turn_path else 0
|
|
264
|
+
except (ValueError, TypeError):
|
|
265
|
+
# Handle non-numeric turn names or MagicMocks in tests
|
|
266
|
+
return 0
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
def _emit_guard_termination(guard_reason: Optional[str]) -> None:
|
|
270
|
+
"""Prints a guardrail termination reason: first line red, remainder plain."""
|
|
271
|
+
reason = guard_reason or "YOLO guardrail limit reached."
|
|
272
|
+
lines = reason.lstrip("\n").split("\n", 1)
|
|
273
|
+
typer.secho("")
|
|
274
|
+
typer.secho(lines[0], fg=typer.colors.RED)
|
|
275
|
+
if len(lines) > 1:
|
|
276
|
+
typer.secho(lines[1])
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def _should_exit_pipeline(pipeline: bool, report: Any) -> bool:
|
|
280
|
+
"""True when a pipeline run's report carries a MESSAGE action to exit on.
|
|
281
|
+
|
|
282
|
+
Short-circuits on ``not pipeline`` so a non-pipeline run never touches
|
|
283
|
+
report.action_logs (mirroring the original guard order).
|
|
284
|
+
"""
|
|
285
|
+
if not pipeline or not report.action_logs:
|
|
286
|
+
return False
|
|
287
|
+
return any(
|
|
288
|
+
(getattr(log_entry, "action_type", None) or "").upper() == "MESSAGE"
|
|
289
|
+
for log_entry in report.action_logs
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
def _orchestrate_session_loop( # noqa: PLR0913
|
|
253
294
|
container: Container,
|
|
254
295
|
session_name: str,
|
|
255
296
|
interactive: bool,
|
|
@@ -265,20 +306,7 @@ def _orchestrate_session_loop(
|
|
|
265
306
|
session_manager = container.resolve(ISessionManager)
|
|
266
307
|
|
|
267
308
|
# Resolve initial state for process-relative guardrails
|
|
268
|
-
|
|
269
|
-
try:
|
|
270
|
-
# get_latest_turn returns a path string; the turn ID is the folder name.
|
|
271
|
-
# For a fresh session, create_session seeds turn 01 (the initial request)
|
|
272
|
-
# BEFORE the loop starts, so the latest turn = 1. The loop then processes
|
|
273
|
-
# turn 01 again (turn_count starts at 1). Subtracting 1 makes the baseline
|
|
274
|
-
# 0 for fresh sessions so delta after turn 01 = 1.
|
|
275
|
-
# For resume, the latest turn is the last completed turn, and the loop
|
|
276
|
-
# processes the NEXT turn (turn_count = latest + 1), so delta is correct.
|
|
277
|
-
latest_turn = int(Path(latest_turn_path).name) if latest_turn_path else 0
|
|
278
|
-
initial_turn = max(0, latest_turn - 1) if latest_turn_path else 0
|
|
279
|
-
except (ValueError, TypeError):
|
|
280
|
-
# Handle non-numeric turn names or MagicMocks in tests
|
|
281
|
-
initial_turn = 0
|
|
309
|
+
initial_turn = _resolve_initial_turn(session_manager, session_name)
|
|
282
310
|
|
|
283
311
|
# Resolve initial cost for process-relative guardrails
|
|
284
312
|
initial_cost = session_manager.get_cumulative_cost(session_name)
|
|
@@ -338,23 +366,12 @@ def _orchestrate_session_loop(
|
|
|
338
366
|
turn_count, cumulative_cost, interactive
|
|
339
367
|
)
|
|
340
368
|
if not should_continue:
|
|
341
|
-
|
|
342
|
-
lines = reason.lstrip("\n").split("\n", 1)
|
|
343
|
-
typer.secho("")
|
|
344
|
-
typer.secho(lines[0], fg=typer.colors.RED)
|
|
345
|
-
if len(lines) > 1:
|
|
346
|
-
typer.secho(lines[1])
|
|
369
|
+
_emit_guard_termination(guard_reason)
|
|
347
370
|
break
|
|
348
371
|
|
|
349
372
|
# Pipeline mode: exit cleanly after the first ## Message
|
|
350
|
-
if pipeline
|
|
351
|
-
|
|
352
|
-
action_type = getattr(log_entry, "action_type", None) or ""
|
|
353
|
-
if action_type.upper() == "MESSAGE":
|
|
354
|
-
break # break inner for
|
|
355
|
-
else:
|
|
356
|
-
continue # no MESSAGE found, continue outer loop
|
|
357
|
-
break # MESSAGE found, exit session loop
|
|
373
|
+
if _should_exit_pipeline(pipeline, report):
|
|
374
|
+
break
|
|
358
375
|
except KeyboardInterrupt:
|
|
359
376
|
# Immediate-exit semantics (Task Brief): Ctrl+C while nothing is in
|
|
360
377
|
# flight (prompts, planning) terminates the session with a notice —
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1258 → teddy_cli-0.1.17.dev1259}/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.dev1258 → teddy_cli-0.1.17.dev1259}/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
|