atomic-agents 2.7.3__tar.gz → 2.7.4__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 (325) hide show
  1. atomic_agents-2.7.4/.assets/whats-new-v2-thumbnail.png +0 -0
  2. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/PKG-INFO +5 -1
  3. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/README.md +4 -0
  4. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/__init__.py +4 -2
  5. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/agents/atomic_agent.py +24 -9
  6. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/context/chat_history.py +2 -2
  7. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/agents/test_atomic_agent.py +69 -0
  8. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/pyproject.toml +1 -1
  9. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/uv.lock +1 -1
  10. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/architecture_highlevel_overview.png +0 -0
  11. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/atomic-cli-tool-menu.png +0 -0
  12. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/atomic-cli.png +0 -0
  13. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/docs.png +0 -0
  14. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/logo.png +0 -0
  15. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/video-thumbnail-1.png +0 -0
  16. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/video-thumbnail-2.png +0 -0
  17. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/video-thumbnail.png +0 -0
  18. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.assets/what_is_sent_in_prompt.png +0 -0
  19. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.claude/skills/release/SKILL.md +0 -0
  20. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.claude-plugin/marketplace.json +0 -0
  21. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.coveragerc +0 -0
  22. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.flake8 +0 -0
  23. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.github/funding.yml +0 -0
  24. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.github/workflows/code-quality.yml +0 -0
  25. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.github/workflows/docs.yml +0 -0
  26. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.gitignore +0 -0
  27. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/.pre-commit-config.yaml +0 -0
  28. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/LICENSE +0 -0
  29. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/UPGRADE_DOC.md +0 -0
  30. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/agents.md +0 -0
  31. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/LICENSE +0 -0
  32. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/MANIFEST.in +0 -0
  33. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/agents/__init__.py +0 -0
  34. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/base/__init__.py +0 -0
  35. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/base/base_io_schema.py +0 -0
  36. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/base/base_prompt.py +0 -0
  37. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/base/base_resource.py +0 -0
  38. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/base/base_tool.py +0 -0
  39. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/connectors/__init__.py +0 -0
  40. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/connectors/mcp/__init__.py +0 -0
  41. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/connectors/mcp/mcp_definition_service.py +0 -0
  42. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/connectors/mcp/mcp_factory.py +0 -0
  43. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/connectors/mcp/schema_transformer.py +0 -0
  44. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/context/__init__.py +0 -0
  45. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/context/system_prompt_generator.py +0 -0
  46. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/utils/__init__.py +0 -0
  47. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/utils/format_tool_message.py +0 -0
  48. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/atomic_agents/utils/token_counter.py +0 -0
  49. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/base/test_base_tool.py +0 -0
  50. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/connectors/mcp/test_mcp_definition_service.py +0 -0
  51. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/connectors/mcp/test_mcp_factory.py +0 -0
  52. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/connectors/mcp/test_schema_transformer.py +0 -0
  53. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/context/test_chat_history.py +0 -0
  54. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/context/test_system_prompt_generator.py +0 -0
  55. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/files/audio_sample.mp3 +0 -0
  56. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/files/image_sample.jpg +0 -0
  57. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/files/pdf_sample.pdf +0 -0
  58. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/utils/test_format_tool_message.py +0 -0
  59. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-agents/tests/utils/test_token_counter.py +0 -0
  60. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/README.md +0 -0
  61. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/__init__.py +0 -0
  62. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/app.py +0 -0
  63. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/color_utils.py +0 -0
  64. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/constants.py +0 -0
  65. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/main.py +0 -0
  66. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/screens/atomic_tool_explorer.py +0 -0
  67. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/screens/file_explorer.py +0 -0
  68. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/screens/main_menu.py +0 -0
  69. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/screens/tool_info_screen.py +0 -0
  70. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/utils.py +0 -0
  71. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/confirmation_modal.py +0 -0
  72. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/generic_list.py +0 -0
  73. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/gradient_title.py +0 -0
  74. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/icon_selection_list.py +0 -0
  75. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/menu.py +0 -0
  76. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/new_item_input.py +0 -0
  77. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-assembler/atomic_assembler/widgets/tool_info_display.py +0 -0
  78. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-multimodal/README.md +0 -0
  79. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-multimodal/basic_multimodal/main.py +0 -0
  80. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-multimodal/pyproject.toml +0 -0
  81. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-multimodal/test_images/nutrition_label_1.png +0 -0
  82. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-multimodal/test_images/nutrition_label_2.jpg +0 -0
  83. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-pdf-analysis/README.md +0 -0
  84. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-pdf-analysis/basic_pdf_analysis/main.py +0 -0
  85. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-pdf-analysis/pyproject.toml +0 -0
  86. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/basic-pdf-analysis/test_media/pdf_sample.pdf +0 -0
  87. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/README.md +0 -0
  88. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/agents/choice_agent.py +0 -0
  89. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/agents/qa_agent.py +0 -0
  90. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/agents/query_agent.py +0 -0
  91. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/config.py +0 -0
  92. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/context_providers.py +0 -0
  93. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/main.py +0 -0
  94. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/tools/searxng_search.py +0 -0
  95. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/deep_research/tools/webpage_scraper.py +0 -0
  96. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/mermaid.md +0 -0
  97. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/deep-research/pyproject.toml +0 -0
  98. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/README.md +0 -0
  99. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/__init__.py +0 -0
  100. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/bridge.py +0 -0
  101. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/domain/__init__.py +0 -0
  102. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/domain/datasets.py +0 -0
  103. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/domain/evaluation.py +0 -0
  104. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/domain/models.py +0 -0
  105. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/main.py +0 -0
  106. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/presentation/__init__.py +0 -0
  107. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/presentation/console.py +0 -0
  108. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/schemas.py +0 -0
  109. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/stages/__init__.py +0 -0
  110. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/stages/stage1_dspy.py +0 -0
  111. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/stages/stage2_atomic.py +0 -0
  112. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/dspy_integration/stages/stage3_combined.py +0 -0
  113. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/dspy-integration/pyproject.toml +0 -0
  114. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/README.md +0 -0
  115. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/__init__.py +0 -0
  116. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/client.py +0 -0
  117. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/lib/__init__.py +0 -0
  118. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/lib/agents/__init__.py +0 -0
  119. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/lib/agents/chat_agent.py +0 -0
  120. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/lib/config.py +0 -0
  121. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/lib/schemas.py +0 -0
  122. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/fastapi_memory/main.py +0 -0
  123. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/pyproject.toml +0 -0
  124. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/fastapi-memory/test_api.py +0 -0
  125. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/hooks-example/README.md +0 -0
  126. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/hooks-example/hooks_example/main.py +0 -0
  127. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/hooks-example/pyproject.toml +0 -0
  128. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/README.md +0 -0
  129. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main.py +0 -0
  130. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main_fastapi.py +0 -0
  131. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main_http.py +0 -0
  132. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main_sse.py +0 -0
  133. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main_stdio.py +0 -0
  134. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/example_client/main_stdio_async.py +0 -0
  135. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-client/pyproject.toml +0 -0
  136. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/README.md +0 -0
  137. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/demo_tools.py +0 -0
  138. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/__init__.py +0 -0
  139. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/__init__.py +0 -0
  140. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/prompt.py +0 -0
  141. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/resource.py +0 -0
  142. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/tool.py +0 -0
  143. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/prompts/sample_prompts.py +0 -0
  144. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/resources/__init__.py +0 -0
  145. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/resources/sample_resources.py +0 -0
  146. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server.py +0 -0
  147. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_http.py +0 -0
  148. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_sse.py +0 -0
  149. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_stdio.py +0 -0
  150. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/__init__.py +0 -0
  151. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/prompt_service.py +0 -0
  152. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/resource_service.py +0 -0
  153. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/tool_service.py +0 -0
  154. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/__init__.py +0 -0
  155. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/add_numbers.py +0 -0
  156. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/batch_operations.py +0 -0
  157. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/divide_numbers.py +0 -0
  158. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/multiply_numbers.py +0 -0
  159. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/subtract_numbers.py +0 -0
  160. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/mcp-agent/example-mcp-server/pyproject.toml +0 -0
  161. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/nested-multimodal/README.md +0 -0
  162. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/nested-multimodal/nested_multimodal/main.py +0 -0
  163. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/nested-multimodal/pyproject.toml +0 -0
  164. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/nested-multimodal/test_images/nutrition_label_1.png +0 -0
  165. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/orchestration-agent/README.md +0 -0
  166. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/orchestration-agent/orchestration_agent/orchestrator.py +0 -0
  167. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/orchestration-agent/orchestration_agent/tools/calculator.py +0 -0
  168. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/orchestration-agent/orchestration_agent/tools/searxng_search.py +0 -0
  169. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/orchestration-agent/pyproject.toml +0 -0
  170. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/README.md +0 -0
  171. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/__init__.py +0 -0
  172. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/agents/__init__.py +0 -0
  173. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/agents/orchestrator_agent.py +0 -0
  174. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/agents/tool_finder_agent.py +0 -0
  175. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/main.py +0 -0
  176. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/registry/__init__.py +0 -0
  177. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/registry/tool_registry.py +0 -0
  178. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/tools/__init__.py +0 -0
  179. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/progressive_disclosure/tools/search_tools.py +0 -0
  180. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/pyproject.toml +0 -0
  181. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/data_server/data_server/__init__.py +0 -0
  182. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/data_server/data_server/server.py +0 -0
  183. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/data_server/pyproject.toml +0 -0
  184. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/math_server/math_server/__init__.py +0 -0
  185. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/math_server/math_server/server.py +0 -0
  186. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/math_server/pyproject.toml +0 -0
  187. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/text_server/pyproject.toml +0 -0
  188. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/text_server/text_server/__init__.py +0 -0
  189. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/progressive-disclosure/servers/text_server/text_server/server.py +0 -0
  190. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/README.md +0 -0
  191. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/pyproject.toml +0 -0
  192. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/1_0_basic_chatbot.py +0 -0
  193. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/1_1_basic_chatbot_streaming.py +0 -0
  194. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/1_2_basic_chatbot_async_streaming.py +0 -0
  195. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/2_basic_custom_chatbot.py +0 -0
  196. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/3_0_basic_custom_chatbot_with_custom_schema.py +0 -0
  197. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/3_1_basic_custom_chatbot_with_custom_schema_streaming.py +0 -0
  198. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/4_basic_chatbot_different_providers.py +0 -0
  199. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/5_custom_system_role_for_reasoning_models.py +0 -0
  200. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/6_0_asynchronous_processing.py +0 -0
  201. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/quickstart/quickstart/6_1_asynchronous_processing_streaming.py +0 -0
  202. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/.gitignore +0 -0
  203. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/README.md +0 -0
  204. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/pyproject.toml +0 -0
  205. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/agents/qa_agent.py +0 -0
  206. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/agents/query_agent.py +0 -0
  207. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/config.py +0 -0
  208. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/context_providers.py +0 -0
  209. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/main.py +0 -0
  210. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/services/__init__.py +0 -0
  211. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/services/base.py +0 -0
  212. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/services/chroma_db.py +0 -0
  213. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/services/factory.py +0 -0
  214. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/rag-chatbot/rag_chatbot/services/qdrant_db.py +0 -0
  215. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/README.md +0 -0
  216. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/pyproject.toml +0 -0
  217. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/web_search_agent/agents/query_agent.py +0 -0
  218. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/web_search_agent/agents/question_answering_agent.py +0 -0
  219. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/web_search_agent/main.py +0 -0
  220. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/web-search-agent/web_search_agent/tools/searxng_search.py +0 -0
  221. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-summarizer/README.md +0 -0
  222. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-summarizer/pyproject.toml +0 -0
  223. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-summarizer/youtube_summarizer/agent.py +0 -0
  224. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-summarizer/youtube_summarizer/main.py +0 -0
  225. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-summarizer/youtube_summarizer/tools/youtube_transcript_scraper.py +0 -0
  226. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-to-recipe/README.md +0 -0
  227. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-to-recipe/pyproject.toml +0 -0
  228. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-to-recipe/youtube_to_recipe/agent.py +0 -0
  229. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-to-recipe/youtube_to_recipe/main.py +0 -0
  230. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-examples/youtube-to-recipe/youtube_to_recipe/tools/youtube_transcript_scraper.py +0 -0
  231. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/README.md +0 -0
  232. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/guides/tool_structure.md +0 -0
  233. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/.coveragerc +0 -0
  234. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/README.md +0 -0
  235. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/pyproject.toml +0 -0
  236. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/requirements.txt +0 -0
  237. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/tests/test_bocha_search.py +0 -0
  238. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/bocha_search/tool/bocha_search.py +0 -0
  239. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/.coveragerc +0 -0
  240. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/README.md +0 -0
  241. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/pyproject.toml +0 -0
  242. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/requirements.txt +0 -0
  243. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/tests/test_calculator.py +0 -0
  244. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/calculator/tool/calculator.py +0 -0
  245. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/.coveragerc +0 -0
  246. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/README.md +0 -0
  247. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/pyproject.toml +0 -0
  248. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/pytest.ini +0 -0
  249. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/requirements.txt +0 -0
  250. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/tests/test_searxng_search.py +0 -0
  251. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/searxng_search/tool/searxng_search.py +0 -0
  252. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/.coveragerc +0 -0
  253. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/README.md +0 -0
  254. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/pyproject.toml +0 -0
  255. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/requirements.txt +0 -0
  256. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/tests/test_tavily_seach.py +0 -0
  257. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/tavily_search/tool/tavily_search.py +0 -0
  258. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/README.md +0 -0
  259. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/pyproject.toml +0 -0
  260. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/requirements.txt +0 -0
  261. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/tests/conftest.py +0 -0
  262. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/tests/test_webpage_scraper.py +0 -0
  263. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/webpage_scraper/tool/webpage_scraper.py +0 -0
  264. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/.coveragerc +0 -0
  265. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/README.md +0 -0
  266. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/pyproject.toml +0 -0
  267. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/requirements.txt +0 -0
  268. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/tests/test_youtube_transcript_scraper.py +0 -0
  269. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/atomic-forge/tools/youtube_transcript_scraper/tool/youtube_transcript_scraper.py +0 -0
  270. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/build_and_deploy.ps1 +0 -0
  271. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/.claude-plugin/plugin.json +0 -0
  272. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/CHANGELOG.md +0 -0
  273. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/LICENSE +0 -0
  274. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/README.md +0 -0
  275. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/agents/atomic-architect.md +0 -0
  276. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/agents/atomic-explorer.md +0 -0
  277. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/agents/atomic-reviewer.md +0 -0
  278. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/agents/schema-designer.md +0 -0
  279. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/commands/atomic-agent.md +0 -0
  280. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/commands/atomic-create.md +0 -0
  281. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/commands/atomic-tool.md +0 -0
  282. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-agents/SKILL.md +0 -0
  283. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-agents/examples/basic-agent.py +0 -0
  284. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-context/SKILL.md +0 -0
  285. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-context/examples/rag-context.py +0 -0
  286. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-prompts/SKILL.md +0 -0
  287. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-schemas/SKILL.md +0 -0
  288. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-schemas/examples/common-schemas.py +0 -0
  289. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-structure/SKILL.md +0 -0
  290. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-tools/SKILL.md +0 -0
  291. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/claude-plugin/atomic-agents/skills/atomic-tools/examples/api-tool.py +0 -0
  292. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/.nojekyll +0 -0
  293. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/Makefile +0 -0
  294. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/_static/logo.png +0 -0
  295. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/api/agents.md +0 -0
  296. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/api/context.md +0 -0
  297. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/api/index.md +0 -0
  298. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/api/utils.md +0 -0
  299. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/conf.py +0 -0
  300. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/contributing.md +0 -0
  301. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/examples/index.md +0 -0
  302. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/examples/mcp_agent.md +0 -0
  303. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/cookbook.md +0 -0
  304. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/deployment.md +0 -0
  305. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/error-handling.md +0 -0
  306. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/faq.md +0 -0
  307. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/hooks.md +0 -0
  308. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/index.md +0 -0
  309. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/logging.md +0 -0
  310. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/memory.md +0 -0
  311. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/orchestration.md +0 -0
  312. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/performance.md +0 -0
  313. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/quickstart.md +0 -0
  314. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/security.md +0 -0
  315. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/testing.md +0 -0
  316. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/guides/tools.md +0 -0
  317. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/index.md +0 -0
  318. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/docs/make.bat +0 -0
  319. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/greptile.json +0 -0
  320. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/guides/DEV_GUIDE.md +0 -0
  321. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/pytest.ini +0 -0
  322. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/requirements.txt +0 -0
  323. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/scripts/generate_llms_files.py +0 -0
  324. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/scripts/sync_version.py +0 -0
  325. {atomic_agents-2.7.3 → atomic_agents-2.7.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atomic-agents
3
- Version: 2.7.3
3
+ Version: 2.7.4
4
4
  Summary: A versatile framework for creating and managing intelligent agents.
5
5
  Project-URL: Homepage, https://github.com/BrainBlend-AI/atomic-agents
6
6
  Project-URL: Repository, https://github.com/BrainBlend-AI/atomic-agents
@@ -321,6 +321,10 @@ For a complete list of examples, see the [examples directory](/atomic-examples/)
321
321
 
322
322
  ## 🚀 Version 2.0 Released!
323
323
 
324
+ [![What's New in V2.0](./.assets/whats-new-v2-thumbnail.png)](https://www.youtube.com/watch?v=ro-pM2bPmr0)
325
+
326
+ [**Watch: What's New in Atomic Agents V2.0**](https://www.youtube.com/watch?v=ro-pM2bPmr0)
327
+
324
328
  **Atomic Agents v2.0 is here with major improvements!** This release includes breaking changes that significantly improve the developer experience:
325
329
 
326
330
  ### Key Changes in v2.0:
@@ -290,6 +290,10 @@ For a complete list of examples, see the [examples directory](/atomic-examples/)
290
290
 
291
291
  ## 🚀 Version 2.0 Released!
292
292
 
293
+ [![What's New in V2.0](./.assets/whats-new-v2-thumbnail.png)](https://www.youtube.com/watch?v=ro-pM2bPmr0)
294
+
295
+ [**Watch: What's New in Atomic Agents V2.0**](https://www.youtube.com/watch?v=ro-pM2bPmr0)
296
+
293
297
  **Atomic Agents v2.0 is here with major improvements!** This release includes breaking changes that significantly improve the developer experience:
294
298
 
295
299
  ### Key Changes in v2.0:
@@ -6,8 +6,10 @@ Atomic Agents - A modular framework for building AI agents.
6
6
  from .agents.atomic_agent import AtomicAgent, AgentConfig, BasicChatInputSchema, BasicChatOutputSchema
7
7
  from .base import BaseIOSchema, BaseTool, BaseToolConfig
8
8
 
9
- # Version info
10
- __version__ = "2.0.0"
9
+ # Version info - read from pyproject.toml via package metadata
10
+ from importlib.metadata import version as _version
11
+
12
+ __version__ = _version("atomic-agents")
11
13
 
12
14
  __all__ = [
13
15
  "AtomicAgent",
@@ -249,6 +249,19 @@ class AtomicAgent[InputSchema: BaseIOSchema, OutputSchema: BaseIOSchema]:
249
249
  self.messages = self._build_system_messages()
250
250
  self.messages += self.history.get_history()
251
251
 
252
+ def _get_completion_kwargs(self) -> Dict[str, Any]:
253
+ """
254
+ Build kwargs for Instructor completion calls.
255
+
256
+ Instructor defaults `strict=True`, which forces enum fields to receive enum
257
+ instances instead of allowing Pydantic's normal coercion from strings. We
258
+ default to `strict=None` here so the output schema's own Pydantic behavior
259
+ applies unless callers explicitly override it via `model_api_parameters`.
260
+ """
261
+ completion_kwargs = dict(self.model_api_parameters)
262
+ completion_kwargs.setdefault("strict", None)
263
+ return completion_kwargs
264
+
252
265
  def _build_tools_definition(self) -> Optional[List[Dict[str, Any]]]:
253
266
  """
254
267
  Build the tools definition that Instructor sends for TOOLS mode.
@@ -443,7 +456,7 @@ class AtomicAgent[InputSchema: BaseIOSchema, OutputSchema: BaseIOSchema]:
443
456
  messages=self.messages,
444
457
  model=self.model,
445
458
  response_model=self.output_schema,
446
- **self.model_api_parameters,
459
+ **self._get_completion_kwargs(),
447
460
  )
448
461
  self.history.add_message(self.assistant_role, response)
449
462
  self._prepare_messages()
@@ -477,18 +490,20 @@ class AtomicAgent[InputSchema: BaseIOSchema, OutputSchema: BaseIOSchema]:
477
490
  model=self.model,
478
491
  messages=self.messages,
479
492
  response_model=self.output_schema,
480
- **self.model_api_parameters,
493
+ **self._get_completion_kwargs(),
481
494
  stream=True,
482
495
  )
483
496
 
497
+ last_response = None
484
498
  for partial_response in response_stream:
499
+ last_response = partial_response
485
500
  yield partial_response
486
501
 
487
- full_response_content = self.output_schema(**partial_response.model_dump())
488
- self.history.add_message(self.assistant_role, full_response_content)
489
- self._prepare_messages()
490
-
491
- return full_response_content
502
+ if last_response:
503
+ full_response_content = self.output_schema(**last_response.model_dump())
504
+ self.history.add_message(self.assistant_role, full_response_content)
505
+ self._prepare_messages()
506
+ return full_response_content
492
507
 
493
508
  async def run_async(self, user_input: Optional[InputSchema] = None) -> OutputSchema:
494
509
  """
@@ -513,7 +528,7 @@ class AtomicAgent[InputSchema: BaseIOSchema, OutputSchema: BaseIOSchema]:
513
528
  self._prepare_messages()
514
529
 
515
530
  response = await self.client.chat.completions.create(
516
- model=self.model, messages=self.messages, response_model=self.output_schema, **self.model_api_parameters
531
+ model=self.model, messages=self.messages, response_model=self.output_schema, **self._get_completion_kwargs()
517
532
  )
518
533
 
519
534
  self.history.add_message(self.assistant_role, response)
@@ -542,7 +557,7 @@ class AtomicAgent[InputSchema: BaseIOSchema, OutputSchema: BaseIOSchema]:
542
557
  model=self.model,
543
558
  messages=self.messages,
544
559
  response_model=self.output_schema,
545
- **self.model_api_parameters,
560
+ **self._get_completion_kwargs(),
546
561
  stream=True,
547
562
  )
548
563
 
@@ -204,12 +204,12 @@ class ChatHistory:
204
204
  """
205
205
  return self.current_turn_id
206
206
 
207
- def delete_turn_id(self, turn_id: int):
207
+ def delete_turn_id(self, turn_id: str):
208
208
  """
209
209
  Delete messages from the history by its turn ID.
210
210
 
211
211
  Args:
212
- turn_id (int): The turn ID of the message to delete.
212
+ turn_id (str): The turn ID of the message to delete.
213
213
 
214
214
  Returns:
215
215
  str: A success message with the deleted turn ID.
@@ -1,6 +1,8 @@
1
1
  import pytest
2
2
  from unittest.mock import Mock, call, patch
3
+ from enum import Enum
3
4
  from pydantic import BaseModel, Field
5
+ from pydantic import ValidationError
4
6
  import instructor
5
7
  from atomic_agents import (
6
8
  BaseIOSchema,
@@ -148,6 +150,73 @@ def test_initialization_without_max_tokens(mock_instructor, mock_history, mock_s
148
150
  assert agent.model_api_parameters["max_tokens"] == 1024
149
151
 
150
152
 
153
+ def test_run_uses_pydantic_default_strictness_for_enum_output(mock_history, mock_system_prompt_generator):
154
+ class Topic(Enum):
155
+ FOOD = "food"
156
+ OTHER = "other"
157
+
158
+ class EnumOutputSchema(BaseIOSchema):
159
+ """Output schema with an enum field for validation tests."""
160
+
161
+ topic: Topic = Field(...)
162
+
163
+ enum_instructor = Mock(spec=instructor.Instructor)
164
+ enum_instructor.chat = Mock()
165
+ enum_instructor.chat.completions = Mock()
166
+
167
+ def mock_create(*args, **kwargs):
168
+ return kwargs["response_model"].model_validate({"topic": "food"}, strict=kwargs["strict"])
169
+
170
+ enum_instructor.chat.completions.create.side_effect = mock_create
171
+
172
+ config = AgentConfig(
173
+ client=enum_instructor,
174
+ model="gpt-5-mini",
175
+ history=mock_history,
176
+ system_prompt_generator=mock_system_prompt_generator,
177
+ )
178
+ agent = AtomicAgent[BasicChatInputSchema, EnumOutputSchema](config)
179
+
180
+ result = agent.run()
181
+
182
+ assert result.topic is Topic.FOOD
183
+ assert enum_instructor.chat.completions.create.call_args.kwargs["strict"] is None
184
+
185
+
186
+ def test_run_respects_explicit_strict_override_for_enum_output(mock_history, mock_system_prompt_generator):
187
+ class Topic(Enum):
188
+ FOOD = "food"
189
+ OTHER = "other"
190
+
191
+ class EnumOutputSchema(BaseIOSchema):
192
+ """Output schema with an enum field for validation tests."""
193
+
194
+ topic: Topic = Field(...)
195
+
196
+ enum_instructor = Mock(spec=instructor.Instructor)
197
+ enum_instructor.chat = Mock()
198
+ enum_instructor.chat.completions = Mock()
199
+
200
+ def mock_create(*args, **kwargs):
201
+ return kwargs["response_model"].model_validate({"topic": "food"}, strict=kwargs["strict"])
202
+
203
+ enum_instructor.chat.completions.create.side_effect = mock_create
204
+
205
+ config = AgentConfig(
206
+ client=enum_instructor,
207
+ model="gpt-5-mini",
208
+ history=mock_history,
209
+ system_prompt_generator=mock_system_prompt_generator,
210
+ model_api_parameters={"strict": True},
211
+ )
212
+ agent = AtomicAgent[BasicChatInputSchema, EnumOutputSchema](config)
213
+
214
+ with pytest.raises(ValidationError):
215
+ agent.run()
216
+
217
+ assert enum_instructor.chat.completions.create.call_args.kwargs["strict"] is True
218
+
219
+
151
220
  def test_initialization_system_role_equals_developer(mock_instructor, mock_history, mock_system_prompt_generator):
152
221
  config = AgentConfig(
153
222
  client=mock_instructor,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "atomic-agents"
7
- version = "2.7.3"
7
+ version = "2.7.4"
8
8
  description = "A versatile framework for creating and managing intelligent agents."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -194,7 +194,7 @@ wheels = [
194
194
 
195
195
  [[package]]
196
196
  name = "atomic-agents"
197
- version = "2.7.3"
197
+ version = "2.7.4"
198
198
  source = { editable = "." }
199
199
  dependencies = [
200
200
  { name = "gitpython" },
File without changes
File without changes
File without changes
File without changes
File without changes