agentengine-sdk-python 0.6.9__py3-none-any.whl → 0.8.0__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.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/METADATA +41 -23
- agentengine_sdk_python-0.8.0.dist-info/RECORD +578 -0
- ksadk/a2a/__init__.py +178 -11
- ksadk/a2a/bootstrap.py +334 -0
- ksadk/a2a/card.py +120 -0
- ksadk/a2a/context_store.py +203 -0
- ksadk/a2a/control_plane.py +818 -0
- ksadk/a2a/credential.py +99 -0
- ksadk/a2a/event_adapter.py +149 -0
- ksadk/a2a/executor.py +406 -89
- 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 +105 -0
- ksadk/a2a/server.py +107 -60
- ksadk/a2a/space_client.py +1101 -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/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 +857 -0
- ksadk/agui/config.py +86 -0
- ksadk/agui/routes.py +55 -0
- ksadk/api/client.py +252 -191
- ksadk/builders/__init__.py +2 -0
- ksadk/builders/base.py +16 -14
- ksadk/builders/code_builder.py +318 -236
- ksadk/builders/container_builder.py +187 -167
- ksadk/builders/framework_requirements.py +29 -11
- ksadk/builders/ks3_uploader.py +58 -27
- ksadk/builders/managed_runtime_builder.py +145 -0
- ksadk/builders/mcp_builder.py +91 -92
- ksadk/builders/requirements_utils.py +1 -5
- ksadk/cli/__init__.py +89 -171
- ksadk/cli/cmd_a2a.py +254 -70
- 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 +533 -726
- ksadk/cli/cmd_dashboard.py +120 -45
- ksadk/cli/cmd_deploy.py +117 -58
- ksadk/cli/cmd_destroy.py +44 -14
- ksadk/cli/cmd_files.py +63 -24
- ksadk/cli/cmd_hermes.py +173 -90
- ksadk/cli/cmd_invoke.py +388 -159
- ksadk/cli/cmd_launch.py +64 -28
- ksadk/cli/cmd_mcp.py +103 -64
- ksadk/cli/cmd_model.py +14 -5
- ksadk/cli/cmd_openclaw.py +488 -228
- ksadk/cli/cmd_replay.py +71 -0
- ksadk/cli/cmd_run.py +44 -14
- ksadk/cli/cmd_status.py +80 -31
- ksadk/cli/cmd_version.py +20 -13
- ksadk/cli/cmd_web.py +89 -13
- ksadk/cli/deploy_utils.py +20 -20
- ksadk/cli/dry_run.py +5 -3
- ksadk/cli/error_utils.py +37 -12
- ksadk/cli/global_options.py +1 -2
- ksadk/cli/local_runtime.py +1 -2
- ksadk/cli/model_catalog.py +6 -2
- ksadk/cli/network_options.py +38 -16
- ksadk/cli/resource_common.py +6 -2
- ksadk/cli/storage.py +0 -1
- ksadk/cli/ui.py +5 -3
- ksadk/cli/workflow_common.py +51 -17
- ksadk/codex/__init__.py +12 -0
- ksadk/codex/client.py +408 -0
- ksadk/codex/phase.py +143 -0
- ksadk/codex/runtime.py +449 -0
- ksadk/common/aicp_env.py +0 -1
- ksadk/common/auth.py +2 -2
- ksadk/common/constants.py +1 -3
- 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 -12
- ksadk/configs/env_registry.py +501 -100
- ksadk/configs/global_config.py +2 -1
- ksadk/configs/settings.py +151 -124
- ksadk/conversations/__init__.py +7 -5
- 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 +656 -0
- ksadk/conversations/model_context.py +22 -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 -5187
- 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 +652 -0
- ksadk/conversations/runtime_invocation.py +395 -0
- ksadk/conversations/runtime_metadata.py +475 -0
- ksadk/conversations/runtime_observability.py +355 -0
- ksadk/conversations/runtime_payloads.py +272 -0
- ksadk/conversations/runtime_persistence.py +440 -0
- ksadk/conversations/runtime_preparation.py +418 -0
- ksadk/conversations/runtime_resume.py +816 -0
- ksadk/conversations/runtime_stream_events.py +902 -0
- ksadk/conversations/runtime_streaming.py +547 -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 +52 -39
- ksadk/deployment/manager.py +63 -65
- ksadk/deployment/providers/serverless.py +326 -209
- 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/events/__init__.py +25 -0
- ksadk/events/parser.py +191 -0
- ksadk/events/replay.py +37 -0
- ksadk/events/runtime_event.py +264 -0
- ksadk/events/store.py +317 -0
- ksadk/harness/__init__.py +34 -0
- ksadk/harness/app.py +278 -0
- ksadk/harness/config.py +181 -0
- ksadk/harness/reasoner.py +105 -0
- ksadk/harness/runner.py +211 -0
- ksadk/harness/sandbox.py +141 -0
- ksadk/harness/tools.py +222 -0
- ksadk/hermes_terminal.py +23 -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 +23 -29
- ksadk/managed_runtime.py +188 -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 +26 -33
- ksadk/memory/adk/long_term_memory.py +31 -35
- ksadk/memory/adk/resilient_session_service.py +267 -0
- ksadk/memory/adk/short_term_memory.py +33 -27
- 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 +10 -8
- 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 +45 -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 +173 -0
- ksadk/model_proxy/protocol_proxy.py +22 -0
- ksadk/model_proxy/server.py +300 -0
- ksadk/model_proxy/transform.py +691 -0
- ksadk/openclaw_gateway.py +29 -14
- ksadk/runners/adk_runner.py +1248 -164
- ksadk/runners/base_runner.py +46 -29
- ksadk/runners/codex_runner.py +132 -0
- ksadk/runners/deepagents_runner.py +0 -1
- ksadk/runners/factory.py +17 -5
- ksadk/runners/langchain_runner.py +29 -530
- ksadk/runners/langgraph_runner.py +490 -95
- ksadk/runners/patch_langchain.py +16 -16
- ksadk/runners/remote_runner.py +264 -38
- ksadk/runners/usage_accumulator.py +1 -0
- ksadk/runners/utils/langfuse.py +3 -3
- ksadk/runners/utils/loader.py +7 -7
- ksadk/runtime/__init__.py +41 -0
- ksadk/runtime/adapter.py +345 -0
- ksadk/runtime/framework_adapters.py +124 -0
- ksadk/runtime/preprocessing.py +118 -0
- ksadk/runtime/runner_adapter.py +873 -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/api_models.py +15 -5
- ksadk/server/app.py +455 -3743
- ksadk/server/composition.py +21 -0
- ksadk/server/factory.py +624 -0
- ksadk/server/routes/__init__.py +1 -0
- ksadk/server/routes/checkpoint_resolution.py +116 -0
- ksadk/server/routes/common.py +713 -0
- ksadk/server/routes/control.py +327 -0
- ksadk/server/routes/dependencies.py +98 -0
- ksadk/server/routes/misc.py +448 -0
- ksadk/server/routes/models.py +443 -0
- ksadk/server/routes/openai_compat.py +207 -0
- ksadk/server/routes/projection.py +795 -0
- ksadk/server/routes/routers.py +52 -0
- ksadk/server/routes/run.py +726 -0
- ksadk/server/routes/sessions.py +649 -0
- ksadk/server/routes/streaming.py +223 -0
- ksadk/server/routes/workspace.py +381 -0
- ksadk/server/static/assets/{ArtifactsPanel-C0meuOdi.js → ArtifactsPanel-Cjnqt-8W.js} +1 -1
- ksadk/server/static/assets/CodeBlock-BqyqZfuB.js +9 -0
- ksadk/server/static/assets/MathMessageMarkdown-BpH7jiFM.js +8 -0
- ksadk/server/static/assets/MermaidBlock-DWuxETaJ.js +303 -0
- ksadk/server/static/assets/NativeTerminalPanel-MDTopWMO.js +1 -0
- ksadk/server/static/assets/{arc-bj2rZnP5.js → arc-CFKwSk_B.js} +1 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-CynqOWjZ.js +1 -0
- ksadk/server/static/assets/{architectureDiagram-3BPJPVTR-2u1ltDIj.js → architectureDiagram-3BPJPVTR-Dej8jX8c.js} +1 -1
- ksadk/server/static/assets/{blockDiagram-GPEHLZMM-D6fvdK20.js → blockDiagram-GPEHLZMM-1F64jqvy.js} +1 -1
- ksadk/server/static/assets/{c4Diagram-AAUBKEIU-BK82L5n5.js → c4Diagram-AAUBKEIU-9q7AUAKb.js} +1 -1
- ksadk/server/static/assets/channel-iUGv2N24.js +1 -0
- ksadk/server/static/assets/{chunk-2J33WTMH-DLVdkeyQ.js → chunk-2J33WTMH-6qgwJm7Q.js} +1 -1
- ksadk/server/static/assets/{chunk-4BX2VUAB-BbwsYcbW.js → chunk-4BX2VUAB-CsWIQRhc.js} +1 -1
- ksadk/server/static/assets/{chunk-55IACEB6-DOairxzw.js → chunk-55IACEB6-BK8paA20.js} +1 -1
- ksadk/server/static/assets/{chunk-727SXJPM-hCO487gs.js → chunk-727SXJPM-B-JEhy7h.js} +1 -1
- ksadk/server/static/assets/{chunk-AQP2D5EJ-XU8vDOuG.js → chunk-AQP2D5EJ-DYBvMHAa.js} +1 -1
- ksadk/server/static/assets/{chunk-FMBD7UC4-PrapyfMu.js → chunk-FMBD7UC4-BGhvzDYt.js} +1 -1
- ksadk/server/static/assets/{chunk-ND2GUHAM-CboKhTZ3.js → chunk-ND2GUHAM-D98vPd-E.js} +1 -1
- ksadk/server/static/assets/chunk-QZHKN3VN-YQIEXeF6.js +1 -0
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-CDAUuoXK.js +1 -0
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-CDAUuoXK.js +1 -0
- ksadk/server/static/assets/{cose-bilkent-S5V4N54A-_N8bJ-EU.js → cose-bilkent-S5V4N54A-CX3yotHq.js} +1 -1
- ksadk/server/static/assets/{dagre-BM42HDAG-FoDlo5J2.js → dagre-BM42HDAG-C7TguAWo.js} +1 -1
- ksadk/server/static/assets/{diagram-2AECGRRQ-BBp6ebBw.js → diagram-2AECGRRQ-Dd17_kws.js} +1 -1
- ksadk/server/static/assets/{diagram-5GNKFQAL-CqOvG1PR.js → diagram-5GNKFQAL-DVIClIil.js} +1 -1
- ksadk/server/static/assets/{diagram-KO2AKTUF-O9T3t6ba.js → diagram-KO2AKTUF-Df_3gYQa.js} +1 -1
- ksadk/server/static/assets/{diagram-LMA3HP47-CGG8ekBO.js → diagram-LMA3HP47-BhLk6ZtA.js} +1 -1
- ksadk/server/static/assets/{diagram-OG6HWLK6-4BmH1EEg.js → diagram-OG6HWLK6-D4GNGvuu.js} +1 -1
- ksadk/server/static/assets/{dist-CiZHB6ZW.js → dist-6CVKuTAe.js} +1 -1
- ksadk/server/static/assets/{dist-BMKM66B4.js → dist-BUHRxvDG.js} +1 -1
- ksadk/server/static/assets/{dist-CZ6C3x8B.js → dist-BZ9n9AjO.js} +1 -1
- ksadk/server/static/assets/{dist-DbaH3p5h.js → dist-BibcG1V9.js} +1 -1
- ksadk/server/static/assets/{dist-BVzcWa6D.js → dist-Bs-jQcRX.js} +1 -1
- ksadk/server/static/assets/{dist-D99wf6_X.js → dist-C2xjE7cO.js} +1 -1
- ksadk/server/static/assets/{dist-DLMjL01k.js → dist-C7-3jInC.js} +1 -1
- ksadk/server/static/assets/{dist-DI-oVAXw.js → dist-C99THtIA.js} +1 -1
- ksadk/server/static/assets/{dist-BkJjNih3.js → dist-CGcp2ex8.js} +1 -1
- ksadk/server/static/assets/{dist-D5JGcxBx.js → dist-CVQRZjPu.js} +1 -1
- ksadk/server/static/assets/{dist-CWiTDN_V.js → dist-Cf23NY4L.js} +1 -1
- ksadk/server/static/assets/{dist-DLeM1OCK.js → dist-CgF3fj15.js} +1 -1
- ksadk/server/static/assets/{dist-BmuTWcm7.js → dist-Cwt7koer.js} +1 -1
- ksadk/server/static/assets/{dist-C2DKRFVK.js → dist-D82mtD2s.js} +1 -1
- ksadk/server/static/assets/{dist-B67uF2uK.js → dist-DF06ORQo.js} +1 -1
- ksadk/server/static/assets/{dist-Cwhk4lwI.js → dist-DHn6nBzr.js} +1 -1
- ksadk/server/static/assets/{dist-S4klkK5W.js → dist-Djgl2wVZ.js} +1 -1
- ksadk/server/static/assets/{dist-DCpZrjaK.js → dist-DlzCRy0S.js} +1 -1
- ksadk/server/static/assets/{dist-Cp1_jKwf.js → dist-DqNnNFrw.js} +1 -1
- ksadk/server/static/assets/{dist-6kSZvCZh.js → dist-DyvYLMW9.js} +1 -1
- ksadk/server/static/assets/{dist-DM0rEQPk.js → dist-eoW6tZXA.js} +1 -1
- ksadk/server/static/assets/{dist-Bk1l05Ni.js → dist-ivOya1LD.js} +1 -1
- ksadk/server/static/assets/{erDiagram-TEJ5UH35-oJhaci7S.js → erDiagram-TEJ5UH35-CnfRcY2M.js} +1 -1
- ksadk/server/static/assets/eventmodeling-FCH6USID-ChYO-ijM.js +1 -0
- ksadk/server/static/assets/{flowDiagram-I6XJVG4X-DtTmUan-.js → flowDiagram-I6XJVG4X-DGaJjGNJ.js} +1 -1
- ksadk/server/static/assets/{ganttDiagram-6RSMTGT7-BSsb_eij.js → ganttDiagram-6RSMTGT7-DpCoB2g9.js} +1 -1
- ksadk/server/static/assets/gitGraph-WXDBUCRP-BN_0Fk-j.js +1 -0
- ksadk/server/static/assets/{gitGraphDiagram-PVQCEYII-BR5s6Pws.js → gitGraphDiagram-PVQCEYII-9IKVFBVT.js} +1 -1
- ksadk/server/static/assets/index-QSwCHuB8.js +177 -0
- ksadk/server/static/assets/index-jOPmTOZH.css +2 -0
- ksadk/server/static/assets/info-J43DQDTF-Cp6o3vId.js +1 -0
- ksadk/server/static/assets/{infoDiagram-5YYISTIA-DYPc5cvh.js → infoDiagram-5YYISTIA-CYIIsb8y.js} +1 -1
- ksadk/server/static/assets/{ishikawaDiagram-YF4QCWOH-MoBdALDg.js → ishikawaDiagram-YF4QCWOH-DLOHGvWw.js} +1 -1
- ksadk/server/static/assets/{journeyDiagram-JHISSGLW-DgLiQT8l.js → journeyDiagram-JHISSGLW-BIzKeejT.js} +1 -1
- ksadk/server/static/assets/{kanban-definition-UN3LZRKU-CsFx112F.js → kanban-definition-UN3LZRKU-BWHoFSw2.js} +1 -1
- ksadk/server/static/assets/{katex-DRsiwpM2.js → katex-DATssjp1.js} +1 -1
- ksadk/server/static/assets/{linear-TNRQ5Orv.js → linear-CvMBw9cA.js} +1 -1
- ksadk/server/static/assets/{mermaid-parser.core-D2eMVOgo.js → mermaid-parser.core-mGAcEwcq.js} +2 -2
- ksadk/server/static/assets/{mindmap-definition-RKZ34NQL-BtByYFhL.js → mindmap-definition-RKZ34NQL-CSAQxEAe.js} +1 -1
- ksadk/server/static/assets/packet-YPE3B663-wQzct3cT.js +1 -0
- ksadk/server/static/assets/pie-LRSECV5Y-BgTQiv-9.js +1 -0
- ksadk/server/static/assets/{pieDiagram-4H26LBE5-DPnuCB8c.js → pieDiagram-4H26LBE5-By-ra07M.js} +1 -1
- ksadk/server/static/assets/{quadrantDiagram-W4KKPZXB-miFpCPv4.js → quadrantDiagram-W4KKPZXB-CxIR4JXI.js} +1 -1
- ksadk/server/static/assets/radar-GUYGQ44K-BIq5fXsn.js +1 -0
- ksadk/server/static/assets/{requirementDiagram-4Y6WPE33-mjB_yYkW.js → requirementDiagram-4Y6WPE33-DpW90iu3.js} +1 -1
- ksadk/server/static/assets/{sankeyDiagram-5OEKKPKP-D7hSlZZZ.js → sankeyDiagram-5OEKKPKP-DpGa6EAV.js} +1 -1
- ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-D9Cx6hC3.js → sequenceDiagram-3UESZ5HK-NTKNGGe5.js} +1 -1
- ksadk/server/static/assets/{stateDiagram-AJRCARHV-D_zrg47o.js → stateDiagram-AJRCARHV-DGpd9yFG.js} +1 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-B3o579IQ.js +1 -0
- ksadk/server/static/assets/{timeline-definition-PNZ67QCA-CwSec0Wa.js → timeline-definition-PNZ67QCA-jqoYs3jQ.js} +1 -1
- ksadk/server/static/assets/treeView-BLDUP644-Dqi-E0EM.js +1 -0
- ksadk/server/static/assets/treemap-LRROVOQU-ClQP9CJ9.js +1 -0
- ksadk/server/static/assets/{vennDiagram-CIIHVFJN-agCVobiF.js → vennDiagram-CIIHVFJN-l3Z7-wbP.js} +1 -1
- ksadk/server/static/assets/wardley-L42UT6IY-8XLvnNIs.js +1 -0
- ksadk/server/static/assets/{wardleyDiagram-YWT4CUSO-TmrlhWNt.js → wardleyDiagram-YWT4CUSO-BR54GPmr.js} +1 -1
- ksadk/server/static/assets/{xychartDiagram-2RQKCTM6-DV71V-ah.js → xychartDiagram-2RQKCTM6-SkiH8GsK.js} +1 -1
- ksadk/server/static/index.html +2 -2
- ksadk/server/terminal_sessions.py +111 -58
- ksadk/sessions/__init__.py +86 -40
- ksadk/sessions/base.py +31 -11
- ksadk/sessions/continuity.py +28 -5
- ksadk/sessions/in_memory.py +46 -2
- ksadk/sessions/local_service.py +148 -17
- ksadk/sessions/postgres_service.py +216 -35
- ksadk/sessions/resilience.py +52 -0
- ksadk/sessions/resilient.py +388 -0
- 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 +38 -17
- ksadk/skills/tool_defs.py +15 -10
- ksadk/terminal_exec_policy.py +3 -4
- ksadk/tools/gateway.py +92 -15
- ksadk/tools/result_budget.py +12 -4
- ksadk/toolsets/__init__.py +136 -36
- 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 +264 -114
- ksadk/tracing/exporters/inmemory_exporter.py +62 -51
- ksadk/tracing/exporters/langfuse_exporter.py +91 -76
- ksadk/tracing/setup.py +132 -53
- ksadk/tracing/span_utils.py +5 -2
- ksadk/tui/__init__.py +22 -7
- ksadk/tui/loop.py +1925 -0
- ksadk/tui/stream_render.py +69 -0
- ksadk/ui_config.py +5 -3
- ksadk/version.py +1 -1
- ksadk_runtime_common/schemas/runtime_event_v1.json +95 -0
- agentengine_sdk_python-0.6.9.dist-info/RECORD +0 -487
- ksadk/server/static/assets/CodeBlock-BbI4HPtJ.js +0 -9
- ksadk/server/static/assets/MathMessageMarkdown-DMLQYoLp.js +0 -8
- ksadk/server/static/assets/MermaidBlock-DCR8WZ17.js +0 -303
- ksadk/server/static/assets/NativeTerminalPanel-CKUvWhUz.js +0 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-Cr6Xz1_c.js +0 -1
- ksadk/server/static/assets/channel-BSSOwFIb.js +0 -1
- ksadk/server/static/assets/chunk-QZHKN3VN-XXpdiwUL.js +0 -1
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-C5HvGiyK.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-C5HvGiyK.js +0 -1
- ksadk/server/static/assets/eventmodeling-FCH6USID-CIgwHJLL.js +0 -1
- ksadk/server/static/assets/gitGraph-WXDBUCRP-BVAJ7uo0.js +0 -1
- ksadk/server/static/assets/index-BH7-pC0B.js +0 -165
- ksadk/server/static/assets/index-DAURbCsP.css +0 -1
- ksadk/server/static/assets/info-J43DQDTF-MT80V4ge.js +0 -1
- ksadk/server/static/assets/packet-YPE3B663-BLKhbXZB.js +0 -1
- ksadk/server/static/assets/pie-LRSECV5Y-DFOikjSY.js +0 -1
- ksadk/server/static/assets/radar-GUYGQ44K-095b1Ikw.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-J9kCb0nC.js +0 -1
- ksadk/server/static/assets/treeView-BLDUP644-yinfJEY6.js +0 -1
- ksadk/server/static/assets/treemap-LRROVOQU-DosUqN1Q.js +0 -1
- ksadk/server/static/assets/wardley-L42UT6IY-Bvp7-5uH.js +0 -1
- ksadk/tui/app.py +0 -400
- ksadk/tui/clipboard.py +0 -100
- ksadk/tui/widgets/__init__.py +0 -22
- ksadk/tui/widgets/assistant.py +0 -89
- ksadk/tui/widgets/base.py +0 -54
- ksadk/tui/widgets/chat_input.py +0 -246
- ksadk/tui/widgets/history.py +0 -156
- ksadk/tui/widgets/system.py +0 -87
- ksadk/tui/widgets/thinking.py +0 -110
- ksadk/tui/widgets/tool_call.py +0 -161
- ksadk/tui/widgets/user.py +0 -37
- {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/WHEEL +0 -0
- {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/top_level.txt +0 -0
ksadk/cli/__init__.py
CHANGED
|
@@ -81,7 +81,7 @@ ROOT_HELP_TOOL_COMMANDS = {
|
|
|
81
81
|
"config",
|
|
82
82
|
}
|
|
83
83
|
SHORT_HELP_MAP = {
|
|
84
|
-
"a2a": "
|
|
84
|
+
"a2a": "A2A 协议服务与本地试调",
|
|
85
85
|
"agent": "Agent 资源管理",
|
|
86
86
|
"build": "构建部署制品",
|
|
87
87
|
"completion": "Shell 补全管理",
|
|
@@ -180,6 +180,10 @@ class ColoredHelpGroup(click.Group):
|
|
|
180
180
|
_write_colored_help_row(formatter, "agentengine deploy", "部署到云端")
|
|
181
181
|
_write_colored_help_row(formatter, "agentengine launch", "一键构建+部署")
|
|
182
182
|
_write_colored_help_row(formatter, "agentengine agent", "Agent 资源管理")
|
|
183
|
+
_write_colored_help_row(formatter, "agentengine version", "Agent 版本管理")
|
|
184
|
+
_write_colored_help_row(formatter, "agentengine mcp", "MCP 资源管理")
|
|
185
|
+
_write_colored_help_row(formatter, "agentengine a2a", "A2A 协议服务与本地试调")
|
|
186
|
+
_write_colored_help_row(formatter, "agentengine files", "管理云端 workspace 文件")
|
|
183
187
|
_write_colored_help_row(formatter, "agentengine dashboard", "打开云端 Agent Dashboard")
|
|
184
188
|
_write_colored_help_row(formatter, "agentengine hermes", "Hermes Agent 资源管理")
|
|
185
189
|
_write_colored_help_row(formatter, "agentengine openclaw", "OpenClaw 资源管理")
|
|
@@ -187,13 +191,11 @@ class ColoredHelpGroup(click.Group):
|
|
|
187
191
|
# 配置与工具
|
|
188
192
|
formatter.write(click.style(" 🧰 配置:\n\n", fg="yellow", bold=True))
|
|
189
193
|
_write_colored_help_row(formatter, "agentengine config", "项目配置向导与模型配置")
|
|
194
|
+
_write_colored_help_row(formatter, "agentengine completion", "Shell 补全管理")
|
|
190
195
|
|
|
191
196
|
# 自定义 Options 格式化
|
|
192
197
|
self.format_options_colored(ctx, formatter)
|
|
193
198
|
|
|
194
|
-
# 自定义 Commands 格式化
|
|
195
|
-
self.format_commands_colored(ctx, formatter)
|
|
196
|
-
|
|
197
199
|
def format_options_colored(self, ctx, formatter):
|
|
198
200
|
"""自定义选项格式化"""
|
|
199
201
|
formatter.write(click.style(" ⚙️ 选项:\n\n", fg="yellow", bold=True))
|
|
@@ -212,7 +214,8 @@ class ColoredHelpGroup(click.Group):
|
|
|
212
214
|
formatter.write_paragraph()
|
|
213
215
|
formatter.write_text("AgentEngine CLI")
|
|
214
216
|
formatter.write_text(
|
|
215
|
-
"支持 Hermes / OpenClaw / DeepAgents / LangGraph / LangChain / Google ADK
|
|
217
|
+
"支持 Hermes / OpenClaw / DeepAgents / LangGraph / LangChain / Google ADK "
|
|
218
|
+
"的本地运行与云端部署。"
|
|
216
219
|
)
|
|
217
220
|
|
|
218
221
|
formatter.write_paragraph()
|
|
@@ -236,61 +239,6 @@ class ColoredHelpGroup(click.Group):
|
|
|
236
239
|
formatter.write_paragraph()
|
|
237
240
|
formatter.write_text("使用 `agentengine <command> --help` 查看子命令帮助。")
|
|
238
241
|
|
|
239
|
-
def format_commands_colored(self, ctx, formatter):
|
|
240
|
-
"""自定义命令列表格式,更简洁美观"""
|
|
241
|
-
icon_map = {
|
|
242
|
-
"a2a": "↔️",
|
|
243
|
-
"agent": "🤖",
|
|
244
|
-
"build": "🔨",
|
|
245
|
-
"completion": "⌨️",
|
|
246
|
-
"dashboard": "🖥️",
|
|
247
|
-
"deploy": "🚀",
|
|
248
|
-
"files": "📄",
|
|
249
|
-
"hermes": "⌁",
|
|
250
|
-
"init": "📁",
|
|
251
|
-
"launch": "✨",
|
|
252
|
-
"mcp": "🔌",
|
|
253
|
-
"openclaw": "🦞",
|
|
254
|
-
"run": "▶️",
|
|
255
|
-
"version": "🏷️",
|
|
256
|
-
"web": "🌐",
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
commands = []
|
|
260
|
-
for subcommand in self.list_commands(ctx):
|
|
261
|
-
cmd = self.get_command(ctx, subcommand)
|
|
262
|
-
if cmd is None:
|
|
263
|
-
continue
|
|
264
|
-
if getattr(cmd, "hidden", False):
|
|
265
|
-
continue
|
|
266
|
-
if subcommand not in ROOT_HELP_COMMANDS:
|
|
267
|
-
continue
|
|
268
|
-
commands.append((subcommand, cmd))
|
|
269
|
-
|
|
270
|
-
if not commands:
|
|
271
|
-
return
|
|
272
|
-
|
|
273
|
-
formatter.write(click.style("\n 📋 可用命令:\n\n", fg="magenta", bold=True))
|
|
274
|
-
|
|
275
|
-
# Emoji、变体选择符和 CJK 字符的 Python len 与终端 cell 宽度不同。
|
|
276
|
-
# 这里按 cell 宽度补齐,保证命令列和说明列在真实终端里同列。
|
|
277
|
-
icon_width = max(_terminal_cell_width(icon) for icon in icon_map.values())
|
|
278
|
-
max_cmd_width = max(max(_terminal_cell_width(name) for name, _ in commands), 16)
|
|
279
|
-
|
|
280
|
-
for subcommand, cmd in commands:
|
|
281
|
-
# 使用预定义的简短描述
|
|
282
|
-
help_text = SHORT_HELP_MAP.get(subcommand, "")
|
|
283
|
-
if not help_text and cmd.help:
|
|
284
|
-
# 只取 docstring 第一行
|
|
285
|
-
help_text = cmd.help.split("\n")[0].strip()
|
|
286
|
-
|
|
287
|
-
# 格式化输出
|
|
288
|
-
icon = icon_map.get(subcommand, "•")
|
|
289
|
-
icon_cell = _pad_to_terminal_cells(icon, icon_width)
|
|
290
|
-
name_cell = _pad_to_terminal_cells(subcommand, max_cmd_width)
|
|
291
|
-
formatter.write(click.style(f" {icon_cell} ", fg="cyan"))
|
|
292
|
-
formatter.write(click.style(f"{name_cell} ", fg="cyan"))
|
|
293
|
-
formatter.write(click.style(f"{help_text}\n\n", fg="white"))
|
|
294
242
|
|
|
295
243
|
@click.group(cls=ColoredHelpGroup, context_settings=CONTEXT_SETTINGS)
|
|
296
244
|
@click.version_option(version=VERSION, prog_name="AgentEngine")
|
|
@@ -311,138 +259,106 @@ def _add_command_once(group: click.Group, command, *, name: str | None = None):
|
|
|
311
259
|
group.add_command(command, name=name)
|
|
312
260
|
|
|
313
261
|
|
|
314
|
-
def
|
|
315
|
-
|
|
316
|
-
from ksadk.cli.cmd_deploy import deploy
|
|
317
|
-
from ksadk.cli.cmd_run import run
|
|
318
|
-
from ksadk.cli.cmd_web import web
|
|
262
|
+
def _unavailable_command_stub(cmd_name: str, module_path: str, exc: Exception) -> click.Group:
|
|
263
|
+
"""命令加载失败时的**显式降级** stub:``-h`` 可见失败原因,调用报显式错误。
|
|
319
264
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
265
|
+
替代 ``except ImportError: pass`` 静默吞(goal-16 Windows bug:``agentengine a2a -h``
|
|
266
|
+
曾因 cmd_a2a import 失败被吞而报 "No such command 'a2a'")。降级后 ``-h`` 仍退出 0
|
|
267
|
+
并显示失败原因,调用子命令报显式 ClickException——失败显式可见,不再静默。
|
|
268
|
+
"""
|
|
324
269
|
|
|
325
|
-
|
|
326
|
-
|
|
270
|
+
@click.group(
|
|
271
|
+
cmd_name,
|
|
272
|
+
context_settings=dict(help_option_names=["-h", "--help"]),
|
|
273
|
+
help=f"(加载失败){cmd_name} 命令不可用:{exc}",
|
|
274
|
+
invoke_without_command=True,
|
|
275
|
+
no_args_is_help=False,
|
|
276
|
+
)
|
|
277
|
+
def _stub():
|
|
278
|
+
raise click.ClickException(f"命令 {cmd_name!r} 不可用:加载 {module_path} 失败({exc})")
|
|
327
279
|
|
|
328
|
-
|
|
329
|
-
try:
|
|
330
|
-
from ksadk.cli.cmd_a2a import a2a
|
|
331
|
-
|
|
332
|
-
_add_command_once(cli, a2a)
|
|
333
|
-
except ImportError:
|
|
334
|
-
pass
|
|
280
|
+
return _stub
|
|
335
281
|
|
|
336
|
-
try:
|
|
337
|
-
from ksadk.cli.cmd_files import files
|
|
338
282
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
pass
|
|
356
|
-
|
|
357
|
-
try:
|
|
358
|
-
from ksadk.cli.cmd_build import build
|
|
359
|
-
|
|
360
|
-
_add_command_once(cli, build)
|
|
361
|
-
except ImportError:
|
|
362
|
-
pass
|
|
363
|
-
|
|
364
|
-
try:
|
|
365
|
-
from ksadk.cli.cmd_launch import launch
|
|
366
|
-
|
|
367
|
-
_add_command_once(cli, launch)
|
|
368
|
-
except ImportError:
|
|
369
|
-
pass
|
|
370
|
-
|
|
371
|
-
try:
|
|
372
|
-
from ksadk.cli.cmd_agent import agent
|
|
373
|
-
|
|
374
|
-
_add_command_once(cli, agent)
|
|
375
|
-
except ImportError:
|
|
376
|
-
pass
|
|
283
|
+
def _warn_unavailable_optional_command(
|
|
284
|
+
cmd_names: tuple[str, ...], module_path: str, exc: Exception
|
|
285
|
+
) -> None:
|
|
286
|
+
"""Print actionable startup guidance while retaining the explicit command stub."""
|
|
287
|
+
command_list = ", ".join(repr(name) for name in cmd_names)
|
|
288
|
+
message = (
|
|
289
|
+
f"WARNING: optional command {command_list} is unavailable because {module_path} "
|
|
290
|
+
f"could not load: {exc}. The remaining ksadk commands are still available."
|
|
291
|
+
)
|
|
292
|
+
if "a2a" in cmd_names:
|
|
293
|
+
message += (
|
|
294
|
+
" KsADK 0.8 requires a2a-sdk==1.1.0; activate the intended virtual environment and "
|
|
295
|
+
'run `python -m pip install --upgrade "ksadk[a2a]"`. A2A 0.3 projects must use a '
|
|
296
|
+
"separate environment."
|
|
297
|
+
)
|
|
298
|
+
click.echo(message, err=True)
|
|
377
299
|
|
|
378
|
-
try:
|
|
379
|
-
from ksadk.cli.cmd_status import status
|
|
380
300
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
301
|
+
def _register_optional_command(cli: click.Group, module_path: str, *cmd_names: str) -> None:
|
|
302
|
+
"""注册可选命令组;导入或依赖 API 不兼容时注册显式降级 stub(不静默吞)。"""
|
|
303
|
+
import importlib
|
|
384
304
|
|
|
385
305
|
try:
|
|
386
|
-
|
|
306
|
+
module = importlib.import_module(module_path)
|
|
307
|
+
# Optional command imports can fail before an ImportError is raised when an installed
|
|
308
|
+
# optional SDK exposes an incompatible API. Keep the top-level CLI usable and make the
|
|
309
|
+
# unavailable command report the original reason instead of masking it as a CLI crash.
|
|
310
|
+
except (ImportError, AttributeError) as exc:
|
|
311
|
+
_warn_unavailable_optional_command(cmd_names, module_path, exc)
|
|
312
|
+
for cmd_name in cmd_names:
|
|
313
|
+
_add_command_once(cli, _unavailable_command_stub(cmd_name, module_path, exc))
|
|
314
|
+
return
|
|
315
|
+
for cmd_name in cmd_names:
|
|
316
|
+
_add_command_once(cli, getattr(module, cmd_name))
|
|
387
317
|
|
|
388
|
-
_add_command_once(cli, invoke)
|
|
389
|
-
except ImportError:
|
|
390
|
-
pass
|
|
391
318
|
|
|
392
|
-
|
|
393
|
-
|
|
319
|
+
def _register_commands():
|
|
320
|
+
from ksadk.cli.cmd_create import create
|
|
321
|
+
from ksadk.cli.cmd_deploy import deploy
|
|
322
|
+
from ksadk.cli.cmd_run import run
|
|
323
|
+
from ksadk.cli.cmd_web import web
|
|
394
324
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
325
|
+
# 注册现有命令
|
|
326
|
+
_add_command_once(cli, run)
|
|
327
|
+
_add_command_once(cli, deploy)
|
|
328
|
+
_add_command_once(cli, web)
|
|
398
329
|
|
|
399
|
-
|
|
400
|
-
|
|
330
|
+
# init 作为主命令 (PRD 规范)
|
|
331
|
+
_add_command_once(cli, create, name="init")
|
|
401
332
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
333
|
+
# 注册可选命令组;加载失败时显式降级(不静默吞,见 _register_optional_command)。
|
|
334
|
+
_register_optional_command(cli, "ksadk.cli.cmd_a2a", "a2a")
|
|
335
|
+
_register_optional_command(cli, "ksadk.cli.cmd_files", "files")
|
|
336
|
+
_register_optional_command(cli, "ksadk.cli.cmd_config", "config")
|
|
337
|
+
_register_optional_command(cli, "ksadk.cli.cmd_model", "model")
|
|
338
|
+
_register_optional_command(cli, "ksadk.cli.cmd_build", "build")
|
|
339
|
+
_register_optional_command(cli, "ksadk.cli.cmd_launch", "launch")
|
|
340
|
+
_register_optional_command(cli, "ksadk.cli.cmd_agent", "agent")
|
|
341
|
+
_register_optional_command(cli, "ksadk.cli.cmd_status", "status")
|
|
342
|
+
_register_optional_command(cli, "ksadk.cli.cmd_invoke", "invoke")
|
|
343
|
+
_register_optional_command(cli, "ksadk.cli.cmd_dashboard", "dashboard")
|
|
344
|
+
_register_optional_command(cli, "ksadk.cli.cmd_replay", "replay")
|
|
345
|
+
_register_optional_command(cli, "ksadk.cli.cmd_destroy", "delete", "destroy")
|
|
406
346
|
|
|
407
347
|
# MCP 命令组
|
|
408
|
-
|
|
409
|
-
from ksadk.cli.cmd_mcp import mcp
|
|
410
|
-
|
|
411
|
-
_add_command_once(cli, mcp)
|
|
412
|
-
except ImportError:
|
|
413
|
-
pass
|
|
348
|
+
_register_optional_command(cli, "ksadk.cli.cmd_mcp", "mcp")
|
|
414
349
|
|
|
415
350
|
# Completion 命令组
|
|
416
|
-
|
|
417
|
-
from ksadk.cli.cmd_completion import completion
|
|
418
|
-
|
|
419
|
-
_add_command_once(cli, completion)
|
|
420
|
-
except ImportError:
|
|
421
|
-
pass
|
|
351
|
+
_register_optional_command(cli, "ksadk.cli.cmd_completion", "completion")
|
|
422
352
|
|
|
423
353
|
# Version 命令组
|
|
424
|
-
|
|
425
|
-
from ksadk.cli.cmd_version import version
|
|
426
|
-
|
|
427
|
-
_add_command_once(cli, version)
|
|
428
|
-
except ImportError:
|
|
429
|
-
pass
|
|
354
|
+
_register_optional_command(cli, "ksadk.cli.cmd_version", "version")
|
|
430
355
|
|
|
431
356
|
# OpenClaw 命令组
|
|
432
|
-
|
|
433
|
-
from ksadk.cli.cmd_openclaw import openclaw
|
|
434
|
-
|
|
435
|
-
_add_command_once(cli, openclaw)
|
|
436
|
-
except ImportError:
|
|
437
|
-
pass
|
|
357
|
+
_register_optional_command(cli, "ksadk.cli.cmd_openclaw", "openclaw")
|
|
438
358
|
|
|
439
359
|
# Hermes 命令组
|
|
440
|
-
|
|
441
|
-
from ksadk.cli.cmd_hermes import hermes
|
|
360
|
+
_register_optional_command(cli, "ksadk.cli.cmd_hermes", "hermes")
|
|
442
361
|
|
|
443
|
-
_add_command_once(cli, hermes)
|
|
444
|
-
except ImportError:
|
|
445
|
-
pass
|
|
446
362
|
|
|
447
363
|
def main():
|
|
448
364
|
# 全局加载 .env 文件
|
|
@@ -473,24 +389,25 @@ def main():
|
|
|
473
389
|
if not loaded:
|
|
474
390
|
# 回退到系统默认编码 (Windows 上通常是 GBK/cp936)
|
|
475
391
|
import locale
|
|
392
|
+
|
|
476
393
|
fallback_encoding = locale.getpreferredencoding(False)
|
|
477
394
|
try:
|
|
478
395
|
load_dotenv(dotenv_path, override=False, encoding=fallback_encoding)
|
|
479
396
|
click.echo(
|
|
480
397
|
click.style(
|
|
481
398
|
f"⚠️ 警告: .env 文件使用 {fallback_encoding} 编码,建议转换为 UTF-8\n",
|
|
482
|
-
fg="yellow"
|
|
399
|
+
fg="yellow",
|
|
483
400
|
),
|
|
484
|
-
err=True
|
|
401
|
+
err=True,
|
|
485
402
|
)
|
|
486
403
|
except UnicodeDecodeError:
|
|
487
404
|
click.echo(
|
|
488
405
|
click.style(
|
|
489
406
|
f"❌ 错误: .env 文件编码无法识别,请确保使用 UTF-8 编码保存\n"
|
|
490
407
|
f" 文件路径: {dotenv_path}\n",
|
|
491
|
-
fg="red"
|
|
408
|
+
fg="red",
|
|
492
409
|
),
|
|
493
|
-
err=True
|
|
410
|
+
err=True,
|
|
494
411
|
)
|
|
495
412
|
except ImportError:
|
|
496
413
|
pass
|
|
@@ -498,6 +415,7 @@ def main():
|
|
|
498
415
|
# 全局配置回退: .env 未设置的变量从 ~/.agentengine/settings.json 补充
|
|
499
416
|
try:
|
|
500
417
|
from ksadk.configs.global_config import get_env_from_global_config
|
|
418
|
+
|
|
501
419
|
global_env = get_env_from_global_config()
|
|
502
420
|
injected_keys = []
|
|
503
421
|
for key, value in global_env.items():
|