teddy-cli 0.1.17.dev1382__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.
Files changed (163) hide show
  1. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +24 -5
  4. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/.gitignore +0 -0
  5. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/LICENSE +0 -0
  6. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/README.md +0 -0
  7. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/__init__.py +0 -0
  8. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/__main__.py +0 -0
  9. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  12. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  13. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  14. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  15. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  16. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  17. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  18. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  19. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  20. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  21. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  22. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  23. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  24. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  25. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  26. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  27. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  28. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  29. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  30. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  31. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  32. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  33. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  34. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  36. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  38. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/container.py +0 -0
  42. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/__init__.py +0 -0
  43. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  46. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  47. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  48. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  49. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  50. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  51. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/plan.py +0 -0
  52. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  53. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  54. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  55. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/session.py +0 -0
  56. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  57. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  58. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/__init__.py +0 -0
  59. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  61. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  62. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  63. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  64. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  65. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  66. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  67. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  69. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  70. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  71. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  72. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  73. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  74. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  75. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  76. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  77. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  78. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  79. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  81. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  82. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  83. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  84. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  85. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  86. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  87. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/__init__.py +0 -0
  88. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  89. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  90. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_executor.py +0 -0
  92. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_factory.py +0 -0
  93. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  94. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  95. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/context_service.py +0 -0
  96. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  97. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  98. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  99. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/init_service.py +0 -0
  100. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  101. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  102. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  103. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  104. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  105. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/plan_validator.py +0 -0
  106. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/planning_service.py +0 -0
  107. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  108. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  110. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  111. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_planner.py +0 -0
  112. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  113. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_replanner.py +0 -0
  114. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_repository.py +0 -0
  115. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/session_service.py +0 -0
  116. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  117. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/update_checker.py +0 -0
  118. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  119. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  120. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  121. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  122. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  123. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  124. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  125. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  126. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/__init__.py +0 -0
  127. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/diff.py +0 -0
  128. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/editor_names.py +0 -0
  129. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  130. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/io.py +0 -0
  131. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/markdown.py +0 -0
  132. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/paths.py +0 -0
  133. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/serialization.py +0 -0
  134. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/session_notices.py +0 -0
  135. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  136. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/string.py +0 -0
  137. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/core/utils/terminal.py +0 -0
  138. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/prompts.py +0 -0
  139. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/__init__.py +0 -0
  140. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/infrastructure.py +0 -0
  141. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/reviewer.py +0 -0
  142. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/registries/validators.py +0 -0
  143. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/MRP.md +0 -0
  144. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/__init__.py +0 -0
  146. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/config.yaml +0 -0
  147. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/init.context +0 -0
  148. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  149. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  150. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  151. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  152. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  153. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  154. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  155. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  156. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/case-file.md +0 -0
  157. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/ci.md +0 -0
  158. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/component-design.md +0 -0
  159. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/makefile.md +0 -0
  160. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/milestone.md +0 -0
  161. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  162. {teddy_cli-0.1.17.dev1382 → teddy_cli-0.1.17.dev1383}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  163. {teddy_cli-0.1.17.dev1382 → 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.dev1382
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1382"
3
+ version = "0.1.17.dev1383"
4
4
  description = "The local-first, test-driven agentic engineering harness. Because you should own the means of development."
5
5
  readme = "README.md"
6
6
  keywords = [
@@ -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(self._active_editor_path, "r", encoding="utf-8") as f:
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(self._active_editor_path)
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
- self._active_editor_path = None
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(