agentkit-sdk-python 0.5.6__tar.gz → 0.5.8__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.
- {agentkit_sdk_python-0.5.6/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.5.8}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/agent_server_app.py +12 -4
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_invoke.py +140 -22
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/templates/code-pipeline-tos-cr-step.j2 +8 -6
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/runners/base.py +162 -33
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/runners/ve_agentkit.py +12 -3
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/version.py +1 -1
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8/agentkit_sdk_python.egg-info}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/pyproject.toml +2 -2
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/LICENSE +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/MANIFEST.in +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/README.md +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/a2a_app/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/a2a_app/a2a_app.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/a2a_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/middleware.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/base_app.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/mcp_app/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/mcp_app/mcp_app.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/mcp_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/simple_app.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/simple_app_handlers.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/client/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/client/base_agentkit_client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/client/base_iam_client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/client/base_service_client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/configuration.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/console_urls.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/constants.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/context.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/platform/provider.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/account/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/account/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/identity/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/identity/auth.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/knowledge/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/knowledge/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/knowledge/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/mcp/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/mcp/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/mcp/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/memory/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/memory/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/memory/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/runtime/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/runtime/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/runtime/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/skills/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/skills/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/skills/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/tools/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/tools/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/sdk/tools/types.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/builders/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/builders/base.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/builders/local_docker.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/builders/ve_pipeline.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/__main__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_build.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_deploy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_destroy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_init.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_knowledge.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_launch.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_memory.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_runtime.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_skills.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_skills_workflow.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_status.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_tools.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/cli_version.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/console_reporter.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/interactive_config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/cli/utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/choice_resolvers.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/cloud_provider.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/config_handler.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/config_validator.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/constants.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/dataclass_utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/docker_build_config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/global_config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/region_defaults.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/region_resolver.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/strategy_configs.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/config/utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/context.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/base_images.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/container.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/dockerfile/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/dockerfile/manager.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/dockerfile/metadata.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/docker/utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/errors.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/base_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/build_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/deploy_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/init_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/invoke_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/lifecycle_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/executors/status_executor.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/models.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/reporter.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/__pycache__/customer_support_assistant.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/__pycache__/financial_analyst.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/__pycache__/simple_app_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/__pycache__/simple_mcp_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/a2a.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/agent_server.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/basic.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/basic_stream.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/customer_support_assistant.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/eino_a2a/agent.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/eino_a2a/build.sh +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/eino_a2a/go.mod +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/eino_a2a/go.sum +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/eino_a2a/main.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/financial_analyst.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/langchain_basic_stream.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/simple_app_veadk.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/simple_mcp_veadk.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_a2a/agent.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_a2a/build.sh +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_a2a/go.mod +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_a2a/go.sum +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_a2a/main.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_basic/agent.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_basic/build.sh +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_basic/go.mod +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_basic/go.sum +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/samples/veadk_go_basic/main.go +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/templates/golang/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/templates/python/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/wrappers/wrapper_basic.py.jinja2 +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/resources/wrappers/wrapper_stream.py.jinja2 +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/runners/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/runners/local_docker.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/bindings/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/bindings/memory.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/builder.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/client.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/deployer.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/initializer.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/invoker.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/lifecycle.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/sdk/status.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/strategies/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/strategies/base_strategy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/strategies/cloud_strategy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/strategies/hybrid_strategy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/strategies/local_strategy.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/utils/agent_parser.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/code_pipeline.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/cr.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/iam.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/services/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/services/cr_service.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/services/tos_service.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/sts.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/volcengine/utils/project_archiver.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/global_config_io.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/logging_config.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/misc.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/request.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/template_utils.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/utils/ve_sign.py +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit_sdk_python.egg-info/SOURCES.txt +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit_sdk_python.egg-info/dependency_links.txt +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit_sdk_python.egg-info/entry_points.txt +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit_sdk_python.egg-info/requires.txt +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit_sdk_python.egg-info/top_level.txt +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/setup.cfg +0 -0
- {agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/tests/test_client_uses_platform_context.py +0 -0
{agentkit_sdk_python-0.5.6/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.5.8}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentkit-sdk-python
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
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(
|
|
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(
|
|
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:
|
|
@@ -30,6 +30,26 @@ logger = logging.getLogger(__name__)
|
|
|
30
30
|
console = Console()
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
def _sanitize_headers_for_display(headers: dict) -> dict:
|
|
34
|
+
if not isinstance(headers, dict):
|
|
35
|
+
return {}
|
|
36
|
+
redacted_keys = {
|
|
37
|
+
"authorization",
|
|
38
|
+
"proxy-authorization",
|
|
39
|
+
"x-api-key",
|
|
40
|
+
"x-auth-token",
|
|
41
|
+
"api-key",
|
|
42
|
+
}
|
|
43
|
+
out: dict = {}
|
|
44
|
+
for k, v in headers.items():
|
|
45
|
+
key = str(k)
|
|
46
|
+
if key.lower() in redacted_keys:
|
|
47
|
+
out[key] = "******"
|
|
48
|
+
else:
|
|
49
|
+
out[key] = v
|
|
50
|
+
return out
|
|
51
|
+
|
|
52
|
+
|
|
33
53
|
def _extract_text_chunks_from_langchain_event(event: dict) -> list[str]:
|
|
34
54
|
"""Extract incremental text chunks from LangChain message_to_dict-style events.
|
|
35
55
|
|
|
@@ -211,7 +231,9 @@ def build_a2a_payload(
|
|
|
211
231
|
|
|
212
232
|
|
|
213
233
|
def invoke_command(
|
|
214
|
-
config_file: Path = typer.Option(
|
|
234
|
+
config_file: Optional[Path] = typer.Option(
|
|
235
|
+
None, "--config-file", help="Configuration file"
|
|
236
|
+
),
|
|
215
237
|
message: str = typer.Argument(None, help="Simple message to send to agent"),
|
|
216
238
|
payload: str = typer.Option(
|
|
217
239
|
None, "--payload", "-p", help="JSON payload to send (advanced option)"
|
|
@@ -219,6 +241,20 @@ def invoke_command(
|
|
|
219
241
|
headers: str = typer.Option(
|
|
220
242
|
None, "--headers", "-h", help="JSON headers for request (advanced option)"
|
|
221
243
|
),
|
|
244
|
+
runtime_id: str = typer.Option(
|
|
245
|
+
None, "--runtime-id", "-r", help="Runtime ID for direct invocation"
|
|
246
|
+
),
|
|
247
|
+
endpoint: str = typer.Option(
|
|
248
|
+
None, "--endpoint", "-e", help="Endpoint URL for direct invocation"
|
|
249
|
+
),
|
|
250
|
+
region: str = typer.Option(
|
|
251
|
+
None, "--region", help="Region for Runtime lookup (used with --runtime-id)"
|
|
252
|
+
),
|
|
253
|
+
a2a: bool = typer.Option(
|
|
254
|
+
False,
|
|
255
|
+
"--a2a",
|
|
256
|
+
help="Force A2A JSON-RPC envelope (direct invocation mode only)",
|
|
257
|
+
),
|
|
222
258
|
show_reasoning: bool = typer.Option(
|
|
223
259
|
False,
|
|
224
260
|
"--show-reasoning",
|
|
@@ -262,8 +298,28 @@ def invoke_command(
|
|
|
262
298
|
"[red]Error: Must provide either a message or --payload option.[/red]"
|
|
263
299
|
)
|
|
264
300
|
raise typer.Exit(1)
|
|
265
|
-
|
|
266
|
-
|
|
301
|
+
|
|
302
|
+
direct_mode = bool(runtime_id or endpoint)
|
|
303
|
+
if direct_mode and config_file is not None:
|
|
304
|
+
console.print(
|
|
305
|
+
"[red]Error: --config-file cannot be used with --runtime-id/--endpoint.[/red]"
|
|
306
|
+
)
|
|
307
|
+
raise typer.Exit(1)
|
|
308
|
+
if runtime_id and endpoint:
|
|
309
|
+
console.print(
|
|
310
|
+
"[red]Error: Cannot specify both --runtime-id and --endpoint.[/red]"
|
|
311
|
+
)
|
|
312
|
+
raise typer.Exit(1)
|
|
313
|
+
if region and not runtime_id:
|
|
314
|
+
console.print(
|
|
315
|
+
"[red]Error: --region can only be used together with --runtime-id.[/red]"
|
|
316
|
+
)
|
|
317
|
+
raise typer.Exit(1)
|
|
318
|
+
if a2a and not direct_mode:
|
|
319
|
+
console.print(
|
|
320
|
+
"[red]Error: --a2a can only be used with --runtime-id or --endpoint.[/red]"
|
|
321
|
+
)
|
|
322
|
+
raise typer.Exit(1)
|
|
267
323
|
|
|
268
324
|
# Process headers
|
|
269
325
|
default_headers = {
|
|
@@ -286,38 +342,100 @@ def invoke_command(
|
|
|
286
342
|
)
|
|
287
343
|
raise typer.Exit(1)
|
|
288
344
|
final_headers.update(custom_headers)
|
|
289
|
-
console.print(
|
|
345
|
+
console.print(
|
|
346
|
+
f"[blue]Using merged headers: {_sanitize_headers_for_display(final_headers)}[/blue]"
|
|
347
|
+
)
|
|
290
348
|
else:
|
|
291
|
-
console.print(f"[blue]Using default headers: {final_headers}[/blue]")
|
|
292
|
-
|
|
293
|
-
final_payload = build_standard_payload(message, payload)
|
|
294
|
-
agent_type = getattr(common_config, "agent_type", "") or getattr(
|
|
295
|
-
common_config, "template_type", ""
|
|
296
|
-
)
|
|
297
|
-
is_a2a = isinstance(agent_type, str) and "a2a" in agent_type.lower()
|
|
298
|
-
|
|
299
|
-
# If it's an A2A Agent, reconstruct payload using A2A constructor
|
|
300
|
-
if is_a2a:
|
|
301
349
|
console.print(
|
|
302
|
-
"[
|
|
350
|
+
f"[blue]Using default headers: {_sanitize_headers_for_display(final_headers)}[/blue]"
|
|
303
351
|
)
|
|
304
|
-
final_payload = build_a2a_payload(message, payload, final_headers)
|
|
305
352
|
|
|
306
353
|
if apikey:
|
|
354
|
+
if runtime_id:
|
|
355
|
+
console.print(
|
|
356
|
+
"[red]Error: --apikey cannot be used together with --runtime-id. "
|
|
357
|
+
"--runtime-id mode resolves the Runtime and infers its auth type automatically: "
|
|
358
|
+
"for API Key (key_auth), omit auth flags and the CLI will fetch and inject the API key; "
|
|
359
|
+
'for JWT/OAuth (custom_jwt), provide an Authorization header via --headers \'{"Authorization":"Bearer <token>"}\'. '
|
|
360
|
+
"If you want to pass an API key manually, use --endpoint together with --apikey.[/red]"
|
|
361
|
+
)
|
|
362
|
+
raise typer.Exit(1)
|
|
307
363
|
final_headers["Authorization"] = f"Bearer {apikey}"
|
|
308
364
|
|
|
365
|
+
final_payload = build_standard_payload(message, payload)
|
|
366
|
+
|
|
309
367
|
from agentkit.toolkit.context import ExecutionContext
|
|
310
368
|
|
|
311
369
|
reporter = ConsoleReporter()
|
|
312
370
|
ExecutionContext.set_reporter(reporter)
|
|
313
371
|
|
|
314
372
|
executor = InvokeExecutor(reporter=reporter)
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
373
|
+
|
|
374
|
+
if direct_mode:
|
|
375
|
+
if endpoint and not apikey and not final_headers.get("Authorization"):
|
|
376
|
+
console.print(
|
|
377
|
+
"[red]Error: --endpoint requires --apikey or an Authorization header provided via --headers.[/red]"
|
|
378
|
+
)
|
|
379
|
+
raise typer.Exit(1)
|
|
380
|
+
|
|
381
|
+
direct_common = {
|
|
382
|
+
"agent_name": "direct_invoke",
|
|
383
|
+
"entry_point": "agent.py",
|
|
384
|
+
"launch_type": "cloud",
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
is_a2a_payload = isinstance(final_payload, dict) and bool(
|
|
388
|
+
final_payload.get("jsonrpc")
|
|
389
|
+
)
|
|
390
|
+
if a2a:
|
|
391
|
+
final_payload = build_a2a_payload(message, payload, final_headers)
|
|
392
|
+
is_a2a_payload = True
|
|
393
|
+
|
|
394
|
+
if is_a2a_payload:
|
|
395
|
+
direct_common["agent_type"] = "a2a"
|
|
396
|
+
|
|
397
|
+
direct_cloud: dict[str, Any] = {}
|
|
398
|
+
if region:
|
|
399
|
+
direct_cloud["region"] = region
|
|
400
|
+
if runtime_id:
|
|
401
|
+
direct_cloud["runtime_id"] = runtime_id
|
|
402
|
+
if endpoint:
|
|
403
|
+
direct_cloud["runtime_endpoint"] = endpoint
|
|
404
|
+
if apikey:
|
|
405
|
+
direct_cloud["runtime_apikey"] = apikey
|
|
406
|
+
else:
|
|
407
|
+
direct_cloud["runtime_auth_type"] = "custom_jwt"
|
|
408
|
+
|
|
409
|
+
config_dict = {"common": direct_common, "launch_types": {"cloud": direct_cloud}}
|
|
410
|
+
|
|
411
|
+
result = executor.execute(
|
|
412
|
+
payload=final_payload,
|
|
413
|
+
config_dict=config_dict,
|
|
414
|
+
headers=final_headers,
|
|
415
|
+
stream=None,
|
|
416
|
+
)
|
|
417
|
+
else:
|
|
418
|
+
config_path = config_file or Path("agentkit.yaml")
|
|
419
|
+
config = get_config(config_path=config_path)
|
|
420
|
+
common_config = config.get_common_config()
|
|
421
|
+
|
|
422
|
+
agent_type = getattr(common_config, "agent_type", "") or getattr(
|
|
423
|
+
common_config, "template_type", ""
|
|
424
|
+
)
|
|
425
|
+
is_a2a = isinstance(agent_type, str) and "a2a" in agent_type.lower()
|
|
426
|
+
|
|
427
|
+
if is_a2a:
|
|
428
|
+
console.print(
|
|
429
|
+
"[cyan]Detected A2A agent type - constructing A2A JSON-RPC envelope[/cyan]"
|
|
430
|
+
)
|
|
431
|
+
final_payload = build_a2a_payload(message, payload, final_headers)
|
|
432
|
+
|
|
433
|
+
result = executor.execute(
|
|
434
|
+
payload=final_payload,
|
|
435
|
+
config_file=str(config_path),
|
|
436
|
+
headers=final_headers,
|
|
437
|
+
stream=None, # Automatically determined by Runner
|
|
438
|
+
)
|
|
321
439
|
|
|
322
440
|
if not result.success:
|
|
323
441
|
console.print(f"[red]❌ Invocation failed: {result.error}[/red]")
|
|
@@ -26,22 +26,24 @@ stages:
|
|
|
26
26
|
shell: BASH
|
|
27
27
|
- step: step-c4
|
|
28
28
|
displayName: 镜像构建推送至镜像仓库服务
|
|
29
|
-
component: build@2.0.0/buildkit-cr@
|
|
29
|
+
component: build@2.0.0/buildkit-cr@5.0.0
|
|
30
30
|
inputs:
|
|
31
|
+
buildParams: ""
|
|
31
32
|
compression: gzip
|
|
32
33
|
contextPath: $PROJECT_ROOT_DIR
|
|
33
34
|
crDomain: $CR_DOMAIN
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
namespace: $CR_NAMESPACE
|
|
36
|
+
region: $CR_REGION
|
|
37
|
+
registryInstance: $CR_INSTANCE
|
|
38
|
+
repo: $CR_OCI
|
|
39
|
+
tag: $CR_TAG
|
|
39
40
|
disableSSLVerify: true
|
|
40
41
|
dockerfiles:
|
|
41
42
|
default:
|
|
42
43
|
path: $DOCKERFILE_PATH
|
|
43
44
|
loginCredential: []
|
|
44
45
|
useCache: false
|
|
46
|
+
nydusify: true
|
|
45
47
|
outputs:
|
|
46
48
|
- imageOutput_step-c4
|
|
47
49
|
workspace: {}
|
|
@@ -17,6 +17,9 @@ from typing import Dict, Any, Optional, Union, Generator, Tuple
|
|
|
17
17
|
import logging
|
|
18
18
|
import requests
|
|
19
19
|
import json
|
|
20
|
+
import time
|
|
21
|
+
import uuid
|
|
22
|
+
import random
|
|
20
23
|
from urllib.parse import urljoin
|
|
21
24
|
from dataclasses import dataclass
|
|
22
25
|
|
|
@@ -53,6 +56,8 @@ class Runner(ABC):
|
|
|
53
56
|
"""
|
|
54
57
|
self.logger = logging.getLogger(f"{__name__}.{self.__class__.__name__}")
|
|
55
58
|
self.reporter = reporter or SilentReporter()
|
|
59
|
+
self._backend_detect_cache: Dict[str, Tuple[str, float]] = {}
|
|
60
|
+
self._backend_detect_cache_ttl_s: int = 120
|
|
56
61
|
|
|
57
62
|
# ===== Configuration types =====
|
|
58
63
|
@dataclass
|
|
@@ -387,6 +392,99 @@ class Runner(ABC):
|
|
|
387
392
|
or err.startswith("Invocation failed: 405")
|
|
388
393
|
)
|
|
389
394
|
|
|
395
|
+
def _normalize_base_endpoint(self, base_endpoint: str) -> str:
|
|
396
|
+
try:
|
|
397
|
+
return (base_endpoint or "").rstrip("/")
|
|
398
|
+
except Exception:
|
|
399
|
+
return base_endpoint
|
|
400
|
+
|
|
401
|
+
def _get_cached_backend(self, base_endpoint: str) -> Optional[str]:
|
|
402
|
+
key = self._normalize_base_endpoint(base_endpoint)
|
|
403
|
+
item = self._backend_detect_cache.get(key)
|
|
404
|
+
if not item:
|
|
405
|
+
return None
|
|
406
|
+
kind, ts = item
|
|
407
|
+
if time.monotonic() - ts > self._backend_detect_cache_ttl_s:
|
|
408
|
+
try:
|
|
409
|
+
self._backend_detect_cache.pop(key, None)
|
|
410
|
+
except Exception:
|
|
411
|
+
pass
|
|
412
|
+
return None
|
|
413
|
+
return kind
|
|
414
|
+
|
|
415
|
+
def _set_cached_backend(self, base_endpoint: str, kind: str) -> None:
|
|
416
|
+
key = self._normalize_base_endpoint(base_endpoint)
|
|
417
|
+
try:
|
|
418
|
+
self._backend_detect_cache[key] = (kind, time.monotonic())
|
|
419
|
+
except Exception:
|
|
420
|
+
pass
|
|
421
|
+
|
|
422
|
+
def _is_a2a_agent_card_response(self, data: Any) -> bool:
|
|
423
|
+
if not isinstance(data, dict):
|
|
424
|
+
return False
|
|
425
|
+
name = data.get("name")
|
|
426
|
+
if not isinstance(name, str) or not name:
|
|
427
|
+
return False
|
|
428
|
+
if isinstance(data.get("capabilities"), dict):
|
|
429
|
+
return True
|
|
430
|
+
if isinstance(data.get("skills"), list):
|
|
431
|
+
return True
|
|
432
|
+
if isinstance(data.get("endpoints"), (dict, list)):
|
|
433
|
+
return True
|
|
434
|
+
if isinstance(data.get("protocol_version"), str) or isinstance(
|
|
435
|
+
data.get("protocolVersion"), str
|
|
436
|
+
):
|
|
437
|
+
return True
|
|
438
|
+
return False
|
|
439
|
+
|
|
440
|
+
def _detect_a2a_backend(
|
|
441
|
+
self, base_endpoint: str, headers: Dict[str, str], timeout_s: int = 2
|
|
442
|
+
) -> bool:
|
|
443
|
+
try:
|
|
444
|
+
base = (base_endpoint.rstrip("/") + "/") if base_endpoint else ""
|
|
445
|
+
url = urljoin(base, ".well-known/agent-card.json")
|
|
446
|
+
resp = requests.get(url, headers=headers, timeout=timeout_s)
|
|
447
|
+
if resp.status_code != 200:
|
|
448
|
+
return False
|
|
449
|
+
try:
|
|
450
|
+
data = resp.json()
|
|
451
|
+
except Exception:
|
|
452
|
+
return False
|
|
453
|
+
return self._is_a2a_agent_card_response(data)
|
|
454
|
+
except Exception:
|
|
455
|
+
return False
|
|
456
|
+
|
|
457
|
+
def _build_a2a_jsonrpc_payload(
|
|
458
|
+
self, original_payload: Any, headers: Dict[str, str]
|
|
459
|
+
) -> Dict[str, Any]:
|
|
460
|
+
if isinstance(original_payload, dict) and original_payload.get("jsonrpc"):
|
|
461
|
+
return original_payload
|
|
462
|
+
|
|
463
|
+
text = None
|
|
464
|
+
if isinstance(original_payload, dict):
|
|
465
|
+
val = original_payload.get("prompt")
|
|
466
|
+
if isinstance(val, str):
|
|
467
|
+
text = val
|
|
468
|
+
if text is None:
|
|
469
|
+
try:
|
|
470
|
+
text = json.dumps(original_payload, ensure_ascii=False)
|
|
471
|
+
except Exception:
|
|
472
|
+
text = ""
|
|
473
|
+
|
|
474
|
+
return {
|
|
475
|
+
"jsonrpc": "2.0",
|
|
476
|
+
"method": "message/stream",
|
|
477
|
+
"params": {
|
|
478
|
+
"message": {
|
|
479
|
+
"role": "user",
|
|
480
|
+
"messageId": str(uuid.uuid4()),
|
|
481
|
+
"parts": [{"kind": "text", "text": text or ""}],
|
|
482
|
+
},
|
|
483
|
+
"metadata": headers,
|
|
484
|
+
},
|
|
485
|
+
"id": random.randint(1, 999999),
|
|
486
|
+
}
|
|
487
|
+
|
|
390
488
|
def _post_run_sse(
|
|
391
489
|
self,
|
|
392
490
|
base_endpoint: str,
|
|
@@ -435,10 +533,8 @@ class Runner(ABC):
|
|
|
435
533
|
timeout=policy.invoke_timeout,
|
|
436
534
|
)
|
|
437
535
|
else:
|
|
438
|
-
|
|
439
|
-
if
|
|
440
|
-
ctx.base_endpoint, ctx.headers, timeout_s=policy.detect_timeout
|
|
441
|
-
):
|
|
536
|
+
cached = self._get_cached_backend(ctx.base_endpoint)
|
|
537
|
+
if cached == "adk":
|
|
442
538
|
app_name = self._get_adk_app_name(
|
|
443
539
|
ctx.base_endpoint,
|
|
444
540
|
ctx.headers,
|
|
@@ -465,6 +561,16 @@ class Runner(ABC):
|
|
|
465
561
|
adk_payload,
|
|
466
562
|
timeout_s=policy.sse_timeout,
|
|
467
563
|
)
|
|
564
|
+
elif cached == "a2a":
|
|
565
|
+
a2a_payload = self._build_a2a_jsonrpc_payload(payload, ctx.headers)
|
|
566
|
+
success, response_data = self._http_post_invoke(
|
|
567
|
+
endpoint=self._normalize_base_endpoint(ctx.base_endpoint)
|
|
568
|
+
or ctx.base_endpoint,
|
|
569
|
+
payload=a2a_payload,
|
|
570
|
+
headers=ctx.headers,
|
|
571
|
+
stream=None,
|
|
572
|
+
timeout=policy.invoke_timeout,
|
|
573
|
+
)
|
|
468
574
|
else:
|
|
469
575
|
success, response_data = self._http_post_invoke(
|
|
470
576
|
endpoint=ctx.invoke_endpoint,
|
|
@@ -473,35 +579,58 @@ class Runner(ABC):
|
|
|
473
579
|
stream=None,
|
|
474
580
|
timeout=policy.invoke_timeout,
|
|
475
581
|
)
|
|
476
|
-
if
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
ctx.headers
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
adk_payload
|
|
503
|
-
|
|
504
|
-
|
|
582
|
+
if success:
|
|
583
|
+
self._set_cached_backend(ctx.base_endpoint, "invoke")
|
|
584
|
+
elif self._should_fallback_to_adk(str(response_data)):
|
|
585
|
+
if self._detect_adk_backend(
|
|
586
|
+
ctx.base_endpoint, ctx.headers, timeout_s=policy.detect_timeout
|
|
587
|
+
):
|
|
588
|
+
self._set_cached_backend(ctx.base_endpoint, "adk")
|
|
589
|
+
app_name = self._get_adk_app_name(
|
|
590
|
+
ctx.base_endpoint,
|
|
591
|
+
ctx.headers,
|
|
592
|
+
preferred_name=ctx.preferred_app_name,
|
|
593
|
+
timeout_s=policy.list_apps_timeout,
|
|
594
|
+
)
|
|
595
|
+
app_name = app_name or "agentkit-app"
|
|
596
|
+
user_id = ctx.headers.get("user_id") or "agentkit_user"
|
|
597
|
+
session_id = (
|
|
598
|
+
ctx.headers.get("session_id") or "agentkit_sample_session"
|
|
599
|
+
)
|
|
600
|
+
self._ensure_adk_session(
|
|
601
|
+
ctx.base_endpoint,
|
|
602
|
+
ctx.headers,
|
|
603
|
+
app_name,
|
|
604
|
+
user_id,
|
|
605
|
+
session_id,
|
|
606
|
+
timeout_s=policy.session_timeout,
|
|
607
|
+
)
|
|
608
|
+
adk_payload = self._build_adk_run_sse_payload(
|
|
609
|
+
app_name, ctx.headers, payload
|
|
610
|
+
)
|
|
611
|
+
success, response_data = self._post_run_sse(
|
|
612
|
+
ctx.base_endpoint,
|
|
613
|
+
ctx.headers,
|
|
614
|
+
adk_payload,
|
|
615
|
+
timeout_s=policy.sse_timeout,
|
|
616
|
+
)
|
|
617
|
+
elif self._detect_a2a_backend(
|
|
618
|
+
ctx.base_endpoint, ctx.headers, timeout_s=policy.detect_timeout
|
|
619
|
+
):
|
|
620
|
+
self._set_cached_backend(ctx.base_endpoint, "a2a")
|
|
621
|
+
a2a_payload = self._build_a2a_jsonrpc_payload(
|
|
622
|
+
payload, ctx.headers
|
|
623
|
+
)
|
|
624
|
+
success, response_data = self._http_post_invoke(
|
|
625
|
+
endpoint=self._normalize_base_endpoint(ctx.base_endpoint)
|
|
626
|
+
or ctx.base_endpoint,
|
|
627
|
+
payload=a2a_payload,
|
|
628
|
+
headers=ctx.headers,
|
|
629
|
+
stream=None,
|
|
630
|
+
timeout=policy.invoke_timeout,
|
|
631
|
+
)
|
|
632
|
+
else:
|
|
633
|
+
self._set_cached_backend(ctx.base_endpoint, "unknown")
|
|
505
634
|
|
|
506
635
|
is_streaming = hasattr(response_data, "__iter__") and not isinstance(
|
|
507
636
|
response_data, (dict, str, list, bytes)
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/toolkit/runners/ve_agentkit.py
RENAMED
|
@@ -416,7 +416,8 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
416
416
|
"""
|
|
417
417
|
try:
|
|
418
418
|
runner_config = config
|
|
419
|
-
|
|
419
|
+
effective_auth_type = runner_config.runtime_auth_type
|
|
420
|
+
is_jwt_auth = effective_auth_type == AUTH_TYPE_CUSTOM_JWT
|
|
420
421
|
|
|
421
422
|
# Get Runtime endpoint and API key
|
|
422
423
|
endpoint = runner_config.runtime_endpoint
|
|
@@ -455,6 +456,14 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
455
456
|
error_code=ErrorCode.RESOURCE_NOT_FOUND,
|
|
456
457
|
)
|
|
457
458
|
raise e
|
|
459
|
+
|
|
460
|
+
authorizer = getattr(runtime, "authorizer_configuration", None)
|
|
461
|
+
if authorizer and getattr(authorizer, "custom_jwt_authorizer", None):
|
|
462
|
+
effective_auth_type = AUTH_TYPE_CUSTOM_JWT
|
|
463
|
+
elif authorizer and getattr(authorizer, "key_auth", None):
|
|
464
|
+
effective_auth_type = AUTH_TYPE_KEY_AUTH
|
|
465
|
+
is_jwt_auth = effective_auth_type == AUTH_TYPE_CUSTOM_JWT
|
|
466
|
+
|
|
458
467
|
endpoint = self.get_public_endpoint_of_runtime(runtime)
|
|
459
468
|
|
|
460
469
|
# Only fetch API key for key_auth mode
|
|
@@ -468,7 +477,7 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
468
477
|
# Validate based on auth type
|
|
469
478
|
if not endpoint:
|
|
470
479
|
error_msg = "Failed to obtain Runtime endpoint. The 'agentkit invoke' command only supports public network endpoints."
|
|
471
|
-
logger.error(
|
|
480
|
+
logger.error(error_msg)
|
|
472
481
|
return InvokeResult(
|
|
473
482
|
success=False,
|
|
474
483
|
error=error_msg,
|
|
@@ -476,7 +485,7 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
476
485
|
)
|
|
477
486
|
if not is_jwt_auth and not api_key:
|
|
478
487
|
error_msg = "Failed to obtain Runtime API key."
|
|
479
|
-
logger.error(
|
|
488
|
+
logger.error(error_msg)
|
|
480
489
|
return InvokeResult(
|
|
481
490
|
success=False,
|
|
482
491
|
error=error_msg,
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8/agentkit_sdk_python.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentkit-sdk-python
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
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.
|
|
3
|
+
version = "0.5.8"
|
|
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"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/__init__.py
RENAMED
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/middleware.py
RENAMED
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/agent_server_app/telemetry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/__init__.py
RENAMED
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/simple_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/apps/simple_app/telemetry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentkit_sdk_python-0.5.6 → agentkit_sdk_python-0.5.8}/agentkit/client/base_agentkit_client.py
RENAMED
|
File without changes
|