zai-adk-python-preview 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/PKG-INFO +1 -1
  2. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/pyproject.toml +1 -1
  3. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/uv.lock +14 -17
  4. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/agent/service.py +21 -33
  5. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/.claude/settings.local.json +0 -0
  6. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/.gitignore +0 -0
  7. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/CLAUDE.md +0 -0
  8. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/LICENSE +0 -0
  9. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/README.md +0 -0
  10. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/README_zh.md +0 -0
  11. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/agui.md +0 -0
  12. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2025-02-02-reorganize-tests.md +0 -0
  13. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2025-02-02-skill-reference-fix.md +0 -0
  14. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-01-29-sandbox.md +0 -0
  15. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-01-30-built-in-tools.md +0 -0
  16. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-01-30-skill-filesystem-enhancement.md +0 -0
  17. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-02-skills-optimization.md +0 -0
  18. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-02-subagent-implementation.md +0 -0
  19. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-02-test-reorganization.md +0 -0
  20. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-03-ag-ui-protocol-support.md +0 -0
  21. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-03-default-sandbox.md +0 -0
  22. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-04-agui-missing-events.md +0 -0
  23. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-04-protocol-layer-refactor.md +0 -0
  24. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/plans/2026-02-04-remove-agui-from-agent.md +0 -0
  25. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/protocols.md +0 -0
  26. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/docs/sandbox.md +0 -0
  27. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/examples/claude_code.py +0 -0
  28. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/README.md +0 -0
  29. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/conftest.py +0 -0
  30. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/__init__.py +0 -0
  31. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agent/__init__.py +0 -0
  32. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agent/test_agent_query.py +0 -0
  33. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agent/test_default_sandbox_integration.py +0 -0
  34. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agent/test_subagent_integration.py +0 -0
  35. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agui/__init__.py +0 -0
  36. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/agui/test_agui_integration.py +0 -0
  37. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/llm/__init__.py +0 -0
  38. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/llm/test_anthropic_chat.py +0 -0
  39. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/llm/test_openai_chat.py +0 -0
  40. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/skills/__init__.py +0 -0
  41. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/skills/test_skills_end_to_end.py +0 -0
  42. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/skills/test_skills_live.py +0 -0
  43. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/tools/__init__.py +0 -0
  44. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/integration/tools/test_tools_integration.py +0 -0
  45. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/__init__.py +0 -0
  46. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/__init__.py +0 -0
  47. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_agent.py +0 -0
  48. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_agent_sandbox.py +0 -0
  49. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_agent_template.py +0 -0
  50. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_agent_templates.py +0 -0
  51. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_async_initialization.py +0 -0
  52. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_delegate_task.py +0 -0
  53. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_dependencies.py +0 -0
  54. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_sandbox_integration.py +0 -0
  55. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_skills_hot_reload.py +0 -0
  56. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_skills_injection.py +0 -0
  57. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_skills_integration.py +0 -0
  58. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_subagent_types.py +0 -0
  59. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agent/test_subagent_unit.py +0 -0
  60. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/__init__.py +0 -0
  61. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_agent_integration.py +0 -0
  62. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_converter.py +0 -0
  63. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_encoder.py +0 -0
  64. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_error_handling.py +0 -0
  65. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_events.py +0 -0
  66. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_protocol.py +0 -0
  67. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/agui/test_thinking_events.py +0 -0
  68. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/compaction/__init__.py +0 -0
  69. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/compaction/test_compaction.py +0 -0
  70. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/mcp/__init__.py +0 -0
  71. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/mcp/test_client.py +0 -0
  72. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/mcp/test_config.py +0 -0
  73. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/protocols/__init__.py +0 -0
  74. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/protocols/test_base.py +0 -0
  75. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/sandbox/__init__.py +0 -0
  76. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/sandbox/test_base.py +0 -0
  77. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/sandbox/test_factory.py +0 -0
  78. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/sandbox/test_local.py +0 -0
  79. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/sandbox/test_sandbox_config.py +0 -0
  80. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/__init__.py +0 -0
  81. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_manager.py +0 -0
  82. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_manager_filesystem.py +0 -0
  83. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_manager_logging.py +0 -0
  84. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_parser.py +0 -0
  85. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_types.py +0 -0
  86. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/skills/test_xml_generator.py +0 -0
  87. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/todo/__init__.py +0 -0
  88. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/todo/test_service.py +0 -0
  89. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tokens/__init__.py +0 -0
  90. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tokens/test_tokens.py +0 -0
  91. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/__init__.py +0 -0
  92. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_fs_edit.py +0 -0
  93. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_fs_grep.py +0 -0
  94. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_sandbox_tools.py +0 -0
  95. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_skill_exec_tool.py +0 -0
  96. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_skills_tool.py +0 -0
  97. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_task_run_tool.py +0 -0
  98. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/tests/unit/tools/test_todo_tools.py +0 -0
  99. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/__init__.py +0 -0
  100. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/agent/__init__.py +0 -0
  101. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/agent/events.py +0 -0
  102. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/agent/types.py +0 -0
  103. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/context/__init__.py +0 -0
  104. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/context/compaction.py +0 -0
  105. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/context/models.py +0 -0
  106. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/__init__.py +0 -0
  107. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/anthropic/chat.py +0 -0
  108. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/anthropic/serializer.py +0 -0
  109. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/base.py +0 -0
  110. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/exceptions.py +0 -0
  111. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/messages.py +0 -0
  112. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/openai/chat.py +0 -0
  113. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/openai/serializer.py +0 -0
  114. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/schema.py +0 -0
  115. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/llm/views.py +0 -0
  116. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/mcp/__init__.py +0 -0
  117. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/mcp/client.py +0 -0
  118. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/mcp/config.py +0 -0
  119. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/observability/__init__.py +0 -0
  120. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/observability/observability.py +0 -0
  121. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/__init__.py +0 -0
  122. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/agui/__init__.py +0 -0
  123. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/agui/converter.py +0 -0
  124. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/agui/encoder.py +0 -0
  125. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/agui/events.py +0 -0
  126. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/agui/protocol.py +0 -0
  127. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/protocols/base.py +0 -0
  128. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/sandbox/__init__.py +0 -0
  129. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/sandbox/base.py +0 -0
  130. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/sandbox/config.py +0 -0
  131. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/sandbox/factory.py +0 -0
  132. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/sandbox/local.py +0 -0
  133. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/skills/__init__.py +0 -0
  134. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/skills/manager.py +0 -0
  135. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/skills/parser.py +0 -0
  136. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/skills/types.py +0 -0
  137. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/skills/xml_generator.py +0 -0
  138. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/todo/__init__.py +0 -0
  139. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/todo/service.py +0 -0
  140. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tokens/__init__.py +0 -0
  141. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tokens/custom_pricing.py +0 -0
  142. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tokens/mappings.py +0 -0
  143. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tokens/service.py +0 -0
  144. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tokens/views.py +0 -0
  145. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/__init__.py +0 -0
  146. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/__init__.py +0 -0
  147. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/bash.py +0 -0
  148. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_edit.py +0 -0
  149. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_glob.py +0 -0
  150. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_grep.py +0 -0
  151. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_read.py +0 -0
  152. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_stat.py +0 -0
  153. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/fs_write.py +0 -0
  154. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/skill_exec.py +0 -0
  155. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/skills.py +0 -0
  156. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/task_run.py +0 -0
  157. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/builtin/todo.py +0 -0
  158. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/decorator.py +0 -0
  159. {zai_adk_python_preview-0.1.0 → zai_adk_python_preview-0.1.2}/zai_adk/tools/depends.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zai-adk-python-preview
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: A Python SDK for building AI agents with LLM integration
5
5
  Project-URL: Homepage, https://github.com/zai-adk-python/zai-adk-python
6
6
  Project-URL: Documentation, https://github.com/zai-adk-python/zai-adk-python#readme
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zai-adk-python-preview"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "A Python SDK for building AI agents with LLM integration"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -439,17 +439,6 @@ wheels = [
439
439
  { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" },
440
440
  ]
441
441
 
442
- [[package]]
443
- name = "dotenv"
444
- version = "0.9.9"
445
- source = { registry = "https://pypi.org/simple" }
446
- dependencies = [
447
- { name = "python-dotenv" },
448
- ]
449
- wheels = [
450
- { url = "https://files.pythonhosted.org/packages/b2/b7/545d2c10c1fc15e48653c91efde329a790f2eecfbbf2bd16003b5db2bab0/dotenv-0.9.9-py2.py3-none-any.whl", hash = "sha256:29cf74a087b31dafdb5a446b6d7e11cbce8ed2741540e2339c69fbef92c94ce9", size = 1892, upload-time = "2025-02-19T22:15:01.647Z" },
451
- ]
452
-
453
442
  [[package]]
454
443
  name = "fastapi"
455
444
  version = "0.128.0"
@@ -2277,21 +2266,28 @@ wheels = [
2277
2266
  ]
2278
2267
 
2279
2268
  [[package]]
2280
- name = "zai-adk-python"
2281
- version = "0.1.0"
2282
- source = { virtual = "." }
2269
+ name = "zai-adk-python-preview"
2270
+ version = "0.1.2"
2271
+ source = { editable = "." }
2283
2272
  dependencies = [
2284
2273
  { name = "aiohttp" },
2285
2274
  { name = "anthropic" },
2286
2275
  { name = "anyio" },
2287
- { name = "dotenv" },
2288
2276
  { name = "httpx", extra = ["socks"] },
2289
2277
  { name = "mcp" },
2290
2278
  { name = "openai" },
2291
2279
  { name = "pydantic" },
2280
+ { name = "python-dotenv" },
2292
2281
  ]
2293
2282
 
2294
2283
  [package.optional-dependencies]
2284
+ all = [
2285
+ { name = "anthropic" },
2286
+ { name = "fastapi" },
2287
+ { name = "lmnr" },
2288
+ { name = "openai" },
2289
+ { name = "uvicorn", extra = ["standard"] },
2290
+ ]
2295
2291
  anthropic = [
2296
2292
  { name = "anthropic" },
2297
2293
  ]
@@ -2322,7 +2318,6 @@ requires-dist = [
2322
2318
  { name = "anthropic", specifier = ">=0.40.0" },
2323
2319
  { name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.40.0" },
2324
2320
  { name = "anyio", specifier = ">=4.12.1" },
2325
- { name = "dotenv", specifier = ">=0.9.9" },
2326
2321
  { name = "fastapi", marker = "extra == 'server'", specifier = ">=0.115.0" },
2327
2322
  { name = "httpx", extras = ["socks"], specifier = ">=0.28.1" },
2328
2323
  { name = "lmnr", marker = "extra == 'observability'", specifier = ">=0.4.0" },
@@ -2332,9 +2327,11 @@ requires-dist = [
2332
2327
  { name = "pydantic", specifier = ">=2.0.0" },
2333
2328
  { name = "pytest", marker = "extra == 'test'", specifier = ">=8.0.0" },
2334
2329
  { name = "pytest-asyncio", marker = "extra == 'test'", specifier = ">=0.23.0" },
2330
+ { name = "python-dotenv", specifier = ">=0.9.9" },
2335
2331
  { name = "uvicorn", extras = ["standard"], marker = "extra == 'server'", specifier = ">=0.32.0" },
2332
+ { name = "zai-adk-python-preview", extras = ["anthropic", "openai", "observability", "server"], marker = "extra == 'all'" },
2336
2333
  ]
2337
- provides-extras = ["anthropic", "openai", "observability", "server", "agui", "test"]
2334
+ provides-extras = ["anthropic", "openai", "observability", "server", "test", "all"]
2338
2335
 
2339
2336
  [package.metadata.requires-dev]
2340
2337
  dev = [
@@ -7,6 +7,7 @@ import json
7
7
  import logging
8
8
  import random
9
9
  import re
10
+ import time
10
11
  from collections.abc import AsyncIterator
11
12
  from contextlib import nullcontext
12
13
  from dataclasses import dataclass, field
@@ -249,7 +250,6 @@ class Agent:
249
250
  # No sandbox provided - create default LocalSandbox with cwd as work_dir
250
251
  default_config = SandboxConfig(kind="local", work_dir=str(Path.cwd()))
251
252
  self._sandbox = SandboxFactory().create(default_config)
252
- logger.debug(f"[Agent] Created default LocalSandbox with work_dir={self._sandbox.work_dir}")
253
253
  elif isinstance(self.sandbox, SandboxConfig):
254
254
  # It's a SandboxConfig, need to create the sandbox
255
255
  self._sandbox = SandboxFactory().create(self.sandbox)
@@ -278,11 +278,9 @@ class Agent:
278
278
  if self.skills_manager is not None:
279
279
  # Use externally provided SkillsManager
280
280
  self._skills_manager = self.skills_manager
281
- logger.info("[Agent] __post_init__: Using external SkillsManager")
282
281
  elif self.skills_dir is not None:
283
282
  # Create SkillsManager from skills_dir
284
283
  self._skills_manager = SkillsManager(skills_dir=self.skills_dir)
285
- logger.info(f"[Agent] __post_init__: Created SkillsManager from skills_dir: {self.skills_dir}")
286
284
  else:
287
285
  # No skills configured
288
286
  self._skills_manager = None
@@ -329,26 +327,14 @@ class Agent:
329
327
  agent = Agent(llm=llm, tools=[tools], skills_dir="./skills")
330
328
  await agent.async_initialize()
331
329
  """
332
- logger.info("[Agent] async_initialize: Starting")
333
-
334
330
  # Initialize skills if skills_manager is configured
335
331
  if self._skills_manager is not None:
336
332
  try:
337
- logger.info("[Agent] async_initialize: Scanning skills directory...")
338
333
  skills_metadata = await self._skills_manager.scan()
339
-
340
334
  if skills_metadata:
341
- logger.info(f"[Agent] async_initialize: Found {len(skills_metadata)} skill(s)")
342
335
  self._update_system_prompt_with_skills(skills_metadata)
343
- logger.info("[Agent] async_initialize: ✓ Injected skills metadata into system prompt")
344
- else:
345
- logger.info("[Agent] async_initialize: No skills found, skipping injection")
346
336
  except Exception as e:
347
- logger.error(f"[Agent] async_initialize: Failed to initialize skills: {e}")
348
- else:
349
- logger.info("[Agent] async_initialize: No SkillsManager configured, skipping")
350
-
351
- logger.info("[Agent] async_initialize: Complete")
337
+ logger.error(f"[Agent] Failed to initialize skills: {e}")
352
338
 
353
339
  async def refresh_skills_metadata(self) -> None:
354
340
  """Refresh skills metadata for hot reload support.
@@ -365,10 +351,7 @@ class Agent:
365
351
  Example:
366
352
  await agent.refresh_skills_metadata()
367
353
  """
368
- logger.info("[Agent] refresh_skills_metadata: Starting")
369
-
370
354
  if self._skills_manager is None:
371
- logger.info("[Agent] refresh_skills_metadata: No SkillsManager configured, skipping")
372
355
  return
373
356
 
374
357
  try:
@@ -378,20 +361,13 @@ class Agent:
378
361
  old_prompt = self.system_prompt
379
362
  self.system_prompt = re.sub(skills_pattern, '', self.system_prompt).strip()
380
363
 
381
- if old_prompt != self.system_prompt and "<skills_system" in old_prompt:
382
- logger.info("[Agent] refresh_skills_metadata: Removed old skills section")
383
-
384
364
  # Re-scan and re-inject
385
365
  skills_metadata = await self._skills_manager.scan()
386
-
387
366
  if skills_metadata:
388
367
  self._update_system_prompt_with_skills(skills_metadata)
389
- logger.info(f"[Agent] refresh_skills_metadata: Refreshed with {len(skills_metadata)} skill(s)")
390
- else:
391
- logger.info("[Agent] refresh_skills_metadata: No skills found after scan")
392
368
 
393
369
  except Exception as e:
394
- logger.error(f"[Agent] refresh_skills_metadata: Failed: {e}")
370
+ logger.error(f"[Agent] Failed to refresh skills: {e}")
395
371
 
396
372
  @property
397
373
  def tool_definitions(self) -> list[ToolDefinition]:
@@ -540,10 +516,6 @@ class Agent:
540
516
  messages_to_destroy = messages[:-keep_count] if keep_count > 0 else messages
541
517
 
542
518
  for msg in messages_to_destroy:
543
- # Log which message is being destroyed
544
- logger.debug(
545
- f"🗑️ Destroying ephemeral: {msg.tool_name} (keeping last {keep_count})"
546
- )
547
519
 
548
520
  # Save to disk if storage path is configured
549
521
  if self.ephemeral_storage_path is not None:
@@ -582,6 +554,16 @@ class Agent:
582
554
  is_error=True,
583
555
  )
584
556
 
557
+ # Parse arguments for logging
558
+ try:
559
+ args = json.loads(tool_call.function.arguments)
560
+ args_str = json.dumps(args)[:100] # Truncate for log
561
+ except json.JSONDecodeError:
562
+ args_str = tool_call.function.arguments[:100]
563
+
564
+ logger.info(f"[Agent] Tool call: {tool_name}({args_str})")
565
+ start_time = time.time()
566
+
585
567
  # Create Laminar span for tool execution
586
568
  if Laminar is not None:
587
569
  span_context = Laminar.start_as_current_span(
@@ -608,6 +590,9 @@ class Agent:
608
590
  _overrides=self._get_dependency_overrides(), **args
609
591
  )
610
592
 
593
+ elapsed = time.time() - start_time
594
+ logger.info(f"[Agent] Tool {tool_name} completed in {elapsed:.2f}s")
595
+
611
596
  # Check if the tool is marked as ephemeral (can be bool or int for keep count)
612
597
  is_ephemeral = bool(tool.ephemeral) # Convert int to bool (2 -> True)
613
598
 
@@ -677,7 +662,7 @@ class Agent:
677
662
  """Log retry and wait before next attempt."""
678
663
  delay = self._calculate_retry_delay(attempt)
679
664
  logger.warning(
680
- f"⚠️ Got {reason}, retrying in {delay:.1f}s... "
665
+ f"[Agent] LLM call failed: {reason}, retrying in {delay:.1f}s "
681
666
  f"(attempt {attempt + 1}/{self.llm_max_retries})"
682
667
  )
683
668
  await asyncio.sleep(delay)
@@ -726,9 +711,9 @@ class Agent:
726
711
 
727
712
  Includes retry logic with exponential backoff for LLM errors.
728
713
  """
729
- last_error: Exception | None = None
730
714
 
731
715
  for attempt in range(self.llm_max_retries):
716
+ start_time = time.time()
732
717
  try:
733
718
  response = await self.llm.ainvoke(
734
719
  messages=self._messages,
@@ -736,6 +721,9 @@ class Agent:
736
721
  tool_choice=self.tool_choice if self.tools else None,
737
722
  )
738
723
 
724
+ elapsed = time.time() - start_time
725
+ logger.info(f"[Agent] LLM call completed in {elapsed:.2f}s")
726
+
739
727
  # Track token usage
740
728
  if response.usage:
741
729
  self._token_cost.add_usage(self.llm.model, response.usage)