teddy-cli 0.1.17.dev1307__tar.gz → 0.1.17.dev1309__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.dev1307 → teddy_cli-0.1.17.dev1309}/PKG-INFO +24 -2
  2. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/README.md +23 -1
  3. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/pyproject.toml +1 -1
  4. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/__main__.py +19 -0
  5. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/.gitignore +0 -0
  6. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/LICENSE +0 -0
  7. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/__init__.py +0 -0
  8. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/__init__.py +0 -0
  9. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  11. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  12. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  13. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  14. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  15. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  16. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  17. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  18. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  19. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  20. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  21. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  22. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  23. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  24. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  25. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  26. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  27. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  28. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  29. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  30. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  31. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  32. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  33. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  34. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  36. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  38. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/container.py +0 -0
  42. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/__init__.py +0 -0
  43. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  46. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  47. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  48. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  49. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  50. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  51. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/plan.py +0 -0
  52. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  53. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  54. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  55. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/session.py +0 -0
  56. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  57. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  58. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/__init__.py +0 -0
  59. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  61. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  62. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  63. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  64. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  65. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  66. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  67. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  69. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  70. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  71. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  72. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  73. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  74. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  75. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  76. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  77. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  78. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  79. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  80. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  81. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  82. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  83. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  84. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  85. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  86. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  87. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/__init__.py +0 -0
  88. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  89. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  90. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_executor.py +0 -0
  92. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_factory.py +0 -0
  93. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  94. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  95. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/context_service.py +0 -0
  96. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  97. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  98. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  99. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/init_service.py +0 -0
  100. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  101. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  102. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  103. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  104. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  105. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/plan_validator.py +0 -0
  106. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/planning_service.py +0 -0
  107. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  108. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  110. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  111. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_planner.py +0 -0
  112. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  113. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_replanner.py +0 -0
  114. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_repository.py +0 -0
  115. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/session_service.py +0 -0
  116. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  117. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/update_checker.py +0 -0
  118. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  119. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  120. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  121. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  122. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  123. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  124. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  125. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  126. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/__init__.py +0 -0
  127. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/diff.py +0 -0
  128. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  129. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/io.py +0 -0
  130. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/markdown.py +0 -0
  131. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/paths.py +0 -0
  132. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/serialization.py +0 -0
  133. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/session_notices.py +0 -0
  134. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  135. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/string.py +0 -0
  136. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/core/utils/terminal.py +0 -0
  137. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/prompts.py +0 -0
  138. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/registries/__init__.py +0 -0
  139. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/registries/infrastructure.py +0 -0
  140. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/registries/reviewer.py +0 -0
  141. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/registries/validators.py +0 -0
  142. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/MRP.md +0 -0
  143. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/config.yaml +0 -0
  146. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/init.context +0 -0
  147. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  148. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  149. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  150. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  151. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  152. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  153. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  154. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  155. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/case-file.md +0 -0
  156. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/ci.md +0 -0
  157. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/component-design.md +0 -0
  158. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/makefile.md +0 -0
  159. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1307 → teddy_cli-0.1.17.dev1309}/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.dev1307
3
+ Version: 0.1.17.dev1309
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
@@ -210,6 +210,28 @@ Use subcommands to overwrite specific defaults:
210
210
 
211
211
  The first execution of `teddy start` runs an interactive setup to configure your API key and preferred editor. For deeper customization, edit `.teddy/config.yaml`. All `llm.*` settings pass directly through to [LiteLLM](https://docs.litellm.ai/docs/completion/input), allowing you to route to cloud providers or local endpoints (Ollama, llama.cpp, or any OpenAI-compatible server via `api_base`). The config file also lets you adjust your external editor, command execution timeouts, diff similarity thresholds, and automated context pruning budgets.
212
212
 
213
+ ### Environment Variables
214
+
215
+ TeDDy checks the following process environment variables at startup and during a session.
216
+
217
+ | Variable | Purpose |
218
+ | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |
219
+ | `TEDDY_LLM_API_KEY` | The LLM API key. The bundled `config.yaml` default references it as `llm.api_key: "${TEDDY_LLM_API_KEY}"`. A shell value wins over the `.teddy/.env` value. |
220
+ | `EDITOR` | Fallback editor command when `editor` is unset in `.teddy/config.yaml`. |
221
+ | `TEDDY_DIFF_TOOL` | Overrides the auto-detected diff viewer. |
222
+
223
+ TeDDy also interpolates any `${VAR}` or `${VAR:-default}` token in `.teddy/config.yaml` against `.teddy/.env` layered under the process environment, so you can reference your own secrets from config values.
224
+
225
+ ### Using TeDDy in CI
226
+
227
+ TeDDy is safe to run in non-interactive environments. When stdin is not a terminal, TeDDy skips the API-key and editor setup prompts automatically, so no command blocks waiting for input.
228
+
229
+ To run TeDDy in a pipeline, set `TEDDY_LLM_API_KEY` in the environment and pass `--pipeline` (`-p`), which auto-approves actions, requires `-m`, exits after the first message turn, and defaults to the `assistant` agent.
230
+
231
+ ```bash
232
+ TEDDY_LLM_API_KEY="$OPENROUTER_API_KEY" teddy start --pipeline -m "do the thing"
233
+ ```
234
+
213
235
  ---
214
236
 
215
237
  ## Usage
@@ -274,7 +296,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
274
296
  | Command | Description |
275
297
  | :---------------------------- | :--------------------------------------------------------------------------- |
276
298
  | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
277
- | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
299
+ | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
278
300
  | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
279
301
  | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
280
302
  | `start` | Start an interactive agent session. |
@@ -176,6 +176,28 @@ Use subcommands to overwrite specific defaults:
176
176
 
177
177
  The first execution of `teddy start` runs an interactive setup to configure your API key and preferred editor. For deeper customization, edit `.teddy/config.yaml`. All `llm.*` settings pass directly through to [LiteLLM](https://docs.litellm.ai/docs/completion/input), allowing you to route to cloud providers or local endpoints (Ollama, llama.cpp, or any OpenAI-compatible server via `api_base`). The config file also lets you adjust your external editor, command execution timeouts, diff similarity thresholds, and automated context pruning budgets.
178
178
 
179
+ ### Environment Variables
180
+
181
+ TeDDy checks the following process environment variables at startup and during a session.
182
+
183
+ | Variable | Purpose |
184
+ | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |
185
+ | `TEDDY_LLM_API_KEY` | The LLM API key. The bundled `config.yaml` default references it as `llm.api_key: "${TEDDY_LLM_API_KEY}"`. A shell value wins over the `.teddy/.env` value. |
186
+ | `EDITOR` | Fallback editor command when `editor` is unset in `.teddy/config.yaml`. |
187
+ | `TEDDY_DIFF_TOOL` | Overrides the auto-detected diff viewer. |
188
+
189
+ TeDDy also interpolates any `${VAR}` or `${VAR:-default}` token in `.teddy/config.yaml` against `.teddy/.env` layered under the process environment, so you can reference your own secrets from config values.
190
+
191
+ ### Using TeDDy in CI
192
+
193
+ TeDDy is safe to run in non-interactive environments. When stdin is not a terminal, TeDDy skips the API-key and editor setup prompts automatically, so no command blocks waiting for input.
194
+
195
+ To run TeDDy in a pipeline, set `TEDDY_LLM_API_KEY` in the environment and pass `--pipeline` (`-p`), which auto-approves actions, requires `-m`, exits after the first message turn, and defaults to the `assistant` agent.
196
+
197
+ ```bash
198
+ TEDDY_LLM_API_KEY="$OPENROUTER_API_KEY" teddy start --pipeline -m "do the thing"
199
+ ```
200
+
179
201
  ---
180
202
 
181
203
  ## Usage
@@ -240,7 +262,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
240
262
  | Command | Description |
241
263
  | :---------------------------- | :--------------------------------------------------------------------------- |
242
264
  | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
243
- | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
265
+ | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
244
266
  | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
245
267
  | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
246
268
  | `start` | Start an interactive agent session. |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1307"
3
+ version = "0.1.17.dev1309"
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 = [
@@ -137,6 +137,24 @@ def _run_init_setup_gates(container) -> None:
137
137
  _validate_editor_config(container)
138
138
 
139
139
 
140
+ def _display_init_drift(container) -> None:
141
+ """Print the prompt/template drift advice after bare ``teddy init``.
142
+
143
+ Bare ``teddy init`` reuses the SAME advice ``teddy start`` prints, so its
144
+ "unchanged" summary cannot mislead: it flags drifted prompts and missing
145
+ templates and names the actionable ``teddy init prompts`` /
146
+ ``teddy init templates`` commands. The two shared helpers are imported
147
+ lazily, mirroring ``_run_init_setup_gates``, and they are advisory only --
148
+ they never block the command.
149
+ """
150
+ from teddy_executor.adapters.inbound.session_cli_handlers import (
151
+ _display_checks_footer,
152
+ _display_drift_notification,
153
+ )
154
+
155
+ _display_checks_footer(_display_drift_notification(container))
156
+
157
+
140
158
  def _ensure_project_initialized(container, root_dir: str | None = None) -> None:
141
159
  """Lazily performs project anchoring and initialization.
142
160
 
@@ -300,6 +318,7 @@ def init_callback(ctx: typer.Context):
300
318
  init_use_case = container.resolve(IInitUseCase)
301
319
  summary = init_use_case.ensure_initialized()
302
320
  typer.echo(f"TeDDy initialized in .teddy folder. {summary}")
321
+ _display_init_drift(container)
303
322
  _run_init_setup_gates(container)
304
323
 
305
324