teddy-cli 0.1.17.dev1268__tar.gz → 0.1.17.dev1269__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.dev1268 → teddy_cli-0.1.17.dev1269}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/MRP.xml +1 -1
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/makefile.md +34 -10
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/pre-commit.md +2 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/resources/templates/task-brief.md +0 -0
- {teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1269"
|
|
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" }
|
|
@@ -52,7 +52,7 @@ NOTES:
|
|
|
52
52
|
2. Commit Message: Use Conventional Commits '<type>(<scope>): <description>' wrapped in single quotes. Use imperative mood. Append ! for breaking changes.
|
|
53
53
|
3. Execution: Run `make commit '<type>(<scope>): <description>'` to stage, run the local pre-commit hooks, and commit. `make commit` stages ALL local changes, including currently unstaged ones (`git add .`). The target commits WITHOUT `--no-verify`, so Git's own pre-commit hook is a real local gate; the post-commit test gate always runs and is unaffected.
|
|
54
54
|
4. Post-conditions: All tests MUST pass — the post-commit hook runs the full suite and reverts the commit on failure; this gate is unskippable and MUST NEVER be bypassed. The pre-commit stage is advisory (its failures do not block the local commit), but if it reported non-trivial quality-gate issues (e.g. file length), you MUST make a follow-up cleanup commit that resolves them before resuming feature work. Triage any resulting `[DEBT]` per the Technical Debt Triage policy — there is no `## Technical Debt` holding pen.
|
|
55
|
-
5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase onto the remote, push, and
|
|
55
|
+
5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase onto the remote, push, and report the CI results. `make push` answers ONE question only: did this push turn a BLOCKING gate red? The pushed RUN's own conclusion is authoritative — it already folds in `continue-on-error`, so a non-blocking job (e.g. the CI `Quality Checks` job) can NEVER block the session. Only when the run-level conclusion is `failure` does attribution run: the base run (`origin/main` before the push) is classified as green, red, job-less, or absent, and a base that exists but is job-less is NOT green. A failure your push introduced (base green/absent/job-less -> new red) is YOUR regression (exit 1, fix before concluding); a failure already on the base (base red -> new red) is pre-existing (report and continue). Tests MUST always be fixed. A non-blocking quality result MUST be triaged per the Technical Debt Triage policy — fixed in-flight or explicitly scheduled into a slice or milestone — and MUST NOT be silently accepted.
|
|
56
56
|
</rule>
|
|
57
57
|
|
|
58
58
|
<rule n="7" name="Standardized Plan Types">
|
|
@@ -128,14 +128,16 @@ commit:
|
|
|
128
128
|
|
|
129
129
|
## Push (Deferred to Conclusion)
|
|
130
130
|
|
|
131
|
-
`make push` runs `git pull --rebase`, captures the base and the pushed SHA, pushes, then discovers **every** CI run for the pushed SHA (`gh run list --commit <sha>`) and waits for and reports each workflow with its jobs. It
|
|
131
|
+
`make push` runs `git pull --rebase`, captures the base and the pushed SHA, pushes, then discovers **every** CI run for the pushed SHA (`gh run list --commit <sha>`) and waits for and reports each workflow with its jobs. It answers ONE question: **did this push turn a BLOCKING gate red?**
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
The pushed RUN's own conclusion is authoritative: it already folds in `continue-on-error`, so a **non-blocking** job (e.g. the CI `Quality Checks` job) can NEVER block the session — it is reported as a triage item instead. Only when the run-level conclusion is `failure` does attribution run, comparing the pushed run's failing-JOB set against the base run's:
|
|
134
|
+
|
|
135
|
+
- **base green/absent/job-less → new red** = your regression → **exit 1** (fix before concluding).
|
|
134
136
|
- **base red → new red (same jobs)** = pre-existing → **report and exit 0** (do not wait, do not duplicate the fix).
|
|
135
|
-
- **all green** → PASSED
|
|
136
|
-
- **
|
|
137
|
+
- **all green / non-blocking** → PASSED → **exit 0**.
|
|
138
|
+
- **job-less base** → NOT green: a base run that exists but carries zero jobs (an invalid-workflow failure) is treated as an unknown base and fails safe (block).
|
|
137
139
|
|
|
138
|
-
Attribution is deterministic: SHA → run → per-job conclusion (never "the latest run").
|
|
140
|
+
Attribution is deterministic: SHA → run → run-level + per-job conclusion (never "the latest run").
|
|
139
141
|
|
|
140
142
|
Three behaviors make the attribution trustworthy:
|
|
141
143
|
|
|
@@ -172,14 +174,36 @@ push:
|
|
|
172
174
|
fi; \
|
|
173
175
|
for WF in $$WFS; do \
|
|
174
176
|
NEW=$$(gh run list --commit "$$SHA" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
175
|
-
OLD=$$(gh run list --commit "$$BASE" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
176
177
|
gh run watch "$$NEW" --exit-status >/dev/null 2>&1 || true; \
|
|
178
|
+
NEWCONC=$$(gh run view "$$NEW" --json conclusion --jq '.conclusion'); \
|
|
177
179
|
NEWFAIL=$$(gh run view "$$NEW" --json jobs --jq '[.jobs[] | select(.conclusion=="failure") | .name] | sort | join(",")'); \
|
|
178
|
-
|
|
179
|
-
if [ -
|
|
180
|
+
NEWSTEPS=$$(gh run view "$$NEW" --json jobs --jq '[.jobs[] | select(.conclusion=="failure") | .steps[]? | select(.conclusion=="failure") | .name] | sort | join(", ")'); \
|
|
181
|
+
if [ -n "$$NEWSTEPS" ]; then echo "$$WF: failing step(s): $$NEWSTEPS"; fi; \
|
|
182
|
+
if [ "$$NEWCONC" != "failure" ]; then \
|
|
183
|
+
if [ -n "$$NEWFAIL" ]; then \
|
|
184
|
+
echo "$$WF: PASSED (run=$$NEWCONC) — non-blocking failure(s) [$$NEWFAIL] — triage, does not block"; \
|
|
185
|
+
else \
|
|
186
|
+
echo "$$WF: PASSED"; \
|
|
187
|
+
fi; \
|
|
188
|
+
continue; \
|
|
189
|
+
fi; \
|
|
190
|
+
OLD=$$(gh run list --commit "$$BASE" --workflow "$$WF" --json databaseId --jq '.[0].databaseId'); \
|
|
191
|
+
if [ -z "$$OLD" ]; then \
|
|
192
|
+
echo "$$WF: BLOCKING failure ($$NEWFAIL) — base has no run (unknown base) — YOUR regression"; \
|
|
193
|
+
STATUS=1; continue; \
|
|
194
|
+
fi; \
|
|
195
|
+
OLDJOBS=$$(gh run view "$$OLD" --json jobs --jq '.jobs | length'); \
|
|
196
|
+
if [ "$$OLDJOBS" = "0" ]; then \
|
|
197
|
+
echo "$$WF: BLOCKING failure ($$NEWFAIL) — base run is job-less (invalid workflow, not green) — YOUR regression"; \
|
|
198
|
+
STATUS=1; continue; \
|
|
199
|
+
fi; \
|
|
180
200
|
OLDFAIL=$$(gh run view "$$OLD" --json jobs --jq '[.jobs[] | select(.conclusion=="failure") | .name] | sort | join(",")'); \
|
|
181
|
-
if [ "$$NEWFAIL" = "$$OLDFAIL" ]; then
|
|
182
|
-
|
|
201
|
+
if [ "$$NEWFAIL" = "$$OLDFAIL" ]; then \
|
|
202
|
+
echo "$$WF: pre-existing BLOCKING failure ($$NEWFAIL) — not yours"; \
|
|
203
|
+
else \
|
|
204
|
+
echo "$$WF: BLOCKING failure ($$NEWFAIL) — YOUR regression"; \
|
|
205
|
+
STATUS=1; \
|
|
206
|
+
fi; \
|
|
183
207
|
done; \
|
|
184
208
|
exit $$STATUS
|
|
185
209
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1268 → teddy_cli-0.1.17.dev1269}/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.dev1268 → teddy_cli-0.1.17.dev1269}/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
|