agentengine-sdk-python 0.8.0__py3-none-any.whl → 0.8.2__py3-none-any.whl
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.
- {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/METADATA +43 -7
- agentengine_sdk_python-0.8.2.dist-info/RECORD +778 -0
- {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/WHEEL +1 -1
- ksadk/a2a/__init__.py +2 -0
- ksadk/a2a/_space_client_events.py +381 -0
- ksadk/a2a/bootstrap.py +0 -2
- ksadk/a2a/card.py +6 -111
- ksadk/a2a/control_plane.py +239 -1
- ksadk/a2a/event_adapter.py +156 -64
- ksadk/a2a/executor.py +195 -172
- ksadk/a2a/routes.py +12 -5
- ksadk/a2a/server.py +1 -8
- ksadk/a2a/service_env.py +33 -0
- ksadk/a2a/space_client.py +43 -349
- ksadk/a2a_card.py +101 -0
- ksadk/a2ui/core.py +222 -53
- ksadk/agui/_agent_helpers.py +243 -0
- ksadk/agui/a2ui_projection.py +12 -5
- ksadk/agui/agent.py +474 -275
- ksadk/agui/config.py +11 -5
- ksadk/agui/routes.py +7 -15
- ksadk/api/client.py +530 -40
- ksadk/api/environment.py +27 -0
- ksadk/builders/code_builder.py +352 -53
- ksadk/builders/container_builder.py +71 -44
- ksadk/builders/framework_requirements.py +2 -1
- ksadk/builders/ks3_uploader.py +2 -2
- ksadk/builders/managed_runtime_builder.py +60 -28
- ksadk/cli/__init__.py +25 -0
- ksadk/cli/cmd_a2a.py +18 -31
- ksadk/cli/cmd_create.py +13 -26
- ksadk/cli/cmd_dashboard.py +15 -1
- ksadk/cli/cmd_deploy.py +28 -3
- ksadk/cli/cmd_eval.py +443 -0
- ksadk/cli/cmd_evalset.py +284 -0
- ksadk/cli/cmd_files.py +5 -1
- ksadk/cli/cmd_hermes.py +137 -163
- ksadk/cli/cmd_invoke.py +28 -38
- ksadk/cli/cmd_launch.py +12 -0
- ksadk/cli/cmd_managed_runtime.py +95 -0
- ksadk/cli/cmd_observe.py +85 -0
- ksadk/cli/cmd_openclaw.py +85 -479
- ksadk/cli/cmd_replay.py +28 -4
- ksadk/cli/cmd_run.py +29 -67
- ksadk/cli/cmd_studio.py +201 -0
- ksadk/cli/cmd_web.py +15 -6
- ksadk/cli/dry_run.py +2 -1
- ksadk/cli/env_options.py +83 -0
- ksadk/cli/global_options.py +3 -1
- ksadk/cli/hermes_env.py +151 -0
- ksadk/cli/invoke_payload.py +49 -0
- ksadk/cli/network_options.py +7 -5
- ksadk/cli/openclaw_env.py +458 -0
- ksadk/cli/runtime_bootstrap.py +51 -0
- ksadk/cli/ui.py +6 -0
- ksadk/cli/workflow_common.py +5 -5
- ksadk/codex/__init__.py +3 -3
- ksadk/codex/client.py +833 -49
- ksadk/codex/phase.py +1 -1
- ksadk/codex/runtime.py +720 -127
- ksadk/common/kop_client.py +232 -0
- ksadk/configs/__init__.py +1 -3
- ksadk/configs/env_registry.py +244 -45
- ksadk/configs/env_registry_pcm.py +181 -0
- ksadk/configs/env_var_spec.py +18 -0
- ksadk/configs/global_config.py +6 -1
- ksadk/configs/settings.py +5 -108
- ksadk/context_engine/__init__.py +98 -0
- ksadk/context_engine/assembler.py +176 -0
- ksadk/context_engine/baseline.py +419 -0
- ksadk/context_engine/cache_observability.py +228 -0
- ksadk/context_engine/capabilities.py +443 -0
- ksadk/context_engine/contributors.py +344 -0
- ksadk/context_engine/hosted_pipeline.py +417 -0
- ksadk/context_engine/models.py +117 -0
- ksadk/context_engine/planner.py +698 -0
- ksadk/context_engine/policies.py +319 -0
- ksadk/context_engine/projection.py +31 -0
- ksadk/context_engine/shadow_plan.py +266 -0
- ksadk/context_engine/tokenizer.py +164 -0
- ksadk/conversations/__init__.py +85 -94
- ksadk/conversations/context.py +126 -6
- ksadk/conversations/message_projection.py +292 -28
- ksadk/conversations/model_context.py +49 -3
- ksadk/conversations/runtime_compaction.py +207 -5
- ksadk/conversations/runtime_input.py +193 -3
- ksadk/conversations/runtime_invocation.py +81 -3
- ksadk/conversations/runtime_observability.py +157 -4
- ksadk/conversations/runtime_payloads.py +42 -0
- ksadk/conversations/runtime_preparation.py +280 -2
- ksadk/conversations/runtime_resume.py +71 -32
- ksadk/conversations/runtime_stream_events.py +94 -9
- ksadk/conversations/runtime_streaming.py +175 -22
- ksadk/conversations/semantic_summary.py +311 -1
- ksadk/conversations/session_lock.py +51 -0
- ksadk/deployment/env_forward.py +72 -0
- ksadk/deployment/managed_runtime.py +38 -0
- ksadk/deployment/manager.py +24 -8
- ksadk/deployment/providers/serverless.py +228 -92
- ksadk/evaluation/__init__.py +116 -0
- ksadk/evaluation/a2a_adapter.py +452 -0
- ksadk/evaluation/adapters.py +67 -0
- ksadk/evaluation/agent_eval_client.py +395 -0
- ksadk/evaluation/cloud_binding.py +80 -0
- ksadk/evaluation/cloud_converter.py +194 -0
- ksadk/evaluation/cloud_service.py +199 -0
- ksadk/evaluation/contracts.py +478 -0
- ksadk/evaluation/evalset.py +351 -0
- ksadk/evaluation/evaluators.py +627 -0
- ksadk/evaluation/evidence.py +258 -0
- ksadk/evaluation/executor.py +143 -0
- ksadk/evaluation/local_adapter.py +550 -0
- ksadk/evaluation/service_env.py +27 -0
- ksadk/evaluation/storage.py +68 -0
- ksadk/evaluation/studio_build_adapter.py +253 -0
- ksadk/evaluation/target.py +82 -0
- ksadk/events/__init__.py +13 -13
- ksadk/events/_v1_compat/__init__.py +1 -0
- ksadk/events/_v1_compat/models.py +299 -0
- ksadk/events/_v1_compat/parser.py +247 -0
- ksadk/events/_v1_compat/projection.py +753 -0
- ksadk/events/adapters/__init__.py +34 -0
- ksadk/events/adapters/_a2a_snapshot.py +622 -0
- ksadk/events/adapters/_a2a_support.py +275 -0
- ksadk/events/adapters/_codex_interactions.py +375 -0
- ksadk/events/adapters/_codex_items.py +801 -0
- ksadk/events/adapters/_codex_validators.py +311 -0
- ksadk/events/adapters/_langgraph_support.py +785 -0
- ksadk/events/adapters/a2a.py +841 -0
- ksadk/events/adapters/adk.py +503 -0
- ksadk/events/adapters/codex.py +717 -0
- ksadk/events/adapters/langgraph.py +745 -0
- ksadk/events/canonical.py +440 -0
- ksadk/events/canonical_replay.py +497 -0
- ksadk/events/canonical_store.py +468 -0
- ksadk/events/cold_recovery.py +257 -0
- ksadk/events/content.py +89 -0
- ksadk/events/identity.py +86 -0
- ksadk/events/pipeline.py +455 -0
- ksadk/events/projections.py +66 -0
- ksadk/events/reducer.py +661 -0
- ksadk/events/replay.py +3 -36
- ksadk/events/runtime_event.py +20 -256
- ksadk/events/session_event.py +324 -0
- ksadk/events/store.py +3 -316
- ksadk/events/v1_compat.py +41 -0
- ksadk/harness/__init__.py +3 -2
- ksadk/harness/app.py +114 -123
- ksadk/harness/config.py +1 -1
- ksadk/harness/runtime.py +467 -0
- ksadk/hermes_terminal.py +5 -0
- ksadk/identity/resolver.py +4 -3
- ksadk/interaction/__init__.py +28 -0
- ksadk/interaction/contracts.py +136 -0
- ksadk/interaction/ledger.py +189 -0
- ksadk/interaction/provider.py +122 -0
- ksadk/interaction/providers/__init__.py +52 -0
- ksadk/interaction/providers/adk.py +40 -0
- ksadk/interaction/providers/codex.py +94 -0
- ksadk/interaction/providers/langgraph.py +58 -0
- ksadk/kernel/__init__.py +117 -0
- ksadk/kernel/authorization.py +258 -0
- ksadk/kernel/bootstrap.py +1074 -0
- ksadk/kernel/contract_fingerprints.py +61 -0
- ksadk/kernel/contracts.py +362 -0
- ksadk/kernel/control.py +219 -0
- ksadk/kernel/errors.py +79 -0
- ksadk/kernel/ingress.py +1102 -0
- ksadk/kernel/mapping.py +111 -0
- ksadk/kernel/memory_store.py +1133 -0
- ksadk/kernel/postgres_store.py +1756 -0
- ksadk/kernel/recovery.py +452 -0
- ksadk/kernel/runtime_identity.py +103 -0
- ksadk/kernel/sql/001_agent_kernel.sql +120 -0
- ksadk/kernel/sqlite_store.py +1410 -0
- ksadk/kernel/state.py +145 -0
- ksadk/kernel/store.py +232 -0
- ksadk/kernel/worker.py +953 -0
- ksadk/knowledge_base/client.py +22 -4
- ksadk/knowledge_base/service.py +32 -5
- ksadk/managed_a2a_card.py +160 -0
- ksadk/managed_runtime.py +16 -9
- ksadk/memory/__init__.py +61 -0
- ksadk/memory/adk/backends/base_ltm_backend.py +96 -1
- ksadk/memory/adk/backends/http_ltm_backend.py +14 -5
- ksadk/memory/adk/backends/inmemory_ltm_backend.py +136 -3
- ksadk/memory/adk/backends/sdk_ltm_backend.py +394 -5
- ksadk/memory/adk/backends/sqlite_ltm_backend.py +95 -0
- ksadk/memory/adk/long_term_memory.py +3 -2
- ksadk/memory/coordinator.py +461 -0
- ksadk/memory/events.py +202 -0
- ksadk/memory/extraction.py +228 -0
- ksadk/memory/ltm_backend_factory.py +16 -3
- ksadk/memory/models.py +316 -0
- ksadk/memory/policy.py +215 -0
- ksadk/memory/provider.py +47 -0
- ksadk/memory/provider_adapter.py +159 -0
- ksadk/memory/provider_resolver.py +71 -0
- ksadk/memory/providers/__init__.py +5 -0
- ksadk/memory/providers/local_sqlite.py +490 -0
- ksadk/memory/resolved_policy.py +145 -0
- ksadk/memory/service.py +198 -8
- ksadk/memory/tool.py +4 -0
- ksadk/model_proxy/bootstrap.py +16 -9
- ksadk/model_proxy/config.py +22 -1
- ksadk/model_proxy/detect.py +202 -9
- ksadk/model_proxy/namespace.py +67 -15
- ksadk/model_proxy/server.py +168 -6
- ksadk/model_proxy/transform.py +105 -3
- ksadk/observability/__init__.py +25 -0
- ksadk/observability/session_log.py +420 -0
- ksadk/observability/trajectory.py +105 -0
- ksadk/prompts/__init__.py +71 -0
- ksadk/prompts/compiler.py +215 -0
- ksadk/prompts/models.py +82 -0
- ksadk/prompts/projection.py +89 -0
- ksadk/prompts/resolved.py +137 -0
- ksadk/prompts/sources.py +233 -0
- ksadk/runners/_langgraph_runner_streams.py +822 -0
- ksadk/runners/adk_runner.py +14 -31
- ksadk/runners/base_runner.py +44 -3
- ksadk/runners/factory.py +3 -3
- ksadk/runners/langgraph_runner.py +252 -433
- ksadk/runners/utils/__init__.py +0 -10
- ksadk/runners/utils/loader.py +16 -0
- ksadk/runtime/__init__.py +67 -41
- ksadk/runtime/_runner_adapter/__init__.py +1 -0
- ksadk/runtime/_runner_adapter/stream_mapping.py +788 -0
- ksadk/runtime/adapter.py +199 -16
- ksadk/runtime/conversation_execution.py +687 -0
- ksadk/runtime/executor.py +392 -0
- ksadk/runtime/factory.py +342 -0
- ksadk/runtime/framework_adapters.py +6 -12
- ksadk/runtime/hosted_finalizer.py +268 -0
- ksadk/runtime/launch.py +61 -0
- ksadk/runtime/preprocessing.py +49 -14
- ksadk/runtime/runner_adapter.py +330 -391
- ksadk/runtime/runner_loading.py +36 -0
- ksadk/runtime/usage.py +33 -0
- ksadk/sandbox/backends/e2b.py +36 -3
- ksadk/server/__init__.py +39 -4
- ksadk/server/app.py +18 -492
- ksadk/server/composition.py +36 -2
- ksadk/server/factory.py +210 -149
- ksadk/server/routes/common.py +15 -46
- ksadk/server/routes/control.py +13 -9
- ksadk/server/routes/kernel_ingress.py +258 -0
- ksadk/server/routes/misc.py +10 -33
- ksadk/server/routes/models.py +14 -6
- ksadk/server/routes/openai_compat.py +129 -27
- ksadk/server/routes/projection.py +84 -16
- ksadk/server/routes/run.py +347 -460
- ksadk/server/routes/sessions.py +37 -40
- ksadk/server/routes/streaming.py +52 -7
- ksadk/server/routes/workspace.py +54 -21
- ksadk/server/static/assets/{ArtifactsPanel-Cjnqt-8W.js → ArtifactsPanel-DSU1sWD_.js} +1 -1
- ksadk/server/static/assets/{CodeBlock-BqyqZfuB.js → CodeBlock-DOH6MVcn.js} +4 -4
- ksadk/server/static/assets/{MathMessageMarkdown-BpH7jiFM.js → MathMessageMarkdown-BL8my1R2.js} +4 -4
- ksadk/server/static/assets/MathMessageMarkdown-BorAY7qD.css +1 -0
- ksadk/server/static/assets/MermaidBlock-Dz4IP-Tx.js +312 -0
- ksadk/server/static/assets/NativeTerminalPanel-DUrK0JpZ.js +1 -0
- ksadk/server/static/assets/abnfDiagram-VCTEODGH-g20pFzNV.js +1 -0
- ksadk/server/static/assets/arc-C4FzinUA.js +1 -0
- ksadk/server/static/assets/architecture-7GRP2DOG-DjKratdf.js +1 -0
- ksadk/server/static/assets/architectureDiagram-5GKGNRK7-DpIqL5h4.js +36 -0
- ksadk/server/static/assets/blockDiagram-NRAW4CY4-BjkljTNz.js +129 -0
- ksadk/server/static/assets/c4Diagram-UCG6FXSJ-Dk_ieq2X.js +38 -0
- ksadk/server/static/assets/channel-4cQHKtx1.js +1 -0
- ksadk/server/static/assets/chunk-2Q5K7J3B-DmgWkESh.js +1 -0
- ksadk/server/static/assets/{chunk-FMBD7UC4-BGhvzDYt.js → chunk-5VM5RSS4-BVHAchFb.js} +1 -1
- ksadk/server/static/assets/{chunk-ND2GUHAM-D98vPd-E.js → chunk-F27PBJKO-C-ipQzuS.js} +1 -1
- ksadk/server/static/assets/chunk-G27WJ6UU-C2EyJbIK.js +231 -0
- ksadk/server/static/assets/{chunk-4BX2VUAB-CsWIQRhc.js → chunk-JWPE2WC7-vYvVJb_M.js} +1 -1
- ksadk/server/static/assets/chunk-LCL6LL3I-BcI6ysPT.js +206 -0
- ksadk/server/static/assets/chunk-POPQ4Y6H-C030x_Z1.js +1 -0
- ksadk/server/static/assets/chunk-RHFEMEQ7-yyGpsz4n.js +168 -0
- ksadk/server/static/assets/chunk-SVP7TREG-BLTlmMU7.js +88 -0
- ksadk/server/static/assets/chunk-XXDRQBXY-C_32ArgP.js +1 -0
- ksadk/server/static/assets/classDiagram-DTDB5LWJ-DLFd9Xi0.js +1 -0
- ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-DLFd9Xi0.js +1 -0
- ksadk/server/static/assets/{cose-bilkent-S5V4N54A-CX3yotHq.js → cose-bilkent-JH36ORCC-9YQYwdl0.js} +1 -1
- ksadk/server/static/assets/cynefin-OW5HDTMX-DjEM48Qp.js +1 -0
- ksadk/server/static/assets/cynefinDiagram-5FMLGOSQ-ErLF5N13.js +62 -0
- ksadk/server/static/assets/cytoscape.esm-CyCl8rPi.js +321 -0
- ksadk/server/static/assets/dagre-3AP2YEHR-DFiQF-6f.js +4 -0
- ksadk/server/static/assets/dagre-BuhGnRI1.js +1 -0
- ksadk/server/static/assets/diagram-S7CK7UJ4-Bt1v8-GC.js +30 -0
- ksadk/server/static/assets/diagram-UQ7AKVKN-DSCxJdBK.js +41 -0
- ksadk/server/static/assets/diagram-VSXAHHWV-DHfYwp_9.js +3 -0
- ksadk/server/static/assets/diagram-VX7I27RA-DdzD-4Le.js +24 -0
- ksadk/server/static/assets/diagram-Z3DM3KII-Du-nAJ9F.js +24 -0
- ksadk/server/static/assets/{dist-D82mtD2s.js → dist-8hqcx0sU.js} +1 -1
- ksadk/server/static/assets/dist-B7seoj3d.js +1 -0
- ksadk/server/static/assets/{dist-DHn6nBzr.js → dist-BE7bu-DL.js} +1 -1
- ksadk/server/static/assets/{dist-eoW6tZXA.js → dist-BVDffZ0U.js} +1 -1
- ksadk/server/static/assets/{dist-C2xjE7cO.js → dist-BX8z72IC.js} +1 -1
- ksadk/server/static/assets/{dist-CgF3fj15.js → dist-Bf2M8m3N.js} +1 -1
- ksadk/server/static/assets/{dist-Bs-jQcRX.js → dist-BjU6y-A2.js} +1 -1
- ksadk/server/static/assets/{dist-Djgl2wVZ.js → dist-BytlxIDT.js} +1 -1
- ksadk/server/static/assets/{dist-CVQRZjPu.js → dist-CSh_DE14.js} +1 -1
- ksadk/server/static/assets/{dist-6CVKuTAe.js → dist-CXYYBw3_.js} +1 -1
- ksadk/server/static/assets/{dist-DlzCRy0S.js → dist-C_wsv-Qd.js} +1 -1
- ksadk/server/static/assets/{dist-DF06ORQo.js → dist-ClxGviKw.js} +1 -1
- ksadk/server/static/assets/{dist-Cf23NY4L.js → dist-CttYUqzS.js} +1 -1
- ksadk/server/static/assets/{dist-ivOya1LD.js → dist-DNp6rLRA.js} +1 -1
- ksadk/server/static/assets/{dist-BibcG1V9.js → dist-DUX-id_F.js} +1 -1
- ksadk/server/static/assets/{dist-BUHRxvDG.js → dist-DmldrHd_.js} +1 -1
- ksadk/server/static/assets/{dist-BZ9n9AjO.js → dist-DnfXs8Vn.js} +2 -2
- ksadk/server/static/assets/{dist-DqNnNFrw.js → dist-Dq9gLD7L.js} +1 -1
- ksadk/server/static/assets/{dist-CGcp2ex8.js → dist-W-TIVntx.js} +1 -1
- ksadk/server/static/assets/{dist-Cwt7koer.js → dist-dDdADKFA.js} +1 -1
- ksadk/server/static/assets/{dist-C7-3jInC.js → dist-dydu68Fl.js} +1 -1
- ksadk/server/static/assets/{dist-C99THtIA.js → dist-ngtN0DJB.js} +1 -1
- ksadk/server/static/assets/ebnfDiagram-PWID7BFC-Da9C9NO1.js +1 -0
- ksadk/server/static/assets/erDiagram-SSCWMZ5O-EAGqqR79.js +99 -0
- ksadk/server/static/assets/eventmodeling-NTZA5JFV-CMgMaJrC.js +1 -0
- ksadk/server/static/assets/flowDiagram-A5DVABFB-BBKL0x3P.js +1 -0
- ksadk/server/static/assets/ganttDiagram-EL5Y4UJY-DqJsKb59.js +292 -0
- ksadk/server/static/assets/gitGraph-4MIJSDKK-Dw63mrhw.js +1 -0
- ksadk/server/static/assets/gitGraphDiagram-WWUBYQGX-B6g4dtDi.js +106 -0
- ksadk/server/static/assets/index-8ipRcQ-M.js +240 -0
- ksadk/server/static/assets/index-ByFCqjlh.css +2 -0
- ksadk/server/static/assets/info-A6RAGUB7-B6iAblII.js +1 -0
- ksadk/server/static/assets/infoDiagram-RXCK75RN-Djm_nbd5.js +2 -0
- ksadk/server/static/assets/{ishikawaDiagram-YF4QCWOH-DLOHGvWw.js → ishikawaDiagram-5VMMS53U-DWya9SG2.js} +6 -6
- ksadk/server/static/assets/{journeyDiagram-JHISSGLW-BIzKeejT.js → journeyDiagram-EYS64GPL-DutxhSNI.js} +6 -6
- ksadk/server/static/assets/{kanban-definition-UN3LZRKU-BWHoFSw2.js → kanban-definition-3QL26DDD-DJdOF8Fm.js} +10 -10
- ksadk/server/static/assets/katex-vFWytM5c.js +257 -0
- ksadk/server/static/assets/{linear-CvMBw9cA.js → linear-BHjG8b-J.js} +1 -1
- ksadk/server/static/assets/mermaid-parser.core-KGSy4jWT.js +166 -0
- ksadk/server/static/assets/{mindmap-definition-RKZ34NQL-CSAQxEAe.js → mindmap-definition-FBJOCRG2-9-HC88D4.js} +29 -29
- ksadk/server/static/assets/packet-AYTQ26CC-BOYAipuq.js +1 -0
- ksadk/server/static/assets/pegDiagram-XKGWAZYB-DrEZd4fD.js +1 -0
- ksadk/server/static/assets/pie-WAS4IAKB-Ctq0Kbku.js +1 -0
- ksadk/server/static/assets/pieDiagram-E7YTZNPT-DpjqOFFp.js +39 -0
- ksadk/server/static/assets/{quadrantDiagram-W4KKPZXB-CxIR4JXI.js → quadrantDiagram-AXDQQJYC-BiNhgOXX.js} +6 -6
- ksadk/server/static/assets/radar-RG4KPBEZ-DN0-ul_0.js +1 -0
- ksadk/server/static/assets/railroad-74A4TZTK-C6cC_to0.js +1 -0
- ksadk/server/static/assets/railroad-abnf-HS5TGJTU-BimjIuRc.js +1 -0
- ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-CvY65ABq.js +1 -0
- ksadk/server/static/assets/railroad-peg-WCYAUIDC-D72Iq_Tv.js +1 -0
- ksadk/server/static/assets/railroadDiagram-O6MQD6OU-_Y3Ojg6G.js +1 -0
- ksadk/server/static/assets/requirementDiagram-EFPCY7ZU-DeCFdg9K.js +84 -0
- ksadk/server/static/assets/{sankeyDiagram-5OEKKPKP-DpGa6EAV.js → sankeyDiagram-P5KCCOFB-CPH75rhw.js} +7 -7
- ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-NTKNGGe5.js → sequenceDiagram-WJ2MYXX4-OEpQQdr4.js} +10 -10
- ksadk/server/static/assets/sizeCapture-X5ZJPWSS-heUErzhI.js +1 -0
- ksadk/server/static/assets/stateDiagram-HBIQ2CUA-DvA3jSMB.js +1 -0
- ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-BgQY03nz.js +1 -0
- ksadk/server/static/assets/swimlanes-XN3QIQJK-CR-dfN_t.js +1 -0
- ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-DLVw3q5Q.js +8 -0
- ksadk/server/static/assets/{timeline-definition-PNZ67QCA-jqoYs3jQ.js → timeline-definition-24CTP7MA-DAVJf1TX.js} +7 -7
- ksadk/server/static/assets/treeView-Q6P3EWNA-BMpO0wsB.js +1 -0
- ksadk/server/static/assets/treemap-WGGIJYW6-Et0aqzU3.js +1 -0
- ksadk/server/static/assets/vennDiagram-4TSXK5OY-DwM8eDkh.js +34 -0
- ksadk/server/static/assets/wardley-WFR3VGLG-CbY0mhpl.js +1 -0
- ksadk/server/static/assets/wardleyDiagram-VM6X3IG4-DZL-Zz2t.js +78 -0
- ksadk/server/static/assets/xychartDiagram-S5SC5T6Z-Dy6Yh_hu.js +7 -0
- ksadk/server/static/index.html +2 -2
- ksadk/sessions/__init__.py +26 -9
- ksadk/sessions/_local_service_sync.py +688 -0
- ksadk/sessions/_local_tables.py +21 -0
- ksadk/sessions/_postgres_schema.py +305 -0
- ksadk/sessions/_postgres_tables.py +15 -0
- ksadk/sessions/base.py +80 -1
- ksadk/sessions/in_memory.py +53 -2
- ksadk/sessions/local_service.py +63 -604
- ksadk/sessions/postgres_service.py +58 -148
- ksadk/sessions/resilient.py +35 -1
- ksadk/skills/runtime/backends/e2b.py +1 -1
- ksadk/skills/service_client.py +13 -3
- ksadk/studio/__init__.py +5 -0
- ksadk/studio/agent_avatar_assets.py +120 -0
- ksadk/studio/agent_lifecycle.py +51 -0
- ksadk/studio/api.py +1598 -0
- ksadk/studio/api_catalog_routes.py +324 -0
- ksadk/studio/api_contracts.py +286 -0
- ksadk/studio/api_helpers.py +132 -0
- ksadk/studio/api_memory_routes.py +82 -0
- ksadk/studio/authoring.py +749 -0
- ksadk/studio/authoring_coordinator.py +1017 -0
- ksadk/studio/builder.py +397 -0
- ksadk/studio/capabilities.py +368 -0
- ksadk/studio/cloud.py +2099 -0
- ksadk/studio/codex_agent_service.py +694 -0
- ksadk/studio/codex_authoring.py +469 -0
- ksadk/studio/codex_builder.py +437 -0
- ksadk/studio/codex_manifest.py +307 -0
- ksadk/studio/codex_run.py +395 -0
- ksadk/studio/compiler.py +190 -0
- ksadk/studio/contracts.py +755 -0
- ksadk/studio/errors.py +47 -0
- ksadk/studio/event_store.py +214 -0
- ksadk/studio/framework_run.py +342 -0
- ksadk/studio/hosted_kernel.py +317 -0
- ksadk/studio/identifiers.py +33 -0
- ksadk/studio/manifest_resolver.py +131 -0
- ksadk/studio/mcp_runtime.py +229 -0
- ksadk/studio/model_client.py +629 -0
- ksadk/studio/model_profile_service.py +214 -0
- ksadk/studio/operations.py +275 -0
- ksadk/studio/otel_trace.py +1060 -0
- ksadk/studio/pagination.py +182 -0
- ksadk/studio/pcm_memory.py +85 -0
- ksadk/studio/python_tool_inspection.py +183 -0
- ksadk/studio/repository.py +327 -0
- ksadk/studio/resource_catalog.py +1260 -0
- ksadk/studio/run_service.py +1133 -0
- ksadk/studio/runtime_catalog.py +74 -0
- ksadk/studio/runtime_source.py +365 -0
- ksadk/studio/service.py +2249 -0
- ksadk/studio/shared_web.py +1004 -0
- ksadk/studio/skill_discovery.py +628 -0
- ksadk/studio/static/assets/PrismRenderer-IYN-ffww.js +3 -0
- ksadk/studio/static/assets/index-BLpcdrgW.css +1 -0
- ksadk/studio/static/assets/index-CYekR2Xv.js +260 -0
- ksadk/studio/static/assets/react-vendor-BNmTiJ-I.js +9 -0
- ksadk/studio/static/assets/rolldown-runtime-hePW80VL.js +1 -0
- ksadk/studio/static/index.html +15 -0
- ksadk/studio/templates.py +722 -0
- ksadk/studio/validator.py +265 -0
- ksadk/studio/workspace.py +135 -0
- ksadk/tools/gateway.py +9 -0
- ksadk/toolsets/__init__.py +27 -1
- ksadk/toolsets/a2a.py +426 -0
- ksadk/tracing/__init__.py +19 -21
- ksadk/tracing/setup.py +317 -403
- ksadk/tracing/span_utils.py +0 -44
- ksadk/version.py +1 -1
- ksadk_runtime_common/memory_backend/registry.py +56 -56
- ksadk_runtime_common/schemas/runtime_event_v1.json +37 -0
- ksadk_runtime_common/schemas/runtime_event_v2.json +271 -0
- ksadk_runtime_common/workspace_files/router.py +8 -2
- agentengine_sdk_python-0.8.0.dist-info/RECORD +0 -578
- ksadk/a2a/card_builder.py +0 -64
- ksadk/a2a/client.py +0 -309
- ksadk/events/parser.py +0 -191
- ksadk/harness/runner.py +0 -211
- ksadk/runners/codex_runner.py +0 -132
- ksadk/runners/utils/langfuse.py +0 -230
- ksadk/server/static/assets/MathMessageMarkdown-DeYh8QPr.css +0 -1
- ksadk/server/static/assets/MermaidBlock-DWuxETaJ.js +0 -303
- ksadk/server/static/assets/NativeTerminalPanel-MDTopWMO.js +0 -1
- ksadk/server/static/assets/arc-CFKwSk_B.js +0 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-CynqOWjZ.js +0 -1
- ksadk/server/static/assets/architectureDiagram-3BPJPVTR-Dej8jX8c.js +0 -36
- ksadk/server/static/assets/blockDiagram-GPEHLZMM-1F64jqvy.js +0 -132
- ksadk/server/static/assets/c4Diagram-AAUBKEIU-9q7AUAKb.js +0 -10
- ksadk/server/static/assets/channel-iUGv2N24.js +0 -1
- ksadk/server/static/assets/chunk-2J33WTMH-6qgwJm7Q.js +0 -1
- ksadk/server/static/assets/chunk-55IACEB6-BK8paA20.js +0 -1
- ksadk/server/static/assets/chunk-727SXJPM-B-JEhy7h.js +0 -206
- ksadk/server/static/assets/chunk-AQP2D5EJ-DYBvMHAa.js +0 -231
- ksadk/server/static/assets/chunk-QZHKN3VN-YQIEXeF6.js +0 -1
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-CDAUuoXK.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-CDAUuoXK.js +0 -1
- ksadk/server/static/assets/cytoscape.esm-DelgaX4f.js +0 -321
- ksadk/server/static/assets/dagre-BM42HDAG-C7TguAWo.js +0 -4
- ksadk/server/static/assets/dagre-Bx709z4p.js +0 -1
- ksadk/server/static/assets/diagram-2AECGRRQ-Dd17_kws.js +0 -43
- ksadk/server/static/assets/diagram-5GNKFQAL-DVIClIil.js +0 -10
- ksadk/server/static/assets/diagram-KO2AKTUF-Df_3gYQa.js +0 -3
- ksadk/server/static/assets/diagram-LMA3HP47-BhLk6ZtA.js +0 -24
- ksadk/server/static/assets/diagram-OG6HWLK6-D4GNGvuu.js +0 -24
- ksadk/server/static/assets/dist-DyvYLMW9.js +0 -1
- ksadk/server/static/assets/erDiagram-TEJ5UH35-CnfRcY2M.js +0 -85
- ksadk/server/static/assets/eventmodeling-FCH6USID-ChYO-ijM.js +0 -1
- ksadk/server/static/assets/flowDiagram-I6XJVG4X-DGaJjGNJ.js +0 -162
- ksadk/server/static/assets/ganttDiagram-6RSMTGT7-DpCoB2g9.js +0 -292
- ksadk/server/static/assets/gitGraph-WXDBUCRP-BN_0Fk-j.js +0 -1
- ksadk/server/static/assets/gitGraphDiagram-PVQCEYII-9IKVFBVT.js +0 -106
- ksadk/server/static/assets/graphlib-B8gBHxth.js +0 -1
- ksadk/server/static/assets/index-QSwCHuB8.js +0 -177
- ksadk/server/static/assets/index-jOPmTOZH.css +0 -2
- ksadk/server/static/assets/info-J43DQDTF-Cp6o3vId.js +0 -1
- ksadk/server/static/assets/infoDiagram-5YYISTIA-CYIIsb8y.js +0 -2
- ksadk/server/static/assets/katex-DATssjp1.js +0 -265
- ksadk/server/static/assets/mermaid-parser.core-mGAcEwcq.js +0 -161
- ksadk/server/static/assets/packet-YPE3B663-wQzct3cT.js +0 -1
- ksadk/server/static/assets/pie-LRSECV5Y-BgTQiv-9.js +0 -1
- ksadk/server/static/assets/pieDiagram-4H26LBE5-By-ra07M.js +0 -30
- ksadk/server/static/assets/radar-GUYGQ44K-BIq5fXsn.js +0 -1
- ksadk/server/static/assets/requirementDiagram-4Y6WPE33-DpW90iu3.js +0 -84
- ksadk/server/static/assets/stateDiagram-AJRCARHV-DGpd9yFG.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-B3o579IQ.js +0 -1
- ksadk/server/static/assets/treeView-BLDUP644-Dqi-E0EM.js +0 -1
- ksadk/server/static/assets/treemap-LRROVOQU-ClQP9CJ9.js +0 -1
- ksadk/server/static/assets/vennDiagram-CIIHVFJN-l3Z7-wbP.js +0 -34
- ksadk/server/static/assets/wardley-L42UT6IY-8XLvnNIs.js +0 -1
- ksadk/server/static/assets/wardleyDiagram-YWT4CUSO-BR54GPmr.js +0 -78
- ksadk/server/static/assets/xychartDiagram-2RQKCTM6-SkiH8GsK.js +0 -7
- ksadk/tracing/exporters/langfuse_exporter.py +0 -460
- {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"""KOP (Kingsoft Open Protocol) client — 公共 AICP 控制面调用层。
|
|
2
|
+
|
|
3
|
+
skill / a2a / mcp 等运行时模块通过本层访问 agentengine-server 对外 Action
|
|
4
|
+
(KOP 协议:`{base}/?Action=xxx&Version=xxx` + AWS V4 签名),避免每个模块
|
|
5
|
+
各自实现一遍鉴权 + URL 构造 + header 装配。
|
|
6
|
+
|
|
7
|
+
本层是同步(基于 requests + requests-aws4auth);async 调用方用
|
|
8
|
+
``asyncio.to_thread`` 包裹。AICP 控制面是低频调用,同步足够。
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import json
|
|
14
|
+
import logging
|
|
15
|
+
import os
|
|
16
|
+
from typing import Any, Mapping, Optional
|
|
17
|
+
from urllib.parse import urlsplit
|
|
18
|
+
|
|
19
|
+
import requests
|
|
20
|
+
|
|
21
|
+
from ksadk.common.auth import AWSV4Auth
|
|
22
|
+
|
|
23
|
+
logger = logging.getLogger(__name__)
|
|
24
|
+
|
|
25
|
+
DEFAULT_API_VERSION = "2024-06-12"
|
|
26
|
+
DEFAULT_REGION = "cn-beijing-6"
|
|
27
|
+
DEFAULT_SERVICE = "aicp"
|
|
28
|
+
|
|
29
|
+
# 精确匹配 AICP 控制面域名(公网 + 内网 + internal),不接受用户自定义 URL 走签名。
|
|
30
|
+
_AICP_HOSTS = {
|
|
31
|
+
"aicp.api.ksyun.com",
|
|
32
|
+
"aicp.inner.api.ksyun.com",
|
|
33
|
+
"aicp.internal.api.ksyun.com",
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def is_kop_endpoint(base_url: str) -> bool:
|
|
38
|
+
"""Return True only for exact AICP control-plane hosts.
|
|
39
|
+
|
|
40
|
+
User-controlled URLs must never receive KOP signing headers.
|
|
41
|
+
"""
|
|
42
|
+
host = (urlsplit(base_url or "").hostname or "").lower()
|
|
43
|
+
return host in _AICP_HOSTS
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class KOPError(RuntimeError):
|
|
47
|
+
"""KOP action 失败(非 2xx 或 Code != 0/200)。"""
|
|
48
|
+
|
|
49
|
+
def __init__(self, *, code: int, message: str, request_id: str = "", action: str = "") -> None:
|
|
50
|
+
super().__init__(f"KOP {action} failed: code={code} message={message}")
|
|
51
|
+
self.code = code
|
|
52
|
+
self.message = message
|
|
53
|
+
self.request_id = request_id
|
|
54
|
+
self.action = action
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class KOPClient:
|
|
58
|
+
"""AICP KOP 控制面调用客户端。
|
|
59
|
+
|
|
60
|
+
凭证优先级:构造参数 > KSADK_*_ACCESS_KEY/SECRET_KEY > KSYUN_ACCESS_KEY/SECRET_KEY。
|
|
61
|
+
base_url 为空时按 region 探测默认 AICP(inner 优先,回落 public)。
|
|
62
|
+
非 AICP base_url(如本地 server 直连)走普通 POST,不签名。
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
def __init__(
|
|
66
|
+
self,
|
|
67
|
+
*,
|
|
68
|
+
base_url: Optional[str] = None,
|
|
69
|
+
access_key: Optional[str] = None,
|
|
70
|
+
secret_key: Optional[str] = None,
|
|
71
|
+
region: Optional[str] = None,
|
|
72
|
+
service: Optional[str] = None,
|
|
73
|
+
api_version: Optional[str] = None,
|
|
74
|
+
account_id: Optional[str] = None,
|
|
75
|
+
service_token: Optional[str] = None,
|
|
76
|
+
timeout: float = 15.0,
|
|
77
|
+
) -> None:
|
|
78
|
+
self.base_url = (base_url or os.getenv("KSADK_A2A_SERVICE_URL") or "").strip().rstrip("/")
|
|
79
|
+
if not self.base_url:
|
|
80
|
+
inner = os.getenv("KSADK_A2A_SERVICE_ENDPOINT", "").strip()
|
|
81
|
+
if inner:
|
|
82
|
+
scheme = os.getenv("KSADK_A2A_SERVICE_SCHEME", "https").strip() or "https"
|
|
83
|
+
self.base_url = f"{scheme}://{inner}".rstrip("/")
|
|
84
|
+
if not self.base_url:
|
|
85
|
+
# 默认探测:内网 inner 优先(runtime 在集群内),回落公网 public。
|
|
86
|
+
self.base_url = self._detect_default_base_url()
|
|
87
|
+
self.region = (
|
|
88
|
+
region
|
|
89
|
+
or os.getenv("KSADK_A2A_SERVICE_REGION")
|
|
90
|
+
or os.getenv("KSYUN_REGION")
|
|
91
|
+
or DEFAULT_REGION
|
|
92
|
+
).strip()
|
|
93
|
+
self.service = (service or DEFAULT_SERVICE).strip()
|
|
94
|
+
self.api_version = (api_version or DEFAULT_API_VERSION).strip()
|
|
95
|
+
self.account_id = (
|
|
96
|
+
account_id
|
|
97
|
+
or os.getenv("KSADK_A2A_ACCOUNT_ID")
|
|
98
|
+
or os.getenv("KSYUN_ACCOUNT_ID")
|
|
99
|
+
or ""
|
|
100
|
+
).strip()
|
|
101
|
+
self.service_token = (
|
|
102
|
+
service_token or os.getenv("KSADK_A2A_SERVICE_TOKEN") or ""
|
|
103
|
+
).strip()
|
|
104
|
+
self.timeout = timeout
|
|
105
|
+
self._kop_mode = is_kop_endpoint(self.base_url)
|
|
106
|
+
ak = (
|
|
107
|
+
access_key
|
|
108
|
+
or os.getenv("KSADK_A2A_ACCESS_KEY")
|
|
109
|
+
or os.getenv("KSYUN_ACCESS_KEY")
|
|
110
|
+
or ""
|
|
111
|
+
).strip()
|
|
112
|
+
sk = (
|
|
113
|
+
secret_key
|
|
114
|
+
or os.getenv("KSADK_A2A_SECRET_KEY")
|
|
115
|
+
or os.getenv("KSYUN_SECRET_KEY")
|
|
116
|
+
or ""
|
|
117
|
+
).strip()
|
|
118
|
+
self._auth = AWSV4Auth(
|
|
119
|
+
access_key_id=ak,
|
|
120
|
+
secret_access_key=sk,
|
|
121
|
+
region=self.region,
|
|
122
|
+
service=self.service,
|
|
123
|
+
)
|
|
124
|
+
self._session: Optional[requests.Session] = None
|
|
125
|
+
|
|
126
|
+
@property
|
|
127
|
+
def is_kop_mode(self) -> bool:
|
|
128
|
+
return self._kop_mode
|
|
129
|
+
|
|
130
|
+
def _session_obj(self) -> requests.Session:
|
|
131
|
+
if self._session is None:
|
|
132
|
+
self._session = requests.Session()
|
|
133
|
+
return self._session
|
|
134
|
+
|
|
135
|
+
def _headers(self, action: str) -> dict[str, str]:
|
|
136
|
+
import uuid
|
|
137
|
+
|
|
138
|
+
headers = {"Accept": "application/json", "Content-Type": "application/json"}
|
|
139
|
+
if self.account_id:
|
|
140
|
+
headers["X-Ksc-Account-Id"] = self.account_id
|
|
141
|
+
if self.service_token:
|
|
142
|
+
headers["Authorization"] = f"Bearer {self.service_token}"
|
|
143
|
+
if self._kop_mode:
|
|
144
|
+
headers["Host"] = urlsplit(self.base_url).netloc
|
|
145
|
+
headers["X-Ksc-Request-Id"] = str(uuid.uuid4())
|
|
146
|
+
headers["X-Ksc-Region"] = self.region
|
|
147
|
+
headers["X-Ksc-Source"] = "ksadk-runtime"
|
|
148
|
+
# 预发环境路由:AICP 据此把请求转发到预发 server(线上 KOP 默认路由到线上 server)。
|
|
149
|
+
logical_region = (os.getenv("KSYUN_REGION") or "").strip().lower()
|
|
150
|
+
if logical_region == "pre-online":
|
|
151
|
+
headers["X-KSC-CUSTOM-SOURCE"] = os.getenv("AGENTENGINE_PRE_CUSTOM_SOURCE", "pre")
|
|
152
|
+
if action:
|
|
153
|
+
headers["X-Action"] = action
|
|
154
|
+
headers["X-Version"] = self.api_version
|
|
155
|
+
return headers
|
|
156
|
+
|
|
157
|
+
def _build_url(self, action: str) -> str:
|
|
158
|
+
if self._kop_mode:
|
|
159
|
+
return f"{self.base_url}/?Action={action}&Version={self.api_version}"
|
|
160
|
+
return f"{self.base_url}/agentengine/api/v1/{action}"
|
|
161
|
+
|
|
162
|
+
def post_action(
|
|
163
|
+
self, action: str, payload: Optional[Mapping[str, Any]] = None
|
|
164
|
+
) -> dict[str, Any]:
|
|
165
|
+
"""POST 一个 KOP Action,返回 Data 字段(已解包信封)。
|
|
166
|
+
|
|
167
|
+
非KOP 模式走 ``/agentengine/api/v1/{action}``;KOP 模式走 ``?Action=&Version=`` + 签名。
|
|
168
|
+
"""
|
|
169
|
+
url = self._build_url(action)
|
|
170
|
+
headers = self._headers(action)
|
|
171
|
+
body = json.dumps(dict(payload or {}), ensure_ascii=False)
|
|
172
|
+
auth = (
|
|
173
|
+
self._auth.get_auth()
|
|
174
|
+
if self._kop_mode and self._auth.is_enabled and not self.service_token
|
|
175
|
+
else None
|
|
176
|
+
)
|
|
177
|
+
try:
|
|
178
|
+
response = self._session_obj().post(
|
|
179
|
+
url,
|
|
180
|
+
data=body.encode("utf-8"),
|
|
181
|
+
headers=headers,
|
|
182
|
+
auth=auth,
|
|
183
|
+
timeout=self.timeout,
|
|
184
|
+
)
|
|
185
|
+
except requests.RequestException as exc:
|
|
186
|
+
raise KOPError(
|
|
187
|
+
code=503,
|
|
188
|
+
message=f"KOP control plane unavailable: {exc}",
|
|
189
|
+
action=action,
|
|
190
|
+
) from exc
|
|
191
|
+
if not 200 <= response.status_code < 300:
|
|
192
|
+
raise KOPError(
|
|
193
|
+
code=response.status_code,
|
|
194
|
+
message=f"KOP HTTP error: {response.text[:200]}",
|
|
195
|
+
action=action,
|
|
196
|
+
)
|
|
197
|
+
try:
|
|
198
|
+
envelope = response.json()
|
|
199
|
+
except ValueError as exc:
|
|
200
|
+
raise KOPError(
|
|
201
|
+
code=response.status_code or 502,
|
|
202
|
+
message="non-JSON response",
|
|
203
|
+
action=action,
|
|
204
|
+
) from exc
|
|
205
|
+
if not isinstance(envelope, dict):
|
|
206
|
+
raise KOPError(
|
|
207
|
+
code=response.status_code or 502,
|
|
208
|
+
message="response not an object",
|
|
209
|
+
action=action,
|
|
210
|
+
)
|
|
211
|
+
code = int(envelope.get("Code") or 0)
|
|
212
|
+
if code and code != 200:
|
|
213
|
+
raise KOPError(
|
|
214
|
+
code=code,
|
|
215
|
+
message=str(envelope.get("Message") or "KOP error"),
|
|
216
|
+
request_id=str(envelope.get("RequestId") or ""),
|
|
217
|
+
action=action,
|
|
218
|
+
)
|
|
219
|
+
data = envelope.get("Data")
|
|
220
|
+
return data if isinstance(data, dict) else {}
|
|
221
|
+
|
|
222
|
+
def _detect_default_base_url(self) -> str:
|
|
223
|
+
"""默认 AICP 地址探测:内网 inner 优先,失败回落公网 public。"""
|
|
224
|
+
inner = "http://aicp.inner.api.ksyun.com"
|
|
225
|
+
public = "https://aicp.api.ksyun.com"
|
|
226
|
+
try:
|
|
227
|
+
import socket
|
|
228
|
+
host = urlsplit(inner).hostname or ""
|
|
229
|
+
socket.create_connection((host, 80), timeout=1).close()
|
|
230
|
+
return inner
|
|
231
|
+
except OSError:
|
|
232
|
+
return public
|
ksadk/configs/__init__.py
CHANGED
|
@@ -8,7 +8,7 @@ AgentEngine 统一配置管理
|
|
|
8
8
|
|
|
9
9
|
环境变量优先级 (举例):
|
|
10
10
|
Model: OPENAI_API_KEY > LLM_API_KEY > MODEL_API_KEY
|
|
11
|
-
|
|
11
|
+
Tracing: OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_HEADERS
|
|
12
12
|
Agent: AGENT_ID > AGENT_RUNTIME_ID
|
|
13
13
|
|
|
14
14
|
默认值:
|
|
@@ -24,7 +24,6 @@ from ksadk.configs.settings import (
|
|
|
24
24
|
AgentConfig,
|
|
25
25
|
CodeModeConfig,
|
|
26
26
|
KingsoftCloudConfig,
|
|
27
|
-
LangfuseConfig,
|
|
28
27
|
# 各配置类
|
|
29
28
|
ModelConfig,
|
|
30
29
|
OTelConfig,
|
|
@@ -44,7 +43,6 @@ __all__ = [
|
|
|
44
43
|
"Settings",
|
|
45
44
|
# 配置类
|
|
46
45
|
"ModelConfig",
|
|
47
|
-
"LangfuseConfig",
|
|
48
46
|
"AgentConfig",
|
|
49
47
|
"KingsoftCloudConfig",
|
|
50
48
|
"CodeModeConfig",
|
ksadk/configs/env_registry.py
CHANGED
|
@@ -1,24 +1,51 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
@dataclass(frozen=True)
|
|
7
|
-
class EnvVarSpec:
|
|
8
|
-
name: str
|
|
9
|
-
module: str
|
|
10
|
-
purpose: str
|
|
11
|
-
default: str = ""
|
|
12
|
-
sensitive: bool = False
|
|
13
|
-
|
|
3
|
+
from ksadk.configs.env_registry_pcm import PCM_ENV_VAR_REGISTRY_ITEMS
|
|
4
|
+
from ksadk.configs.env_var_spec import EnvVarSpec
|
|
14
5
|
|
|
15
6
|
_ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
7
|
+
EnvVarSpec(
|
|
8
|
+
"KSADK_AGENT_EVAL",
|
|
9
|
+
"evaluation",
|
|
10
|
+
"Enable internal Agent evaluation integration.",
|
|
11
|
+
"0",
|
|
12
|
+
documented=False,
|
|
13
|
+
),
|
|
16
14
|
EnvVarSpec("KSADK_ADK_RESUMABLE", "runners", "Enable ADK invocation resume support.", "false"),
|
|
17
15
|
EnvVarSpec("KSADK_ADK_SESSION_BACKEND", "sessions", "ADK-native session backend selector."),
|
|
18
16
|
EnvVarSpec("KSADK_ADK_SESSION_PATH", "sessions", "ADK-native SQLite session database path."),
|
|
19
17
|
EnvVarSpec(
|
|
20
18
|
"KSADK_ADK_SESSION_URL", "sessions", "ADK-native database session URL.", sensitive=True
|
|
21
19
|
),
|
|
20
|
+
EnvVarSpec(
|
|
21
|
+
"KSADK_A2A_AGENT_ID",
|
|
22
|
+
"a2a",
|
|
23
|
+
"Opaque registered A2A Agent id injected post-registration; "
|
|
24
|
+
"required to wire full inbound JSON-RPC in v2. v1 discovery-only card "
|
|
25
|
+
"does not depend on it.",
|
|
26
|
+
),
|
|
27
|
+
EnvVarSpec(
|
|
28
|
+
"KSADK_A2A_ACCOUNT_ID",
|
|
29
|
+
"a2a",
|
|
30
|
+
"Runtime owner account id injected by the deploy layer (ar-* agent's account).",
|
|
31
|
+
),
|
|
32
|
+
EnvVarSpec(
|
|
33
|
+
"KSADK_A2A_RUNTIME_ID",
|
|
34
|
+
"a2a",
|
|
35
|
+
"Hosted Agent runtime resource id (ar-*) injected by the deploy layer; "
|
|
36
|
+
"the v1 discovery-only card mounts whenever this is non-empty.",
|
|
37
|
+
),
|
|
38
|
+
EnvVarSpec(
|
|
39
|
+
"KSADK_A2A_AGENT_NAME",
|
|
40
|
+
"a2a",
|
|
41
|
+
"AgentCard display name injected by the deploy layer; falls back to "
|
|
42
|
+
"AGENTENGINE_MANAGED_RUNTIME_NAME then to the agent id.",
|
|
43
|
+
),
|
|
44
|
+
EnvVarSpec(
|
|
45
|
+
"KSADK_A2A_AGENT_VERSION",
|
|
46
|
+
"a2a",
|
|
47
|
+
"AgentCard business version injected by the deploy layer; defaults to 0.1.0.",
|
|
48
|
+
),
|
|
22
49
|
EnvVarSpec(
|
|
23
50
|
"KSADK_A2A_CONTROL_PLANE_URL",
|
|
24
51
|
"a2a",
|
|
@@ -36,6 +63,27 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
36
63
|
"SQLite path for durable A2A task-event delivery batches.",
|
|
37
64
|
".agentengine/a2a_event_outbox.sqlite3",
|
|
38
65
|
),
|
|
66
|
+
EnvVarSpec(
|
|
67
|
+
"KSADK_A2A_INTERNAL_BASE_URL",
|
|
68
|
+
"a2a",
|
|
69
|
+
"Internal HTTP(S) origin used as AgentCard base_url before the gateway rewrites it; "
|
|
70
|
+
"must be an absolute origin with no path/query/fragment.",
|
|
71
|
+
),
|
|
72
|
+
EnvVarSpec(
|
|
73
|
+
"KSADK_A2A_SPACE_ID",
|
|
74
|
+
"a2a",
|
|
75
|
+
"Primary A2A Space id configured for this Runtime Agent.",
|
|
76
|
+
),
|
|
77
|
+
EnvVarSpec(
|
|
78
|
+
"KSADK_A2A_SPACE_IDS",
|
|
79
|
+
"a2a",
|
|
80
|
+
"Compatibility JSON array of A2A Space ids configured for this Runtime Agent.",
|
|
81
|
+
),
|
|
82
|
+
EnvVarSpec(
|
|
83
|
+
"KSADK_A2A_TENANT_ID",
|
|
84
|
+
"a2a",
|
|
85
|
+
"Runtime tenant id injected by the deploy layer; falls back to account id.",
|
|
86
|
+
),
|
|
39
87
|
EnvVarSpec(
|
|
40
88
|
"KSADK_A2A_TOKEN_DIR",
|
|
41
89
|
"a2a",
|
|
@@ -43,9 +91,53 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
43
91
|
"/var/run/secrets/agentengine/a2a",
|
|
44
92
|
),
|
|
45
93
|
EnvVarSpec(
|
|
46
|
-
"
|
|
94
|
+
"KSADK_A2A_SERVICE_URL",
|
|
47
95
|
"a2a",
|
|
48
|
-
"
|
|
96
|
+
"A2A control plane service URL (KOP public API); auto-detected if unset.",
|
|
97
|
+
),
|
|
98
|
+
EnvVarSpec(
|
|
99
|
+
"KSADK_A2A_SERVICE_TOKEN",
|
|
100
|
+
"a2a",
|
|
101
|
+
"Bearer token for A2A control plane service authentication.",
|
|
102
|
+
sensitive=True,
|
|
103
|
+
),
|
|
104
|
+
EnvVarSpec(
|
|
105
|
+
"KSADK_A2A_SERVICE_ENDPOINT",
|
|
106
|
+
"a2a",
|
|
107
|
+
"A2A service endpoint hostname (used for auto-detection with scheme).",
|
|
108
|
+
),
|
|
109
|
+
EnvVarSpec(
|
|
110
|
+
"KSADK_A2A_SERVICE_SCHEME",
|
|
111
|
+
"a2a",
|
|
112
|
+
"A2A service URL scheme (http/https) for auto-detection.",
|
|
113
|
+
),
|
|
114
|
+
EnvVarSpec(
|
|
115
|
+
"KSADK_A2A_SERVICE_REGION",
|
|
116
|
+
"a2a",
|
|
117
|
+
"A2A service region for KOP signing.",
|
|
118
|
+
),
|
|
119
|
+
EnvVarSpec(
|
|
120
|
+
"KSADK_A2A_ACCESS_KEY",
|
|
121
|
+
"a2a",
|
|
122
|
+
"A2A KOP access key for signing; falls back to KSYUN_ACCESS_KEY.",
|
|
123
|
+
sensitive=True,
|
|
124
|
+
),
|
|
125
|
+
EnvVarSpec(
|
|
126
|
+
"KSADK_A2A_SECRET_KEY",
|
|
127
|
+
"a2a",
|
|
128
|
+
"A2A KOP secret key for signing; falls back to KSYUN_SECRET_KEY.",
|
|
129
|
+
sensitive=True,
|
|
130
|
+
),
|
|
131
|
+
EnvVarSpec(
|
|
132
|
+
"KSADK_A2A_SERVICE",
|
|
133
|
+
"a2a",
|
|
134
|
+
"A2A KOP signing service name (default: aicp).",
|
|
135
|
+
),
|
|
136
|
+
EnvVarSpec(
|
|
137
|
+
"KSADK_EVAL_JUDGE_API_KEY",
|
|
138
|
+
"eval",
|
|
139
|
+
"API key for the LLM Judge evaluation backend.",
|
|
140
|
+
sensitive=True,
|
|
49
141
|
),
|
|
50
142
|
EnvVarSpec(
|
|
51
143
|
"KSADK_A2UI_GENERATION_TIMEOUT_SECONDS",
|
|
@@ -117,6 +209,55 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
117
209
|
"Codex proxy override: 1 forces the local Responses-to-Chat proxy and "
|
|
118
210
|
"0 forces direct mode.",
|
|
119
211
|
),
|
|
212
|
+
EnvVarSpec(
|
|
213
|
+
"KSADK_CODEX_SANDBOX",
|
|
214
|
+
"codex",
|
|
215
|
+
"Codex sandbox mode: read_only (default, no writes) / workspace_write "
|
|
216
|
+
"(write inside workspace) / full_access (write anywhere).",
|
|
217
|
+
),
|
|
218
|
+
EnvVarSpec(
|
|
219
|
+
"KSADK_CODEX_APPROVAL",
|
|
220
|
+
"codex",
|
|
221
|
+
"Codex approval mode: deny_all (default for read_only) / auto_review "
|
|
222
|
+
"(auto-approve with review log).",
|
|
223
|
+
),
|
|
224
|
+
EnvVarSpec(
|
|
225
|
+
"KSADK_CODEX_HOME",
|
|
226
|
+
"codex",
|
|
227
|
+
"Explicit Codex home directory override for the native runtime.",
|
|
228
|
+
),
|
|
229
|
+
EnvVarSpec(
|
|
230
|
+
"KSADK_CODEX_ISOLATE_HOME",
|
|
231
|
+
"codex",
|
|
232
|
+
"Isolate native Codex state under the project workspace; set to 0 for debugging only.",
|
|
233
|
+
"1",
|
|
234
|
+
),
|
|
235
|
+
EnvVarSpec(
|
|
236
|
+
"KSADK_STUDIO_NO_SECURITY",
|
|
237
|
+
"studio",
|
|
238
|
+
"Disable Studio loopback session and CSRF checks for controlled tests only.",
|
|
239
|
+
"0",
|
|
240
|
+
),
|
|
241
|
+
EnvVarSpec(
|
|
242
|
+
"KSADK_STUDIO_AUTHORIZER",
|
|
243
|
+
"studio",
|
|
244
|
+
"Internal authoring backend selector; bounded chat is the default and the "
|
|
245
|
+
"filesystem-capable Codex authorizer requires an explicit opt-in.",
|
|
246
|
+
"chat",
|
|
247
|
+
documented=False,
|
|
248
|
+
),
|
|
249
|
+
EnvVarSpec(
|
|
250
|
+
"KSADK_STUDIO_SESSION_TOKEN",
|
|
251
|
+
"studio",
|
|
252
|
+
"Explicit local Studio browser session token; generated randomly when unset.",
|
|
253
|
+
sensitive=True,
|
|
254
|
+
),
|
|
255
|
+
EnvVarSpec(
|
|
256
|
+
"KSADK_STUDIO_TRACE_CONTENT",
|
|
257
|
+
"studio",
|
|
258
|
+
"Persist Studio trace event content; set to 0 to retain metadata only.",
|
|
259
|
+
"1",
|
|
260
|
+
),
|
|
120
261
|
EnvVarSpec(
|
|
121
262
|
"KSADK_COMMAND_", "sandbox", "Internal prefix for command policy environment controls."
|
|
122
263
|
),
|
|
@@ -143,6 +284,19 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
143
284
|
"Enable L2 snip deterministic redundancy removal in compaction pipeline.",
|
|
144
285
|
"true",
|
|
145
286
|
),
|
|
287
|
+
*PCM_ENV_VAR_REGISTRY_ITEMS,
|
|
288
|
+
EnvVarSpec(
|
|
289
|
+
"KSADK_DEPLOYMENT_MODE",
|
|
290
|
+
"runtime",
|
|
291
|
+
"Deployment-mode ownership declaration.",
|
|
292
|
+
documented=False,
|
|
293
|
+
),
|
|
294
|
+
EnvVarSpec(
|
|
295
|
+
"KSADK_EVAL_COMMIT",
|
|
296
|
+
"evaluation",
|
|
297
|
+
"Source commit recorded by evaluation runs.",
|
|
298
|
+
documented=False,
|
|
299
|
+
),
|
|
146
300
|
EnvVarSpec(
|
|
147
301
|
"KSADK_CORE_RUNTIME_REQUIREMENTS",
|
|
148
302
|
"builders",
|
|
@@ -186,6 +340,12 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
186
340
|
EnvVarSpec(
|
|
187
341
|
"KSADK_KB_SECRET_KEY", "knowledge_base", "Knowledge-base API secret key.", sensitive=True
|
|
188
342
|
),
|
|
343
|
+
EnvVarSpec(
|
|
344
|
+
"KSADK_KB_SESSION_TOKEN",
|
|
345
|
+
"knowledge_base",
|
|
346
|
+
"Knowledge-base STS session token.",
|
|
347
|
+
sensitive=True,
|
|
348
|
+
),
|
|
189
349
|
EnvVarSpec("KSADK_KB_TOP_K", "knowledge_base", "Knowledge-base retrieval result count.", "5"),
|
|
190
350
|
EnvVarSpec(
|
|
191
351
|
"KSADK_LANGGRAPH_CHECKPOINT_DSN",
|
|
@@ -193,6 +353,12 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
193
353
|
"LangGraph PostgreSQL checkpoint DSN.",
|
|
194
354
|
sensitive=True,
|
|
195
355
|
),
|
|
356
|
+
EnvVarSpec(
|
|
357
|
+
"KSADK_LANGGRAPH_AUTO_CHECKPOINT",
|
|
358
|
+
"sessions",
|
|
359
|
+
"Allow a hosted LangGraph runner to rebuild a factory-exported graph with the managed PostgreSQL saver.",
|
|
360
|
+
"false",
|
|
361
|
+
),
|
|
196
362
|
EnvVarSpec(
|
|
197
363
|
"KSADK_LOCAL_SKILLS_DIR", "skills", "Local directory containing extracted Skill packages."
|
|
198
364
|
),
|
|
@@ -224,6 +390,12 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
224
390
|
EnvVarSpec(
|
|
225
391
|
"KSADK_LTM_SECRET_KEY", "memory", "Long-term-memory API secret key.", sensitive=True
|
|
226
392
|
),
|
|
393
|
+
EnvVarSpec(
|
|
394
|
+
"KSADK_LTM_SESSION_TOKEN",
|
|
395
|
+
"memory",
|
|
396
|
+
"Long-term-memory STS session token.",
|
|
397
|
+
sensitive=True,
|
|
398
|
+
),
|
|
227
399
|
EnvVarSpec("KSADK_LTM_TOP_K", "memory", "Long-term-memory retrieval result count.", "5"),
|
|
228
400
|
EnvVarSpec(
|
|
229
401
|
"KSADK_MCP_RUNTIME_REQUIREMENTS",
|
|
@@ -306,12 +478,30 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
306
478
|
"runners",
|
|
307
479
|
"Header name for remote Responses session propagation.",
|
|
308
480
|
),
|
|
481
|
+
EnvVarSpec(
|
|
482
|
+
"KSADK_RUNTIME_IMAGE_SOURCE_COMMIT",
|
|
483
|
+
"runtime",
|
|
484
|
+
"Build-injected source commit for Runtime image provenance.",
|
|
485
|
+
documented=False,
|
|
486
|
+
),
|
|
487
|
+
EnvVarSpec(
|
|
488
|
+
"KSADK_RUNTIME_IMAGE_WHEEL_SHA256",
|
|
489
|
+
"runtime",
|
|
490
|
+
"Build-injected wheel digest for Runtime image provenance.",
|
|
491
|
+
documented=False,
|
|
492
|
+
),
|
|
309
493
|
EnvVarSpec(
|
|
310
494
|
"KSADK_RUNTIME_PORT", "cli", "Runtime HTTP port exported to template runtimes.", "8080"
|
|
311
495
|
),
|
|
312
496
|
EnvVarSpec(
|
|
313
497
|
"KSADK_RUNTIME_REQUIREMENTS", "builders", "Internal bundled runtime requirements constant."
|
|
314
498
|
),
|
|
499
|
+
EnvVarSpec(
|
|
500
|
+
"KSADK_RUNTIME_STATE_DIR",
|
|
501
|
+
"runtime",
|
|
502
|
+
"Internal Runtime state directory override.",
|
|
503
|
+
documented=False,
|
|
504
|
+
),
|
|
315
505
|
EnvVarSpec(
|
|
316
506
|
"KSADK_ALLOW_POD_PROCESS_TOOLS",
|
|
317
507
|
"sandbox",
|
|
@@ -442,6 +632,17 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
442
632
|
"KSADK_SESSION_DSN", "sessions", "Conversation session database DSN.", sensitive=True
|
|
443
633
|
),
|
|
444
634
|
EnvVarSpec("KSADK_SESSION_NAMESPACE", "sessions", "Conversation session namespace."),
|
|
635
|
+
EnvVarSpec(
|
|
636
|
+
"KSADK_AGENT_ID",
|
|
637
|
+
"platform",
|
|
638
|
+
"Stable AgentEngine agent identity used only as a fallback checkpoint namespace.",
|
|
639
|
+
),
|
|
640
|
+
EnvVarSpec(
|
|
641
|
+
"KSADK_AGENT_KERNEL",
|
|
642
|
+
"kernel",
|
|
643
|
+
"Opt in to Agent Kernel ingress locally; managed deployment may use AGENT_KERNEL_ENABLED instead.",
|
|
644
|
+
"false",
|
|
645
|
+
),
|
|
445
646
|
EnvVarSpec("KSADK_SESSION_PATH", "sessions", "Conversation local SQLite database path."),
|
|
446
647
|
EnvVarSpec(
|
|
447
648
|
"KSADK_SESSION_PG_CONNECT_TIMEOUT",
|
|
@@ -609,7 +810,7 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
609
810
|
"KSADK_WEB_VERSION",
|
|
610
811
|
"web",
|
|
611
812
|
"Published KsADK Web npm version used for a reproducible wheel build.",
|
|
612
|
-
"0.3.
|
|
813
|
+
"0.3.2",
|
|
613
814
|
),
|
|
614
815
|
EnvVarSpec(
|
|
615
816
|
"KSADK_WORKING_SET_MAX_FILES",
|
|
@@ -629,38 +830,11 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
629
830
|
EnvVarSpec(
|
|
630
831
|
"CLOUD_MONITOR_APP_KEY",
|
|
631
832
|
"tracing",
|
|
632
|
-
"CloudMonitor AppKey
|
|
833
|
+
"Deprecated: CloudMonitor AppKey translated to Ksc-Appkey OTLP header only when "
|
|
834
|
+
"both CLOUD_MONITOR_OTLP_TRACES_HEADERS and CLOUD_MONITOR_OTLP_HEADERS are absent. "
|
|
835
|
+
"Server should inject OTLP headers directly.",
|
|
633
836
|
sensitive=True,
|
|
634
837
|
),
|
|
635
|
-
EnvVarSpec(
|
|
636
|
-
"CLOUD_MONITOR_LANGFUSE_ENABLED",
|
|
637
|
-
"tracing",
|
|
638
|
-
"Enable or disable the CloudMonitor Langfuse SDK callback; defaults to enabled "
|
|
639
|
-
"when keys and host are present.",
|
|
640
|
-
),
|
|
641
|
-
EnvVarSpec(
|
|
642
|
-
"CLOUD_MONITOR_LANGFUSE_HOST",
|
|
643
|
-
"tracing",
|
|
644
|
-
"CloudMonitor AppMonitor Langfuse SDK host.",
|
|
645
|
-
),
|
|
646
|
-
EnvVarSpec(
|
|
647
|
-
"CLOUD_MONITOR_LANGFUSE_PUBLIC_KEY",
|
|
648
|
-
"tracing",
|
|
649
|
-
"CloudMonitor AppMonitor Langfuse public key returned by the platform.",
|
|
650
|
-
sensitive=True,
|
|
651
|
-
),
|
|
652
|
-
EnvVarSpec(
|
|
653
|
-
"CLOUD_MONITOR_LANGFUSE_SECRET_KEY",
|
|
654
|
-
"tracing",
|
|
655
|
-
"CloudMonitor AppMonitor Langfuse secret key returned by the platform.",
|
|
656
|
-
sensitive=True,
|
|
657
|
-
),
|
|
658
|
-
EnvVarSpec(
|
|
659
|
-
"CLOUD_MONITOR_OTLP_ENABLED",
|
|
660
|
-
"tracing",
|
|
661
|
-
"Enable or disable the CloudMonitor OTLP exporter; defaults to enabled when "
|
|
662
|
-
"endpoint and AppKey are present.",
|
|
663
|
-
),
|
|
664
838
|
EnvVarSpec(
|
|
665
839
|
"CLOUD_MONITOR_OTLP_ENDPOINT",
|
|
666
840
|
"tracing",
|
|
@@ -670,7 +844,7 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
670
844
|
EnvVarSpec(
|
|
671
845
|
"CLOUD_MONITOR_OTLP_HEADERS",
|
|
672
846
|
"tracing",
|
|
673
|
-
"
|
|
847
|
+
"CloudMonitor OTLP HTTP headers including Ksc-Appkey, comma-separated and URL-encoded.",
|
|
674
848
|
sensitive=True,
|
|
675
849
|
),
|
|
676
850
|
EnvVarSpec(
|
|
@@ -683,6 +857,12 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
683
857
|
"tracing",
|
|
684
858
|
"CloudMonitor OTLP HTTP traces endpoint; takes precedence over the generic endpoint.",
|
|
685
859
|
),
|
|
860
|
+
EnvVarSpec(
|
|
861
|
+
"CLOUD_MONITOR_OTLP_TRACES_HEADERS",
|
|
862
|
+
"tracing",
|
|
863
|
+
"CloudMonitor OTLP HTTP traces headers; takes precedence over generic headers.",
|
|
864
|
+
sensitive=True,
|
|
865
|
+
),
|
|
686
866
|
EnvVarSpec(
|
|
687
867
|
"CLOUD_MONITOR_OTLP_TRACES_PROTOCOL",
|
|
688
868
|
"tracing",
|
|
@@ -726,6 +906,12 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
726
906
|
"OpenTelemetry resource attributes in key=value comma-separated form.",
|
|
727
907
|
),
|
|
728
908
|
EnvVarSpec("OTEL_SERVICE_NAME", "tracing", "OpenTelemetry service name."),
|
|
909
|
+
EnvVarSpec(
|
|
910
|
+
"OPENCLAW_CONFIG_PATCH_JSON",
|
|
911
|
+
"openclaw",
|
|
912
|
+
"OpenClaw configuration patch JSON supplied at deployment time.",
|
|
913
|
+
sensitive=True,
|
|
914
|
+
),
|
|
729
915
|
EnvVarSpec(
|
|
730
916
|
"KSADK_OTLP_MAX_EXPORT_BATCH_SIZE",
|
|
731
917
|
"tracing",
|
|
@@ -737,6 +923,19 @@ _ENV_VAR_REGISTRY_ITEMS: tuple[EnvVarSpec, ...] = (
|
|
|
737
923
|
ENV_VAR_REGISTRY: tuple[EnvVarSpec, ...] = tuple(
|
|
738
924
|
sorted(_ENV_VAR_REGISTRY_ITEMS, key=lambda spec: spec.name)
|
|
739
925
|
)
|
|
926
|
+
_ENV_SENSITIVITY_BY_NAME = {spec.name: spec.sensitive for spec in ENV_VAR_REGISTRY}
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
def is_sensitive_env_var(name: str) -> bool:
|
|
930
|
+
normalized = str(name or "").strip().upper()
|
|
931
|
+
if _ENV_SENSITIVITY_BY_NAME.get(normalized, False):
|
|
932
|
+
return True
|
|
933
|
+
if normalized.startswith("OTEL_EXPORTER_OTLP_") and normalized.endswith("_HEADERS"):
|
|
934
|
+
return True
|
|
935
|
+
return any(
|
|
936
|
+
token in normalized
|
|
937
|
+
for token in ("KEY", "TOKEN", "SECRET", "PASSWORD", "AUTHORIZATION", "SIGNATURE")
|
|
938
|
+
)
|
|
740
939
|
|
|
741
940
|
|
|
742
941
|
def iter_env_vars() -> tuple[EnvVarSpec, ...]:
|