teddy-cli 0.2.1__tar.gz → 0.2.1.dev1428__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 (165) hide show
  1. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/PKG-INFO +9 -9
  2. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/README.md +8 -8
  3. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/pyproject.toml +1 -1
  4. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +15 -18
  5. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/.gitignore +0 -0
  6. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/LICENSE +0 -0
  7. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/__init__.py +0 -0
  8. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/__main__.py +0 -0
  9. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/__init__.py +0 -0
  10. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  11. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  12. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  13. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  14. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  15. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  16. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  17. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  18. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  19. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  20. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  21. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  22. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  23. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  24. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  25. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  26. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  27. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  28. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  29. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  30. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  31. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  32. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  33. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  34. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  35. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  36. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  37. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  38. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  39. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  40. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  41. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/container.py +0 -0
  42. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/__init__.py +0 -0
  43. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/__init__.py +0 -0
  44. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  45. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  46. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  47. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/config_schema.py +0 -0
  48. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  49. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  102. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  103. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  104. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  105. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  106. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/plan_validator.py +0 -0
  107. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/planning_service.py +0 -0
  108. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  109. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  110. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  111. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  112. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_planner.py +0 -0
  113. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  114. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_replanner.py +0 -0
  115. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_repository.py +0 -0
  116. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/session_service.py +0 -0
  117. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  118. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/update_checker.py +0 -0
  119. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  120. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  121. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  122. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  123. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  124. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  125. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  126. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  127. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/__init__.py +0 -0
  128. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/diff.py +0 -0
  129. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/editor_names.py +0 -0
  130. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  131. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
  132. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/io.py +0 -0
  133. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/markdown.py +0 -0
  134. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/paths.py +0 -0
  135. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/serialization.py +0 -0
  136. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/session_notices.py +0 -0
  137. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  138. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/string.py +0 -0
  139. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/core/utils/terminal.py +0 -0
  140. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/prompts.py +0 -0
  141. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/registries/__init__.py +0 -0
  142. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/registries/infrastructure.py +0 -0
  143. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/registries/reviewer.py +0 -0
  144. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/registries/validators.py +0 -0
  145. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/MRP.md +0 -0
  146. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/__init__.py +0 -0
  147. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/__init__.py +0 -0
  148. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/config.yaml +0 -0
  149. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/init.context +0 -0
  150. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  151. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  152. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  153. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  154. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  155. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  156. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  157. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  158. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/case-file.md +0 -0
  159. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/ci.md +0 -0
  160. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/component-design.md +0 -0
  161. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/makefile.md +0 -0
  162. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/milestone.md +0 -0
  163. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  164. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  165. {teddy_cli-0.2.1 → teddy_cli-0.2.1.dev1428}/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.2.1
3
+ Version: 0.2.1.dev1428
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
@@ -35,13 +35,13 @@ Description-Content-Type: text/markdown
35
35
  <div align="center">
36
36
 
37
37
  <p align="center">
38
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/banner.png" alt="TeDDy: The opinionated software engineering harness - Because you should own the means of development" width="100%" style="max-width: 650px;" />
38
+ <img src="./assets/banner.png" alt="TeDDy: The opinionated software engineering harness - Because you should own the means of development" width="100%" style="max-width: 650px;" />
39
39
  </p>
40
40
 
41
41
  <p align="center">
42
42
  <a href="https://pypi.org/project/teddy-cli/"><img src="https://img.shields.io/pypi/v/teddy-cli?color=blue&style=flat-square" alt="PyPI version" /></a>
43
43
  <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue.svg?style=flat-square" alt="Python 3.11+" /></a>
44
- <a href="https://github.com/atte500/teddy/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-purple.svg?style=flat-square" alt="License: AGPL-3.0" /></a>
44
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-purple.svg?style=flat-square" alt="License: AGPL-3.0" /></a>
45
45
  </p>
46
46
 
47
47
  ```bash
@@ -49,7 +49,7 @@ uv tool install teddy-cli
49
49
  ```
50
50
 
51
51
  <p align="center">
52
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/demo.gif" alt="TeDDy TUI Demo" width="100%" style="max-width: 100%; height: auto;" />
52
+ <img src="./assets/demo.gif" alt="TeDDy TUI Demo" width="100%" style="max-width: 100%; height: auto;" />
53
53
  </p>
54
54
 
55
55
  [Why TeDDy?](#why-not-just-use) &bull; [TeDDy's SDLC](#teddys-software-delivery-lifecycle) &bull; [Owning Your SDLC](#owning-your-sdlc) &bull; [Quickstart](#getting-started) &bull; [Usage](#usage) &bull; [FAQ](#frequently-asked-questions) &bull; [Support](#support)
@@ -130,7 +130,7 @@ For **technical defects**, TeDDy prevents structural failures through Design by
130
130
  For **misalignment**, TeDDy prevents building the wrong thing by using spikes and prototypes to de-risk uncertain solutions before committing to an architecture. During implementation, it mitigates drift by delivering features through small vertical slices. Specific Markdown documents mediate every phase transition, anchoring the agents and providing a high-level steering interface to keep humans in the loop.
131
131
 
132
132
  <p align="center">
133
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/matrix.png" alt="Workflow Matrix" width="100%" />
133
+ <img src="./assets/matrix.png" alt="Workflow Matrix" width="800" />
134
134
  </p>
135
135
 
136
136
  ---
@@ -140,7 +140,7 @@ For **misalignment**, TeDDy prevents building the wrong thing by using spikes an
140
140
  Instead of winging the process on the go or taking the shortest path to generate code, agents follow a structured delivery process mediated by plain Markdown documents:
141
141
 
142
142
  <p align="center">
143
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/workflow-schematic.png" alt="TeDDy Workflow" width="100%" />
143
+ <img src="./assets/workflow-schematic.png" alt="TeDDy Workflow" width="850" />
144
144
  </p>
145
145
 
146
146
  1. **Strategic Alignment & Roadmapping:** The **Pathfinder** aligns incoming requests with the product vision, roadmap, and permanent system invariant specifications.
@@ -398,9 +398,9 @@ The tool itself is not monetized. If your team needs custom agent architectures,
398
398
 
399
399
  ## Learn More
400
400
 
401
- - [Project Roadmap & Vision](https://github.com/atte500/teddy/blob/main/docs/project/PROJECT.md)
402
- - [System Architecture](https://github.com/atte500/teddy/blob/main/docs/architecture/ARCHITECTURE.md)
403
- - [Agent Prompt Templates](https://github.com/atte500/teddy/tree/main/src/teddy_executor/resources/config/prompts)
401
+ - [Project Roadmap & Vision](./docs/project/PROJECT.md)
402
+ - [System Architecture](./docs/architecture/ARCHITECTURE.md)
403
+ - [Agent Prompt Templates](./src/teddy_executor/resources/config/prompts/)
404
404
 
405
405
  ---
406
406
 
@@ -1,13 +1,13 @@
1
1
  <div align="center">
2
2
 
3
3
  <p align="center">
4
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/banner.png" alt="TeDDy: The opinionated software engineering harness - Because you should own the means of development" width="100%" style="max-width: 650px;" />
4
+ <img src="./assets/banner.png" alt="TeDDy: The opinionated software engineering harness - Because you should own the means of development" width="100%" style="max-width: 650px;" />
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
8
  <a href="https://pypi.org/project/teddy-cli/"><img src="https://img.shields.io/pypi/v/teddy-cli?color=blue&style=flat-square" alt="PyPI version" /></a>
9
9
  <a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.11+-blue.svg?style=flat-square" alt="Python 3.11+" /></a>
10
- <a href="https://github.com/atte500/teddy/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-purple.svg?style=flat-square" alt="License: AGPL-3.0" /></a>
10
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-purple.svg?style=flat-square" alt="License: AGPL-3.0" /></a>
11
11
  </p>
12
12
 
13
13
  ```bash
@@ -15,7 +15,7 @@ uv tool install teddy-cli
15
15
  ```
16
16
 
17
17
  <p align="center">
18
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/demo.gif" alt="TeDDy TUI Demo" width="100%" style="max-width: 100%; height: auto;" />
18
+ <img src="./assets/demo.gif" alt="TeDDy TUI Demo" width="100%" style="max-width: 100%; height: auto;" />
19
19
  </p>
20
20
 
21
21
  [Why TeDDy?](#why-not-just-use) &bull; [TeDDy's SDLC](#teddys-software-delivery-lifecycle) &bull; [Owning Your SDLC](#owning-your-sdlc) &bull; [Quickstart](#getting-started) &bull; [Usage](#usage) &bull; [FAQ](#frequently-asked-questions) &bull; [Support](#support)
@@ -96,7 +96,7 @@ For **technical defects**, TeDDy prevents structural failures through Design by
96
96
  For **misalignment**, TeDDy prevents building the wrong thing by using spikes and prototypes to de-risk uncertain solutions before committing to an architecture. During implementation, it mitigates drift by delivering features through small vertical slices. Specific Markdown documents mediate every phase transition, anchoring the agents and providing a high-level steering interface to keep humans in the loop.
97
97
 
98
98
  <p align="center">
99
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/matrix.png" alt="Workflow Matrix" width="100%" />
99
+ <img src="./assets/matrix.png" alt="Workflow Matrix" width="800" />
100
100
  </p>
101
101
 
102
102
  ---
@@ -106,7 +106,7 @@ For **misalignment**, TeDDy prevents building the wrong thing by using spikes an
106
106
  Instead of winging the process on the go or taking the shortest path to generate code, agents follow a structured delivery process mediated by plain Markdown documents:
107
107
 
108
108
  <p align="center">
109
- <img src="https://raw.githubusercontent.com/atte500/teddy/main/assets/workflow-schematic.png" alt="TeDDy Workflow" width="100%" />
109
+ <img src="./assets/workflow-schematic.png" alt="TeDDy Workflow" width="850" />
110
110
  </p>
111
111
 
112
112
  1. **Strategic Alignment & Roadmapping:** The **Pathfinder** aligns incoming requests with the product vision, roadmap, and permanent system invariant specifications.
@@ -364,9 +364,9 @@ The tool itself is not monetized. If your team needs custom agent architectures,
364
364
 
365
365
  ## Learn More
366
366
 
367
- - [Project Roadmap & Vision](https://github.com/atte500/teddy/blob/main/docs/project/PROJECT.md)
368
- - [System Architecture](https://github.com/atte500/teddy/blob/main/docs/architecture/ARCHITECTURE.md)
369
- - [Agent Prompt Templates](https://github.com/atte500/teddy/tree/main/src/teddy_executor/resources/config/prompts)
367
+ - [Project Roadmap & Vision](./docs/project/PROJECT.md)
368
+ - [System Architecture](./docs/architecture/ARCHITECTURE.md)
369
+ - [Agent Prompt Templates](./src/teddy_executor/resources/config/prompts/)
370
370
 
371
371
  ---
372
372
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.2.1"
3
+ version = "0.2.1.dev1428"
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 = [
@@ -428,25 +428,23 @@ def _report_fast_forward(git_run: Callable[..., Any], before: str, after: str) -
428
428
  )
429
429
 
430
430
 
431
- def _update_cache_path() -> Path:
432
- """Resolve the project-local cache file that carries the latest version."""
433
- return find_project_root() / ".teddy" / ".update_cache.json"
431
+ def _start_background_update_check(container: Container) -> list[str]:
432
+ """Start the non-blocking version check and report the update-check keys.
434
433
 
435
-
436
- def _start_background_update_check() -> None:
437
- """Start the daemon version fetch that fills the cache for the next run.
438
-
439
- The fetch never blocks startup and never prints. The startup preamble emits
440
- the notice from the cache this fetch leaves behind.
434
+ Both session entry points share this preamble: it spawns the daemon
435
+ version-fetch thread, then emits the cached update notification (if any).
436
+ The returned list names the update checks that fired.
441
437
  """
442
438
  import threading
443
439
 
440
+ cache_path = find_project_root() / ".teddy" / ".update_cache.json"
444
441
  thread = threading.Thread(
445
442
  target=background_check,
446
- args=(_update_cache_path(),),
443
+ args=(cache_path,),
447
444
  daemon=True,
448
445
  )
449
446
  thread.start()
447
+ return _display_update_notification(container, cache_path)
450
448
 
451
449
 
452
450
  def _run_startup_preamble(
@@ -460,10 +458,10 @@ def _run_startup_preamble(
460
458
 
461
459
  The order is fixed so the banner layout cannot drift: health checks, the
462
460
  start-only workspace fast-forward line, one separator blank line, the
463
- ``Checking configurations...`` line, the cached update notice, then the
464
- preflight check with its drift advice. ``start`` forwards its ``agent`` so
465
- the preflight validates the agent prompt and enables ``pull_workspace``;
466
- ``resume`` leaves the agent ``None`` and keeps the pull off.
461
+ ``Checking configurations...`` line, then the preflight check. ``start``
462
+ forwards its ``agent`` so the preflight validates the agent prompt and
463
+ enables ``pull_workspace``; ``resume`` leaves the agent ``None`` and keeps
464
+ the pull off.
467
465
  """
468
466
  config_service = container.resolve(IConfigService)
469
467
  _run_health_checks(config_service)
@@ -472,7 +470,6 @@ def _run_startup_preamble(
472
470
  # One separator groups the checkmark block above with the notices below.
473
471
  typer.echo("", err=True)
474
472
  typer.echo("Checking configurations...", err=True)
475
- _display_update_notification(container, _update_cache_path())
476
473
  _run_cli_preflight_check(
477
474
  container,
478
475
  agent=agent,
@@ -803,7 +800,7 @@ def _display_update_notification(container: Container, cache_path: Path) -> list
803
800
  typer.echo(
804
801
  typer.style(
805
802
  f"ℹ A new version {latest} is available. "
806
- f"To upgrade, run: {command}",
803
+ f"To upgrade, run: {command}\n",
807
804
  fg=typer.colors.YELLOW,
808
805
  ),
809
806
  err=True,
@@ -833,7 +830,7 @@ def handle_new_session( # noqa: PLR0913
833
830
  max_cost: Optional[float] = None,
834
831
  ):
835
832
  """Logic for the 'start' command."""
836
- _start_background_update_check()
833
+ _start_background_update_check(container)
837
834
 
838
835
  try:
839
836
  # 0. Pipeline mode requires an initial message
@@ -1516,7 +1513,7 @@ def handle_resume_session( # noqa: PLR0913
1516
1513
  max_cost: Optional[float] = None,
1517
1514
  ):
1518
1515
  """Logic for the 'resume' command."""
1519
- _start_background_update_check()
1516
+ _start_background_update_check(container)
1520
1517
 
1521
1518
  try:
1522
1519
  # 1. Shared startup preamble (health checks + preflight)
File without changes
File without changes