ayder-cli 2.1.5__tar.gz → 2.2.1__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 (270) hide show
  1. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/PKG-INFO +1 -1
  2. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/docs/PROJECT_STRUCTURE.md +5 -5
  3. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/docs/config.toml.example +1 -0
  4. ayder_cli-2.2.1/docs/superpowers/plans/2026-06-26-file-editor-improvements.md +771 -0
  5. ayder_cli-2.2.1/docs/superpowers/plans/2026-06-26-session-save-resume.md +1047 -0
  6. ayder_cli-2.2.1/docs/superpowers/specs/2026-06-26-file-editor-improvements-design.md +180 -0
  7. ayder_cli-2.2.1/docs/superpowers/specs/2026-06-26-session-save-resume-design.md +319 -0
  8. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/pyproject.toml +1 -1
  9. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/registry.py +202 -44
  10. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/run.py +5 -1
  11. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/runner.py +45 -4
  12. ayder_cli-2.2.1/src/ayder_cli/agents/tool.py +184 -0
  13. ayder_cli-2.2.1/src/ayder_cli/agents/worktree.py +130 -0
  14. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/cli.py +70 -1
  15. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/cli_runner.py +6 -16
  16. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/config.py +11 -1
  17. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/context_manager.py +8 -1
  18. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/ollama_context_manager.py +12 -1
  19. ayder_cli-2.2.1/src/ayder_cli/core/session.py +216 -0
  20. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/process_manager.py +220 -27
  21. ayder_cli-2.2.1/src/ayder_cli/prompts.py +393 -0
  22. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/background_process_tool.py +103 -0
  23. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/filesystem.py +93 -35
  24. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/filesystem_definitions.py +24 -3
  25. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/note_tool.py +158 -0
  26. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/notes.py +115 -4
  27. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/notes_definitions.py +97 -0
  28. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/process_manager_definitions.py +67 -0
  29. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/shell.py +106 -0
  30. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/shell_definitions.py +53 -0
  31. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/task_definitions.py +131 -0
  32. ayder_cli-2.2.1/src/ayder_cli/tools/builtins/task_tool.py +399 -0
  33. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/tasks.py +18 -7
  34. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/definition.py +2 -2
  35. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/registry.py +1 -1
  36. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/__init__.py +32 -10
  37. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/app.py +36 -20
  38. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/commands.py +3 -3
  39. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/screens.py +1 -1
  40. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/COVERAGE.md +2 -2
  41. ayder_cli-2.2.1/tests/agents/test_agent_consolidated.py +92 -0
  42. ayder_cli-2.2.1/tests/agents/test_agent_tools.py +83 -0
  43. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_callbacks.py +1 -1
  44. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_config.py +1 -1
  45. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_integration.py +5 -5
  46. ayder_cli-2.2.1/tests/agents/test_queue.py +204 -0
  47. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_registry.py +66 -12
  48. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_run.py +15 -0
  49. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_runner.py +81 -4
  50. ayder_cli-2.2.1/tests/agents/test_tool.py +19 -0
  51. ayder_cli-2.2.1/tests/agents/test_worktree_helpers.py +105 -0
  52. ayder_cli-2.2.1/tests/agents/test_worktree_isolation.py +296 -0
  53. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/convergence/test_execution_policy_parity.py +3 -3
  54. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config_v2.py +10 -0
  55. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_ollama_context_manager.py +29 -0
  56. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_parser.py +11 -11
  57. ayder_cli-2.2.1/tests/core/test_session.py +157 -0
  58. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/loops/test_chat_loop_tool_truncation.py +24 -3
  59. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_cli.py +51 -0
  60. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_process_manager.py +150 -0
  61. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_tasks.py +1 -1
  62. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_agent_notes.py +1 -1
  63. ayder_cli-2.2.1/tests/tools/test_background_process_tool.py +121 -0
  64. ayder_cli-2.2.1/tests/tools/test_bash_tool.py +183 -0
  65. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_definition_discovery.py +4 -4
  66. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_impl.py +206 -14
  67. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_impl_coverage.py +5 -5
  68. ayder_cli-2.2.1/tests/tools/test_note_tool.py +158 -0
  69. ayder_cli-2.2.1/tests/tools/test_notes_api.py +118 -0
  70. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_registry.py +3 -3
  71. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_registry_coverage.py +1 -1
  72. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_schemas.py +5 -6
  73. ayder_cli-2.2.1/tests/tools/test_task_tool.py +375 -0
  74. ayder_cli-2.2.1/tests/tui/test_resume.py +86 -0
  75. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_confirm_screen.py +8 -4
  76. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_helpers.py +4 -4
  77. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_ui.py +3 -3
  78. ayder_cli-2.1.5/src/ayder_cli/agents/tool.py +0 -183
  79. ayder_cli-2.1.5/src/ayder_cli/prompts.py +0 -345
  80. ayder_cli-2.1.5/src/ayder_cli/tools/builtins/notes_definitions.py +0 -39
  81. ayder_cli-2.1.5/src/ayder_cli/tools/builtins/process_manager_definitions.py +0 -84
  82. ayder_cli-2.1.5/src/ayder_cli/tools/builtins/shell.py +0 -34
  83. ayder_cli-2.1.5/src/ayder_cli/tools/builtins/shell_definitions.py +0 -31
  84. ayder_cli-2.1.5/src/ayder_cli/tools/builtins/tasks_definitions.py +0 -48
  85. ayder_cli-2.1.5/tests/agents/test_agent_tools.py +0 -85
  86. ayder_cli-2.1.5/tests/agents/test_tool.py +0 -142
  87. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/.github/workflows/ci.yml +0 -0
  88. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/.github/workflows/python-package.yml +0 -0
  89. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/.gitignore +0 -0
  90. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/.python-version +0 -0
  91. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/AGENTS.md +0 -0
  92. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/LICENSE +0 -0
  93. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/README.md +0 -0
  94. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/docs/README_AGENT_WORKFLOW.md +0 -0
  95. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/docs/README_OLLAMA.md +0 -0
  96. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/docs/cc.png +0 -0
  97. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/__init__.py +0 -0
  98. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/__main__.py +0 -0
  99. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/__init__.py +0 -0
  100. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/callbacks.py +0 -0
  101. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/agents/config.py +0 -0
  102. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/README.md +0 -0
  103. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/__init__.py +0 -0
  104. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/execution_policy.py +0 -0
  105. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/message_contract.py +0 -0
  106. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/runtime_factory.py +0 -0
  107. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/application/validation.py +0 -0
  108. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/cli_callbacks.py +0 -0
  109. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/console.py +0 -0
  110. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/cache_monitor.py +0 -0
  111. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/config_migration.py +0 -0
  112. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/context.py +0 -0
  113. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/context_manager_factory.py +0 -0
  114. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/default_context_manager.py +0 -0
  115. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/core/result.py +0 -0
  116. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/logging_config.py +0 -0
  117. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/loops/__init__.py +0 -0
  118. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/loops/chat_loop.py +0 -0
  119. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/parser.py +0 -0
  120. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/__init__.py +0 -0
  121. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/base.py +0 -0
  122. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/claude.py +0 -0
  123. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/deepseek.py +0 -0
  124. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/gemini.py +0 -0
  125. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/glm.py +0 -0
  126. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama.py +0 -0
  127. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/__init__.py +0 -0
  128. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/_errors.py +0 -0
  129. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/base.py +0 -0
  130. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/deepseek.py +0 -0
  131. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/generic_native.py +0 -0
  132. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/generic_xml.py +0 -0
  133. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/matrix.py +0 -0
  134. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/minimax.py +0 -0
  135. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/qwen3.py +0 -0
  136. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_drivers/registry.py +0 -0
  137. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/ollama_inspector.py +0 -0
  138. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/openai.py +0 -0
  139. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/impl/qwen.py +0 -0
  140. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/orchestrator.py +0 -0
  141. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/providers/retry.py +0 -0
  142. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/services/__init__.py +0 -0
  143. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/services/interactions.py +0 -0
  144. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/themes/__init__.py +0 -0
  145. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/themes/claude.py +0 -0
  146. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/themes/original.py +0 -0
  147. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/__init__.py +0 -0
  148. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/__init__.py +0 -0
  149. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/context.py +0 -0
  150. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/context_definitions.py +0 -0
  151. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/search.py +0 -0
  152. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/search_definitions.py +0 -0
  153. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/utils_tools.py +0 -0
  154. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/utils_tools_definitions.py +0 -0
  155. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/web.py +0 -0
  156. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/builtins/web_definitions.py +0 -0
  157. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/execution.py +0 -0
  158. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/hooks.py +0 -0
  159. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/normalization.py +0 -0
  160. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/plugin_api.py +0 -0
  161. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/plugin_github.py +0 -0
  162. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/plugin_manager.py +0 -0
  163. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/plugin_status.py +0 -0
  164. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/schemas.py +0 -0
  165. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tools/utils.py +0 -0
  166. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/adapter.py +0 -0
  167. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/helpers.py +0 -0
  168. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/keybindings.py +0 -0
  169. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/parser.py +0 -0
  170. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/theme_manager.py +0 -0
  171. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/types.py +0 -0
  172. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/tui/widgets.py +0 -0
  173. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/ui.py +0 -0
  174. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/src/ayder_cli/version.py +0 -0
  175. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/__init__.py +0 -0
  176. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/__init__.py +0 -0
  177. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/agents/test_runner_provider_unavailable.py +0 -0
  178. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/application/test_message_contract.py +0 -0
  179. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/application/test_runtime_factory.py +0 -0
  180. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/client/test_main.py +0 -0
  181. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/convergence/__init__.py +0 -0
  182. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/convergence/test_runtime_wiring.py +0 -0
  183. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/convergence/test_validation_path.py +0 -0
  184. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_cache_monitor.py +0 -0
  185. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config.py +0 -0
  186. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config_coverage.py +0 -0
  187. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config_migration.py +0 -0
  188. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config_provider_logging.py +0 -0
  189. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_config_retry.py +0 -0
  190. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_context_manager_factory.py +0 -0
  191. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_default_context_manager.py +0 -0
  192. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_default_context_manager_should_compact.py +0 -0
  193. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_ollama_context_manager_cache_monitor.py +0 -0
  194. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_ollama_context_manager_max_history.py +0 -0
  195. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/core/test_parameter_aliasing.py +0 -0
  196. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/loops/__init__.py +0 -0
  197. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/loops/test_base.py +0 -0
  198. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/loops/test_chat_loop_hook.py +0 -0
  199. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/__init__.py +0 -0
  200. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/__init__.py +0 -0
  201. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_base.py +0 -0
  202. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_deepseek.py +0 -0
  203. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_errors.py +0 -0
  204. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_fallback.py +0 -0
  205. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_generic_native.py +0 -0
  206. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_generic_xml.py +0 -0
  207. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_matrix.py +0 -0
  208. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_minimax.py +0 -0
  209. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_provider_integration.py +0 -0
  210. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_qwen3.py +0 -0
  211. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/ollama_drivers/test_registry.py +0 -0
  212. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_glm_async.py +0 -0
  213. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_ollama_inspector.py +0 -0
  214. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_ollama_native.py +0 -0
  215. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_ollama_xml.py +0 -0
  216. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_ollama_xml_autoroute.py +0 -0
  217. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_ollama_xml_usage.py +0 -0
  218. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_orchestrator_capabilities.py +0 -0
  219. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_qwen_async.py +0 -0
  220. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_retry_classifier.py +0 -0
  221. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_retry_integration.py +0 -0
  222. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/providers/test_retrying_provider.py +0 -0
  223. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/services/test_boundary.py +0 -0
  224. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/services/test_interaction_sink.py +0 -0
  225. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_cli_callbacks.py +0 -0
  226. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_context.py +0 -0
  227. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_env_manager.py +0 -0
  228. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_logging_config.py +0 -0
  229. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/test_notes.py +0 -0
  230. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/__init__.py +0 -0
  231. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_di_injection.py +0 -0
  232. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_path_security.py +0 -0
  233. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_plugin_api.py +0 -0
  234. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_plugin_github.py +0 -0
  235. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_plugin_loading.py +0 -0
  236. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_plugin_manager.py +0 -0
  237. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_plugin_status.py +0 -0
  238. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_result.py +0 -0
  239. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_search_codebase.py +0 -0
  240. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_utils.py +0 -0
  241. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tools/test_web.py +0 -0
  242. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/__init__.py +0 -0
  243. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_agent_list_screen.py +0 -0
  244. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_do_clear_coordination.py +0 -0
  245. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_follow_mode.py +0 -0
  246. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_help_screen.py +0 -0
  247. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_input_box.py +0 -0
  248. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_keybindings.py +0 -0
  249. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_multi_select_screen.py +0 -0
  250. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_multiline_input.py +0 -0
  251. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_paste.py +0 -0
  252. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_pending_compact_consumer.py +0 -0
  253. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_pull_delivery.py +0 -0
  254. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_status_bar_badges.py +0 -0
  255. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_turn_consumer.py +0 -0
  256. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/tui/test_widgets.py +0 -0
  257. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_diff_preview.py +0 -0
  258. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_plugin_autoenable.py +0 -0
  259. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_provider_switch.py +0 -0
  260. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_run_tui_startup.py +0 -0
  261. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_assistant_sanitization.py +0 -0
  262. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_chat_loop.py +0 -0
  263. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_commands_agent.py +0 -0
  264. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_commands_logging.py +0 -0
  265. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_commands_plugin.py +0 -0
  266. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_commands_provider.py +0 -0
  267. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_temporal_command.py +0 -0
  268. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_tui_widgets.py +0 -0
  269. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_ui_coverage.py +0 -0
  270. {ayder_cli-2.1.5 → ayder_cli-2.2.1}/tests/ui/test_ui_verbose.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ayder-cli
3
- Version: 2.1.5
3
+ Version: 2.2.1
4
4
  Summary: AI agent for any LLMs
5
5
  Project-URL: Homepage, https://github.com/ayder/ayder-cli
6
6
  Project-URL: Repository, https://github.com/ayder/ayder-cli.git
@@ -288,7 +288,7 @@ the design rationale.
288
288
  | `tools/plugin_github.py` | GitHub-sourced plugin fetcher | remote-plugin loader |
289
289
  | `tools/builtins/filesystem.py` | File system tool impls | `file_explorer()`, `read_file()`, `file_editor()` |
290
290
  | `tools/builtins/search.py` | Search tool impls | `search_codebase()`, `get_project_structure()` |
291
- | `tools/builtins/shell.py` | Shell execution impl | `run_shell_command()` |
291
+ | `tools/builtins/shell.py` | Shell execution impl | `bash()` |
292
292
  | `tools/builtins/context.py` | Session context snapshots | `context` |
293
293
  | `tools/builtins/notes.py` | Note-taking tool | `create_note()` |
294
294
  | `tools/builtins/tasks.py` | Task-management tools | `list_tasks()`, `show_task()` |
@@ -300,7 +300,7 @@ the design rationale.
300
300
 
301
301
  | Module | Purpose | Key Classes/Functions |
302
302
  |--------|---------|----------------------|
303
- | `process_manager.py` | Background processes | `ProcessManager`, `run_background_process()` |
303
+ | `process_manager.py` | Background processes | `ProcessManager`, `background_process()` |
304
304
  | `prompts.py` | System prompts | `SYSTEM_PROMPT`, `PLANNING_PROMPT_TEMPLATE`, `get_system_prompt()`, `PROJECT_STRUCTURE_MACRO_TEMPLATE` |
305
305
  | `parser.py` | XML tool-call parsing | `parse_custom_tool_calls()` |
306
306
 
@@ -634,7 +634,7 @@ Supports both synchronous tool execution and integrated with asyncio for TUI.
634
634
  Schema-driven tool definitions with auto-discovery:
635
635
  - **Auto-discovery**: `_discover_definitions()` scans all `*_definitions.py` files in `tools/builtins/` at import time — no manual registration
636
636
  - **Duplicate detection**: Tracks `(definition, source_module)` pairs; raises `ValueError` with accurate module names if a tool name appears twice
637
- - **Required-tool validation**: Raises `ImportError` if core tools (`file_explorer`, `read_file`, `file_editor`, `run_shell_command`) are absent
637
+ - **Required-tool validation**: Raises `ImportError` if core tools (`file_explorer`, `read_file`, `file_editor`, `bash`) are absent
638
638
  - **Permissions**: `"r"` (read), `"w"` (write), `"x"` (execute), `"http"` (network)
639
639
  - **Safety flags**: `safe_mode_blocked`, `is_terminal` per definition
640
640
  - **Path parameters**: Names listed in `path_parameters` are automatically resolved via `ProjectContext`
@@ -645,10 +645,10 @@ Schema-driven tool definitions with auto-discovery:
645
645
  16 built-in tools across 9 definition files:
646
646
  - Filesystem (3): `file_explorer`, `read_file`, `file_editor`
647
647
  - Search (2): `search_codebase`, `get_project_structure`
648
- - Shell (1): `run_shell_command`
648
+ - Shell (1): `bash`
649
649
  - Context (1): `context`
650
650
  - Notes (1): `create_note`
651
- - Background Processes (4): `run_background_process`, `get_background_output`, `kill_background_process`, `list_background_processes`
651
+ - Background Process (1): `background_process` (action=start|logs|stop|list|info)
652
652
  - Tasks (2): `list_tasks`, `show_task`
653
653
  - Environment (1): `manage_environment_vars`
654
654
  - Web (1): `fetch_web`
@@ -81,6 +81,7 @@ editor = "vim"
81
81
  verbose = false
82
82
  prompt = "STANDARD" # MINIMAL | STANDARD | EXTENDED
83
83
  max_background_processes = 5 # cap on concurrent background processes (e.g. test runs)
84
+ max_concurrent_agents = 5 # max agents running at once; extra dispatches queue (1-20)
84
85
  max_output_tokens = 8192 # orchestrator response cap
85
86
  # Max conversation messages kept per turn. 0 = unlimited (default): the context
86
87
  # manager's token budget + compaction are the bound, so the model uses its real