teddy-cli 0.1.17.dev1349__tar.gz → 0.1.17.dev1351__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.dev1349 → teddy_cli-0.1.17.dev1351}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +9 -9
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +2 -18
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/project_context.py +1 -1
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/environment_inspector.py +2 -11
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/context_service.py +18 -7
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/README.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -727,7 +727,6 @@ def _echo_config_success(
|
|
|
727
727
|
container: Container,
|
|
728
728
|
agent: Optional[str] = None,
|
|
729
729
|
model: Optional[str] = None,
|
|
730
|
-
actual_model: Optional[str] = None,
|
|
731
730
|
) -> None:
|
|
732
731
|
"""Retrieves and echoes the active model and agent configuration on success.
|
|
733
732
|
|
|
@@ -736,13 +735,9 @@ def _echo_config_success(
|
|
|
736
735
|
agent: Optional agent name to display.
|
|
737
736
|
model: Optional model override from CLI. If provided, this takes
|
|
738
737
|
precedence over the config file value.
|
|
739
|
-
actual_model: Optional actual serving model from meta.yaml. If provided,
|
|
740
|
-
this takes precedence over the model parameter.
|
|
741
738
|
"""
|
|
742
739
|
config_service = container.resolve(IConfigService)
|
|
743
|
-
if
|
|
744
|
-
resolved_model = actual_model
|
|
745
|
-
elif model:
|
|
740
|
+
if model:
|
|
746
741
|
resolved_model = model
|
|
747
742
|
else:
|
|
748
743
|
resolved_model = config_service.get_setting("llm.model", "unknown")
|
|
@@ -1149,13 +1144,18 @@ def _sync_and_display_session_meta(
|
|
|
1149
1144
|
|
|
1150
1145
|
latest_turn_path = session_manager.get_latest_turn(session_name)
|
|
1151
1146
|
meta = repository.load_meta(latest_turn_path)
|
|
1152
|
-
|
|
1153
|
-
|
|
1147
|
+
|
|
1148
|
+
changed = False
|
|
1149
|
+
# Clear actual_model so display falls through to current model (override or config).
|
|
1150
|
+
# A removed key must count as a change so the clear reaches disk without an override.
|
|
1151
|
+
if "actual_model" in meta:
|
|
1152
|
+
meta.pop("actual_model", None)
|
|
1153
|
+
changed = True
|
|
1154
|
+
|
|
1154
1155
|
_echo_config_success(container, agent=agent or meta.get("agent_name"), model=model)
|
|
1155
1156
|
|
|
1156
1157
|
# Sync latest turn's meta.yaml with current config model/overrides
|
|
1157
1158
|
config_model = config_service.get_setting("llm.model", "unknown")
|
|
1158
|
-
changed = False
|
|
1159
1159
|
if model:
|
|
1160
1160
|
meta["model"] = model
|
|
1161
1161
|
changed = True
|
|
@@ -58,27 +58,11 @@ class SystemEnvironmentInspector(IEnvironmentInspector):
|
|
|
58
58
|
|
|
59
59
|
def get_git_status(self) -> Optional[str]:
|
|
60
60
|
"""
|
|
61
|
-
Gathers the current Git status of the working directory
|
|
61
|
+
Gathers the current Git status of the working directory in porcelain format.
|
|
62
62
|
"""
|
|
63
63
|
try:
|
|
64
64
|
result = self._run_func( # nosec B603 B607
|
|
65
|
-
["git", "status", "-
|
|
66
|
-
capture_output=True,
|
|
67
|
-
text=True,
|
|
68
|
-
check=True,
|
|
69
|
-
stdin=subprocess.DEVNULL,
|
|
70
|
-
)
|
|
71
|
-
return result.stdout.rstrip() if result.stdout else ""
|
|
72
|
-
except (subprocess.CalledProcessError, FileNotFoundError):
|
|
73
|
-
return None
|
|
74
|
-
|
|
75
|
-
def get_full_git_status(self) -> Optional[str]:
|
|
76
|
-
"""
|
|
77
|
-
Gathers the full Git status of the working directory (including branch info).
|
|
78
|
-
"""
|
|
79
|
-
try:
|
|
80
|
-
result = self._run_func( # nosec B603 B607
|
|
81
|
-
["git", "status"],
|
|
65
|
+
["git", "status", "--porcelain", "-b"],
|
|
82
66
|
capture_output=True,
|
|
83
67
|
text=True,
|
|
84
68
|
check=True,
|
|
@@ -38,7 +38,7 @@ class ProjectContext:
|
|
|
38
38
|
header: A string containing metadata about the context (e.g., CWD, OS).
|
|
39
39
|
content: The main body of the context (e.g., file tree and contents).
|
|
40
40
|
scoped_paths: A mapping of scope names (e.g., 'Turn', 'Session') to lists of file paths.
|
|
41
|
-
git_status: An optional string containing the output of 'git status -
|
|
41
|
+
git_status: An optional string containing the output of 'git status --porcelain -b'.
|
|
42
42
|
items: Structured list of context files and metadata.
|
|
43
43
|
agent_name: Name of the active agent.
|
|
44
44
|
system_prompt_tokens: Token count of the system prompt.
|
|
@@ -22,18 +22,9 @@ class IEnvironmentInspector(Protocol):
|
|
|
22
22
|
|
|
23
23
|
def get_git_status(self) -> Optional[str]:
|
|
24
24
|
"""
|
|
25
|
-
Gathers the current Git status of the working directory
|
|
25
|
+
Gathers the current Git status of the working directory in porcelain format.
|
|
26
26
|
|
|
27
27
|
Returns:
|
|
28
|
-
Optional[str]: The output of 'git status -
|
|
29
|
-
"""
|
|
30
|
-
...
|
|
31
|
-
|
|
32
|
-
def get_full_git_status(self) -> Optional[str]:
|
|
33
|
-
"""
|
|
34
|
-
Gathers the full Git status of the working directory (including branch info).
|
|
35
|
-
|
|
36
|
-
Returns:
|
|
37
|
-
Optional[str]: The output of 'git status' or None if not a git repo.
|
|
28
|
+
Optional[str]: The output of 'git status --porcelain -b', or None if not a git repo.
|
|
38
29
|
"""
|
|
39
30
|
...
|
|
@@ -53,8 +53,7 @@ class ContextService(IGetContextUseCase):
|
|
|
53
53
|
Gathers all project context information by orchestrating its dependencies.
|
|
54
54
|
"""
|
|
55
55
|
system_info = self._environment_inspector.get_environment_info()
|
|
56
|
-
|
|
57
|
-
full_git_status = self._environment_inspector.get_full_git_status()
|
|
56
|
+
git_status = self._environment_inspector.get_git_status()
|
|
58
57
|
repo_tree = self._repo_tree_generator.generate_tree()
|
|
59
58
|
|
|
60
59
|
scoped_paths, all_resolved_paths = self._resolve_scoped_paths(context_files)
|
|
@@ -101,7 +100,7 @@ class ContextService(IGetContextUseCase):
|
|
|
101
100
|
web_cache = {}
|
|
102
101
|
|
|
103
102
|
content = self._format_content(
|
|
104
|
-
repo_tree, scoped_paths, file_contents,
|
|
103
|
+
repo_tree, scoped_paths, file_contents, git_status
|
|
105
104
|
)
|
|
106
105
|
content_tokens = (
|
|
107
106
|
self._llm_client.get_text_token_count(content) if include_tokens else 0
|
|
@@ -111,9 +110,9 @@ class ContextService(IGetContextUseCase):
|
|
|
111
110
|
header=self._format_header(system_info, current_turn),
|
|
112
111
|
content=content,
|
|
113
112
|
scoped_paths=scoped_paths,
|
|
114
|
-
git_status=
|
|
113
|
+
git_status=git_status,
|
|
115
114
|
items=self._collect_items(
|
|
116
|
-
scoped_paths, file_contents,
|
|
115
|
+
scoped_paths, file_contents, git_status, include_tokens
|
|
117
116
|
),
|
|
118
117
|
agent_name=agent_name,
|
|
119
118
|
total_window=total_window,
|
|
@@ -301,7 +300,7 @@ class ContextService(IGetContextUseCase):
|
|
|
301
300
|
return token_counts
|
|
302
301
|
|
|
303
302
|
def _parse_git_status(self, git_status: Optional[str]) -> Dict[str, str]:
|
|
304
|
-
"""Parses git status
|
|
303
|
+
"""Parses porcelain git status output into a map of path -> status code."""
|
|
305
304
|
if not git_status:
|
|
306
305
|
return {}
|
|
307
306
|
|
|
@@ -309,10 +308,17 @@ class ContextService(IGetContextUseCase):
|
|
|
309
308
|
min_line_length = 4
|
|
310
309
|
status_map = {}
|
|
311
310
|
for line in git_status.splitlines():
|
|
311
|
+
# The porcelain branch header carries no file status.
|
|
312
|
+
if line.startswith("##"):
|
|
313
|
+
continue
|
|
312
314
|
if len(line) >= min_line_length:
|
|
313
315
|
code = line[:2].strip()
|
|
314
316
|
path = line[3:].strip()
|
|
315
317
|
|
|
318
|
+
# A rename line reads "old -> new"; key the badge by the new path.
|
|
319
|
+
if " -> " in path:
|
|
320
|
+
path = path.split(" -> ", 1)[1]
|
|
321
|
+
|
|
316
322
|
# Guideline: Map ?? to U (Untracked)
|
|
317
323
|
if code == "??":
|
|
318
324
|
code = "U"
|
|
@@ -356,9 +362,14 @@ class ContextService(IGetContextUseCase):
|
|
|
356
362
|
workspace_paths = [p for p in all_paths if not is_session_file_path(p)]
|
|
357
363
|
session_paths = [p for p in all_paths if is_session_file_path(p)]
|
|
358
364
|
|
|
365
|
+
git_status_body = (
|
|
366
|
+
embed_in_fence(git_status, "")
|
|
367
|
+
if isinstance(git_status, str) and git_status
|
|
368
|
+
else ""
|
|
369
|
+
)
|
|
359
370
|
content_parts = [
|
|
360
371
|
"\n## Git Status",
|
|
361
|
-
|
|
372
|
+
git_status_body,
|
|
362
373
|
"\n## Project Structure",
|
|
363
374
|
f"```\n{repo_tree}\n```",
|
|
364
375
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/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.dev1349 → teddy_cli-0.1.17.dev1351}/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
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/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.dev1349 → teddy_cli-0.1.17.dev1351}/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
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/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.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1349 → teddy_cli-0.1.17.dev1351}/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.dev1349 → teddy_cli-0.1.17.dev1351}/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
|