teddy-cli 0.1.17.dev1269__tar.gz → 0.1.17.dev1271__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 (161) hide show
  1. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/MRP.xml +1 -1
  4. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/makefile.md +8 -1
  5. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/.gitignore +0 -0
  6. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/LICENSE +0 -0
  7. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/__init__.py +0 -0
  8. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/__main__.py +0 -0
  9. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  12. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  13. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  14. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  15. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  16. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  17. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  18. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  19. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  20. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  21. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  22. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  23. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  24. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  25. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  26. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  27. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  28. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  29. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  30. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  31. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  32. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  34. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  35. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  37. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  39. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/container.py +0 -0
  43. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  47. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  48. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  49. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  102. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  103. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  104. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  105. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  106. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/plan_validator.py +0 -0
  107. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/planning_service.py +0 -0
  108. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  110. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  111. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  112. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_planner.py +0 -0
  113. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  114. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_replanner.py +0 -0
  115. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_repository.py +0 -0
  116. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/session_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  118. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/update_checker.py +0 -0
  119. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  120. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  121. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  122. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  123. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  124. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  125. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  126. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  127. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/__init__.py +0 -0
  128. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/diff.py +0 -0
  129. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  130. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/io.py +0 -0
  131. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/markdown.py +0 -0
  132. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/paths.py +0 -0
  133. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/serialization.py +0 -0
  134. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  135. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/string.py +0 -0
  136. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/core/utils/terminal.py +0 -0
  137. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/prompts.py +0 -0
  138. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/registries/__init__.py +0 -0
  139. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/registries/infrastructure.py +0 -0
  140. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/registries/reviewer.py +0 -0
  141. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/registries/validators.py +0 -0
  142. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/__init__.py +0 -0
  143. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/config.yaml +0 -0
  145. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/init.context +0 -0
  146. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
  147. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
  148. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
  149. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
  150. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
  151. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
  152. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  153. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  154. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/case-file.md +0 -0
  155. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/ci.md +0 -0
  156. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/component-design.md +0 -0
  157. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/milestone.md +0 -0
  158. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  159. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  160. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/src/teddy_executor/resources/templates/task-brief.md +0 -0
  161. {teddy_cli-0.1.17.dev1269 → teddy_cli-0.1.17.dev1271}/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.dev1269
3
+ Version: 0.1.17.dev1271
4
4
  Summary: A local-first, file-based AI coding workflow that applies the UNIX philosophy to AI collaboration.
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.dev1269"
3
+ version = "0.1.17.dev1271"
4
4
  description = "A local-first, file-based AI coding workflow that applies the UNIX philosophy to AI collaboration."
5
5
  authors = [{ name = "Raphael Atteritano" }]
6
6
  license = { text = "AGPL-3.0-only" }
@@ -52,7 +52,7 @@ NOTES:
52
52
  2. Commit Message: Use Conventional Commits '<type>(<scope>): <description>' wrapped in single quotes. Use imperative mood. Append ! for breaking changes.
53
53
  3. Execution: Run `make commit '<type>(<scope>): <description>'` to stage, run the local pre-commit hooks, and commit. `make commit` stages ALL local changes, including currently unstaged ones (`git add .`). The target commits WITHOUT `--no-verify`, so Git's own pre-commit hook is a real local gate; the post-commit test gate always runs and is unaffected.
54
54
  4. Post-conditions: All tests MUST pass — the post-commit hook runs the full suite and reverts the commit on failure; this gate is unskippable and MUST NEVER be bypassed. The pre-commit stage is advisory (its failures do not block the local commit), but if it reported non-trivial quality-gate issues (e.g. file length), you MUST make a follow-up cleanup commit that resolves them before resuming feature work. Triage any resulting `[DEBT]` per the Technical Debt Triage policy — there is no `## Technical Debt` holding pen.
55
- 5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase onto the remote, push, and report the CI results. `make push` answers ONE question only: did this push turn a BLOCKING gate red? The pushed RUN's own conclusion is authoritative — it already folds in `continue-on-error`, so a non-blocking job (e.g. the CI `Quality Checks` job) can NEVER block the session. Only when the run-level conclusion is `failure` does attribution run: the base run (`origin/main` before the push) is classified as green, red, job-less, or absent, and a base that exists but is job-less is NOT green. A failure your push introduced (base green/absent/job-less -> new red) is YOUR regression (exit 1, fix before concluding); a failure already on the base (base red -> new red) is pre-existing (report and continue). Tests MUST always be fixed. A non-blocking quality result MUST be triaged per the Technical Debt Triage policy — fixed in-flight or explicitly scheduled into a slice or milestone — and MUST NOT be silently accepted.
55
+ 5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase onto the remote, push, and report the CI results. `make push` answers ONE question only: did this push turn a BLOCKING gate red? The pushed RUN's own conclusion is authoritative — it already folds in `continue-on-error`, so a non-blocking job (e.g. the CI `Quality Checks` job) can NEVER block the session. Only when the run-level conclusion is `failure` does attribution run: the base run (`origin/main` before the push) is classified as green, red, job-less, or absent, and a base that exists but is job-less is NOT green. A failure your push introduced (base green/absent/job-less -> new red) is YOUR regression (exit 1, fix before concluding); a failure already on the base (base red -> new red) is pre-existing (report and continue). `make push` prints each failing step's NAME, its run id, and that step's (bounded) log details; when a failure needs deeper investigation, read the FULL step log with `make logs <run-id> '<step-name>'`. Tests MUST always be fixed. A non-blocking quality result MUST be triaged per the Technical Debt Triage policy — fixed in-flight or explicitly scheduled into a slice or milestone — and MUST NOT be silently accepted.
56
56
  </rule>
57
57
 
58
58
  <rule n="7" name="Standardized Plan Types">
@@ -137,6 +137,8 @@ The pushed RUN's own conclusion is authoritative: it already folds in `continue-
137
137
  - **all green / non-blocking** → PASSED → **exit 0**.
138
138
  - **job-less base** → NOT green: a base run that exists but carries zero jobs (an invalid-workflow failure) is treated as an unknown base and fails safe (block).
139
139
 
140
+ When any step fails — blocking or not — the target prints the failing step's name and its run id, then that step's log details (ANSI/timestamp-stripped and indented), bounded to `DETAIL_LINES` lines (default 50), and points to `make logs <run-id> '<step-name>'` for the full step log when needed.
141
+
140
142
  Attribution is deterministic: SHA → run → run-level + per-job conclusion (never "the latest run").
141
143
 
142
144
  Three behaviors make the attribution trustworthy:
@@ -150,6 +152,7 @@ Three behaviors make the attribution trustworthy:
150
152
  ```makefile
151
153
  RETRY_POLLS ?= 10
152
154
  RETRY_SLEEP ?= 1
155
+ DETAIL_LINES ?= 50
153
156
 
154
157
  push:
155
158
  git pull --rebase
@@ -178,7 +181,11 @@ push:
178
181
  NEWCONC=$$(gh run view "$$NEW" --json conclusion --jq '.conclusion'); \
179
182
  NEWFAIL=$$(gh run view "$$NEW" --json jobs --jq '[.jobs[] | select(.conclusion=="failure") | .name] | sort | join(",")'); \
180
183
  NEWSTEPS=$$(gh run view "$$NEW" --json jobs --jq '[.jobs[] | select(.conclusion=="failure") | .steps[]? | select(.conclusion=="failure") | .name] | sort | join(", ")'); \
181
- if [ -n "$$NEWSTEPS" ]; then echo "$$WF: failing step(s): $$NEWSTEPS"; fi; \
184
+ if [ -n "$$NEWSTEPS" ]; then \
185
+ echo "$$WF: failing step(s): $$NEWSTEPS (run $$NEW)"; \
186
+ gh run view "$$NEW" --log-failed 2>/dev/null | awk -F'\t' '{ 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\]/ || l ~ /^##\[endgroup\]/) next; gsub(/^##\[error\]/,"Error: ",l); print l }' | tail -n $(DETAIL_LINES) | sed 's/^/ /'; \
187
+ echo " full log: make logs $$NEW '$$NEWSTEPS'"; \
188
+ fi; \
182
189
  if [ "$$NEWCONC" != "failure" ]; then \
183
190
  if [ -n "$$NEWFAIL" ]; then \
184
191
  echo "$$WF: PASSED (run=$$NEWCONC) — non-blocking failure(s) [$$NEWFAIL] — triage, does not block"; \