gitextract_ee6cl8k3/ ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── FEATURE_REQUEST.md │ │ └── config.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── deploy-docs-pages.yml │ ├── egress-test.yaml.yml │ ├── execd-test.yml │ ├── ingress-test.yaml │ ├── publish-components.yml │ ├── publish-csharp-sdks.yml │ ├── publish-helm-chart.yml │ ├── publish-java-sdks.yml │ ├── publish-js-sdks.yml │ ├── publish-python-sdks.yml │ ├── publish-server.yml │ ├── real-e2e.yml │ ├── sandbox-k8s-e2e.yml │ ├── sandbox-k8s-test.yml │ ├── sdk-tests.yml │ ├── server-test.yml │ └── verify-license.yml ├── .gitignore ├── .pre-commit-config.yaml ├── AGENTS.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── cli/ │ ├── README.md │ ├── pyproject.toml │ ├── src/ │ │ └── opensandbox_cli/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── client.py │ │ ├── commands/ │ │ │ ├── __init__.py │ │ │ ├── code.py │ │ │ ├── command.py │ │ │ ├── config_cmd.py │ │ │ ├── file.py │ │ │ └── sandbox.py │ │ ├── config.py │ │ ├── main.py │ │ ├── output.py │ │ └── utils.py │ └── tests/ │ ├── __init__.py │ ├── conftest.py │ ├── test_cli_help.py │ ├── test_commands.py │ ├── test_config.py │ ├── test_output.py │ ├── test_resolve_id.py │ └── test_utils.py ├── components/ │ ├── egress/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── TODO.md │ │ ├── build.sh │ │ ├── docs/ │ │ │ └── benchmark.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── nameserver.go │ │ ├── nameserver_test.go │ │ ├── nft.go │ │ ├── pkg/ │ │ │ ├── constants/ │ │ │ │ ├── configuration.go │ │ │ │ └── constants.go │ │ │ ├── dnsproxy/ │ │ │ │ ├── exempt.go │ │ │ │ ├── exempt_test.go │ │ │ │ ├── proxy.go │ │ │ │ ├── proxy_linux.go │ │ │ │ ├── proxy_other.go │ │ │ │ └── proxy_test.go │ │ │ ├── events/ │ │ │ │ ├── broadcaster.go │ │ │ │ ├── events_test.go │ │ │ │ └── webhook.go │ │ │ ├── iptables/ │ │ │ │ └── redirect.go │ │ │ ├── log/ │ │ │ │ └── logger.go │ │ │ ├── nftables/ │ │ │ │ ├── dynamic.go │ │ │ │ ├── manager.go │ │ │ │ └── manager_test.go │ │ │ └── policy/ │ │ │ ├── policy.go │ │ │ └── policy_test.go │ │ ├── policy_server.go │ │ ├── policy_server_test.go │ │ └── tests/ │ │ ├── bench-dns-nft.sh │ │ ├── egress-in-webhook.sh │ │ ├── hostname.txt │ │ ├── smoke-dns.sh │ │ ├── smoke-dynamic-ip.sh │ │ ├── smoke-nft.sh │ │ └── webhook-server.py │ ├── execd/ │ │ ├── .golangci.yml │ │ ├── DEVELOPMENT.md │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── bootstrap.sh │ │ ├── build.sh │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── pkg/ │ │ │ ├── flag/ │ │ │ │ ├── flags.go │ │ │ │ └── parser.go │ │ │ ├── jupyter/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── auth.go │ │ │ │ │ ├── auth_test.go │ │ │ │ │ ├── client.go │ │ │ │ │ └── types.go │ │ │ │ ├── client.go │ │ │ │ ├── debug_integration_test.go │ │ │ │ ├── execute/ │ │ │ │ │ ├── events.json │ │ │ │ │ ├── execute.go │ │ │ │ │ ├── execute_test.go │ │ │ │ │ ├── executor.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── integration_test.go │ │ │ │ ├── kernel/ │ │ │ │ │ ├── kernel.go │ │ │ │ │ ├── kernelspecs.json │ │ │ │ │ └── types.go │ │ │ │ ├── live_integration_test.go │ │ │ │ ├── session/ │ │ │ │ │ ├── session.go │ │ │ │ │ ├── session_test.go │ │ │ │ │ ├── sessions.json │ │ │ │ │ └── types.go │ │ │ │ └── transport.go │ │ │ ├── log/ │ │ │ │ └── log.go │ │ │ ├── runtime/ │ │ │ │ ├── bash_session.go │ │ │ │ ├── bash_session_test.go │ │ │ │ ├── bash_session_windows.go │ │ │ │ ├── command.go │ │ │ │ ├── command_common.go │ │ │ │ ├── command_status.go │ │ │ │ ├── command_status_test.go │ │ │ │ ├── command_test.go │ │ │ │ ├── command_windows.go │ │ │ │ ├── context.go │ │ │ │ ├── context_test.go │ │ │ │ ├── ctrl.go │ │ │ │ ├── env.go │ │ │ │ ├── env_test.go │ │ │ │ ├── errors.go │ │ │ │ ├── helpers_test.go │ │ │ │ ├── interrupt.go │ │ │ │ ├── interrupt_windows.go │ │ │ │ ├── jupyter.go │ │ │ │ ├── language.go │ │ │ │ ├── sql.go │ │ │ │ ├── sql_test.go │ │ │ │ ├── types.go │ │ │ │ └── types_test.go │ │ │ ├── util/ │ │ │ │ ├── glob/ │ │ │ │ │ ├── index.go │ │ │ │ │ ├── match.go │ │ │ │ │ ├── match_benchmark_test.go │ │ │ │ │ ├── match_test.go │ │ │ │ │ └── pattern.go │ │ │ │ └── safego/ │ │ │ │ ├── safe.go │ │ │ │ └── safe_test.go │ │ │ └── web/ │ │ │ ├── controller/ │ │ │ │ ├── basic.go │ │ │ │ ├── basic_test.go │ │ │ │ ├── codeinterpreting.go │ │ │ │ ├── codeinterpreting_test.go │ │ │ │ ├── command.go │ │ │ │ ├── command_test.go │ │ │ │ ├── filesystem.go │ │ │ │ ├── filesystem_download.go │ │ │ │ ├── filesystem_test.go │ │ │ │ ├── filesystem_upload.go │ │ │ │ ├── filesystem_windows.go │ │ │ │ ├── metric.go │ │ │ │ ├── metric_test.go │ │ │ │ ├── mock_test.go │ │ │ │ ├── ping.go │ │ │ │ ├── sse.go │ │ │ │ ├── syscall_linux.go │ │ │ │ ├── syscall_others.go │ │ │ │ ├── test_helpers.go │ │ │ │ ├── utils.go │ │ │ │ ├── utils_test.go │ │ │ │ └── utils_windows.go │ │ │ ├── model/ │ │ │ │ ├── codeinterpreting.go │ │ │ │ ├── codeinterpreting_test.go │ │ │ │ ├── command.go │ │ │ │ ├── error.go │ │ │ │ ├── filesystem.go │ │ │ │ ├── header.go │ │ │ │ ├── metric.go │ │ │ │ └── session.go │ │ │ ├── proxy.go │ │ │ └── router.go │ │ └── tests/ │ │ ├── jupyter.sh │ │ ├── smoke.sh │ │ └── smoke_api.py │ ├── ingress/ │ │ ├── .golangci.yml │ │ ├── DEVELOPMENT.md │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── build.sh │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ └── pkg/ │ │ ├── flag/ │ │ │ ├── flags.go │ │ │ └── parser.go │ │ ├── proxy/ │ │ │ ├── header.go │ │ │ ├── healthz.go │ │ │ ├── healthz_test.go │ │ │ ├── host.go │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── logger.go │ │ │ ├── proxy.go │ │ │ ├── proxy_test.go │ │ │ ├── websocket.go │ │ │ └── websocket_test.go │ │ ├── renewintent/ │ │ │ ├── intent.go │ │ │ ├── intent_test.go │ │ │ ├── publisher.go │ │ │ ├── redis.go │ │ │ └── redis_bench_test.go │ │ └── sandbox/ │ │ ├── agent_sandbox_provider.go │ │ ├── agent_sandbox_provider_test.go │ │ ├── batchsandbox_provider.go │ │ ├── batchsandbox_provider_test.go │ │ ├── errors_test.go │ │ ├── factory.go │ │ └── provider.go │ └── internal/ │ ├── go.mod │ ├── go.sum │ ├── logger/ │ │ ├── logger.go │ │ └── zap.go │ └── version/ │ └── version.go ├── docs/ │ ├── .nvmrc │ ├── .vitepress/ │ │ ├── config.mts │ │ ├── scripts/ │ │ │ └── docs-manifest.mjs │ │ └── theme/ │ │ ├── index.ts │ │ └── styles.css │ ├── README.md │ ├── README_zh.md │ ├── RELEASE_NOTE_TEMPLATE.md │ ├── architecture.md │ ├── index.md │ ├── manual-cleanup-refactor-guide.md │ ├── package.json │ ├── secure-container.md │ ├── single_host_network.md │ └── zh/ │ └── index.md ├── examples/ │ ├── README.md │ ├── agent-sandbox/ │ │ ├── README.md │ │ └── main.py │ ├── aio-sandbox/ │ │ ├── README.md │ │ └── main.py │ ├── chrome/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── build.sh │ │ ├── chrome.sh │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ └── main.py │ ├── claude-code/ │ │ ├── README.md │ │ └── main.py │ ├── code-interpreter/ │ │ ├── README.md │ │ ├── main.py │ │ └── main_use_pool.py │ ├── codex-cli/ │ │ ├── README.md │ │ └── main.py │ ├── desktop/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── build.sh │ │ └── main.py │ ├── docker-ossfs-volume-mount/ │ │ ├── README.md │ │ ├── README_zh.md │ │ └── main.py │ ├── docker-pvc-volume-mount/ │ │ ├── README.md │ │ ├── README_zh.md │ │ └── main.py │ ├── gemini-cli/ │ │ ├── README.md │ │ └── main.py │ ├── google-adk/ │ │ ├── README.md │ │ └── main.py │ ├── host-volume-mount/ │ │ ├── README.md │ │ ├── README_zh.md │ │ └── main.py │ ├── kimi-cli/ │ │ ├── README.md │ │ └── main.py │ ├── kubernetes-pvc-volume-mount/ │ │ ├── README.md │ │ └── main.py │ ├── langgraph/ │ │ ├── README.md │ │ └── main.py │ ├── nullclaw/ │ │ ├── README.md │ │ └── main.py │ ├── openclaw/ │ │ ├── README.md │ │ ├── README_zh.md │ │ └── main.py │ ├── playwright/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── build.sh │ │ └── main.py │ ├── rl-training/ │ │ ├── README.md │ │ ├── main.py │ │ └── requirements.txt │ └── vscode/ │ ├── Dockerfile │ ├── README.md │ ├── build.sh │ └── main.py ├── kubernetes/ │ ├── .golangci.yml │ ├── Dockerfile │ ├── Dockerfile.debug │ ├── Makefile │ ├── PROJECT │ ├── README-ZH.md │ ├── README.md │ ├── apis/ │ │ └── sandbox/ │ │ └── v1alpha1/ │ │ ├── batchsandbox_types.go │ │ ├── doc.go │ │ ├── groupversion_info.go │ │ ├── pool_types.go │ │ └── zz_generated.deepcopy.go │ ├── build.sh │ ├── charts/ │ │ ├── opensandbox-controller/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── clusterrole.yaml │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── crds/ │ │ │ │ │ ├── batchsandboxes.yaml │ │ │ │ │ └── pools.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ └── values.yaml │ │ └── opensandbox-server/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── ingress-gateway.yaml │ │ │ └── server.yaml │ │ └── values.yaml │ ├── cmd/ │ │ ├── controller/ │ │ │ └── main.go │ │ └── task-executor/ │ │ └── main.go │ ├── config/ │ │ ├── crd/ │ │ │ ├── bases/ │ │ │ │ ├── sandbox.opensandbox.io_batchsandboxes.yaml │ │ │ │ └── sandbox.opensandbox.io_pools.yaml │ │ │ ├── kustomization.yaml │ │ │ └── kustomizeconfig.yaml │ │ ├── default/ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── manager_metrics_patch.yaml │ │ │ └── metrics_service.yaml │ │ ├── manager/ │ │ │ ├── kustomization.yaml │ │ │ └── manager.yaml │ │ ├── manifests/ │ │ │ └── kustomization.yaml │ │ ├── network-policy/ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ └── kustomization.yaml │ │ ├── prometheus/ │ │ │ ├── kustomization.yaml │ │ │ ├── monitor.yaml │ │ │ └── monitor_tls_patch.yaml │ │ ├── rbac/ │ │ │ ├── batchsandbox_admin_role.yaml │ │ │ ├── batchsandbox_editor_role.yaml │ │ │ ├── batchsandbox_viewer_role.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── leader_election_role.yaml │ │ │ ├── leader_election_role_binding.yaml │ │ │ ├── metrics_auth_role.yaml │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ ├── metrics_reader_role.yaml │ │ │ ├── pool_admin_role.yaml │ │ │ ├── pool_editor_role.yaml │ │ │ ├── pool_viewer_role.yaml │ │ │ ├── role.yaml │ │ │ ├── role_binding.yaml │ │ │ └── service_account.yaml │ │ ├── samples/ │ │ │ ├── kustomization.yaml │ │ │ ├── sandbox_v1alpha1_batchsandbox-with-task.yaml │ │ │ ├── sandbox_v1alpha1_batchsandbox.yaml │ │ │ ├── sandbox_v1alpha1_pool.yaml │ │ │ └── sandbox_v1alpha1_pooled_batchsandbox.yaml │ │ └── scorecard/ │ │ ├── bases/ │ │ │ └── config.yaml │ │ ├── kustomization.yaml │ │ └── patches/ │ │ ├── basic.config.yaml │ │ └── olm.config.yaml │ ├── docs/ │ │ ├── BUILD-IMAGES.md │ │ ├── HELM-DEPLOYMENT.md │ │ └── logging.md │ ├── examples/ │ │ ├── controller/ │ │ │ ├── README-ZH.md │ │ │ ├── README.md │ │ │ └── main.go │ │ └── task-executor/ │ │ ├── README.md │ │ ├── README_zh-CN.md │ │ └── main.go │ ├── go.mod │ ├── go.sum │ ├── hack/ │ │ ├── boilerplate.go.txt │ │ ├── debug-task.sh │ │ ├── pool-perf.py │ │ └── update-codegen.sh │ ├── internal/ │ │ ├── controller/ │ │ │ ├── allocator.go │ │ │ ├── allocator_mock.go │ │ │ ├── allocator_test.go │ │ │ ├── apis.go │ │ │ ├── batchsandbox_controller.go │ │ │ ├── batchsandbox_controller_test.go │ │ │ ├── pool_controller.go │ │ │ ├── pool_controller_test.go │ │ │ ├── strategy/ │ │ │ │ ├── pool_strategy.go │ │ │ │ ├── pool_strategy_default.go │ │ │ │ ├── pool_strategy_factory.go │ │ │ │ ├── pool_strategy_test.go │ │ │ │ ├── task_scheduling_strategy.go │ │ │ │ ├── task_scheduling_strategy_default.go │ │ │ │ ├── task_scheduling_strategy_default_test.go │ │ │ │ └── task_scheduling_strategy_factory.go │ │ │ └── suite_test.go │ │ ├── scheduler/ │ │ │ ├── default_scheduler.go │ │ │ ├── default_scheduler_mock.go │ │ │ ├── default_scheduler_test.go │ │ │ ├── interface.go │ │ │ ├── mock/ │ │ │ │ ├── interface.go │ │ │ │ └── types.go │ │ │ ├── recovery.go │ │ │ ├── recovery_test.go │ │ │ ├── status_collector.go │ │ │ ├── status_collector_mock.go │ │ │ └── types.go │ │ ├── task-executor/ │ │ │ ├── config/ │ │ │ │ └── config.go │ │ │ ├── manager/ │ │ │ │ ├── interface.go │ │ │ │ ├── task_manager.go │ │ │ │ └── task_manager_test.go │ │ │ ├── runtime/ │ │ │ │ ├── composite.go │ │ │ │ ├── container.go │ │ │ │ ├── interface.go │ │ │ │ ├── process.go │ │ │ │ └── process_test.go │ │ │ ├── server/ │ │ │ │ ├── handler.go │ │ │ │ ├── handler_test.go │ │ │ │ └── router.go │ │ │ ├── storage/ │ │ │ │ ├── file_store.go │ │ │ │ ├── file_store_test.go │ │ │ │ └── interface.go │ │ │ ├── types/ │ │ │ │ └── task.go │ │ │ └── utils/ │ │ │ ├── pathutil.go │ │ │ └── pathutil_test.go │ │ └── utils/ │ │ ├── controller/ │ │ │ └── util.go │ │ ├── expectations/ │ │ │ ├── init.go │ │ │ ├── resource_version_expectation.go │ │ │ ├── resource_version_expectation_test.go │ │ │ ├── scale_expectations.go │ │ │ └── scale_expectations_test.go │ │ ├── fieldindex/ │ │ │ └── register.go │ │ ├── finalizer.go │ │ ├── helper.go │ │ ├── json.go │ │ ├── logging/ │ │ │ └── logger.go │ │ ├── pod.go │ │ ├── pod_test.go │ │ └── requeueduration/ │ │ └── duration.go │ ├── pkg/ │ │ ├── client/ │ │ │ ├── clientset/ │ │ │ │ └── versioned/ │ │ │ │ ├── clientset.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── clientset_generated.go │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ ├── scheme/ │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ └── typed/ │ │ │ │ └── sandbox/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── batchsandbox.go │ │ │ │ ├── doc.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake_batchsandbox.go │ │ │ │ │ ├── fake_pool.go │ │ │ │ │ └── fake_sandbox_client.go │ │ │ │ ├── generated_expansion.go │ │ │ │ ├── pool.go │ │ │ │ └── sandbox_client.go │ │ │ ├── informers/ │ │ │ │ └── externalversions/ │ │ │ │ ├── factory.go │ │ │ │ ├── generic.go │ │ │ │ ├── internalinterfaces/ │ │ │ │ │ └── factory_interfaces.go │ │ │ │ └── sandbox/ │ │ │ │ ├── interface.go │ │ │ │ └── v1alpha1/ │ │ │ │ ├── batchsandbox.go │ │ │ │ ├── interface.go │ │ │ │ └── pool.go │ │ │ └── listers/ │ │ │ └── sandbox/ │ │ │ └── v1alpha1/ │ │ │ ├── batchsandbox.go │ │ │ ├── expansion_generated.go │ │ │ └── pool.go │ │ ├── task-executor/ │ │ │ ├── client.go │ │ │ └── types.go │ │ └── utils/ │ │ ├── endpoints.go │ │ └── endpoints_test.go │ └── test/ │ ├── e2e/ │ │ ├── e2e_suite_test.go │ │ ├── e2e_test.go │ │ └── testdata/ │ │ ├── batchsandbox-non-pooled-expire.yaml │ │ ├── batchsandbox-non-pooled.yaml │ │ ├── batchsandbox-pooled-no-expire.yaml │ │ ├── batchsandbox-pooled.yaml │ │ ├── batchsandbox-with-process-task.yaml │ │ ├── pool-basic.yaml │ │ ├── pool-with-env.yaml │ │ ├── pool-with-task-executor.yaml │ │ └── runtimeclass/ │ │ └── gvisor.yaml │ ├── e2e_runtime/ │ │ └── gvisor/ │ │ ├── gvisor_test.go │ │ ├── suite_test.go │ │ └── testdata/ │ │ ├── gvisor.yaml.tmpl │ │ └── runtimeclass.yaml │ ├── e2e_task/ │ │ ├── suite_test.go │ │ └── task_e2e_test.go │ └── utils/ │ ├── image.go │ └── utils.go ├── oseps/ │ ├── 0001-fqdn-based-egress-control.md │ ├── 0002-kubernetes-sigs-agent-sandbox-support.md │ ├── 0003-volume-and-volumebinding-support.md │ ├── 0004-secure-container-runtime.md │ ├── 0005-client-side-sandbox-pool.md │ ├── 0006-developer-console.md │ ├── 0007-fast-sandbox-runtime-support.md │ ├── 0008-pause-resume-rootfs-snapshot.md │ ├── 0009-auto-renew-sandbox-on-ingress-access.md │ ├── 0010-opentelemetry-instrumentation.md │ ├── CONTRIBUTING.md │ ├── README.md │ ├── init-osep.sh │ └── osep-template.md.template ├── sandboxes/ │ └── code-interpreter/ │ ├── Dockerfile │ ├── Dockerfile_base │ ├── README.md │ ├── README_zh.md │ ├── build.sh │ └── scripts/ │ ├── code-interpreter-env.sh │ ├── code-interpreter.sh │ └── jupyter_notebook_config.py ├── scripts/ │ ├── add-license.sh │ ├── bump-component-version.sh │ ├── csharp-e2e.sh │ ├── java-e2e.sh │ ├── javascript-e2e.sh │ ├── python-e2e.sh │ ├── spec-doc/ │ │ ├── generate-spec.js │ │ └── index.html │ └── verify-license.sh ├── sdks/ │ ├── Directory.Build.props │ ├── code-interpreter/ │ │ ├── csharp/ │ │ │ ├── OpenSandbox.CodeInterpreter.sln │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── src/ │ │ │ │ └── OpenSandbox.CodeInterpreter/ │ │ │ │ ├── Adapters/ │ │ │ │ │ └── CodesAdapter.cs │ │ │ │ ├── CodeInterpreter.cs │ │ │ │ ├── Factory/ │ │ │ │ │ ├── DefaultCodeInterpreterAdapterFactory.cs │ │ │ │ │ └── ICodeInterpreterAdapterFactory.cs │ │ │ │ ├── Models/ │ │ │ │ │ └── CodeModels.cs │ │ │ │ ├── OpenSandbox.CodeInterpreter.csproj │ │ │ │ └── Services/ │ │ │ │ └── ICodes.cs │ │ │ └── tests/ │ │ │ └── OpenSandbox.CodeInterpreter.Tests/ │ │ │ ├── CodeInterpreterTests.cs │ │ │ ├── CodesAdapterTests.cs │ │ │ ├── FactoryTests.cs │ │ │ ├── ModelsTests.cs │ │ │ └── OpenSandbox.CodeInterpreter.Tests.csproj │ │ ├── javascript/ │ │ │ ├── .nvmrc │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── eslint.config.mjs │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── adapters/ │ │ │ │ │ ├── codesAdapter.ts │ │ │ │ │ ├── openapiError.ts │ │ │ │ │ └── sse.ts │ │ │ │ ├── factory/ │ │ │ │ │ ├── adapterFactory.ts │ │ │ │ │ └── defaultAdapterFactory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interpreter.ts │ │ │ │ ├── models.ts │ │ │ │ └── services/ │ │ │ │ └── codes.ts │ │ │ ├── tests/ │ │ │ │ ├── defaultAdapterFactory.headers.test.mjs │ │ │ │ └── interpreter.headers.test.mjs │ │ │ ├── tsconfig.json │ │ │ └── tsup.config.ts │ │ ├── kotlin/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── build.gradle.kts │ │ │ ├── code-interpreter/ │ │ │ │ ├── build.gradle.kts │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alibaba/ │ │ │ │ │ └── opensandbox/ │ │ │ │ │ └── codeinterpreter/ │ │ │ │ │ ├── CodeInterpreter.kt │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ └── execd/ │ │ │ │ │ │ │ └── executions/ │ │ │ │ │ │ │ └── CodeModels.kt │ │ │ │ │ │ └── services/ │ │ │ │ │ │ └── Codes.kt │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── adapters/ │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ └── CodeExecutionConverter.kt │ │ │ │ │ │ └── service/ │ │ │ │ │ │ └── CodesAdapter.kt │ │ │ │ │ └── factory/ │ │ │ │ │ └── AdapterFactory.kt │ │ │ │ └── test/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── opensandbox/ │ │ │ │ └── codeinterpreter/ │ │ │ │ ├── CodeInterpreterTest.kt │ │ │ │ └── infrastructure/ │ │ │ │ └── adapters/ │ │ │ │ └── service/ │ │ │ │ └── CodesAdapterTest.kt │ │ │ ├── code-interpreter-bom/ │ │ │ │ └── build.gradle.kts │ │ │ ├── gradle/ │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ └── settings.gradle.kts │ │ └── python/ │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── pyproject.toml │ │ ├── src/ │ │ │ └── code_interpreter/ │ │ │ ├── __init__.py │ │ │ ├── adapters/ │ │ │ │ ├── __init__.py │ │ │ │ ├── code_adapter.py │ │ │ │ ├── converter/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── code_execution_converter.py │ │ │ │ └── factory.py │ │ │ ├── code_interpreter.py │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ ├── code.py │ │ │ │ └── code_sync.py │ │ │ ├── py.typed │ │ │ ├── services/ │ │ │ │ ├── __init__.py │ │ │ │ └── code.py │ │ │ └── sync/ │ │ │ ├── __init__.py │ │ │ ├── adapters/ │ │ │ │ ├── __init__.py │ │ │ │ ├── code_adapter.py │ │ │ │ └── factory.py │ │ │ ├── code_interpreter.py │ │ │ └── services/ │ │ │ ├── __init__.py │ │ │ └── code.py │ │ └── tests/ │ │ ├── test_adapter_eager_init.py │ │ ├── test_code_interpreter_create_and_delegation.py │ │ ├── test_code_service_adapter_openapi_calls.py │ │ └── test_code_service_adapter_streaming.py │ ├── eslint.base.mjs │ ├── mcp/ │ │ └── sandbox/ │ │ └── python/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── pyproject.toml │ │ └── src/ │ │ └── opensandbox_mcp/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── py.typed │ │ └── server.py │ ├── package.json │ ├── pnpm-workspace.yaml │ ├── sandbox/ │ │ ├── csharp/ │ │ │ ├── .editorconfig │ │ │ ├── Directory.Build.props │ │ │ ├── OpenSandbox.sln │ │ │ ├── OpenSandbox.sln.DotSettings.user │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── src/ │ │ │ │ └── OpenSandbox/ │ │ │ │ ├── Adapters/ │ │ │ │ │ ├── CommandsAdapter.cs │ │ │ │ │ ├── EgressAdapter.cs │ │ │ │ │ ├── FilesystemAdapter.cs │ │ │ │ │ ├── HealthAdapter.cs │ │ │ │ │ ├── MetricsAdapter.cs │ │ │ │ │ ├── SandboxesAdapter.cs │ │ │ │ │ └── SseParser.cs │ │ │ │ ├── Config/ │ │ │ │ │ ├── ConnectionConfig.cs │ │ │ │ │ └── DiagnosticsOptions.cs │ │ │ │ ├── Core/ │ │ │ │ │ ├── Constants.cs │ │ │ │ │ └── Exceptions.cs │ │ │ │ ├── Factory/ │ │ │ │ │ ├── DefaultAdapterFactory.cs │ │ │ │ │ └── IAdapterFactory.cs │ │ │ │ ├── HttpClientProvider.cs │ │ │ │ ├── Internal/ │ │ │ │ │ ├── ExecutionEventDispatcher.cs │ │ │ │ │ └── HttpClientWrapper.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── Execd.cs │ │ │ │ │ ├── Execution.cs │ │ │ │ │ ├── Filesystem.cs │ │ │ │ │ └── Sandboxes.cs │ │ │ │ ├── OpenSandbox.csproj │ │ │ │ ├── Options.cs │ │ │ │ ├── Sandbox.cs │ │ │ │ ├── SandboxManager.cs │ │ │ │ └── Services/ │ │ │ │ ├── IEgress.cs │ │ │ │ ├── IExecdCommands.cs │ │ │ │ ├── IExecdHealth.cs │ │ │ │ ├── IExecdMetrics.cs │ │ │ │ ├── ISandboxFiles.cs │ │ │ │ └── ISandboxes.cs │ │ │ └── tests/ │ │ │ └── OpenSandbox.Tests/ │ │ │ ├── CommandsAdapterTests.cs │ │ │ ├── ConnectionConfigTests.cs │ │ │ ├── ConstantsTests.cs │ │ │ ├── ExceptionTests.cs │ │ │ ├── ModelsTests.cs │ │ │ ├── OpenSandbox.Tests.csproj │ │ │ ├── OptionsTests.cs │ │ │ ├── SandboxEgressLifecycleTests.cs │ │ │ ├── SandboxReadinessDiagnosticsTests.cs │ │ │ ├── SandboxesAdapterTests.cs │ │ │ └── SseParserTests.cs │ │ ├── javascript/ │ │ │ ├── .nvmrc │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── eslint.config.mjs │ │ │ ├── package.json │ │ │ ├── scripts/ │ │ │ │ └── generate-api.mjs │ │ │ ├── src/ │ │ │ │ ├── adapters/ │ │ │ │ │ ├── commandsAdapter.ts │ │ │ │ │ ├── egressAdapter.ts │ │ │ │ │ ├── filesystemAdapter.ts │ │ │ │ │ ├── healthAdapter.ts │ │ │ │ │ ├── metricsAdapter.ts │ │ │ │ │ ├── openapiError.ts │ │ │ │ │ ├── sandboxesAdapter.ts │ │ │ │ │ └── sse.ts │ │ │ │ ├── api/ │ │ │ │ │ ├── egress.ts │ │ │ │ │ ├── execd.ts │ │ │ │ │ └── lifecycle.ts │ │ │ │ ├── config/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── core/ │ │ │ │ │ ├── constants.ts │ │ │ │ │ └── exceptions.ts │ │ │ │ ├── factory/ │ │ │ │ │ ├── adapterFactory.ts │ │ │ │ │ └── defaultAdapterFactory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── internal.ts │ │ │ │ ├── manager.ts │ │ │ │ ├── models/ │ │ │ │ │ ├── execd.ts │ │ │ │ │ ├── execution.ts │ │ │ │ │ ├── executionEventDispatcher.ts │ │ │ │ │ ├── filesystem.ts │ │ │ │ │ └── sandboxes.ts │ │ │ │ ├── openapi/ │ │ │ │ │ ├── egressClient.ts │ │ │ │ │ ├── execdClient.ts │ │ │ │ │ └── lifecycleClient.ts │ │ │ │ ├── sandbox.ts │ │ │ │ └── services/ │ │ │ │ ├── egress.ts │ │ │ │ ├── execdCommands.ts │ │ │ │ ├── execdHealth.ts │ │ │ │ ├── execdMetrics.ts │ │ │ │ ├── filesystem.ts │ │ │ │ └── sandboxes.ts │ │ │ ├── tests/ │ │ │ │ └── sandbox.create.test.mjs │ │ │ ├── tsconfig.json │ │ │ └── tsup.config.ts │ │ ├── kotlin/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── README_zh.md │ │ │ ├── build.gradle.kts │ │ │ ├── gradle/ │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── sandbox/ │ │ │ │ ├── Module.md │ │ │ │ ├── build.gradle.kts │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── alibaba/ │ │ │ │ │ └── opensandbox/ │ │ │ │ │ └── sandbox/ │ │ │ │ │ ├── HttpClientProvider.kt │ │ │ │ │ ├── Sandbox.kt │ │ │ │ │ ├── SandboxManager.kt │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── ConnectionConfig.kt │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── exceptions/ │ │ │ │ │ │ │ └── SandboxException.kt │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ ├── execd/ │ │ │ │ │ │ │ │ ├── Constants.kt │ │ │ │ │ │ │ │ ├── executions/ │ │ │ │ │ │ │ │ │ ├── CommandModels.kt │ │ │ │ │ │ │ │ │ ├── ExecutionModels.kt │ │ │ │ │ │ │ │ │ └── RunCommandRequest.kt │ │ │ │ │ │ │ │ └── filesystem/ │ │ │ │ │ │ │ │ └── FilesystemModels.kt │ │ │ │ │ │ │ └── sandboxes/ │ │ │ │ │ │ │ └── SandboxModels.kt │ │ │ │ │ │ └── services/ │ │ │ │ │ │ ├── Commands.kt │ │ │ │ │ │ ├── Egress.kt │ │ │ │ │ │ ├── Filesystem.kt │ │ │ │ │ │ ├── Health.kt │ │ │ │ │ │ ├── Metrics.kt │ │ │ │ │ │ └── Sandboxes.kt │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── adapters/ │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ ├── ExceptionConverter.kt │ │ │ │ │ │ │ ├── ExecutionConverter.kt │ │ │ │ │ │ │ ├── ExecutionEventDispatcher.kt │ │ │ │ │ │ │ ├── FilesystemConverter.kt │ │ │ │ │ │ │ ├── SandboxModelConverter.kt │ │ │ │ │ │ │ └── Serializer.kt │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── CommandsAdapter.kt │ │ │ │ │ │ ├── EgressAdapter.kt │ │ │ │ │ │ ├── FilesystemAdapter.kt │ │ │ │ │ │ ├── HealthAdapter.kt │ │ │ │ │ │ ├── MetricsAdapter.kt │ │ │ │ │ │ └── SandboxesAdapter.kt │ │ │ │ │ └── factory/ │ │ │ │ │ └── AdapterFactory.kt │ │ │ │ └── test/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── opensandbox/ │ │ │ │ └── sandbox/ │ │ │ │ ├── SandboxManagerTest.kt │ │ │ │ ├── SandboxTest.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── exceptions/ │ │ │ │ │ │ └── SandboxExceptionCompatibilityTest.kt │ │ │ │ │ └── models/ │ │ │ │ │ └── VolumeModelsTest.kt │ │ │ │ └── infrastructure/ │ │ │ │ └── adapters/ │ │ │ │ └── service/ │ │ │ │ ├── CommandsAdapterTest.kt │ │ │ │ └── SandboxesAdapterTest.kt │ │ │ ├── sandbox-api/ │ │ │ │ ├── build.gradle.kts │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── opensandbox/ │ │ │ │ └── sandbox/ │ │ │ │ └── api/ │ │ │ │ ├── models/ │ │ │ │ │ └── execd/ │ │ │ │ │ └── ExecutionModels.kt │ │ │ │ └── openapitools.json │ │ │ ├── sandbox-bom/ │ │ │ │ └── build.gradle.kts │ │ │ └── settings.gradle.kts │ │ └── python/ │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── pyproject.toml │ │ ├── scripts/ │ │ │ ├── generate_api.py │ │ │ ├── openapi_egress_config.yaml │ │ │ ├── openapi_execd_config.yaml │ │ │ └── openapi_lifecycle_config.yaml │ │ ├── src/ │ │ │ └── opensandbox/ │ │ │ ├── __init__.py │ │ │ ├── adapters/ │ │ │ │ ├── __init__.py │ │ │ │ ├── command_adapter.py │ │ │ │ ├── converter/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── command_model_converter.py │ │ │ │ │ ├── event_node.py │ │ │ │ │ ├── exception_converter.py │ │ │ │ │ ├── execution_converter.py │ │ │ │ │ ├── execution_event_dispatcher.py │ │ │ │ │ ├── filesystem_model_converter.py │ │ │ │ │ ├── metrics_model_converter.py │ │ │ │ │ ├── response_handler.py │ │ │ │ │ └── sandbox_model_converter.py │ │ │ │ ├── egress_adapter.py │ │ │ │ ├── factory.py │ │ │ │ ├── filesystem_adapter.py │ │ │ │ ├── health_adapter.py │ │ │ │ ├── metrics_adapter.py │ │ │ │ └── sandboxes_adapter.py │ │ │ ├── api/ │ │ │ │ ├── __init__.py │ │ │ │ ├── egress/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── policy/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── get_policy.py │ │ │ │ │ │ └── patch_policy.py │ │ │ │ │ ├── client.py │ │ │ │ │ ├── errors.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── network_policy.py │ │ │ │ │ │ ├── network_policy_default_action.py │ │ │ │ │ │ ├── network_rule.py │ │ │ │ │ │ ├── network_rule_action.py │ │ │ │ │ │ └── policy_status_response.py │ │ │ │ │ ├── py.typed │ │ │ │ │ └── types.py │ │ │ │ ├── execd/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── code_interpreting/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── create_code_context.py │ │ │ │ │ │ │ ├── delete_context.py │ │ │ │ │ │ │ ├── delete_contexts_by_language.py │ │ │ │ │ │ │ ├── get_context.py │ │ │ │ │ │ │ ├── interrupt_code.py │ │ │ │ │ │ │ ├── list_contexts.py │ │ │ │ │ │ │ └── run_code.py │ │ │ │ │ │ ├── command/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── get_background_command_logs.py │ │ │ │ │ │ │ ├── get_command_status.py │ │ │ │ │ │ │ ├── interrupt_command.py │ │ │ │ │ │ │ └── run_command.py │ │ │ │ │ │ ├── filesystem/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── chmod_files.py │ │ │ │ │ │ │ ├── download_file.py │ │ │ │ │ │ │ ├── get_files_info.py │ │ │ │ │ │ │ ├── make_dirs.py │ │ │ │ │ │ │ ├── remove_dirs.py │ │ │ │ │ │ │ ├── remove_files.py │ │ │ │ │ │ │ ├── rename_files.py │ │ │ │ │ │ │ ├── replace_content.py │ │ │ │ │ │ │ ├── search_files.py │ │ │ │ │ │ │ └── upload_file.py │ │ │ │ │ │ ├── health/ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── ping.py │ │ │ │ │ │ └── metric/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── get_metrics.py │ │ │ │ │ │ └── watch_metrics.py │ │ │ │ │ ├── client.py │ │ │ │ │ ├── errors.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── chmod_files_body.py │ │ │ │ │ │ ├── code_context.py │ │ │ │ │ │ ├── code_context_request.py │ │ │ │ │ │ ├── command_status_response.py │ │ │ │ │ │ ├── error_response.py │ │ │ │ │ │ ├── file_info.py │ │ │ │ │ │ ├── file_metadata.py │ │ │ │ │ │ ├── get_files_info_response_200.py │ │ │ │ │ │ ├── make_dirs_body.py │ │ │ │ │ │ ├── metrics.py │ │ │ │ │ │ ├── permission.py │ │ │ │ │ │ ├── rename_file_item.py │ │ │ │ │ │ ├── replace_content_body.py │ │ │ │ │ │ ├── replace_file_content_item.py │ │ │ │ │ │ ├── run_code_request.py │ │ │ │ │ │ ├── run_command_request.py │ │ │ │ │ │ ├── run_command_request_envs.py │ │ │ │ │ │ ├── server_stream_event.py │ │ │ │ │ │ ├── server_stream_event_error.py │ │ │ │ │ │ ├── server_stream_event_results.py │ │ │ │ │ │ ├── server_stream_event_type.py │ │ │ │ │ │ └── upload_file_body.py │ │ │ │ │ ├── py.typed │ │ │ │ │ └── types.py │ │ │ │ └── lifecycle/ │ │ │ │ ├── __init__.py │ │ │ │ ├── api/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── sandboxes/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── delete_sandboxes_sandbox_id.py │ │ │ │ │ ├── get_sandboxes.py │ │ │ │ │ ├── get_sandboxes_sandbox_id.py │ │ │ │ │ ├── get_sandboxes_sandbox_id_endpoints_port.py │ │ │ │ │ ├── post_sandboxes.py │ │ │ │ │ ├── post_sandboxes_sandbox_id_pause.py │ │ │ │ │ ├── post_sandboxes_sandbox_id_renew_expiration.py │ │ │ │ │ └── post_sandboxes_sandbox_id_resume.py │ │ │ │ ├── client.py │ │ │ │ ├── errors.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── create_sandbox_request.py │ │ │ │ │ ├── create_sandbox_request_env.py │ │ │ │ │ ├── create_sandbox_request_extensions.py │ │ │ │ │ ├── create_sandbox_request_metadata.py │ │ │ │ │ ├── create_sandbox_response.py │ │ │ │ │ ├── create_sandbox_response_metadata.py │ │ │ │ │ ├── endpoint.py │ │ │ │ │ ├── endpoint_headers.py │ │ │ │ │ ├── error_response.py │ │ │ │ │ ├── host.py │ │ │ │ │ ├── image_spec.py │ │ │ │ │ ├── image_spec_auth.py │ │ │ │ │ ├── list_sandboxes_response.py │ │ │ │ │ ├── network_policy.py │ │ │ │ │ ├── network_policy_default_action.py │ │ │ │ │ ├── network_rule.py │ │ │ │ │ ├── network_rule_action.py │ │ │ │ │ ├── ossfs.py │ │ │ │ │ ├── ossfs_version.py │ │ │ │ │ ├── pagination_info.py │ │ │ │ │ ├── pvc.py │ │ │ │ │ ├── renew_sandbox_expiration_request.py │ │ │ │ │ ├── renew_sandbox_expiration_response.py │ │ │ │ │ ├── resource_limits.py │ │ │ │ │ ├── sandbox.py │ │ │ │ │ ├── sandbox_metadata.py │ │ │ │ │ ├── sandbox_status.py │ │ │ │ │ └── volume.py │ │ │ │ ├── py.typed │ │ │ │ └── types.py │ │ │ ├── config/ │ │ │ │ ├── __init__.py │ │ │ │ ├── connection.py │ │ │ │ └── connection_sync.py │ │ │ ├── constants.py │ │ │ ├── exceptions/ │ │ │ │ ├── __init__.py │ │ │ │ └── sandbox.py │ │ │ ├── manager.py │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ ├── execd.py │ │ │ │ ├── execd_sync.py │ │ │ │ ├── filesystem.py │ │ │ │ └── sandboxes.py │ │ │ ├── py.typed │ │ │ ├── sandbox.py │ │ │ ├── services/ │ │ │ │ ├── __init__.py │ │ │ │ ├── command.py │ │ │ │ ├── egress.py │ │ │ │ ├── filesystem.py │ │ │ │ ├── health.py │ │ │ │ ├── metrics.py │ │ │ │ └── sandbox.py │ │ │ └── sync/ │ │ │ ├── __init__.py │ │ │ ├── adapters/ │ │ │ │ ├── __init__.py │ │ │ │ ├── command_adapter.py │ │ │ │ ├── converter/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── execution_event_dispatcher.py │ │ │ │ ├── egress_adapter.py │ │ │ │ ├── factory.py │ │ │ │ ├── filesystem_adapter.py │ │ │ │ ├── health_adapter.py │ │ │ │ ├── metrics_adapter.py │ │ │ │ └── sandboxes_adapter.py │ │ │ ├── manager.py │ │ │ ├── sandbox.py │ │ │ └── services/ │ │ │ ├── __init__.py │ │ │ ├── command.py │ │ │ ├── egress.py │ │ │ ├── filesystem.py │ │ │ ├── health.py │ │ │ ├── metrics.py │ │ │ └── sandbox.py │ │ └── tests/ │ │ ├── test_adapters_eager_init.py │ │ ├── test_command_service_adapter_streaming.py │ │ ├── test_command_service_sse_client_config.py │ │ ├── test_connection_config.py │ │ ├── test_connection_config_env_and_timeout.py │ │ ├── test_converters_and_error_handling.py │ │ ├── test_filesystem_search_error_handling.py │ │ ├── test_models_stability.py │ │ ├── test_sandbox_business_logic.py │ │ ├── test_sandbox_close_and_connect_validation.py │ │ ├── test_sandbox_manager_business_logic.py │ │ ├── test_sandbox_manager_sync_business_logic.py │ │ ├── test_sandbox_service_adapter_lifecycle.py │ │ └── test_sandbox_sync_business_logic.py │ └── tsconfig.base.json ├── server/ │ ├── .python-version │ ├── DEVELOPMENT.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── README_zh.md │ ├── TROUBLESHOOTING.md │ ├── TROUBLESHOOTING_zh.md │ ├── build.sh │ ├── docker-compose.example.yaml │ ├── example.batchsandbox-template.yaml │ ├── example.config.k8s.toml │ ├── example.config.k8s.zh.toml │ ├── example.config.toml │ ├── example.config.zh.toml │ ├── pyproject.toml │ ├── src/ │ │ ├── __init__.py │ │ ├── api/ │ │ │ ├── __init__.py │ │ │ ├── lifecycle.py │ │ │ └── schema.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── main.py │ │ ├── middleware/ │ │ │ ├── __init__.py │ │ │ ├── auth.py │ │ │ └── request_id.py │ │ ├── py.typed │ │ └── services/ │ │ ├── __init__.py │ │ ├── constants.py │ │ ├── docker.py │ │ ├── endpoint_auth.py │ │ ├── factory.py │ │ ├── helpers.py │ │ ├── k8s/ │ │ │ ├── __init__.py │ │ │ ├── agent_sandbox_provider.py │ │ │ ├── agent_sandbox_template.py │ │ │ ├── batchsandbox_provider.py │ │ │ ├── batchsandbox_template.py │ │ │ ├── client.py │ │ │ ├── egress_helper.py │ │ │ ├── image_pull_secret_helper.py │ │ │ ├── informer.py │ │ │ ├── kubernetes_service.py │ │ │ ├── provider_factory.py │ │ │ ├── rate_limiter.py │ │ │ ├── security_context.py │ │ │ ├── template_manager.py │ │ │ ├── volume_helper.py │ │ │ └── workload_provider.py │ │ ├── ossfs_mixin.py │ │ ├── runtime_resolver.py │ │ ├── sandbox_service.py │ │ └── validators.py │ └── tests/ │ ├── __init__.py │ ├── conftest.py │ ├── k8s/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── fixtures/ │ │ │ ├── __init__.py │ │ │ └── k8s_fixtures.py │ │ ├── test_agent_sandbox_provider.py │ │ ├── test_agent_sandbox_template.py │ │ ├── test_batchsandbox_provider.py │ │ ├── test_batchsandbox_template.py │ │ ├── test_egress_helper.py │ │ ├── test_image_pull_secret_helper.py │ │ ├── test_informer.py │ │ ├── test_k8s_client.py │ │ ├── test_kubernetes_service.py │ │ ├── test_provider_factory.py │ │ └── test_rate_limiter.py │ ├── smoke.sh │ ├── test_agent_sandbox_service.py │ ├── test_auth_middleware.py │ ├── test_config.py │ ├── test_docker_endpoint.py │ ├── test_docker_path_fix.py │ ├── test_docker_service.py │ ├── test_endpoint.py │ ├── test_endpoint_auth.py │ ├── test_helpers.py │ ├── test_ingress.py │ ├── test_routes.py │ ├── test_routes_create_delete.py │ ├── test_routes_endpoint_behavior.py │ ├── test_routes_get_sandbox.py │ ├── test_routes_list_sandboxes.py │ ├── test_routes_pause_resume.py │ ├── test_routes_proxy.py │ ├── test_routes_renew_expiration.py │ ├── test_schema.py │ ├── test_validators.py │ └── testdata/ │ ├── config.toml │ └── k8s_config.toml ├── specs/ │ ├── README.md │ ├── README_zh.md │ ├── egress-api.yaml │ ├── execd-api.yaml │ └── sandbox-lifecycle.yml └── tests/ ├── csharp/ │ └── OpenSandbox.E2ETests/ │ ├── CodeInterpreterE2ETests.cs │ ├── E2ETestFixture.cs │ ├── OpenSandbox.E2ETests.csproj │ ├── SandboxE2ETests.cs │ └── SandboxManagerE2ETests.cs ├── java/ │ ├── build.gradle.kts │ ├── gradle/ │ │ ├── libs.versions.toml │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── settings.gradle.kts │ └── src/ │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── opensandbox/ │ │ └── e2e/ │ │ ├── BaseE2ETest.java │ │ ├── CodeInterpreterE2ETest.java │ │ ├── SandboxE2ETest.java │ │ └── SandboxManagerE2ETest.java │ └── resources/ │ └── test.properties ├── javascript/ │ ├── README.md │ ├── eslint.config.mjs │ ├── package.json │ ├── tests/ │ │ ├── base_e2e.ts │ │ ├── test_code_interpreter_e2e.test.ts │ │ ├── test_sandbox_e2e.test.ts │ │ ├── test_sandbox_manager_e2e.test.ts │ │ └── test_wait_until_ready_diagnostics.test.ts │ ├── tsconfig.json │ └── vitest.config.ts └── python/ ├── Makefile ├── README.md ├── pyproject.toml └── tests/ ├── __init__.py ├── base_e2e_test.py ├── test_code_interpreter_e2e.py ├── test_code_interpreter_e2e_sync.py ├── test_sandbox_e2e.py ├── test_sandbox_e2e_sync.py ├── test_sandbox_manager_e2e.py └── test_sandbox_manager_e2e_sync.py