teddy-cli 0.1.17.dev1408__tar.gz → 0.1.17.dev1410__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.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/PKG-INFO +24 -24
  2. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/README.md +23 -23
  3. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/pyproject.toml +1 -1
  4. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/__main__.py +3 -5
  5. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/local_repo_tree_generator.py +7 -9
  6. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/config_schema.py +4 -4
  7. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/repo_tree_generator.py +1 -1
  8. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/context_service.py +1 -1
  9. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/registries/infrastructure.py +4 -4
  10. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/config.yaml +11 -8
  11. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/.gitignore +0 -0
  12. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/LICENSE +0 -0
  13. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/__init__.py +0 -0
  14. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/__init__.py +0 -0
  15. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/__init__.py +0 -0
  16. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/cli_formatter.py +0 -0
  17. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/cli_helpers.py +0 -0
  18. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/session_cli_handlers.py +0 -0
  19. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer.py +0 -0
  20. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_app.py +0 -0
  21. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_editor.py +0 -0
  22. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_execution.py +0 -0
  23. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_helpers.py +0 -0
  24. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_logic.py +0 -0
  25. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_previews.py +0 -0
  26. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/inbound/textual_plan_reviewer_widgets.py +0 -0
  27. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/__init__.py +0 -0
  28. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/console_interactor.py +0 -0
  29. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/console_interactor_ask_loop.py +0 -0
  30. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/console_interactor_helpers.py +0 -0
  31. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/console_tooling.py +0 -0
  32. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/filesystem_helpers.py +0 -0
  33. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/litellm_adapter.py +0 -0
  34. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/local_file_system_adapter.py +0 -0
  35. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/openrouter_hydrator.py +0 -0
  36. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/shell_adapter.py +0 -0
  37. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/shell_command_builder.py +0 -0
  38. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/suppressed_logging.py +0 -0
  39. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/system_environment_adapter.py +0 -0
  40. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/system_environment_inspector.py +0 -0
  41. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/system_time_adapter.py +0 -0
  42. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/terminal_quit_key_listener.py +0 -0
  43. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/web_scraper_adapter.py +0 -0
  44. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/web_searcher_adapter.py +0 -0
  45. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/adapters/outbound/yaml_config_adapter.py +0 -0
  46. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/container.py +0 -0
  47. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/__init__.py +0 -0
  48. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/__init__.py +0 -0
  49. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/__init__.py +0 -0
  50. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/action_ports.py +0 -0
  51. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/change_set.py +0 -0
  52. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/drift_report.py +0 -0
  53. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/exceptions.py +0 -0
  54. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/execution_report.py +0 -0
  55. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/orchestrator_ports.py +0 -0
  56. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/plan.py +0 -0
  57. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/planning_ports.py +0 -0
  58. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/project_context.py +0 -0
  59. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/report_assembly_data.py +0 -0
  60. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/session.py +0 -0
  61. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/shell_output.py +0 -0
  62. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/domain/models/web_search_results.py +0 -0
  63. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/__init__.py +0 -0
  64. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/__init__.py +0 -0
  65. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/edit_simulator.py +0 -0
  66. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/get_context_use_case.py +0 -0
  67. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/init.py +0 -0
  68. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/plan_parser.py +0 -0
  69. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/plan_reviewer.py +0 -0
  70. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/plan_validator.py +0 -0
  71. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/planning_use_case.py +0 -0
  72. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/inbound/run_plan_use_case.py +0 -0
  73. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/__init__.py +0 -0
  74. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/config_service.py +0 -0
  75. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/environment_inspector.py +0 -0
  76. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/execution_report_assembler.py +0 -0
  77. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/file_system_manager.py +0 -0
  78. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/llm_client.py +0 -0
  79. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/markdown_report_formatter.py +0 -0
  80. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/prompt_manager.py +0 -0
  81. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/quit_key_listener.py +0 -0
  82. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/session_loop_guard.py +0 -0
  83. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/session_manager.py +0 -0
  84. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/session_repository.py +0 -0
  85. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/shell_executor.py +0 -0
  86. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/system_environment.py +0 -0
  87. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/time_service.py +0 -0
  88. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/user_interactor.py +0 -0
  89. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/web_scraper.py +0 -0
  90. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/ports/outbound/web_searcher.py +0 -0
  91. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/__init__.py +0 -0
  92. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_changeset_builder.py +0 -0
  93. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_diff_manager.py +0 -0
  94. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_dispatcher.py +0 -0
  95. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_executor.py +0 -0
  96. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_factory.py +0 -0
  97. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_parser_complex.py +0 -0
  98. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/action_parser_strategies.py +0 -0
  99. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/edit_simulator.py +0 -0
  100. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/execution_orchestrator.py +0 -0
  101. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/execution_report_assembler.py +0 -0
  102. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/init_service.py +0 -0
  103. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/markdown_plan_parser.py +0 -0
  104. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/markdown_report_formatter.py +0 -0
  105. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/parser_infrastructure.py +0 -0
  106. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/parser_metadata.py +0 -0
  107. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/parser_reporting.py +0 -0
  108. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/plan_validator.py +0 -0
  109. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/planning_service.py +0 -0
  110. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/prompt_manager.py +0 -0
  111. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_lifecycle_manager.py +0 -0
  112. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_loop_guard.py +0 -0
  113. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_orchestrator.py +0 -0
  114. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_planner.py +0 -0
  115. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_pruning_service.py +0 -0
  116. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_replanner.py +0 -0
  117. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_repository.py +0 -0
  118. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/session_service.py +0 -0
  119. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/templates/execution_report.md.j2 +0 -0
  120. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/update_checker.py +0 -0
  121. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/__init__.py +0 -0
  122. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/edit.py +0 -0
  123. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/edit_matcher.py +0 -0
  124. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/edit_matcher_heuristics.py +0 -0
  125. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/execute.py +0 -0
  126. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/filesystem.py +0 -0
  127. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/helpers.py +0 -0
  128. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/services/validation_rules/message.py +0 -0
  129. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/__init__.py +0 -0
  130. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/diff.py +0 -0
  131. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/editor_names.py +0 -0
  132. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/interrupt_guard.py +0 -0
  133. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/interruptible_call.py +0 -0
  134. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/io.py +0 -0
  135. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/markdown.py +0 -0
  136. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/paths.py +0 -0
  137. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/serialization.py +0 -0
  138. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/session_notices.py +0 -0
  139. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/stdin_ownership.py +0 -0
  140. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/string.py +0 -0
  141. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/core/utils/terminal.py +0 -0
  142. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/prompts.py +0 -0
  143. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/registries/__init__.py +0 -0
  144. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/registries/reviewer.py +0 -0
  145. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/registries/validators.py +0 -0
  146. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/MRP.md +0 -0
  147. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/__init__.py +0 -0
  148. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/__init__.py +0 -0
  149. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/init.context +0 -0
  150. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/architect.md +0 -0
  151. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/assistant.md +0 -0
  152. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/debugger.md +0 -0
  153. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/developer.md +0 -0
  154. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/pathfinder.md +0 -0
  155. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/config/prompts/prototyper.md +0 -0
  156. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/ARCHITECTURE.md +0 -0
  157. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/PROJECT.md +0 -0
  158. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/case-file.md +0 -0
  159. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/ci.md +0 -0
  160. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/component-design.md +0 -0
  161. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/makefile.md +0 -0
  162. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/milestone.md +0 -0
  163. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/pre-commit.md +0 -0
  164. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/src/teddy_executor/resources/templates/specification-document.md +0 -0
  165. {teddy_cli-0.1.17.dev1408 → teddy_cli-0.1.17.dev1410}/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.dev1408
3
+ Version: 0.1.17.dev1410
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
@@ -159,7 +159,7 @@ TeDDy is built on the belief that you should own your software delivery lifecycl
159
159
 
160
160
  - **High-Level Governance Rules (`PROJECT.md` & `ARCHITECTURE.md`):** The simplest way to guide agents. Define product roadmaps, engineering principles, system laws, and component boundaries in living Markdown documents that agents read on every turn.
161
161
  - **Artifact Templates (`docs/templates/`):** Standardize the artifacts produced during development. Customize the Markdown templates for vertical slices, specifications, case files, and milestones to match your documentation standards.
162
- - **Agent Prompts (`.teddy/prompts/`):** To change the process itself, customize the agent prompts. Each agent's workflow is broken down into structured phases and individual steps, defined entirely in Markdown. You can tweak instructions, add domain-specific quality gates, or introduce brand-new agent personas to match how your team builds software.
162
+ - **Agent Prompts (`.teddy/prompts/`):** To change the process itself, customize the agent prompts. Each agent's workflow is broken down into structured phases and individual steps, defined entirely in Markdown. You can tweak instructions, add domain-specific quality gates, or introduce brand-new agent personas to match how your team builds software. TeDDy assembles each system prompt from two layers: the agent-specific instructions come first and the shared response protocol instructions are appended automatically. The composed prompt is saved in the session folder, and `teddy get-prompt <agent>` prints the identical result, so you can read exactly what the model receives. A customized prompt that already carries its own `<response_format>` suppresses the shared block and is used as-is.
163
163
  - **Command Automation (`Makefile`):** Instead of hardcoding shell commands inside agent prompts, common development and verification operations are routed through the Makefile. When you need to change a flag, runner, or environment setup, you change it once in the Makefile instead of updating instructions across multiple agent prompts.
164
164
  - **Context Filtering (`.teddyignore`):** Control which files TeDDy scans during context generation and tree traversal. A `.teddyignore` file in the project root follows standard ignore syntax and takes precedence over `.gitignore`, allowing you to ignore extra paths or re-include git-ignored files using negation patterns.
165
165
 
@@ -270,17 +270,17 @@ teddy resume -m "your next instruction"
270
270
 
271
271
  ### Optional Flags
272
272
 
273
- | Flag | Description |
274
- | :--- | :--- |
275
- | <nobr>`--agent`, `-a`</nobr> | Select agent persona (`pathfinder`, `architect`, `developer`, `debugger`, `assistant`). Default: `pathfinder` (`assistant` in pipeline mode). |
276
- | <nobr>`--context`, `-c`</nobr> | Supply additional context files or directories. Repeatable (`-c a.py -c b.md`) or comma-separated (`-c "a.py,b.md"`). |
277
- | <nobr>`--model`</nobr> | Override the default configured model. |
278
- | <nobr>`--yolo`, `-y`</nobr> | Auto-approve all actions. To make this default, set `yolo_default: true` in `.teddy/config.yaml`. |
279
- | <nobr>`--no-yolo`, `-n`</nobr> | Force interactive mode for a single run. |
280
- | <nobr>`--message`, `-m`</nobr> | Initial instruction to pass directly to the agent. |
281
- | <nobr>`--pipeline`, `-p`</nobr> | Pipeline mode. Auto-approves actions, requires `-m`, exits immediately after the first message turn, and defaults to the `assistant` agent. |
282
- | <nobr>`--max-turns`</nobr> | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
283
- | <nobr>`--max-cost`</nobr> | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
273
+ | Flag | Description |
274
+ | :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- |
275
+ | <nobr>`--agent`, `-a`</nobr> | Select agent persona (`pathfinder`, `architect`, `developer`, `debugger`, `assistant`). Default: `pathfinder` (`assistant` in pipeline mode). |
276
+ | <nobr>`--context`, `-c`</nobr> | Supply additional context files or directories. Repeatable (`-c a.py -c b.md`) or comma-separated (`-c "a.py,b.md"`). |
277
+ | <nobr>`--model`</nobr> | Override the default configured model. |
278
+ | <nobr>`--yolo`, `-y`</nobr> | Auto-approve all actions. To make this default, set `yolo_default: true` in `.teddy/config.yaml`. |
279
+ | <nobr>`--no-yolo`, `-n`</nobr> | Force interactive mode for a single run. |
280
+ | <nobr>`--message`, `-m`</nobr> | Initial instruction to pass directly to the agent. |
281
+ | <nobr>`--pipeline`, `-p`</nobr> | Pipeline mode. Auto-approves actions, requires `-m`, exits immediately after the first message turn, and defaults to the `assistant` agent. |
282
+ | <nobr>`--max-turns`</nobr> | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
283
+ | <nobr>`--max-cost`</nobr> | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
284
284
 
285
285
  ### Chat-Oriented Workflow (CHOP)
286
286
 
@@ -323,18 +323,18 @@ teddy context -c review.context
323
323
 
324
324
  ## Command Reference
325
325
 
326
- | Command | Description |
327
- | :---------------------------- | :--------------------------------------------------------------------------- |
328
- | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
329
- | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
330
- | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
331
- | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
332
- | `start` | Start an interactive agent session. |
333
- | `resume` | Resume an existing session. |
334
- | `update` | Check for updates and display upgrade instructions. |
335
- | `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
326
+ | Command | Description |
327
+ | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
328
+ | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
329
+ | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
330
+ | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
331
+ | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
332
+ | `start` | Start an interactive agent session. |
333
+ | `resume` | Resume an existing session. |
334
+ | `update` | Check for updates and display upgrade instructions. |
335
+ | `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
336
336
  | `context` | Export context payload (system info, git status, file tree, `init.context`). Add ad-hoc files with `-c` and skip defaults with `--only`. |
337
- | <nobr>`get-prompt`</nobr> | Retrieve agent system prompts (respects overrides in `.teddy/prompts/`). |
337
+ | <nobr>`get-prompt`</nobr> | Print the composed system prompt (agent-specific instructions plus shared `MRP.md`). |
338
338
 
339
339
  > [!NOTE]
340
340
  > By default, `execute` and `context` copy output to the clipboard. Use `--no-copy` to bypass.
@@ -125,7 +125,7 @@ TeDDy is built on the belief that you should own your software delivery lifecycl
125
125
 
126
126
  - **High-Level Governance Rules (`PROJECT.md` & `ARCHITECTURE.md`):** The simplest way to guide agents. Define product roadmaps, engineering principles, system laws, and component boundaries in living Markdown documents that agents read on every turn.
127
127
  - **Artifact Templates (`docs/templates/`):** Standardize the artifacts produced during development. Customize the Markdown templates for vertical slices, specifications, case files, and milestones to match your documentation standards.
128
- - **Agent Prompts (`.teddy/prompts/`):** To change the process itself, customize the agent prompts. Each agent's workflow is broken down into structured phases and individual steps, defined entirely in Markdown. You can tweak instructions, add domain-specific quality gates, or introduce brand-new agent personas to match how your team builds software.
128
+ - **Agent Prompts (`.teddy/prompts/`):** To change the process itself, customize the agent prompts. Each agent's workflow is broken down into structured phases and individual steps, defined entirely in Markdown. You can tweak instructions, add domain-specific quality gates, or introduce brand-new agent personas to match how your team builds software. TeDDy assembles each system prompt from two layers: the agent-specific instructions come first and the shared response protocol instructions are appended automatically. The composed prompt is saved in the session folder, and `teddy get-prompt <agent>` prints the identical result, so you can read exactly what the model receives. A customized prompt that already carries its own `<response_format>` suppresses the shared block and is used as-is.
129
129
  - **Command Automation (`Makefile`):** Instead of hardcoding shell commands inside agent prompts, common development and verification operations are routed through the Makefile. When you need to change a flag, runner, or environment setup, you change it once in the Makefile instead of updating instructions across multiple agent prompts.
130
130
  - **Context Filtering (`.teddyignore`):** Control which files TeDDy scans during context generation and tree traversal. A `.teddyignore` file in the project root follows standard ignore syntax and takes precedence over `.gitignore`, allowing you to ignore extra paths or re-include git-ignored files using negation patterns.
131
131
 
@@ -236,17 +236,17 @@ teddy resume -m "your next instruction"
236
236
 
237
237
  ### Optional Flags
238
238
 
239
- | Flag | Description |
240
- | :--- | :--- |
241
- | <nobr>`--agent`, `-a`</nobr> | Select agent persona (`pathfinder`, `architect`, `developer`, `debugger`, `assistant`). Default: `pathfinder` (`assistant` in pipeline mode). |
242
- | <nobr>`--context`, `-c`</nobr> | Supply additional context files or directories. Repeatable (`-c a.py -c b.md`) or comma-separated (`-c "a.py,b.md"`). |
243
- | <nobr>`--model`</nobr> | Override the default configured model. |
244
- | <nobr>`--yolo`, `-y`</nobr> | Auto-approve all actions. To make this default, set `yolo_default: true` in `.teddy/config.yaml`. |
245
- | <nobr>`--no-yolo`, `-n`</nobr> | Force interactive mode for a single run. |
246
- | <nobr>`--message`, `-m`</nobr> | Initial instruction to pass directly to the agent. |
247
- | <nobr>`--pipeline`, `-p`</nobr> | Pipeline mode. Auto-approves actions, requires `-m`, exits immediately after the first message turn, and defaults to the `assistant` agent. |
248
- | <nobr>`--max-turns`</nobr> | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
249
- | <nobr>`--max-cost`</nobr> | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
239
+ | Flag | Description |
240
+ | :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- |
241
+ | <nobr>`--agent`, `-a`</nobr> | Select agent persona (`pathfinder`, `architect`, `developer`, `debugger`, `assistant`). Default: `pathfinder` (`assistant` in pipeline mode). |
242
+ | <nobr>`--context`, `-c`</nobr> | Supply additional context files or directories. Repeatable (`-c a.py -c b.md`) or comma-separated (`-c "a.py,b.md"`). |
243
+ | <nobr>`--model`</nobr> | Override the default configured model. |
244
+ | <nobr>`--yolo`, `-y`</nobr> | Auto-approve all actions. To make this default, set `yolo_default: true` in `.teddy/config.yaml`. |
245
+ | <nobr>`--no-yolo`, `-n`</nobr> | Force interactive mode for a single run. |
246
+ | <nobr>`--message`, `-m`</nobr> | Initial instruction to pass directly to the agent. |
247
+ | <nobr>`--pipeline`, `-p`</nobr> | Pipeline mode. Auto-approves actions, requires `-m`, exits immediately after the first message turn, and defaults to the `assistant` agent. |
248
+ | <nobr>`--max-turns`</nobr> | Maximum turns for a non-interactive run. Overrides `guardrails.max_turns` in `.teddy/config.yaml`. |
249
+ | <nobr>`--max-cost`</nobr> | Maximum session cost in dollars for a non-interactive run. Overrides `guardrails.max_session_cost` in `.teddy/config.yaml`. |
250
250
 
251
251
  ### Chat-Oriented Workflow (CHOP)
252
252
 
@@ -289,18 +289,18 @@ teddy context -c review.context
289
289
 
290
290
  ## Command Reference
291
291
 
292
- | Command | Description |
293
- | :---------------------------- | :--------------------------------------------------------------------------- |
294
- | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
295
- | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
296
- | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
297
- | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
298
- | `start` | Start an interactive agent session. |
299
- | `resume` | Resume an existing session. |
300
- | `update` | Check for updates and display upgrade instructions. |
301
- | `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
292
+ | Command | Description |
293
+ | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
294
+ | `init` | Initialize `.teddy` workspace with defaults and pre-warm dependencies. |
295
+ | <nobr>`init prompts`</nobr> | Overwrite bundled prompt Markdown files in `.teddy/prompts/` with defaults. |
296
+ | <nobr>`init config`</nobr> | Overwrite `config.yaml`, `.gitignore`, and `init.context` with defaults. |
297
+ | <nobr>`init templates`</nobr> | Overwrite bundled Markdown templates in `docs/templates/` with defaults. |
298
+ | `start` | Start an interactive agent session. |
299
+ | `resume` | Resume an existing session. |
300
+ | `update` | Check for updates and display upgrade instructions. |
301
+ | `execute` | Execute a Markdown plan (reads from clipboard if no path is provided). |
302
302
  | `context` | Export context payload (system info, git status, file tree, `init.context`). Add ad-hoc files with `-c` and skip defaults with `--only`. |
303
- | <nobr>`get-prompt`</nobr> | Retrieve agent system prompts (respects overrides in `.teddy/prompts/`). |
303
+ | <nobr>`get-prompt`</nobr> | Print the composed system prompt (agent-specific instructions plus shared `MRP.md`). |
304
304
 
305
305
  > [!NOTE]
306
306
  > By default, `execute` and `context` copy output to the clipboard. Use `--no-copy` to bypass.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "teddy-cli"
3
- version = "0.1.17.dev1408"
3
+ version = "0.1.17.dev1410"
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 = [
@@ -193,11 +193,9 @@ def _ensure_project_initialized(container, root_dir: str | None = None) -> None:
193
193
  IRepoTreeGenerator,
194
194
  factory=lambda: LocalRepoTreeGenerator(
195
195
  root_dir=root,
196
- max_depth=c.resolve(IConfigService).get_setting(
197
- "context.max_tree_depth", 3
198
- ),
199
- max_tree_width=c.resolve(IConfigService).get_setting(
200
- "context.max_tree_width", 20
196
+ max_depth=c.resolve(IConfigService).get_setting("context.max_depth", 3),
197
+ max_children=c.resolve(IConfigService).get_setting(
198
+ "context.max_children", 20
201
199
  ),
202
200
  ),
203
201
  scope=Scope.transient,
@@ -18,21 +18,19 @@ class LocalRepoTreeGenerator(IRepoTreeGenerator):
18
18
  def __init__(
19
19
  self,
20
20
  root_dir: str = ".",
21
- max_depth: int = DEFAULT_APP_CONFIG.context.max_tree_depth,
22
- max_tree_width: int = DEFAULT_APP_CONFIG.context.max_tree_width,
21
+ max_depth: int = DEFAULT_APP_CONFIG.context.max_depth,
22
+ max_children: int = DEFAULT_APP_CONFIG.context.max_children,
23
23
  ):
24
24
  from teddy_executor.adapters.outbound.filesystem_helpers import (
25
25
  load_ignore_spec,
26
26
  )
27
27
 
28
28
  assert max_depth >= 0, f"max_depth must be non-negative, got {max_depth}"
29
- assert max_tree_width >= 1, (
30
- f"max_tree_width must be positive, got {max_tree_width}"
31
- )
29
+ assert max_children >= 1, f"max_children must be positive, got {max_children}"
32
30
  self.root_dir = Path(root_dir).resolve()
33
31
  self.ignore_spec = load_ignore_spec(self.root_dir)
34
32
  self._max_depth = max_depth
35
- self._max_tree_width = max_tree_width
33
+ self._max_children = max_children
36
34
 
37
35
  @property
38
36
  def max_depth(self) -> int:
@@ -40,9 +38,9 @@ class LocalRepoTreeGenerator(IRepoTreeGenerator):
40
38
  return self._max_depth
41
39
 
42
40
  @property
43
- def max_tree_width(self) -> int:
41
+ def max_children(self) -> int:
44
42
  """The configured maximum visible entries per non-root directory."""
45
- return self._max_tree_width
43
+ return self._max_children
46
44
 
47
45
  def generate_tree(self) -> str:
48
46
  """
@@ -97,7 +95,7 @@ class LocalRepoTreeGenerator(IRepoTreeGenerator):
97
95
  if entries is None:
98
96
  return [UNREADABLE_MARKER]
99
97
 
100
- if not is_root and len(entries) > self._max_tree_width:
98
+ if not is_root and len(entries) > self._max_children:
101
99
  return [self._compact_notice(entries)]
102
100
 
103
101
  names: list[str] = []
@@ -44,8 +44,8 @@ class ReadConfig:
44
44
 
45
45
  @dataclass(frozen=True)
46
46
  class ContextConfig:
47
- max_tree_depth: int = 3
48
- max_tree_width: int = 20
47
+ max_depth: int = 3
48
+ max_children: int = 20
49
49
 
50
50
 
51
51
  @dataclass(frozen=True)
@@ -211,8 +211,8 @@ _SCHEMA_FIELDS: tuple[_FieldSpec, ...] = (
211
211
  _FieldSpec("workspace.pre-commit", "workspace", "pre_commit", bool),
212
212
  _FieldSpec("workspace.pull", "workspace", "pull", bool),
213
213
  _FieldSpec("read.max_lines", "read", "max_lines", int, minimum=1),
214
- _FieldSpec("context.max_tree_depth", "context", "max_tree_depth", int, minimum=0),
215
- _FieldSpec("context.max_tree_width", "context", "max_tree_width", int, minimum=1),
214
+ _FieldSpec("context.max_depth", "context", "max_depth", int, minimum=0),
215
+ _FieldSpec("context.max_children", "context", "max_children", int, minimum=1),
216
216
  _FieldSpec("research.max_results", "research", "max_results", int, minimum=1),
217
217
  _FieldSpec("checks.prompts", "checks", "prompts", bool),
218
218
  _FieldSpec("checks.templates", "checks", "templates", bool),
@@ -12,7 +12,7 @@ class IRepoTreeGenerator(Protocol):
12
12
  ...
13
13
 
14
14
  @property
15
- def max_tree_width(self) -> int:
15
+ def max_children(self) -> int:
16
16
  """The maximum visible entries listed for a non-root directory."""
17
17
  ...
18
18
 
@@ -393,7 +393,7 @@ class ContextService(IGetContextUseCase):
393
393
  """State both tree limits once, so the compact notices stay meaningful."""
394
394
  return (
395
395
  f"*Tree capped at depth {self._repo_tree_generator.max_depth} "
396
- f"and width {self._repo_tree_generator.max_tree_width}: "
396
+ f"and width {self._repo_tree_generator.max_children}: "
397
397
  "truncated directories show counts only.*"
398
398
  )
399
399
 
@@ -147,11 +147,11 @@ def register_infrastructure(container: punq.Container) -> None:
147
147
  IRepoTreeGenerator,
148
148
  factory=lambda: LocalRepoTreeGenerator(
149
149
  max_depth=container.resolve(IConfigService).get_setting(
150
- "context.max_tree_depth", DEFAULT_APP_CONFIG.context.max_tree_depth
150
+ "context.max_depth", DEFAULT_APP_CONFIG.context.max_depth
151
151
  ),
152
- max_tree_width=container.resolve(IConfigService).get_setting(
153
- "context.max_tree_width",
154
- DEFAULT_APP_CONFIG.context.max_tree_width,
152
+ max_children=container.resolve(IConfigService).get_setting(
153
+ "context.max_children",
154
+ DEFAULT_APP_CONFIG.context.max_children,
155
155
  ),
156
156
  ),
157
157
  scope=punq.Scope.transient,
@@ -10,16 +10,16 @@ edit:
10
10
  similarity_threshold: 0.95 # EDIT match threshold (1.0 = exact match; ignores relative indentation).
11
11
 
12
12
  workspace:
13
- init: true # Initialize a missing Git repository (start and resume).
14
- pre-commit: true # Install pre-commit and post-commit git hooks (start and resume).
15
- pull: true # Fast-forward pull before starting a new session (start only).
13
+ init: true # Initialize a missing Git repository (start and resume).
14
+ pre-commit: true # Install pre-commit and post-commit git hooks (start and resume).
15
+ pull: true # Fast-forward pull before starting a new session (start only).
16
16
 
17
17
  read:
18
18
  max_lines: 1000 # Caps READ action output lines.
19
19
 
20
20
  context:
21
- max_tree_depth: 3 # Max project tree depth.
22
- max_tree_width: 20 # Max entries listed per directory.
21
+ max_depth: 3 # Max project tree depth.
22
+ max_children: 20 # Max entries listed per directory.
23
23
 
24
24
  research:
25
25
  max_results: 5 # Number of search results to fetch and scrape.
@@ -40,15 +40,18 @@ guardrails: # Non-interactive limits (--yolo / --pipelin
40
40
  auto_pruning:
41
41
  enabled: true
42
42
  turn_context_threshold: 50000 # Token budget for turn-scoped files only (excludes session.context & system prompts).
43
- prune_failure_history: true # Prunes non-green turns once recovery succeeds.
43
+ prune_failure_history: true # Prunes non-green turns once recovery succeeds.
44
44
  prune_validation_failures: true # Prunes malformed turns that failed validation.
45
45
  preserve_message_turns: true # Preserves user-communicating turns from pruning.
46
46
  max_turns_retention: 10 # Max historical turns retained in turn context.
47
47
 
48
48
  # LiteLLM reference: https://docs.litellm.ai/docs/completion/input (all keys under llm pass directly to litellm).
49
+ # OpenRouter syntax: "openrouter/<slug>" (:nitro=fastest, :floor=cheapest).
50
+ # ${TEDDY_LLM_API_KEY} resolves from .teddy/.env or shell environment.
51
+
49
52
  llm:
50
- model: "openrouter/~deepseek/deepseek-flash-latest:nitro" # OpenRouter syntax: "openrouter/<slug>" (:nitro=fast, :floor=cheap).
51
- api_key: "${TEDDY_LLM_API_KEY}" # Resolves from .teddy/.env or shell environment.
53
+ model: "openrouter/~deepseek/deepseek-flash-latest:nitro"
54
+ api_key: "${TEDDY_LLM_API_KEY}"
52
55
  max_retries: 3
53
56
  timeout: 300
54
57
  extra_headers: