agentkit-sdk-python 0.3.3__tar.gz → 0.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentkit_sdk_python-0.3.3/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.4.1}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/builders/ve_pipeline.py +81 -40
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_config.py +53 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_runtime.py +8 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/config.py +13 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/config_handler.py +62 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/strategy_configs.py +39 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/runners/ve_agentkit.py +132 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/strategies/cloud_strategy.py +2 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/strategies/hybrid_strategy.py +2 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/services/tos_service.py +43 -3
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/version.py +1 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1/agentkit_sdk_python.egg-info}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/pyproject.toml +1 -1
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/LICENSE +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/MANIFEST.in +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/README.md +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/a2a_app/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/a2a_app/a2a_app.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/a2a_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/agent_server_app/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/agent_server_app/agent_server_app.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/agent_server_app/middleware.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/agent_server_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/base_app.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/mcp_app/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/mcp_app/mcp_app.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/mcp_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/simple_app/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/simple_app/simple_app.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/simple_app/simple_app_handlers.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/simple_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/apps/utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/client/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/client/base_agentkit_client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/client/base_iam_client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/client/base_service_client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/platform/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/platform/configuration.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/platform/constants.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/account/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/account/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/identity/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/identity/auth.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/knowledge/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/knowledge/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/knowledge/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/mcp/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/mcp/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/mcp/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/memory/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/memory/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/memory/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/runtime/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/runtime/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/runtime/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/tools/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/tools/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/sdk/tools/types.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/builders/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/builders/base.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/builders/local_docker.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/__main__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_build.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_deploy.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_destroy.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_init.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_invoke.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_knowledge.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_launch.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_memory.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_status.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_tools.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/cli_version.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/console_reporter.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/interactive_config.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/cli/utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/config_validator.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/constants.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/dataclass_utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/docker_build_config.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/global_config.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/region_resolver.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/context.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/container.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/dockerfile/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/dockerfile/manager.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/dockerfile/metadata.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/docker/utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/errors.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/base_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/build_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/deploy_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/init_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/invoke_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/lifecycle_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/executors/status_executor.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/models.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/reporter.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/__pycache__/customer_support_assistant.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/__pycache__/financial_analyst.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/__pycache__/simple_app_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/__pycache__/simple_mcp_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/a2a.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/agent_server.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/basic.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/basic_stream.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/customer_support_assistant.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/eino_a2a/agent.go +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/eino_a2a/build.sh +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/eino_a2a/go.mod +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/eino_a2a/go.sum +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/eino_a2a/main.go +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/financial_analyst.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/langchain_basic_stream.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/simple_app_veadk.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/samples/simple_mcp_veadk.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/templates/code-pipeline-tos-cr-step.j2 +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/templates/golang/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/templates/python/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/wrappers/wrapper_basic.py.jinja2 +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/resources/wrappers/wrapper_stream.py.jinja2 +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/runners/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/runners/base.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/runners/local_docker.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/bindings/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/bindings/memory.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/builder.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/client.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/config.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/deployer.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/initializer.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/invoker.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/lifecycle.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/sdk/status.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/strategies/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/strategies/base_strategy.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/strategies/local_strategy.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/utils/agent_parser.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/code_pipeline.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/cr.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/iam.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/services/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/services/cr_service.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/sts.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/volcengine/utils/project_archiver.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/global_config_io.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/logging_config.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/misc.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/request.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/template_utils.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/utils/ve_sign.py +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit_sdk_python.egg-info/SOURCES.txt +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit_sdk_python.egg-info/dependency_links.txt +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit_sdk_python.egg-info/entry_points.txt +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit_sdk_python.egg-info/requires.txt +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit_sdk_python.egg-info/top_level.txt +0 -0
- {agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/setup.cfg +0 -0
{agentkit_sdk_python-0.3.3/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.4.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentkit-sdk-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
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
|
{agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/builders/ve_pipeline.py
RENAMED
|
@@ -715,6 +715,7 @@ class VeCPCRBuilder(Builder):
|
|
|
715
715
|
from agentkit.toolkit.volcengine.services.tos_service import (
|
|
716
716
|
TOSService,
|
|
717
717
|
TOSServiceConfig,
|
|
718
|
+
tos,
|
|
718
719
|
)
|
|
719
720
|
|
|
720
721
|
# Handle bucket configuration with auto-creation support
|
|
@@ -742,55 +743,95 @@ class VeCPCRBuilder(Builder):
|
|
|
742
743
|
|
|
743
744
|
tos_service = TOSService(tos_config)
|
|
744
745
|
|
|
745
|
-
#
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
self.reporter.warning(
|
|
750
|
-
f"TOS bucket does not exist, creating: {bucket_name}"
|
|
751
|
-
)
|
|
746
|
+
# Two-step safety check:
|
|
747
|
+
# 1) Ensure the bucket exists and is accessible.
|
|
748
|
+
# 2) Verify the bucket is owned by the current account via ListBuckets before uploading.
|
|
749
|
+
import time
|
|
752
750
|
|
|
753
|
-
|
|
754
|
-
error_msg = f"Failed to create TOS bucket: {bucket_name}"
|
|
755
|
-
self.reporter.error(error_msg)
|
|
756
|
-
logger.error(error_msg)
|
|
757
|
-
raise Exception(error_msg)
|
|
751
|
+
created_in_this_run = False
|
|
758
752
|
|
|
759
|
-
|
|
753
|
+
# Step 1: ensure bucket exists / accessible
|
|
754
|
+
if auto_created_bucket:
|
|
755
|
+
self.reporter.info(
|
|
756
|
+
f"Creating auto-generated TOS bucket in current account: {bucket_name}"
|
|
757
|
+
)
|
|
760
758
|
|
|
761
|
-
#
|
|
762
|
-
|
|
763
|
-
|
|
759
|
+
# Very low probability: name collision. Retry with a new generated name.
|
|
760
|
+
max_attempts = 3
|
|
761
|
+
for attempt in range(1, max_attempts + 1):
|
|
762
|
+
tos_service.config.bucket = bucket_name
|
|
763
|
+
try:
|
|
764
|
+
tos_service.create_bucket()
|
|
765
|
+
created_in_this_run = True
|
|
766
|
+
break
|
|
767
|
+
except tos.exceptions.TosServerError as e:
|
|
768
|
+
if e.status_code == 409 and attempt < max_attempts:
|
|
769
|
+
bucket_name = TOSService.generate_bucket_name()
|
|
770
|
+
self.reporter.warning(
|
|
771
|
+
"Auto-generated bucket name already taken, retrying with a new name "
|
|
772
|
+
f"(attempt {attempt + 1}/{max_attempts}): {bucket_name}"
|
|
773
|
+
)
|
|
774
|
+
continue
|
|
775
|
+
raise
|
|
776
|
+
else:
|
|
777
|
+
# User-specified bucket: if not accessible/existing, attempt to create.
|
|
778
|
+
self.reporter.info(f"Checking TOS bucket accessibility: {bucket_name}")
|
|
779
|
+
if not tos_service.bucket_exists():
|
|
780
|
+
self.reporter.warning(
|
|
781
|
+
f"TOS bucket '{bucket_name}' is not accessible or does not exist, attempting to create it..."
|
|
782
|
+
)
|
|
783
|
+
try:
|
|
784
|
+
tos_service.create_bucket()
|
|
785
|
+
created_in_this_run = True
|
|
786
|
+
except tos.exceptions.TosServerError as e:
|
|
787
|
+
if e.status_code == 409:
|
|
788
|
+
# The bucket name is already taken (possibly by another account).
|
|
789
|
+
# Ownership verification in step 2 will block the upload.
|
|
790
|
+
pass
|
|
791
|
+
else:
|
|
792
|
+
raise
|
|
764
793
|
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
check_interval = 2 # Check every 2 seconds
|
|
794
|
+
# Step 2: verify bucket ownership via ListBuckets
|
|
795
|
+
self.reporter.info(f"Verifying TOS bucket ownership: {bucket_name}")
|
|
768
796
|
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
)
|
|
779
|
-
time.sleep(check_interval)
|
|
780
|
-
else:
|
|
781
|
-
# Timeout occurred
|
|
782
|
-
error_msg = f"TOS bucket creation verification timeout ({timeout}s): {bucket_name}"
|
|
797
|
+
def check_owned() -> bool:
|
|
798
|
+
try:
|
|
799
|
+
return tos_service.bucket_is_owned(bucket_name)
|
|
800
|
+
except Exception as e:
|
|
801
|
+
error_msg = (
|
|
802
|
+
"Failed to determine TOS bucket ownership via ListBuckets. "
|
|
803
|
+
"Upload has been blocked for security reasons. "
|
|
804
|
+
"Please ensure your credentials have TOS ListBuckets permission, or set 'tos_bucket: Auto'."
|
|
805
|
+
)
|
|
783
806
|
self.reporter.error(error_msg)
|
|
784
|
-
logger.error(
|
|
807
|
+
logger.error(f"Bucket ownership check failed: {str(e)}")
|
|
785
808
|
raise Exception(error_msg)
|
|
786
809
|
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
810
|
+
if created_in_this_run:
|
|
811
|
+
# ListBuckets may be eventually consistent shortly after creation.
|
|
812
|
+
timeout_s = 10
|
|
813
|
+
interval_s = 2
|
|
814
|
+
deadline = time.time() + timeout_s
|
|
815
|
+
owned = False
|
|
816
|
+
while time.time() < deadline:
|
|
817
|
+
owned = check_owned()
|
|
818
|
+
if owned:
|
|
819
|
+
break
|
|
820
|
+
time.sleep(interval_s)
|
|
792
821
|
else:
|
|
793
|
-
|
|
822
|
+
owned = check_owned()
|
|
823
|
+
|
|
824
|
+
if not owned:
|
|
825
|
+
error_msg = (
|
|
826
|
+
f"Security notice: The configured TOS bucket '{bucket_name}' is not owned by the current account. "
|
|
827
|
+
"To prevent uploading your source code to a bucket you do not own (which could leak secrets), this upload has been blocked. "
|
|
828
|
+
"Please choose a bucket owned by your account, use 'agentkit config --tos_bucket <your-bucket-name>' to set it."
|
|
829
|
+
)
|
|
830
|
+
raise Exception(error_msg)
|
|
831
|
+
|
|
832
|
+
self.reporter.success(
|
|
833
|
+
f"TOS bucket ownership verified for current account: {bucket_name}"
|
|
834
|
+
)
|
|
794
835
|
|
|
795
836
|
# Update config with auto-generated bucket name if applicable
|
|
796
837
|
if auto_created_bucket:
|
|
@@ -155,6 +155,52 @@ def config_command(
|
|
|
155
155
|
"--runtime_jwt_allowed_clients",
|
|
156
156
|
help="Allowed OAuth2 client IDs when runtime_auth_type is custom_jwt (can be used multiple times)",
|
|
157
157
|
),
|
|
158
|
+
# Runtime bindings (resource associations)
|
|
159
|
+
memory_id: Optional[str] = typer.Option(
|
|
160
|
+
None,
|
|
161
|
+
"--memory_id",
|
|
162
|
+
"--runtime_binding_memory_id",
|
|
163
|
+
help="Bind Runtime to a Memory collection ID (cloud/hybrid only)",
|
|
164
|
+
),
|
|
165
|
+
knowledge_id: Optional[str] = typer.Option(
|
|
166
|
+
None,
|
|
167
|
+
"--knowledge_id",
|
|
168
|
+
"--runtime_binding_knowledge_id",
|
|
169
|
+
help="Bind Runtime to a Knowledge ID (cloud/hybrid only)",
|
|
170
|
+
),
|
|
171
|
+
tool_id: Optional[str] = typer.Option(
|
|
172
|
+
None,
|
|
173
|
+
"--tool_id",
|
|
174
|
+
"--runtime_binding_tool_id",
|
|
175
|
+
help="Bind Runtime to a Tool ID (cloud/hybrid only)",
|
|
176
|
+
),
|
|
177
|
+
mcp_toolset_id: Optional[str] = typer.Option(
|
|
178
|
+
None,
|
|
179
|
+
"--mcp_toolset_id",
|
|
180
|
+
"--runtime_binding_mcp_toolset_id",
|
|
181
|
+
help="Bind Runtime to an MCP Toolset ID (cloud/hybrid only)",
|
|
182
|
+
),
|
|
183
|
+
# Runtime network configuration (advanced, CreateRuntime only)
|
|
184
|
+
runtime_network_mode: Optional[str] = typer.Option(
|
|
185
|
+
None,
|
|
186
|
+
"--runtime_network_mode",
|
|
187
|
+
"--runtime-network-mode",
|
|
188
|
+
help="Runtime network mode (cloud/hybrid, CreateRuntime only): public/private/both",
|
|
189
|
+
),
|
|
190
|
+
runtime_vpc_id: Optional[str] = typer.Option(
|
|
191
|
+
None,
|
|
192
|
+
"--runtime_vpc_id",
|
|
193
|
+
"--runtime-vpc-id",
|
|
194
|
+
help="Runtime VPC ID (cloud/hybrid, CreateRuntime only; required for private/both)",
|
|
195
|
+
),
|
|
196
|
+
runtime_subnet_ids: Optional[List[str]] = typer.Option(
|
|
197
|
+
None,
|
|
198
|
+
"--runtime_subnet_ids",
|
|
199
|
+
"--runtime_subnet_id",
|
|
200
|
+
"--runtime-subnet-id",
|
|
201
|
+
"--runtime-subnet-ids",
|
|
202
|
+
help="Runtime subnet ID (repeatable; cloud/hybrid, CreateRuntime only)",
|
|
203
|
+
),
|
|
158
204
|
):
|
|
159
205
|
"""Configure AgentKit (supports interactive and non-interactive modes).
|
|
160
206
|
|
|
@@ -254,6 +300,13 @@ def config_command(
|
|
|
254
300
|
runtime_auth_type=runtime_auth_type,
|
|
255
301
|
runtime_jwt_discovery_url=runtime_jwt_discovery_url,
|
|
256
302
|
runtime_jwt_allowed_clients=runtime_jwt_allowed_clients,
|
|
303
|
+
memory_id=memory_id,
|
|
304
|
+
knowledge_id=knowledge_id,
|
|
305
|
+
tool_id=tool_id,
|
|
306
|
+
mcp_toolset_id=mcp_toolset_id,
|
|
307
|
+
runtime_network_mode=runtime_network_mode,
|
|
308
|
+
runtime_vpc_id=runtime_vpc_id,
|
|
309
|
+
runtime_subnet_ids=runtime_subnet_ids,
|
|
257
310
|
)
|
|
258
311
|
|
|
259
312
|
has_cli_params = ConfigParamHandler.has_cli_params(cli_params)
|
|
@@ -57,6 +57,9 @@ def create_runtime_command(
|
|
|
57
57
|
None, "--knowledge-id", help="Knowledge ID"
|
|
58
58
|
),
|
|
59
59
|
tool_id: Optional[str] = typer.Option(None, "--tool-id", help="Tool ID"),
|
|
60
|
+
mcp_toolset_id: Optional[str] = typer.Option(
|
|
61
|
+
None, "--mcp-toolset-id", help="MCP Toolset ID"
|
|
62
|
+
),
|
|
60
63
|
model_agent_name: Optional[str] = typer.Option(
|
|
61
64
|
None, "--model-agent-name", help="Model agent name"
|
|
62
65
|
),
|
|
@@ -169,6 +172,7 @@ def create_runtime_command(
|
|
|
169
172
|
memory_id=memory_id,
|
|
170
173
|
knowledge_id=knowledge_id,
|
|
171
174
|
tool_id=tool_id,
|
|
175
|
+
mcp_toolset_id=mcp_toolset_id,
|
|
172
176
|
model_agent_name=model_agent_name,
|
|
173
177
|
authorizer_configuration=authorizer,
|
|
174
178
|
network_configuration=network,
|
|
@@ -233,6 +237,9 @@ def update_runtime_command(
|
|
|
233
237
|
None, "--knowledge-id", help="Knowledge ID"
|
|
234
238
|
),
|
|
235
239
|
tool_id: Optional[str] = typer.Option(None, "--tool-id", help="Tool ID"),
|
|
240
|
+
mcp_toolset_id: Optional[str] = typer.Option(
|
|
241
|
+
None, "--mcp-toolset-id", help="MCP Toolset ID"
|
|
242
|
+
),
|
|
236
243
|
envs_json: Optional[str] = typer.Option(
|
|
237
244
|
None, "--envs-json", help="JSON array of envs [{Key,Value}]"
|
|
238
245
|
),
|
|
@@ -278,6 +285,7 @@ def update_runtime_command(
|
|
|
278
285
|
memory_id=memory_id,
|
|
279
286
|
knowledge_id=knowledge_id,
|
|
280
287
|
tool_id=tool_id,
|
|
288
|
+
mcp_toolset_id=mcp_toolset_id,
|
|
281
289
|
envs=envs,
|
|
282
290
|
tags=tags,
|
|
283
291
|
)
|
|
@@ -362,10 +362,22 @@ class AgentkitConfigManager:
|
|
|
362
362
|
self._save_config()
|
|
363
363
|
|
|
364
364
|
def _filter_config_values(self, config: Dict[str, Any]) -> Dict[str, Any]:
|
|
365
|
-
"""Filter empty and meaningless values from configuration.
|
|
365
|
+
"""Filter empty and meaningless values from configuration.
|
|
366
|
+
|
|
367
|
+
Note: Some config sections intentionally use empty values to represent
|
|
368
|
+
explicit user intent. For example, `runtime_bindings` may use empty
|
|
369
|
+
strings ("")/null to indicate unbinding.
|
|
370
|
+
"""
|
|
366
371
|
filtered = {}
|
|
367
372
|
|
|
368
373
|
for key, value in config.items():
|
|
374
|
+
# Keep runtime_bindings as-is. It may contain empty strings / null to
|
|
375
|
+
# explicitly represent "no binding" / "unbind" semantics.
|
|
376
|
+
if key == "runtime_bindings" and isinstance(value, dict):
|
|
377
|
+
if value:
|
|
378
|
+
filtered[key] = value
|
|
379
|
+
continue
|
|
380
|
+
|
|
369
381
|
if value == "" or value is None:
|
|
370
382
|
continue
|
|
371
383
|
|
{agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/config_handler.py
RENAMED
|
@@ -63,6 +63,21 @@ class ConfigParamHandler:
|
|
|
63
63
|
|
|
64
64
|
return result
|
|
65
65
|
|
|
66
|
+
@staticmethod
|
|
67
|
+
def parse_id_list(values: Optional[List[str]]) -> List[str]:
|
|
68
|
+
"""Parse repeatable IDs, supporting comma-separated values."""
|
|
69
|
+
if not values:
|
|
70
|
+
return []
|
|
71
|
+
result: List[str] = []
|
|
72
|
+
for item in values:
|
|
73
|
+
if item is None:
|
|
74
|
+
continue
|
|
75
|
+
for part in str(item).split(","):
|
|
76
|
+
part = part.strip()
|
|
77
|
+
if part:
|
|
78
|
+
result.append(part)
|
|
79
|
+
return result
|
|
80
|
+
|
|
66
81
|
@staticmethod
|
|
67
82
|
def collect_cli_params(
|
|
68
83
|
agent_name: Optional[str],
|
|
@@ -88,6 +103,13 @@ class ConfigParamHandler:
|
|
|
88
103
|
runtime_auth_type: Optional[str],
|
|
89
104
|
runtime_jwt_discovery_url: Optional[str],
|
|
90
105
|
runtime_jwt_allowed_clients: Optional[List[str]],
|
|
106
|
+
memory_id: Optional[str],
|
|
107
|
+
knowledge_id: Optional[str],
|
|
108
|
+
tool_id: Optional[str],
|
|
109
|
+
mcp_toolset_id: Optional[str],
|
|
110
|
+
runtime_network_mode: Optional[str],
|
|
111
|
+
runtime_vpc_id: Optional[str],
|
|
112
|
+
runtime_subnet_ids: Optional[List[str]],
|
|
91
113
|
) -> Dict[str, Any]:
|
|
92
114
|
"""Collect all CLI parameters.
|
|
93
115
|
|
|
@@ -158,6 +180,32 @@ class ConfigParamHandler:
|
|
|
158
180
|
strategy_params["runtime_role_name"] = runtime_role_name
|
|
159
181
|
if runtime_apikey_name is not None:
|
|
160
182
|
strategy_params["runtime_apikey_name"] = runtime_apikey_name
|
|
183
|
+
|
|
184
|
+
# Runtime bindings (resource associations)
|
|
185
|
+
runtime_bindings: Dict[str, Any] = {}
|
|
186
|
+
if memory_id is not None:
|
|
187
|
+
runtime_bindings["memory_id"] = memory_id
|
|
188
|
+
if knowledge_id is not None:
|
|
189
|
+
runtime_bindings["knowledge_id"] = knowledge_id
|
|
190
|
+
if tool_id is not None:
|
|
191
|
+
runtime_bindings["tool_id"] = tool_id
|
|
192
|
+
if mcp_toolset_id is not None:
|
|
193
|
+
runtime_bindings["mcp_toolset_id"] = mcp_toolset_id
|
|
194
|
+
if runtime_bindings:
|
|
195
|
+
strategy_params["runtime_bindings"] = runtime_bindings
|
|
196
|
+
|
|
197
|
+
# Runtime network configuration (advanced, CreateRuntime only)
|
|
198
|
+
runtime_network: Dict[str, Any] = {}
|
|
199
|
+
if runtime_network_mode is not None:
|
|
200
|
+
runtime_network["mode"] = runtime_network_mode.strip().lower()
|
|
201
|
+
if runtime_vpc_id is not None:
|
|
202
|
+
runtime_network["vpc_id"] = runtime_vpc_id
|
|
203
|
+
if runtime_subnet_ids is not None:
|
|
204
|
+
runtime_network["subnet_ids"] = ConfigParamHandler.parse_id_list(
|
|
205
|
+
runtime_subnet_ids
|
|
206
|
+
)
|
|
207
|
+
if runtime_network:
|
|
208
|
+
strategy_params["runtime_network"] = runtime_network
|
|
161
209
|
if runtime_auth_type is not None:
|
|
162
210
|
strategy_params["runtime_auth_type"] = runtime_auth_type
|
|
163
211
|
if runtime_jwt_discovery_url is not None:
|
|
@@ -241,6 +289,20 @@ class NonInteractiveConfigHandler:
|
|
|
241
289
|
new_strategy_config["runtime_envs"] = existing_envs
|
|
242
290
|
else:
|
|
243
291
|
new_strategy_config["runtime_envs"] = value
|
|
292
|
+
elif key == "runtime_bindings" and isinstance(value, dict):
|
|
293
|
+
existing_bindings = new_strategy_config.get("runtime_bindings", {})
|
|
294
|
+
if isinstance(existing_bindings, dict):
|
|
295
|
+
existing_bindings.update(value)
|
|
296
|
+
new_strategy_config["runtime_bindings"] = existing_bindings
|
|
297
|
+
else:
|
|
298
|
+
new_strategy_config["runtime_bindings"] = value
|
|
299
|
+
elif key == "runtime_network" and isinstance(value, dict):
|
|
300
|
+
existing_network = new_strategy_config.get("runtime_network", {})
|
|
301
|
+
if isinstance(existing_network, dict):
|
|
302
|
+
existing_network.update(value)
|
|
303
|
+
new_strategy_config["runtime_network"] = existing_network
|
|
304
|
+
else:
|
|
305
|
+
new_strategy_config["runtime_network"] = value
|
|
244
306
|
else:
|
|
245
307
|
new_strategy_config[key] = value
|
|
246
308
|
|
{agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/config/strategy_configs.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
|
-
from typing import Dict, List
|
|
2
|
+
from typing import Any, Dict, List, Optional
|
|
3
3
|
from .dataclass_utils import AutoSerializableMixin
|
|
4
4
|
from .constants import (
|
|
5
5
|
AUTH_TYPE_CUSTOM_JWT,
|
|
@@ -307,6 +307,25 @@ class HybridStrategyConfig(AutoSerializableMixin):
|
|
|
307
307
|
"icon": "🔧",
|
|
308
308
|
},
|
|
309
309
|
)
|
|
310
|
+
|
|
311
|
+
runtime_bindings: Dict[str, Optional[str]] = field(
|
|
312
|
+
default_factory=dict,
|
|
313
|
+
metadata={
|
|
314
|
+
"hidden": True,
|
|
315
|
+
"description": "Runtime associated resource IDs (memory_id/knowledge_id/tool_id/mcp_toolset_id)",
|
|
316
|
+
"examples": "{memory_id: mem-xxx, knowledge_id: kb-xxx, tool_id: tool-xxx, mcp_toolset_id: mcp-ts-xxx}",
|
|
317
|
+
"icon": "🔗",
|
|
318
|
+
},
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
runtime_network: Dict[str, Any] = field(
|
|
322
|
+
default_factory=dict,
|
|
323
|
+
metadata={
|
|
324
|
+
"hidden": True,
|
|
325
|
+
"description": "Runtime network configuration (advanced, CreateRuntime only)",
|
|
326
|
+
"examples": "{mode: private, vpc_id: vpc-xxx, subnet_ids: [subnet-aaa, subnet-bbb]}",
|
|
327
|
+
},
|
|
328
|
+
)
|
|
310
329
|
_config_metadata = {
|
|
311
330
|
"name": "Hybrid Strategy Configuration",
|
|
312
331
|
"welcome_message": "Welcome to AgentKit Hybrid Deployment Mode Configuration Wizard",
|
|
@@ -554,6 +573,25 @@ class CloudStrategyConfig(AutoSerializableMixin):
|
|
|
554
573
|
},
|
|
555
574
|
)
|
|
556
575
|
|
|
576
|
+
runtime_bindings: Dict[str, Optional[str]] = field(
|
|
577
|
+
default_factory=dict,
|
|
578
|
+
metadata={
|
|
579
|
+
"hidden": True,
|
|
580
|
+
"description": "Runtime associated resource IDs (memory_id/knowledge_id/tool_id/mcp_toolset_id)",
|
|
581
|
+
"examples": "{memory_id: mem-xxx, knowledge_id: kb-xxx, tool_id: tool-xxx, mcp_toolset_id: mcp-ts-xxx}",
|
|
582
|
+
"icon": "🔗",
|
|
583
|
+
},
|
|
584
|
+
)
|
|
585
|
+
|
|
586
|
+
runtime_network: Dict[str, Any] = field(
|
|
587
|
+
default_factory=dict,
|
|
588
|
+
metadata={
|
|
589
|
+
"hidden": True,
|
|
590
|
+
"description": "Runtime network configuration (advanced, CreateRuntime only)",
|
|
591
|
+
"examples": "{mode: private, vpc_id: vpc-xxx, subnet_ids: [subnet-aaa, subnet-bbb]}",
|
|
592
|
+
},
|
|
593
|
+
)
|
|
594
|
+
|
|
557
595
|
# Deployment metadata
|
|
558
596
|
build_timestamp: str = field(
|
|
559
597
|
default="", metadata={"system": True, "description": "Timestamp of image build"}
|
{agentkit_sdk_python-0.3.3 → agentkit_sdk_python-0.4.1}/agentkit/toolkit/runners/ve_agentkit.py
RENAMED
|
@@ -91,6 +91,22 @@ class VeAgentkitRunnerConfig(AutoSerializableMixin):
|
|
|
91
91
|
default_factory=dict, metadata={"description": "Runtime environment variables"}
|
|
92
92
|
)
|
|
93
93
|
|
|
94
|
+
# Runtime bindings (resource associations)
|
|
95
|
+
runtime_bindings: Dict[str, Optional[str]] = field(
|
|
96
|
+
default_factory=dict,
|
|
97
|
+
metadata={
|
|
98
|
+
"description": "Runtime associated resources: memory_id/knowledge_id/tool_id/mcp_toolset_id",
|
|
99
|
+
},
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
# Runtime network configuration (advanced, CreateRuntime only)
|
|
103
|
+
runtime_network: Dict[str, Any] = field(
|
|
104
|
+
default_factory=dict,
|
|
105
|
+
metadata={
|
|
106
|
+
"description": "Runtime network configuration (advanced, CreateRuntime only)",
|
|
107
|
+
},
|
|
108
|
+
)
|
|
109
|
+
|
|
94
110
|
# Authentication configuration
|
|
95
111
|
runtime_auth_type: str = field(
|
|
96
112
|
default=AUTH_TYPE_KEY_AUTH,
|
|
@@ -451,7 +467,7 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
451
467
|
|
|
452
468
|
# Validate based on auth type
|
|
453
469
|
if not endpoint:
|
|
454
|
-
error_msg = "Failed to obtain Runtime endpoint."
|
|
470
|
+
error_msg = "Failed to obtain Runtime endpoint. The 'agentkit invoke' command only supports public network endpoints."
|
|
455
471
|
logger.error(f"{error_msg}, runtime: {runtime}")
|
|
456
472
|
return InvokeResult(
|
|
457
473
|
success=False,
|
|
@@ -604,6 +620,65 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
604
620
|
)
|
|
605
621
|
)
|
|
606
622
|
|
|
623
|
+
def _build_network_config_for_create(
|
|
624
|
+
self, config: VeAgentkitRunnerConfig
|
|
625
|
+
) -> Optional[runtime_types.NetworkForCreateRuntime]:
|
|
626
|
+
runtime_network = (
|
|
627
|
+
config.runtime_network if isinstance(config.runtime_network, dict) else {}
|
|
628
|
+
)
|
|
629
|
+
if not runtime_network:
|
|
630
|
+
return None
|
|
631
|
+
|
|
632
|
+
mode = runtime_network.get("mode")
|
|
633
|
+
vpc_id = runtime_network.get("vpc_id")
|
|
634
|
+
subnet_ids = runtime_network.get("subnet_ids")
|
|
635
|
+
|
|
636
|
+
# Convenience: if vpc_id is provided without an explicit mode, assume private.
|
|
637
|
+
if mode is None and vpc_id:
|
|
638
|
+
mode = "private"
|
|
639
|
+
|
|
640
|
+
if mode is None:
|
|
641
|
+
raise ValueError(
|
|
642
|
+
"runtime_network is configured but 'mode' is missing. "
|
|
643
|
+
"Valid values: public/private/both."
|
|
644
|
+
)
|
|
645
|
+
|
|
646
|
+
mode = str(mode).strip().lower()
|
|
647
|
+
if mode not in {"public", "private", "both"}:
|
|
648
|
+
raise ValueError(
|
|
649
|
+
f"Invalid runtime_network.mode '{mode}'. Valid values: public/private/both."
|
|
650
|
+
)
|
|
651
|
+
|
|
652
|
+
enable_public = mode in {"public", "both"}
|
|
653
|
+
enable_private = mode in {"private", "both"}
|
|
654
|
+
|
|
655
|
+
vpc_configuration = None
|
|
656
|
+
if enable_private:
|
|
657
|
+
vpc_id_str = str(vpc_id or "").strip()
|
|
658
|
+
if not vpc_id_str:
|
|
659
|
+
raise ValueError(
|
|
660
|
+
"runtime_network.mode requires 'vpc_id' when mode is private/both."
|
|
661
|
+
)
|
|
662
|
+
|
|
663
|
+
parsed_subnet_ids: Optional[List[str]] = None
|
|
664
|
+
if isinstance(subnet_ids, str):
|
|
665
|
+
ids = [s.strip() for s in subnet_ids.split(",") if s.strip()]
|
|
666
|
+
parsed_subnet_ids = ids or None
|
|
667
|
+
elif isinstance(subnet_ids, list):
|
|
668
|
+
ids = [str(s).strip() for s in subnet_ids if str(s).strip()]
|
|
669
|
+
parsed_subnet_ids = ids or None
|
|
670
|
+
|
|
671
|
+
vpc_configuration = runtime_types.NetworkVpcForCreateRuntime(
|
|
672
|
+
vpc_id=vpc_id_str,
|
|
673
|
+
subnet_ids=parsed_subnet_ids,
|
|
674
|
+
)
|
|
675
|
+
|
|
676
|
+
return runtime_types.NetworkForCreateRuntime(
|
|
677
|
+
vpc_configuration=vpc_configuration,
|
|
678
|
+
enable_private_network=enable_private,
|
|
679
|
+
enable_public_network=enable_public,
|
|
680
|
+
)
|
|
681
|
+
|
|
607
682
|
def _create_new_runtime(self, config: VeAgentkitRunnerConfig) -> DeployResult:
|
|
608
683
|
"""Create a new Runtime instance.
|
|
609
684
|
|
|
@@ -624,9 +699,22 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
624
699
|
for k, v in config.runtime_envs.items()
|
|
625
700
|
]
|
|
626
701
|
|
|
702
|
+
bindings = (
|
|
703
|
+
config.runtime_bindings
|
|
704
|
+
if isinstance(config.runtime_bindings, dict)
|
|
705
|
+
else {}
|
|
706
|
+
)
|
|
707
|
+
memory_id = bindings.get("memory_id")
|
|
708
|
+
knowledge_id = bindings.get("knowledge_id")
|
|
709
|
+
tool_id = bindings.get("tool_id")
|
|
710
|
+
mcp_toolset_id = bindings.get("mcp_toolset_id")
|
|
711
|
+
|
|
627
712
|
# Build authorizer configuration based on auth type
|
|
628
713
|
authorizer_config = self._build_authorizer_config_for_create(config)
|
|
629
714
|
|
|
715
|
+
# Network configuration is only supported during CreateRuntime.
|
|
716
|
+
network_configuration = self._build_network_config_for_create(config)
|
|
717
|
+
|
|
630
718
|
create_request = runtime_types.CreateRuntimeRequest(
|
|
631
719
|
name=config.runtime_name,
|
|
632
720
|
description=config.common_config.description
|
|
@@ -635,6 +723,13 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
635
723
|
artifact_type=ARTIFACT_TYPE_DOCKER_IMAGE,
|
|
636
724
|
artifact_url=config.image_url,
|
|
637
725
|
role_name=config.runtime_role_name,
|
|
726
|
+
memory_id=(memory_id if is_valid_config(memory_id) else None),
|
|
727
|
+
knowledge_id=(knowledge_id if is_valid_config(knowledge_id) else None),
|
|
728
|
+
tool_id=(tool_id if is_valid_config(tool_id) else None),
|
|
729
|
+
mcp_toolset_id=(
|
|
730
|
+
mcp_toolset_id if is_valid_config(mcp_toolset_id) else None
|
|
731
|
+
),
|
|
732
|
+
network_configuration=network_configuration,
|
|
638
733
|
envs=envs,
|
|
639
734
|
project_name=PROJECT_NAME_DEFAULT,
|
|
640
735
|
authorizer_configuration=authorizer_config,
|
|
@@ -985,6 +1080,12 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
985
1080
|
try:
|
|
986
1081
|
self.reporter.info(f"Updating Runtime: {config.runtime_id}")
|
|
987
1082
|
|
|
1083
|
+
if isinstance(config.runtime_network, dict) and config.runtime_network:
|
|
1084
|
+
self.reporter.warning(
|
|
1085
|
+
"runtime_network is configured, but network settings only apply when creating a Runtime. "
|
|
1086
|
+
"UpdateRuntime does not support network_configuration; ignoring runtime_network."
|
|
1087
|
+
)
|
|
1088
|
+
|
|
988
1089
|
client = self._get_runtime_client(config.region)
|
|
989
1090
|
|
|
990
1091
|
# Get existing Runtime information
|
|
@@ -1048,6 +1149,32 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
1048
1149
|
|
|
1049
1150
|
self.reporter.info("Starting Runtime update...")
|
|
1050
1151
|
|
|
1152
|
+
def _binding_update_value(key: str) -> Optional[str]:
|
|
1153
|
+
"""Translate runtime_bindings into UpdateRuntimeRequest fields.
|
|
1154
|
+
|
|
1155
|
+
Semantics:
|
|
1156
|
+
- key not present: return None (do not send)
|
|
1157
|
+
- value is None: return "" (explicit clear/unbind)
|
|
1158
|
+
- value is "" or whitespace: return "" (explicit clear/unbind)
|
|
1159
|
+
- value is non-empty: return value
|
|
1160
|
+
"""
|
|
1161
|
+
if (
|
|
1162
|
+
not isinstance(config.runtime_bindings, dict)
|
|
1163
|
+
or key not in config.runtime_bindings
|
|
1164
|
+
):
|
|
1165
|
+
return None
|
|
1166
|
+
raw = config.runtime_bindings.get(key)
|
|
1167
|
+
if raw is None:
|
|
1168
|
+
return ""
|
|
1169
|
+
if isinstance(raw, str) and not raw.strip():
|
|
1170
|
+
return ""
|
|
1171
|
+
return str(raw)
|
|
1172
|
+
|
|
1173
|
+
memory_id = _binding_update_value("memory_id")
|
|
1174
|
+
knowledge_id = _binding_update_value("knowledge_id")
|
|
1175
|
+
tool_id = _binding_update_value("tool_id")
|
|
1176
|
+
mcp_toolset_id = _binding_update_value("mcp_toolset_id")
|
|
1177
|
+
|
|
1051
1178
|
envs = [
|
|
1052
1179
|
{"Key": str(k), "Value": str(v)} for k, v in config.runtime_envs.items()
|
|
1053
1180
|
]
|
|
@@ -1056,6 +1183,10 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
1056
1183
|
runtime_id=config.runtime_id,
|
|
1057
1184
|
artifact_url=config.image_url,
|
|
1058
1185
|
description=config.common_config.description,
|
|
1186
|
+
memory_id=memory_id,
|
|
1187
|
+
knowledge_id=knowledge_id,
|
|
1188
|
+
tool_id=tool_id,
|
|
1189
|
+
mcp_toolset_id=mcp_toolset_id,
|
|
1059
1190
|
envs=envs,
|
|
1060
1191
|
client_token=generate_client_token(),
|
|
1061
1192
|
)
|
|
@@ -338,6 +338,8 @@ class CloudStrategy(Strategy):
|
|
|
338
338
|
runtime_apikey_name=strategy_config.runtime_apikey_name,
|
|
339
339
|
runtime_endpoint=strategy_config.runtime_endpoint,
|
|
340
340
|
runtime_envs=merged_envs,
|
|
341
|
+
runtime_bindings=getattr(strategy_config, "runtime_bindings", None) or {},
|
|
342
|
+
runtime_network=getattr(strategy_config, "runtime_network", None) or {},
|
|
341
343
|
runtime_auth_type=strategy_config.runtime_auth_type,
|
|
342
344
|
runtime_jwt_discovery_url=strategy_config.runtime_jwt_discovery_url,
|
|
343
345
|
runtime_jwt_allowed_clients=strategy_config.runtime_jwt_allowed_clients,
|
|
@@ -505,6 +505,8 @@ class HybridStrategy(Strategy):
|
|
|
505
505
|
runtime_apikey_name=strategy_config.runtime_apikey_name,
|
|
506
506
|
runtime_endpoint=strategy_config.runtime_endpoint,
|
|
507
507
|
runtime_envs=merged_envs,
|
|
508
|
+
runtime_bindings=getattr(strategy_config, "runtime_bindings", None) or {},
|
|
509
|
+
runtime_network=getattr(strategy_config, "runtime_network", None) or {},
|
|
508
510
|
runtime_auth_type=strategy_config.runtime_auth_type,
|
|
509
511
|
runtime_jwt_discovery_url=strategy_config.runtime_jwt_discovery_url,
|
|
510
512
|
runtime_jwt_allowed_clients=strategy_config.runtime_jwt_allowed_clients,
|