teddy-cli 0.1.17.dev1371__tar.gz → 0.1.17.dev1372__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.dev1371 → teddy_cli-0.1.17.dev1372}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/makefile.md +21 -6
  4. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/.gitignore +0 -0
  5. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/LICENSE +0 -0
  6. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/README.md +0 -0
  7. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/__init__.py +0 -0
  8. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/__main__.py +0 -0
  9. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  12. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  13. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  14. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  15. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  16. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  17. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  18. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  19. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  20. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  21. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  22. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  23. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  24. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  25. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  26. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  27. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  28. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  29. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  30. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  31. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  32. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  34. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  35. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  37. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  39. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/container.py +0 -0
  43. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  47. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  48. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  49. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  102. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  103. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  104. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  105. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  106. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/plan_validator.py +0 -0
  107. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/planning_service.py +0 -0
  108. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  110. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  111. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  112. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_planner.py +0 -0
  113. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  114. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_replanner.py +0 -0
  115. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_repository.py +0 -0
  116. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/session_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  118. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/update_checker.py +0 -0
  119. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  120. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  121. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  122. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  123. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  124. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  125. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  126. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  127. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/__init__.py +0 -0
  128. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/diff.py +0 -0
  129. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  130. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/io.py +0 -0
  131. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/markdown.py +0 -0
  132. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/paths.py +0 -0
  133. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/serialization.py +0 -0
  134. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/session_notices.py +0 -0
  135. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  136. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/string.py +0 -0
  137. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/core/utils/terminal.py +0 -0
  138. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/prompts.py +0 -0
  139. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/registries/__init__.py +0 -0
  140. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/registries/infrastructure.py +0 -0
  141. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/registries/reviewer.py +0 -0
  142. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/registries/validators.py +0 -0
  143. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/MRP.md +0 -0
  144. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/__init__.py +0 -0
  146. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/config.yaml +0 -0
  147. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/init.context +0 -0
  148. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  149. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  150. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  151. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  152. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  153. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  154. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  155. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  156. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/case-file.md +0 -0
  157. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/ci.md +0 -0
  158. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/component-design.md +0 -0
  159. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1371 → teddy_cli-0.1.17.dev1372}/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.dev1371
3
+ Version: 0.1.17.dev1372
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.dev1371"
3
+ version = "0.1.17.dev1372"
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 = [
@@ -87,6 +87,7 @@ Always use GNU Make native features for cross-platform compatibility instead of
87
87
  - **Native argument validation:** Use `$(if $(strip $(VAR)),,$(error Usage: ...))` instead of POSIX `[ -n "$$VAR" ]`. GNU Make validates parameters before spawning any shell process.
88
88
  - **Shell-less empty recipe:** Use `%: ;` to absorb extra command-line arguments. In Windows `cmd.exe`, the Unix built-in `@:` fails because `:` is reserved syntax for labels and drives. The empty recipe `%: ;` tells Make to do nothing without spawning a subshell.
89
89
  - **POSIX shell preflight:** Every POSIX recipe target (`ci-watch`, `probe`, `logs`) depends on the internal `_preflight` target, which verifies `git`, `gh`, `awk`, and `sed` before any network call. It aborts with one actionable message instead of a generic `make: *** Error 1`.
90
+ - **Shell routing for Bash-only commands:** Make spawns a recipe line directly when the line carries no shell metacharacter. That direct spawn bypasses `SHELL`. On Windows it fails for Git Bash-only programs such as `sleep` and for shell builtins such as `echo`. Keep these commands inside a shell block that carries `;`, `&&`, or a variable expansion.
90
91
  - **Windows shell selection:** Set `SHELL := bash.exe` when `OS` is `Windows_NT` so multi-line shell pipelines (`ci-watch`, `probe`, `logs`) execute through Git Bash. `_preflight` also confirms that the shell is Git Bash rather than the WSL `bash.exe` shim, and it names the `SHELL=` override when it is not.
91
92
  - **Portable quoting:** Pass values with double quotes, as in `--field reason="..."`, because Windows `cmd.exe` keeps single quotes literally.
92
93
  - **ASCII-only output:** Recipe output stays ASCII, because a Windows console turns a non-ASCII dash into mojibake in captured logs.
@@ -294,22 +295,36 @@ ci-watch: _preflight
294
295
 
295
296
  ```makefile
296
297
  probe: REASON := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
298
+ probe: _preflight
297
299
 
298
300
  probe:
299
301
  $(if $(strip $(REASON)),,$(error Usage: make probe '<reason>'))
300
302
  git add -f spikes/debug/probe.sh
301
- git commit -m 'debug: probe' --no-verify --allow-empty
303
+ git commit -m "debug: probe" --no-verify --allow-empty
302
304
  git push
303
- @gh workflow run debug.yml --field reason="$(REASON)"
304
- @sleep 5
305
- @RUN_ID=$$(gh run list --workflow debug.yml -L 1 --json databaseId --jq '.[0].databaseId') && \
306
- gh run watch "$$RUN_ID" --exit-status >/dev/null 2>&1 && \
307
- gh run download "$$RUN_ID" --name probe-result --dir spikes/debug >/dev/null 2>&1 && \
305
+ @SHA=$$(git rev-parse HEAD); \
306
+ gh workflow run debug.yml --field reason="$(REASON)" || { echo "Probe: workflow dispatch failed." >&2; exit 1; }; \
307
+ RUN_ID=""; ATTEMPTS=0; \
308
+ while [ -z "$$RUN_ID" ] && [ $$ATTEMPTS -lt $(RETRY_POLLS) ]; do \
309
+ RUN_ID=$$(gh run list --workflow debug.yml -L 10 --json databaseId,headSha --jq "[.[] | select(.headSha == \"$$SHA\")][0].databaseId"); \
310
+ [ -n "$$RUN_ID" ] && break; \
311
+ ATTEMPTS=$$((ATTEMPTS + 1)); \
312
+ sleep $(RETRY_SLEEP); \
313
+ done; \
314
+ if [ -z "$$RUN_ID" ]; then \
315
+ echo "Probe: no run registered for $$SHA after $$(( $(RETRY_POLLS) * $(RETRY_SLEEP) ))s." >&2; \
316
+ exit 1; \
317
+ fi; \
318
+ echo "Probe: watching run $$RUN_ID for $$SHA"; \
319
+ gh run watch "$$RUN_ID" --exit-status >/dev/null 2>&1 || true; \
320
+ gh run download "$$RUN_ID" --name probe-result --dir spikes/debug >/dev/null 2>&1 || true; \
308
321
  cat spikes/debug/probe_output.txt 2>/dev/null || echo "(no output file)"
309
322
  ```
310
323
 
311
324
  **Usage:** `make probe 'investigate windows path handling'`
312
325
 
326
+ `make probe` resolves the dispatched run by the pushed SHA inside a bounded retry loop. It reuses `RETRY_POLLS` and `RETRY_SLEEP` from the CI watch section. The dispatch, the run resolution, the watch, and the download stay in one shell block, because a metacharacter-free line would bypass the recipe shell on Windows. The target rejects the probe with a stderr reason when no run registers for that SHA, so a stale run can never be mistaken for the new probe.
327
+
313
328
  ## CI Log Extraction
314
329
 
315
330
  The Debugger's Reproduction phase needs to read CI logs without drowning in the full run output. The `make logs` target wraps the `gh run view` pipeline, strips ANSI escapes, and removes GitHub's `##[group]`/`##[endgroup]` boilerplate.