agentkit-sdk-python 0.5.5__tar.gz → 0.5.7__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 (196) hide show
  1. {agentkit_sdk_python-0.5.5/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.5.7}/PKG-INFO +1 -1
  2. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/agent_server_app/agent_server_app.py +12 -4
  3. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/client/base_service_client.py +117 -26
  4. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/__init__.py +3 -1
  5. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/configuration.py +111 -12
  6. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/version.py +1 -1
  7. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7/agentkit_sdk_python.egg-info}/PKG-INFO +1 -1
  8. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/pyproject.toml +2 -2
  9. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/LICENSE +0 -0
  10. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/MANIFEST.in +0 -0
  11. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/README.md +0 -0
  12. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/__init__.py +0 -0
  13. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/__init__.py +0 -0
  14. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/a2a_app/__init__.py +0 -0
  15. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/a2a_app/a2a_app.py +0 -0
  16. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/a2a_app/telemetry.py +0 -0
  17. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/agent_server_app/__init__.py +0 -0
  18. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/agent_server_app/middleware.py +0 -0
  19. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/agent_server_app/telemetry.py +0 -0
  20. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/base_app.py +0 -0
  21. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/mcp_app/__init__.py +0 -0
  22. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/mcp_app/mcp_app.py +0 -0
  23. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/mcp_app/telemetry.py +0 -0
  24. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/simple_app/__init__.py +0 -0
  25. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/simple_app/simple_app.py +0 -0
  26. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/simple_app/simple_app_handlers.py +0 -0
  27. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/simple_app/telemetry.py +0 -0
  28. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/apps/utils.py +0 -0
  29. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/client/__init__.py +0 -0
  30. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/client/base_agentkit_client.py +0 -0
  31. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/client/base_iam_client.py +0 -0
  32. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/console_urls.py +0 -0
  33. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/constants.py +0 -0
  34. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/context.py +0 -0
  35. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/platform/provider.py +0 -0
  36. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/__init__.py +0 -0
  37. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/account/client.py +0 -0
  38. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/account/types.py +0 -0
  39. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/identity/__init__.py +0 -0
  40. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/identity/auth.py +0 -0
  41. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/knowledge/__init__.py +0 -0
  42. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/knowledge/client.py +0 -0
  43. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/knowledge/types.py +0 -0
  44. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/mcp/__init__.py +0 -0
  45. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/mcp/client.py +0 -0
  46. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/mcp/types.py +0 -0
  47. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/memory/__init__.py +0 -0
  48. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/memory/client.py +0 -0
  49. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/memory/types.py +0 -0
  50. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/runtime/__init__.py +0 -0
  51. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/runtime/client.py +0 -0
  52. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/runtime/types.py +0 -0
  53. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/skills/__init__.py +0 -0
  54. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/skills/client.py +0 -0
  55. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/skills/types.py +0 -0
  56. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/tools/__init__.py +0 -0
  57. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/tools/client.py +0 -0
  58. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/sdk/tools/types.py +0 -0
  59. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/__init__.py +0 -0
  60. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/builders/__init__.py +0 -0
  61. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/builders/base.py +0 -0
  62. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/builders/local_docker.py +0 -0
  63. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/builders/ve_pipeline.py +0 -0
  64. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/__init__.py +0 -0
  65. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/__main__.py +0 -0
  66. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli.py +0 -0
  67. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_build.py +0 -0
  68. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_config.py +0 -0
  69. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_deploy.py +0 -0
  70. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_destroy.py +0 -0
  71. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_init.py +0 -0
  72. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_invoke.py +0 -0
  73. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_knowledge.py +0 -0
  74. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_launch.py +0 -0
  75. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_memory.py +0 -0
  76. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_runtime.py +0 -0
  77. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_skills.py +0 -0
  78. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_skills_workflow.py +0 -0
  79. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_status.py +0 -0
  80. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_tools.py +0 -0
  81. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/cli_version.py +0 -0
  82. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/console_reporter.py +0 -0
  83. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/interactive_config.py +0 -0
  84. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/cli/utils.py +0 -0
  85. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/__init__.py +0 -0
  86. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/choice_resolvers.py +0 -0
  87. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/cloud_provider.py +0 -0
  88. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/config.py +0 -0
  89. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/config_handler.py +0 -0
  90. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/config_validator.py +0 -0
  91. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/constants.py +0 -0
  92. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/dataclass_utils.py +0 -0
  93. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/docker_build_config.py +0 -0
  94. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/global_config.py +0 -0
  95. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/region_defaults.py +0 -0
  96. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/region_resolver.py +0 -0
  97. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/strategy_configs.py +0 -0
  98. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/config/utils.py +0 -0
  99. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/context.py +0 -0
  100. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/__init__.py +0 -0
  101. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/base_images.py +0 -0
  102. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/container.py +0 -0
  103. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/dockerfile/__init__.py +0 -0
  104. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/dockerfile/manager.py +0 -0
  105. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/dockerfile/metadata.py +0 -0
  106. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/docker/utils.py +0 -0
  107. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/errors.py +0 -0
  108. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/__init__.py +0 -0
  109. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/base_executor.py +0 -0
  110. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/build_executor.py +0 -0
  111. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/deploy_executor.py +0 -0
  112. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/init_executor.py +0 -0
  113. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/invoke_executor.py +0 -0
  114. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/lifecycle_executor.py +0 -0
  115. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/executors/status_executor.py +0 -0
  116. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/models.py +0 -0
  117. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/reporter.py +0 -0
  118. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/__pycache__/customer_support_assistant.cpython-312.pyc +0 -0
  119. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/__pycache__/financial_analyst.cpython-312.pyc +0 -0
  120. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/__pycache__/simple_app_veadk.cpython-312.pyc +0 -0
  121. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/__pycache__/simple_mcp_veadk.cpython-312.pyc +0 -0
  122. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/a2a.py +0 -0
  123. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/agent_server.py +0 -0
  124. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/basic.py +0 -0
  125. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/basic_stream.py +0 -0
  126. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/customer_support_assistant.py +0 -0
  127. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/eino_a2a/agent.go +0 -0
  128. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/eino_a2a/build.sh +0 -0
  129. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/eino_a2a/go.mod +0 -0
  130. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/eino_a2a/go.sum +0 -0
  131. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/eino_a2a/main.go +0 -0
  132. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/financial_analyst.py +0 -0
  133. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/langchain_basic_stream.py +0 -0
  134. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/simple_app_veadk.py +0 -0
  135. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/simple_mcp_veadk.py +0 -0
  136. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_a2a/agent.go +0 -0
  137. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_a2a/build.sh +0 -0
  138. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_a2a/go.mod +0 -0
  139. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_a2a/go.sum +0 -0
  140. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_a2a/main.go +0 -0
  141. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_basic/agent.go +0 -0
  142. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_basic/build.sh +0 -0
  143. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_basic/go.mod +0 -0
  144. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_basic/go.sum +0 -0
  145. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/samples/veadk_go_basic/main.go +0 -0
  146. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/templates/code-pipeline-tos-cr-step.j2 +0 -0
  147. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/templates/golang/Dockerfile.j2 +0 -0
  148. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/templates/python/Dockerfile.j2 +0 -0
  149. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/wrappers/wrapper_basic.py.jinja2 +0 -0
  150. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/resources/wrappers/wrapper_stream.py.jinja2 +0 -0
  151. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/runners/__init__.py +0 -0
  152. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/runners/base.py +0 -0
  153. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/runners/local_docker.py +0 -0
  154. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/runners/ve_agentkit.py +0 -0
  155. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/__init__.py +0 -0
  156. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/bindings/__init__.py +0 -0
  157. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/bindings/memory.py +0 -0
  158. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/builder.py +0 -0
  159. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/client.py +0 -0
  160. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/config.py +0 -0
  161. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/deployer.py +0 -0
  162. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/initializer.py +0 -0
  163. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/invoker.py +0 -0
  164. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/lifecycle.py +0 -0
  165. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/sdk/status.py +0 -0
  166. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/strategies/__init__.py +0 -0
  167. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/strategies/base_strategy.py +0 -0
  168. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/strategies/cloud_strategy.py +0 -0
  169. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/strategies/hybrid_strategy.py +0 -0
  170. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/strategies/local_strategy.py +0 -0
  171. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/utils/__init__.py +0 -0
  172. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/utils/agent_parser.py +0 -0
  173. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/__init__.py +0 -0
  174. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/code_pipeline.py +0 -0
  175. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/cr.py +0 -0
  176. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/iam.py +0 -0
  177. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/services/__init__.py +0 -0
  178. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/services/cr_service.py +0 -0
  179. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/services/tos_service.py +0 -0
  180. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/sts.py +0 -0
  181. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/utils/__init__.py +0 -0
  182. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/toolkit/volcengine/utils/project_archiver.py +0 -0
  183. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/__init__.py +0 -0
  184. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/global_config_io.py +0 -0
  185. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/logging_config.py +0 -0
  186. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/misc.py +0 -0
  187. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/request.py +0 -0
  188. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/template_utils.py +0 -0
  189. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit/utils/ve_sign.py +0 -0
  190. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit_sdk_python.egg-info/SOURCES.txt +0 -0
  191. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit_sdk_python.egg-info/dependency_links.txt +0 -0
  192. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit_sdk_python.egg-info/entry_points.txt +0 -0
  193. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit_sdk_python.egg-info/requires.txt +0 -0
  194. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/agentkit_sdk_python.egg-info/top_level.txt +0 -0
  195. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/setup.cfg +0 -0
  196. {agentkit_sdk_python-0.5.5 → agentkit_sdk_python-0.5.7}/tests/test_client_uses_platform_context.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentkit-sdk-python
3
- Version: 0.5.5
3
+ Version: 0.5.7
4
4
  Summary: Python SDK for transforming any AI agent into a production-ready application. Framework-agnostic primitives for runtime, memory, authentication, and tools with volcengine-managed infrastructure.
5
5
  Author-email: Xiangrui Cheng <innsdcc@gmail.com>, Yumeng Bao <baoyumeng.123@gmail.com>, Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>
6
6
  License: Apache License
@@ -16,7 +16,6 @@ import json
16
16
  import logging
17
17
  from contextlib import asynccontextmanager
18
18
  from typing import Any
19
- from typing_extensions import override
20
19
 
21
20
  import uvicorn
22
21
  from fastapi import FastAPI, HTTPException, Request
@@ -42,9 +41,10 @@ from google.adk.sessions.base_session_service import BaseSessionService
42
41
  from google.adk.utils.context_utils import Aclosing
43
42
  from google.genai import types
44
43
  from opentelemetry import trace
44
+ from typing_extensions import override
45
45
  from veadk import Agent
46
- from veadk.runner import Runner
47
46
  from veadk.memory.short_term_memory import ShortTermMemory
47
+ from veadk.runner import Runner
48
48
 
49
49
  from agentkit.apps.agent_server_app.middleware import (
50
50
  AgentkitTelemetryHTTPMiddleware,
@@ -100,6 +100,7 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
100
100
  short_term_memory: BaseSessionService | ShortTermMemory | None = None,
101
101
  *,
102
102
  app: App | None = None,
103
+ allow_origins: list[str] | None = None,
103
104
  ) -> None:
104
105
  super().__init__()
105
106
 
@@ -136,7 +137,12 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
136
137
  agents_dir=".",
137
138
  )
138
139
 
139
- runner = Runner(agent=root_agent)
140
+ runner = Runner(
141
+ agent=root_agent,
142
+ short_term_memory=short_term_memory
143
+ if isinstance(short_term_memory, ShortTermMemory)
144
+ else None,
145
+ )
140
146
  _a2a_server_app = to_a2a(agent=root_agent, runner=runner)
141
147
 
142
148
  @asynccontextmanager
@@ -147,7 +153,9 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
147
153
  await handler()
148
154
  yield
149
155
 
150
- self.app = self.server.get_fast_api_app(lifespan=lifespan)
156
+ self.app = self.server.get_fast_api_app(
157
+ lifespan=lifespan, allow_origins=allow_origins
158
+ )
151
159
 
152
160
  @self.app.post("/run_sse")
153
161
  async def run_agent_sse(req: RunAgentRequest) -> StreamingResponse:
@@ -18,12 +18,13 @@ This is the top-level base class for all service clients.
18
18
  """
19
19
 
20
20
  import json
21
+ import logging
21
22
  from typing import Any, Dict, Type, TypeVar, Union, Optional
22
23
  from dataclasses import dataclass
23
24
 
24
25
  from volcengine.ApiInfo import ApiInfo
25
26
  from volcengine.base.Service import Service
26
- from volcengine.Credentials import Credentials
27
+ from volcengine.Credentials import Credentials as VolcCredentials
27
28
  from volcengine.ServiceInfo import ServiceInfo
28
29
 
29
30
  from agentkit.platform import (
@@ -31,9 +32,23 @@ from agentkit.platform import (
31
32
  resolve_credentials,
32
33
  resolve_endpoint,
33
34
  )
35
+ from agentkit.platform.configuration import Credentials as PlatformCredentials
36
+ from agentkit.platform.provider import CloudProvider
34
37
  from agentkit.utils.ve_sign import ensure_x_custom_source_header
38
+ logger = logging.getLogger(__name__)
35
39
 
36
40
  T = TypeVar("T")
41
+ _CREDENTIAL_ERROR_TOKENS = frozenset(
42
+ {
43
+ "invalidaccesskeyid",
44
+ "invalidaccesskey",
45
+ "signaturedoesnotmatch",
46
+ "expiredtoken",
47
+ "invalidsecuritytoken",
48
+ "invalidtoken",
49
+ "requestexpired",
50
+ }
51
+ )
37
52
 
38
53
 
39
54
  @dataclass
@@ -94,6 +109,9 @@ class BaseServiceClient(Service):
94
109
  """
95
110
  if platform_config is None:
96
111
  platform_config = VolcConfiguration()
112
+ self._platform_config = platform_config
113
+ self._explicit_credentials = bool(access_key and secret_key)
114
+ self._credential_source: Optional[str] = None
97
115
 
98
116
  creds = resolve_credentials(
99
117
  service=service,
@@ -101,6 +119,7 @@ class BaseServiceClient(Service):
101
119
  explicit_secret_key=secret_key or None,
102
120
  platform_config=platform_config,
103
121
  )
122
+ self._credential_source = getattr(creds, "source", None)
104
123
 
105
124
  ep = resolve_endpoint(
106
125
  service=service,
@@ -132,7 +151,7 @@ class BaseServiceClient(Service):
132
151
  self.service_info = ServiceInfo(
133
152
  host=self.host,
134
153
  header=effective_header,
135
- credentials=Credentials(
154
+ credentials=VolcCredentials(
136
155
  ak=self.access_key,
137
156
  sk=self.secret_key,
138
157
  service=self.service,
@@ -152,6 +171,57 @@ class BaseServiceClient(Service):
152
171
  # need setting ak/sk after initializing Service to avoid volcengine SDK bugs
153
172
  self.set_ak(self.access_key)
154
173
  self.set_sk(self.secret_key)
174
+ if self.session_token:
175
+ self.set_session_token(self.session_token)
176
+
177
+ def _should_auto_refresh_vefaas_credentials(self) -> bool:
178
+ if self._explicit_credentials:
179
+ return False
180
+ if self._platform_config.provider != CloudProvider.VOLCENGINE:
181
+ return False
182
+ return self._credential_source == "vefaas"
183
+
184
+ def _apply_credentials(self, creds: PlatformCredentials) -> bool:
185
+ new_token = creds.session_token or ""
186
+ old_token = self.session_token or ""
187
+ if (
188
+ creds.access_key == self.access_key
189
+ and creds.secret_key == self.secret_key
190
+ and new_token == old_token
191
+ ):
192
+ return False
193
+
194
+ self.access_key = creds.access_key
195
+ self.secret_key = creds.secret_key
196
+ self.session_token = creds.session_token
197
+
198
+ self.service_info.credentials = VolcCredentials(
199
+ ak=self.access_key,
200
+ sk=self.secret_key,
201
+ service=self.service,
202
+ region=self.region,
203
+ session_token=self.session_token or "",
204
+ )
205
+ self.set_ak(self.access_key)
206
+ self.set_sk(self.secret_key)
207
+ self.set_session_token(self.session_token or "")
208
+ return True
209
+
210
+ def _refresh_credentials_if_needed(self, *, force: bool = False) -> bool:
211
+ if not self._should_auto_refresh_vefaas_credentials():
212
+ return False
213
+ creds = self._platform_config.get_vefaas_iam_credentials(force=force)
214
+ if not creds:
215
+ return False
216
+ return self._apply_credentials(creds)
217
+
218
+ def _is_probable_credential_error_code(self, code: str) -> bool:
219
+ c = (code or "").lower()
220
+ return c in _CREDENTIAL_ERROR_TOKENS
221
+
222
+ def _is_probable_credential_error_text(self, text: str) -> bool:
223
+ t = (text or "").lower()
224
+ return any(token in t for token in _CREDENTIAL_ERROR_TOKENS)
155
225
 
156
226
  def _build_api_info(self) -> Dict[str, ApiInfo]:
157
227
  """
@@ -213,27 +283,48 @@ class BaseServiceClient(Service):
213
283
  Raises:
214
284
  Exception: If API call fails or returns an error
215
285
  """
216
- # Make API call
217
- try:
218
- res = self.json(
219
- api=api_action,
220
- params=params or {},
221
- body=json.dumps(request.model_dump(by_alias=True, exclude_none=True)),
222
- )
223
- except Exception as e:
224
- raise Exception(f"Failed to {api_action}: {str(e)}")
225
-
226
- if not res:
227
- raise Exception(f"Empty response from {api_action} request.")
228
-
229
- # Parse response
230
- response_data = json.loads(res)
231
-
232
- # Check for errors
233
- metadata = response_data.get("ResponseMetadata", {})
234
- if metadata.get("Error"):
235
- error_msg = metadata.get("Error", {}).get("Message", "Unknown error")
236
- raise Exception(f"Failed to {api_action}: {error_msg}")
237
-
238
- # Return typed response
239
- return response_type(**response_data.get("Result", {}))
286
+ self._refresh_credentials_if_needed()
287
+ last_error: Optional[BaseException] = None
288
+
289
+ for attempt in (0, 1):
290
+ if attempt == 1:
291
+ self._refresh_credentials_if_needed(force=True)
292
+
293
+ try:
294
+ res = self.json(
295
+ api=api_action,
296
+ params=params or {},
297
+ body=json.dumps(
298
+ request.model_dump(by_alias=True, exclude_none=True)
299
+ ),
300
+ )
301
+ except Exception as e:
302
+ last_error = e
303
+ if attempt == 0 and self._is_probable_credential_error_text(str(e)):
304
+ continue
305
+ raise Exception(f"Failed to {api_action}: {str(e)}") from e
306
+
307
+ if not res:
308
+ raise Exception(f"Empty response from {api_action} request.")
309
+ # debug level log res
310
+ logger.debug(f"Response from {api_action} request: {res}")
311
+ response_data = json.loads(res)
312
+ metadata = response_data.get("ResponseMetadata", {})
313
+ if metadata.get("Error"):
314
+ err = metadata.get("Error", {}) or {}
315
+ error_code = str(err.get("Code") or "")
316
+ error_msg = str(err.get("Message") or "Unknown error")
317
+ if attempt == 0 and (
318
+ self._is_probable_credential_error_code(error_code)
319
+ or self._is_probable_credential_error_text(error_msg)
320
+ ):
321
+ continue
322
+ raise Exception(f"Failed to {api_action}: {error_msg}")
323
+
324
+ return response_type(**response_data.get("Result", {}))
325
+
326
+ if last_error is not None:
327
+ raise Exception(
328
+ f"Failed to {api_action}: {str(last_error)}"
329
+ ) from last_error
330
+ raise Exception(f"Failed to {api_action}: Unknown error")
@@ -88,7 +88,9 @@ def resolve_credentials(
88
88
  # 1. Explicit args take absolute precedence
89
89
  if explicit_access_key and explicit_secret_key:
90
90
  return Credentials(
91
- access_key=explicit_access_key, secret_key=explicit_secret_key
91
+ access_key=explicit_access_key,
92
+ secret_key=explicit_secret_key,
93
+ source="explicit_args",
92
94
  )
93
95
 
94
96
  cfg = platform_config or VolcConfiguration()
@@ -17,7 +17,10 @@ from __future__ import annotations
17
17
  import json
18
18
  import logging
19
19
  import os
20
+ import threading
21
+ import time
20
22
  from dataclasses import dataclass
23
+ from datetime import datetime, timezone
21
24
  from pathlib import Path
22
25
  from typing import Optional, Dict
23
26
 
@@ -43,6 +46,8 @@ from agentkit.utils.global_config_io import (
43
46
  logger = logging.getLogger(__name__)
44
47
 
45
48
  VEFAAS_IAM_CREDENTIAL_PATH = "/var/run/secrets/iam/credential"
49
+ VEFAAS_IAM_CREDENTIAL_FALLBACK_TTL_SECONDS = 60
50
+ VEFAAS_IAM_CREDENTIAL_MIN_VALIDITY_SECONDS = 60
46
51
 
47
52
 
48
53
  @dataclass
@@ -59,6 +64,8 @@ class Credentials:
59
64
  access_key: str
60
65
  secret_key: str
61
66
  session_token: Optional[str] = None
67
+ expires_at: Optional[datetime] = None
68
+ source: Optional[str] = None
62
69
 
63
70
  def __repr__(self) -> str:
64
71
  masked_sk = "*" * 6
@@ -68,7 +75,9 @@ class Credentials:
68
75
  return (
69
76
  f"Credentials(access_key='{self.access_key}', "
70
77
  f"secret_key='{masked_sk}', "
71
- f"session_token={'***' if self.session_token else 'None'})"
78
+ f"session_token={'***' if self.session_token else 'None'}, "
79
+ f"expires_at={self.expires_at.isoformat() if self.expires_at else 'None'}, "
80
+ f"source={self.source or 'None'})"
72
81
  )
73
82
 
74
83
 
@@ -115,6 +124,15 @@ class VolcConfiguration:
115
124
  or normalize_cloud_provider(cfg_provider)
116
125
  or CloudProvider.VOLCENGINE
117
126
  )
127
+ self._vefaas_cache_mtime_ns: Optional[int] = None
128
+ self._vefaas_cache_loaded_at_monotonic: Optional[float] = None
129
+ self._vefaas_cache_credentials: Optional[Credentials] = None
130
+ self._vefaas_lock = threading.Lock()
131
+
132
+ def get_vefaas_iam_credentials(
133
+ self, *, force: bool = False
134
+ ) -> Optional[Credentials]:
135
+ return self._get_credential_from_vefaas_iam(force=force)
118
136
 
119
137
  @property
120
138
  def provider(self) -> CloudProvider:
@@ -202,11 +220,13 @@ class VolcConfiguration:
202
220
  """
203
221
  # 1. Explicit
204
222
  if self._ak and self._sk:
205
- return Credentials(
223
+ creds = Credentials(
206
224
  access_key=self._ak,
207
225
  secret_key=self._sk,
208
226
  session_token=self._token,
227
+ source="explicit",
209
228
  )
229
+ return creds
210
230
 
211
231
  # 2. Service-specific Environment Variables
212
232
  if creds := self._get_service_env_credentials(service_key):
@@ -293,7 +313,7 @@ class VolcConfiguration:
293
313
  sk = sk or _get(f"VOLC_{svc_upper}_SECRETKEY")
294
314
 
295
315
  if ak and sk:
296
- return Credentials(access_key=ak, secret_key=sk)
316
+ return Credentials(access_key=ak, secret_key=sk, source="dotenv")
297
317
 
298
318
  # Global keys
299
319
  if self._provider == CloudProvider.BYTEPLUS:
@@ -304,7 +324,7 @@ class VolcConfiguration:
304
324
  sk = _get("VOLCENGINE_SECRET_KEY") or _get("VOLC_SECRETKEY")
305
325
 
306
326
  if ak and sk:
307
- return Credentials(access_key=ak, secret_key=sk)
327
+ return Credentials(access_key=ak, secret_key=sk, source="dotenv")
308
328
 
309
329
  return None
310
330
 
@@ -323,7 +343,7 @@ class VolcConfiguration:
323
343
  sk = sk or os.getenv(f"VOLC_{svc_upper}_SECRETKEY")
324
344
 
325
345
  if ak and sk:
326
- return Credentials(access_key=ak, secret_key=sk)
346
+ return Credentials(access_key=ak, secret_key=sk, source="service_env")
327
347
  return None
328
348
 
329
349
  def _get_global_env_credentials(self) -> Optional[Credentials]:
@@ -335,7 +355,7 @@ class VolcConfiguration:
335
355
  sk = os.getenv("VOLCENGINE_SECRET_KEY") or os.getenv("VOLC_SECRETKEY")
336
356
 
337
357
  if ak and sk:
338
- return Credentials(access_key=ak, secret_key=sk)
358
+ return Credentials(access_key=ak, secret_key=sk, source="global_env")
339
359
  return None
340
360
 
341
361
  def _get_config_file_credentials(self) -> Optional[Credentials]:
@@ -346,10 +366,14 @@ class VolcConfiguration:
346
366
  gc_ak = get_global_config_str("volcengine", "access_key")
347
367
  gc_sk = get_global_config_str("volcengine", "secret_key")
348
368
  if gc_ak and gc_sk:
349
- return Credentials(access_key=gc_ak, secret_key=gc_sk)
369
+ return Credentials(
370
+ access_key=gc_ak, secret_key=gc_sk, source="global_config"
371
+ )
350
372
  return None
351
373
 
352
- def _get_credential_from_vefaas_iam(self) -> Optional[Credentials]:
374
+ def _get_credential_from_vefaas_iam(
375
+ self, *, force: bool = False
376
+ ) -> Optional[Credentials]:
353
377
  """
354
378
  Internal helper to attempt retrieving credentials from VeFaaS IAM environment.
355
379
  """
@@ -359,15 +383,90 @@ class VolcConfiguration:
359
383
  if not path.exists():
360
384
  return None
361
385
 
386
+ try:
387
+ mtime_ns = path.stat().st_mtime_ns
388
+ except Exception:
389
+ return None
390
+
391
+ now = datetime.now(tz=timezone.utc)
392
+
393
+ def _get_cached_if_usable(
394
+ *, min_validity_seconds: int
395
+ ) -> Optional[Credentials]:
396
+ with self._vefaas_lock:
397
+ cached = self._vefaas_cache_credentials
398
+ if not cached or self._vefaas_cache_mtime_ns != mtime_ns:
399
+ return None
400
+
401
+ if cached.expires_at is None:
402
+ loaded_at = self._vefaas_cache_loaded_at_monotonic
403
+ if loaded_at is None:
404
+ return None
405
+ if (
406
+ time.monotonic() - loaded_at
407
+ <= VEFAAS_IAM_CREDENTIAL_FALLBACK_TTL_SECONDS
408
+ ):
409
+ return cached
410
+ return None
411
+
412
+ if (cached.expires_at - now).total_seconds() > min_validity_seconds:
413
+ return cached
414
+ return None
415
+
416
+ if not force:
417
+ cached = _get_cached_if_usable(
418
+ min_validity_seconds=VEFAAS_IAM_CREDENTIAL_MIN_VALIDITY_SECONDS
419
+ )
420
+ if cached is not None:
421
+ return cached
422
+
362
423
  try:
363
424
  with open(path, "r") as f:
364
425
  cred_dict = json.load(f)
365
- return Credentials(
366
- access_key=cred_dict.get("access_key_id", ""),
367
- secret_key=cred_dict.get("secret_access_key", ""),
368
- session_token=cred_dict.get("session_token", ""),
426
+ access_key = str(cred_dict.get("access_key_id") or "")
427
+ secret_key = str(cred_dict.get("secret_access_key") or "")
428
+ session_token = str(cred_dict.get("session_token") or "") or None
429
+
430
+ expired_time_raw = cred_dict.get("expired_time")
431
+ expires_at: Optional[datetime] = None
432
+ if expired_time_raw:
433
+ try:
434
+ s = str(expired_time_raw)
435
+ if s.endswith("Z"):
436
+ s = s[:-1] + "+00:00"
437
+ expires_at = datetime.fromisoformat(s)
438
+ if expires_at.tzinfo is None:
439
+ expires_at = expires_at.replace(tzinfo=timezone.utc)
440
+ expires_at = expires_at.astimezone(timezone.utc)
441
+ except Exception:
442
+ expires_at = None
443
+
444
+ if not access_key or not secret_key:
445
+ return None
446
+
447
+ if expires_at is not None:
448
+ if expires_at <= now:
449
+ return None
450
+
451
+ creds = Credentials(
452
+ access_key=access_key,
453
+ secret_key=secret_key,
454
+ session_token=session_token,
455
+ expires_at=expires_at,
456
+ source="vefaas",
369
457
  )
458
+ with self._vefaas_lock:
459
+ self._vefaas_cache_mtime_ns = mtime_ns
460
+ self._vefaas_cache_loaded_at_monotonic = time.monotonic()
461
+ self._vefaas_cache_credentials = creds
462
+ return creds
370
463
  except Exception as e:
464
+ if not force:
465
+ cached = _get_cached_if_usable(
466
+ min_validity_seconds=VEFAAS_IAM_CREDENTIAL_MIN_VALIDITY_SECONDS
467
+ )
468
+ if cached is not None:
469
+ return cached
371
470
  logger.warning(f"Found VeFaaS credential file but failed to parse: {e}")
372
471
  return None
373
472
 
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- VERSION = "0.5.5"
15
+ VERSION = "0.5.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentkit-sdk-python
3
- Version: 0.5.5
3
+ Version: 0.5.7
4
4
  Summary: Python SDK for transforming any AI agent into a production-ready application. Framework-agnostic primitives for runtime, memory, authentication, and tools with volcengine-managed infrastructure.
5
5
  Author-email: Xiangrui Cheng <innsdcc@gmail.com>, Yumeng Bao <baoyumeng.123@gmail.com>, Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agentkit-sdk-python"
3
- version = "0.5.5"
3
+ version = "0.5.7"
4
4
  description = "Python SDK for transforming any AI agent into a production-ready application. Framework-agnostic primitives for runtime, memory, authentication, and tools with volcengine-managed infrastructure."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -105,4 +105,4 @@ exclude = [
105
105
 
106
106
  [tool.ruff.lint.per-file-ignores]
107
107
  "__init__.py" = ["F401"]
108
- "tests/*" = ["F401", "F811"]
108
+ "tests/*" = ["F401", "F811"]