teddy-cli 0.1.17.dev1343__tar.gz → 0.1.17.dev1345__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.dev1345}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +8 -3
  4. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/container.py +5 -4
  5. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/interrupt_guard.py +12 -0
  6. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/architect.md +1 -1
  7. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/ARCHITECTURE.md +8 -21
  8. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/.gitignore +0 -0
  9. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/LICENSE +0 -0
  10. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/README.md +0 -0
  11. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/__main__.py +0 -0
  13. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/__init__.py +0 -0
  14. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  15. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  16. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  17. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  18. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  19. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  20. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  21. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  22. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  23. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  24. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  25. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  26. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  27. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  28. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  29. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  30. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  31. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  32. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  35. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  36. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  38. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  39. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  41. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  45. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  48. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  49. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  50. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  52. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  53. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/plan.py +0 -0
  55. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  56. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  57. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  58. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/session.py +0 -0
  59. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  60. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  61. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/__init__.py +0 -0
  62. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  63. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  64. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  65. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  66. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  67. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  68. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  69. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  70. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  71. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  72. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  73. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  74. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  75. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  76. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  77. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  78. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  79. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  80. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  81. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  82. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  83. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  84. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  85. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  86. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  87. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  88. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  89. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  90. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/__init__.py +0 -0
  91. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  92. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  93. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  94. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_executor.py +0 -0
  95. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_factory.py +0 -0
  96. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  97. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  98. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/context_service.py +0 -0
  99. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  100. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  101. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  102. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/init_service.py +0 -0
  103. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  104. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  105. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  106. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  107. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  108. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/plan_validator.py +0 -0
  109. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/planning_service.py +0 -0
  110. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  111. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  112. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  113. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  114. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_planner.py +0 -0
  115. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  116. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_replanner.py +0 -0
  117. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_repository.py +0 -0
  118. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/session_service.py +0 -0
  119. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  120. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/update_checker.py +0 -0
  121. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  122. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  123. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  124. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  125. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  126. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  127. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  128. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  129. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/__init__.py +0 -0
  130. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/diff.py +0 -0
  131. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/io.py +0 -0
  132. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/markdown.py +0 -0
  133. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/paths.py +0 -0
  134. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/serialization.py +0 -0
  135. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/session_notices.py +0 -0
  136. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  137. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/string.py +0 -0
  138. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/core/utils/terminal.py +0 -0
  139. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/prompts.py +0 -0
  140. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/__init__.py +0 -0
  141. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/infrastructure.py +0 -0
  142. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/reviewer.py +0 -0
  143. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/registries/validators.py +0 -0
  144. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/MRP.md +0 -0
  145. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/__init__.py +0 -0
  146. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/__init__.py +0 -0
  147. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/config.yaml +0 -0
  148. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/init.context +0 -0
  149. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  150. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  151. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  152. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  153. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  154. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  155. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/case-file.md +0 -0
  156. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/ci.md +0 -0
  157. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/component-design.md +0 -0
  158. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/makefile.md +0 -0
  159. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1343 → teddy_cli-0.1.17.dev1345}/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.dev1345
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.dev1345"
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)
@@ -30,7 +30,7 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
30
30
  3. **Draft Component Designs:**
31
31
  CREATE or EDIT draft design docs for affected components. Focus strictly on strategic intent, purpose, conceptual Port responsibilities, operations, and invariants. Enforce Test Double Integrity (Ban Global Patching) and avoid leaky abstractions. Leave concrete typing and internal implementation details to the Developer. Transition updated existing docs to Refactoring status.
32
32
  4. **Architecture Maintenance:**
33
- Update the Component and Boundary Map and Key Architectural Decisions in `docs/architecture/ARCHITECTURE.md` to reflect the design.
33
+ If needed, update the Ubiquitous Language, Component and Boundary Map, and Key Architectural Decisions in `docs/architecture/ARCHITECTURE.md` to reflect the design.
34
34
  5. **Delta Analysis:**
35
35
  Use EXECUTE `git grep` and READ on all targeted components, contracts, interfaces, and DTOs. Catalog the delta: skip work that already exists, note remaining work for partially implemented pieces, and add only truly missing pieces as deliverables. Never create deliverables for code that demonstrably exists.
36
36
  6. **Draft Milestone Slices:**
@@ -22,6 +22,14 @@ This section defines foundational engineering practices. Each entry MUST be a sp
22
22
  `docs/architecture/BOUNDARY/LAYER/TYPE/name.md` -> Source path: `src/{pkg}/BOUNDARY/LAYER/TYPE/name.ext` -> Test path: `tests/suites/TEST_TYPE/BOUNDARY/LAYER/TYPE/test_name.ext`
23
23
  - **Makefile Commands:** The `Makefile` is the canonical entry point for the version control workflow and on-demand test runs: `make test` (full suite), `make commit '<msg>'` (local commit with advisory auto-fix and unskippable post-commit test gate), `make push` (rebase and push), `make ci-watch` (CI monitoring), and `make probe '<reason>'` (Remote Probing Protocol). See [docs/templates/makefile.md](docs/templates/makefile.md).
24
24
 
25
+ ## Ubiquitous Language
26
+
27
+ The canonical domain vocabulary. All documentation, component names, tests, and agent prompts must use these terms consistently.
28
+
29
+ **Template format:** `- **Term:** Concise definition and operational boundary.`
30
+
31
+ - **TermName:** Definition of the core domain concept and its operational boundaries.
32
+
25
33
  ## Component & Boundary Map
26
34
 
27
35
  Single source of truth for system structure, organized by architectural layer.
@@ -56,27 +64,6 @@ Test drivers, observers, shared fakes, and test setup fixtures.
56
64
 
57
65
  Each Contract column links to the Component Design Document or Interface definition.
58
66
 
59
- ## Domain Model & Ubiquitous Language
60
-
61
- The shared vocabulary exchanged by every service, port, and adapter. Record the core entities, enumerations, value objects, domain exceptions, and port bundles that do not warrant a dedicated component design document.
62
-
63
- **Template format:** Group the types by concept. List each type with its module, kind, fields, and any invariant.
64
-
65
- ### Enumerations
66
- - **`TypeName`** (`module.py`, Enum): `VALUE_A`, `VALUE_B`.
67
-
68
- ### Aggregates
69
- - **`AggregateName`** (`module.py`, dataclass): `field_a`, `field_b`. Exposes `helper_method()`.
70
-
71
- ### Port Bundles
72
- - **`PortBundleName`** (`module.py`, frozen dataclass): `dependency_a`, `dependency_b`.
73
-
74
- ### Supporting Value Objects
75
- - **`ValueObjectName`** (`module.py`, frozen dataclass): `field_a`, `field_b`.
76
-
77
- ### Domain Exceptions
78
- - **`ExceptionName`** (`BaseException`): carries `field`.
79
-
80
67
  ## Key Architectural Decisions
81
68
 
82
69
  A living "System Law" document capturing explicit, prescriptive design decisions.