teddy-cli 0.1.17.dev1187__tar.gz → 0.1.17.dev1189__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.dev1187 → teddy_cli-0.1.17.dev1189}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/prompt_manager.py +62 -3
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/MRP.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/resources/templates/task-brief.md +0 -0
- {teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1189"
|
|
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" }
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
from importlib import resources
|
|
2
|
+
import logging
|
|
1
3
|
from pathlib import Path
|
|
2
4
|
from typing import Any, Dict, Optional
|
|
5
|
+
|
|
3
6
|
import yaml
|
|
7
|
+
|
|
4
8
|
from teddy_executor.core.ports.outbound.file_system_manager import IFileSystemManager
|
|
5
9
|
from teddy_executor.core.ports.outbound.user_interactor import IUserInteractor
|
|
6
10
|
from teddy_executor.core.ports.outbound.prompt_manager import IPromptManager
|
|
7
11
|
from teddy_executor.core.utils.serialization import scrub_dict_for_serialization
|
|
8
12
|
|
|
13
|
+
# The bundled Markdown Response Protocol base prompt. It lives OUTSIDE
|
|
14
|
+
# ``config/prompts/`` so it is never grouped with the user-overridable agent
|
|
15
|
+
# prompts, and is loaded as a package resource rather than via the file system
|
|
16
|
+
# port.
|
|
17
|
+
_MRP_PACKAGE = "teddy_executor.resources"
|
|
18
|
+
_MRP_FILENAME = "MRP.xml"
|
|
19
|
+
|
|
9
20
|
|
|
10
21
|
class PromptManager(IPromptManager):
|
|
11
22
|
"""
|
|
@@ -16,9 +27,15 @@ class PromptManager(IPromptManager):
|
|
|
16
27
|
self,
|
|
17
28
|
file_system_manager: IFileSystemManager,
|
|
18
29
|
user_interactor: IUserInteractor = None, # type: ignore
|
|
30
|
+
mrp_resource_root: Any = None,
|
|
19
31
|
):
|
|
20
32
|
self._file_system_manager = file_system_manager
|
|
21
33
|
self._user_interactor = user_interactor
|
|
34
|
+
# Injectable resource seam: a Traversable (or any object exposing the
|
|
35
|
+
# ``Traversable`` contract — ``is_file`` + ``read_text``) that anchors
|
|
36
|
+
# ``MRP.xml``. When ``None``, the bundled package resource is resolved
|
|
37
|
+
# lazily. Tests inject a real ``pathlib.Path`` to avoid global patching.
|
|
38
|
+
self._mrp_resource_root = mrp_resource_root
|
|
22
39
|
|
|
23
40
|
def get_prompt_content(self, agent_name: str) -> Optional[str]:
|
|
24
41
|
"""Synchronously retrieves the raw content of an agent prompt."""
|
|
@@ -77,7 +94,13 @@ class PromptManager(IPromptManager):
|
|
|
77
94
|
return f"{directory}/{f}"
|
|
78
95
|
return None
|
|
79
96
|
|
|
80
|
-
def
|
|
97
|
+
def _resolve_agent_prompt_content(self, agent_name: str, turn_path: Path) -> str:
|
|
98
|
+
"""Resolves the agent-specific prompt XML from the filesystem hierarchy.
|
|
99
|
+
|
|
100
|
+
Searches the session root first, then the canonical ``.teddy/prompts/``
|
|
101
|
+
directory. Returns an empty string (with a warning) when no prompt file
|
|
102
|
+
is found, preserving the graceful-degradation contract.
|
|
103
|
+
"""
|
|
81
104
|
# 1. Try Session-Root override (Current standard)
|
|
82
105
|
session_root_prompt = self._find_prompt_file(
|
|
83
106
|
turn_path.parent.as_posix(), agent_name
|
|
@@ -93,8 +116,6 @@ class PromptManager(IPromptManager):
|
|
|
93
116
|
if teddy_prompt_path:
|
|
94
117
|
return self._file_system_manager.read_file(teddy_prompt_path)
|
|
95
118
|
|
|
96
|
-
import logging
|
|
97
|
-
|
|
98
119
|
logging.getLogger(__name__).warning(
|
|
99
120
|
"PromptManager: Failed to resolve system prompt for agent '%s' (searched %s and %s)",
|
|
100
121
|
agent_name,
|
|
@@ -103,6 +124,44 @@ class PromptManager(IPromptManager):
|
|
|
103
124
|
)
|
|
104
125
|
return ""
|
|
105
126
|
|
|
127
|
+
def _load_mrp_base_prompt(self) -> str:
|
|
128
|
+
"""Loads the bundled Markdown Response Protocol base prompt.
|
|
129
|
+
|
|
130
|
+
Uses only the ``Traversable`` contract (``is_file`` + ``read_text``) so
|
|
131
|
+
it works both in a source checkout (``pathlib.Path``) and under a
|
|
132
|
+
zip/wheel install (``zipfile.Path``). Fails fast when the resource is
|
|
133
|
+
absent to prevent silent protocol degradation.
|
|
134
|
+
"""
|
|
135
|
+
root = self._mrp_resource_root
|
|
136
|
+
if root is None:
|
|
137
|
+
root = resources.files(_MRP_PACKAGE)
|
|
138
|
+
resource = root / _MRP_FILENAME
|
|
139
|
+
if not resource.is_file():
|
|
140
|
+
raise FileNotFoundError(
|
|
141
|
+
f"Bundled MRP base prompt not found at {resource}. "
|
|
142
|
+
f"The package resource '{_MRP_PACKAGE}/{_MRP_FILENAME}' is missing."
|
|
143
|
+
)
|
|
144
|
+
return resource.read_text(encoding="utf-8")
|
|
145
|
+
|
|
146
|
+
def fetch_system_prompt(self, agent_name: str, turn_path: Path) -> str:
|
|
147
|
+
content = self._resolve_agent_prompt_content(agent_name, turn_path)
|
|
148
|
+
if not content:
|
|
149
|
+
# No agent prompt resolved: preserve the historical empty-string
|
|
150
|
+
# contract (no header, no MRP) rather than fabricating a prompt.
|
|
151
|
+
return ""
|
|
152
|
+
|
|
153
|
+
assembled = f"Agent Name: {agent_name.capitalize()}\n\n{content}"
|
|
154
|
+
|
|
155
|
+
# Legacy compatibility: a resolved prompt that already carries its own
|
|
156
|
+
# response format (e.g. a customized ``.teddy/prompts/`` override) is
|
|
157
|
+
# returned without the shared MRP block, but keeps the agent-name header.
|
|
158
|
+
if "<response_format>" in content:
|
|
159
|
+
return assembled
|
|
160
|
+
|
|
161
|
+
# Both the agent-specific XML and the MRP block live inside the
|
|
162
|
+
# assembled ``<system>`` prompt; MRP is appended AFTER the agent content.
|
|
163
|
+
return f"{assembled}\n\n{self._load_mrp_base_prompt()}"
|
|
164
|
+
|
|
106
165
|
def log_telemetry(self, token_count: Any, turn_cost: Any) -> float:
|
|
107
166
|
def safe_float(v: Any, default: float = 0.0) -> float:
|
|
108
167
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/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
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/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
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1187 → teddy_cli-0.1.17.dev1189}/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.dev1187 → teddy_cli-0.1.17.dev1189}/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
|