teddy-cli 0.1.17.dev1416__tar.gz → 0.1.17.dev1418__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 (165) hide show
  1. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/MRP.md +2 -2
  4. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/debugger.md +1 -1
  5. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/makefile.md +26 -5
  6. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/.gitignore +0 -0
  7. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/LICENSE +0 -0
  8. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/README.md +0 -0
  9. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/__main__.py +0 -0
  11. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  14. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  15. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  16. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  17. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  18. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  19. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  20. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  21. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  22. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  23. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  24. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  25. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  26. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  27. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  28. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  29. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  30. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  31. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  32. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  33. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  34. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  36. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  37. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  39. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  41. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/container.py +0 -0
  45. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  48. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  49. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  50. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
  51. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  52. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  53. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  54. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  55. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/plan.py +0 -0
  56. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  57. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  58. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  59. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/session.py +0 -0
  60. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  61. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  62. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/__init__.py +0 -0
  63. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  64. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  65. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  66. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  67. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  68. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  69. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  70. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  71. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  72. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  73. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  74. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  75. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  76. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  78. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  79. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  81. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  82. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  83. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  84. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  85. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  86. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  87. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  88. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  89. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  90. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/__init__.py +0 -0
  92. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  93. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  94. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  95. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_executor.py +0 -0
  96. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_factory.py +0 -0
  97. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  98. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  99. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/context_service.py +0 -0
  100. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  101. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  102. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  103. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/init_service.py +0 -0
  104. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  105. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  106. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  107. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  108. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  109. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/plan_validator.py +0 -0
  110. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/planning_service.py +0 -0
  111. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  112. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  113. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  114. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  115. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_planner.py +0 -0
  116. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_replanner.py +0 -0
  118. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_repository.py +0 -0
  119. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/session_service.py +0 -0
  120. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  121. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/update_checker.py +0 -0
  122. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  123. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  124. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  125. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  126. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  127. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  128. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  129. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  130. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/__init__.py +0 -0
  131. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/diff.py +0 -0
  132. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/editor_names.py +0 -0
  133. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  134. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
  135. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/io.py +0 -0
  136. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/markdown.py +0 -0
  137. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/paths.py +0 -0
  138. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/serialization.py +0 -0
  139. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/session_notices.py +0 -0
  140. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  141. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/string.py +0 -0
  142. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/core/utils/terminal.py +0 -0
  143. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/prompts.py +0 -0
  144. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/registries/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/registries/infrastructure.py +0 -0
  146. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/registries/reviewer.py +0 -0
  147. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/registries/validators.py +0 -0
  148. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/__init__.py +0 -0
  149. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/__init__.py +0 -0
  150. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/config.yaml +0 -0
  151. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/init.context +0 -0
  152. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  153. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  154. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  155. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  156. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  157. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  158. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  159. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/case-file.md +0 -0
  160. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/ci.md +0 -0
  161. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/component-design.md +0 -0
  162. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/milestone.md +0 -0
  163. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  164. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  165. {teddy_cli-0.1.17.dev1416 → teddy_cli-0.1.17.dev1418}/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.dev1416
3
+ Version: 0.1.17.dev1418
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.dev1416"
3
+ version = "0.1.17.dev1418"
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 = [
@@ -56,7 +56,7 @@ Every EXECUTE action runs in a fresh subshell rooted at the project root (CWD).
56
56
 
57
57
  ### Information Gathering Workflow
58
58
 
59
- If you are missing information critical to your immediate goal, gather it efficiently without getting sidetracked. You can chain multiple discovery actions in one turn. Discover locally via `EXECUTE` (`git grep`) and externally via `RESEARCH`. Never rely on search snippets; always `READ` target URLs. For opaque sources (JavaScript-rendered pages, PDFs, binary formats) where `READ` fails or yields unusable content, `CREATE` and `EXECUTE` a minimal extraction script to inspect the raw data or API. If static reading leaves behavioral ambiguity, validate assumptions via a minimal spike in `spikes/`. Check flags with `[tool] --help` before running complex CLI commands.
59
+ If you are missing information critical to your immediate goal, gather it efficiently without getting sidetracked. You can chain multiple discovery actions in one turn. Discover locally via `EXECUTE` (`git grep`) and externally via `RESEARCH`. Never rely on search snippets; always `READ` target URLs. For opaque sources (JavaScript-rendered pages, PDFs, binary formats) where `READ` fails or yields unusable content, `CREATE` and `EXECUTE` a minimal extraction script to inspect the raw data or API. If static reading leaves behavioral ambiguity, validate assumptions via a minimal spike in `spikes/`. Check flags with `[tool] --help` before running complex CLI commands. To read CI logs, use `make logs RUN=<run-id>` for all failed steps, or `make logs RUN=<run-id> STEP="<step-name>"` for one step.
60
60
 
61
61
  ### Version Control
62
62
 
@@ -67,7 +67,7 @@ The entire commit cycle (test, stage, commit) MUST occur in a dedicated Version
67
67
  3. Execution: Run `make commit MSG="<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
- 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=<run-id>` (or `make logs RUN=<run-id> STEP="<step-name>"`) for full logs.
70
+ 6. CI Monitoring: If remote CI is configured and a push occurred, run `make ci-watch` to monitor workflow runs. If needed inspect details using `make logs`.
71
71
 
72
72
  ### Standardized Plan Types
73
73
 
@@ -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, CREATE one following the case file template and path conventions.
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 RUN=[ID]` (for all failed steps) or `make logs RUN=[ID] STEP="[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 pull the failed step logs.
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
 
@@ -91,10 +91,10 @@ EOF
91
91
 
92
92
  Always use GNU Make native features for cross-platform compatibility instead of shell-specific constructs:
93
93
 
94
- - **Native argument validation:** Use `$(if $(strip $(VAR)),,$(error Usage: ...))` instead of POSIX `[ -n "$$VAR" ]`. GNU Make validates parameters before spawning any shell process.
94
+ - **Required input validation:** Reject a missing required input in a parse-time block, not in the recipe. Make runs the check while it reads the file, so it aborts before any prerequisite and before any shell process starts. See [Parse-Time Input Validation](#parse-time-input-validation).
95
95
  - **Named inputs instead of positional goals:** Pass values as `NAME="value"`, as in `make commit MSG="feat(scope): add thing"`. GNU Make treats a command-line assignment as a variable, so no word of the value can become a goal. Positional capture through `$(MAKECMDGOALS)` is forbidden, because a word that names a real target executes that target.
96
96
  - **Parse-time goal validation:** Compare `$(MAKECMDGOALS)` against a `_KNOWN_GOALS` list and abort with `$(error ...)` when a goal is unknown or when more than one goal is present. The check runs while Make reads the file, so no recipe line can run first.
97
- - **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`.
97
+ - **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`. A missing required input aborts at parse time, before the tool gate runs.
98
98
  - **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.
99
99
  - **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.
100
100
  - **Portable quoting:** Pass values with double quotes, as in `--field reason="..."`, because Windows `cmd.exe` keeps single quotes literally.
@@ -102,6 +102,28 @@ Always use GNU Make native features for cross-platform compatibility instead of
102
102
  - **Explicit advisory fallback:** The advisory pre-commit pass consumes its own exit code with `|| echo "<sentence>"`, so a failing run prints one plain sentence. Make's `-` prefix is forbidden here, because it prints a bare `Error 1 (ignored)` line that reads as an unexplained defect.
103
103
  - **Error transparency:** The first pre-commit pass is advisory, so its non-zero exit is ignored and auto-fixed files are re-staged. Git then runs the same hooks again during `git commit`, and that second run is the blocking local gate. A hook failure there aborts the commit. The post-commit test gate is the final 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.
104
104
 
105
+ ### Parse-Time Input Validation
106
+
107
+ A required input is rejected while Make reads the file, so the check runs before any prerequisite and before any shell process starts. A recipe-level check is forbidden, because it runs after the `_preflight` prerequisite.
108
+
109
+ ```makefile
110
+ ifneq ($(filter commit,$(MAKECMDGOALS)),)
111
+ ifeq ($(strip $(MSG)),)
112
+ $(error Usage: make commit MSG="<type>(<scope>): <description>")
113
+ endif
114
+ endif
115
+ ifneq ($(filter probe,$(MAKECMDGOALS)),)
116
+ ifeq ($(strip $(REASON)),)
117
+ $(error Usage: make probe REASON="<reason>")
118
+ endif
119
+ endif
120
+ ifneq ($(filter logs,$(MAKECMDGOALS)),)
121
+ ifeq ($(strip $(RUN)),)
122
+ $(error Usage: make logs RUN=<run-id> [STEP="<step-name>"])
123
+ endif
124
+ endif
125
+ ```
126
+
105
127
  ## Test Workflow
106
128
 
107
129
  ### Example
@@ -127,7 +149,6 @@ test:
127
149
 
128
150
  ```makefile
129
151
  commit:
130
- $(if $(strip $(MSG)),,$(error Usage: make commit MSG="<type>(<scope>): <description>"))
131
152
  git add .
132
153
  @uv run pre-commit run || echo "Advisory pre-commit reported issues. Auto-fixed files were re-staged and the commit continues."
133
154
  git add .
@@ -302,7 +323,6 @@ ci-watch: _preflight
302
323
  probe: _preflight
303
324
 
304
325
  probe:
305
- $(if $(strip $(REASON)),,$(error Usage: make probe REASON="<reason>"))
306
326
  git add -f spikes/debug/probe.sh
307
327
  git commit -m "debug: probe" --no-verify --allow-empty
308
328
  git push
@@ -336,8 +356,9 @@ The Debugger's Reproduction phase needs to read CI logs without drowning in the
336
356
  ### Example
337
357
 
338
358
  ```makefile
359
+ logs: _preflight
360
+
339
361
  logs:
340
- $(if $(strip $(RUN)),,$(error Usage: make logs RUN=<run-id> [STEP="<step-name>"]))
341
362
  @if [ -z "$(STEP)" ]; then \
342
363
  gh run view "$(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 }'; \
343
364
  else \