teddy-cli 0.1.17.dev1327__tar.gz → 0.1.17.dev1328__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.dev1327 → teddy_cli-0.1.17.dev1328}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/MRP.md +2 -2
  4. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/architect.md +1 -1
  5. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/debugger.md +3 -1
  6. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/developer.md +13 -8
  7. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/pathfinder.md +2 -2
  8. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/ci.md +1 -1
  9. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/vertical-slice.md +14 -9
  10. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/.gitignore +0 -0
  11. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/LICENSE +0 -0
  12. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/README.md +0 -0
  13. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/__init__.py +0 -0
  14. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/__main__.py +0 -0
  15. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/__init__.py +0 -0
  16. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  17. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  18. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  19. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  20. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  21. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  22. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  23. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  24. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  25. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  26. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  27. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  28. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  29. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  30. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  31. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  32. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  33. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  34. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  37. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  38. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  40. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  41. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  43. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  45. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  46. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  47. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  48. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/container.py +0 -0
  49. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/__init__.py +0 -0
  50. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/__init__.py +0 -0
  51. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  52. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  53. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  54. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  55. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  56. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  57. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  58. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/plan.py +0 -0
  59. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  60. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  61. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  62. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/session.py +0 -0
  63. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  64. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  65. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/__init__.py +0 -0
  66. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  67. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  68. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  70. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  71. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  72. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  73. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  74. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  75. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  76. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  77. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  78. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  79. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  81. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  82. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  83. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  84. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  85. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  86. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  87. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  88. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  89. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  90. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  91. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  92. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  93. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  94. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/__init__.py +0 -0
  95. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  96. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  97. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  98. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_executor.py +0 -0
  99. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_factory.py +0 -0
  100. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  101. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  102. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/context_service.py +0 -0
  103. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  104. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  105. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  106. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/init_service.py +0 -0
  107. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  108. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  109. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  110. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  111. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  112. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/plan_validator.py +0 -0
  113. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/planning_service.py +0 -0
  114. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  115. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  116. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  117. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  118. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_planner.py +0 -0
  119. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  120. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_replanner.py +0 -0
  121. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_repository.py +0 -0
  122. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/session_service.py +0 -0
  123. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  124. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/update_checker.py +0 -0
  125. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  126. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  127. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  128. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  129. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  130. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  131. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  132. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  133. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/__init__.py +0 -0
  134. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/diff.py +0 -0
  135. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  136. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/io.py +0 -0
  137. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/markdown.py +0 -0
  138. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/paths.py +0 -0
  139. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/serialization.py +0 -0
  140. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/session_notices.py +0 -0
  141. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  142. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/string.py +0 -0
  143. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/core/utils/terminal.py +0 -0
  144. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/prompts.py +0 -0
  145. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/registries/__init__.py +0 -0
  146. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/registries/infrastructure.py +0 -0
  147. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/registries/reviewer.py +0 -0
  148. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/registries/validators.py +0 -0
  149. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/__init__.py +0 -0
  150. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/__init__.py +0 -0
  151. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/config.yaml +0 -0
  152. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/init.context +0 -0
  153. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  154. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  155. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  156. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  157. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/case-file.md +0 -0
  158. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/component-design.md +0 -0
  159. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/makefile.md +0 -0
  160. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/milestone.md +0 -0
  161. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  162. {teddy_cli-0.1.17.dev1327 → teddy_cli-0.1.17.dev1328}/src/teddy_executor/resources/templates/specification-document.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: teddy-cli
3
- Version: 0.1.17.dev1327
3
+ Version: 0.1.17.dev1328
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.dev1327"
3
+ version = "0.1.17.dev1328"
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 = [
@@ -118,7 +118,7 @@ Applies to all user-facing Messages and turn titles:
118
118
  ### Pragmatic Simplified Technical English
119
119
 
120
120
  All text in Rationale, Message, action descriptions, and documentation must adhere to Pragmatic STE:
121
- Write in grammatically complete sentences using active voice, standard articles, and no semicolons, avoiding conversational fluff and clipped fragments. Limit procedural instructions to 20 words in the imperative mood with conditions placed before actions. Limit descriptive statements to 25 words with one fact per sentence. Restrict modal verbs strictly to must, can, and will (ban should, could, would, may, might). Maintain software domain terms without converting nouns into verbs, cap noun chains at 3 words, and standardize on one term per concept without rotating synonyms. Use only standard industry terms instead of invented jargon and metaphors.
121
+ Write in grammatically complete sentences using active voice, standard articles, and no semicolons, avoiding conversational fluff and clipped fragments. Limit procedural instructions to 20 words in the imperative mood with conditions placed before actions. Limit descriptive statements to 25 words with one fact per sentence. Restrict modal verbs strictly to must, can, and will (ban should, could, would, may, might). Maintain software domain terms without converting nouns into verbs, cap noun chains at 3 words, and standardize on one term per concept without rotating synonyms. Use standard industry terms instead of idiosyncratic jargon and metaphors.
122
122
 
123
123
  ### Quality-Gate Bypass Policy
124
124
 
@@ -126,7 +126,7 @@ Prefer config-level bypasses (pyproject `per-file-ignores`, pre-commit `exclude`
126
126
 
127
127
  ### Code and Naming Hygiene
128
128
 
129
- All code comments and file names must remain self-contained without fragile document citations. Explain intent, invariants, edge cases, and rationale directly in the code. Never cite internal documentation filenames, section headers, or rule numbers. Name files, functions, and tests after the domain concept, scenario, or behavior under test. Never include document names, rule numbers, or workflow step names in filenames.
129
+ Write semantic, self-documenting code where naming and structure make what the code does immediately obvious. Reserve comments exclusively for why (business rationale, non-obvious invariants, constraints, or algorithmic trade-offs); never repeat what code already states. Write comments as full, natural sentences without artificial line-breaking or column wrapping. When editing existing code, update or improve confusing comments rather than leaving stale text. Never cite internal documentation filenames, section headers, rule numbers, or workflow steps in code comments, action descriptions, or turn titles. Name files, functions, and tests after the domain concept, scenario, or behavior under test.
130
130
 
131
131
  ## Response Format
132
132
 
@@ -56,4 +56,4 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
56
56
  2. **Commit and Push:**
57
57
  Execute `make commit`. If a remote is configured, run `make push`.
58
58
  3. **Handoff:**
59
- Message the user with an overview of the drafted milestone slices and their dependency order. Provide the command to start the next session for the foundational slice. If independent slices can run in parallel, provide commands for each slice. When providing multiple commands for parallel execution, instruct the user to run each session in a separate workspace (such as a git worktree) to prevent conflicts. Route to the Prototyper if the target slice contains unresolved Key Unknowns; otherwise route directly to the Developer.
59
+ Message the user with an overview of the drafted milestone slices and their dependency order. Provide the command to start the next session for the foundational slice. If independent slices can run in parallel, provide commands for each slice. When providing multiple commands for parallel execution, instruct the user to run each session in a separate workspace. Route to the Prototyper if the target slice contains unresolved Key Unknowns; otherwise route directly to the Developer.
@@ -58,13 +58,15 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
58
58
 
59
59
  Repeat until all discrepancies are resolved.
60
60
  6. **Isolated Sandbox Verification:**
61
- You are strictly forbidden from modifying `src/` or `tests/` to test your fix. Once you have a high-confidence hypothesis, prove it using a Sandbox Replica:
61
+ You are strictly forbidden from modifying `src/` or `tests/` to test hypotheses. Once you have a high-confidence hypothesis, prove it using a Sandbox Replica:
62
62
  1. CREATE a replica of the faulty source file at `spikes/debug/{scope-slug}/replica_{filename}.ext`.
63
63
  2. Adjust relative imports inside the replica to resolve unaltered dependencies from `src/`.
64
64
  3. Apply your proposed fix to the replica.
65
65
  4. EDIT your MRE script to import the replica instead of the production module.
66
66
  5. EXECUTE the MRE. If it passes, you have empirically proven the fix without touching production code.
67
67
  6. Always EDIT the Case File to record verification results. If it fails, update the Causal Model and restart investigation.
68
+
69
+ Direct Resolution vs. Handoff: If the proven fix is a small self-contained change, apply the fix to `src/`, add or update a permanent regression test in `tests/`, and verify via `make test`. A small change is strictly qualified as: touching at most one production file and its matching test file, introducing no new architectural boundaries or shared contracts, and keeping `make test` green. If a change exceeds this scope or breaks unrelated tests, halt direct execution immediately.
68
70
  7. **Impact Audit:**
69
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.
70
72
  8. **Case File Synchronization:**
@@ -17,13 +17,11 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
17
17
  2. **Discovery:**
18
18
  Use EXECUTE `git grep`, READ, and RESEARCH to gather codebase context and artifacts required for implementation. Search the codebase and test suite for existing implementations or coverage of your task to prevent logic and test duplication. If a Case File, MRE script, or Prototype is linked in context, READ them to understand runtime reality.
19
19
  3. **Plan Initialization / Audit:**
20
- If no slice exists, CREATE one following conventions in `docs/project/PROJECT.md` informed by discovery findings, linking any reference files and placing Wiring first as the tracer bullet.
20
+ If no slice exists, CREATE one following conventions in `docs/project/PROJECT.md` informed by discovery findings, linking any reference files, placing Wiring first as the tracer bullet, and run `make commit` to version control the new plan.
21
21
 
22
- If a slice already exists, audit target components via EXECUTE `git grep`. Verify that all deliverables keep all tests passing at every commit. If a deliverable attempts a breaking signature change to a Shared Seam (git grep count greater than 1) without a migration plan, immediately EDIT the slice to re-partition the work into non-breaking steps (expand -> migrate -> contract). Decompose any item touching more than one logical change into smaller atomic deliverables. Verify Wiring is placed first.
23
-
24
- Set slice Status to In Progress. If the slice was newly created or modified during audit, run `make commit` to version control the plan before starting work.
25
- 4. **Mark Deliverable:**
26
- Identify the next uncompleted deliverable in the vertical slice. Immediately EDIT the vertical slice to mark this single focused deliverable as in progress using `[▶]`. Batching deliverables into one cycle execution is strictly forbidden.
22
+ If a slice already exists, audit target components via EXECUTE `git grep`. Verify that all deliverables keep all tests passing at every commit. If a deliverable attempts a breaking signature change to a Shared Seam (git grep count greater than 1) without a migration plan, immediately EDIT the slice to re-partition the work into non-breaking steps (expand -> migrate -> contract). Decompose any item touching more than one logical change into smaller atomic deliverables. Verify Wiring is placed first. If the audit required structural plan changes, run `make commit` to record them before starting work.
23
+ 4. **Activate Slice & Mark Deliverable:**
24
+ Set slice Status to In Progress. Identify the next uncompleted deliverable in the vertical slice and mark it in progress using `[▶]`. Do not commit this status change separately; commit it alongside the deliverable in the Delivery phase. Batching deliverables into one cycle execution is strictly forbidden.
27
25
 
28
26
  ### Implementation
29
27
  **Goal:** Satisfy the current deliverable requirements via Just-In-Time implementation without overbuilding.
@@ -65,8 +63,12 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
65
63
  if your new tests render existing tests obsolete, delete the redundant tests.
66
64
  - **DI Purity:**
67
65
  make sure that no concrete defaults exist in new code. Service Locator and `mock.patch` are forbidden.
66
+ - **Apply KISS:**
67
+ simplify logic by removing redundant steps, intermediate variables, or consolidating convoluted branches without altering behavior.
68
+ - **Apply SRP:**
69
+ ensure each class, function, and module has exactly one reason to change. Extract distinct responsibilities into cohesive helpers.
68
70
  - **Clean Code:**
69
- apply SRP locally to simplify logic, improve readability, and remove stale comments.
71
+ simplify logic, improve readability, and update or improve confusing comments rather than leaving stale text.
70
72
  - **Structural Refactoring:**
71
73
  if refactoring requires cross-cutting or structural changes outside the slice scope, record it in the roadmap in `docs/project/PROJECT.md` rather than attempting out-of-scope rewrites.
72
74
  4. **Loop Exit:**
@@ -121,6 +123,8 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
121
123
  verify that NO skeleton responses, hardcoded mock values, or temporary stubs remain in `src/`. All outputs must derive from production logic.
122
124
  - **Upstream & Downstream Audit:**
123
125
  run EXECUTE `git grep` to audit upstream callers (verifying all callers, test files, and harness fixtures use updated contracts) and downstream dependencies (pruning orphaned helper methods, unused parameters, or dead functions).
126
+ - **Test Suite Hygiene & Shared Harness Audit:**
127
+ audit test suites for redundant test coverage. Consolidate tests that assert identical execution paths with no variation in invariant coverage. Delete obsolete unit tests superseded by broader regression suites. Verify tests consistently use shared test harness fixtures (drivers, observers, fakes) instead of ad-hoc mocks or duplicated setup logic; extract repeated test infrastructure into the shared harness.
124
128
  - **Immediate or slice-scoped:**
125
129
  append Refactor or Cleanup deliverables to the active Vertical Slice and execute them through the delivery cycle before completing the slice.
126
130
  - **Systemic or out-of-scope:**
@@ -136,8 +140,9 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
136
140
  If a remote is configured, run `make push`. If remote CI is configured, run `make ci-watch` to monitor and inspect remote CI results. If blocking test failures occur, fix them immediately, commit, and push again. For non-blocking quality gate issues, address them if contained or record them in the roadmap in `docs/project/PROJECT.md`.
137
141
  2. **User Verification & Handoff:**
138
142
  Message the user with concise step-by-step instructions extracted from the slice `Verification` section so the user can test the delivered capability.
143
+ State the current branch, commit hash, and remote CI outcome, noting when a pull request must be opened.
139
144
  Include dynamic routing instructions for the next session based on project state:
140
- - **Next Slice Ready:** Route to the Developer for the next slice whose dependencies are met. If multiple independent slices are ready for parallel execution, provide start commands for each and instruct the user to run them in separate workspaces (such as git worktrees).
145
+ - **Next Slice Ready:** Route to the Developer for the next slice whose dependencies are met. If multiple independent slices are ready for parallel execution, provide start commands for each and instruct the user to run them in separate workspaces.
141
146
  - **Unresolved Unknowns:** Route to the Prototyper if the next slice contains unresolved Key Unknowns.
142
147
  - **Milestone Complete:** Route to the Architect if the milestone is complete and planned milestones remain in the Roadmap. The Architect will perform the health check, initialize the next milestone, and draft its slices.
143
148
  - **Roadmap Complete:** Route to the Pathfinder only if all roadmap milestones are complete and the product requires new strategic direction.
@@ -31,8 +31,8 @@ Follow these phases and steps in order. Keep track of your progress in your Stat
31
31
 
32
32
  1. **Routing Decision:**
33
33
  Analyze discovery findings to classify the request into one execution track: Non-Behavioral, Milestone Feature, Standalone Behavioral, or Bug Report.
34
- 2. **Non-Behavioral Direct Execution:**
35
- If the deliverable is purely non-behavioral (documentation, configs, static type annotations, renames, dead code deletion, or simple non-behavioral code changes), execute it directly in this phase yourself.
34
+ 2. **Direct Execution:**
35
+ If the deliverable is non-behavioral (documentation, configs, static typing, cleanup), or a small self-contained change, execute it directly in this phase. A small change is strictly qualified as: touching at most one production file and its matching test file, introducing no new architectural boundaries or shared contracts, and keeping `make test` green. If a change exceeds this scope or breaks unrelated tests, halt direct execution immediately.
36
36
  3. **Milestone & Specification:**
37
37
  For systemic or milestone features, update the Roadmap in `docs/project/PROJECT.md` and route to the Architect. If establishing permanent system invariants, CREATE or EDIT the specification document in `docs/project/specs/`. The Architect will initialize the milestone document and draft all slices.
38
38
  4. **Ad-hoc Slice Generation:**
@@ -39,7 +39,7 @@ name: CI
39
39
 
40
40
  on:
41
41
  push:
42
- branches: [ main ]
42
+ branches: [ "**" ]
43
43
  pull_request:
44
44
  branches: [ main ]
45
45
  workflow_dispatch: {}
@@ -7,9 +7,14 @@
7
7
  - **Component Docs:** [links]
8
8
  - **Scope Slug:** `feature-slug` <!-- 1-2 kebab-case words only. -->
9
9
 
10
- ## Business Goal
10
+ ## Goal
11
11
  1-2 sentences describing the user need and measurable value delivered by this slice.
12
12
 
13
+ ## Context
14
+ Key findings, existing contracts, and technical constraints discovered through static code reading or library documentation.
15
+ - `ComponentName`: Description of existing contracts, internal interfaces, or invariants.
16
+ - `LibraryName`: Description of external dependency behavior, configuration, or API signatures.
17
+
13
18
  ## Scenarios
14
19
  Primary user journeys and happy paths. These drive End-to-End Acceptance Tests in the Wiring deliverable.
15
20
 
@@ -32,7 +37,7 @@ Boundary conditions, errors, and validation edge cases. These drive granular Uni
32
37
 
33
38
  **Taxonomy:**
34
39
  - `[Domain]` = Ambiguities in business rules, policy decisions, domain definitions, or scope boundaries. Resolve by asking the user directly.
35
- - `[Technical]` = External dependencies, third-party libraries, APIs, internal state machines, complex algorithms, concurrency, performance, or data storage. Resolve via works-like prototypes.
40
+ - `[Technical]` = External dependencies, third-party libraries, APIs, internal state machines, complex algorithms, concurrency, performance, or data storage. Resolve via works-like prototypes. Do not log items that can be verified through static code reading or library documentation; resolve and record those under Context instead.
36
41
  - `[Functional]` = User-facing ergonomics, CLI flags, terminal rendering, interactive flows, or layout aesthetics. Resolve via looks-like prototypes.
37
42
 
38
43
  **Mandatory De-risking Triggers (must include, but are not limited to):**
@@ -80,10 +85,10 @@ Free-form notes recording decisions, deviations, or discoveries during implement
80
85
  Manual verification steps for user execution at slice conclusion. Provide clear instructions with copy-pasteable commands or interactive UI steps. Do not include automated test commands.
81
86
 
82
87
  **Format:**
83
- - [ ] **Title:**
84
- Run `command <args>`.
85
- Verify output contains `expected output`.
86
- - [ ] **Title:**
87
- Navigate to `[View/Screen]`.
88
- Trigger `[Action]`.
89
- Confirm `[Observed State/Element]`.
88
+ 1. **Title:**
89
+ Run `command <args>`.
90
+ Verify output contains `expected output`.
91
+ 2. **Title:**
92
+ Navigate to `[View/Screen]`.
93
+ Trigger `[Action]`.
94
+ Confirm `[Observed State/Element]`.