teddy-cli 0.1.17.dev1277__tar.gz → 0.1.17.dev1278__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 (160) hide show
  1. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/MRP.xml +1 -1
  4. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/debugger.xml +1 -1
  5. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/makefile.md +19 -12
  6. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/.gitignore +0 -0
  7. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/LICENSE +0 -0
  8. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/__init__.py +0 -0
  9. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/__main__.py +0 -0
  10. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  13. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  14. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  15. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  16. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  17. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  18. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  19. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  20. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  21. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  22. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  23. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  24. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  25. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  26. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  27. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  28. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  29. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  30. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  31. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  32. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  33. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  35. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  36. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  38. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  40. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/container.py +0 -0
  44. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  48. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  49. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  50. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  51. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  52. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  53. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/plan.py +0 -0
  54. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  55. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  56. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  57. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/session.py +0 -0
  58. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  59. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  60. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  62. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  63. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  64. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  65. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  66. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  67. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  68. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  70. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  71. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  72. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  73. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  74. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  75. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  76. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  77. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  78. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  79. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  80. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  81. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  82. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  83. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  84. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  85. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  86. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  87. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  88. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  89. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/__init__.py +0 -0
  90. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  91. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  92. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  93. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_executor.py +0 -0
  94. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_factory.py +0 -0
  95. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  96. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  97. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/context_service.py +0 -0
  98. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  99. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  100. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  101. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/init_service.py +0 -0
  102. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  103. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  104. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  105. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  106. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  107. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/plan_validator.py +0 -0
  108. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/planning_service.py +0 -0
  109. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  110. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  111. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  112. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  113. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_planner.py +0 -0
  114. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  115. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_replanner.py +0 -0
  116. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_repository.py +0 -0
  117. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/session_service.py +0 -0
  118. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  119. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/update_checker.py +0 -0
  120. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  121. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  122. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  123. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  124. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  125. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  126. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  127. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  128. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/__init__.py +0 -0
  129. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/diff.py +0 -0
  130. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  131. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/io.py +0 -0
  132. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/markdown.py +0 -0
  133. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/paths.py +0 -0
  134. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/serialization.py +0 -0
  135. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  136. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/string.py +0 -0
  137. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/core/utils/terminal.py +0 -0
  138. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/prompts.py +0 -0
  139. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/__init__.py +0 -0
  140. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/infrastructure.py +0 -0
  141. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/reviewer.py +0 -0
  142. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/registries/validators.py +0 -0
  143. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/config.yaml +0 -0
  146. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/init.context +0 -0
  147. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
  148. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
  149. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
  150. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
  151. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
  152. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  153. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  154. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/case-file.md +0 -0
  155. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/ci.md +0 -0
  156. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/component-design.md +0 -0
  157. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/milestone.md +0 -0
  158. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  159. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  160. {teddy_cli-0.1.17.dev1277 → teddy_cli-0.1.17.dev1278}/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.dev1277
3
+ Version: 0.1.17.dev1278
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.dev1277"
3
+ version = "0.1.17.dev1278"
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" }
@@ -51,7 +51,7 @@ NOTES:
51
51
  3. Execution: Run `make commit '<type>(<scope>): <description>'`. This stages all local changes (`git add .`) and runs Git's local hooks before committing.
52
52
  4. Post-conditions: All tests MUST pass: the post-commit hook reverts automatically on failure and cannot be bypassed.
53
53
  5. Push at Conclusion: In the Conclusion phase, run `make push` to rebase and push.
54
- 6. If needed: to verify remote CI run `make ci-watch` to monitor workflow runs and to inspect results: use `make logs <run-id> '<step-name>'` for full logs.
54
+ 6. If needed: to verify remote CI run `make ci-watch` to monitor workflow runs and to inspect results: use `make logs <run-id>` (or `make logs <run-id> '<step-name>'`) for full logs.
55
55
  </rule>
56
56
 
57
57
  <rule n="7" name="Standardized Plan Types">
@@ -9,7 +9,7 @@
9
9
  <phase n="1" name="Reproduction">
10
10
  <goal>Gather context and build or verify an end-to-end Minimal Reproducible Example (MRE).</goal>
11
11
  <step n="1" name="Case File Check">If a Case File was not provided in the initial context, READ `docs/templates/case-file.md` and CREATE one following that template.</step>
12
- <step n="2" name="Context and History Gathering">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. First use `gh run view [ID]` to inspect the execution tree and identify the exact name of the failed step. Then, extract only that step logs by executing `make logs [ID] '[FAILED_STEP_NAME]'`.</step>
12
+ <step n="2" name="Context and History Gathering">Use EXECUTE `git grep`, EXECUTE `git log`, READ, and RESEARCH to understand the codebase, recent changes, and identify the last known green CI run or commit. For historical CI failures, do not try to read the entire log: extract failed step logs by executing `make logs [ID]` (for all failed steps) or `make logs [ID] '[STEP_NAME]'` (for a specific step).</step>
13
13
  <step n="3" name="Diagnostic MRE and Platform Check">
14
14
  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.
15
15
 
@@ -46,11 +46,12 @@ The Remote Probing Protocol requires a reason string because it is passed as the
46
46
 
47
47
  ### Logs
48
48
  ```shell
49
- make logs 12345 'Run tests'
49
+ make logs 12345 # extract logs for ALL failed steps
50
+ make logs 12345 'Run tests' # extract logs for a specific step (substring match)
50
51
  ```
51
52
 
52
- **Why does `logs` take two arguments?**
53
- The first argument is the GitHub Actions run ID (as shown by `gh run list`); the second is the exact name of a step in that run's execution tree (as shown by `gh run view <id>`). The target extracts ONLY that step's logs, stripping ANSI escapes and GitHub's group/boilerplate markers so you see the failure without the noise of the full log. See the [CI Log Extraction](#ci-log-extraction) section for the recipe.
53
+ **How does `make logs` work?**
54
+ The first argument is the GitHub Actions run ID (as shown by `gh run list`). If invoked without a second argument, it extracts and formats logs for **all failed steps** using `gh run view --log-failed`. An optional second argument filters down to a specific step using substring matching, stripping ANSI escapes and GitHub boilerplate so you see the failure without noise. See [CI Log Extraction](#ci-log-extraction).
54
55
 
55
56
  ## Probe Script
56
57
 
@@ -204,7 +205,8 @@ ci-watch:
204
205
  if [ -n "$$NEWSTEPS" ]; then \
205
206
  echo "$$WF: failing step(s): $$NEWSTEPS (run $$NEW)"; \
206
207
  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/^/ /'; \
207
- echo " full log: make logs $$NEW '$$NEWSTEPS'"; \
208
+ echo " view all failed logs: make logs $$NEW"; \
209
+ echo " view specific step: make logs $$NEW '<step-name>'"; \
208
210
  fi; \
209
211
  if [ "$$NEWCONC" != "failure" ]; then \
210
212
  if [ -n "$$NEWFAIL" ]; then \
@@ -267,7 +269,7 @@ probe:
267
269
 
268
270
  ## CI Log Extraction
269
271
 
270
- The Debugger's Reproduction phase needs to read the logs of a specific failed CI step without drowning in the full run log. The `make logs` target wraps the `gh run view <id> --log | awk ...` pipeline that isolates the named step's output, strips ANSI escapes, and removes GitHub's `##[group]`/`##[endgroup]` boilerplate.
272
+ The Debugger's Reproduction phase needs to read CI logs without drowning in the full run output. The `make logs` target wraps the `gh run view` pipeline, strips ANSI escapes, and removes GitHub's `##[group]`/`##[endgroup]` boilerplate.
271
273
 
272
274
  ### Example
273
275
 
@@ -276,21 +278,26 @@ logs: LOGS_RUN := $(word 2,$(MAKECMDGOALS))
276
278
  logs: LOGS_STEP := $(wordlist 3,99,$(MAKECMDGOALS))
277
279
 
278
280
  logs:
279
- @[ -n "$(LOGS_RUN)" ] || { echo "Usage: make logs <run-id> '<step-name>'"; exit 1; }
280
- @gh run view "$(LOGS_RUN)" --log | awk -F'\t' -v step="$(LOGS_STEP)" '$$2==step { if(j!=$$1){j=$$1; print "\n["j"]"} 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 }'
281
+ @[ -n "$(LOGS_RUN)" ] || { echo "Usage: make logs <run-id> ['<step-name>']"; exit 1; }
282
+ @if [ -z "$(LOGS_STEP)" ]; then \
283
+ gh run view "$(LOGS_RUN)" --log-failed 2>/dev/null | awk -F'\t' '{ if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/,"Error: ",l); print l }'; \
284
+ else \
285
+ gh run view "$(LOGS_RUN)" --log 2>/dev/null | awk -F'\t' -v step="$(LOGS_STEP)" 'index($$2, step) > 0 { if(j!=$$1||s!=$$2){j=$$1;s=$$2;print "\n["j" > "s"]"} l=$$3; p=index(l,"Z "); if(p>0)l=substr(l,p+2); gsub(/\x1B\[[0-9;]*[a-zA-Z]/,"",l); gsub(/\^\[\[[0-9;]*[a-zA-Z]/,"",l); if(l ~ /^##\[group\]Run /){k=1;next} if(k && l ~ /^##\[endgroup\]/){k=0;next} if(k)next; if(l ~ /^##\[group\]/ || l ~ /^##\[endgroup\]/)next; gsub(/^##\[error\]/, "Error: ", l); print l }'; \
286
+ fi
281
287
 
282
288
  %:
283
289
  @:
284
290
  ```
285
291
 
286
292
  **Usage:**
287
- - `make logs 12345 'Run tests'` — extract the logs of the step named `Run tests` from run `12345`.
288
- - First discover the run ID and the failed step name with `gh run view 12345` (the execution tree), then pass both to `make logs`.
293
+ - `make logs 12345` — extract logs for ALL failed steps from run `12345`.
294
+ - `make logs 12345 'Run tests'` — extract logs for a specific step (substring match) from run `12345`.
289
295
 
290
296
  **How it works:**
291
- - `$(word 2,$(MAKECMDGOALS))` takes the run ID and `$(wordlist 3,99,$(MAKECMDGOALS))` takes the (space-containing) step name; the first goal (the `logs` target itself) is dropped.
292
- - The `awk` program matches rows whose second tab-separated field equals the step name via `-v step=...`, trims the leading timestamp, strips ANSI escape sequences, and removes GitHub's group boilerplate, prefixing `##[error]` lines with `Error: `.
293
- - It reuses the same cross-platform Make constructs as the other targets (see [Cross-Platform Design](#cross-platform-design)); the `%: @:` catch-all prevents the extra `make` goals from being treated as files.
297
+ - `$(word 2,$(MAKECMDGOALS))` takes the run ID and `$(wordlist 3,99,$(MAKECMDGOALS))` captures any optional step name.
298
+ - When no step name is provided, `gh run view --log-failed` is used so only failed steps are fetched and printed with `[job > step]` headers.
299
+ - When a step name is supplied, `index($2, step) > 0` performs substring matching against column 2.
300
+ - Timestamps and ANSI escapes are stripped, and `##[error]` lines are prefixed with `Error: `.
294
301
 
295
302
  ## Implementation Notes
296
303