teddy-cli 0.1.17.dev1343__tar.gz → 0.1.17.dev1344__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 (162) hide show
  1. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +8 -3
  4. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/container.py +5 -4
  5. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/interrupt_guard.py +12 -0
  6. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/.gitignore +0 -0
  7. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/LICENSE +0 -0
  8. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/README.md +0 -0
  9. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/__main__.py +0 -0
  11. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  14. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  15. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  16. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  17. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  18. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  19. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  20. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  21. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  22. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  23. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  24. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  25. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  26. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  27. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  28. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  29. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  30. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  31. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  32. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  33. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  34. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  36. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  37. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  39. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  47. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  48. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  49. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  102. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  103. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  104. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  105. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  106. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/plan_validator.py +0 -0
  107. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/planning_service.py +0 -0
  108. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  110. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  111. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  112. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_planner.py +0 -0
  113. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  114. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_replanner.py +0 -0
  115. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_repository.py +0 -0
  116. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/session_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  118. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/update_checker.py +0 -0
  119. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  120. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  121. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  122. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  123. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  124. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  125. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  126. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  127. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/__init__.py +0 -0
  128. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/diff.py +0 -0
  129. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/io.py +0 -0
  130. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/markdown.py +0 -0
  131. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/paths.py +0 -0
  132. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/serialization.py +0 -0
  133. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/session_notices.py +0 -0
  134. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  135. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/string.py +0 -0
  136. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/core/utils/terminal.py +0 -0
  137. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/prompts.py +0 -0
  138. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/registries/__init__.py +0 -0
  139. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/registries/infrastructure.py +0 -0
  140. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/registries/reviewer.py +0 -0
  141. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/registries/validators.py +0 -0
  142. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/MRP.md +0 -0
  143. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/config.yaml +0 -0
  146. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/init.context +0 -0
  147. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  148. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  149. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  150. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  151. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  152. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  153. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  154. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  155. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/case-file.md +0 -0
  156. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/ci.md +0 -0
  157. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/component-design.md +0 -0
  158. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/makefile.md +0 -0
  159. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1344}/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.dev1343
3
+ Version: 0.1.17.dev1344
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.dev1343"
3
+ version = "0.1.17.dev1344"
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 = [
@@ -16,12 +16,12 @@ from __future__ import annotations
16
16
  import importlib
17
17
  import os
18
18
  import select
19
- import signal
20
19
  import sys
21
20
  import threading
22
21
  from typing import Any, Optional, cast
23
22
 
24
23
  from teddy_executor.core.ports.outbound.quit_key_listener import QuitCallback
24
+ from teddy_executor.core.utils.interrupt_guard import raise_interrupt
25
25
  from teddy_executor.core.utils.stdin_ownership import is_stdin_owned
26
26
  from teddy_executor.core.utils.terminal import restore_cooked_mode
27
27
 
@@ -150,8 +150,13 @@ class TerminalQuitKeyListener:
150
150
  self._trigger()
151
151
 
152
152
  def _trigger(self) -> None:
153
- """Invoke the injected hook, or self-deliver SIGINT by default."""
153
+ """Invoke the injected hook, or self-deliver SIGINT by default.
154
+
155
+ The default branch uses the shared ``raise_interrupt`` primitive so
156
+ the installed guard handler runs on every platform. ``os.kill`` would
157
+ terminate the process on Windows before the handler runs.
158
+ """
154
159
  if self._on_quit is not None:
155
160
  self._on_quit()
156
161
  return
157
- os.kill(os.getpid(), signal.SIGINT)
162
+ raise_interrupt()
@@ -1,7 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- import os
4
- import signal
5
3
  import time
6
4
 
7
5
  import punq
@@ -41,10 +39,13 @@ def _record_quit_source(container: punq.Container) -> None:
41
39
  default `Ctrl+C`; the self-delivered SIGINT then drives the shared guard's
42
40
  already-tested WAITING/EXECUTING branch unchanged.
43
41
  """
44
- from teddy_executor.core.utils.interrupt_guard import InterruptGuard
42
+ from teddy_executor.core.utils.interrupt_guard import (
43
+ InterruptGuard,
44
+ raise_interrupt,
45
+ )
45
46
 
46
47
  container.resolve(InterruptGuard).record_source("q")
47
- os.kill(os.getpid(), signal.SIGINT)
48
+ raise_interrupt()
48
49
 
49
50
 
50
51
  def _register_services(container: punq.Container) -> None:
@@ -121,3 +121,15 @@ class InterruptGuard:
121
121
  finally:
122
122
  self._executing = False
123
123
  self._first_signal_at = None
124
+
125
+
126
+ def raise_interrupt() -> None:
127
+ """Deliver SIGINT in-process so the installed handler runs on every platform.
128
+
129
+ ``os.kill(os.getpid(), signal.SIGINT)`` terminates the process on Windows
130
+ through ``TerminateProcess`` instead of invoking the Python SIGINT handler,
131
+ which suppresses the interrupt notice. ``signal.raise_signal`` uses the
132
+ process-level CRT raise path and reaches the handler from the main thread
133
+ and from a reader thread on every platform.
134
+ """
135
+ signal.raise_signal(signal.SIGINT)