teddy-cli 0.1.17.dev1276__tar.gz → 0.1.17.dev1278__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.dev1276 → teddy_cli-0.1.17.dev1278}/PKG-INFO +1 -1
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/MRP.xml +1 -1
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/debugger.xml +1 -1
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/prototyper.xml +7 -7
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/ci.md +25 -9
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/makefile.md +19 -12
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/__main__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1278"
|
|
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" }
|
|
@@ -51,7 +51,7 @@ NOTES:
|
|
|
51
51
|
3. Execution: Run `make commit '<type>(<scope>): <description>'`. This stages all local changes (`git add .`) and runs Git's local hooks before committing.
|
|
52
52
|
4. Post-conditions: All tests MUST pass: the post-commit hook reverts automatically on failure and cannot be bypassed.
|
|
53
53
|
5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase and push.
|
|
54
|
-
6. If needed: to verify remote CI run `make ci-watch` to monitor workflow runs and to inspect results: use `make logs <run-id> '<step-name>'` for full logs.
|
|
54
|
+
6. If needed: to verify remote CI run `make ci-watch` to monitor workflow runs and to inspect results: use `make logs <run-id>` (or `make logs <run-id> '<step-name>'`) for full logs.
|
|
55
55
|
</rule>
|
|
56
56
|
|
|
57
57
|
<rule n="7" name="Standardized Plan Types">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<phase n="1" name="Reproduction">
|
|
10
10
|
<goal>Gather context and build or verify an end-to-end Minimal Reproducible Example (MRE).</goal>
|
|
11
11
|
<step n="1" name="Case File Check">If a Case File was not provided in the initial context, READ `docs/templates/case-file.md` and CREATE one following that template.</step>
|
|
12
|
-
<step n="2" name="Context and History Gathering">Use EXECUTE `git grep`, EXECUTE `git log`, READ, and RESEARCH to understand the codebase, recent changes, and identify the last known green CI run or commit. For historical CI failures, do not try to read the entire log
|
|
12
|
+
<step n="2" name="Context and History Gathering">Use EXECUTE `git grep`, EXECUTE `git log`, READ, and RESEARCH to understand the codebase, recent changes, and identify the last known green CI run or commit. For historical CI failures, do not try to read the entire log: extract failed step logs by executing `make logs [ID]` (for all failed steps) or `make logs [ID] '[STEP_NAME]'` (for a specific step).</step>
|
|
13
13
|
<step n="3" name="Diagnostic MRE and Platform Check">
|
|
14
14
|
Trigger the symptom: if an existing command, test, or CI failure exists, execute it to observe the failure live. If the bug is reported verbally or without an existing test, write a targeted probe script in `spikes/debug/{scope-slug}/` to trigger the symptom.
|
|
15
15
|
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
<step n="2" name="Iteration Loop">Iterate until internal workings are deeply understood and all Technical and Functional unknowns are resolved. If an unexpected failure occurs, isolate it using a focused sub-prototype. Update Key Unknowns with any emerging uncertainties.</step>
|
|
19
19
|
</phase>
|
|
20
20
|
|
|
21
|
-
<phase n="3" name="
|
|
22
|
-
<goal>Translate verified findings into buildable slices, component designs, and specifications.</goal>
|
|
23
|
-
<step n="1" name="Artifact Updates">EDIT the Vertical Slice to reflect validated scenarios, edge cases, implementation deliverables, and verification steps. Place Wiring first as the tracer bullet deliverable, followed by contract, logic, refactoring, and harness deliverables. Mark resolved unknowns as completed, link the prototype directory in the slice metadata, and set status to Planned. EDIT linked Component Design Docs and specs in `docs/project/specs/` to reflect as-tested contracts, parameters, and invariants discovered during prototyping.</step>
|
|
24
|
-
<step n="2" name="Impact and Debt Audit">Run EXECUTE `git grep` on target components. If a modified component has more than one consumer, treat it as a Shared Seam and structure deliverables as a non-breaking parallel change: expand, migrate, contract. Ensure all contract changes include matching harness deliverables.</step>
|
|
25
|
-
</phase>
|
|
26
|
-
|
|
27
|
-
<phase n="4" name="Alignment">
|
|
21
|
+
<phase n="3" name="Alignment">
|
|
28
22
|
<goal>Present prototype findings and demo to the user for explicit validation and approval.</goal>
|
|
29
23
|
<step n="1" name="Showcase Presentation">Message the user to present findings in clear prose. For Technical unknowns, provide raw assertion evidence or benchmarks. For Functional unknowns, provide copy-pasteable execution commands and list adjustable knobs. Present the updated slice deliverables and component specifications.</step>
|
|
30
24
|
<step n="2" name="Approval Gate">Await explicit user approval before proceeding to the Conclusion phase. If the user requests changes, refine the prototypes and artifacts, re-run verification, and re-align.</step>
|
|
31
25
|
</phase>
|
|
32
26
|
|
|
27
|
+
<phase n="4" name="Documentation">
|
|
28
|
+
<goal>Translate verified findings into buildable slices, component designs, and specifications.</goal>
|
|
29
|
+
<step n="1" name="Impact and Debt Audit">Run EXECUTE `git grep` on target components. If a modified component has more than one consumer, treat it as a Shared Seam and structure deliverables as a non-breaking parallel change: expand, migrate, contract. Ensure all contract changes include matching harness deliverables.</step>
|
|
30
|
+
<step n="2" name="Artifact Updates">EDIT the Vertical Slice to reflect validated scenarios, edge cases, implementation deliverables, and verification steps. Place Wiring first as the tracer bullet deliverable, followed by contract, logic, refactoring, and harness deliverables. Mark resolved unknowns as completed, link the prototype directory in the slice metadata, and set status to Planned. EDIT linked Component Design Docs and specs in `docs/project/specs/` to reflect as-tested contracts, parameters, and invariants discovered during prototyping.</step>
|
|
31
|
+
</phase>
|
|
32
|
+
|
|
33
33
|
<phase n="5" name="Conclusion">
|
|
34
34
|
<goal>Clean workspace, commit changes, push, and hand off to the Developer.</goal>
|
|
35
35
|
<step n="1" name="Cleanup">Delete scratch files and unapproved probes, preserving only the approved prototype directory under `spikes/prototypes/{scope-slug}/`.</step>
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/ci.md
RENAMED
|
@@ -15,8 +15,8 @@ The CI pipeline consists of two parallel jobs:
|
|
|
15
15
|
- **Blocking:** If this job fails, the CI pipeline is marked as failed.
|
|
16
16
|
|
|
17
17
|
### Job 2: Non-Blocking Quality Checks
|
|
18
|
-
- Runs
|
|
19
|
-
-
|
|
18
|
+
- Runs granular quality checks in separate steps with `if: success() || failure()`, ensuring that all checks execute and report their outcomes even if an earlier check fails.
|
|
19
|
+
- Scopes heavy checks (type checkers, security/dependency scanners, structural checkers) to the non-default `manual` stage so they never slow down the local pre-commit loop.
|
|
20
20
|
- Excludes sandboxes (`spikes/`) and third-party dependencies.
|
|
21
21
|
- **Non-Blocking:** Configured with `continue-on-error: true` so quality failures do not block the pipeline.
|
|
22
22
|
|
|
@@ -97,16 +97,32 @@ jobs:
|
|
|
97
97
|
- name: Install dependencies
|
|
98
98
|
run: {runner} sync --frozen
|
|
99
99
|
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
# Each check runs with `if: success() || failure()` so all checks run
|
|
101
|
+
# even if an earlier check fails.
|
|
102
|
+
- name: "Secrets Check (detect-secrets)"
|
|
103
|
+
if: success() || failure()
|
|
104
104
|
run: |
|
|
105
|
-
{runner} pre-commit run --all-files
|
|
105
|
+
{runner} pre-commit run detect-secrets --all-files
|
|
106
106
|
|
|
107
|
-
- name: "
|
|
107
|
+
- name: "Code Formatting (ruff format)"
|
|
108
|
+
if: success() || failure()
|
|
108
109
|
run: |
|
|
109
|
-
{runner} pre-commit run --all-files
|
|
110
|
+
{runner} pre-commit run ruff-format --all-files
|
|
111
|
+
|
|
112
|
+
- name: "Linter (ruff check)"
|
|
113
|
+
if: success() || failure()
|
|
114
|
+
run: |
|
|
115
|
+
{runner} pre-commit run ruff-lint --all-files
|
|
116
|
+
|
|
117
|
+
- name: "Type Checker (mypy)"
|
|
118
|
+
if: success() || failure()
|
|
119
|
+
run: |
|
|
120
|
+
{runner} pre-commit run mypy --all-files --hook-stage manual
|
|
121
|
+
|
|
122
|
+
- name: "Security Audit (bandit & pip-audit)"
|
|
123
|
+
if: success() || failure()
|
|
124
|
+
run: |
|
|
125
|
+
{runner} pre-commit run bandit pip-audit --all-files --hook-stage manual
|
|
110
126
|
```
|
|
111
127
|
|
|
112
128
|
## Debug Workflow (Remote Probing Protocol)
|
|
@@ -46,11 +46,12 @@ The Remote Probing Protocol requires a reason string because it is passed as the
|
|
|
46
46
|
|
|
47
47
|
### Logs
|
|
48
48
|
```shell
|
|
49
|
-
make logs 12345
|
|
49
|
+
make logs 12345 # extract logs for ALL failed steps
|
|
50
|
+
make logs 12345 'Run tests' # extract logs for a specific step (substring match)
|
|
50
51
|
```
|
|
51
52
|
|
|
52
|
-
**
|
|
53
|
-
The first argument is the GitHub Actions run ID (as shown by `gh run list`)
|
|
53
|
+
**How does `make logs` work?**
|
|
54
|
+
The first argument is the GitHub Actions run ID (as shown by `gh run list`). If invoked without a second argument, it extracts and formats logs for **all failed steps** using `gh run view --log-failed`. An optional second argument filters down to a specific step using substring matching, stripping ANSI escapes and GitHub boilerplate so you see the failure without noise. See [CI Log Extraction](#ci-log-extraction).
|
|
54
55
|
|
|
55
56
|
## Probe Script
|
|
56
57
|
|
|
@@ -204,7 +205,8 @@ ci-watch:
|
|
|
204
205
|
if [ -n "$$NEWSTEPS" ]; then \
|
|
205
206
|
echo "$$WF: failing step(s): $$NEWSTEPS (run $$NEW)"; \
|
|
206
207
|
gh run view "$$NEW" --log-failed 2>/dev/null | awk -F'\t' '{ l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/) next; gsub(/^##\[error\]/,"Error: ",l); print l }' | tail -n $(DETAIL_LINES) | sed 's/^/ /'; \
|
|
207
|
-
echo "
|
|
208
|
+
echo " view all failed logs: make logs $$NEW"; \
|
|
209
|
+
echo " view specific step: make logs $$NEW '<step-name>'"; \
|
|
208
210
|
fi; \
|
|
209
211
|
if [ "$$NEWCONC" != "failure" ]; then \
|
|
210
212
|
if [ -n "$$NEWFAIL" ]; then \
|
|
@@ -267,7 +269,7 @@ probe:
|
|
|
267
269
|
|
|
268
270
|
## CI Log Extraction
|
|
269
271
|
|
|
270
|
-
The Debugger's Reproduction phase needs to read
|
|
272
|
+
The Debugger's Reproduction phase needs to read CI logs without drowning in the full run output. The `make logs` target wraps the `gh run view` pipeline, strips ANSI escapes, and removes GitHub's `##[group]`/`##[endgroup]` boilerplate.
|
|
271
273
|
|
|
272
274
|
### Example
|
|
273
275
|
|
|
@@ -276,21 +278,26 @@ logs: LOGS_RUN := $(word 2,$(MAKECMDGOALS))
|
|
|
276
278
|
logs: LOGS_STEP := $(wordlist 3,99,$(MAKECMDGOALS))
|
|
277
279
|
|
|
278
280
|
logs:
|
|
279
|
-
@[ -n "$(LOGS_RUN)" ] || { echo "Usage: make logs <run-id> '<step-name>'"; exit 1; }
|
|
280
|
-
@
|
|
281
|
+
@[ -n "$(LOGS_RUN)" ] || { echo "Usage: make logs <run-id> ['<step-name>']"; exit 1; }
|
|
282
|
+
@if [ -z "$(LOGS_STEP)" ]; then \
|
|
283
|
+
gh run view "$(LOGS_RUN)" --log-failed 2>/dev/null | awk -F'\t' '{ if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/,"Error: ",l); print l }'; \
|
|
284
|
+
else \
|
|
285
|
+
gh run view "$(LOGS_RUN)" --log 2>/dev/null | awk -F'\t' -v step="$(LOGS_STEP)" 'index($$2, step) > 0 { if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/, "Error: ", l); print l }'; \
|
|
286
|
+
fi
|
|
281
287
|
|
|
282
288
|
%:
|
|
283
289
|
@:
|
|
284
290
|
```
|
|
285
291
|
|
|
286
292
|
**Usage:**
|
|
287
|
-
- `make logs 12345
|
|
288
|
-
-
|
|
293
|
+
- `make logs 12345` — extract logs for ALL failed steps from run `12345`.
|
|
294
|
+
- `make logs 12345 'Run tests'` — extract logs for a specific step (substring match) from run `12345`.
|
|
289
295
|
|
|
290
296
|
**How it works:**
|
|
291
|
-
- `$(word 2,$(MAKECMDGOALS))` takes the run ID and `$(wordlist 3,99,$(MAKECMDGOALS))`
|
|
292
|
-
-
|
|
293
|
-
-
|
|
297
|
+
- `$(word 2,$(MAKECMDGOALS))` takes the run ID and `$(wordlist 3,99,$(MAKECMDGOALS))` captures any optional step name.
|
|
298
|
+
- When no step name is provided, `gh run view --log-failed` is used so only failed steps are fetched and printed with `[job > step]` headers.
|
|
299
|
+
- When a step name is supplied, `index($2, step) > 0` performs substring matching against column 2.
|
|
300
|
+
- Timestamps and ANSI escapes are stripped, and `##[error]` lines are prefixed with `Error: `.
|
|
294
301
|
|
|
295
302
|
## Implementation Notes
|
|
296
303
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/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.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1276 → teddy_cli-0.1.17.dev1278}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|