teddy-cli 0.1.17.dev1205__tar.gz → 0.1.17.dev1207__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.dev1205 → teddy_cli-0.1.17.dev1207}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/prompt_manager.py +18 -14
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_service.py +29 -9
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/MRP.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/resources/templates/task-brief.md +0 -0
- {teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1207"
|
|
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" }
|
|
@@ -95,20 +95,14 @@ class PromptManager(IPromptManager):
|
|
|
95
95
|
return None
|
|
96
96
|
|
|
97
97
|
def _resolve_agent_prompt_content(self, agent_name: str, turn_path: Path) -> str:
|
|
98
|
-
"""Resolves the agent-specific prompt XML from the
|
|
98
|
+
"""Resolves the agent-specific prompt XML from the canonical
|
|
99
|
+
``.teddy/prompts/`` directory (the user-editable source).
|
|
99
100
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
Returns an empty string (with a warning) when no prompt file is found,
|
|
102
|
+
preserving the graceful-degradation contract. Session-root prompts are
|
|
103
|
+
resolved by the caller (``fetch_system_prompt``), which returns them
|
|
104
|
+
verbatim rather than re-composing them.
|
|
103
105
|
"""
|
|
104
|
-
# 1. Try Session-Root override (Current standard)
|
|
105
|
-
session_root_prompt = self._find_prompt_file(
|
|
106
|
-
turn_path.parent.as_posix(), agent_name
|
|
107
|
-
)
|
|
108
|
-
if session_root_prompt:
|
|
109
|
-
return self._file_system_manager.read_file(session_root_prompt)
|
|
110
|
-
|
|
111
|
-
# 2. Try .teddy/prompts/ (canonical source, user-editable)
|
|
112
106
|
teddy_prompt_dir = (
|
|
113
107
|
turn_path.parent.parent.parent.parent / ".teddy" / "prompts"
|
|
114
108
|
).as_posix()
|
|
@@ -117,9 +111,8 @@ class PromptManager(IPromptManager):
|
|
|
117
111
|
return self._file_system_manager.read_file(teddy_prompt_path)
|
|
118
112
|
|
|
119
113
|
logging.getLogger(__name__).warning(
|
|
120
|
-
"PromptManager: Failed to resolve system prompt for agent '%s' (searched %s
|
|
114
|
+
"PromptManager: Failed to resolve system prompt for agent '%s' (searched %s)",
|
|
121
115
|
agent_name,
|
|
122
|
-
session_root_prompt,
|
|
123
116
|
teddy_prompt_path,
|
|
124
117
|
)
|
|
125
118
|
return ""
|
|
@@ -144,6 +137,17 @@ class PromptManager(IPromptManager):
|
|
|
144
137
|
return resource.read_text(encoding="utf-8")
|
|
145
138
|
|
|
146
139
|
def fetch_system_prompt(self, agent_name: str, turn_path: Path) -> str:
|
|
140
|
+
# Option A: the session-root prompt file IS the composed system prompt
|
|
141
|
+
# (written by SessionService at session creation / agent switch). Return
|
|
142
|
+
# it verbatim -- never re-compose, to avoid a duplicate header and MRP.
|
|
143
|
+
session_root_prompt = self._find_prompt_file(
|
|
144
|
+
turn_path.parent.as_posix(), agent_name
|
|
145
|
+
)
|
|
146
|
+
if session_root_prompt:
|
|
147
|
+
return self._file_system_manager.read_file(session_root_prompt)
|
|
148
|
+
|
|
149
|
+
# Lazy-compose fallback (legacy session or manually deleted file):
|
|
150
|
+
# assemble from the canonical ``.teddy/prompts/`` source.
|
|
147
151
|
content = self._resolve_agent_prompt_content(agent_name, turn_path)
|
|
148
152
|
if not content:
|
|
149
153
|
# No agent prompt resolved: preserve the historical empty-string
|
|
@@ -61,10 +61,20 @@ class SessionService(ISessionManager):
|
|
|
61
61
|
f"{session_root}/session.context", clean_context
|
|
62
62
|
)
|
|
63
63
|
|
|
64
|
-
# 2. Prompt population —
|
|
65
|
-
|
|
64
|
+
# 2. Prompt population — compose the full system prompt and persist it.
|
|
65
|
+
# `_resolve_agent_prompt` validates the agent and resolves the target
|
|
66
|
+
# filename; `PromptManager.fetch_system_prompt` assembles the composed
|
|
67
|
+
# system prompt (agent-name header + agent XML + MRP). Because the
|
|
68
|
+
# session root is still empty here, this forces the compose path from
|
|
69
|
+
# `.teddy/prompts/`. Persisting the composed value makes the session
|
|
70
|
+
# root hold the exact prompt sent to the model, which later turns reuse
|
|
71
|
+
# verbatim (Option A).
|
|
72
|
+
prompt_filename, _raw_prompt = self._resolve_agent_prompt(options.agent_name)
|
|
73
|
+
composed_prompt = self._prompt_manager.fetch_system_prompt(
|
|
74
|
+
options.agent_name, Path(turn_dir)
|
|
75
|
+
)
|
|
66
76
|
self._file_system_manager.write_file(
|
|
67
|
-
f"{session_root}/{prompt_filename}",
|
|
77
|
+
f"{session_root}/{prompt_filename}", composed_prompt
|
|
68
78
|
)
|
|
69
79
|
|
|
70
80
|
# 3. Metadata persistence
|
|
@@ -524,9 +534,10 @@ class SessionService(ISessionManager):
|
|
|
524
534
|
|
|
525
535
|
def set_session_agent(self, session_name: str, agent_name: str) -> None:
|
|
526
536
|
"""
|
|
527
|
-
Permanently changes the session's agent. Updates meta.yaml
|
|
528
|
-
|
|
529
|
-
|
|
537
|
+
Permanently changes the session's agent. Updates meta.yaml with the
|
|
538
|
+
new agent_name and replaces the session's prompt XML with the
|
|
539
|
+
RECOMPOSED system prompt for the new agent (agent-name header + agent
|
|
540
|
+
XML + MRP), so later turns reuse it verbatim (Option A).
|
|
530
541
|
"""
|
|
531
542
|
session_root = f".teddy/sessions/{session_name}"
|
|
532
543
|
latest_turn_path = self.get_latest_turn(session_name)
|
|
@@ -536,12 +547,21 @@ class SessionService(ISessionManager):
|
|
|
536
547
|
meta["agent_name"] = agent_name
|
|
537
548
|
self.save_turn_meta(latest_turn_path, meta)
|
|
538
549
|
|
|
539
|
-
# 2.
|
|
540
|
-
|
|
550
|
+
# 2. Resolve the target filename (validates the agent) and recompose the
|
|
551
|
+
# full system prompt. Option A: switching agents must recompose
|
|
552
|
+
# (agent-name header + agent XML + MRP) via the prompt manager and
|
|
553
|
+
# persist THAT composed value -- never the raw `.teddy/prompts/`
|
|
554
|
+
# content -- so later turns reuse it verbatim. Because the session
|
|
555
|
+
# root does not yet hold the new agent's file, the prompt manager
|
|
556
|
+
# takes the lazy-compose path from `.teddy/prompts/`.
|
|
557
|
+
prompt_filename, _raw_prompt = self._resolve_agent_prompt(agent_name)
|
|
558
|
+
composed_prompt = self._prompt_manager.fetch_system_prompt(
|
|
559
|
+
agent_name, Path(latest_turn_path)
|
|
560
|
+
)
|
|
541
561
|
|
|
542
562
|
# 3. Write prompt to session root (overwrite any existing file with same stem)
|
|
543
563
|
self._file_system_manager.write_file(
|
|
544
|
-
f"{session_root}/{prompt_filename}",
|
|
564
|
+
f"{session_root}/{prompt_filename}", composed_prompt
|
|
545
565
|
)
|
|
546
566
|
|
|
547
567
|
# 4. Remove stale prompt files (any file in session root whose stem matches a
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1205 → teddy_cli-0.1.17.dev1207}/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.dev1205 → teddy_cli-0.1.17.dev1207}/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
|