agentkit-sdk-python 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentkit_sdk_python-0.2.0/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.2.2}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/agent_server_app.py +1 -5
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/middleware.py +2 -2
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/telemetry.py +2 -2
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/client/base_service_client.py +15 -3
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/local_docker.py +2 -3
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/ve_pipeline.py +11 -6
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli.py +3 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/config.py +7 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/dataclass_utils.py +56 -13
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/container.py +8 -60
- agentkit_sdk_python-0.2.2/agentkit/toolkit/docker/utils.py +98 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/init_executor.py +3 -35
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/runners/ve_agentkit.py +5 -2
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/utils/__init__.py +1 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/iam.py +7 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/utils/project_archiver.py +3 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/misc.py +18 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/template_utils.py +13 -5
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/ve_sign.py +61 -2
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/version.py +1 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2/agentkit_sdk_python.egg-info}/PKG-INFO +1 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit_sdk_python.egg-info/SOURCES.txt +1 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/pyproject.toml +1 -1
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/LICENSE +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/MANIFEST.in +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/README.md +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/a2a_app/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/a2a_app/a2a_app.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/a2a_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/base_app.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/mcp_app/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/mcp_app/mcp_app.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/mcp_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/simple_app/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/simple_app/simple_app.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/simple_app/simple_app_handlers.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/simple_app/telemetry.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/utils.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/client/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/client/base_agentkit_client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/client/base_iam_client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/account/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/account/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/identity/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/identity/auth.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/knowledge/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/knowledge/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/knowledge/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/mcp/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/mcp/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/mcp/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/memory/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/memory/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/memory/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/runtime/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/runtime/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/runtime/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/tools/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/tools/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/sdk/tools/types.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/base.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/__main__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_build.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_deploy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_destroy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_init.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_invoke.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_knowledge.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_launch.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_memory.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_runtime.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_status.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_tools.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/cli_version.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/console_reporter.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/interactive_config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/cli/utils.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/config_handler.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/config_validator.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/constants.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/docker_build_config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/global_config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/strategy_configs.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/utils.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/context.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/dockerfile/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/dockerfile/manager.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/dockerfile/metadata.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/errors.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/base_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/build_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/deploy_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/invoke_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/lifecycle_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/status_executor.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/models.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/reporter.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/__pycache__/customer_support_assistant.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/__pycache__/financial_analyst.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/__pycache__/simple_app_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/__pycache__/simple_mcp_veadk.cpython-312.pyc +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/a2a.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/basic.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/basic_stream.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/customer_support_assistant.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/eino_a2a/agent.go +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/eino_a2a/build.sh +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/eino_a2a/go.mod +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/eino_a2a/go.sum +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/eino_a2a/main.go +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/financial_analyst.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/simple_app_veadk.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/samples/simple_mcp_veadk.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/templates/code-pipeline-tos-cr-step.j2 +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/templates/golang/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/templates/python/Dockerfile.j2 +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/wrappers/wrapper_basic.py.jinja2 +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/resources/wrappers/wrapper_stream.py.jinja2 +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/runners/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/runners/base.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/runners/local_docker.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/bindings/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/bindings/memory.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/builder.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/client.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/deployer.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/initializer.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/invoker.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/lifecycle.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/sdk/status.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/strategies/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/strategies/base_strategy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/strategies/cloud_strategy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/strategies/hybrid_strategy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/strategies/local_strategy.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/utils/agent_parser.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/code_pipeline.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/cr.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/services/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/services/cr_service.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/services/tos_service.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/sts.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/volcengine/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/__init__.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/credential.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/global_config_io.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/logging_config.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/utils/request.py +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit_sdk_python.egg-info/dependency_links.txt +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit_sdk_python.egg-info/entry_points.txt +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit_sdk_python.egg-info/requires.txt +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit_sdk_python.egg-info/top_level.txt +0 -0
- {agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/setup.cfg +0 -0
{agentkit_sdk_python-0.2.0/agentkit_sdk_python.egg-info → agentkit_sdk_python-0.2.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentkit-sdk-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
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
|
|
@@ -102,11 +102,7 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
|
|
|
102
102
|
user_id = (
|
|
103
103
|
headers.get("user_id") or headers.get("x-user-id") or "agentkit_user"
|
|
104
104
|
)
|
|
105
|
-
session_id = (
|
|
106
|
-
headers.get("session_id")
|
|
107
|
-
or headers.get("x-session-id")
|
|
108
|
-
or "agentkit_sample_session"
|
|
109
|
-
)
|
|
105
|
+
session_id = headers.get("session_id") or ""
|
|
110
106
|
|
|
111
107
|
# Determine app_name from loader
|
|
112
108
|
app_names = self.server.agent_loader.list_agents()
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/middleware.py
RENAMED
|
@@ -43,8 +43,8 @@ class AgentkitTelemetryHTTPMiddleware:
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
# Currently unable to retrieve user_id and session_id from headers; keep logic for future use
|
|
46
|
-
user_id = headers.get("user_id")
|
|
47
|
-
session_id = headers.get("session_id")
|
|
46
|
+
user_id = headers.get("user_id")
|
|
47
|
+
session_id = headers.get("session_id")
|
|
48
48
|
headers["user_id"] = user_id
|
|
49
49
|
headers["session_id"] = session_id
|
|
50
50
|
telemetry.trace_agent_server(
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/apps/agent_server_app/telemetry.py
RENAMED
|
@@ -72,10 +72,10 @@ class Telemetry:
|
|
|
72
72
|
value=safe_serialize_to_json_string(headers),
|
|
73
73
|
)
|
|
74
74
|
|
|
75
|
-
session_id = headers.get("session_id")
|
|
75
|
+
session_id = headers.get("session_id")
|
|
76
76
|
if session_id:
|
|
77
77
|
span.set_attribute(key="gen_ai.session.id", value=session_id)
|
|
78
|
-
user_id = headers.get("user_id")
|
|
78
|
+
user_id = headers.get("user_id")
|
|
79
79
|
if user_id:
|
|
80
80
|
span.set_attribute(key="gen_ai.user.id", value=user_id)
|
|
81
81
|
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/client/base_service_client.py
RENAMED
|
@@ -26,7 +26,10 @@ from volcengine.base.Service import Service
|
|
|
26
26
|
from volcengine.Credentials import Credentials
|
|
27
27
|
from volcengine.ServiceInfo import ServiceInfo
|
|
28
28
|
|
|
29
|
-
from agentkit.utils.ve_sign import
|
|
29
|
+
from agentkit.utils.ve_sign import (
|
|
30
|
+
get_volc_ak_sk_region,
|
|
31
|
+
ensure_x_custom_source_header,
|
|
32
|
+
)
|
|
30
33
|
|
|
31
34
|
T = TypeVar("T")
|
|
32
35
|
|
|
@@ -73,7 +76,7 @@ class BaseServiceClient(Service):
|
|
|
73
76
|
session_token: str = "",
|
|
74
77
|
service_name: str = "",
|
|
75
78
|
credential_env_prefix: str = "",
|
|
76
|
-
header: Optional[Dict[str, Any]] =
|
|
79
|
+
header: Optional[Dict[str, Any]] = None,
|
|
77
80
|
) -> None:
|
|
78
81
|
"""
|
|
79
82
|
Initialize the service client.
|
|
@@ -105,6 +108,15 @@ class BaseServiceClient(Service):
|
|
|
105
108
|
self.session_token = session_token
|
|
106
109
|
self.service_name = service_name
|
|
107
110
|
|
|
111
|
+
if header is None:
|
|
112
|
+
effective_header: Dict[str, Any] = {"Accept": "application/json"}
|
|
113
|
+
else:
|
|
114
|
+
effective_header = header.copy()
|
|
115
|
+
if "Accept" not in effective_header:
|
|
116
|
+
effective_header = {"Accept": "application/json", **effective_header}
|
|
117
|
+
|
|
118
|
+
effective_header = ensure_x_custom_source_header(effective_header)
|
|
119
|
+
|
|
108
120
|
# Get service-specific configuration from subclass
|
|
109
121
|
config = self._get_service_config()
|
|
110
122
|
self.host = config["host"]
|
|
@@ -115,7 +127,7 @@ class BaseServiceClient(Service):
|
|
|
115
127
|
# Create ServiceInfo
|
|
116
128
|
self.service_info = ServiceInfo(
|
|
117
129
|
host=self.host,
|
|
118
|
-
header=
|
|
130
|
+
header=effective_header,
|
|
119
131
|
credentials=Credentials(
|
|
120
132
|
ak=self.access_key,
|
|
121
133
|
sk=self.secret_key,
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/local_docker.py
RENAMED
|
@@ -25,6 +25,7 @@ from dataclasses import dataclass, field
|
|
|
25
25
|
from datetime import datetime
|
|
26
26
|
from agentkit.toolkit.config import CommonConfig
|
|
27
27
|
from agentkit.toolkit.config.dataclass_utils import AutoSerializableMixin
|
|
28
|
+
from agentkit.toolkit.docker.utils import create_dockerignore_file
|
|
28
29
|
from agentkit.toolkit.models import BuildResult, ImageInfo
|
|
29
30
|
from agentkit.toolkit.reporter import Reporter
|
|
30
31
|
from agentkit.toolkit.errors import ErrorCode
|
|
@@ -334,9 +335,7 @@ class LocalDockerBuilder(Builder):
|
|
|
334
335
|
force_regenerate=force_regenerate,
|
|
335
336
|
)
|
|
336
337
|
|
|
337
|
-
|
|
338
|
-
if not dockerignore_path.exists():
|
|
339
|
-
renderer.create_dockerignore(str(dockerignore_path))
|
|
338
|
+
create_dockerignore_file(str(self.workdir))
|
|
340
339
|
image_name = f"{docker_config.image_name or 'agentkit-app'}"
|
|
341
340
|
image_tag = f"{docker_config.image_tag or 'latest'}"
|
|
342
341
|
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/builders/ve_pipeline.py
RENAMED
|
@@ -32,7 +32,11 @@ from agentkit.toolkit.config.dataclass_utils import AutoSerializableMixin
|
|
|
32
32
|
from agentkit.toolkit.models import BuildResult, ImageInfo
|
|
33
33
|
from agentkit.toolkit.reporter import Reporter
|
|
34
34
|
from agentkit.toolkit.errors import ErrorCode
|
|
35
|
-
from agentkit.utils.misc import
|
|
35
|
+
from agentkit.utils.misc import (
|
|
36
|
+
generate_random_id,
|
|
37
|
+
calculate_nonlinear_progress,
|
|
38
|
+
retry,
|
|
39
|
+
)
|
|
36
40
|
from agentkit.toolkit.volcengine.services import CRServiceConfig
|
|
37
41
|
from .base import Builder
|
|
38
42
|
|
|
@@ -1303,11 +1307,12 @@ class VeCPCRBuilder(Builder):
|
|
|
1303
1307
|
|
|
1304
1308
|
while True:
|
|
1305
1309
|
try:
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1310
|
+
status = retry(
|
|
1311
|
+
lambda: cp_client.get_pipeline_run_status(
|
|
1312
|
+
workspace_id=workspace_id,
|
|
1313
|
+
pipeline_id=pipeline_id,
|
|
1314
|
+
run_id=run_id,
|
|
1315
|
+
)
|
|
1311
1316
|
)
|
|
1312
1317
|
|
|
1313
1318
|
# Update progress description
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
"""AgentKit CLI - Main entry point for AgentKit Starter Toolkit."""
|
|
16
16
|
|
|
17
|
+
import os
|
|
18
|
+
|
|
17
19
|
import typer
|
|
18
20
|
from rich.panel import Panel
|
|
19
21
|
from rich.console import Console
|
|
@@ -77,6 +79,7 @@ def main(
|
|
|
77
79
|
),
|
|
78
80
|
):
|
|
79
81
|
"""AgentKit CLI - Deploy AI agents with ease."""
|
|
82
|
+
os.environ.setdefault("AGENTKIT_CLIENT_TYPE", "cli")
|
|
80
83
|
# If no subcommand is provided, show logo
|
|
81
84
|
if ctx.invoked_subcommand is None:
|
|
82
85
|
show_logo()
|
|
@@ -297,7 +297,13 @@ class AgentkitConfigManager:
|
|
|
297
297
|
"""Save configuration file"""
|
|
298
298
|
os.makedirs(self.config_path.parent, exist_ok=True)
|
|
299
299
|
with open(self.config_path, "w", encoding="utf-8") as f:
|
|
300
|
-
yaml.dump(
|
|
300
|
+
yaml.dump(
|
|
301
|
+
self._data,
|
|
302
|
+
f,
|
|
303
|
+
default_flow_style=False,
|
|
304
|
+
sort_keys=False,
|
|
305
|
+
allow_unicode=True,
|
|
306
|
+
)
|
|
301
307
|
|
|
302
308
|
def get_common_config(self) -> CommonConfig:
|
|
303
309
|
"""Get common configuration"""
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/config/dataclass_utils.py
RENAMED
|
@@ -21,6 +21,40 @@ logger = logging.getLogger(__name__)
|
|
|
21
21
|
|
|
22
22
|
T = TypeVar("T")
|
|
23
23
|
|
|
24
|
+
SENSITIVE_FIELDS = {
|
|
25
|
+
"runtime_envs",
|
|
26
|
+
"runtime_apikey_name",
|
|
27
|
+
"runtime_apikey",
|
|
28
|
+
"runtime_jwt_discovery_url",
|
|
29
|
+
"runtime_jwt_allowed_clients",
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _get_safe_value(field_name: str, value: Any) -> Any:
|
|
34
|
+
if field_name in SENSITIVE_FIELDS:
|
|
35
|
+
return "******"
|
|
36
|
+
return value
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _sanitize_dict(data: Dict[str, Any]) -> Dict[str, Any]:
|
|
40
|
+
"""Sanitize sensitive fields in a dictionary."""
|
|
41
|
+
if not isinstance(data, dict):
|
|
42
|
+
return data
|
|
43
|
+
return {k: _get_safe_value(k, v) for k, v in data.items()}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _sanitize_diff(diff: Dict[str, Any]) -> Dict[str, Any]:
|
|
47
|
+
"""Sanitize sensitive fields in a diff dictionary."""
|
|
48
|
+
if not isinstance(diff, dict):
|
|
49
|
+
return diff
|
|
50
|
+
sanitized = {}
|
|
51
|
+
for k, v in diff.items():
|
|
52
|
+
if k in SENSITIVE_FIELDS:
|
|
53
|
+
sanitized[k] = ("******", "******")
|
|
54
|
+
else:
|
|
55
|
+
sanitized[k] = v
|
|
56
|
+
return sanitized
|
|
57
|
+
|
|
24
58
|
|
|
25
59
|
class DataclassSerializer:
|
|
26
60
|
@staticmethod
|
|
@@ -50,7 +84,7 @@ class DataclassSerializer:
|
|
|
50
84
|
logger.debug(
|
|
51
85
|
"[DataclassSerializer] source=local field=%s value=%r",
|
|
52
86
|
field_name,
|
|
53
|
-
kwargs[field_name],
|
|
87
|
+
_get_safe_value(field_name, kwargs[field_name]),
|
|
54
88
|
)
|
|
55
89
|
else:
|
|
56
90
|
# Try aliases (backward compatibility)
|
|
@@ -65,7 +99,7 @@ class DataclassSerializer:
|
|
|
65
99
|
"[DataclassSerializer] source=alias(%s) -> local field=%s value=%r",
|
|
66
100
|
alias,
|
|
67
101
|
field_name,
|
|
68
|
-
kwargs[field_name],
|
|
102
|
+
_get_safe_value(field_name, kwargs[field_name]),
|
|
69
103
|
)
|
|
70
104
|
break
|
|
71
105
|
|
|
@@ -77,7 +111,7 @@ class DataclassSerializer:
|
|
|
77
111
|
logger.debug(
|
|
78
112
|
"[DataclassSerializer] source=default_factory field=%s value=%r",
|
|
79
113
|
field_name,
|
|
80
|
-
kwargs[field_name],
|
|
114
|
+
_get_safe_value(field_name, kwargs[field_name]),
|
|
81
115
|
)
|
|
82
116
|
elif field.default is not MISSING:
|
|
83
117
|
kwargs[field_name] = field.default
|
|
@@ -85,7 +119,7 @@ class DataclassSerializer:
|
|
|
85
119
|
logger.debug(
|
|
86
120
|
"[DataclassSerializer] source=default field=%s value=%r",
|
|
87
121
|
field_name,
|
|
88
|
-
kwargs[field_name],
|
|
122
|
+
_get_safe_value(field_name, kwargs[field_name]),
|
|
89
123
|
)
|
|
90
124
|
else:
|
|
91
125
|
kwargs[field_name] = None
|
|
@@ -157,7 +191,11 @@ class AutoSerializableMixin:
|
|
|
157
191
|
from .global_config import apply_global_config_defaults
|
|
158
192
|
|
|
159
193
|
before = instance.to_dict()
|
|
160
|
-
logger.debug(
|
|
194
|
+
logger.debug(
|
|
195
|
+
"from_dict: before globals for %s -> %r",
|
|
196
|
+
cls.__name__,
|
|
197
|
+
_sanitize_dict(before),
|
|
198
|
+
)
|
|
161
199
|
instance = apply_global_config_defaults(instance, data)
|
|
162
200
|
after = instance.to_dict()
|
|
163
201
|
if before != after:
|
|
@@ -169,7 +207,7 @@ class AutoSerializableMixin:
|
|
|
169
207
|
logger.debug(
|
|
170
208
|
"from_dict: applied global defaults for %s; changes=%r",
|
|
171
209
|
cls.__name__,
|
|
172
|
-
diff,
|
|
210
|
+
_sanitize_diff(diff),
|
|
173
211
|
)
|
|
174
212
|
else:
|
|
175
213
|
logger.debug(
|
|
@@ -254,7 +292,7 @@ class AutoSerializableMixin:
|
|
|
254
292
|
"[%s] [template] start field render check: name=%s, value=%r, has_placeholders=%s",
|
|
255
293
|
cfg_name,
|
|
256
294
|
field_info.name,
|
|
257
|
-
field_value,
|
|
295
|
+
_get_safe_value(field_info.name, field_value),
|
|
258
296
|
(
|
|
259
297
|
isinstance(field_value, str)
|
|
260
298
|
and ("{{" in field_value and "}}" in field_value)
|
|
@@ -269,7 +307,7 @@ class AutoSerializableMixin:
|
|
|
269
307
|
"[%s] [template] field %s is Auto/empty -> using default_template=%r",
|
|
270
308
|
cfg_name,
|
|
271
309
|
field_info.name,
|
|
272
|
-
default_template,
|
|
310
|
+
_get_safe_value(field_info.name, default_template),
|
|
273
311
|
)
|
|
274
312
|
field_value = default_template
|
|
275
313
|
self._template_originals[field_info.name] = default_template
|
|
@@ -300,17 +338,20 @@ class AutoSerializableMixin:
|
|
|
300
338
|
"[%s] [template] save original template for %s: %r",
|
|
301
339
|
cfg_name,
|
|
302
340
|
field_info.name,
|
|
303
|
-
field_value,
|
|
341
|
+
_get_safe_value(field_info.name, field_value),
|
|
304
342
|
)
|
|
305
343
|
|
|
306
344
|
try:
|
|
307
|
-
|
|
345
|
+
is_sensitive = field_info.name in SENSITIVE_FIELDS
|
|
346
|
+
rendered = render_template(
|
|
347
|
+
field_value, sensitive=is_sensitive
|
|
348
|
+
)
|
|
308
349
|
logger.debug(
|
|
309
350
|
"[%s] [template] rendered field %s: %r -> %r",
|
|
310
351
|
cfg_name,
|
|
311
352
|
field_info.name,
|
|
312
|
-
field_value,
|
|
313
|
-
rendered,
|
|
353
|
+
_get_safe_value(field_info.name, field_value),
|
|
354
|
+
_get_safe_value(field_info.name, rendered),
|
|
314
355
|
)
|
|
315
356
|
# Fail if unresolved placeholders remain
|
|
316
357
|
if "{{" in str(rendered) and "}}" in str(rendered):
|
|
@@ -356,7 +397,9 @@ class AutoSerializableMixin:
|
|
|
356
397
|
"[%s] [template] field %s is not marked for rendering, value: %r",
|
|
357
398
|
cfg_name,
|
|
358
399
|
field_info.name,
|
|
359
|
-
|
|
400
|
+
_get_safe_value(
|
|
401
|
+
field_info.name, getattr(self, field_info.name)
|
|
402
|
+
),
|
|
360
403
|
)
|
|
361
404
|
except ImportError:
|
|
362
405
|
# If template utils are not available, no-op
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/docker/container.py
RENAMED
|
@@ -19,6 +19,8 @@ import logging
|
|
|
19
19
|
import docker
|
|
20
20
|
from docker.errors import DockerException, ImageNotFound
|
|
21
21
|
|
|
22
|
+
from agentkit.toolkit.docker.utils import create_dockerignore_file
|
|
23
|
+
|
|
22
24
|
logger = logging.getLogger(__name__)
|
|
23
25
|
|
|
24
26
|
|
|
@@ -84,10 +86,8 @@ class DockerfileRenderer:
|
|
|
84
86
|
|
|
85
87
|
# Create .dockerignore file if requested
|
|
86
88
|
if create_dockerignore:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
)
|
|
90
|
-
self.create_dockerignore(dockerignore_path, dockerignore_entries)
|
|
89
|
+
target_dir = output_dir or os.path.dirname(output_path)
|
|
90
|
+
create_dockerignore_file(target_dir, dockerignore_entries)
|
|
91
91
|
|
|
92
92
|
return rendered_content
|
|
93
93
|
|
|
@@ -106,6 +106,8 @@ class DockerfileRenderer:
|
|
|
106
106
|
"""
|
|
107
107
|
Create .dockerignore file with default and additional entries.
|
|
108
108
|
|
|
109
|
+
Deprecated: Use agentkit.toolkit.docker.utils.create_dockerignore_file instead.
|
|
110
|
+
|
|
109
111
|
Args:
|
|
110
112
|
dockerignore_path: Path to .dockerignore file
|
|
111
113
|
additional_entries: Additional entries to add to .dockerignore
|
|
@@ -113,62 +115,8 @@ class DockerfileRenderer:
|
|
|
113
115
|
Raises:
|
|
114
116
|
IOError: When file write fails
|
|
115
117
|
"""
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if os.path.exists(dockerignore_path):
|
|
119
|
-
logger.info(
|
|
120
|
-
f".dockerignore already exists at: {dockerignore_path}, skipping creation"
|
|
121
|
-
)
|
|
122
|
-
return
|
|
123
|
-
|
|
124
|
-
# Default entries to exclude
|
|
125
|
-
default_entries = [
|
|
126
|
-
"# AgentKit configuration",
|
|
127
|
-
"agentkit.yaml",
|
|
128
|
-
"agentkit*.yaml",
|
|
129
|
-
"",
|
|
130
|
-
"# Python cache",
|
|
131
|
-
"__pycache__/",
|
|
132
|
-
"*.py[cod]",
|
|
133
|
-
"*$py.class",
|
|
134
|
-
"",
|
|
135
|
-
"# Virtual environments",
|
|
136
|
-
".venv/",
|
|
137
|
-
"venv/",
|
|
138
|
-
"ENV/",
|
|
139
|
-
"env/",
|
|
140
|
-
"",
|
|
141
|
-
"# IDE",
|
|
142
|
-
".vscode/",
|
|
143
|
-
".idea/",
|
|
144
|
-
".windsurf/",
|
|
145
|
-
"",
|
|
146
|
-
"# Git",
|
|
147
|
-
".git/",
|
|
148
|
-
".gitignore",
|
|
149
|
-
"",
|
|
150
|
-
"# Docker",
|
|
151
|
-
"Dockerfile*",
|
|
152
|
-
".dockerignore",
|
|
153
|
-
]
|
|
154
|
-
|
|
155
|
-
# Combine default and additional entries
|
|
156
|
-
all_entries = default_entries.copy()
|
|
157
|
-
if additional_entries:
|
|
158
|
-
all_entries.append("")
|
|
159
|
-
all_entries.append("# Additional entries")
|
|
160
|
-
all_entries.extend(additional_entries)
|
|
161
|
-
|
|
162
|
-
# Write .dockerignore file
|
|
163
|
-
with open(dockerignore_path, "w", encoding="utf-8") as f:
|
|
164
|
-
f.write("\n".join(all_entries))
|
|
165
|
-
f.write("\n") # End with newline
|
|
166
|
-
|
|
167
|
-
logger.info(f"Successfully created .dockerignore at: {dockerignore_path}")
|
|
168
|
-
|
|
169
|
-
except Exception as e:
|
|
170
|
-
logger.error(f"Error creating .dockerignore: {str(e)}")
|
|
171
|
-
raise
|
|
118
|
+
target_dir = os.path.dirname(dockerignore_path)
|
|
119
|
+
create_dockerignore_file(target_dir, additional_entries)
|
|
172
120
|
|
|
173
121
|
|
|
174
122
|
class DockerManager:
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
import os
|
|
17
|
+
import logging
|
|
18
|
+
from typing import List, Optional
|
|
19
|
+
|
|
20
|
+
logger = logging.getLogger(__name__)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def create_dockerignore_file(
|
|
24
|
+
target_dir: str, additional_entries: Optional[List[str]] = None
|
|
25
|
+
) -> bool:
|
|
26
|
+
"""
|
|
27
|
+
Create .dockerignore file with default and additional entries.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
target_dir: Directory where .dockerignore should be created
|
|
31
|
+
additional_entries: Additional entries to add to .dockerignore
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
bool: True if file was created, False if it already existed
|
|
35
|
+
|
|
36
|
+
Raises:
|
|
37
|
+
IOError: When file write fails
|
|
38
|
+
"""
|
|
39
|
+
dockerignore_path = os.path.join(target_dir, ".dockerignore")
|
|
40
|
+
|
|
41
|
+
try:
|
|
42
|
+
# Check if .dockerignore already exists
|
|
43
|
+
if os.path.exists(dockerignore_path):
|
|
44
|
+
logger.info(
|
|
45
|
+
f".dockerignore already exists at: {dockerignore_path}, skipping creation"
|
|
46
|
+
)
|
|
47
|
+
return False
|
|
48
|
+
|
|
49
|
+
# Default entries to exclude
|
|
50
|
+
default_entries = [
|
|
51
|
+
"# AgentKit configuration",
|
|
52
|
+
"agentkit.yaml",
|
|
53
|
+
"agentkit*.yaml",
|
|
54
|
+
".agentkit/",
|
|
55
|
+
"",
|
|
56
|
+
"# Python cache",
|
|
57
|
+
"__pycache__/",
|
|
58
|
+
"*.py[cod]",
|
|
59
|
+
"*$py.class",
|
|
60
|
+
"",
|
|
61
|
+
"# Virtual environments",
|
|
62
|
+
".venv/",
|
|
63
|
+
"venv/",
|
|
64
|
+
"ENV/",
|
|
65
|
+
"env/",
|
|
66
|
+
"",
|
|
67
|
+
"# IDE",
|
|
68
|
+
".vscode/",
|
|
69
|
+
".idea/",
|
|
70
|
+
".windsurf/",
|
|
71
|
+
"",
|
|
72
|
+
"# Git",
|
|
73
|
+
".git/",
|
|
74
|
+
".gitignore",
|
|
75
|
+
"",
|
|
76
|
+
"# Docker",
|
|
77
|
+
"Dockerfile*",
|
|
78
|
+
".dockerignore",
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
# Combine default and additional entries
|
|
82
|
+
all_entries = default_entries.copy()
|
|
83
|
+
if additional_entries:
|
|
84
|
+
all_entries.append("")
|
|
85
|
+
all_entries.append("# Additional entries")
|
|
86
|
+
all_entries.extend(additional_entries)
|
|
87
|
+
|
|
88
|
+
# Write .dockerignore file
|
|
89
|
+
with open(dockerignore_path, "w", encoding="utf-8") as f:
|
|
90
|
+
f.write("\n".join(all_entries))
|
|
91
|
+
f.write("\n") # End with newline
|
|
92
|
+
|
|
93
|
+
logger.info(f"Successfully created .dockerignore at: {dockerignore_path}")
|
|
94
|
+
return True
|
|
95
|
+
|
|
96
|
+
except Exception as e:
|
|
97
|
+
logger.error(f"Error creating .dockerignore: {str(e)}")
|
|
98
|
+
raise
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/executors/init_executor.py
RENAMED
|
@@ -50,6 +50,7 @@ from agentkit.toolkit.config.constants import (
|
|
|
50
50
|
DEFAULT_CR_INSTANCE_TEMPLATE_NAME,
|
|
51
51
|
DEFAULT_TOS_BUCKET_TEMPLATE_NAME,
|
|
52
52
|
)
|
|
53
|
+
from agentkit.toolkit.docker.utils import create_dockerignore_file
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
TEMPLATES = {
|
|
@@ -593,41 +594,8 @@ class InitExecutor(BaseExecutor):
|
|
|
593
594
|
|
|
594
595
|
def _create_dockerignore(self, target_dir: Path):
|
|
595
596
|
"""Create .dockerignore file."""
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
self.logger.info("File .dockerignore already exists, skipping")
|
|
599
|
-
return
|
|
600
|
-
|
|
601
|
-
dockerignore_content = """# AgentKit configuration
|
|
602
|
-
agentkit.yaml
|
|
603
|
-
agentkit*.yaml
|
|
604
|
-
|
|
605
|
-
# Python cache
|
|
606
|
-
__pycache__/
|
|
607
|
-
*.py[cod]
|
|
608
|
-
*$py.class
|
|
609
|
-
|
|
610
|
-
# Virtual environments
|
|
611
|
-
.venv/
|
|
612
|
-
venv/
|
|
613
|
-
ENV/
|
|
614
|
-
env/
|
|
615
|
-
|
|
616
|
-
# IDE
|
|
617
|
-
.vscode/
|
|
618
|
-
.idea/
|
|
619
|
-
.windsurf/
|
|
620
|
-
|
|
621
|
-
# Git
|
|
622
|
-
.git/
|
|
623
|
-
.gitignore
|
|
624
|
-
|
|
625
|
-
# Docker
|
|
626
|
-
Dockerfile*
|
|
627
|
-
.dockerignore
|
|
628
|
-
"""
|
|
629
|
-
dockerignore_file_path.write_text(dockerignore_content, encoding="utf-8")
|
|
630
|
-
self.created_files.append(".dockerignore")
|
|
597
|
+
if create_dockerignore_file(str(target_dir)):
|
|
598
|
+
self.created_files.append(".dockerignore")
|
|
631
599
|
|
|
632
600
|
def init_from_agent_file(
|
|
633
601
|
self,
|
{agentkit_sdk_python-0.2.0 → agentkit_sdk_python-0.2.2}/agentkit/toolkit/runners/ve_agentkit.py
RENAMED
|
@@ -39,6 +39,7 @@ from agentkit.utils.misc import (
|
|
|
39
39
|
generate_apikey_name,
|
|
40
40
|
generate_client_token,
|
|
41
41
|
calculate_nonlinear_progress,
|
|
42
|
+
retry,
|
|
42
43
|
)
|
|
43
44
|
from agentkit.sdk.runtime.client import AgentkitRuntimeClient
|
|
44
45
|
from agentkit.toolkit.volcengine.iam import VeIAM
|
|
@@ -834,8 +835,10 @@ class VeAgentkitRuntimeRunner(Runner):
|
|
|
834
835
|
# Use reporter.long_task() for progress tracking
|
|
835
836
|
with self.reporter.long_task(task_description, total=total_time) as task:
|
|
836
837
|
while True:
|
|
837
|
-
runtime =
|
|
838
|
-
|
|
838
|
+
runtime = retry(
|
|
839
|
+
lambda: self.agentkit_runtime_client.get_runtime(
|
|
840
|
+
runtime_types.GetRuntimeRequest(runtime_id=runtime_id)
|
|
841
|
+
)
|
|
839
842
|
)
|
|
840
843
|
|
|
841
844
|
# Check if target status reached
|
|
@@ -221,7 +221,13 @@ class VeIAM(BaseIAMClient):
|
|
|
221
221
|
data="{}",
|
|
222
222
|
)
|
|
223
223
|
response_data = json.loads(res)
|
|
224
|
-
|
|
224
|
+
result_data = response_data.get("Result", {})
|
|
225
|
+
role_data = result_data.get("Role")
|
|
226
|
+
if isinstance(role_data, dict):
|
|
227
|
+
tpd = role_data.get("TrustPolicyDocument")
|
|
228
|
+
if isinstance(tpd, dict):
|
|
229
|
+
role_data["TrustPolicyDocument"] = json.dumps(tpd)
|
|
230
|
+
return GetRoleResponse(**result_data)
|
|
225
231
|
except Exception as e:
|
|
226
232
|
# If role not found, return None
|
|
227
233
|
if "RoleNotExist" in str(e) or "NotFound" in str(e) or "404" in str(e):
|
|
@@ -34,6 +34,8 @@ class ArchiveConfig:
|
|
|
34
34
|
exclude_patterns: List[str] = field(
|
|
35
35
|
default_factory=lambda: [
|
|
36
36
|
"__pycache__",
|
|
37
|
+
"agentkit.yaml",
|
|
38
|
+
".env",
|
|
37
39
|
"*.pyc",
|
|
38
40
|
"*.pyo",
|
|
39
41
|
".git",
|
|
@@ -44,6 +46,7 @@ class ArchiveConfig:
|
|
|
44
46
|
"dist/",
|
|
45
47
|
"build/",
|
|
46
48
|
"*.egg-info/",
|
|
49
|
+
".agentkit/",
|
|
47
50
|
]
|
|
48
51
|
)
|
|
49
52
|
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
import math
|
|
16
16
|
import string
|
|
17
17
|
import random
|
|
18
|
+
import time
|
|
19
|
+
from typing import Callable, TypeVar
|
|
20
|
+
|
|
21
|
+
T = TypeVar("T")
|
|
18
22
|
|
|
19
23
|
|
|
20
24
|
def generate_random_id(length=8):
|
|
@@ -102,3 +106,17 @@ def calculate_nonlinear_progress(
|
|
|
102
106
|
"""
|
|
103
107
|
progress = max_time * (1 - math.exp(-elapsed / expected_time))
|
|
104
108
|
return min(progress, max_time * max_ratio)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def retry(
|
|
112
|
+
func: Callable[[], T],
|
|
113
|
+
retries: int = 3,
|
|
114
|
+
delay: float = 1.0,
|
|
115
|
+
) -> T:
|
|
116
|
+
for attempt in range(retries):
|
|
117
|
+
try:
|
|
118
|
+
return func()
|
|
119
|
+
except Exception: # noqa: BLE001
|
|
120
|
+
if attempt == retries - 1:
|
|
121
|
+
raise
|
|
122
|
+
time.sleep(delay)
|