agentengine-sdk-python 0.8.1__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.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/METADATA +22 -2
- {agentengine_sdk_python-0.8.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/RECORD +356 -222
- ksadk/a2a/_space_client_events.py +381 -0
- ksadk/a2a/event_adapter.py +156 -64
- ksadk/a2a/executor.py +179 -63
- ksadk/a2a/space_client.py +6 -333
- ksadk/a2ui/core.py +222 -53
- ksadk/agui/_agent_helpers.py +243 -0
- ksadk/agui/a2ui_projection.py +12 -5
- ksadk/agui/agent.py +443 -259
- ksadk/api/client.py +525 -27
- ksadk/builders/code_builder.py +284 -8
- ksadk/builders/container_builder.py +8 -1
- ksadk/builders/managed_runtime_builder.py +39 -35
- ksadk/cli/__init__.py +17 -0
- ksadk/cli/cmd_dashboard.py +15 -1
- ksadk/cli/cmd_deploy.py +10 -2
- ksadk/cli/cmd_eval.py +66 -9
- ksadk/cli/cmd_evalset.py +284 -0
- ksadk/cli/cmd_files.py +5 -1
- ksadk/cli/cmd_hermes.py +1 -126
- ksadk/cli/cmd_invoke.py +28 -38
- ksadk/cli/cmd_managed_runtime.py +95 -0
- ksadk/cli/cmd_observe.py +85 -0
- ksadk/cli/cmd_openclaw.py +1 -435
- ksadk/cli/cmd_replay.py +28 -4
- ksadk/cli/cmd_studio.py +99 -8
- ksadk/cli/cmd_web.py +10 -2
- ksadk/cli/hermes_env.py +151 -0
- ksadk/cli/invoke_payload.py +49 -0
- ksadk/cli/openclaw_env.py +458 -0
- ksadk/codex/client.py +180 -30
- ksadk/codex/runtime.py +428 -326
- ksadk/configs/env_registry.py +66 -12
- ksadk/configs/env_registry_pcm.py +181 -0
- ksadk/configs/env_var_spec.py +18 -0
- ksadk/configs/global_config.py +5 -0
- 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/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 +184 -2
- ksadk/conversations/runtime_invocation.py +81 -3
- ksadk/conversations/runtime_observability.py +141 -0
- ksadk/conversations/runtime_payloads.py +42 -0
- ksadk/conversations/runtime_preparation.py +272 -2
- ksadk/conversations/runtime_resume.py +20 -1
- ksadk/conversations/runtime_stream_events.py +94 -9
- 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 +5 -0
- ksadk/deployment/providers/serverless.py +143 -69
- ksadk/evaluation/__init__.py +32 -0
- ksadk/evaluation/a2a_adapter.py +9 -1
- ksadk/evaluation/adapters.py +18 -5
- 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 +73 -4
- ksadk/evaluation/evaluators.py +183 -17
- ksadk/evaluation/evidence.py +258 -0
- ksadk/evaluation/executor.py +31 -6
- ksadk/evaluation/local_adapter.py +550 -0
- ksadk/evaluation/service_env.py +27 -0
- ksadk/evaluation/studio_build_adapter.py +253 -0
- ksadk/evaluation/target.py +15 -6
- 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 -265
- ksadk/events/session_event.py +324 -0
- ksadk/events/store.py +3 -316
- ksadk/events/v1_compat.py +41 -0
- ksadk/harness/runtime.py +160 -57
- 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 +7 -0
- ksadk/knowledge_base/service.py +32 -5
- 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 +384 -2
- ksadk/memory/adk/backends/sqlite_ltm_backend.py +95 -0
- 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 +188 -6
- ksadk/model_proxy/bootstrap.py +16 -9
- ksadk/model_proxy/detect.py +202 -9
- ksadk/model_proxy/namespace.py +39 -15
- ksadk/model_proxy/server.py +24 -5
- ksadk/model_proxy/transform.py +60 -2
- 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 +5 -5
- ksadk/runners/base_runner.py +16 -0
- ksadk/runners/factory.py +1 -2
- ksadk/runners/langgraph_runner.py +198 -437
- ksadk/runtime/_runner_adapter/__init__.py +1 -0
- ksadk/runtime/_runner_adapter/stream_mapping.py +788 -0
- ksadk/runtime/adapter.py +118 -2
- ksadk/runtime/conversation_execution.py +316 -182
- ksadk/runtime/executor.py +144 -3
- ksadk/runtime/factory.py +193 -7
- ksadk/runtime/hosted_finalizer.py +268 -0
- ksadk/runtime/launch.py +14 -1
- ksadk/runtime/preprocessing.py +25 -3
- ksadk/runtime/runner_adapter.py +288 -508
- ksadk/runtime/usage.py +33 -0
- ksadk/sandbox/backends/e2b.py +35 -2
- ksadk/server/composition.py +8 -0
- ksadk/server/factory.py +69 -6
- ksadk/server/routes/kernel_ingress.py +258 -0
- ksadk/server/routes/openai_compat.py +88 -8
- ksadk/server/routes/projection.py +35 -20
- ksadk/server/routes/run.py +94 -0
- ksadk/server/routes/sessions.py +2 -0
- ksadk/server/routes/streaming.py +5 -2
- ksadk/server/static/assets/{ArtifactsPanel-CakCqxEN.js → ArtifactsPanel-DSU1sWD_.js} +1 -1
- ksadk/server/static/assets/{CodeBlock-CynLknyO.js → CodeBlock-DOH6MVcn.js} +4 -4
- ksadk/server/static/assets/{MathMessageMarkdown-3sQdOysS.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-B_fH2YuH.js → chunk-5VM5RSS4-BVHAchFb.js} +1 -1
- ksadk/server/static/assets/{chunk-ND2GUHAM-D6rFLaVV.js → chunk-F27PBJKO-C-ipQzuS.js} +1 -1
- ksadk/server/static/assets/chunk-G27WJ6UU-C2EyJbIK.js +231 -0
- ksadk/server/static/assets/{chunk-4BX2VUAB-B9drTgOW.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-ChNs_Mdk.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-Dli7qW-B.js → dist-8hqcx0sU.js} +1 -1
- ksadk/server/static/assets/dist-B7seoj3d.js +1 -0
- ksadk/server/static/assets/{dist-C1sz5Eo3.js → dist-BE7bu-DL.js} +1 -1
- ksadk/server/static/assets/{dist-fhOuWds5.js → dist-BVDffZ0U.js} +1 -1
- ksadk/server/static/assets/{dist-BjOdlDjj.js → dist-BX8z72IC.js} +1 -1
- ksadk/server/static/assets/{dist-DsHPdk3W.js → dist-Bf2M8m3N.js} +1 -1
- ksadk/server/static/assets/{dist-o2OVmKvt.js → dist-BjU6y-A2.js} +1 -1
- ksadk/server/static/assets/{dist-DWKByxWV.js → dist-BytlxIDT.js} +1 -1
- ksadk/server/static/assets/{dist-DJN_6Y39.js → dist-CSh_DE14.js} +1 -1
- ksadk/server/static/assets/{dist-DQU9EWw-.js → dist-CXYYBw3_.js} +1 -1
- ksadk/server/static/assets/{dist-4N2NMVYg.js → dist-C_wsv-Qd.js} +1 -1
- ksadk/server/static/assets/{dist-gLnrGsoU.js → dist-ClxGviKw.js} +1 -1
- ksadk/server/static/assets/{dist-j6Dxmf_j.js → dist-CttYUqzS.js} +1 -1
- ksadk/server/static/assets/{dist-D6MpCZtz.js → dist-DNp6rLRA.js} +1 -1
- ksadk/server/static/assets/{dist-BB3-OwTQ.js → dist-DUX-id_F.js} +1 -1
- ksadk/server/static/assets/{dist-_pHPTyZ-.js → dist-DmldrHd_.js} +1 -1
- ksadk/server/static/assets/{dist-CWV4lDr1.js → dist-DnfXs8Vn.js} +2 -2
- ksadk/server/static/assets/{dist-B5oS1zcj.js → dist-Dq9gLD7L.js} +1 -1
- ksadk/server/static/assets/{dist-B-jNR6Vn.js → dist-W-TIVntx.js} +1 -1
- ksadk/server/static/assets/{dist-BIlKoW0k.js → dist-dDdADKFA.js} +1 -1
- ksadk/server/static/assets/{dist-X4TnqwOK.js → dist-dydu68Fl.js} +1 -1
- ksadk/server/static/assets/{dist-CmZHzlwZ.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-K0OOfVna.js → ishikawaDiagram-5VMMS53U-DWya9SG2.js} +6 -6
- ksadk/server/static/assets/{journeyDiagram-JHISSGLW-8LeOJaZp.js → journeyDiagram-EYS64GPL-DutxhSNI.js} +6 -6
- ksadk/server/static/assets/{kanban-definition-UN3LZRKU-C6uCgZrW.js → kanban-definition-3QL26DDD-DJdOF8Fm.js} +10 -10
- ksadk/server/static/assets/katex-vFWytM5c.js +257 -0
- ksadk/server/static/assets/{linear-hdBcYzM8.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-Bjy_2v4_.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-BmkRbwCg.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-l6iXmU65.js → sankeyDiagram-P5KCCOFB-CPH75rhw.js} +7 -7
- ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-Cq6UBeQB.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-DEz24vV0.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/studio/api.py +577 -25
- ksadk/studio/api_contracts.py +114 -5
- ksadk/studio/api_memory_routes.py +82 -0
- ksadk/studio/authoring.py +252 -27
- ksadk/studio/authoring_coordinator.py +799 -67
- ksadk/studio/builder.py +88 -11
- ksadk/studio/capabilities.py +17 -0
- ksadk/studio/cloud.py +1916 -95
- ksadk/studio/codex_agent_service.py +125 -14
- ksadk/studio/codex_authoring.py +469 -0
- ksadk/studio/codex_builder.py +138 -25
- ksadk/studio/codex_manifest.py +51 -22
- ksadk/studio/codex_run.py +46 -3
- ksadk/studio/compiler.py +1 -0
- ksadk/studio/contracts.py +114 -3
- ksadk/studio/event_store.py +25 -95
- ksadk/studio/framework_run.py +231 -3
- ksadk/studio/hosted_kernel.py +317 -0
- ksadk/studio/manifest_resolver.py +131 -0
- ksadk/studio/model_client.py +95 -9
- ksadk/studio/model_profile_service.py +1 -1
- ksadk/studio/operations.py +37 -5
- ksadk/studio/otel_trace.py +348 -42
- ksadk/studio/pcm_memory.py +85 -0
- ksadk/studio/repository.py +23 -2
- ksadk/studio/resource_catalog.py +43 -0
- ksadk/studio/run_service.py +563 -137
- ksadk/studio/runtime_source.py +42 -16
- ksadk/studio/service.py +1180 -72
- ksadk/studio/shared_web.py +32 -22
- ksadk/studio/static/assets/index-BLpcdrgW.css +1 -0
- ksadk/studio/static/assets/index-CYekR2Xv.js +260 -0
- ksadk/studio/static/index.html +2 -2
- ksadk/studio/templates.py +100 -8
- ksadk/studio/validator.py +19 -0
- ksadk/studio/workspace.py +30 -32
- ksadk/tracing/setup.py +304 -3
- ksadk/version.py +1 -1
- ksadk_runtime_common/schemas/runtime_event_v1.json +37 -0
- ksadk_runtime_common/schemas/runtime_event_v2.json +271 -0
- ksadk/events/parser.py +0 -191
- ksadk/server/static/assets/MathMessageMarkdown-DeYh8QPr.css +0 -1
- ksadk/server/static/assets/MermaidBlock-NERD_ef7.js +0 -303
- ksadk/server/static/assets/NativeTerminalPanel-CiHWf82q.js +0 -1
- ksadk/server/static/assets/arc-DrgjcKhl.js +0 -1
- ksadk/server/static/assets/architecture-7EHR7CIX-CpZLRCcY.js +0 -1
- ksadk/server/static/assets/architectureDiagram-3BPJPVTR-BXoVRbQ6.js +0 -36
- ksadk/server/static/assets/blockDiagram-GPEHLZMM-BnaB3Ywv.js +0 -132
- ksadk/server/static/assets/c4Diagram-AAUBKEIU-Dw4weZcp.js +0 -10
- ksadk/server/static/assets/channel-Dt3rQTFI.js +0 -1
- ksadk/server/static/assets/chunk-2J33WTMH-ChjpLK7j.js +0 -1
- ksadk/server/static/assets/chunk-55IACEB6-CK4ROATy.js +0 -1
- ksadk/server/static/assets/chunk-727SXJPM-B9KtTTgw.js +0 -206
- ksadk/server/static/assets/chunk-AQP2D5EJ-1O1mki3m.js +0 -231
- ksadk/server/static/assets/chunk-QZHKN3VN-iXEZtKQc.js +0 -1
- ksadk/server/static/assets/classDiagram-4FO5ZUOK-DIveV17Q.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-DIveV17Q.js +0 -1
- ksadk/server/static/assets/cytoscape.esm-DelgaX4f.js +0 -321
- ksadk/server/static/assets/dagre-BM42HDAG-D0QXg_MQ.js +0 -4
- ksadk/server/static/assets/dagre-Bx709z4p.js +0 -1
- ksadk/server/static/assets/diagram-2AECGRRQ-DBDDKwBQ.js +0 -43
- ksadk/server/static/assets/diagram-5GNKFQAL-BkwDOxmO.js +0 -10
- ksadk/server/static/assets/diagram-KO2AKTUF-Bv8waYvY.js +0 -3
- ksadk/server/static/assets/diagram-LMA3HP47-e1VECDdu.js +0 -24
- ksadk/server/static/assets/diagram-OG6HWLK6-Ds9adfRl.js +0 -24
- ksadk/server/static/assets/dist-B5J2uhNk.js +0 -1
- ksadk/server/static/assets/erDiagram-TEJ5UH35-BPItFKH6.js +0 -85
- ksadk/server/static/assets/eventmodeling-FCH6USID-DYFSxbqr.js +0 -1
- ksadk/server/static/assets/flowDiagram-I6XJVG4X-BbYB9w5Y.js +0 -162
- ksadk/server/static/assets/ganttDiagram-6RSMTGT7-TQXa0KXv.js +0 -292
- ksadk/server/static/assets/gitGraph-WXDBUCRP-DyNYp6BN.js +0 -1
- ksadk/server/static/assets/gitGraphDiagram-PVQCEYII-bKblCnpa.js +0 -106
- ksadk/server/static/assets/graphlib-B8gBHxth.js +0 -1
- ksadk/server/static/assets/index-R52pJJvg.js +0 -177
- ksadk/server/static/assets/index-jJr3_955.css +0 -2
- ksadk/server/static/assets/info-J43DQDTF-WUx7qTde.js +0 -1
- ksadk/server/static/assets/infoDiagram-5YYISTIA-BGVT7J_i.js +0 -2
- ksadk/server/static/assets/katex-CYWseY5E.js +0 -265
- ksadk/server/static/assets/mermaid-parser.core-BWrDjSZM.js +0 -161
- ksadk/server/static/assets/packet-YPE3B663-BN13y_xl.js +0 -1
- ksadk/server/static/assets/pie-LRSECV5Y-ftSLXhhc.js +0 -1
- ksadk/server/static/assets/pieDiagram-4H26LBE5-GmmqNiVH.js +0 -30
- ksadk/server/static/assets/radar-GUYGQ44K-jaICkIeO.js +0 -1
- ksadk/server/static/assets/requirementDiagram-4Y6WPE33-DSWFqL7c.js +0 -84
- ksadk/server/static/assets/stateDiagram-AJRCARHV-qzTQpg3Y.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-BYCoYGAN.js +0 -1
- ksadk/server/static/assets/treeView-BLDUP644-Cpib_vlz.js +0 -1
- ksadk/server/static/assets/treemap-LRROVOQU-DQxfmVHK.js +0 -1
- ksadk/server/static/assets/vennDiagram-CIIHVFJN-CMCixki2.js +0 -34
- ksadk/server/static/assets/wardley-L42UT6IY-BQYHnnkU.js +0 -1
- ksadk/server/static/assets/wardleyDiagram-YWT4CUSO-CVzB8F9K.js +0 -78
- ksadk/server/static/assets/xychartDiagram-2RQKCTM6-BFBqBLc1.js +0 -7
- ksadk/studio/evaluation.py +0 -192
- ksadk/studio/static/assets/index-CaEN0eTR.css +0 -1
- ksadk/studio/static/assets/index-DI2eY_NH.js +0 -252
- {agentengine_sdk_python-0.8.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/WHEEL +0 -0
- {agentengine_sdk_python-0.8.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.8.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.8.1.dist-info → agentengine_sdk_python-0.8.2.dist-info}/top_level.txt +0 -0
ksadk/cli/cmd_invoke.py
CHANGED
|
@@ -18,6 +18,7 @@ import click
|
|
|
18
18
|
|
|
19
19
|
from ksadk.api import AgentEngineAPIError, AgentEngineClient
|
|
20
20
|
from ksadk.cli.agent_ref import merge_agent_inputs, resolve_agent_ref, resolve_openclaw_ref
|
|
21
|
+
from ksadk.cli.invoke_payload import build_chat_request
|
|
21
22
|
from ksadk.cli.cmd_files import (
|
|
22
23
|
_build_sync_payload,
|
|
23
24
|
_collect_local_files_report,
|
|
@@ -603,6 +604,9 @@ def run_invoke_command(
|
|
|
603
604
|
insecure,
|
|
604
605
|
model,
|
|
605
606
|
api_format_resolved,
|
|
607
|
+
default_model=(
|
|
608
|
+
"openclaw" if _is_openclaw_target(next_state, latest_access) else None
|
|
609
|
+
),
|
|
606
610
|
)
|
|
607
611
|
)
|
|
608
612
|
else:
|
|
@@ -1286,6 +1290,7 @@ async def _invoke_once(
|
|
|
1286
1290
|
insecure: bool = False,
|
|
1287
1291
|
model: Optional[str] = None,
|
|
1288
1292
|
api_format: str = "chat_completions",
|
|
1293
|
+
default_model: Optional[str] = None,
|
|
1289
1294
|
):
|
|
1290
1295
|
"""单次调用"""
|
|
1291
1296
|
click.echo(f"\n👤 你: {message}")
|
|
@@ -1306,7 +1311,7 @@ async def _invoke_once(
|
|
|
1306
1311
|
last_refresh_time = 0.0
|
|
1307
1312
|
full_reasoning = ""
|
|
1308
1313
|
async for chunk in _stream_chat(
|
|
1309
|
-
endpoint, message, api_key, session_id, True, insecure, model, api_format
|
|
1314
|
+
endpoint, message, api_key, session_id, True, insecure, model, api_format, default_model
|
|
1310
1315
|
):
|
|
1311
1316
|
content, reasoning = _extract_content(chunk)
|
|
1312
1317
|
|
|
@@ -1336,7 +1341,7 @@ async def _invoke_once(
|
|
|
1336
1341
|
live.refresh() # 确保最后一次刷新
|
|
1337
1342
|
else:
|
|
1338
1343
|
async for chunk in _stream_chat(
|
|
1339
|
-
endpoint, message, api_key, session_id, True, insecure, model, api_format
|
|
1344
|
+
endpoint, message, api_key, session_id, True, insecure, model, api_format, default_model
|
|
1340
1345
|
):
|
|
1341
1346
|
content, reasoning = _extract_content(chunk)
|
|
1342
1347
|
if reasoning:
|
|
@@ -1346,7 +1351,7 @@ async def _invoke_once(
|
|
|
1346
1351
|
click.echo() # 换行
|
|
1347
1352
|
else:
|
|
1348
1353
|
response = await _chat(
|
|
1349
|
-
endpoint, message, api_key, session_id, insecure, model, api_format
|
|
1354
|
+
endpoint, message, api_key, session_id, insecure, model, api_format, default_model
|
|
1350
1355
|
)
|
|
1351
1356
|
content = _extract_response_content(response)
|
|
1352
1357
|
if console and Markdown:
|
|
@@ -1365,6 +1370,7 @@ async def _chat(
|
|
|
1365
1370
|
insecure: bool = False,
|
|
1366
1371
|
model: Optional[str] = None,
|
|
1367
1372
|
api_format: str = "chat_completions",
|
|
1373
|
+
default_model: Optional[str] = None,
|
|
1368
1374
|
) -> dict[str, Any]:
|
|
1369
1375
|
"""非流式调用 (OpenAI 兼容格式)"""
|
|
1370
1376
|
try:
|
|
@@ -1373,25 +1379,15 @@ async def _chat(
|
|
|
1373
1379
|
click.secho("❌ 请安装 httpx: pip install httpx", fg="red")
|
|
1374
1380
|
raise SystemExit(1)
|
|
1375
1381
|
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
payload = {
|
|
1386
|
-
"messages": [{"role": "user", "content": message}],
|
|
1387
|
-
"stream": False,
|
|
1388
|
-
}
|
|
1389
|
-
|
|
1390
|
-
if session_id:
|
|
1391
|
-
payload["session_id"] = session_id
|
|
1392
|
-
|
|
1393
|
-
if model:
|
|
1394
|
-
payload["model"] = model
|
|
1382
|
+
url, payload = build_chat_request(
|
|
1383
|
+
endpoint,
|
|
1384
|
+
message,
|
|
1385
|
+
session_id=session_id,
|
|
1386
|
+
model=model,
|
|
1387
|
+
api_format=api_format,
|
|
1388
|
+
default_model=default_model,
|
|
1389
|
+
stream=False,
|
|
1390
|
+
)
|
|
1395
1391
|
|
|
1396
1392
|
# 本地请求禁用系统代理 (ClashX 等会导致本地请求 502 错误)
|
|
1397
1393
|
# trust_env=False 会禁用: 代理设置、SSL 证书环境变量、.netrc 文件
|
|
@@ -1431,6 +1427,7 @@ async def _stream_chat(
|
|
|
1431
1427
|
insecure: bool = False,
|
|
1432
1428
|
model: Optional[str] = None,
|
|
1433
1429
|
api_format: str = "chat_completions",
|
|
1430
|
+
default_model: Optional[str] = None,
|
|
1434
1431
|
):
|
|
1435
1432
|
"""流式调用 (SSE)"""
|
|
1436
1433
|
try:
|
|
@@ -1439,22 +1436,15 @@ async def _stream_chat(
|
|
|
1439
1436
|
click.secho("❌ 请安装 httpx: pip install httpx", fg="red")
|
|
1440
1437
|
raise SystemExit(1)
|
|
1441
1438
|
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
payload = {"messages": [{"role": "user", "content": message}], "stream": True}
|
|
1452
|
-
|
|
1453
|
-
if session_id:
|
|
1454
|
-
payload["session_id"] = session_id
|
|
1455
|
-
|
|
1456
|
-
if model:
|
|
1457
|
-
payload["model"] = model
|
|
1439
|
+
url, payload = build_chat_request(
|
|
1440
|
+
endpoint,
|
|
1441
|
+
message,
|
|
1442
|
+
session_id=session_id,
|
|
1443
|
+
model=model,
|
|
1444
|
+
api_format=api_format,
|
|
1445
|
+
default_model=default_model,
|
|
1446
|
+
stream=True,
|
|
1447
|
+
)
|
|
1458
1448
|
|
|
1459
1449
|
# 本地请求禁用系统代理 (ClashX 等会导致本地请求 502 错误)
|
|
1460
1450
|
# trust_env=False 会禁用: 代理设置、SSL 证书环境变量、.netrc 文件
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""Production entrypoint for platform-owned declarative runtimes.
|
|
2
|
+
|
|
3
|
+
``agentengine managed-runtime`` is deliberately narrower than ``agentengine
|
|
4
|
+
web``: it accepts one Server-admitted ``agentengine.yaml`` mounted by the
|
|
5
|
+
control plane and never opens a browser or packages user code. Runtime Service
|
|
6
|
+
uses this entrypoint for ``ArtifactType=ManagedRuntime`` workloads.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import os
|
|
12
|
+
import shutil
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
from typing import Any
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
import yaml
|
|
18
|
+
|
|
19
|
+
from ksadk.cli.cmd_web import web
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _load_managed_runtime_manifest(manifest_path: Path) -> dict[str, Any]:
|
|
23
|
+
"""Validate the small launch contract before starting a hosted process."""
|
|
24
|
+
|
|
25
|
+
if manifest_path.name != "agentengine.yaml":
|
|
26
|
+
raise click.ClickException("managed runtime manifest must be named agentengine.yaml")
|
|
27
|
+
try:
|
|
28
|
+
payload = yaml.safe_load(manifest_path.read_text(encoding="utf-8-sig"))
|
|
29
|
+
except (OSError, yaml.YAMLError) as exc:
|
|
30
|
+
raise click.ClickException(f"unable to read managed runtime manifest: {exc}") from exc
|
|
31
|
+
if not isinstance(payload, dict):
|
|
32
|
+
raise click.ClickException("managed runtime manifest must be a YAML object")
|
|
33
|
+
if str(payload.get("artifact_type") or "").strip() != "ManagedRuntime":
|
|
34
|
+
raise click.ClickException(
|
|
35
|
+
"managed runtime manifest must declare artifact_type=ManagedRuntime"
|
|
36
|
+
)
|
|
37
|
+
framework = str(payload.get("framework") or "").strip().lower()
|
|
38
|
+
runtime = payload.get("runtime")
|
|
39
|
+
if not framework or not isinstance(runtime, dict):
|
|
40
|
+
raise click.ClickException("managed runtime manifest requires framework and runtime")
|
|
41
|
+
runtime_name = str(runtime.get("name") or "").strip().lower()
|
|
42
|
+
runtime_version = str(runtime.get("version") or "").strip()
|
|
43
|
+
if runtime_name != framework or not runtime_version:
|
|
44
|
+
raise click.ClickException(
|
|
45
|
+
"managed runtime manifest requires runtime.name=framework and runtime.version"
|
|
46
|
+
)
|
|
47
|
+
return payload
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _prepare_writable_runtime_dir(manifest_path: Path) -> Path:
|
|
51
|
+
"""Copy the verified ConfigMap declaration into a writable runtime home.
|
|
52
|
+
|
|
53
|
+
Kubernetes projects ConfigMaps read-only. The RuntimeAdapter intentionally
|
|
54
|
+
persists local session/UI state below its project directory, so pointing it
|
|
55
|
+
straight at ``/etc/agentkit`` makes even ``/health`` fail. ManagedRuntime
|
|
56
|
+
has no user code or auxiliary files: the verified declaration is the sole
|
|
57
|
+
input copied into an ephemeral (or PVC-mounted) working directory.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
work_dir = Path(
|
|
61
|
+
os.getenv("AGENTENGINE_MANAGED_RUNTIME_WORKDIR", "/tmp/agentengine-managed-runtime")
|
|
62
|
+
).resolve()
|
|
63
|
+
try:
|
|
64
|
+
work_dir.mkdir(parents=True, exist_ok=True)
|
|
65
|
+
target = work_dir / "agentengine.yaml"
|
|
66
|
+
shutil.copyfile(manifest_path, target)
|
|
67
|
+
_load_managed_runtime_manifest(target)
|
|
68
|
+
except OSError as exc:
|
|
69
|
+
raise click.ClickException(
|
|
70
|
+
f"unable to prepare writable managed runtime directory: {exc}"
|
|
71
|
+
) from exc
|
|
72
|
+
return work_dir
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@click.command("managed-runtime", context_settings=dict(help_option_names=["-h", "--help"]))
|
|
76
|
+
@click.argument(
|
|
77
|
+
"manifest_path",
|
|
78
|
+
type=click.Path(exists=True, file_okay=True, dir_okay=False, path_type=Path),
|
|
79
|
+
)
|
|
80
|
+
@click.option("--port", type=int, default=8080, show_default=True)
|
|
81
|
+
@click.option("--host", default="0.0.0.0", show_default=True)
|
|
82
|
+
def managed_runtime(manifest_path: Path, port: int, host: str) -> None:
|
|
83
|
+
"""Serve one mounted, declarative ``agentengine.yaml`` in hosted mode."""
|
|
84
|
+
|
|
85
|
+
manifest_path = manifest_path.resolve()
|
|
86
|
+
_load_managed_runtime_manifest(manifest_path)
|
|
87
|
+
work_dir = _prepare_writable_runtime_dir(manifest_path)
|
|
88
|
+
# The command is a production process entrypoint, never a local UI action.
|
|
89
|
+
# ``web`` owns the RuntimeAdapter composition, while no_open prevents an
|
|
90
|
+
# accidental browser launch if this container is ever run with a display.
|
|
91
|
+
os.environ["AGENTENGINE_MANAGED_RUNTIME"] = "1"
|
|
92
|
+
web.callback(str(work_dir), port, host, None, True)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
__all__ = ["managed_runtime"]
|
ksadk/cli/cmd_observe.py
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Local observability commands."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import asyncio
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import click
|
|
9
|
+
|
|
10
|
+
from ksadk.cli.ui import configure_ui_runtime, emit_json, is_json_output, print_kv, print_success
|
|
11
|
+
from ksadk.observability.session_log import SessionLogError, export_session_log
|
|
12
|
+
from ksadk.sessions.local_service import LocalSessionService
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ObserveCliError(click.ClickException):
|
|
16
|
+
exit_code = 2
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@click.group("observe", context_settings=dict(help_option_names=["-h", "--help"]))
|
|
20
|
+
def observe() -> None:
|
|
21
|
+
"""查询和导出本地 Agent 观测数据。"""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
async def _export(
|
|
25
|
+
session_id: str,
|
|
26
|
+
output_path: Path,
|
|
27
|
+
invocation_id: str | None,
|
|
28
|
+
):
|
|
29
|
+
service = LocalSessionService(project_dir=str(Path.cwd()))
|
|
30
|
+
try:
|
|
31
|
+
return await export_session_log(
|
|
32
|
+
service,
|
|
33
|
+
session_id,
|
|
34
|
+
output_path,
|
|
35
|
+
invocation_id=invocation_id,
|
|
36
|
+
)
|
|
37
|
+
finally:
|
|
38
|
+
await service.aclose()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@observe.command("export")
|
|
42
|
+
@click.option("--session-id", required=True)
|
|
43
|
+
@click.option("--invocation-id")
|
|
44
|
+
@click.option(
|
|
45
|
+
"--output",
|
|
46
|
+
"output_path",
|
|
47
|
+
required=True,
|
|
48
|
+
type=click.Path(path_type=Path, dir_okay=False),
|
|
49
|
+
)
|
|
50
|
+
@click.option(
|
|
51
|
+
"--format",
|
|
52
|
+
"output_format",
|
|
53
|
+
type=click.Choice(["pretty", "json"]),
|
|
54
|
+
default="pretty",
|
|
55
|
+
show_default=True,
|
|
56
|
+
)
|
|
57
|
+
def export_command(
|
|
58
|
+
session_id: str,
|
|
59
|
+
invocation_id: str | None,
|
|
60
|
+
output_path: Path,
|
|
61
|
+
output_format: str,
|
|
62
|
+
) -> None:
|
|
63
|
+
"""将本地 Session 事件导出为可校验 JSONL。"""
|
|
64
|
+
configure_ui_runtime(output_mode=output_format)
|
|
65
|
+
try:
|
|
66
|
+
result = asyncio.run(_export(session_id, output_path, invocation_id))
|
|
67
|
+
except SessionLogError as exc:
|
|
68
|
+
raise ObserveCliError(str(exc)) from exc
|
|
69
|
+
|
|
70
|
+
payload = {
|
|
71
|
+
"path": str(result.path),
|
|
72
|
+
"eventCount": result.event_count,
|
|
73
|
+
"firstSeqId": result.first_seq_id,
|
|
74
|
+
"lastSeqId": result.last_seq_id,
|
|
75
|
+
"exportedThroughSeqId": result.exported_through_seq_id,
|
|
76
|
+
}
|
|
77
|
+
if is_json_output():
|
|
78
|
+
emit_json(payload)
|
|
79
|
+
return
|
|
80
|
+
print_success(f"已导出 {result.event_count} 条事件")
|
|
81
|
+
print_kv("文件", str(result.path))
|
|
82
|
+
print_kv("序号范围", f"{result.first_seq_id or '-'} - {result.last_seq_id or '-'}")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
__all__ = ["observe"]
|