agentengine-sdk-python 0.7.0__py3-none-any.whl → 0.8.1__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.7.0.dist-info → agentengine_sdk_python-0.8.1.dist-info}/METADATA +52 -20
- agentengine_sdk_python-0.8.1.dist-info/RECORD +644 -0
- {agentengine_sdk_python-0.7.0.dist-info → agentengine_sdk_python-0.8.1.dist-info}/WHEEL +1 -1
- ksadk/a2a/__init__.py +180 -11
- ksadk/a2a/bootstrap.py +332 -0
- ksadk/a2a/card.py +15 -0
- ksadk/a2a/context_store.py +203 -0
- ksadk/a2a/control_plane.py +1056 -0
- ksadk/a2a/credential.py +99 -0
- ksadk/a2a/event_adapter.py +149 -0
- ksadk/a2a/executor.py +361 -137
- ksadk/a2a/external_transport.py +516 -0
- ksadk/a2a/identity.py +304 -0
- ksadk/a2a/ids.py +22 -0
- ksadk/a2a/langgraph.py +285 -0
- ksadk/a2a/resume_store.py +201 -0
- ksadk/a2a/routes.py +112 -0
- ksadk/a2a/server.py +102 -62
- ksadk/a2a/service_env.py +33 -0
- ksadk/a2a/space_client.py +1122 -0
- ksadk/a2a/task_adapter.py +423 -0
- ksadk/a2a/task_event_dispatcher.py +167 -0
- ksadk/a2a/task_event_outbox.py +326 -0
- ksadk/a2a/task_store.py +206 -0
- ksadk/a2a_card.py +101 -0
- ksadk/a2ui/__init__.py +27 -0
- ksadk/a2ui/core.py +186 -0
- ksadk/a2ui/models.py +166 -0
- ksadk/a2ui/renderer.py +198 -0
- ksadk/agui/__init__.py +9 -0
- ksadk/agui/a2ui_projection.py +92 -0
- ksadk/agui/agent.py +872 -0
- ksadk/agui/config.py +92 -0
- ksadk/agui/routes.py +47 -0
- ksadk/api/client.py +238 -204
- ksadk/api/environment.py +27 -0
- ksadk/builders/__init__.py +2 -0
- ksadk/builders/base.py +16 -14
- ksadk/builders/code_builder.py +375 -270
- ksadk/builders/container_builder.py +240 -200
- ksadk/builders/framework_requirements.py +31 -12
- ksadk/builders/ks3_uploader.py +60 -29
- ksadk/builders/managed_runtime_builder.py +173 -0
- ksadk/builders/mcp_builder.py +91 -92
- ksadk/builders/requirements_utils.py +1 -5
- ksadk/cli/__init__.py +97 -171
- ksadk/cli/cmd_a2a.py +255 -84
- ksadk/cli/cmd_agent.py +19 -5
- ksadk/cli/cmd_build.py +158 -29
- ksadk/cli/cmd_completion.py +47 -35
- ksadk/cli/cmd_config.py +267 -198
- ksadk/cli/cmd_create.py +507 -740
- ksadk/cli/cmd_dashboard.py +120 -45
- ksadk/cli/cmd_deploy.py +135 -59
- ksadk/cli/cmd_destroy.py +44 -14
- ksadk/cli/cmd_eval.py +386 -0
- ksadk/cli/cmd_files.py +63 -24
- ksadk/cli/cmd_hermes.py +313 -135
- ksadk/cli/cmd_invoke.py +184 -122
- ksadk/cli/cmd_launch.py +76 -28
- ksadk/cli/cmd_mcp.py +98 -64
- ksadk/cli/cmd_model.py +14 -5
- ksadk/cli/cmd_openclaw.py +564 -268
- ksadk/cli/cmd_replay.py +71 -0
- ksadk/cli/cmd_run.py +58 -73
- ksadk/cli/cmd_status.py +80 -31
- ksadk/cli/cmd_studio.py +110 -0
- ksadk/cli/cmd_version.py +20 -13
- ksadk/cli/cmd_web.py +95 -18
- ksadk/cli/deploy_utils.py +20 -20
- ksadk/cli/dry_run.py +7 -4
- ksadk/cli/env_options.py +83 -0
- ksadk/cli/error_utils.py +37 -12
- ksadk/cli/global_options.py +4 -3
- ksadk/cli/local_runtime.py +1 -2
- ksadk/cli/model_catalog.py +6 -2
- ksadk/cli/network_options.py +41 -19
- ksadk/cli/resource_common.py +6 -2
- ksadk/cli/runtime_bootstrap.py +51 -0
- ksadk/cli/storage.py +0 -1
- ksadk/cli/ui.py +11 -3
- ksadk/cli/workflow_common.py +52 -18
- ksadk/codex/__init__.py +12 -0
- ksadk/codex/client.py +1042 -0
- ksadk/codex/phase.py +143 -0
- ksadk/codex/runtime.py +940 -0
- ksadk/common/aicp_env.py +0 -1
- ksadk/common/auth.py +2 -2
- ksadk/common/constants.py +1 -3
- ksadk/common/kop_client.py +232 -0
- ksadk/common/llm_utils.py +17 -13
- ksadk/compat/__init__.py +5 -0
- ksadk/compat/adk_compat.py +200 -0
- ksadk/compat/copilotkit_a2ui.py +330 -0
- ksadk/configs/__init__.py +12 -14
- ksadk/configs/env_registry.py +661 -116
- ksadk/configs/global_config.py +3 -2
- ksadk/configs/settings.py +133 -209
- ksadk/conversations/__init__.py +85 -92
- ksadk/conversations/attachment_storage.py +16 -11
- ksadk/conversations/attachments.py +44 -36
- ksadk/conversations/compaction_pipeline.py +12 -12
- ksadk/conversations/compaction_prompt.py +9 -5
- ksadk/conversations/context.py +221 -6
- ksadk/conversations/message_projection.py +438 -51
- ksadk/conversations/model_context.py +12 -6
- ksadk/conversations/model_options.py +0 -1
- ksadk/conversations/normalize.py +20 -16
- ksadk/conversations/reasoning_markup.py +1 -1
- ksadk/conversations/runtime.py +339 -5255
- ksadk/conversations/runtime_compaction.py +333 -0
- ksadk/conversations/runtime_constants.py +27 -0
- ksadk/conversations/runtime_governance.py +185 -0
- ksadk/conversations/runtime_input.py +660 -0
- ksadk/conversations/runtime_invocation.py +395 -0
- ksadk/conversations/runtime_metadata.py +475 -0
- ksadk/conversations/runtime_observability.py +367 -0
- ksadk/conversations/runtime_payloads.py +272 -0
- ksadk/conversations/runtime_persistence.py +440 -0
- ksadk/conversations/runtime_preparation.py +426 -0
- ksadk/conversations/runtime_resume.py +836 -0
- ksadk/conversations/runtime_stream_events.py +902 -0
- ksadk/conversations/runtime_streaming.py +700 -0
- ksadk/conversations/semantic_summary.py +17 -5
- ksadk/conversations/session_title.py +6 -3
- ksadk/deployment/__init__.py +15 -16
- ksadk/deployment/agent_access.py +12 -23
- ksadk/deployment/base.py +51 -38
- ksadk/deployment/managed_runtime.py +33 -0
- ksadk/deployment/manager.py +85 -71
- ksadk/deployment/providers/serverless.py +379 -210
- ksadk/deployment/registry.py +38 -32
- ksadk/deployment/state.py +11 -11
- ksadk/deployment/ui_config.py +1 -1
- ksadk/detection/__init__.py +1 -1
- ksadk/detection/detector.py +146 -83
- ksadk/detection/mcp_detector.py +9 -6
- ksadk/evaluation/__init__.py +84 -0
- ksadk/evaluation/a2a_adapter.py +444 -0
- ksadk/evaluation/adapters.py +54 -0
- ksadk/evaluation/contracts.py +409 -0
- ksadk/evaluation/evalset.py +351 -0
- ksadk/evaluation/evaluators.py +461 -0
- ksadk/evaluation/executor.py +118 -0
- ksadk/evaluation/storage.py +68 -0
- ksadk/evaluation/target.py +73 -0
- ksadk/events/__init__.py +25 -0
- ksadk/events/parser.py +191 -0
- ksadk/events/replay.py +37 -0
- ksadk/events/runtime_event.py +273 -0
- ksadk/events/store.py +317 -0
- ksadk/harness/__init__.py +35 -0
- ksadk/harness/app.py +269 -0
- ksadk/harness/config.py +181 -0
- ksadk/harness/reasoner.py +105 -0
- ksadk/harness/runtime.py +364 -0
- ksadk/harness/sandbox.py +141 -0
- ksadk/harness/tools.py +222 -0
- ksadk/hermes_terminal.py +28 -12
- ksadk/identity/resolver.py +15 -9
- ksadk/ids.py +32 -0
- ksadk/knowledge_base/adk_tool.py +1 -1
- ksadk/knowledge_base/client.py +38 -33
- ksadk/managed_a2a_card.py +160 -0
- ksadk/managed_runtime.py +195 -0
- ksadk/markdown.py +5 -2
- ksadk/mcp_runtime/__init__.py +9 -6
- ksadk/memory/__init__.py +1 -1
- ksadk/memory/adk/__init__.py +2 -0
- ksadk/memory/adk/backends/base_ltm_backend.py +2 -6
- ksadk/memory/adk/backends/http_ltm_backend.py +13 -21
- ksadk/memory/adk/backends/inmemory_ltm_backend.py +7 -13
- ksadk/memory/adk/backends/sdk_ltm_backend.py +36 -36
- ksadk/memory/adk/long_term_memory.py +34 -37
- ksadk/memory/adk/resilient_session_service.py +4 -5
- ksadk/memory/adk/short_term_memory.py +12 -21
- ksadk/memory/adk_tool.py +3 -2
- ksadk/memory/backends/base.py +19 -19
- ksadk/memory/backends/memory.py +24 -25
- ksadk/memory/backends/redis.py +31 -30
- ksadk/memory/langchain_tool.py +2 -1
- ksadk/memory/manager.py +52 -47
- ksadk/memory/service.py +16 -6
- ksadk/memory/tool.py +4 -0
- ksadk/model_policy.py +15 -7
- ksadk/model_proxy/__init__.py +51 -0
- ksadk/model_proxy/bootstrap.py +80 -0
- ksadk/model_proxy/cache.py +165 -0
- ksadk/model_proxy/config.py +66 -0
- ksadk/model_proxy/demo_webui.py +115 -0
- ksadk/model_proxy/detect.py +145 -0
- ksadk/model_proxy/gate.py +68 -0
- ksadk/model_proxy/namespace.py +201 -0
- ksadk/model_proxy/protocol_proxy.py +22 -0
- ksadk/model_proxy/server.py +443 -0
- ksadk/model_proxy/transform.py +735 -0
- ksadk/openclaw_gateway.py +29 -14
- ksadk/runners/adk_runner.py +354 -146
- ksadk/runners/base_runner.py +71 -29
- ksadk/runners/deepagents_runner.py +0 -1
- ksadk/runners/factory.py +18 -5
- ksadk/runners/langchain_runner.py +29 -742
- ksadk/runners/langgraph_runner.py +417 -97
- ksadk/runners/patch_langchain.py +16 -16
- ksadk/runners/remote_runner.py +134 -33
- ksadk/runners/usage_accumulator.py +1 -0
- ksadk/runners/utils/__init__.py +0 -10
- ksadk/runners/utils/loader.py +23 -7
- ksadk/runtime/__init__.py +67 -0
- ksadk/runtime/adapter.py +412 -0
- ksadk/runtime/conversation_execution.py +553 -0
- ksadk/runtime/executor.py +251 -0
- ksadk/runtime/factory.py +156 -0
- ksadk/runtime/framework_adapters.py +118 -0
- ksadk/runtime/launch.py +48 -0
- ksadk/runtime/preprocessing.py +131 -0
- ksadk/runtime/runner_adapter.py +1032 -0
- ksadk/runtime/runner_loading.py +36 -0
- ksadk/runtime_context.py +18 -3
- ksadk/runtime_state.py +0 -1
- ksadk/sandbox/__init__.py +4 -1
- ksadk/sandbox/backends/__init__.py +4 -1
- ksadk/sandbox/backends/e2b.py +13 -5
- ksadk/sandbox/backends/local_process.py +11 -3
- ksadk/sandbox/base.py +10 -15
- ksadk/sandbox/factory.py +14 -4
- ksadk/sandbox/registry.py +57 -6
- ksadk/server/__init__.py +39 -4
- ksadk/server/api_models.py +15 -5
- ksadk/server/app.py +24 -3928
- ksadk/server/composition.py +47 -0
- ksadk/server/factory.py +622 -0
- ksadk/server/routes/__init__.py +1 -0
- ksadk/server/routes/checkpoint_resolution.py +116 -0
- ksadk/server/routes/common.py +682 -0
- ksadk/server/routes/control.py +331 -0
- ksadk/server/routes/dependencies.py +98 -0
- ksadk/server/routes/misc.py +425 -0
- ksadk/server/routes/models.py +451 -0
- ksadk/server/routes/openai_compat.py +229 -0
- ksadk/server/routes/projection.py +848 -0
- ksadk/server/routes/routers.py +52 -0
- ksadk/server/routes/run.py +519 -0
- ksadk/server/routes/sessions.py +644 -0
- ksadk/server/routes/streaming.py +265 -0
- ksadk/server/routes/workspace.py +414 -0
- ksadk/server/static/assets/{ArtifactsPanel-D-SSn2ee.js → ArtifactsPanel-CakCqxEN.js} +1 -1
- ksadk/server/static/assets/CodeBlock-CynLknyO.js +9 -0
- ksadk/server/static/assets/MathMessageMarkdown-3sQdOysS.js +8 -0
- ksadk/server/static/assets/MermaidBlock-NERD_ef7.js +303 -0
- ksadk/server/static/assets/NativeTerminalPanel-CiHWf82q.js +1 -0
- ksadk/server/static/assets/{arc-BA13sHc9.js → arc-DrgjcKhl.js} +1 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-CpZLRCcY.js +1 -0
- ksadk/server/static/assets/{architectureDiagram-3BPJPVTR-DzJzgVoL.js → architectureDiagram-3BPJPVTR-BXoVRbQ6.js} +1 -1
- ksadk/server/static/assets/{blockDiagram-GPEHLZMM-UTdVcZhn.js → blockDiagram-GPEHLZMM-BnaB3Ywv.js} +1 -1
- ksadk/server/static/assets/{c4Diagram-AAUBKEIU-Dix0GD4m.js → c4Diagram-AAUBKEIU-Dw4weZcp.js} +1 -1
- ksadk/server/static/assets/channel-Dt3rQTFI.js +1 -0
- ksadk/server/static/assets/{chunk-2J33WTMH-C2JxuZ42.js → chunk-2J33WTMH-ChjpLK7j.js} +1 -1
- ksadk/server/static/assets/{chunk-4BX2VUAB-Be57QPgD.js → chunk-4BX2VUAB-B9drTgOW.js} +1 -1
- ksadk/server/static/assets/{chunk-55IACEB6-WjSuy4nv.js → chunk-55IACEB6-CK4ROATy.js} +1 -1
- ksadk/server/static/assets/{chunk-727SXJPM-BOovP-b5.js → chunk-727SXJPM-B9KtTTgw.js} +1 -1
- ksadk/server/static/assets/{chunk-AQP2D5EJ-DOmZNmWj.js → chunk-AQP2D5EJ-1O1mki3m.js} +1 -1
- ksadk/server/static/assets/{chunk-FMBD7UC4-DzwlodkU.js → chunk-FMBD7UC4-B_fH2YuH.js} +1 -1
- ksadk/server/static/assets/{chunk-ND2GUHAM-DMqAikEU.js → chunk-ND2GUHAM-D6rFLaVV.js} +1 -1
- ksadk/server/static/assets/chunk-QZHKN3VN-iXEZtKQc.js +1 -0
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-DIveV17Q.js +1 -0
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-DIveV17Q.js +1 -0
- ksadk/server/static/assets/{cose-bilkent-S5V4N54A-Zhy2GBnP.js → cose-bilkent-S5V4N54A-ChNs_Mdk.js} +1 -1
- ksadk/server/static/assets/{dagre-BM42HDAG-CbKrtIUz.js → dagre-BM42HDAG-D0QXg_MQ.js} +1 -1
- ksadk/server/static/assets/{diagram-2AECGRRQ-BRApgQRK.js → diagram-2AECGRRQ-DBDDKwBQ.js} +1 -1
- ksadk/server/static/assets/{diagram-5GNKFQAL-D0xbnDiK.js → diagram-5GNKFQAL-BkwDOxmO.js} +1 -1
- ksadk/server/static/assets/{diagram-KO2AKTUF-CVugVI9L.js → diagram-KO2AKTUF-Bv8waYvY.js} +1 -1
- ksadk/server/static/assets/{diagram-LMA3HP47-DozUGgee.js → diagram-LMA3HP47-e1VECDdu.js} +1 -1
- ksadk/server/static/assets/{diagram-OG6HWLK6-ZOYsKlru.js → diagram-OG6HWLK6-Ds9adfRl.js} +1 -1
- ksadk/server/static/assets/{dist-DpKtt4Bo.js → dist-4N2NMVYg.js} +1 -1
- ksadk/server/static/assets/{dist-CkEKJFtk.js → dist-B-jNR6Vn.js} +1 -1
- ksadk/server/static/assets/{dist-D57wnGWd.js → dist-B5J2uhNk.js} +1 -1
- ksadk/server/static/assets/{dist-8_SfK1IP.js → dist-B5oS1zcj.js} +1 -1
- ksadk/server/static/assets/{dist-DMezvBGJ.js → dist-BB3-OwTQ.js} +1 -1
- ksadk/server/static/assets/{dist-2hInLS_J.js → dist-BIlKoW0k.js} +1 -1
- ksadk/server/static/assets/{dist-BrCcQ47T.js → dist-BjOdlDjj.js} +1 -1
- ksadk/server/static/assets/{dist-BmlMPsCc.js → dist-C1sz5Eo3.js} +1 -1
- ksadk/server/static/assets/{dist-B0NP_Z0z.js → dist-CWV4lDr1.js} +1 -1
- ksadk/server/static/assets/{dist-D-xOD048.js → dist-CmZHzlwZ.js} +1 -1
- ksadk/server/static/assets/{dist-DL_NKc_z.js → dist-D6MpCZtz.js} +1 -1
- ksadk/server/static/assets/{dist-DyOkZmze.js → dist-DJN_6Y39.js} +1 -1
- ksadk/server/static/assets/{dist-DmFaq_Iy.js → dist-DQU9EWw-.js} +1 -1
- ksadk/server/static/assets/{dist-gX6GOLKq.js → dist-DWKByxWV.js} +1 -1
- ksadk/server/static/assets/{dist-DyWsb78Q.js → dist-Dli7qW-B.js} +1 -1
- ksadk/server/static/assets/{dist-BIJVDMuB.js → dist-DsHPdk3W.js} +1 -1
- ksadk/server/static/assets/{dist-Dp0k7bWI.js → dist-X4TnqwOK.js} +1 -1
- ksadk/server/static/assets/{dist-8EEyGgDx.js → dist-_pHPTyZ-.js} +1 -1
- ksadk/server/static/assets/{dist-CPBtqRTW.js → dist-fhOuWds5.js} +1 -1
- ksadk/server/static/assets/{dist-D-JMdWPQ.js → dist-gLnrGsoU.js} +1 -1
- ksadk/server/static/assets/{dist-BssVmjIo.js → dist-j6Dxmf_j.js} +1 -1
- ksadk/server/static/assets/{dist-C3HIIaN5.js → dist-o2OVmKvt.js} +1 -1
- ksadk/server/static/assets/{erDiagram-TEJ5UH35-Bk-9bgE5.js → erDiagram-TEJ5UH35-BPItFKH6.js} +1 -1
- ksadk/server/static/assets/eventmodeling-FCH6USID-DYFSxbqr.js +1 -0
- ksadk/server/static/assets/{flowDiagram-I6XJVG4X-Dn9kZVuZ.js → flowDiagram-I6XJVG4X-BbYB9w5Y.js} +1 -1
- ksadk/server/static/assets/{ganttDiagram-6RSMTGT7-BGxXlJqm.js → ganttDiagram-6RSMTGT7-TQXa0KXv.js} +1 -1
- ksadk/server/static/assets/gitGraph-WXDBUCRP-DyNYp6BN.js +1 -0
- ksadk/server/static/assets/{gitGraphDiagram-PVQCEYII-C7Q0X-wi.js → gitGraphDiagram-PVQCEYII-bKblCnpa.js} +1 -1
- ksadk/server/static/assets/index-R52pJJvg.js +177 -0
- ksadk/server/static/assets/index-jJr3_955.css +2 -0
- ksadk/server/static/assets/info-J43DQDTF-WUx7qTde.js +1 -0
- ksadk/server/static/assets/{infoDiagram-5YYISTIA-BO_CSqq5.js → infoDiagram-5YYISTIA-BGVT7J_i.js} +1 -1
- ksadk/server/static/assets/{ishikawaDiagram-YF4QCWOH-eYLPLd46.js → ishikawaDiagram-YF4QCWOH-K0OOfVna.js} +1 -1
- ksadk/server/static/assets/{journeyDiagram-JHISSGLW-De9geSb0.js → journeyDiagram-JHISSGLW-8LeOJaZp.js} +1 -1
- ksadk/server/static/assets/{kanban-definition-UN3LZRKU-Cs80kQto.js → kanban-definition-UN3LZRKU-C6uCgZrW.js} +1 -1
- ksadk/server/static/assets/{katex-DSrCFD8n.js → katex-CYWseY5E.js} +1 -1
- ksadk/server/static/assets/{linear-CN9sbKTF.js → linear-hdBcYzM8.js} +1 -1
- ksadk/server/static/assets/{mermaid-parser.core-DlgSBU8l.js → mermaid-parser.core-BWrDjSZM.js} +2 -2
- ksadk/server/static/assets/{mindmap-definition-RKZ34NQL-9afz7Oug.js → mindmap-definition-RKZ34NQL-Bjy_2v4_.js} +1 -1
- ksadk/server/static/assets/packet-YPE3B663-BN13y_xl.js +1 -0
- ksadk/server/static/assets/pie-LRSECV5Y-ftSLXhhc.js +1 -0
- ksadk/server/static/assets/{pieDiagram-4H26LBE5-DPv_VstN.js → pieDiagram-4H26LBE5-GmmqNiVH.js} +1 -1
- ksadk/server/static/assets/{quadrantDiagram-W4KKPZXB-o77wZ1XK.js → quadrantDiagram-W4KKPZXB-BmkRbwCg.js} +1 -1
- ksadk/server/static/assets/radar-GUYGQ44K-jaICkIeO.js +1 -0
- ksadk/server/static/assets/{requirementDiagram-4Y6WPE33-BYVw81VC.js → requirementDiagram-4Y6WPE33-DSWFqL7c.js} +1 -1
- ksadk/server/static/assets/{sankeyDiagram-5OEKKPKP-B7nZFMKT.js → sankeyDiagram-5OEKKPKP-l6iXmU65.js} +1 -1
- ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-BGRRrFw5.js → sequenceDiagram-3UESZ5HK-Cq6UBeQB.js} +1 -1
- ksadk/server/static/assets/{stateDiagram-AJRCARHV-BUfHCoPs.js → stateDiagram-AJRCARHV-qzTQpg3Y.js} +1 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-BYCoYGAN.js +1 -0
- ksadk/server/static/assets/{timeline-definition-PNZ67QCA-FbCTGrf9.js → timeline-definition-PNZ67QCA-DEz24vV0.js} +1 -1
- ksadk/server/static/assets/treeView-BLDUP644-Cpib_vlz.js +1 -0
- ksadk/server/static/assets/treemap-LRROVOQU-DQxfmVHK.js +1 -0
- ksadk/server/static/assets/{vennDiagram-CIIHVFJN-DWgwtPsJ.js → vennDiagram-CIIHVFJN-CMCixki2.js} +1 -1
- ksadk/server/static/assets/wardley-L42UT6IY-BQYHnnkU.js +1 -0
- ksadk/server/static/assets/{wardleyDiagram-YWT4CUSO-2x8G-tTM.js → wardleyDiagram-YWT4CUSO-CVzB8F9K.js} +1 -1
- ksadk/server/static/assets/{xychartDiagram-2RQKCTM6-Drma3AYl.js → xychartDiagram-2RQKCTM6-BFBqBLc1.js} +1 -1
- ksadk/server/static/index.html +2 -2
- ksadk/server/terminal_sessions.py +111 -58
- ksadk/sessions/__init__.py +69 -19
- ksadk/sessions/base.py +31 -11
- ksadk/sessions/continuity.py +2 -3
- ksadk/sessions/in_memory.py +46 -2
- ksadk/sessions/local_service.py +148 -17
- ksadk/sessions/postgres_service.py +143 -25
- ksadk/sessions/resilient.py +36 -8
- ksadk/skills/models.py +17 -5
- ksadk/skills/package_store.py +5 -2
- ksadk/skills/runtime/agent.py +20 -5
- ksadk/skills/runtime/artifacts.py +1 -5
- ksadk/skills/runtime/backends/e2b.py +10 -4
- ksadk/skills/runtime/backends/local.py +15 -3
- ksadk/skills/runtime/base.py +1 -2
- ksadk/skills/runtime/executor.py +10 -3
- ksadk/skills/runtime/factory.py +4 -2
- ksadk/skills/runtime/loader.py +1 -2
- ksadk/skills/runtime/registry.py +15 -10
- ksadk/skills/runtime/request.py +3 -1
- ksadk/skills/service_client.py +47 -16
- ksadk/skills/tool_defs.py +15 -10
- 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 +1046 -0
- ksadk/studio/api_catalog_routes.py +324 -0
- ksadk/studio/api_contracts.py +177 -0
- ksadk/studio/api_helpers.py +132 -0
- ksadk/studio/authoring.py +524 -0
- ksadk/studio/authoring_coordinator.py +285 -0
- ksadk/studio/builder.py +320 -0
- ksadk/studio/capabilities.py +351 -0
- ksadk/studio/cloud.py +278 -0
- ksadk/studio/codex_agent_service.py +583 -0
- ksadk/studio/codex_builder.py +324 -0
- ksadk/studio/codex_manifest.py +278 -0
- ksadk/studio/codex_run.py +352 -0
- ksadk/studio/compiler.py +189 -0
- ksadk/studio/contracts.py +644 -0
- ksadk/studio/errors.py +47 -0
- ksadk/studio/evaluation.py +192 -0
- ksadk/studio/event_store.py +284 -0
- ksadk/studio/framework_run.py +114 -0
- ksadk/studio/identifiers.py +33 -0
- ksadk/studio/mcp_runtime.py +229 -0
- ksadk/studio/model_client.py +543 -0
- ksadk/studio/model_profile_service.py +214 -0
- ksadk/studio/operations.py +243 -0
- ksadk/studio/otel_trace.py +754 -0
- ksadk/studio/pagination.py +182 -0
- ksadk/studio/python_tool_inspection.py +183 -0
- ksadk/studio/repository.py +306 -0
- ksadk/studio/resource_catalog.py +1217 -0
- ksadk/studio/run_service.py +707 -0
- ksadk/studio/runtime_catalog.py +74 -0
- ksadk/studio/runtime_source.py +339 -0
- ksadk/studio/service.py +1141 -0
- ksadk/studio/shared_web.py +994 -0
- ksadk/studio/skill_discovery.py +628 -0
- ksadk/studio/static/assets/PrismRenderer-IYN-ffww.js +3 -0
- ksadk/studio/static/assets/index-CaEN0eTR.css +1 -0
- ksadk/studio/static/assets/index-DI2eY_NH.js +252 -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 +630 -0
- ksadk/studio/validator.py +246 -0
- ksadk/studio/workspace.py +137 -0
- ksadk/terminal_exec_policy.py +3 -4
- ksadk/tools/gateway.py +101 -15
- ksadk/tools/result_budget.py +12 -4
- ksadk/toolsets/__init__.py +161 -37
- ksadk/toolsets/a2a.py +426 -0
- ksadk/toolsets/platform.py +21 -5
- ksadk/toolsets/sandbox.py +82 -16
- ksadk/toolsets/skills.py +200 -39
- ksadk/toolsets/web.py +123 -26
- ksadk/toolsets/workspace.py +212 -101
- ksadk/tracing/__init__.py +19 -21
- ksadk/tracing/exporters/inmemory_exporter.py +62 -51
- ksadk/tracing/setup.py +135 -506
- ksadk/tracing/span_utils.py +0 -41
- ksadk/tui/loop.py +78 -30
- ksadk/tui/stream_render.py +1 -0
- ksadk/ui_config.py +5 -3
- ksadk/version.py +1 -1
- ksadk_runtime_common/memory_backend/registry.py +56 -56
- ksadk_runtime_common/schemas/runtime_event_v1.json +95 -0
- ksadk_runtime_common/workspace_files/router.py +8 -2
- agentengine_sdk_python-0.7.0.dist-info/RECORD +0 -482
- ksadk/a2a/card_builder.py +0 -64
- ksadk/a2a/client.py +0 -309
- ksadk/runners/utils/langfuse.py +0 -230
- ksadk/server/static/assets/CodeBlock-P16VOLYi.js +0 -9
- ksadk/server/static/assets/MathMessageMarkdown-CdGiQWHR.js +0 -8
- ksadk/server/static/assets/MermaidBlock-IOcal8cm.js +0 -303
- ksadk/server/static/assets/NativeTerminalPanel-DGSDWsei.js +0 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-BvUlsA6l.js +0 -1
- ksadk/server/static/assets/channel-CTuydARX.js +0 -1
- ksadk/server/static/assets/chunk-QZHKN3VN-BnCydivS.js +0 -1
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-BNHg45Be.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-BNHg45Be.js +0 -1
- ksadk/server/static/assets/eventmodeling-FCH6USID-DsAgWnlf.js +0 -1
- ksadk/server/static/assets/gitGraph-WXDBUCRP-BIao9Yjg.js +0 -1
- ksadk/server/static/assets/index-C00Lwg3L.js +0 -165
- ksadk/server/static/assets/index-DAURbCsP.css +0 -1
- ksadk/server/static/assets/info-J43DQDTF-CyipqGxU.js +0 -1
- ksadk/server/static/assets/packet-YPE3B663-CGkyRxlg.js +0 -1
- ksadk/server/static/assets/pie-LRSECV5Y-M0uWAf4n.js +0 -1
- ksadk/server/static/assets/radar-GUYGQ44K-Bdbm24-x.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-8xBN_gLM.js +0 -1
- ksadk/server/static/assets/treeView-BLDUP644-npMo0ak1.js +0 -1
- ksadk/server/static/assets/treemap-LRROVOQU-CHdzrrdo.js +0 -1
- ksadk/server/static/assets/wardley-L42UT6IY-BEQz7wyy.js +0 -1
- ksadk/tracing/exporters/langfuse_exporter.py +0 -445
- {agentengine_sdk_python-0.7.0.dist-info → agentengine_sdk_python-0.8.1.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.7.0.dist-info → agentengine_sdk_python-0.8.1.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.7.0.dist-info → agentengine_sdk_python-0.8.1.dist-info}/top_level.txt +0 -0
ksadk/cli/cmd_dashboard.py
CHANGED
|
@@ -7,7 +7,7 @@ import os
|
|
|
7
7
|
import webbrowser
|
|
8
8
|
from datetime import datetime, timedelta, timezone
|
|
9
9
|
from pathlib import Path
|
|
10
|
-
from typing import Optional, Tuple
|
|
10
|
+
from typing import Any, Optional, Tuple, cast
|
|
11
11
|
|
|
12
12
|
import click
|
|
13
13
|
|
|
@@ -34,8 +34,17 @@ from ksadk.cli.resource_common import (
|
|
|
34
34
|
render_descriptor_list,
|
|
35
35
|
render_descriptor_status,
|
|
36
36
|
)
|
|
37
|
-
from ksadk.cli.ui import
|
|
38
|
-
|
|
37
|
+
from ksadk.cli.ui import (
|
|
38
|
+
is_json_output,
|
|
39
|
+
is_stdout_tty,
|
|
40
|
+
print_info,
|
|
41
|
+
print_kv,
|
|
42
|
+
print_success,
|
|
43
|
+
print_warn,
|
|
44
|
+
)
|
|
45
|
+
from ksadk.cli.ui import (
|
|
46
|
+
output_option as cli_output_option,
|
|
47
|
+
)
|
|
39
48
|
from ksadk.deployment.state import load_state
|
|
40
49
|
from ksadk.deployment.ui_config import resolve_ui_config
|
|
41
50
|
from ksadk.openclaw_gateway import OpenClawGatewayClient
|
|
@@ -75,9 +84,7 @@ DASHBOARD_RESOURCE = ResourceDescriptor(
|
|
|
75
84
|
"agentengine dashboard open --agent <AgentName|AgentId>",
|
|
76
85
|
),
|
|
77
86
|
open_action_help="打开 Agent Dashboard",
|
|
78
|
-
extra_action_help=(
|
|
79
|
-
("share", "管理 Dashboard 分享链接"),
|
|
80
|
-
),
|
|
87
|
+
extra_action_help=(("share", "管理 Dashboard 分享链接"),),
|
|
81
88
|
)
|
|
82
89
|
|
|
83
90
|
DASHBOARD_SHARE_RESOURCE = ResourceDescriptor(
|
|
@@ -115,6 +122,7 @@ DASHBOARD_SHARE_RESOURCE = ResourceDescriptor(
|
|
|
115
122
|
delete_action_help="撤销 Dashboard 分享链接",
|
|
116
123
|
)
|
|
117
124
|
|
|
125
|
+
|
|
118
126
|
class DashboardGroup(click.Group):
|
|
119
127
|
"""支持 `dashboard open` canonical + `dashboard [agent_ref]` 兼容路径。"""
|
|
120
128
|
|
|
@@ -169,8 +177,12 @@ def _abort_dashboard_error(
|
|
|
169
177
|
context_settings=CONTEXT_SETTINGS,
|
|
170
178
|
help=build_resource_group_help(DASHBOARD_RESOURCE),
|
|
171
179
|
)
|
|
172
|
-
@click.option(
|
|
173
|
-
|
|
180
|
+
@click.option(
|
|
181
|
+
"--agent", "--agent-id", "agent_option", "-a", hidden=True, help="(兼容) Agent 名称或 ID"
|
|
182
|
+
)
|
|
183
|
+
@click.option(
|
|
184
|
+
"--region", "-r", default=None, envvar="KSYUN_REGION", hidden=True, help="(兼容) 区域"
|
|
185
|
+
)
|
|
174
186
|
@click.option("--path", "ui_path", default=None, hidden=True, help="(兼容) 目标 UI 路径")
|
|
175
187
|
@click.option("--share", is_flag=True, hidden=True, help="(兼容) 创建可分享链接")
|
|
176
188
|
@click.option(
|
|
@@ -272,7 +284,11 @@ def dashboard_open(
|
|
|
272
284
|
)
|
|
273
285
|
|
|
274
286
|
|
|
275
|
-
@dashboard.group(
|
|
287
|
+
@dashboard.group(
|
|
288
|
+
"share",
|
|
289
|
+
context_settings=CONTEXT_SETTINGS,
|
|
290
|
+
help=build_resource_group_help(DASHBOARD_SHARE_RESOURCE),
|
|
291
|
+
)
|
|
276
292
|
def dashboard_share():
|
|
277
293
|
pass
|
|
278
294
|
|
|
@@ -281,7 +297,13 @@ def dashboard_share():
|
|
|
281
297
|
@click.argument("agent_ref", required=False)
|
|
282
298
|
@click.option("--agent", "--agent-id", "agent_option", "-a", help="Agent 名称或 ID")
|
|
283
299
|
@click.option("--region", "-r", default=None, envvar="KSYUN_REGION", help="区域")
|
|
284
|
-
@click.option(
|
|
300
|
+
@click.option(
|
|
301
|
+
"--type",
|
|
302
|
+
"link_type",
|
|
303
|
+
type=click.Choice(["private", "share"]),
|
|
304
|
+
default=None,
|
|
305
|
+
help="链接类型过滤",
|
|
306
|
+
)
|
|
285
307
|
@click.option("--status", type=click.Choice(["active", "revoked"]), default=None, help="状态过滤")
|
|
286
308
|
@pagination_options(default_page=1, default_size=20)
|
|
287
309
|
@cli_output_option()
|
|
@@ -309,7 +331,9 @@ def dashboard_share_list(
|
|
|
309
331
|
|
|
310
332
|
cwd = Path(".").resolve()
|
|
311
333
|
state = load_state(cwd)
|
|
312
|
-
effective_region = _resolve_effective_region(
|
|
334
|
+
effective_region = _resolve_effective_region(
|
|
335
|
+
region, state, region_source=_region_parameter_source(ctx, "region")
|
|
336
|
+
)
|
|
313
337
|
primary_ref, fallback_ref = _resolve_references(explicit_ref, cwd)
|
|
314
338
|
if not primary_ref:
|
|
315
339
|
_abort_dashboard_error(
|
|
@@ -319,16 +343,23 @@ def dashboard_share_list(
|
|
|
319
343
|
),
|
|
320
344
|
argv=["dashboard", "share", "list"],
|
|
321
345
|
)
|
|
346
|
+
return
|
|
322
347
|
|
|
323
348
|
try:
|
|
324
|
-
detail, _, _ = asyncio.run(
|
|
349
|
+
detail, _, _ = asyncio.run(
|
|
350
|
+
_resolve_agent_detail(effective_region, primary_ref, fallback_ref)
|
|
351
|
+
)
|
|
325
352
|
except Exception as e:
|
|
326
|
-
_abort_dashboard_error(
|
|
353
|
+
_abort_dashboard_error(
|
|
354
|
+
e, context="获取 Agent 信息失败", argv=["dashboard", "share", "list"]
|
|
355
|
+
)
|
|
327
356
|
agent_id = (detail.get("agent_id") or "").strip()
|
|
328
357
|
agent_name = (detail.get("name") or "").strip()
|
|
329
358
|
if not agent_id and not agent_name:
|
|
330
359
|
_abort_dashboard_error(
|
|
331
|
-
resolution_error(
|
|
360
|
+
resolution_error(
|
|
361
|
+
"无法解析 Agent 标识", hints=list(DASHBOARD_SHARE_RESOURCE.resolution_commands)
|
|
362
|
+
),
|
|
332
363
|
argv=["dashboard", "share", "list"],
|
|
333
364
|
)
|
|
334
365
|
|
|
@@ -345,7 +376,9 @@ def dashboard_share_list(
|
|
|
345
376
|
)
|
|
346
377
|
)
|
|
347
378
|
except Exception as e:
|
|
348
|
-
_abort_dashboard_error(
|
|
379
|
+
_abort_dashboard_error(
|
|
380
|
+
e, context="查询 Dashboard 链接失败", argv=["dashboard", "share", "list"]
|
|
381
|
+
)
|
|
349
382
|
links = result.get("links") or []
|
|
350
383
|
total = int(result.get("total") or len(links))
|
|
351
384
|
render_descriptor_list(
|
|
@@ -444,7 +477,9 @@ def _open_dashboard(
|
|
|
444
477
|
return
|
|
445
478
|
|
|
446
479
|
try:
|
|
447
|
-
explicit_ref = merge_agent_inputs(
|
|
480
|
+
explicit_ref = merge_agent_inputs(
|
|
481
|
+
agent_option=agent_option, positional_agent=positional_agent
|
|
482
|
+
)
|
|
448
483
|
except ValueError as e:
|
|
449
484
|
_abort_dashboard_error(usage_error(str(e)), argv=["dashboard", "open"])
|
|
450
485
|
|
|
@@ -460,12 +495,15 @@ def _open_dashboard(
|
|
|
460
495
|
),
|
|
461
496
|
argv=["dashboard", "open"],
|
|
462
497
|
)
|
|
498
|
+
return
|
|
463
499
|
|
|
464
500
|
if primary_ref.source != "cli":
|
|
465
501
|
print_info(f"未显式指定 Agent,使用 {primary_ref.source_text}: {primary_ref.value}")
|
|
466
502
|
|
|
467
503
|
try:
|
|
468
|
-
detail, used_ref, state_stale = asyncio.run(
|
|
504
|
+
detail, used_ref, state_stale = asyncio.run(
|
|
505
|
+
_resolve_agent_detail(effective_region, primary_ref, fallback_ref)
|
|
506
|
+
)
|
|
469
507
|
except Exception as e:
|
|
470
508
|
_abort_dashboard_error(e, context="获取 Agent 信息失败", argv=["dashboard", "open"])
|
|
471
509
|
return
|
|
@@ -518,25 +556,29 @@ def _open_dashboard(
|
|
|
518
556
|
)
|
|
519
557
|
)
|
|
520
558
|
except Exception as e:
|
|
521
|
-
_abort_dashboard_error(
|
|
559
|
+
_abort_dashboard_error(
|
|
560
|
+
e, context="创建 OpenClaw gateway 链接失败", argv=["dashboard", "open"]
|
|
561
|
+
)
|
|
522
562
|
return
|
|
523
563
|
_render_dashboard_open_result(detail=detail, link_data=link_data, no_open=no_open)
|
|
524
564
|
return
|
|
525
565
|
|
|
526
566
|
link_type = "share" if share else "private"
|
|
527
|
-
validated_expires = _normalize_expires_seconds(
|
|
567
|
+
validated_expires = _normalize_expires_seconds(
|
|
568
|
+
link_type=link_type, expires_seconds=expires_seconds
|
|
569
|
+
)
|
|
528
570
|
try:
|
|
529
571
|
link_data = asyncio.run(
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
)
|
|
572
|
+
_create_dashboard_access_link(
|
|
573
|
+
region=effective_region,
|
|
574
|
+
agent_id=(detail.get("agent_id") or "").strip() or None,
|
|
575
|
+
agent_name=(detail.get("name") or "").strip() or None,
|
|
576
|
+
link_type=link_type,
|
|
577
|
+
path=link_path,
|
|
578
|
+
expires_seconds=validated_expires,
|
|
579
|
+
force_new=force_new,
|
|
539
580
|
)
|
|
581
|
+
)
|
|
540
582
|
except Exception as e:
|
|
541
583
|
_abort_dashboard_error(e, context="创建 Dashboard 链接失败", argv=["dashboard", "open"])
|
|
542
584
|
return
|
|
@@ -546,7 +588,9 @@ def _open_dashboard(
|
|
|
546
588
|
remote_error("CreateDashboardAccessLink 返回为空"),
|
|
547
589
|
argv=["dashboard", "open"],
|
|
548
590
|
)
|
|
549
|
-
_render_dashboard_open_result(
|
|
591
|
+
_render_dashboard_open_result(
|
|
592
|
+
detail=detail, link_data=link_data, no_open=no_open, default_link_type=link_type
|
|
593
|
+
)
|
|
550
594
|
|
|
551
595
|
|
|
552
596
|
def _render_dashboard_open_result(
|
|
@@ -557,7 +601,9 @@ def _render_dashboard_open_result(
|
|
|
557
601
|
default_link_type: str = "private",
|
|
558
602
|
):
|
|
559
603
|
open_url = (link_data.get("access_url") or "").strip()
|
|
560
|
-
actual_link_type =
|
|
604
|
+
actual_link_type = (
|
|
605
|
+
str(link_data.get("link_type") or default_link_type or "").strip() or default_link_type
|
|
606
|
+
)
|
|
561
607
|
|
|
562
608
|
render_descriptor_status(
|
|
563
609
|
DASHBOARD_SHARE_RESOURCE,
|
|
@@ -566,13 +612,19 @@ def _render_dashboard_open_result(
|
|
|
566
612
|
fields=[
|
|
567
613
|
("ID", str(link_data.get("link_id") or "-"), "#58a6ff"),
|
|
568
614
|
("类型", actual_link_type, None),
|
|
569
|
-
(
|
|
615
|
+
(
|
|
616
|
+
"过期时间",
|
|
617
|
+
_format_dashboard_time(link_data.get("expires_at"), never_text="server-default"),
|
|
618
|
+
None,
|
|
619
|
+
),
|
|
570
620
|
],
|
|
571
621
|
action="open",
|
|
572
622
|
item={
|
|
573
623
|
"link_id": str(link_data.get("link_id") or "-"),
|
|
574
624
|
"type": actual_link_type,
|
|
575
|
-
"expires_at": _format_dashboard_time(
|
|
625
|
+
"expires_at": _format_dashboard_time(
|
|
626
|
+
link_data.get("expires_at"), never_text="server-default"
|
|
627
|
+
),
|
|
576
628
|
"url": open_url,
|
|
577
629
|
"agent_id": str(detail.get("agent_id") or ""),
|
|
578
630
|
"agent_name": str(detail.get("name") or ""),
|
|
@@ -596,11 +648,17 @@ def _validate_ui_path_option(ui_path: Optional[str]) -> None:
|
|
|
596
648
|
)
|
|
597
649
|
|
|
598
650
|
|
|
599
|
-
def _resolve_effective_region(
|
|
651
|
+
def _resolve_effective_region(
|
|
652
|
+
region: Optional[str], state: Optional[dict], *, region_source: str
|
|
653
|
+
) -> str:
|
|
600
654
|
explicit_region = str(region or "").strip()
|
|
601
655
|
if explicit_region and region_source == "commandline":
|
|
602
656
|
return explicit_region
|
|
603
|
-
if
|
|
657
|
+
if (
|
|
658
|
+
explicit_region
|
|
659
|
+
and region_source == "environment"
|
|
660
|
+
and not _is_global_config_injected_region()
|
|
661
|
+
):
|
|
604
662
|
return explicit_region
|
|
605
663
|
state_region = str((state or {}).get("region") or "").strip()
|
|
606
664
|
return state_region or explicit_region or DEFAULT_REGION
|
|
@@ -643,7 +701,8 @@ def _resolve_openclaw_link_path(
|
|
|
643
701
|
return normalized_path
|
|
644
702
|
|
|
645
703
|
state_data = state if isinstance(state, dict) else {}
|
|
646
|
-
|
|
704
|
+
nested_value = state_data.get("ui")
|
|
705
|
+
nested = nested_value if isinstance(nested_value, dict) else {}
|
|
647
706
|
state_path = state_data.get("ui_path") or nested.get("path")
|
|
648
707
|
if state_path is None:
|
|
649
708
|
return None
|
|
@@ -687,7 +746,9 @@ def _resolve_references(
|
|
|
687
746
|
if explicit_ref:
|
|
688
747
|
return ResolvedAgentRef(value=explicit_ref, source="cli"), None
|
|
689
748
|
|
|
690
|
-
hermes_state_ref = resolve_agent_ref(
|
|
749
|
+
hermes_state_ref = resolve_agent_ref(
|
|
750
|
+
None, cwd=cwd, include_state=True, include_project_config=False
|
|
751
|
+
)
|
|
691
752
|
openclaw_state_ref = resolve_openclaw_ref(
|
|
692
753
|
None,
|
|
693
754
|
cwd=cwd,
|
|
@@ -735,6 +796,7 @@ async def _resolve_agent_detail(
|
|
|
735
796
|
and _is_not_found_error(err)
|
|
736
797
|
)
|
|
737
798
|
if can_fallback:
|
|
799
|
+
assert fallback_ref is not None
|
|
738
800
|
fallback_detail, fallback_err = await _try_get_agent_detail(client, fallback_ref.value)
|
|
739
801
|
if fallback_detail:
|
|
740
802
|
return fallback_detail, fallback_ref, True
|
|
@@ -746,11 +808,16 @@ async def _resolve_agent_detail(
|
|
|
746
808
|
raise Exception("Agent not found")
|
|
747
809
|
|
|
748
810
|
|
|
749
|
-
async def _try_get_agent_detail(
|
|
811
|
+
async def _try_get_agent_detail(
|
|
812
|
+
client: AgentEngineClient, agent_ref: str
|
|
813
|
+
) -> Tuple[Optional[dict], Optional[Exception]]:
|
|
750
814
|
err: Optional[Exception] = None
|
|
751
|
-
for
|
|
815
|
+
for lookup_by_id in (True, False):
|
|
752
816
|
try:
|
|
753
|
-
|
|
817
|
+
if lookup_by_id:
|
|
818
|
+
agent = await client.get_agent(agent_id=agent_ref)
|
|
819
|
+
else:
|
|
820
|
+
agent = await client.get_agent(name=agent_ref)
|
|
754
821
|
if agent:
|
|
755
822
|
return _flatten_agent_detail(agent), None
|
|
756
823
|
except Exception as e:
|
|
@@ -783,7 +850,7 @@ async def _create_dashboard_access_link(
|
|
|
783
850
|
kwargs["name"] = agent_name
|
|
784
851
|
else:
|
|
785
852
|
raise Exception("missing agent reference")
|
|
786
|
-
return await client.create_dashboard_access_link(**kwargs)
|
|
853
|
+
return cast(dict[str, Any], await client.create_dashboard_access_link(**kwargs))
|
|
787
854
|
|
|
788
855
|
|
|
789
856
|
def _build_openclaw_gateway_client(region: str, detail: dict) -> OpenClawGatewayClient:
|
|
@@ -844,12 +911,14 @@ async def _list_dashboard_access_links(
|
|
|
844
911
|
kwargs["name"] = agent_name
|
|
845
912
|
else:
|
|
846
913
|
raise Exception("missing agent reference")
|
|
847
|
-
return await client.list_dashboard_access_links(**kwargs)
|
|
914
|
+
return cast(dict[str, Any], await client.list_dashboard_access_links(**kwargs))
|
|
848
915
|
|
|
849
916
|
|
|
850
|
-
async def _delete_dashboard_access_link(
|
|
917
|
+
async def _delete_dashboard_access_link(
|
|
918
|
+
*, region: str, link_id: str, dry_run: bool = False
|
|
919
|
+
) -> dict:
|
|
851
920
|
async with AgentEngineClient(region=region, dry_run=dry_run) as client:
|
|
852
|
-
return await client.delete_dashboard_access_link(link_id=link_id)
|
|
921
|
+
return cast(dict[str, Any], await client.delete_dashboard_access_link(link_id=link_id))
|
|
853
922
|
|
|
854
923
|
|
|
855
924
|
def _flatten_agent_detail(agent: dict) -> dict:
|
|
@@ -860,8 +929,14 @@ def _flatten_agent_detail(agent: dict) -> dict:
|
|
|
860
929
|
return {
|
|
861
930
|
"agent_id": basic.get("agent_id") or agent.get("agent_id") or "",
|
|
862
931
|
"name": basic.get("name") or agent.get("name") or "",
|
|
863
|
-
"framework": deploy.get("framework")
|
|
864
|
-
|
|
932
|
+
"framework": deploy.get("framework")
|
|
933
|
+
or basic.get("framework")
|
|
934
|
+
or agent.get("framework")
|
|
935
|
+
or "",
|
|
936
|
+
"endpoint": quick.get("public_endpoint")
|
|
937
|
+
or quick.get("private_endpoint")
|
|
938
|
+
or agent.get("endpoint")
|
|
939
|
+
or "",
|
|
865
940
|
"langfuse_url": adv.get("observability_url") or agent.get("langfuse_trace_url") or "",
|
|
866
941
|
}
|
|
867
942
|
|