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.
Files changed (384) hide show
  1. {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/METADATA +41 -23
  2. agentengine_sdk_python-0.8.0.dist-info/RECORD +578 -0
  3. ksadk/a2a/__init__.py +178 -11
  4. ksadk/a2a/bootstrap.py +334 -0
  5. ksadk/a2a/card.py +120 -0
  6. ksadk/a2a/context_store.py +203 -0
  7. ksadk/a2a/control_plane.py +818 -0
  8. ksadk/a2a/credential.py +99 -0
  9. ksadk/a2a/event_adapter.py +149 -0
  10. ksadk/a2a/executor.py +406 -89
  11. ksadk/a2a/external_transport.py +516 -0
  12. ksadk/a2a/identity.py +304 -0
  13. ksadk/a2a/ids.py +22 -0
  14. ksadk/a2a/langgraph.py +285 -0
  15. ksadk/a2a/resume_store.py +201 -0
  16. ksadk/a2a/routes.py +105 -0
  17. ksadk/a2a/server.py +107 -60
  18. ksadk/a2a/space_client.py +1101 -0
  19. ksadk/a2a/task_adapter.py +423 -0
  20. ksadk/a2a/task_event_dispatcher.py +167 -0
  21. ksadk/a2a/task_event_outbox.py +326 -0
  22. ksadk/a2a/task_store.py +206 -0
  23. ksadk/a2ui/__init__.py +27 -0
  24. ksadk/a2ui/core.py +186 -0
  25. ksadk/a2ui/models.py +166 -0
  26. ksadk/a2ui/renderer.py +198 -0
  27. ksadk/agui/__init__.py +9 -0
  28. ksadk/agui/a2ui_projection.py +92 -0
  29. ksadk/agui/agent.py +857 -0
  30. ksadk/agui/config.py +86 -0
  31. ksadk/agui/routes.py +55 -0
  32. ksadk/api/client.py +252 -191
  33. ksadk/builders/__init__.py +2 -0
  34. ksadk/builders/base.py +16 -14
  35. ksadk/builders/code_builder.py +318 -236
  36. ksadk/builders/container_builder.py +187 -167
  37. ksadk/builders/framework_requirements.py +29 -11
  38. ksadk/builders/ks3_uploader.py +58 -27
  39. ksadk/builders/managed_runtime_builder.py +145 -0
  40. ksadk/builders/mcp_builder.py +91 -92
  41. ksadk/builders/requirements_utils.py +1 -5
  42. ksadk/cli/__init__.py +89 -171
  43. ksadk/cli/cmd_a2a.py +254 -70
  44. ksadk/cli/cmd_agent.py +19 -5
  45. ksadk/cli/cmd_build.py +158 -29
  46. ksadk/cli/cmd_completion.py +47 -35
  47. ksadk/cli/cmd_config.py +267 -198
  48. ksadk/cli/cmd_create.py +533 -726
  49. ksadk/cli/cmd_dashboard.py +120 -45
  50. ksadk/cli/cmd_deploy.py +117 -58
  51. ksadk/cli/cmd_destroy.py +44 -14
  52. ksadk/cli/cmd_files.py +63 -24
  53. ksadk/cli/cmd_hermes.py +173 -90
  54. ksadk/cli/cmd_invoke.py +388 -159
  55. ksadk/cli/cmd_launch.py +64 -28
  56. ksadk/cli/cmd_mcp.py +103 -64
  57. ksadk/cli/cmd_model.py +14 -5
  58. ksadk/cli/cmd_openclaw.py +488 -228
  59. ksadk/cli/cmd_replay.py +71 -0
  60. ksadk/cli/cmd_run.py +44 -14
  61. ksadk/cli/cmd_status.py +80 -31
  62. ksadk/cli/cmd_version.py +20 -13
  63. ksadk/cli/cmd_web.py +89 -13
  64. ksadk/cli/deploy_utils.py +20 -20
  65. ksadk/cli/dry_run.py +5 -3
  66. ksadk/cli/error_utils.py +37 -12
  67. ksadk/cli/global_options.py +1 -2
  68. ksadk/cli/local_runtime.py +1 -2
  69. ksadk/cli/model_catalog.py +6 -2
  70. ksadk/cli/network_options.py +38 -16
  71. ksadk/cli/resource_common.py +6 -2
  72. ksadk/cli/storage.py +0 -1
  73. ksadk/cli/ui.py +5 -3
  74. ksadk/cli/workflow_common.py +51 -17
  75. ksadk/codex/__init__.py +12 -0
  76. ksadk/codex/client.py +408 -0
  77. ksadk/codex/phase.py +143 -0
  78. ksadk/codex/runtime.py +449 -0
  79. ksadk/common/aicp_env.py +0 -1
  80. ksadk/common/auth.py +2 -2
  81. ksadk/common/constants.py +1 -3
  82. ksadk/common/llm_utils.py +17 -13
  83. ksadk/compat/__init__.py +5 -0
  84. ksadk/compat/adk_compat.py +200 -0
  85. ksadk/compat/copilotkit_a2ui.py +330 -0
  86. ksadk/configs/__init__.py +12 -12
  87. ksadk/configs/env_registry.py +501 -100
  88. ksadk/configs/global_config.py +2 -1
  89. ksadk/configs/settings.py +151 -124
  90. ksadk/conversations/__init__.py +7 -5
  91. ksadk/conversations/attachment_storage.py +16 -11
  92. ksadk/conversations/attachments.py +44 -36
  93. ksadk/conversations/compaction_pipeline.py +12 -12
  94. ksadk/conversations/compaction_prompt.py +9 -5
  95. ksadk/conversations/context.py +221 -6
  96. ksadk/conversations/message_projection.py +656 -0
  97. ksadk/conversations/model_context.py +22 -6
  98. ksadk/conversations/model_options.py +0 -1
  99. ksadk/conversations/normalize.py +20 -16
  100. ksadk/conversations/reasoning_markup.py +1 -1
  101. ksadk/conversations/runtime.py +339 -5187
  102. ksadk/conversations/runtime_compaction.py +333 -0
  103. ksadk/conversations/runtime_constants.py +27 -0
  104. ksadk/conversations/runtime_governance.py +185 -0
  105. ksadk/conversations/runtime_input.py +652 -0
  106. ksadk/conversations/runtime_invocation.py +395 -0
  107. ksadk/conversations/runtime_metadata.py +475 -0
  108. ksadk/conversations/runtime_observability.py +355 -0
  109. ksadk/conversations/runtime_payloads.py +272 -0
  110. ksadk/conversations/runtime_persistence.py +440 -0
  111. ksadk/conversations/runtime_preparation.py +418 -0
  112. ksadk/conversations/runtime_resume.py +816 -0
  113. ksadk/conversations/runtime_stream_events.py +902 -0
  114. ksadk/conversations/runtime_streaming.py +547 -0
  115. ksadk/conversations/semantic_summary.py +17 -5
  116. ksadk/conversations/session_title.py +6 -3
  117. ksadk/deployment/__init__.py +15 -16
  118. ksadk/deployment/agent_access.py +12 -23
  119. ksadk/deployment/base.py +52 -39
  120. ksadk/deployment/manager.py +63 -65
  121. ksadk/deployment/providers/serverless.py +326 -209
  122. ksadk/deployment/registry.py +38 -32
  123. ksadk/deployment/state.py +11 -11
  124. ksadk/deployment/ui_config.py +1 -1
  125. ksadk/detection/__init__.py +1 -1
  126. ksadk/detection/detector.py +146 -83
  127. ksadk/detection/mcp_detector.py +9 -6
  128. ksadk/events/__init__.py +25 -0
  129. ksadk/events/parser.py +191 -0
  130. ksadk/events/replay.py +37 -0
  131. ksadk/events/runtime_event.py +264 -0
  132. ksadk/events/store.py +317 -0
  133. ksadk/harness/__init__.py +34 -0
  134. ksadk/harness/app.py +278 -0
  135. ksadk/harness/config.py +181 -0
  136. ksadk/harness/reasoner.py +105 -0
  137. ksadk/harness/runner.py +211 -0
  138. ksadk/harness/sandbox.py +141 -0
  139. ksadk/harness/tools.py +222 -0
  140. ksadk/hermes_terminal.py +23 -12
  141. ksadk/identity/resolver.py +15 -9
  142. ksadk/ids.py +32 -0
  143. ksadk/knowledge_base/adk_tool.py +1 -1
  144. ksadk/knowledge_base/client.py +23 -29
  145. ksadk/managed_runtime.py +188 -0
  146. ksadk/markdown.py +5 -2
  147. ksadk/mcp_runtime/__init__.py +9 -6
  148. ksadk/memory/__init__.py +1 -1
  149. ksadk/memory/adk/__init__.py +2 -0
  150. ksadk/memory/adk/backends/base_ltm_backend.py +2 -6
  151. ksadk/memory/adk/backends/http_ltm_backend.py +13 -21
  152. ksadk/memory/adk/backends/inmemory_ltm_backend.py +7 -13
  153. ksadk/memory/adk/backends/sdk_ltm_backend.py +26 -33
  154. ksadk/memory/adk/long_term_memory.py +31 -35
  155. ksadk/memory/adk/resilient_session_service.py +267 -0
  156. ksadk/memory/adk/short_term_memory.py +33 -27
  157. ksadk/memory/adk_tool.py +3 -2
  158. ksadk/memory/backends/base.py +19 -19
  159. ksadk/memory/backends/memory.py +24 -25
  160. ksadk/memory/backends/redis.py +31 -30
  161. ksadk/memory/langchain_tool.py +2 -1
  162. ksadk/memory/manager.py +52 -47
  163. ksadk/memory/service.py +10 -8
  164. ksadk/model_policy.py +15 -7
  165. ksadk/model_proxy/__init__.py +51 -0
  166. ksadk/model_proxy/bootstrap.py +80 -0
  167. ksadk/model_proxy/cache.py +165 -0
  168. ksadk/model_proxy/config.py +45 -0
  169. ksadk/model_proxy/demo_webui.py +115 -0
  170. ksadk/model_proxy/detect.py +145 -0
  171. ksadk/model_proxy/gate.py +68 -0
  172. ksadk/model_proxy/namespace.py +173 -0
  173. ksadk/model_proxy/protocol_proxy.py +22 -0
  174. ksadk/model_proxy/server.py +300 -0
  175. ksadk/model_proxy/transform.py +691 -0
  176. ksadk/openclaw_gateway.py +29 -14
  177. ksadk/runners/adk_runner.py +1248 -164
  178. ksadk/runners/base_runner.py +46 -29
  179. ksadk/runners/codex_runner.py +132 -0
  180. ksadk/runners/deepagents_runner.py +0 -1
  181. ksadk/runners/factory.py +17 -5
  182. ksadk/runners/langchain_runner.py +29 -530
  183. ksadk/runners/langgraph_runner.py +490 -95
  184. ksadk/runners/patch_langchain.py +16 -16
  185. ksadk/runners/remote_runner.py +264 -38
  186. ksadk/runners/usage_accumulator.py +1 -0
  187. ksadk/runners/utils/langfuse.py +3 -3
  188. ksadk/runners/utils/loader.py +7 -7
  189. ksadk/runtime/__init__.py +41 -0
  190. ksadk/runtime/adapter.py +345 -0
  191. ksadk/runtime/framework_adapters.py +124 -0
  192. ksadk/runtime/preprocessing.py +118 -0
  193. ksadk/runtime/runner_adapter.py +873 -0
  194. ksadk/runtime_context.py +18 -3
  195. ksadk/runtime_state.py +0 -1
  196. ksadk/sandbox/__init__.py +4 -1
  197. ksadk/sandbox/backends/__init__.py +4 -1
  198. ksadk/sandbox/backends/e2b.py +13 -5
  199. ksadk/sandbox/backends/local_process.py +11 -3
  200. ksadk/sandbox/base.py +10 -15
  201. ksadk/sandbox/factory.py +14 -4
  202. ksadk/sandbox/registry.py +57 -6
  203. ksadk/server/api_models.py +15 -5
  204. ksadk/server/app.py +455 -3743
  205. ksadk/server/composition.py +21 -0
  206. ksadk/server/factory.py +624 -0
  207. ksadk/server/routes/__init__.py +1 -0
  208. ksadk/server/routes/checkpoint_resolution.py +116 -0
  209. ksadk/server/routes/common.py +713 -0
  210. ksadk/server/routes/control.py +327 -0
  211. ksadk/server/routes/dependencies.py +98 -0
  212. ksadk/server/routes/misc.py +448 -0
  213. ksadk/server/routes/models.py +443 -0
  214. ksadk/server/routes/openai_compat.py +207 -0
  215. ksadk/server/routes/projection.py +795 -0
  216. ksadk/server/routes/routers.py +52 -0
  217. ksadk/server/routes/run.py +726 -0
  218. ksadk/server/routes/sessions.py +649 -0
  219. ksadk/server/routes/streaming.py +223 -0
  220. ksadk/server/routes/workspace.py +381 -0
  221. ksadk/server/static/assets/{ArtifactsPanel-C0meuOdi.js → ArtifactsPanel-Cjnqt-8W.js} +1 -1
  222. ksadk/server/static/assets/CodeBlock-BqyqZfuB.js +9 -0
  223. ksadk/server/static/assets/MathMessageMarkdown-BpH7jiFM.js +8 -0
  224. ksadk/server/static/assets/MermaidBlock-DWuxETaJ.js +303 -0
  225. ksadk/server/static/assets/NativeTerminalPanel-MDTopWMO.js +1 -0
  226. ksadk/server/static/assets/{arc-bj2rZnP5.js → arc-CFKwSk_B.js} +1 -1
  227. ksadk/server/static/assets/architecture-7EHR7CIX-CynqOWjZ.js +1 -0
  228. ksadk/server/static/assets/{architectureDiagram-3BPJPVTR-2u1ltDIj.js → architectureDiagram-3BPJPVTR-Dej8jX8c.js} +1 -1
  229. ksadk/server/static/assets/{blockDiagram-GPEHLZMM-D6fvdK20.js → blockDiagram-GPEHLZMM-1F64jqvy.js} +1 -1
  230. ksadk/server/static/assets/{c4Diagram-AAUBKEIU-BK82L5n5.js → c4Diagram-AAUBKEIU-9q7AUAKb.js} +1 -1
  231. ksadk/server/static/assets/channel-iUGv2N24.js +1 -0
  232. ksadk/server/static/assets/{chunk-2J33WTMH-DLVdkeyQ.js → chunk-2J33WTMH-6qgwJm7Q.js} +1 -1
  233. ksadk/server/static/assets/{chunk-4BX2VUAB-BbwsYcbW.js → chunk-4BX2VUAB-CsWIQRhc.js} +1 -1
  234. ksadk/server/static/assets/{chunk-55IACEB6-DOairxzw.js → chunk-55IACEB6-BK8paA20.js} +1 -1
  235. ksadk/server/static/assets/{chunk-727SXJPM-hCO487gs.js → chunk-727SXJPM-B-JEhy7h.js} +1 -1
  236. ksadk/server/static/assets/{chunk-AQP2D5EJ-XU8vDOuG.js → chunk-AQP2D5EJ-DYBvMHAa.js} +1 -1
  237. ksadk/server/static/assets/{chunk-FMBD7UC4-PrapyfMu.js → chunk-FMBD7UC4-BGhvzDYt.js} +1 -1
  238. ksadk/server/static/assets/{chunk-ND2GUHAM-CboKhTZ3.js → chunk-ND2GUHAM-D98vPd-E.js} +1 -1
  239. ksadk/server/static/assets/chunk-QZHKN3VN-YQIEXeF6.js +1 -0
  240. ksadk/server/static/assets/classDiagram-4FO5ZUOK-CDAUuoXK.js +1 -0
  241. ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-CDAUuoXK.js +1 -0
  242. ksadk/server/static/assets/{cose-bilkent-S5V4N54A-_N8bJ-EU.js → cose-bilkent-S5V4N54A-CX3yotHq.js} +1 -1
  243. ksadk/server/static/assets/{dagre-BM42HDAG-FoDlo5J2.js → dagre-BM42HDAG-C7TguAWo.js} +1 -1
  244. ksadk/server/static/assets/{diagram-2AECGRRQ-BBp6ebBw.js → diagram-2AECGRRQ-Dd17_kws.js} +1 -1
  245. ksadk/server/static/assets/{diagram-5GNKFQAL-CqOvG1PR.js → diagram-5GNKFQAL-DVIClIil.js} +1 -1
  246. ksadk/server/static/assets/{diagram-KO2AKTUF-O9T3t6ba.js → diagram-KO2AKTUF-Df_3gYQa.js} +1 -1
  247. ksadk/server/static/assets/{diagram-LMA3HP47-CGG8ekBO.js → diagram-LMA3HP47-BhLk6ZtA.js} +1 -1
  248. ksadk/server/static/assets/{diagram-OG6HWLK6-4BmH1EEg.js → diagram-OG6HWLK6-D4GNGvuu.js} +1 -1
  249. ksadk/server/static/assets/{dist-CiZHB6ZW.js → dist-6CVKuTAe.js} +1 -1
  250. ksadk/server/static/assets/{dist-BMKM66B4.js → dist-BUHRxvDG.js} +1 -1
  251. ksadk/server/static/assets/{dist-CZ6C3x8B.js → dist-BZ9n9AjO.js} +1 -1
  252. ksadk/server/static/assets/{dist-DbaH3p5h.js → dist-BibcG1V9.js} +1 -1
  253. ksadk/server/static/assets/{dist-BVzcWa6D.js → dist-Bs-jQcRX.js} +1 -1
  254. ksadk/server/static/assets/{dist-D99wf6_X.js → dist-C2xjE7cO.js} +1 -1
  255. ksadk/server/static/assets/{dist-DLMjL01k.js → dist-C7-3jInC.js} +1 -1
  256. ksadk/server/static/assets/{dist-DI-oVAXw.js → dist-C99THtIA.js} +1 -1
  257. ksadk/server/static/assets/{dist-BkJjNih3.js → dist-CGcp2ex8.js} +1 -1
  258. ksadk/server/static/assets/{dist-D5JGcxBx.js → dist-CVQRZjPu.js} +1 -1
  259. ksadk/server/static/assets/{dist-CWiTDN_V.js → dist-Cf23NY4L.js} +1 -1
  260. ksadk/server/static/assets/{dist-DLeM1OCK.js → dist-CgF3fj15.js} +1 -1
  261. ksadk/server/static/assets/{dist-BmuTWcm7.js → dist-Cwt7koer.js} +1 -1
  262. ksadk/server/static/assets/{dist-C2DKRFVK.js → dist-D82mtD2s.js} +1 -1
  263. ksadk/server/static/assets/{dist-B67uF2uK.js → dist-DF06ORQo.js} +1 -1
  264. ksadk/server/static/assets/{dist-Cwhk4lwI.js → dist-DHn6nBzr.js} +1 -1
  265. ksadk/server/static/assets/{dist-S4klkK5W.js → dist-Djgl2wVZ.js} +1 -1
  266. ksadk/server/static/assets/{dist-DCpZrjaK.js → dist-DlzCRy0S.js} +1 -1
  267. ksadk/server/static/assets/{dist-Cp1_jKwf.js → dist-DqNnNFrw.js} +1 -1
  268. ksadk/server/static/assets/{dist-6kSZvCZh.js → dist-DyvYLMW9.js} +1 -1
  269. ksadk/server/static/assets/{dist-DM0rEQPk.js → dist-eoW6tZXA.js} +1 -1
  270. ksadk/server/static/assets/{dist-Bk1l05Ni.js → dist-ivOya1LD.js} +1 -1
  271. ksadk/server/static/assets/{erDiagram-TEJ5UH35-oJhaci7S.js → erDiagram-TEJ5UH35-CnfRcY2M.js} +1 -1
  272. ksadk/server/static/assets/eventmodeling-FCH6USID-ChYO-ijM.js +1 -0
  273. ksadk/server/static/assets/{flowDiagram-I6XJVG4X-DtTmUan-.js → flowDiagram-I6XJVG4X-DGaJjGNJ.js} +1 -1
  274. ksadk/server/static/assets/{ganttDiagram-6RSMTGT7-BSsb_eij.js → ganttDiagram-6RSMTGT7-DpCoB2g9.js} +1 -1
  275. ksadk/server/static/assets/gitGraph-WXDBUCRP-BN_0Fk-j.js +1 -0
  276. ksadk/server/static/assets/{gitGraphDiagram-PVQCEYII-BR5s6Pws.js → gitGraphDiagram-PVQCEYII-9IKVFBVT.js} +1 -1
  277. ksadk/server/static/assets/index-QSwCHuB8.js +177 -0
  278. ksadk/server/static/assets/index-jOPmTOZH.css +2 -0
  279. ksadk/server/static/assets/info-J43DQDTF-Cp6o3vId.js +1 -0
  280. ksadk/server/static/assets/{infoDiagram-5YYISTIA-DYPc5cvh.js → infoDiagram-5YYISTIA-CYIIsb8y.js} +1 -1
  281. ksadk/server/static/assets/{ishikawaDiagram-YF4QCWOH-MoBdALDg.js → ishikawaDiagram-YF4QCWOH-DLOHGvWw.js} +1 -1
  282. ksadk/server/static/assets/{journeyDiagram-JHISSGLW-DgLiQT8l.js → journeyDiagram-JHISSGLW-BIzKeejT.js} +1 -1
  283. ksadk/server/static/assets/{kanban-definition-UN3LZRKU-CsFx112F.js → kanban-definition-UN3LZRKU-BWHoFSw2.js} +1 -1
  284. ksadk/server/static/assets/{katex-DRsiwpM2.js → katex-DATssjp1.js} +1 -1
  285. ksadk/server/static/assets/{linear-TNRQ5Orv.js → linear-CvMBw9cA.js} +1 -1
  286. ksadk/server/static/assets/{mermaid-parser.core-D2eMVOgo.js → mermaid-parser.core-mGAcEwcq.js} +2 -2
  287. ksadk/server/static/assets/{mindmap-definition-RKZ34NQL-BtByYFhL.js → mindmap-definition-RKZ34NQL-CSAQxEAe.js} +1 -1
  288. ksadk/server/static/assets/packet-YPE3B663-wQzct3cT.js +1 -0
  289. ksadk/server/static/assets/pie-LRSECV5Y-BgTQiv-9.js +1 -0
  290. ksadk/server/static/assets/{pieDiagram-4H26LBE5-DPnuCB8c.js → pieDiagram-4H26LBE5-By-ra07M.js} +1 -1
  291. ksadk/server/static/assets/{quadrantDiagram-W4KKPZXB-miFpCPv4.js → quadrantDiagram-W4KKPZXB-CxIR4JXI.js} +1 -1
  292. ksadk/server/static/assets/radar-GUYGQ44K-BIq5fXsn.js +1 -0
  293. ksadk/server/static/assets/{requirementDiagram-4Y6WPE33-mjB_yYkW.js → requirementDiagram-4Y6WPE33-DpW90iu3.js} +1 -1
  294. ksadk/server/static/assets/{sankeyDiagram-5OEKKPKP-D7hSlZZZ.js → sankeyDiagram-5OEKKPKP-DpGa6EAV.js} +1 -1
  295. ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-D9Cx6hC3.js → sequenceDiagram-3UESZ5HK-NTKNGGe5.js} +1 -1
  296. ksadk/server/static/assets/{stateDiagram-AJRCARHV-D_zrg47o.js → stateDiagram-AJRCARHV-DGpd9yFG.js} +1 -1
  297. ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-B3o579IQ.js +1 -0
  298. ksadk/server/static/assets/{timeline-definition-PNZ67QCA-CwSec0Wa.js → timeline-definition-PNZ67QCA-jqoYs3jQ.js} +1 -1
  299. ksadk/server/static/assets/treeView-BLDUP644-Dqi-E0EM.js +1 -0
  300. ksadk/server/static/assets/treemap-LRROVOQU-ClQP9CJ9.js +1 -0
  301. ksadk/server/static/assets/{vennDiagram-CIIHVFJN-agCVobiF.js → vennDiagram-CIIHVFJN-l3Z7-wbP.js} +1 -1
  302. ksadk/server/static/assets/wardley-L42UT6IY-8XLvnNIs.js +1 -0
  303. ksadk/server/static/assets/{wardleyDiagram-YWT4CUSO-TmrlhWNt.js → wardleyDiagram-YWT4CUSO-BR54GPmr.js} +1 -1
  304. ksadk/server/static/assets/{xychartDiagram-2RQKCTM6-DV71V-ah.js → xychartDiagram-2RQKCTM6-SkiH8GsK.js} +1 -1
  305. ksadk/server/static/index.html +2 -2
  306. ksadk/server/terminal_sessions.py +111 -58
  307. ksadk/sessions/__init__.py +86 -40
  308. ksadk/sessions/base.py +31 -11
  309. ksadk/sessions/continuity.py +28 -5
  310. ksadk/sessions/in_memory.py +46 -2
  311. ksadk/sessions/local_service.py +148 -17
  312. ksadk/sessions/postgres_service.py +216 -35
  313. ksadk/sessions/resilience.py +52 -0
  314. ksadk/sessions/resilient.py +388 -0
  315. ksadk/skills/models.py +17 -5
  316. ksadk/skills/package_store.py +5 -2
  317. ksadk/skills/runtime/agent.py +20 -5
  318. ksadk/skills/runtime/artifacts.py +1 -5
  319. ksadk/skills/runtime/backends/e2b.py +10 -4
  320. ksadk/skills/runtime/backends/local.py +15 -3
  321. ksadk/skills/runtime/base.py +1 -2
  322. ksadk/skills/runtime/executor.py +10 -3
  323. ksadk/skills/runtime/factory.py +4 -2
  324. ksadk/skills/runtime/loader.py +1 -2
  325. ksadk/skills/runtime/registry.py +15 -10
  326. ksadk/skills/runtime/request.py +3 -1
  327. ksadk/skills/service_client.py +38 -17
  328. ksadk/skills/tool_defs.py +15 -10
  329. ksadk/terminal_exec_policy.py +3 -4
  330. ksadk/tools/gateway.py +92 -15
  331. ksadk/tools/result_budget.py +12 -4
  332. ksadk/toolsets/__init__.py +136 -36
  333. ksadk/toolsets/platform.py +21 -5
  334. ksadk/toolsets/sandbox.py +82 -16
  335. ksadk/toolsets/skills.py +200 -39
  336. ksadk/toolsets/web.py +123 -26
  337. ksadk/toolsets/workspace.py +264 -114
  338. ksadk/tracing/exporters/inmemory_exporter.py +62 -51
  339. ksadk/tracing/exporters/langfuse_exporter.py +91 -76
  340. ksadk/tracing/setup.py +132 -53
  341. ksadk/tracing/span_utils.py +5 -2
  342. ksadk/tui/__init__.py +22 -7
  343. ksadk/tui/loop.py +1925 -0
  344. ksadk/tui/stream_render.py +69 -0
  345. ksadk/ui_config.py +5 -3
  346. ksadk/version.py +1 -1
  347. ksadk_runtime_common/schemas/runtime_event_v1.json +95 -0
  348. agentengine_sdk_python-0.6.9.dist-info/RECORD +0 -487
  349. ksadk/server/static/assets/CodeBlock-BbI4HPtJ.js +0 -9
  350. ksadk/server/static/assets/MathMessageMarkdown-DMLQYoLp.js +0 -8
  351. ksadk/server/static/assets/MermaidBlock-DCR8WZ17.js +0 -303
  352. ksadk/server/static/assets/NativeTerminalPanel-CKUvWhUz.js +0 -1
  353. ksadk/server/static/assets/architecture-7EHR7CIX-Cr6Xz1_c.js +0 -1
  354. ksadk/server/static/assets/channel-BSSOwFIb.js +0 -1
  355. ksadk/server/static/assets/chunk-QZHKN3VN-XXpdiwUL.js +0 -1
  356. ksadk/server/static/assets/classDiagram-4FO5ZUOK-C5HvGiyK.js +0 -1
  357. ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-C5HvGiyK.js +0 -1
  358. ksadk/server/static/assets/eventmodeling-FCH6USID-CIgwHJLL.js +0 -1
  359. ksadk/server/static/assets/gitGraph-WXDBUCRP-BVAJ7uo0.js +0 -1
  360. ksadk/server/static/assets/index-BH7-pC0B.js +0 -165
  361. ksadk/server/static/assets/index-DAURbCsP.css +0 -1
  362. ksadk/server/static/assets/info-J43DQDTF-MT80V4ge.js +0 -1
  363. ksadk/server/static/assets/packet-YPE3B663-BLKhbXZB.js +0 -1
  364. ksadk/server/static/assets/pie-LRSECV5Y-DFOikjSY.js +0 -1
  365. ksadk/server/static/assets/radar-GUYGQ44K-095b1Ikw.js +0 -1
  366. ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-J9kCb0nC.js +0 -1
  367. ksadk/server/static/assets/treeView-BLDUP644-yinfJEY6.js +0 -1
  368. ksadk/server/static/assets/treemap-LRROVOQU-DosUqN1Q.js +0 -1
  369. ksadk/server/static/assets/wardley-L42UT6IY-Bvp7-5uH.js +0 -1
  370. ksadk/tui/app.py +0 -400
  371. ksadk/tui/clipboard.py +0 -100
  372. ksadk/tui/widgets/__init__.py +0 -22
  373. ksadk/tui/widgets/assistant.py +0 -89
  374. ksadk/tui/widgets/base.py +0 -54
  375. ksadk/tui/widgets/chat_input.py +0 -246
  376. ksadk/tui/widgets/history.py +0 -156
  377. ksadk/tui/widgets/system.py +0 -87
  378. ksadk/tui/widgets/thinking.py +0 -110
  379. ksadk/tui/widgets/tool_call.py +0 -161
  380. ksadk/tui/widgets/user.py +0 -37
  381. {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/WHEEL +0 -0
  382. {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/entry_points.txt +0 -0
  383. {agentengine_sdk_python-0.6.9.dist-info → agentengine_sdk_python-0.8.0.dist-info}/licenses/LICENSE +0 -0
  384. {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": "暴露 A2A 服务与 Agent Card",
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 _register_commands():
315
- from ksadk.cli.cmd_create import create
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
- _add_command_once(cli, run)
322
- _add_command_once(cli, deploy)
323
- _add_command_once(cli, web)
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
- # init 作为主命令 (PRD 规范)
326
- _add_command_once(cli, create, name="init")
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
- _add_command_once(cli, files)
340
- except ImportError:
341
- pass
342
-
343
- try:
344
- from ksadk.cli.cmd_config import config
345
-
346
- _add_command_once(cli, config)
347
- except ImportError:
348
- pass
349
-
350
- try:
351
- from ksadk.cli.cmd_model import model
352
-
353
- _add_command_once(cli, model)
354
- except ImportError:
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
- _add_command_once(cli, status)
382
- except ImportError:
383
- pass
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
- from ksadk.cli.cmd_invoke import invoke
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
- try:
393
- from ksadk.cli.cmd_dashboard import dashboard
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
- _add_command_once(cli, dashboard)
396
- except ImportError:
397
- pass
325
+ # 注册现有命令
326
+ _add_command_once(cli, run)
327
+ _add_command_once(cli, deploy)
328
+ _add_command_once(cli, web)
398
329
 
399
- try:
400
- from ksadk.cli.cmd_destroy import delete, destroy
330
+ # init 作为主命令 (PRD 规范)
331
+ _add_command_once(cli, create, name="init")
401
332
 
402
- _add_command_once(cli, delete)
403
- _add_command_once(cli, destroy)
404
- except ImportError:
405
- pass
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
- try:
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
- try:
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
- try:
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
- try:
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
- try:
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():