teddy-cli 0.1.17.dev1256__tar.gz → 0.1.17.dev1258__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.dev1256 → teddy_cli-0.1.17.dev1258}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +51 -16
  4. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/.gitignore +0 -0
  5. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/LICENSE +0 -0
  6. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/__init__.py +0 -0
  7. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/__main__.py +0 -0
  8. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/__init__.py +0 -0
  9. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  10. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  11. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  12. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  13. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  14. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  15. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  16. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  17. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  18. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  19. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  20. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  21. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  22. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  23. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  24. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  25. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  26. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  27. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  28. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  29. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  30. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  31. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  32. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  33. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  35. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  36. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  37. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  38. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/container.py +0 -0
  41. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/__init__.py +0 -0
  42. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/__init__.py +0 -0
  43. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  44. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  45. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  46. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  47. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  48. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  49. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  50. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/plan.py +0 -0
  51. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  53. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  54. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/session.py +0 -0
  55. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  56. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  57. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/__init__.py +0 -0
  58. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  59. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  60. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  61. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  62. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  63. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  64. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  65. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  66. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  67. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  68. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  69. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  70. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  71. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  72. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  73. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  74. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  75. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  76. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  77. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  78. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  79. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  80. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  81. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  82. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  83. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  84. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  85. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  86. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/__init__.py +0 -0
  87. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  88. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  89. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  90. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_executor.py +0 -0
  91. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_factory.py +0 -0
  92. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  93. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  94. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/context_service.py +0 -0
  95. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  96. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  97. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  98. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/init_service.py +0 -0
  99. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  100. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  101. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  102. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  103. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  104. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/plan_validator.py +0 -0
  105. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/planning_service.py +0 -0
  106. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  107. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  108. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  109. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  110. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_planner.py +0 -0
  111. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  112. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_replanner.py +0 -0
  113. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_repository.py +0 -0
  114. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/session_service.py +0 -0
  115. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  116. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/update_checker.py +0 -0
  117. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  118. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  119. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  120. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  121. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  122. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  123. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  124. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  125. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/__init__.py +0 -0
  126. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/diff.py +0 -0
  127. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  128. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/io.py +0 -0
  129. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/markdown.py +0 -0
  130. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/serialization.py +0 -0
  131. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  132. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/string.py +0 -0
  133. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/core/utils/terminal.py +0 -0
  134. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/prompts.py +0 -0
  135. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/__init__.py +0 -0
  136. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/infrastructure.py +0 -0
  137. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/reviewer.py +0 -0
  138. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/registries/validators.py +0 -0
  139. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/MRP.xml +0 -0
  140. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/__init__.py +0 -0
  141. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/__init__.py +0 -0
  142. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/config.yaml +0 -0
  143. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/init.context +0 -0
  144. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
  145. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
  146. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
  147. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
  148. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
  149. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
  150. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  151. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  152. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/case-file.md +0 -0
  153. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/ci.md +0 -0
  154. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/component-design.md +0 -0
  155. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/makefile.md +0 -0
  156. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/milestone.md +0 -0
  157. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  158. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  159. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/src/teddy_executor/resources/templates/task-brief.md +0 -0
  160. {teddy_cli-0.1.17.dev1256 → teddy_cli-0.1.17.dev1258}/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.dev1256
3
+ Version: 0.1.17.dev1258
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.dev1256"
3
+ version = "0.1.17.dev1258"
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" }
@@ -18,7 +18,7 @@ from teddy_executor.core.ports.outbound.session_loop_guard import ISessionLoopGu
18
18
  from teddy_executor.core.ports.outbound.config_service import IConfigService
19
19
  from teddy_executor.core.ports.outbound.session_repository import ISessionRepository
20
20
  from teddy_executor.core.utils.interrupt_guard import INTERRUPT_REASON, InterruptGuard
21
- from teddy_executor.core.utils.string import slugify
21
+ from teddy_executor.core.utils.string import canonical_agent_name, slugify
22
22
  from teddy_executor.adapters.inbound.cli_formatter import format_project_context
23
23
  from teddy_executor.adapters.inbound.cli_helpers import (
24
24
  echo_and_copy,
@@ -415,7 +415,7 @@ def _display_drift_notification(container: Container) -> list[str]:
415
415
  config = container.resolve(IConfigService)
416
416
  report = container.resolve(IInitUseCase).check_drift()
417
417
  fired: list[str] = []
418
- lines: list[str] = []
418
+ drift_lines: list[str] = []
419
419
 
420
420
  if config.get_setting("checks.prompts", True) and report.prompts_drifted:
421
421
  clause = _format_drift_clause(
@@ -425,7 +425,7 @@ def _display_drift_notification(container: Container) -> list[str]:
425
425
  report.edited_prompts,
426
426
  report.missing_prompts,
427
427
  )
428
- lines.append(
428
+ drift_lines.append(
429
429
  typer.style(
430
430
  f"ℹ {clause}. To update them, run: teddy init prompts",
431
431
  fg=typer.colors.YELLOW,
@@ -441,7 +441,7 @@ def _display_drift_notification(container: Container) -> list[str]:
441
441
  report.edited_templates,
442
442
  report.missing_templates,
443
443
  )
444
- lines.append(
444
+ drift_lines.append(
445
445
  typer.style(
446
446
  f"ℹ {clause}. To update them, run: teddy init templates",
447
447
  fg=typer.colors.YELLOW,
@@ -449,10 +449,12 @@ def _display_drift_notification(container: Container) -> list[str]:
449
449
  )
450
450
  fired.append("checks.templates")
451
451
 
452
- if lines:
453
- typer.echo("") # blank separator ABOVE the notification block
454
- for line in lines:
455
- typer.echo(line)
452
+ if drift_lines:
453
+ # A single leading blank separates this block from the
454
+ # ``Checking configurations...`` line above it. The lines carry no
455
+ # trailing newline, so the shared disable-footer (emitted next) abuts
456
+ # the final drift line.
457
+ typer.echo("\n" + "\n".join(drift_lines))
456
458
 
457
459
  return fired
458
460
 
@@ -508,11 +510,10 @@ def _display_update_notification(container: Container, cache_path: Path) -> list
508
510
  command = "uv tool install teddy-cli --force"
509
511
  else:
510
512
  command = "uv tool upgrade teddy-cli"
511
- typer.echo("") # blank separator ABOVE the notification block
512
513
  typer.echo(
513
514
  typer.style(
514
515
  f"ℹ A new version {latest} is available. "
515
- f"To upgrade, run: {command}",
516
+ f"To upgrade, run: {command}\n",
516
517
  fg=typer.colors.YELLOW,
517
518
  )
518
519
  )
@@ -576,6 +577,7 @@ def handle_new_session( # noqa: PLR0913
576
577
  )
577
578
  )
578
579
  _display_checks_footer(fired)
580
+ _echo_config_success(container, agent, model=model)
579
581
 
580
582
  session_manager: ISessionManager = container.resolve(ISessionManager)
581
583
  user_interactor: IUserInteractor = container.resolve(IUserInteractor)
@@ -623,6 +625,38 @@ def handle_new_session( # noqa: PLR0913
623
625
  raise typer.Exit(code=1)
624
626
 
625
627
 
628
+ def _echo_config_success(
629
+ container: Container,
630
+ agent: Optional[str] = None,
631
+ model: Optional[str] = None,
632
+ actual_model: Optional[str] = None,
633
+ ) -> None:
634
+ """Retrieves and echoes the active model and agent configuration on success.
635
+
636
+ Args:
637
+ container: The DI container with resolved services.
638
+ agent: Optional agent name to display.
639
+ model: Optional model override from CLI. If provided, this takes
640
+ precedence over the config file value.
641
+ actual_model: Optional actual serving model from meta.yaml. If provided,
642
+ this takes precedence over the model parameter.
643
+ """
644
+ config_service = container.resolve(IConfigService)
645
+ if actual_model:
646
+ resolved_model = actual_model
647
+ elif model:
648
+ resolved_model = model
649
+ else:
650
+ resolved_model = config_service.get_setting("llm.model", "unknown")
651
+ identity_lines: list[str] = []
652
+ if agent:
653
+ identity_lines.append(f"Agent: {canonical_agent_name(agent)}")
654
+ identity_lines.append(f"Model: {resolved_model}")
655
+ # A leading blank separates the identity block from whatever precedes it
656
+ # (``Checking configurations...`` or the drift block/footer).
657
+ typer.echo("\n" + "\n".join(identity_lines), err=True)
658
+
659
+
626
660
  def _run_cli_preflight_check(
627
661
  container: Container,
628
662
  agent: Optional[str] = None,
@@ -993,8 +1027,9 @@ def _sync_and_display_session_meta(
993
1027
 
994
1028
  latest_turn_path = session_manager.get_latest_turn(session_name)
995
1029
  meta = repository.load_meta(latest_turn_path)
996
- # Clear actual_model so it is not carried into the next turn's meta.yaml
1030
+ # Clear actual_model so display falls through to current model (override or config)
997
1031
  meta.pop("actual_model", None)
1032
+ _echo_config_success(container, agent=meta.get("agent_name"), model=model)
998
1033
 
999
1034
  # Sync latest turn's meta.yaml with current config model/overrides
1000
1035
  config_model = config_service.get_setting("llm.model", "unknown")
@@ -1056,15 +1091,15 @@ def handle_resume_session( # noqa: PLR0913
1056
1091
  # 2. Resolve session name
1057
1092
  session_name = _resolve_session_name(container, path)
1058
1093
 
1059
- # 3. Display session path
1060
- session_relative_path = str(Path(".teddy") / "sessions" / session_name)
1061
- typer.echo(f"Resuming session: {session_relative_path}")
1062
-
1063
- # 4. Display actual_model and sync config overrides
1094
+ # 3. Display actual_model and sync config overrides
1064
1095
  _sync_and_display_session_meta(
1065
1096
  container, session_name, model=model, api_key=api_key
1066
1097
  )
1067
1098
 
1099
+ # 4. Display session path (below the Agent/Model identity block)
1100
+ session_relative_path = str(Path(".teddy") / "sessions" / session_name)
1101
+ typer.echo(f"\nResuming session: {session_relative_path}")
1102
+
1068
1103
  # 5. Agent switch: if -a/--agent provided, update session agent permanently
1069
1104
  if agent:
1070
1105
  container.resolve(ISessionManager).set_session_agent(session_name, agent)