teddy-cli 0.1.17.dev1325__tar.gz → 0.1.17.dev1327__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.dev1325 → teddy_cli-0.1.17.dev1327}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -4
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -4
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/update_checker.py +14 -5
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/makefile.md +9 -3
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/pre-commit.md +1 -1
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/README.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
This module defines the inbound port for plan validation.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
# Placeholder content
|
|
6
|
-
# The Developer will implement this based on the design document.
|
|
7
|
-
# See: docs/core/ports/inbound/plan_validator.md
|
|
8
|
-
|
|
9
5
|
from abc import ABC, abstractmethod
|
|
10
6
|
from typing import Dict, Optional, Sequence
|
|
11
7
|
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
This module defines the outbound port for markdown report formatting.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
# Placeholder content
|
|
6
|
-
# The Developer will implement this based on the design document.
|
|
7
|
-
# See: docs/core/ports/outbound/markdown_report_formatter.md
|
|
8
|
-
|
|
9
5
|
from abc import ABC, abstractmethod
|
|
10
6
|
|
|
11
7
|
|
|
@@ -178,6 +178,8 @@ def write_update_cache(cache_path: Path, latest_version: str) -> None:
|
|
|
178
178
|
"""
|
|
179
179
|
Atomically write the cache file (write to temp file, rename).
|
|
180
180
|
Ensures the main thread never reads a partially written file.
|
|
181
|
+
The write is best-effort: a directory-creation or write failure is
|
|
182
|
+
logged at debug level and swallowed.
|
|
181
183
|
"""
|
|
182
184
|
import json
|
|
183
185
|
from datetime import datetime, timezone
|
|
@@ -186,9 +188,9 @@ def write_update_cache(cache_path: Path, latest_version: str) -> None:
|
|
|
186
188
|
"latest_version": latest_version,
|
|
187
189
|
"checked_at": datetime.now(timezone.utc).isoformat(),
|
|
188
190
|
}
|
|
189
|
-
cache_path.parent.mkdir(parents=True, exist_ok=True)
|
|
190
191
|
tmp_path = cache_path.with_suffix(".tmp")
|
|
191
192
|
try:
|
|
193
|
+
cache_path.parent.mkdir(parents=True, exist_ok=True)
|
|
192
194
|
tmp_path.write_text(
|
|
193
195
|
json.dumps(cache_data, indent=2), encoding="utf-8", newline=""
|
|
194
196
|
)
|
|
@@ -206,8 +208,15 @@ def background_check(cache_path: Path, index_url: str = PYPI_URL) -> None:
|
|
|
206
208
|
"""
|
|
207
209
|
Non-blocking background version check.
|
|
208
210
|
Intended to run in a daemon thread. Fetches latest version from PyPI
|
|
209
|
-
and writes it to cache.
|
|
211
|
+
and writes it to cache. Every error is swallowed and logged at debug
|
|
212
|
+
level, so a late cache write can never fail the owning process.
|
|
210
213
|
"""
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
+
import logging
|
|
215
|
+
|
|
216
|
+
try:
|
|
217
|
+
latest = fetch_latest_version(index_url)
|
|
218
|
+
if latest is not None:
|
|
219
|
+
write_update_cache(cache_path, latest)
|
|
220
|
+
except Exception as e:
|
|
221
|
+
logger = logging.getLogger(__name__)
|
|
222
|
+
logger.debug("background_check failed: %s", e)
|
|
@@ -169,7 +169,7 @@ Attribution is deterministic: SHA → run → run-level + per-job conclusion (ne
|
|
|
169
169
|
|
|
170
170
|
Key behaviors:
|
|
171
171
|
|
|
172
|
-
1. **Automatic SHA and BASE resolution.** `SHA` defaults to current `HEAD` (or `COMMIT=<sha>`), and `BASE` resolves per workflow to the most recent ancestor of `SHA` that carries a run for that workflow (bounded by `BASE_DEPTH`, default 50).
|
|
172
|
+
1. **Automatic SHA and BASE resolution.** `SHA` defaults to current `HEAD` (or `COMMIT=<sha>`), and `BASE` resolves per workflow to the most recent ancestor of `SHA` that carries a run for that workflow (bounded by `BASE_DEPTH`, default 50). An explicit `BASE=<sha>` pins the baseline verbatim and skips resolution; if the pinned commit carries no run for the workflow, the target fails safe as an unknown base.
|
|
173
173
|
2. **Registration lag is tolerated by a bounded retry.** CI can fail to register a run for the pushed SHA immediately. The target polls `gh run list --commit <sha>` up to `RETRY_POLLS × RETRY_SLEEP` (default 10 × 2s ≈ 20s) before attributing. It fails safe if the run never registers.
|
|
174
174
|
3. **No CI is non-blocking.** If the repository has no workflow files under `.github/workflows/` (`*.yml`/`*.yaml`), the target logs `No CI configured - skipping attribution` and exits 0.
|
|
175
175
|
|
|
@@ -180,6 +180,7 @@ RETRY_POLLS ?= 10
|
|
|
180
180
|
RETRY_SLEEP ?= 2
|
|
181
181
|
DETAIL_LINES ?= 50
|
|
182
182
|
BASE_DEPTH ?= 50
|
|
183
|
+
BASE ?=
|
|
183
184
|
|
|
184
185
|
ci-watch:
|
|
185
186
|
@SHA=$$(git rev-parse $${COMMIT:-HEAD}); \
|
|
@@ -223,8 +224,8 @@ ci-watch:
|
|
|
223
224
|
echo "$$WF: BLOCKING (run=$$NEWCONC) — unknown conclusion — fail-safe block"; \
|
|
224
225
|
STATUS=1; continue; \
|
|
225
226
|
fi; \
|
|
226
|
-
BASE=""; CUR="$$SHA"; DEPTH=0; \
|
|
227
|
-
while [ $$DEPTH -lt $(BASE_DEPTH) ]; do \
|
|
227
|
+
BASE="$(BASE)"; CUR="$$SHA"; DEPTH=0; \
|
|
228
|
+
while [ -z "$$BASE" ] && [ $$DEPTH -lt $(BASE_DEPTH) ]; do \
|
|
228
229
|
CUR=$$(git rev-parse "$$CUR~1" 2>/dev/null) || break; \
|
|
229
230
|
[ -n "$$CUR" ] || break; \
|
|
230
231
|
if [ -n "$$(gh run list --commit "$$CUR" --workflow "$$WF" --json databaseId --jq '.[0].databaseId')" ]; then \
|
|
@@ -237,6 +238,10 @@ ci-watch:
|
|
|
237
238
|
STATUS=1; continue; \
|
|
238
239
|
fi; \
|
|
239
240
|
OLD=$$(gh run list --commit "$$BASE" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
241
|
+
if [ -z "$$OLD" ]; then \
|
|
242
|
+
echo "$$WF: BLOCKING failure ($$NEWFAIL) — pinned base has no run (unknown base) — YOUR regression"; \
|
|
243
|
+
STATUS=1; continue; \
|
|
244
|
+
fi; \
|
|
240
245
|
OLDJOBS=$$(gh run view "$$OLD" --json jobs --jq '.jobs | length'); \
|
|
241
246
|
if [ "$$OLDJOBS" = "0" ]; then \
|
|
242
247
|
echo "$$WF: BLOCKING failure ($$NEWFAIL) — base run is job-less (invalid workflow, not green) — YOUR regression"; \
|
|
@@ -257,6 +262,7 @@ ci-watch:
|
|
|
257
262
|
**Usage:**
|
|
258
263
|
- `make ci-watch` (watches CI for current `HEAD`)
|
|
259
264
|
- `make ci-watch COMMIT=<sha>` (watches CI for a specific commit)
|
|
265
|
+
- `make ci-watch BASE=<sha>` (pins the comparison baseline to a commit)
|
|
260
266
|
|
|
261
267
|
## Remote Probing Protocol (RPP)
|
|
262
268
|
|
|
@@ -77,7 +77,7 @@ repos:
|
|
|
77
77
|
|
|
78
78
|
**Tip:** Pin exact `rev` tags so every teammate runs identical checks.
|
|
79
79
|
|
|
80
|
-
**Line endings:** The whitespace hooks (`trailing-whitespace`, `end-of-file-fixer`) fix trailing spaces and the missing final newline. They do NOT normalize LF versus CRLF. Add a committed `.gitattributes` with the rule `* text=auto eol=lf`. Git then stores and checks out text as LF on every platform. This rule applies to every clone and to unstaged files, so it is more robust than a hook.
|
|
80
|
+
**Line endings:** The whitespace hooks (`trailing-whitespace`, `end-of-file-fixer`) fix trailing spaces and the missing final newline. They do NOT normalize LF versus CRLF. Add a committed `.gitattributes` with the rule `* text=auto eol=lf`. Git then stores and checks out text as LF on every platform. This rule applies to every clone and to unstaged files, so it is more robust than a hook.
|
|
81
81
|
|
|
82
82
|
## 3. Install the hooks
|
|
83
83
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/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
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1325 → teddy_cli-0.1.17.dev1327}/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.dev1325 → teddy_cli-0.1.17.dev1327}/src/teddy_executor/resources/templates/ci.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|