teddy-cli 0.1.17.dev1199__tar.gz → 0.1.17.dev1201__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 (159) hide show
  1. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/PKG-INFO +1 -1
  2. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/pyproject.toml +1 -1
  3. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/__main__.py +4 -5
  4. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +3 -3
  5. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/markdown_plan_parser.py +6 -0
  6. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/parser_reporting.py +11 -1
  7. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/update_checker.py +3 -4
  8. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/.gitignore +0 -0
  9. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/LICENSE +0 -0
  10. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/__init__.py +0 -0
  11. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/__init__.py +0 -0
  12. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  13. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  14. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  15. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  16. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  17. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  18. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  19. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  20. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  21. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  22. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  23. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  24. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  25. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  26. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  27. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  28. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  29. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  30. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  31. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +0 -0
  32. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  33. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  35. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  36. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  38. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  39. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  40. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  41. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  43. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/container.py +0 -0
  44. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/__init__.py +0 -0
  45. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/__init__.py +0 -0
  46. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  47. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  48. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  49. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  50. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  51. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  52. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/plan.py +0 -0
  53. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  54. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  55. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  56. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/session.py +0 -0
  57. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  58. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  59. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/__init__.py +0 -0
  60. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  61. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  62. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  63. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  64. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  65. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  66. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  67. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  68. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  69. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  70. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  71. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  72. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  73. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  74. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  75. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  76. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  77. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  78. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +0 -0
  79. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  80. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  82. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  83. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  84. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  85. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  86. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  87. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  88. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/__init__.py +0 -0
  89. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  90. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  91. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  92. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_executor.py +0 -0
  93. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_factory.py +0 -0
  94. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  95. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  96. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/context_service.py +0 -0
  97. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  98. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  99. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  100. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/init_service.py +0 -0
  101. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  102. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  103. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  104. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/plan_validator.py +0 -0
  105. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/planning_service.py +0 -0
  106. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  107. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  108. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  109. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  110. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_planner.py +0 -0
  111. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  112. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_replanner.py +0 -0
  113. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_repository.py +0 -0
  114. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/session_service.py +0 -0
  115. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  116. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  117. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  118. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  119. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  120. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  121. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  122. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  123. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  124. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/__init__.py +0 -0
  125. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/diff.py +0 -0
  126. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  127. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/io.py +0 -0
  128. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/markdown.py +0 -0
  129. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/serialization.py +0 -0
  130. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  131. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/string.py +0 -0
  132. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/core/utils/terminal.py +0 -0
  133. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/prompts.py +0 -0
  134. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/registries/__init__.py +0 -0
  135. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/registries/infrastructure.py +0 -0
  136. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/registries/reviewer.py +0 -0
  137. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/registries/validators.py +0 -0
  138. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/MRP.xml +0 -0
  139. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/__init__.py +0 -0
  140. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/__init__.py +0 -0
  141. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/config.yaml +0 -0
  142. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/init.context +0 -0
  143. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/architect.xml +0 -0
  144. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/assistant.xml +0 -0
  145. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/debugger.xml +0 -0
  146. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/developer.xml +0 -0
  147. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/pathfinder.xml +0 -0
  148. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/config/prompts/prototyper.xml +0 -0
  149. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  150. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  151. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/case-file.md +0 -0
  152. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/ci.md +0 -0
  153. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/component-design.md +0 -0
  154. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/makefile.md +0 -0
  155. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/milestone.md +0 -0
  156. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  157. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  158. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/src/teddy_executor/resources/templates/task-brief.md +0 -0
  159. {teddy_cli-0.1.17.dev1199 → teddy_cli-0.1.17.dev1201}/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.dev1199
3
+ Version: 0.1.17.dev1201
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.dev1199"
3
+ version = "0.1.17.dev1201"
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" }
@@ -319,7 +319,7 @@ def update(
319
319
  experimental: bool = typer.Option(
320
320
  False,
321
321
  "--experimental",
322
- help="Check and upgrade from TestPyPI instead of PyPI.",
322
+ help="Include pre-release (dev) builds in the update check.",
323
323
  ),
324
324
  ):
325
325
  """Checks PyPI for the latest version of TeDDy and displays upgrade
@@ -330,12 +330,11 @@ def update(
330
330
  compare_versions,
331
331
  is_prerelease,
332
332
  PYPI_URL,
333
- TEST_PYPI_URL,
334
333
  )
335
334
 
336
- index_url = TEST_PYPI_URL if experimental else PYPI_URL
337
- # When experimental, include prerelease versions (TestPyPI only has dev releases)
338
- latest = fetch_latest_version(index_url, stable_only=not experimental)
335
+ # Dev pre-releases are published to PyPI (see .github/workflows/publish.yml),
336
+ # so --experimental only widens the check to include prereleases.
337
+ latest = fetch_latest_version(PYPI_URL, stable_only=not experimental)
339
338
 
340
339
  if latest is None:
341
340
  typer.echo("Could not check for updates: network error.")
@@ -382,9 +382,9 @@ def _display_update_notification(cache_path: Path) -> None:
382
382
  return
383
383
  current = get_current_version()
384
384
  if compare_versions(current, latest):
385
- # A pre-release install comes from the TestPyPI experimental channel.
386
- # `uv tool upgrade` cannot reliably move the tool off that index back to
387
- # PyPI, so force a reinstall from the default index instead.
385
+ # A pre-release install comes from the PyPI experimental channel (--pre).
386
+ # `uv tool upgrade` cannot reliably move the tool off that flag back to
387
+ # stable, so force a reinstall from the default index instead.
388
388
  if is_prerelease(current):
389
389
  command = "uv tool install teddy-cli --force"
390
390
  else:
@@ -277,6 +277,12 @@ class MarkdownPlanParser(IPlanParser):
277
277
  offending_nodes = consume_content_until_next_action(
278
278
  stream, self._valid_actions
279
279
  )
280
+ # A section-boundary Heading (level <= H2) is left unconsumed by
281
+ # the helper, which then returns an empty list. Retain that
282
+ # peeked node as the offender so the formatter can report what
283
+ # it actually found instead of degrading to a terse headline.
284
+ if not offending_nodes:
285
+ offending_nodes = [node]
280
286
  raise InvalidPlanError(
281
287
  format_structural_mismatch_msg(
282
288
  doc, "a Level 3 Action Heading", -1, offending_nodes
@@ -242,7 +242,17 @@ def format_structural_mismatch_msg(
242
242
 
243
243
  # If mismatch_idx is -1, this is a content error, not a structural schema mismatch
244
244
  if mismatch_idx == -1:
245
- msg = f"Plan content is invalid: {expected}.\n\n"
245
+ # When the expectation is a concrete node type and a real offending
246
+ # node exists, name what we actually found; otherwise the headline
247
+ # degrades to the self-referential "…: a Level 3 Action Heading.".
248
+ # Free-form problem descriptions (e.g. "Unknown action type: X") are
249
+ # already self-contained and keep their original terse wording.
250
+ if is_direct and primary_node is not None:
251
+ msg = (
252
+ f"Plan content is invalid. {error_header}, but found {actual_name}.\n\n"
253
+ )
254
+ else:
255
+ msg = f"Plan content is invalid: {expected}.\n\n"
246
256
  else:
247
257
  msg = f"Plan structure is invalid. {error_header}, but found {actual_name}.\n\n"
248
258
 
@@ -1,8 +1,8 @@
1
1
  """Update Checker: Lightweight version check and upgrade mechanism.
2
2
 
3
3
  Provides functions for detecting the current installed version, fetching the
4
- latest version from PyPI/TestPyPI, comparing versions, caching results, and
5
- performing upgrades. All public functions use stdlib only (plus the
4
+ latest version from PyPI, comparing versions, and caching results. All public
5
+ functions use stdlib only (plus the
6
6
  `packaging` library which is a transitive dependency via pip-audit).
7
7
  """
8
8
 
@@ -19,7 +19,6 @@ if TYPE_CHECKING:
19
19
  # --- Constants ---
20
20
 
21
21
  PYPI_URL = "https://pypi.org/pypi/teddy-cli/json"
22
- TEST_PYPI_URL = "https://test.pypi.org/pypi/teddy-cli/json"
23
22
  CACHE_FILENAME = ".update_cache.json"
24
23
  CACHE_TTL_HOURS = 24
25
24
 
@@ -73,7 +72,7 @@ def fetch_latest_version(
73
72
  stable_only: bool = True,
74
73
  ) -> Optional[str]:
75
74
  """
76
- Fetch the highest version from PyPI/TestPyPI JSON API.
75
+ Fetch the highest version from the PyPI JSON API.
77
76
 
78
77
  Scans all releases in data['releases'] (instead of only data['info']['version']),
79
78
  and optionally filters to stable versions only.