teddy-cli 0.1.17.dev1331__tar.gz → 0.1.17.dev1332__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.dev1331 → teddy_cli-0.1.17.dev1332}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/MRP.md +2 -2
  4. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/debugger.md +8 -8
  5. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/case-file.md +4 -3
  6. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/makefile.md +23 -21
  7. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/.gitignore +0 -0
  8. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/LICENSE +0 -0
  9. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/README.md +0 -0
  10. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/__main__.py +0 -0
  12. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  14. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  15. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  16. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  17. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  18. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  19. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  20. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  21. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  22. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  23. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  24. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  25. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  26. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  27. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  28. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  29. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  30. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  31. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  32. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  34. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  35. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  37. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  38. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  40. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  42. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  45. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/container.py +0 -0
  46. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/__init__.py +0 -0
  48. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  49. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  50. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  51. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  52. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  53. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  54. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  55. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/plan.py +0 -0
  56. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  57. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  58. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  59. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/session.py +0 -0
  60. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  61. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  62. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/__init__.py +0 -0
  63. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  64. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  65. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  66. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  67. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  68. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  69. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  70. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  71. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  72. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  73. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  74. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  75. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  76. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  78. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  79. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  81. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  82. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  83. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  84. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  85. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  86. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  87. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  88. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  89. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  90. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/__init__.py +0 -0
  92. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  93. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  94. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  95. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_executor.py +0 -0
  96. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_factory.py +0 -0
  97. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  98. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  99. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/context_service.py +0 -0
  100. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  101. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  102. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  103. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/init_service.py +0 -0
  104. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  105. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  106. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  107. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  108. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  109. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/plan_validator.py +0 -0
  110. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/planning_service.py +0 -0
  111. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  112. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  113. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  114. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  115. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_planner.py +0 -0
  116. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_replanner.py +0 -0
  118. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_repository.py +0 -0
  119. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/session_service.py +0 -0
  120. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  121. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/update_checker.py +0 -0
  122. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  123. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  124. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  125. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  126. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  127. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  128. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  129. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  130. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/__init__.py +0 -0
  131. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/diff.py +0 -0
  132. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  133. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/io.py +0 -0
  134. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/markdown.py +0 -0
  135. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/paths.py +0 -0
  136. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/serialization.py +0 -0
  137. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/session_notices.py +0 -0
  138. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  139. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/string.py +0 -0
  140. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/core/utils/terminal.py +0 -0
  141. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/prompts.py +0 -0
  142. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/registries/__init__.py +0 -0
  143. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/registries/infrastructure.py +0 -0
  144. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/registries/reviewer.py +0 -0
  145. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/registries/validators.py +0 -0
  146. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/__init__.py +0 -0
  147. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/__init__.py +0 -0
  148. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/config.yaml +0 -0
  149. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/init.context +0 -0
  150. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  151. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  152. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  153. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  154. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  155. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  156. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  157. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/ci.md +0 -0
  158. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/component-design.md +0 -0
  159. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1331 → teddy_cli-0.1.17.dev1332}/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.dev1331
3
+ Version: 0.1.17.dev1332
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.dev1331"
3
+ version = "0.1.17.dev1332"
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 = [
@@ -63,8 +63,8 @@ If you are missing information critical to your immediate goal, gather it effici
63
63
  The entire commit cycle (test, stage, commit) MUST occur in a dedicated Version Control turn. Pushing is deferred to the Conclusion phase.
64
64
 
65
65
  1. Pre-conditions: Clean up temporary files. If recurring script, test, or tool detritus appears, do not just delete it manually: update `.gitignore` or configure the script to write outside tracked directories. If unsure of changes, inspect via `EXECUTE git add . && git diff HEAD`.
66
- 2. Commit Message: Use Conventional Commits `'<type>(<scope>): <description>'` in single quotes (imperative mood; append `!` for breaking changes) on a single line.
67
- 3. Execution: Run `make commit '<type>(<scope>): <description>'`. This stages all local changes (`git add .`) and runs Git's local hooks before committing.
66
+ 2. Commit Message: Use Conventional Commits `"<type>(<scope>): <description>"` in double quotes (imperative mood; plain text without backticks, quotes, or `$`; append `!` for breaking changes) on a single line.
67
+ 3. Execution: Run `make commit "<type>(<scope>): <description>"`. This stages all local changes (`git add .`) and runs Git's local hooks before committing.
68
68
  4. Post-conditions: All tests MUST pass: the post-commit hook reverts automatically on failure and cannot be bypassed.
69
69
  5. Push at Conclusion: In the Conclusion phase, if a remote is configured, run `make push`.
70
70
  6. CI Monitoring: If remote CI is configured and a push occurred, run `make ci-watch` to monitor workflow runs and to inspect results: use `make logs <run-id>` (or `make logs <run-id> '<step-name>'`) for full logs.
@@ -14,7 +14,7 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
14
14
  1. **Case File Check:**
15
15
  If a Case File was not provided in the initial context, READ `docs/templates/case-file.md` and CREATE one following that template.
16
16
  2. **Context and History Gathering:**
17
- Use EXECUTE `git grep`, EXECUTE `git log`, READ, and RESEARCH to understand the codebase, recent changes, and identify the last known green CI run or commit. For historical CI failures, do not try to read the entire log: extract failed step logs by executing `make logs [ID]` (for all failed steps) or `make logs [ID] '[STEP_NAME]'` (for a specific step).
17
+ Use EXECUTE `git grep`, EXECUTE `git log`, READ, and RESEARCH to understand the codebase, recent changes, and identify the last known green CI run or commit. For historical CI failures, do not try to read the entire log: extract failed step logs by executing `make logs [ID]` (for all failed steps) or `make logs [ID] "[STEP_NAME]"` (for a specific step).
18
18
  3. **Diagnostic MRE and Platform Check:**
19
19
  Trigger the symptom: if an existing command, test, or CI failure exists, execute it to observe the failure live. If the bug is reported verbally or without an existing test, write a targeted probe script in `spikes/debug/{scope-slug}/` to trigger the symptom.
20
20
 
@@ -26,7 +26,7 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
26
26
  - **Probe file:**
27
27
  consolidate diagnostic logic into the single shell entry point `spikes/debug/probe.sh`. Read `docs/templates/makefile.md` for the probe script pattern. Output must be written to `spikes/debug/probe_output.txt` for artifact upload, using the single-file Heredoc pattern.
28
28
  - **Execution:**
29
- use `make probe '<reason>'` to push the probe, trigger the workflow, and retrieve logs.
29
+ use `make probe "<reason>"` to push the probe, trigger the workflow, and retrieve logs.
30
30
 
31
31
  ### Investigation
32
32
  **Goal:** Peel back internal layers to resolve discrepancies and update the Causal Model.
@@ -70,22 +70,22 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
70
70
  7. **Impact Audit:**
71
71
  Analyze components touched by the proposed fix. Use EXECUTE `git grep` to search for direct upstream callers (including test files and harness fixtures) and downstream dependencies (for orphaned code, unused parameters, or dead functions) that the change affects. If the fix modifies a shared port, signature, or data contract with multiple consumers, document the required migration path so the Developer can partition the change into non-breaking steps.
72
72
  8. **Case File Synchronization:**
73
- EDIT the Case File to update Diagnostic Analysis, verify the Causal Model reflects sandbox reality, and record the proven fix along with affected components in the Solution section. Set status to Resolved.
73
+ EDIT the Case File to update Diagnostic Analysis. Verify the Causal Model reflects observed reality. Ensure that all items under Discrepancies are explained and marked resolved with `[x]` before advancing to Alignment. Record the verified root cause in the Solution section. Explicitly state whether the fix was directly resolved in `src/` or proven in the sandbox replica. Record affected components in the Solution section. Set status to Resolved in the Case File metadata.
74
74
 
75
75
  ### Alignment
76
76
  **Goal:** Present the complete diagnosis and proposed fix for explicit user approval.
77
77
 
78
78
  1. **Synthesis Presentation:**
79
- Message the user explaining the root cause analysis, verified MRE evidence, affected components, and the proven solution from the Case File in clear prose.
79
+ Message the user explaining the root cause, verified MRE evidence, affected components, and the proven solution from the Case File in clear prose.
80
80
  2. **Approval Gate:**
81
81
  Await explicit user approval before proceeding to the Conclusion phase. If changes or refinements are requested, adjust the Case File, then re-align.
82
82
 
83
83
  ### Conclusion
84
- **Goal:** Clean up the workspace, commit changes, push, and hand off to the Developer.
84
+ **Goal:** Clean up the workspace, commit changes, push, and conclude or hand off.
85
85
 
86
86
  1. **Cleanup:**
87
87
  Delete incidental temporary logs and throwaway probes. If recurring script, test, or tool detritus appears, do not just delete it manually: update `.gitignore` or configure the script to write outside tracked directories. You must preserve the final MRE script and replica proof in `spikes/debug/{scope-slug}/` and link them from the Case File.
88
88
  2. **Commit and Push:**
89
- Run `make commit` to commit the Case File, preserved MRE, and replica proof. If a remote is configured, run `make push`. If blocking test failures occur, fix them immediately and push again. For non-blocking quality gate issues, address them if contained or record them in the roadmap in `docs/project/PROJECT.md`.
90
- 3. **Handoff:**
91
- Message the user with instructions to start a new session with the Developer to implement the fix, including the Case File as a reference file.
89
+ Run `make commit` to commit all changes, including the Case File, preserved MRE, replica proof, and direct fixes. If a remote is configured, run `make push`. If blocking test failures occur, fix them immediately and push again. For non-blocking quality gate issues, address them if contained or record them in the roadmap in `docs/project/PROJECT.md`.
90
+ 3. **Handoff and Completion:**
91
+ If the fix was resolved directly, message the user with a terminal completion summary. In this case, do not provide a handoff command. If the fix requires developer implementation, message the user with instructions to start a session with the Developer, including the Case File as a reference file.
@@ -31,8 +31,9 @@ Continuously log diagnostic attempts and findings in chronological order:
31
31
  2. Investigated whether [hypothesis] by [action/probe]; observed [outcome], which [conclusion].
32
32
 
33
33
  ## Solution
34
- ### Root Cause Analysis
35
- Summary of verified root cause and sandbox fix.
34
+ ### Root Cause
35
+ Summary of the verified root cause and whether the fix was directly applied to production code or proven in the sandbox replica.
36
36
 
37
37
  ### Affected Components
38
- Direct upstream callers, downstream dependencies, or shared contracts affected by the fix.
38
+ Direct upstream callers, downstream dependencies, or shared contracts affected by the fix:
39
+ - `ComponentName`: Description of changes required or completed.
@@ -9,7 +9,7 @@ and the Debugger's Remote Probing Protocol (RPP). Below are concrete examples ad
9
9
 
10
10
  ### Commit
11
11
  ```shell
12
- make commit 'feat(templates): add PROJECT.md template'
12
+ make commit "feat(templates): add PROJECT.md template"
13
13
  ```
14
14
 
15
15
  **What is `.PHONY`?**
@@ -38,16 +38,16 @@ make test
38
38
 
39
39
  ### Probe
40
40
  ```shell
41
- make probe 'investigate windows path handling'
41
+ make probe "investigate windows path handling"
42
42
  ```
43
43
 
44
44
  **Why does `probe` need a reason?**
45
- The Remote Probing Protocol requires a reason string because it is passed as the `reason` input to the GitHub Actions workflow dispatch command (`gh workflow run debug.yml --field reason='...'`). The reason documents what the probe is investigating and appears in the workflow run metadata.
45
+ The Remote Probing Protocol requires a reason string because it is passed as the `reason` input to the GitHub Actions workflow dispatch command (`gh workflow run debug.yml --field reason="..."`). The reason documents what the probe is investigating and appears in the workflow run metadata.
46
46
 
47
47
  ### Logs
48
48
  ```shell
49
49
  make logs 12345 # extract logs for ALL failed steps
50
- make logs 12345 'Run tests' # extract logs for a specific step (substring match)
50
+ make logs 12345 "Run tests" # extract logs for a specific step (substring match)
51
51
  ```
52
52
 
53
53
  **How does `make logs` work?**
@@ -82,11 +82,13 @@ EOF
82
82
 
83
83
  ## Cross-Platform Design
84
84
 
85
- The Makefile uses Make's built-in `-` prefix for error suppression (`-pre-commit run`) instead of shell-level `|| true` or `&&`/`||` chaining. This ensures cross-platform compatibility:
85
+ Always use GNU Make native features for cross-platform compatibility instead of shell-specific constructs:
86
86
 
87
- - **POSIX shells (bash, sh, zsh):** `-` prefix works because Make handles error suppression natively before passing the recipe line to the shell.
88
- - **Windows (cmd.exe):** `-` prefix works because Make suppresses the exit code check, avoiding shell-specific `||` operators that cmd.exe does not support.
89
- - **Error transparency:** The pre-commit pass is advisory. If it fails, the commit still succeeds locally. The post-commit test gate acts as the safety net. `make push` runs `git pull --rebase` and `git push` WITHOUT suppression, so a rebase conflict or push rejection surfaces as a non-zero exit.
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
+ - **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
+ - **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.
90
+ - **Native error suppression:** The Makefile uses Make's built-in `-` prefix (`-pre-commit run`) instead of shell-level `|| true` or `&&`/`||` chaining. Make suppresses non-zero exit codes natively before passing lines to the shell.
91
+ - **Error transparency:** The pre-commit pass is advisory. If it fails, the commit still succeeds locally. The post-commit test gate acts as the safety net. `make push` runs `git pull --rebase` and `git push` without suppression, so a rebase conflict or push rejection surfaces as a non-zero exit.
90
92
 
91
93
  ## Test Workflow
92
94
 
@@ -115,27 +117,27 @@ test:
115
117
  commit: ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
116
118
 
117
119
  commit:
118
- @[ -n "$(ARGS)" ] || { echo "Usage: make commit '<message>'"; exit 1; }
120
+ $(if $(strip $(ARGS)),,$(error Usage: make commit '<message>'))
119
121
  git add .
120
122
  -pre-commit run
121
123
  git add .
122
124
  git commit -m "$(ARGS)"
123
125
 
124
- %:
125
- @:
126
+ # Empty recipe absorbs extra arguments without invoking a subshell.
127
+ %: ;
126
128
  ```
127
129
 
128
130
  **Usage:**
129
131
  - `make commit 'feat(templates): add PROJECT.md template'`
130
132
 
131
- **Message-input contract:** the recipe captures the message from the extra `make` goals via `$(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))`. Supported input (verified by the `spikes/debug/make-args/` findings):
133
+ **Message-input contract:** the recipe captures the message from the extra `make` goals via `$(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))`. Supported input:
132
134
 
133
- - ✅ **Single-line Conventional Commits survive verbatim** — e.g. `make commit 'feat(scope): add thing'`.
134
- - ❌ **`$VAR` is swallowed to empty** — `make` expands `$(...)`/`$X` before the recipe runs; avoid `$`.
135
- - ❌ **Backticks and quotes are stripped** by the shell quoting layer.
136
- - ❌ **Multiline messages fail hard** (`/bin/sh: unexpected EOF`, exit 2).
135
+ - ✅ **Single-line Conventional Commits in double quotes survive verbatim** — e.g. `make commit "feat(scope): add thing"`. Always use double quotes across all operating systems.
136
+ - ❌ **`$VAR` is swallowed or expanded** — `make` and shells expand `$(...)`/`$X`; avoid `$`.
137
+ - ❌ **Backticks trigger command substitution** in POSIX shells when inside double quotes; avoid backticks.
138
+ - ❌ **Multiline messages fail hard** (`unexpected EOF`).
137
139
 
138
- **Guard:** keep the commit message to a single line and avoid `$` characters.
140
+ **Guard:** keep the commit message to a single line in double quotes, and write plain text without `$`, backticks, or nested quotes.
139
141
 
140
142
  ## Push (Deferred to Conclusion)
141
143
 
@@ -272,7 +274,7 @@ ci-watch:
272
274
  probe: REASON := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
273
275
 
274
276
  probe:
275
- @[ -n "$(REASON)" ] || { echo "Usage: make probe '<reason>'"; exit 1; }
277
+ $(if $(strip $(REASON)),,$(error Usage: make probe '<reason>'))
276
278
  git add -f spikes/debug/probe.sh
277
279
  git commit -m 'debug: probe' --no-verify --allow-empty
278
280
  git push
@@ -297,15 +299,15 @@ logs: LOGS_RUN := $(word 2,$(MAKECMDGOALS))
297
299
  logs: LOGS_STEP := $(wordlist 3,99,$(MAKECMDGOALS))
298
300
 
299
301
  logs:
300
- @[ -n "$(LOGS_RUN)" ] || { echo "Usage: make logs <run-id> ['<step-name>']"; exit 1; }
302
+ $(if $(strip $(LOGS_RUN)),,$(error Usage: make logs <run-id> ['<step-name>']))
301
303
  @if [ -z "$(LOGS_STEP)" ]; then \
302
304
  gh run view "$(LOGS_RUN)" --log-failed 2>/dev/null | awk -F'\t' '{ if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/,"Error: ",l); print l }'; \
303
305
  else \
304
306
  gh run view "$(LOGS_RUN)" --log 2>/dev/null | awk -F'\t' -v step="$(LOGS_STEP)" 'index($$2, step) > 0 { if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/, "Error: ", l); print l }'; \
305
307
  fi
306
308
 
307
- %:
308
- @:
309
+ # Empty recipe absorbs extra arguments without invoking a subshell.
310
+ %: ;
309
311
  ```
310
312
 
311
313
  **Usage:**