teddy-cli 0.1.17.dev1381__tar.gz → 0.1.17.dev1383__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.dev1381 → teddy_cli-0.1.17.dev1383}/PKG-INFO +27 -2
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/README.md +26 -1
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/pyproject.toml +1 -1
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/__main__.py +21 -11
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/cli_helpers.py +19 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +32 -1
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +24 -5
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/.gitignore +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/LICENSE +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/container.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/change_set.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/plan.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/project_context.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/session.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/init.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_executor.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_factory.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/context_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/edit_simulator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/init_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_metadata.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_reporting.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/plan_validator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/planning_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/prompt_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_planner.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_replanner.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_repository.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_service.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/update_checker.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/diff.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/editor_names.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/io.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/markdown.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/paths.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/serialization.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/session_notices.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/string.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/terminal.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/prompts.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/infrastructure.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/reviewer.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/validators.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/MRP.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/__init__.py +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/config.yaml +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/init.context +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/case-file.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/ci.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/component-design.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/makefile.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/milestone.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/specification-document.md +0 -0
- {teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/vertical-slice.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: teddy-cli
|
|
3
|
-
Version: 0.1.17.
|
|
3
|
+
Version: 0.1.17.dev1383
|
|
4
4
|
Summary: The local-first, test-driven agentic engineering harness. Because you should own the means of development.
|
|
5
5
|
Author: Raphael Atteritano
|
|
6
6
|
License: AGPL-3.0-only
|
|
@@ -282,6 +282,31 @@ teddy resume -m "your next instruction"
|
|
|
282
282
|
| `--max-turns` | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
|
|
283
283
|
| `--max-cost` | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
|
|
284
284
|
|
|
285
|
+
### Exporting Context
|
|
286
|
+
|
|
287
|
+
`teddy context` bundles system information, git status, project structure, and file contents into a single Markdown payload. It copies the payload to the clipboard unless you pass `--no-copy`.
|
|
288
|
+
|
|
289
|
+
Pass `-c/--context` to add ad-hoc values for a single run. The flag is repeatable and accepts comma-separated values. Explicit values extend the default set from `.teddy/init.context`. They do not replace it.
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# Add two files beside the default init.context entries
|
|
293
|
+
teddy context -c README.md -c src/app.py
|
|
294
|
+
|
|
295
|
+
# Comma-separated values expand to separate entries
|
|
296
|
+
teddy context -c "README.md,pyproject.toml"
|
|
297
|
+
|
|
298
|
+
# Export only the chosen files and skip the default set
|
|
299
|
+
teddy context --only -c README.md
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
A `-c` value resolves by kind. A directory expands recursively. A URL is fetched instead of resolved on disk. A file named `<name>.context` is treated as a manifest: the command reads one path per line, skips blank lines and `#` comments, and expands each entry. Any other file is embedded verbatim.
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
teddy context -c review.context
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
`--only` requires at least one `-c` value. Without one the command exits with a usage error, because an empty explicit set would export no files.
|
|
309
|
+
|
|
285
310
|
### Chat-Oriented Workflow (CHOP)
|
|
286
311
|
|
|
287
312
|
You do not need API keys or per-token billing to use TeDDy. If you already have an active subscription (ChatGPT, Claude, Gemini, etc.), you can also use TeDDy to practice **[Chat-Oriented Programming (CHOP)](https://sourcegraph.com/blog/chat-oriented-programming-in-action)** from your web browser.
|
|
@@ -308,7 +333,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
|
|
|
308
333
|
| `resume` | Resume an existing session. |
|
|
309
334
|
| `update` | Check for updates and display upgrade instructions. |
|
|
310
335
|
| `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
|
|
311
|
-
| `context` | Export context payload (system info, git status, file tree, `init.context`). |
|
|
336
|
+
| `context` | Export context payload (system info, git status, file tree, `init.context`). Add ad-hoc files with `-c` and skip defaults with `--only`. |
|
|
312
337
|
| <nobr>`get-prompt`</nobr> | Retrieve agent system prompts (respects overrides in `.teddy/prompts/`). |
|
|
313
338
|
|
|
314
339
|
> [!NOTE]
|
|
@@ -248,6 +248,31 @@ teddy resume -m "your next instruction"
|
|
|
248
248
|
| `--max-turns` | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
|
|
249
249
|
| `--max-cost` | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
|
|
250
250
|
|
|
251
|
+
### Exporting Context
|
|
252
|
+
|
|
253
|
+
`teddy context` bundles system information, git status, project structure, and file contents into a single Markdown payload. It copies the payload to the clipboard unless you pass `--no-copy`.
|
|
254
|
+
|
|
255
|
+
Pass `-c/--context` to add ad-hoc values for a single run. The flag is repeatable and accepts comma-separated values. Explicit values extend the default set from `.teddy/init.context`. They do not replace it.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Add two files beside the default init.context entries
|
|
259
|
+
teddy context -c README.md -c src/app.py
|
|
260
|
+
|
|
261
|
+
# Comma-separated values expand to separate entries
|
|
262
|
+
teddy context -c "README.md,pyproject.toml"
|
|
263
|
+
|
|
264
|
+
# Export only the chosen files and skip the default set
|
|
265
|
+
teddy context --only -c README.md
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
A `-c` value resolves by kind. A directory expands recursively. A URL is fetched instead of resolved on disk. A file named `<name>.context` is treated as a manifest: the command reads one path per line, skips blank lines and `#` comments, and expands each entry. Any other file is embedded verbatim.
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
teddy context -c review.context
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
`--only` requires at least one `-c` value. Without one the command exits with a usage error, because an empty explicit set would export no files.
|
|
275
|
+
|
|
251
276
|
### Chat-Oriented Workflow (CHOP)
|
|
252
277
|
|
|
253
278
|
You do not need API keys or per-token billing to use TeDDy. If you already have an active subscription (ChatGPT, Claude, Gemini, etc.), you can also use TeDDy to practice **[Chat-Oriented Programming (CHOP)](https://sourcegraph.com/blog/chat-oriented-programming-in-action)** from your web browser.
|
|
@@ -274,7 +299,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
|
|
|
274
299
|
| `resume` | Resume an existing session. |
|
|
275
300
|
| `update` | Check for updates and display upgrade instructions. |
|
|
276
301
|
| `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
|
|
277
|
-
| `context` | Export context payload (system info, git status, file tree, `init.context`). |
|
|
302
|
+
| `context` | Export context payload (system info, git status, file tree, `init.context`). Add ad-hoc files with `-c` and skip defaults with `--only`. |
|
|
278
303
|
| <nobr>`get-prompt`</nobr> | Retrieve agent system prompts (respects overrides in `.teddy/prompts/`). |
|
|
279
304
|
|
|
280
305
|
> [!NOTE]
|
|
@@ -277,16 +277,9 @@ def start( # noqa: PLR0913
|
|
|
277
277
|
_ensure_project_initialized(container)
|
|
278
278
|
config_service = container.resolve(IConfigService)
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
for occurrence in context
|
|
284
|
-
for path in occurrence.split(",")
|
|
285
|
-
if path.strip()
|
|
286
|
-
]
|
|
287
|
-
if context
|
|
288
|
-
else None
|
|
289
|
-
)
|
|
280
|
+
from teddy_executor.adapters.inbound.cli_helpers import normalize_context_values
|
|
281
|
+
|
|
282
|
+
additional_context = normalize_context_values(context)
|
|
290
283
|
|
|
291
284
|
interactive = not (_resolve_yolo(yolo, config_service) or pipeline)
|
|
292
285
|
system_env = container.resolve(ISystemEnvironment)
|
|
@@ -461,6 +454,20 @@ def context(
|
|
|
461
454
|
"--no-copy",
|
|
462
455
|
help="Do not copy the output to the clipboard.",
|
|
463
456
|
),
|
|
457
|
+
context: Optional[list[str]] = typer.Option(
|
|
458
|
+
None,
|
|
459
|
+
"--context",
|
|
460
|
+
"-c",
|
|
461
|
+
help=(
|
|
462
|
+
"Additional files/dirs for context. Repeatable (-c a.py -c b.md); "
|
|
463
|
+
'comma-separated values are also accepted (-c "a.py,b.md").'
|
|
464
|
+
),
|
|
465
|
+
),
|
|
466
|
+
only: bool = typer.Option(
|
|
467
|
+
False,
|
|
468
|
+
"--only",
|
|
469
|
+
help="Export only the --context values, skipping the default set.",
|
|
470
|
+
),
|
|
464
471
|
):
|
|
465
472
|
"""
|
|
466
473
|
Gathers and displays project context (file tree + file contents).
|
|
@@ -473,7 +480,10 @@ def context(
|
|
|
473
480
|
|
|
474
481
|
container = get_container()
|
|
475
482
|
_ensure_project_initialized(container)
|
|
476
|
-
|
|
483
|
+
from teddy_executor.adapters.inbound.cli_helpers import normalize_context_values
|
|
484
|
+
|
|
485
|
+
additional_context = normalize_context_values(context)
|
|
486
|
+
handle_context_gathering(container, no_copy, additional_context, only)
|
|
477
487
|
|
|
478
488
|
|
|
479
489
|
@app.command(name="get-prompt")
|
|
@@ -34,6 +34,25 @@ def find_project_root() -> Path:
|
|
|
34
34
|
return current
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
def normalize_context_values(
|
|
38
|
+
values: Optional[List[str]],
|
|
39
|
+
) -> Optional[List[str]]:
|
|
40
|
+
"""Normalizes a repeatable and comma-separated context option.
|
|
41
|
+
|
|
42
|
+
Each occurrence is split on commas, every fragment is stripped, and empty
|
|
43
|
+
fragments are dropped. A falsy option returns ``None`` so callers can
|
|
44
|
+
distinguish "no value supplied" from an explicitly empty list.
|
|
45
|
+
"""
|
|
46
|
+
if not values:
|
|
47
|
+
return None
|
|
48
|
+
return [
|
|
49
|
+
path.strip()
|
|
50
|
+
for occurrence in values
|
|
51
|
+
for path in occurrence.split(",")
|
|
52
|
+
if path.strip()
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
|
|
37
56
|
def echo_and_copy(
|
|
38
57
|
content: str,
|
|
39
58
|
no_copy: bool = False,
|
|
@@ -16,6 +16,7 @@ from teddy_executor.core.domain.models.session import SessionOptions
|
|
|
16
16
|
from teddy_executor.core.ports.outbound.user_interactor import IUserInteractor
|
|
17
17
|
from teddy_executor.core.ports.outbound.session_loop_guard import ISessionLoopGuard
|
|
18
18
|
from teddy_executor.core.ports.outbound.config_service import IConfigService
|
|
19
|
+
from teddy_executor.core.ports.outbound.file_system_manager import IFileSystemManager
|
|
19
20
|
from teddy_executor.core.ports.outbound.session_repository import ISessionRepository
|
|
20
21
|
from teddy_executor.core.utils.interrupt_guard import InterruptGuard
|
|
21
22
|
from teddy_executor.core.utils.session_notices import format_interrupt_notice
|
|
@@ -1103,10 +1104,40 @@ def detect_session_context() -> Optional[Dict[str, Sequence[str]]]:
|
|
|
1103
1104
|
return None
|
|
1104
1105
|
|
|
1105
1106
|
|
|
1106
|
-
def
|
|
1107
|
+
def _default_context_paths(container: Container) -> list[str]:
|
|
1108
|
+
"""Resolves the default `.teddy/*.context` entries outside a session."""
|
|
1109
|
+
file_system_manager = container.resolve(IFileSystemManager)
|
|
1110
|
+
return file_system_manager.get_context_paths()
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
def handle_context_gathering(
|
|
1114
|
+
container: Container,
|
|
1115
|
+
no_copy: bool,
|
|
1116
|
+
additional_context: Optional[Sequence[str]] = None,
|
|
1117
|
+
only: bool = False,
|
|
1118
|
+
):
|
|
1107
1119
|
"""Logic for the 'context' command."""
|
|
1108
1120
|
context_service: IGetContextUseCase = container.resolve(IGetContextUseCase)
|
|
1109
1121
|
context_files = detect_session_context()
|
|
1122
|
+
|
|
1123
|
+
if only and not additional_context:
|
|
1124
|
+
raise typer.BadParameter("--only requires at least one --context value.")
|
|
1125
|
+
|
|
1126
|
+
if additional_context:
|
|
1127
|
+
explicit_scope = {"Explicit": list(additional_context)}
|
|
1128
|
+
if only:
|
|
1129
|
+
context_files = explicit_scope
|
|
1130
|
+
else:
|
|
1131
|
+
# Outside a session no scope map exists, so the defaults are
|
|
1132
|
+
# resolved here: the service globs only when the map is falsy.
|
|
1133
|
+
scopes = (
|
|
1134
|
+
dict(context_files)
|
|
1135
|
+
if context_files
|
|
1136
|
+
else {"Default": _default_context_paths(container)}
|
|
1137
|
+
)
|
|
1138
|
+
scopes.update(explicit_scope)
|
|
1139
|
+
context_files = scopes
|
|
1140
|
+
|
|
1110
1141
|
# Performance: Formatting context for Markdown doesn't use tokens, so we skip them.
|
|
1111
1142
|
context_result = context_service.get_context(
|
|
1112
1143
|
context_files=context_files, include_tokens=False
|
|
@@ -135,12 +135,27 @@ class ConsoleAskLoop:
|
|
|
135
135
|
continue
|
|
136
136
|
|
|
137
137
|
if user_input:
|
|
138
|
+
self._discard_pending_draft()
|
|
138
139
|
return user_input
|
|
139
140
|
|
|
140
141
|
response = self._handle_empty_input(prompt)
|
|
141
142
|
if response is not None:
|
|
142
143
|
return response
|
|
143
144
|
|
|
145
|
+
def _discard_pending_draft(self) -> None:
|
|
146
|
+
"""Deletes an abandoned editor draft and clears the pending state.
|
|
147
|
+
|
|
148
|
+
A draft is abandoned when the user answers in the terminal instead of
|
|
149
|
+
harvesting the opened editor. The session shares one loop instance
|
|
150
|
+
across turns, so a surviving draft pins the next turn to the
|
|
151
|
+
"Editor opened" prompt and leaves the temp file on disk.
|
|
152
|
+
"""
|
|
153
|
+
if not self._active_editor_path:
|
|
154
|
+
return
|
|
155
|
+
temp_path = self._active_editor_path
|
|
156
|
+
self._active_editor_path = None
|
|
157
|
+
self._system_env.delete_file(temp_path)
|
|
158
|
+
|
|
144
159
|
def _launch_editor_background(self, prompt: str) -> str:
|
|
145
160
|
"""Opens an external editor in the background and returns the harvested content.
|
|
146
161
|
|
|
@@ -248,19 +263,23 @@ class ConsoleAskLoop:
|
|
|
248
263
|
if self._active_editor_path:
|
|
249
264
|
# Flush main stdin buffer before reading file
|
|
250
265
|
self._flush_stdin()
|
|
266
|
+
temp_path = self._active_editor_path
|
|
267
|
+
self._active_editor_path = None
|
|
251
268
|
try:
|
|
252
|
-
with open(
|
|
269
|
+
with open(temp_path, "r", encoding="utf-8") as f:
|
|
253
270
|
content = f.read()
|
|
254
271
|
content = self._strip_escape_sequences(content)
|
|
255
272
|
marker = "<!-- Please enter your response above this line. -->"
|
|
256
273
|
if marker in content:
|
|
257
274
|
content = content.split(marker)[0].strip()
|
|
258
|
-
self._system_env.delete_file(
|
|
259
|
-
self._active_editor_path = None
|
|
275
|
+
self._system_env.delete_file(temp_path)
|
|
260
276
|
self._flush_stdin()
|
|
261
277
|
return content if content else None
|
|
262
|
-
except Exception:
|
|
263
|
-
|
|
278
|
+
except Exception as exc:
|
|
279
|
+
logger.warning(
|
|
280
|
+
"Could not harvest the editor draft %s: %s", temp_path, exc
|
|
281
|
+
)
|
|
282
|
+
self._system_env.delete_file(temp_path)
|
|
264
283
|
return None
|
|
265
284
|
|
|
266
285
|
confirm = self._pt_prompt(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/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
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/editor_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/markdown.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/paths.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/string.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/reviewer.py
RENAMED
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{teddy_cli-0.1.17.dev1381 → teddy_cli-0.1.17.dev1383}/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.dev1381 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/ci.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|