teddy-cli 0.1.17.dev1350__tar.gz → 0.1.17.dev1352__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.dev1350 → teddy_cli-0.1.17.dev1352}/PKG-INFO +6 -2
  2. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/README.md +5 -1
  3. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/pyproject.toml +1 -1
  4. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +9 -9
  5. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/config.yaml +9 -0
  6. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/.gitignore +0 -0
  7. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/LICENSE +0 -0
  8. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/__init__.py +0 -0
  9. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/__main__.py +0 -0
  10. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  13. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  14. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  15. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  16. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  17. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  18. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  19. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  20. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  21. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  22. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  23. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  24. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  25. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  26. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  27. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  28. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  29. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  30. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  31. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  32. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  33. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  34. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  35. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  37. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  39. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/container.py +0 -0
  43. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  47. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  48. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  49. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  102. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  103. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  104. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  105. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  106. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/plan_validator.py +0 -0
  107. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/planning_service.py +0 -0
  108. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  109. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  110. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  111. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  112. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_planner.py +0 -0
  113. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  114. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_replanner.py +0 -0
  115. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_repository.py +0 -0
  116. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/session_service.py +0 -0
  117. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  118. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/update_checker.py +0 -0
  119. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  120. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  121. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  122. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  123. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  124. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  125. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  126. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  127. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/__init__.py +0 -0
  128. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/diff.py +0 -0
  129. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  130. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/io.py +0 -0
  131. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/markdown.py +0 -0
  132. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/paths.py +0 -0
  133. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/serialization.py +0 -0
  134. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/session_notices.py +0 -0
  135. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  136. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/string.py +0 -0
  137. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/core/utils/terminal.py +0 -0
  138. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/prompts.py +0 -0
  139. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/registries/__init__.py +0 -0
  140. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/registries/infrastructure.py +0 -0
  141. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/registries/reviewer.py +0 -0
  142. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/registries/validators.py +0 -0
  143. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/MRP.md +0 -0
  144. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/__init__.py +0 -0
  145. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/__init__.py +0 -0
  146. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/init.context +0 -0
  147. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  148. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  149. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  150. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  151. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  152. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  153. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  154. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  155. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/case-file.md +0 -0
  156. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/ci.md +0 -0
  157. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/component-design.md +0 -0
  158. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/makefile.md +0 -0
  159. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/milestone.md +0 -0
  160. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  161. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  162. {teddy_cli-0.1.17.dev1350 → teddy_cli-0.1.17.dev1352}/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.dev1350
3
+ Version: 0.1.17.dev1352
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,10 @@ 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
+ #### OpenRouter App Attribution
214
+
215
+ The bundled config attributes OpenRouter usage to TeDDy through the documented `HTTP-Referer` and `X-OpenRouter-Title` headers, so the usage appears on [TeDDy's app page](https://openrouter.ai/apps?url=https://github.com/atte500/teddy). Attribution is provider-side visibility only: the headers travel to the endpoint you already configured and the TeDDy project receives nothing. Delete the `llm.extra_headers` block from `.teddy/config.yaml` to opt out, and note that other providers ignore these headers.
216
+
213
217
  ### Environment Variables
214
218
 
215
219
  TeDDy checks the following process environment variables at startup and during a session.
@@ -322,7 +326,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
322
326
 
323
327
  <br />
324
328
 
325
- No. TeDDy collects zero telemetry, zero analytics, and runs no background tracking. All requests go directly to whichever LLM provider or local endpoint you configure in your local config file.
329
+ No. TeDDy collects zero telemetry, zero analytics, and runs no background tracking. All requests go directly to whichever LLM provider or local endpoint you configure in your local config file. The bundled config sends OpenRouter's published app-attribution headers, so OpenRouter credits your usage to TeDDy on its public leaderboard, and that visibility reaches only the provider you chose. Remove the `llm.extra_headers` block from `.teddy/config.yaml` to opt out.
326
330
 
327
331
  </details>
328
332
 
@@ -176,6 +176,10 @@ 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
+ #### OpenRouter App Attribution
180
+
181
+ The bundled config attributes OpenRouter usage to TeDDy through the documented `HTTP-Referer` and `X-OpenRouter-Title` headers, so the usage appears on [TeDDy's app page](https://openrouter.ai/apps?url=https://github.com/atte500/teddy). Attribution is provider-side visibility only: the headers travel to the endpoint you already configured and the TeDDy project receives nothing. Delete the `llm.extra_headers` block from `.teddy/config.yaml` to opt out, and note that other providers ignore these headers.
182
+
179
183
  ### Environment Variables
180
184
 
181
185
  TeDDy checks the following process environment variables at startup and during a session.
@@ -288,7 +292,7 @@ TeDDy packages your workspace context into a single clipboard payload, and the a
288
292
 
289
293
  <br />
290
294
 
291
- No. TeDDy collects zero telemetry, zero analytics, and runs no background tracking. All requests go directly to whichever LLM provider or local endpoint you configure in your local config file.
295
+ No. TeDDy collects zero telemetry, zero analytics, and runs no background tracking. All requests go directly to whichever LLM provider or local endpoint you configure in your local config file. The bundled config sends OpenRouter's published app-attribution headers, so OpenRouter credits your usage to TeDDy on its public leaderboard, and that visibility reaches only the provider you chose. Remove the `llm.extra_headers` block from `.teddy/config.yaml` to opt out.
292
296
 
293
297
  </details>
294
298
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1350"
3
+ version = "0.1.17.dev1352"
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 = [
@@ -727,7 +727,6 @@ def _echo_config_success(
727
727
  container: Container,
728
728
  agent: Optional[str] = None,
729
729
  model: Optional[str] = None,
730
- actual_model: Optional[str] = None,
731
730
  ) -> None:
732
731
  """Retrieves and echoes the active model and agent configuration on success.
733
732
 
@@ -736,13 +735,9 @@ def _echo_config_success(
736
735
  agent: Optional agent name to display.
737
736
  model: Optional model override from CLI. If provided, this takes
738
737
  precedence over the config file value.
739
- actual_model: Optional actual serving model from meta.yaml. If provided,
740
- this takes precedence over the model parameter.
741
738
  """
742
739
  config_service = container.resolve(IConfigService)
743
- if actual_model:
744
- resolved_model = actual_model
745
- elif model:
740
+ if model:
746
741
  resolved_model = model
747
742
  else:
748
743
  resolved_model = config_service.get_setting("llm.model", "unknown")
@@ -1149,13 +1144,18 @@ def _sync_and_display_session_meta(
1149
1144
 
1150
1145
  latest_turn_path = session_manager.get_latest_turn(session_name)
1151
1146
  meta = repository.load_meta(latest_turn_path)
1152
- # Clear actual_model so display falls through to current model (override or config)
1153
- meta.pop("actual_model", None)
1147
+
1148
+ changed = False
1149
+ # Clear actual_model so display falls through to current model (override or config).
1150
+ # A removed key must count as a change so the clear reaches disk without an override.
1151
+ if "actual_model" in meta:
1152
+ meta.pop("actual_model", None)
1153
+ changed = True
1154
+
1154
1155
  _echo_config_success(container, agent=agent or meta.get("agent_name"), model=model)
1155
1156
 
1156
1157
  # Sync latest turn's meta.yaml with current config model/overrides
1157
1158
  config_model = config_service.get_setting("llm.model", "unknown")
1158
- changed = False
1159
1159
  if model:
1160
1160
  meta["model"] = model
1161
1161
  changed = True
@@ -63,6 +63,15 @@ llm:
63
63
  api_key: "${TEDDY_LLM_API_KEY}" # Paste your key into .teddy/.env, or replace this with a literal value to override.
64
64
  max_retries: 3
65
65
  timeout: 300
66
+ # OpenRouter app attribution (https://openrouter.ai/docs/app-attribution).
67
+ # Usage from this app appears at https://openrouter.ai/apps?url=https://github.com/atte500/teddy.
68
+ # LiteLLM also sends a legacy X-Title default, so both title headers are pinned here.
69
+ # Remove this block to opt out. Non-OpenRouter providers ignore these headers.
70
+ extra_headers:
71
+ HTTP-Referer: "https://github.com/atte500/teddy"
72
+ X-Title: "TeDDy"
73
+ X-OpenRouter-Title: "TeDDy"
74
+ X-OpenRouter-Categories: "cli-agent,programming-app"
66
75
 
67
76
  # Local models (no API key needed — LiteLLM supplies a keyless default):
68
77
  # model: "ollama/llama3.2" # Ollama (default endpoint http://localhost:11434)