agentengine-sdk-python 0.8.0__py3-none-any.whl → 0.8.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/METADATA +43 -7
  2. agentengine_sdk_python-0.8.2.dist-info/RECORD +778 -0
  3. {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/WHEEL +1 -1
  4. ksadk/a2a/__init__.py +2 -0
  5. ksadk/a2a/_space_client_events.py +381 -0
  6. ksadk/a2a/bootstrap.py +0 -2
  7. ksadk/a2a/card.py +6 -111
  8. ksadk/a2a/control_plane.py +239 -1
  9. ksadk/a2a/event_adapter.py +156 -64
  10. ksadk/a2a/executor.py +195 -172
  11. ksadk/a2a/routes.py +12 -5
  12. ksadk/a2a/server.py +1 -8
  13. ksadk/a2a/service_env.py +33 -0
  14. ksadk/a2a/space_client.py +43 -349
  15. ksadk/a2a_card.py +101 -0
  16. ksadk/a2ui/core.py +222 -53
  17. ksadk/agui/_agent_helpers.py +243 -0
  18. ksadk/agui/a2ui_projection.py +12 -5
  19. ksadk/agui/agent.py +474 -275
  20. ksadk/agui/config.py +11 -5
  21. ksadk/agui/routes.py +7 -15
  22. ksadk/api/client.py +530 -40
  23. ksadk/api/environment.py +27 -0
  24. ksadk/builders/code_builder.py +352 -53
  25. ksadk/builders/container_builder.py +71 -44
  26. ksadk/builders/framework_requirements.py +2 -1
  27. ksadk/builders/ks3_uploader.py +2 -2
  28. ksadk/builders/managed_runtime_builder.py +60 -28
  29. ksadk/cli/__init__.py +25 -0
  30. ksadk/cli/cmd_a2a.py +18 -31
  31. ksadk/cli/cmd_create.py +13 -26
  32. ksadk/cli/cmd_dashboard.py +15 -1
  33. ksadk/cli/cmd_deploy.py +28 -3
  34. ksadk/cli/cmd_eval.py +443 -0
  35. ksadk/cli/cmd_evalset.py +284 -0
  36. ksadk/cli/cmd_files.py +5 -1
  37. ksadk/cli/cmd_hermes.py +137 -163
  38. ksadk/cli/cmd_invoke.py +28 -38
  39. ksadk/cli/cmd_launch.py +12 -0
  40. ksadk/cli/cmd_managed_runtime.py +95 -0
  41. ksadk/cli/cmd_observe.py +85 -0
  42. ksadk/cli/cmd_openclaw.py +85 -479
  43. ksadk/cli/cmd_replay.py +28 -4
  44. ksadk/cli/cmd_run.py +29 -67
  45. ksadk/cli/cmd_studio.py +201 -0
  46. ksadk/cli/cmd_web.py +15 -6
  47. ksadk/cli/dry_run.py +2 -1
  48. ksadk/cli/env_options.py +83 -0
  49. ksadk/cli/global_options.py +3 -1
  50. ksadk/cli/hermes_env.py +151 -0
  51. ksadk/cli/invoke_payload.py +49 -0
  52. ksadk/cli/network_options.py +7 -5
  53. ksadk/cli/openclaw_env.py +458 -0
  54. ksadk/cli/runtime_bootstrap.py +51 -0
  55. ksadk/cli/ui.py +6 -0
  56. ksadk/cli/workflow_common.py +5 -5
  57. ksadk/codex/__init__.py +3 -3
  58. ksadk/codex/client.py +833 -49
  59. ksadk/codex/phase.py +1 -1
  60. ksadk/codex/runtime.py +720 -127
  61. ksadk/common/kop_client.py +232 -0
  62. ksadk/configs/__init__.py +1 -3
  63. ksadk/configs/env_registry.py +244 -45
  64. ksadk/configs/env_registry_pcm.py +181 -0
  65. ksadk/configs/env_var_spec.py +18 -0
  66. ksadk/configs/global_config.py +6 -1
  67. ksadk/configs/settings.py +5 -108
  68. ksadk/context_engine/__init__.py +98 -0
  69. ksadk/context_engine/assembler.py +176 -0
  70. ksadk/context_engine/baseline.py +419 -0
  71. ksadk/context_engine/cache_observability.py +228 -0
  72. ksadk/context_engine/capabilities.py +443 -0
  73. ksadk/context_engine/contributors.py +344 -0
  74. ksadk/context_engine/hosted_pipeline.py +417 -0
  75. ksadk/context_engine/models.py +117 -0
  76. ksadk/context_engine/planner.py +698 -0
  77. ksadk/context_engine/policies.py +319 -0
  78. ksadk/context_engine/projection.py +31 -0
  79. ksadk/context_engine/shadow_plan.py +266 -0
  80. ksadk/context_engine/tokenizer.py +164 -0
  81. ksadk/conversations/__init__.py +85 -94
  82. ksadk/conversations/context.py +126 -6
  83. ksadk/conversations/message_projection.py +292 -28
  84. ksadk/conversations/model_context.py +49 -3
  85. ksadk/conversations/runtime_compaction.py +207 -5
  86. ksadk/conversations/runtime_input.py +193 -3
  87. ksadk/conversations/runtime_invocation.py +81 -3
  88. ksadk/conversations/runtime_observability.py +157 -4
  89. ksadk/conversations/runtime_payloads.py +42 -0
  90. ksadk/conversations/runtime_preparation.py +280 -2
  91. ksadk/conversations/runtime_resume.py +71 -32
  92. ksadk/conversations/runtime_stream_events.py +94 -9
  93. ksadk/conversations/runtime_streaming.py +175 -22
  94. ksadk/conversations/semantic_summary.py +311 -1
  95. ksadk/conversations/session_lock.py +51 -0
  96. ksadk/deployment/env_forward.py +72 -0
  97. ksadk/deployment/managed_runtime.py +38 -0
  98. ksadk/deployment/manager.py +24 -8
  99. ksadk/deployment/providers/serverless.py +228 -92
  100. ksadk/evaluation/__init__.py +116 -0
  101. ksadk/evaluation/a2a_adapter.py +452 -0
  102. ksadk/evaluation/adapters.py +67 -0
  103. ksadk/evaluation/agent_eval_client.py +395 -0
  104. ksadk/evaluation/cloud_binding.py +80 -0
  105. ksadk/evaluation/cloud_converter.py +194 -0
  106. ksadk/evaluation/cloud_service.py +199 -0
  107. ksadk/evaluation/contracts.py +478 -0
  108. ksadk/evaluation/evalset.py +351 -0
  109. ksadk/evaluation/evaluators.py +627 -0
  110. ksadk/evaluation/evidence.py +258 -0
  111. ksadk/evaluation/executor.py +143 -0
  112. ksadk/evaluation/local_adapter.py +550 -0
  113. ksadk/evaluation/service_env.py +27 -0
  114. ksadk/evaluation/storage.py +68 -0
  115. ksadk/evaluation/studio_build_adapter.py +253 -0
  116. ksadk/evaluation/target.py +82 -0
  117. ksadk/events/__init__.py +13 -13
  118. ksadk/events/_v1_compat/__init__.py +1 -0
  119. ksadk/events/_v1_compat/models.py +299 -0
  120. ksadk/events/_v1_compat/parser.py +247 -0
  121. ksadk/events/_v1_compat/projection.py +753 -0
  122. ksadk/events/adapters/__init__.py +34 -0
  123. ksadk/events/adapters/_a2a_snapshot.py +622 -0
  124. ksadk/events/adapters/_a2a_support.py +275 -0
  125. ksadk/events/adapters/_codex_interactions.py +375 -0
  126. ksadk/events/adapters/_codex_items.py +801 -0
  127. ksadk/events/adapters/_codex_validators.py +311 -0
  128. ksadk/events/adapters/_langgraph_support.py +785 -0
  129. ksadk/events/adapters/a2a.py +841 -0
  130. ksadk/events/adapters/adk.py +503 -0
  131. ksadk/events/adapters/codex.py +717 -0
  132. ksadk/events/adapters/langgraph.py +745 -0
  133. ksadk/events/canonical.py +440 -0
  134. ksadk/events/canonical_replay.py +497 -0
  135. ksadk/events/canonical_store.py +468 -0
  136. ksadk/events/cold_recovery.py +257 -0
  137. ksadk/events/content.py +89 -0
  138. ksadk/events/identity.py +86 -0
  139. ksadk/events/pipeline.py +455 -0
  140. ksadk/events/projections.py +66 -0
  141. ksadk/events/reducer.py +661 -0
  142. ksadk/events/replay.py +3 -36
  143. ksadk/events/runtime_event.py +20 -256
  144. ksadk/events/session_event.py +324 -0
  145. ksadk/events/store.py +3 -316
  146. ksadk/events/v1_compat.py +41 -0
  147. ksadk/harness/__init__.py +3 -2
  148. ksadk/harness/app.py +114 -123
  149. ksadk/harness/config.py +1 -1
  150. ksadk/harness/runtime.py +467 -0
  151. ksadk/hermes_terminal.py +5 -0
  152. ksadk/identity/resolver.py +4 -3
  153. ksadk/interaction/__init__.py +28 -0
  154. ksadk/interaction/contracts.py +136 -0
  155. ksadk/interaction/ledger.py +189 -0
  156. ksadk/interaction/provider.py +122 -0
  157. ksadk/interaction/providers/__init__.py +52 -0
  158. ksadk/interaction/providers/adk.py +40 -0
  159. ksadk/interaction/providers/codex.py +94 -0
  160. ksadk/interaction/providers/langgraph.py +58 -0
  161. ksadk/kernel/__init__.py +117 -0
  162. ksadk/kernel/authorization.py +258 -0
  163. ksadk/kernel/bootstrap.py +1074 -0
  164. ksadk/kernel/contract_fingerprints.py +61 -0
  165. ksadk/kernel/contracts.py +362 -0
  166. ksadk/kernel/control.py +219 -0
  167. ksadk/kernel/errors.py +79 -0
  168. ksadk/kernel/ingress.py +1102 -0
  169. ksadk/kernel/mapping.py +111 -0
  170. ksadk/kernel/memory_store.py +1133 -0
  171. ksadk/kernel/postgres_store.py +1756 -0
  172. ksadk/kernel/recovery.py +452 -0
  173. ksadk/kernel/runtime_identity.py +103 -0
  174. ksadk/kernel/sql/001_agent_kernel.sql +120 -0
  175. ksadk/kernel/sqlite_store.py +1410 -0
  176. ksadk/kernel/state.py +145 -0
  177. ksadk/kernel/store.py +232 -0
  178. ksadk/kernel/worker.py +953 -0
  179. ksadk/knowledge_base/client.py +22 -4
  180. ksadk/knowledge_base/service.py +32 -5
  181. ksadk/managed_a2a_card.py +160 -0
  182. ksadk/managed_runtime.py +16 -9
  183. ksadk/memory/__init__.py +61 -0
  184. ksadk/memory/adk/backends/base_ltm_backend.py +96 -1
  185. ksadk/memory/adk/backends/http_ltm_backend.py +14 -5
  186. ksadk/memory/adk/backends/inmemory_ltm_backend.py +136 -3
  187. ksadk/memory/adk/backends/sdk_ltm_backend.py +394 -5
  188. ksadk/memory/adk/backends/sqlite_ltm_backend.py +95 -0
  189. ksadk/memory/adk/long_term_memory.py +3 -2
  190. ksadk/memory/coordinator.py +461 -0
  191. ksadk/memory/events.py +202 -0
  192. ksadk/memory/extraction.py +228 -0
  193. ksadk/memory/ltm_backend_factory.py +16 -3
  194. ksadk/memory/models.py +316 -0
  195. ksadk/memory/policy.py +215 -0
  196. ksadk/memory/provider.py +47 -0
  197. ksadk/memory/provider_adapter.py +159 -0
  198. ksadk/memory/provider_resolver.py +71 -0
  199. ksadk/memory/providers/__init__.py +5 -0
  200. ksadk/memory/providers/local_sqlite.py +490 -0
  201. ksadk/memory/resolved_policy.py +145 -0
  202. ksadk/memory/service.py +198 -8
  203. ksadk/memory/tool.py +4 -0
  204. ksadk/model_proxy/bootstrap.py +16 -9
  205. ksadk/model_proxy/config.py +22 -1
  206. ksadk/model_proxy/detect.py +202 -9
  207. ksadk/model_proxy/namespace.py +67 -15
  208. ksadk/model_proxy/server.py +168 -6
  209. ksadk/model_proxy/transform.py +105 -3
  210. ksadk/observability/__init__.py +25 -0
  211. ksadk/observability/session_log.py +420 -0
  212. ksadk/observability/trajectory.py +105 -0
  213. ksadk/prompts/__init__.py +71 -0
  214. ksadk/prompts/compiler.py +215 -0
  215. ksadk/prompts/models.py +82 -0
  216. ksadk/prompts/projection.py +89 -0
  217. ksadk/prompts/resolved.py +137 -0
  218. ksadk/prompts/sources.py +233 -0
  219. ksadk/runners/_langgraph_runner_streams.py +822 -0
  220. ksadk/runners/adk_runner.py +14 -31
  221. ksadk/runners/base_runner.py +44 -3
  222. ksadk/runners/factory.py +3 -3
  223. ksadk/runners/langgraph_runner.py +252 -433
  224. ksadk/runners/utils/__init__.py +0 -10
  225. ksadk/runners/utils/loader.py +16 -0
  226. ksadk/runtime/__init__.py +67 -41
  227. ksadk/runtime/_runner_adapter/__init__.py +1 -0
  228. ksadk/runtime/_runner_adapter/stream_mapping.py +788 -0
  229. ksadk/runtime/adapter.py +199 -16
  230. ksadk/runtime/conversation_execution.py +687 -0
  231. ksadk/runtime/executor.py +392 -0
  232. ksadk/runtime/factory.py +342 -0
  233. ksadk/runtime/framework_adapters.py +6 -12
  234. ksadk/runtime/hosted_finalizer.py +268 -0
  235. ksadk/runtime/launch.py +61 -0
  236. ksadk/runtime/preprocessing.py +49 -14
  237. ksadk/runtime/runner_adapter.py +330 -391
  238. ksadk/runtime/runner_loading.py +36 -0
  239. ksadk/runtime/usage.py +33 -0
  240. ksadk/sandbox/backends/e2b.py +36 -3
  241. ksadk/server/__init__.py +39 -4
  242. ksadk/server/app.py +18 -492
  243. ksadk/server/composition.py +36 -2
  244. ksadk/server/factory.py +210 -149
  245. ksadk/server/routes/common.py +15 -46
  246. ksadk/server/routes/control.py +13 -9
  247. ksadk/server/routes/kernel_ingress.py +258 -0
  248. ksadk/server/routes/misc.py +10 -33
  249. ksadk/server/routes/models.py +14 -6
  250. ksadk/server/routes/openai_compat.py +129 -27
  251. ksadk/server/routes/projection.py +84 -16
  252. ksadk/server/routes/run.py +347 -460
  253. ksadk/server/routes/sessions.py +37 -40
  254. ksadk/server/routes/streaming.py +52 -7
  255. ksadk/server/routes/workspace.py +54 -21
  256. ksadk/server/static/assets/{ArtifactsPanel-Cjnqt-8W.js → ArtifactsPanel-DSU1sWD_.js} +1 -1
  257. ksadk/server/static/assets/{CodeBlock-BqyqZfuB.js → CodeBlock-DOH6MVcn.js} +4 -4
  258. ksadk/server/static/assets/{MathMessageMarkdown-BpH7jiFM.js → MathMessageMarkdown-BL8my1R2.js} +4 -4
  259. ksadk/server/static/assets/MathMessageMarkdown-BorAY7qD.css +1 -0
  260. ksadk/server/static/assets/MermaidBlock-Dz4IP-Tx.js +312 -0
  261. ksadk/server/static/assets/NativeTerminalPanel-DUrK0JpZ.js +1 -0
  262. ksadk/server/static/assets/abnfDiagram-VCTEODGH-g20pFzNV.js +1 -0
  263. ksadk/server/static/assets/arc-C4FzinUA.js +1 -0
  264. ksadk/server/static/assets/architecture-7GRP2DOG-DjKratdf.js +1 -0
  265. ksadk/server/static/assets/architectureDiagram-5GKGNRK7-DpIqL5h4.js +36 -0
  266. ksadk/server/static/assets/blockDiagram-NRAW4CY4-BjkljTNz.js +129 -0
  267. ksadk/server/static/assets/c4Diagram-UCG6FXSJ-Dk_ieq2X.js +38 -0
  268. ksadk/server/static/assets/channel-4cQHKtx1.js +1 -0
  269. ksadk/server/static/assets/chunk-2Q5K7J3B-DmgWkESh.js +1 -0
  270. ksadk/server/static/assets/{chunk-FMBD7UC4-BGhvzDYt.js → chunk-5VM5RSS4-BVHAchFb.js} +1 -1
  271. ksadk/server/static/assets/{chunk-ND2GUHAM-D98vPd-E.js → chunk-F27PBJKO-C-ipQzuS.js} +1 -1
  272. ksadk/server/static/assets/chunk-G27WJ6UU-C2EyJbIK.js +231 -0
  273. ksadk/server/static/assets/{chunk-4BX2VUAB-CsWIQRhc.js → chunk-JWPE2WC7-vYvVJb_M.js} +1 -1
  274. ksadk/server/static/assets/chunk-LCL6LL3I-BcI6ysPT.js +206 -0
  275. ksadk/server/static/assets/chunk-POPQ4Y6H-C030x_Z1.js +1 -0
  276. ksadk/server/static/assets/chunk-RHFEMEQ7-yyGpsz4n.js +168 -0
  277. ksadk/server/static/assets/chunk-SVP7TREG-BLTlmMU7.js +88 -0
  278. ksadk/server/static/assets/chunk-XXDRQBXY-C_32ArgP.js +1 -0
  279. ksadk/server/static/assets/classDiagram-DTDB5LWJ-DLFd9Xi0.js +1 -0
  280. ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-DLFd9Xi0.js +1 -0
  281. ksadk/server/static/assets/{cose-bilkent-S5V4N54A-CX3yotHq.js → cose-bilkent-JH36ORCC-9YQYwdl0.js} +1 -1
  282. ksadk/server/static/assets/cynefin-OW5HDTMX-DjEM48Qp.js +1 -0
  283. ksadk/server/static/assets/cynefinDiagram-5FMLGOSQ-ErLF5N13.js +62 -0
  284. ksadk/server/static/assets/cytoscape.esm-CyCl8rPi.js +321 -0
  285. ksadk/server/static/assets/dagre-3AP2YEHR-DFiQF-6f.js +4 -0
  286. ksadk/server/static/assets/dagre-BuhGnRI1.js +1 -0
  287. ksadk/server/static/assets/diagram-S7CK7UJ4-Bt1v8-GC.js +30 -0
  288. ksadk/server/static/assets/diagram-UQ7AKVKN-DSCxJdBK.js +41 -0
  289. ksadk/server/static/assets/diagram-VSXAHHWV-DHfYwp_9.js +3 -0
  290. ksadk/server/static/assets/diagram-VX7I27RA-DdzD-4Le.js +24 -0
  291. ksadk/server/static/assets/diagram-Z3DM3KII-Du-nAJ9F.js +24 -0
  292. ksadk/server/static/assets/{dist-D82mtD2s.js → dist-8hqcx0sU.js} +1 -1
  293. ksadk/server/static/assets/dist-B7seoj3d.js +1 -0
  294. ksadk/server/static/assets/{dist-DHn6nBzr.js → dist-BE7bu-DL.js} +1 -1
  295. ksadk/server/static/assets/{dist-eoW6tZXA.js → dist-BVDffZ0U.js} +1 -1
  296. ksadk/server/static/assets/{dist-C2xjE7cO.js → dist-BX8z72IC.js} +1 -1
  297. ksadk/server/static/assets/{dist-CgF3fj15.js → dist-Bf2M8m3N.js} +1 -1
  298. ksadk/server/static/assets/{dist-Bs-jQcRX.js → dist-BjU6y-A2.js} +1 -1
  299. ksadk/server/static/assets/{dist-Djgl2wVZ.js → dist-BytlxIDT.js} +1 -1
  300. ksadk/server/static/assets/{dist-CVQRZjPu.js → dist-CSh_DE14.js} +1 -1
  301. ksadk/server/static/assets/{dist-6CVKuTAe.js → dist-CXYYBw3_.js} +1 -1
  302. ksadk/server/static/assets/{dist-DlzCRy0S.js → dist-C_wsv-Qd.js} +1 -1
  303. ksadk/server/static/assets/{dist-DF06ORQo.js → dist-ClxGviKw.js} +1 -1
  304. ksadk/server/static/assets/{dist-Cf23NY4L.js → dist-CttYUqzS.js} +1 -1
  305. ksadk/server/static/assets/{dist-ivOya1LD.js → dist-DNp6rLRA.js} +1 -1
  306. ksadk/server/static/assets/{dist-BibcG1V9.js → dist-DUX-id_F.js} +1 -1
  307. ksadk/server/static/assets/{dist-BUHRxvDG.js → dist-DmldrHd_.js} +1 -1
  308. ksadk/server/static/assets/{dist-BZ9n9AjO.js → dist-DnfXs8Vn.js} +2 -2
  309. ksadk/server/static/assets/{dist-DqNnNFrw.js → dist-Dq9gLD7L.js} +1 -1
  310. ksadk/server/static/assets/{dist-CGcp2ex8.js → dist-W-TIVntx.js} +1 -1
  311. ksadk/server/static/assets/{dist-Cwt7koer.js → dist-dDdADKFA.js} +1 -1
  312. ksadk/server/static/assets/{dist-C7-3jInC.js → dist-dydu68Fl.js} +1 -1
  313. ksadk/server/static/assets/{dist-C99THtIA.js → dist-ngtN0DJB.js} +1 -1
  314. ksadk/server/static/assets/ebnfDiagram-PWID7BFC-Da9C9NO1.js +1 -0
  315. ksadk/server/static/assets/erDiagram-SSCWMZ5O-EAGqqR79.js +99 -0
  316. ksadk/server/static/assets/eventmodeling-NTZA5JFV-CMgMaJrC.js +1 -0
  317. ksadk/server/static/assets/flowDiagram-A5DVABFB-BBKL0x3P.js +1 -0
  318. ksadk/server/static/assets/ganttDiagram-EL5Y4UJY-DqJsKb59.js +292 -0
  319. ksadk/server/static/assets/gitGraph-4MIJSDKK-Dw63mrhw.js +1 -0
  320. ksadk/server/static/assets/gitGraphDiagram-WWUBYQGX-B6g4dtDi.js +106 -0
  321. ksadk/server/static/assets/index-8ipRcQ-M.js +240 -0
  322. ksadk/server/static/assets/index-ByFCqjlh.css +2 -0
  323. ksadk/server/static/assets/info-A6RAGUB7-B6iAblII.js +1 -0
  324. ksadk/server/static/assets/infoDiagram-RXCK75RN-Djm_nbd5.js +2 -0
  325. ksadk/server/static/assets/{ishikawaDiagram-YF4QCWOH-DLOHGvWw.js → ishikawaDiagram-5VMMS53U-DWya9SG2.js} +6 -6
  326. ksadk/server/static/assets/{journeyDiagram-JHISSGLW-BIzKeejT.js → journeyDiagram-EYS64GPL-DutxhSNI.js} +6 -6
  327. ksadk/server/static/assets/{kanban-definition-UN3LZRKU-BWHoFSw2.js → kanban-definition-3QL26DDD-DJdOF8Fm.js} +10 -10
  328. ksadk/server/static/assets/katex-vFWytM5c.js +257 -0
  329. ksadk/server/static/assets/{linear-CvMBw9cA.js → linear-BHjG8b-J.js} +1 -1
  330. ksadk/server/static/assets/mermaid-parser.core-KGSy4jWT.js +166 -0
  331. ksadk/server/static/assets/{mindmap-definition-RKZ34NQL-CSAQxEAe.js → mindmap-definition-FBJOCRG2-9-HC88D4.js} +29 -29
  332. ksadk/server/static/assets/packet-AYTQ26CC-BOYAipuq.js +1 -0
  333. ksadk/server/static/assets/pegDiagram-XKGWAZYB-DrEZd4fD.js +1 -0
  334. ksadk/server/static/assets/pie-WAS4IAKB-Ctq0Kbku.js +1 -0
  335. ksadk/server/static/assets/pieDiagram-E7YTZNPT-DpjqOFFp.js +39 -0
  336. ksadk/server/static/assets/{quadrantDiagram-W4KKPZXB-CxIR4JXI.js → quadrantDiagram-AXDQQJYC-BiNhgOXX.js} +6 -6
  337. ksadk/server/static/assets/radar-RG4KPBEZ-DN0-ul_0.js +1 -0
  338. ksadk/server/static/assets/railroad-74A4TZTK-C6cC_to0.js +1 -0
  339. ksadk/server/static/assets/railroad-abnf-HS5TGJTU-BimjIuRc.js +1 -0
  340. ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-CvY65ABq.js +1 -0
  341. ksadk/server/static/assets/railroad-peg-WCYAUIDC-D72Iq_Tv.js +1 -0
  342. ksadk/server/static/assets/railroadDiagram-O6MQD6OU-_Y3Ojg6G.js +1 -0
  343. ksadk/server/static/assets/requirementDiagram-EFPCY7ZU-DeCFdg9K.js +84 -0
  344. ksadk/server/static/assets/{sankeyDiagram-5OEKKPKP-DpGa6EAV.js → sankeyDiagram-P5KCCOFB-CPH75rhw.js} +7 -7
  345. ksadk/server/static/assets/{sequenceDiagram-3UESZ5HK-NTKNGGe5.js → sequenceDiagram-WJ2MYXX4-OEpQQdr4.js} +10 -10
  346. ksadk/server/static/assets/sizeCapture-X5ZJPWSS-heUErzhI.js +1 -0
  347. ksadk/server/static/assets/stateDiagram-HBIQ2CUA-DvA3jSMB.js +1 -0
  348. ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-BgQY03nz.js +1 -0
  349. ksadk/server/static/assets/swimlanes-XN3QIQJK-CR-dfN_t.js +1 -0
  350. ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-DLVw3q5Q.js +8 -0
  351. ksadk/server/static/assets/{timeline-definition-PNZ67QCA-jqoYs3jQ.js → timeline-definition-24CTP7MA-DAVJf1TX.js} +7 -7
  352. ksadk/server/static/assets/treeView-Q6P3EWNA-BMpO0wsB.js +1 -0
  353. ksadk/server/static/assets/treemap-WGGIJYW6-Et0aqzU3.js +1 -0
  354. ksadk/server/static/assets/vennDiagram-4TSXK5OY-DwM8eDkh.js +34 -0
  355. ksadk/server/static/assets/wardley-WFR3VGLG-CbY0mhpl.js +1 -0
  356. ksadk/server/static/assets/wardleyDiagram-VM6X3IG4-DZL-Zz2t.js +78 -0
  357. ksadk/server/static/assets/xychartDiagram-S5SC5T6Z-Dy6Yh_hu.js +7 -0
  358. ksadk/server/static/index.html +2 -2
  359. ksadk/sessions/__init__.py +26 -9
  360. ksadk/sessions/_local_service_sync.py +688 -0
  361. ksadk/sessions/_local_tables.py +21 -0
  362. ksadk/sessions/_postgres_schema.py +305 -0
  363. ksadk/sessions/_postgres_tables.py +15 -0
  364. ksadk/sessions/base.py +80 -1
  365. ksadk/sessions/in_memory.py +53 -2
  366. ksadk/sessions/local_service.py +63 -604
  367. ksadk/sessions/postgres_service.py +58 -148
  368. ksadk/sessions/resilient.py +35 -1
  369. ksadk/skills/runtime/backends/e2b.py +1 -1
  370. ksadk/skills/service_client.py +13 -3
  371. ksadk/studio/__init__.py +5 -0
  372. ksadk/studio/agent_avatar_assets.py +120 -0
  373. ksadk/studio/agent_lifecycle.py +51 -0
  374. ksadk/studio/api.py +1598 -0
  375. ksadk/studio/api_catalog_routes.py +324 -0
  376. ksadk/studio/api_contracts.py +286 -0
  377. ksadk/studio/api_helpers.py +132 -0
  378. ksadk/studio/api_memory_routes.py +82 -0
  379. ksadk/studio/authoring.py +749 -0
  380. ksadk/studio/authoring_coordinator.py +1017 -0
  381. ksadk/studio/builder.py +397 -0
  382. ksadk/studio/capabilities.py +368 -0
  383. ksadk/studio/cloud.py +2099 -0
  384. ksadk/studio/codex_agent_service.py +694 -0
  385. ksadk/studio/codex_authoring.py +469 -0
  386. ksadk/studio/codex_builder.py +437 -0
  387. ksadk/studio/codex_manifest.py +307 -0
  388. ksadk/studio/codex_run.py +395 -0
  389. ksadk/studio/compiler.py +190 -0
  390. ksadk/studio/contracts.py +755 -0
  391. ksadk/studio/errors.py +47 -0
  392. ksadk/studio/event_store.py +214 -0
  393. ksadk/studio/framework_run.py +342 -0
  394. ksadk/studio/hosted_kernel.py +317 -0
  395. ksadk/studio/identifiers.py +33 -0
  396. ksadk/studio/manifest_resolver.py +131 -0
  397. ksadk/studio/mcp_runtime.py +229 -0
  398. ksadk/studio/model_client.py +629 -0
  399. ksadk/studio/model_profile_service.py +214 -0
  400. ksadk/studio/operations.py +275 -0
  401. ksadk/studio/otel_trace.py +1060 -0
  402. ksadk/studio/pagination.py +182 -0
  403. ksadk/studio/pcm_memory.py +85 -0
  404. ksadk/studio/python_tool_inspection.py +183 -0
  405. ksadk/studio/repository.py +327 -0
  406. ksadk/studio/resource_catalog.py +1260 -0
  407. ksadk/studio/run_service.py +1133 -0
  408. ksadk/studio/runtime_catalog.py +74 -0
  409. ksadk/studio/runtime_source.py +365 -0
  410. ksadk/studio/service.py +2249 -0
  411. ksadk/studio/shared_web.py +1004 -0
  412. ksadk/studio/skill_discovery.py +628 -0
  413. ksadk/studio/static/assets/PrismRenderer-IYN-ffww.js +3 -0
  414. ksadk/studio/static/assets/index-BLpcdrgW.css +1 -0
  415. ksadk/studio/static/assets/index-CYekR2Xv.js +260 -0
  416. ksadk/studio/static/assets/react-vendor-BNmTiJ-I.js +9 -0
  417. ksadk/studio/static/assets/rolldown-runtime-hePW80VL.js +1 -0
  418. ksadk/studio/static/index.html +15 -0
  419. ksadk/studio/templates.py +722 -0
  420. ksadk/studio/validator.py +265 -0
  421. ksadk/studio/workspace.py +135 -0
  422. ksadk/tools/gateway.py +9 -0
  423. ksadk/toolsets/__init__.py +27 -1
  424. ksadk/toolsets/a2a.py +426 -0
  425. ksadk/tracing/__init__.py +19 -21
  426. ksadk/tracing/setup.py +317 -403
  427. ksadk/tracing/span_utils.py +0 -44
  428. ksadk/version.py +1 -1
  429. ksadk_runtime_common/memory_backend/registry.py +56 -56
  430. ksadk_runtime_common/schemas/runtime_event_v1.json +37 -0
  431. ksadk_runtime_common/schemas/runtime_event_v2.json +271 -0
  432. ksadk_runtime_common/workspace_files/router.py +8 -2
  433. agentengine_sdk_python-0.8.0.dist-info/RECORD +0 -578
  434. ksadk/a2a/card_builder.py +0 -64
  435. ksadk/a2a/client.py +0 -309
  436. ksadk/events/parser.py +0 -191
  437. ksadk/harness/runner.py +0 -211
  438. ksadk/runners/codex_runner.py +0 -132
  439. ksadk/runners/utils/langfuse.py +0 -230
  440. ksadk/server/static/assets/MathMessageMarkdown-DeYh8QPr.css +0 -1
  441. ksadk/server/static/assets/MermaidBlock-DWuxETaJ.js +0 -303
  442. ksadk/server/static/assets/NativeTerminalPanel-MDTopWMO.js +0 -1
  443. ksadk/server/static/assets/arc-CFKwSk_B.js +0 -1
  444. ksadk/server/static/assets/architecture-7EHR7CIX-CynqOWjZ.js +0 -1
  445. ksadk/server/static/assets/architectureDiagram-3BPJPVTR-Dej8jX8c.js +0 -36
  446. ksadk/server/static/assets/blockDiagram-GPEHLZMM-1F64jqvy.js +0 -132
  447. ksadk/server/static/assets/c4Diagram-AAUBKEIU-9q7AUAKb.js +0 -10
  448. ksadk/server/static/assets/channel-iUGv2N24.js +0 -1
  449. ksadk/server/static/assets/chunk-2J33WTMH-6qgwJm7Q.js +0 -1
  450. ksadk/server/static/assets/chunk-55IACEB6-BK8paA20.js +0 -1
  451. ksadk/server/static/assets/chunk-727SXJPM-B-JEhy7h.js +0 -206
  452. ksadk/server/static/assets/chunk-AQP2D5EJ-DYBvMHAa.js +0 -231
  453. ksadk/server/static/assets/chunk-QZHKN3VN-YQIEXeF6.js +0 -1
  454. ksadk/server/static/assets/classDiagram-4FO5ZUOK-CDAUuoXK.js +0 -1
  455. ksadk/server/static/assets/classDiagram-v2-Q7XG4LA2-CDAUuoXK.js +0 -1
  456. ksadk/server/static/assets/cytoscape.esm-DelgaX4f.js +0 -321
  457. ksadk/server/static/assets/dagre-BM42HDAG-C7TguAWo.js +0 -4
  458. ksadk/server/static/assets/dagre-Bx709z4p.js +0 -1
  459. ksadk/server/static/assets/diagram-2AECGRRQ-Dd17_kws.js +0 -43
  460. ksadk/server/static/assets/diagram-5GNKFQAL-DVIClIil.js +0 -10
  461. ksadk/server/static/assets/diagram-KO2AKTUF-Df_3gYQa.js +0 -3
  462. ksadk/server/static/assets/diagram-LMA3HP47-BhLk6ZtA.js +0 -24
  463. ksadk/server/static/assets/diagram-OG6HWLK6-D4GNGvuu.js +0 -24
  464. ksadk/server/static/assets/dist-DyvYLMW9.js +0 -1
  465. ksadk/server/static/assets/erDiagram-TEJ5UH35-CnfRcY2M.js +0 -85
  466. ksadk/server/static/assets/eventmodeling-FCH6USID-ChYO-ijM.js +0 -1
  467. ksadk/server/static/assets/flowDiagram-I6XJVG4X-DGaJjGNJ.js +0 -162
  468. ksadk/server/static/assets/ganttDiagram-6RSMTGT7-DpCoB2g9.js +0 -292
  469. ksadk/server/static/assets/gitGraph-WXDBUCRP-BN_0Fk-j.js +0 -1
  470. ksadk/server/static/assets/gitGraphDiagram-PVQCEYII-9IKVFBVT.js +0 -106
  471. ksadk/server/static/assets/graphlib-B8gBHxth.js +0 -1
  472. ksadk/server/static/assets/index-QSwCHuB8.js +0 -177
  473. ksadk/server/static/assets/index-jOPmTOZH.css +0 -2
  474. ksadk/server/static/assets/info-J43DQDTF-Cp6o3vId.js +0 -1
  475. ksadk/server/static/assets/infoDiagram-5YYISTIA-CYIIsb8y.js +0 -2
  476. ksadk/server/static/assets/katex-DATssjp1.js +0 -265
  477. ksadk/server/static/assets/mermaid-parser.core-mGAcEwcq.js +0 -161
  478. ksadk/server/static/assets/packet-YPE3B663-wQzct3cT.js +0 -1
  479. ksadk/server/static/assets/pie-LRSECV5Y-BgTQiv-9.js +0 -1
  480. ksadk/server/static/assets/pieDiagram-4H26LBE5-By-ra07M.js +0 -30
  481. ksadk/server/static/assets/radar-GUYGQ44K-BIq5fXsn.js +0 -1
  482. ksadk/server/static/assets/requirementDiagram-4Y6WPE33-DpW90iu3.js +0 -84
  483. ksadk/server/static/assets/stateDiagram-AJRCARHV-DGpd9yFG.js +0 -1
  484. ksadk/server/static/assets/stateDiagram-v2-BHNVJYJU-B3o579IQ.js +0 -1
  485. ksadk/server/static/assets/treeView-BLDUP644-Dqi-E0EM.js +0 -1
  486. ksadk/server/static/assets/treemap-LRROVOQU-ClQP9CJ9.js +0 -1
  487. ksadk/server/static/assets/vennDiagram-CIIHVFJN-l3Z7-wbP.js +0 -34
  488. ksadk/server/static/assets/wardley-L42UT6IY-8XLvnNIs.js +0 -1
  489. ksadk/server/static/assets/wardleyDiagram-YWT4CUSO-BR54GPmr.js +0 -78
  490. ksadk/server/static/assets/xychartDiagram-2RQKCTM6-SkiH8GsK.js +0 -7
  491. ksadk/tracing/exporters/langfuse_exporter.py +0 -460
  492. {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/entry_points.txt +0 -0
  493. {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/licenses/LICENSE +0 -0
  494. {agentengine_sdk_python-0.8.0.dist-info → agentengine_sdk_python-0.8.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,36 @@
1
+ """Lazy framework-runner initialization at the RuntimeAdapter boundary."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ def ensure_runner_loaded(runner: Any, *, runtime_type: str) -> None:
9
+ """Load a runner at first real execution, never during app bootstrap.
10
+
11
+ ``RuntimeRegistry.create()`` is also used by capability/bootstrap paths;
12
+ loading there would execute user code merely for rendering Studio. The
13
+ first ``start`` is the shared execution boundary for HTTP, A2A and Studio,
14
+ so loader errors are still returned before a stream body is opened.
15
+ """
16
+
17
+ if bool(getattr(runner, "_ksadk_runtime_loaded", False)):
18
+ return
19
+ # A caller may deliberately inject an already-constructed framework agent
20
+ # (for example a durable restore or an embedding application). Respect that
21
+ # ownership and do not re-import its entrypoint.
22
+ if getattr(runner, "_agent", None) is not None:
23
+ setattr(runner, "_ksadk_runtime_loaded", True)
24
+ return
25
+ load_agent = getattr(runner, "load_agent", None)
26
+ if not callable(load_agent):
27
+ # Runtime factories require BaseRunner, but lightweight adapters used by
28
+ # an external integration may already be executable and expose no
29
+ # separate initialization hook. There is nothing to defer in that case.
30
+ setattr(runner, "_ksadk_runtime_loaded", True)
31
+ return
32
+ load_agent()
33
+ setattr(runner, "_ksadk_runtime_loaded", True)
34
+
35
+
36
+ __all__ = ["ensure_runner_loaded"]
ksadk/runtime/usage.py ADDED
@@ -0,0 +1,33 @@
1
+ """Canonical runtime usage projection helpers."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any, Mapping
6
+
7
+
8
+ def canonical_usage_payload(
9
+ usage: Mapping[str, Any], *, runtime_type: str
10
+ ) -> dict[str, Any]:
11
+ """Normalize provider usage, including nested cache/reasoning details."""
12
+ input_details = usage.get("input_token_details")
13
+ output_details = usage.get("output_token_details")
14
+ cached = (
15
+ input_details.get("cached")
16
+ if isinstance(input_details, Mapping)
17
+ else usage.get("cached_tokens")
18
+ )
19
+ reasoning = (
20
+ output_details.get("reasoning")
21
+ if isinstance(output_details, Mapping)
22
+ else usage.get("reasoning_tokens")
23
+ )
24
+ input_tokens = int(usage.get("input_tokens") or 0)
25
+ output_tokens = int(usage.get("output_tokens") or 0)
26
+ return {
27
+ "input_tokens": input_tokens,
28
+ "output_tokens": output_tokens,
29
+ "total_tokens": int(usage.get("total_tokens") or input_tokens + output_tokens),
30
+ "cached_tokens": int(cached or 0),
31
+ "reasoning_tokens": int(reasoning or 0),
32
+ "source": str(usage.get("source") or runtime_type),
33
+ }
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import logging
3
4
  import os
4
5
  import time
5
6
  from typing import Any
@@ -12,10 +13,15 @@ from ksadk.sandbox.base import (
12
13
  SandboxSpec,
13
14
  )
14
15
 
16
+ logger = logging.getLogger(__name__)
17
+
15
18
  _TRANSIENT_STARTUP_ERROR_NAMES = {
16
19
  "NotFoundException",
17
20
  "FileNotFoundException",
18
21
  "SandboxNotFoundException",
22
+ # create 快速返回后 envd RPC 通道可能尚未就绪 (connection refused / unavailable),
23
+ # SDK 将其包装为 TimeoutException 抛出, 需按瞬时启动错误重试。
24
+ "TimeoutException",
19
25
  }
20
26
 
21
27
 
@@ -126,7 +132,7 @@ class E2BSandboxBackend:
126
132
  sandbox_cls = self.sandbox_cls
127
133
  if sandbox_cls is None:
128
134
  try:
129
- from e2b import Sandbox # type: ignore[import-untyped]
135
+ from e2b import Sandbox # type: ignore[import-not-found, import-untyped]
130
136
  except ImportError as exc:
131
137
  raise SandboxError(
132
138
  "e2b>=2.15.3,<2.25.0 is required for KSADK_SANDBOX_BACKEND=e2b"
@@ -148,7 +154,7 @@ class E2BSandboxBackend:
148
154
  allow_internet_access=self.spec.allow_internet_access,
149
155
  )
150
156
  session = self._wrap_sandbox(sandbox)
151
- self._wait_until_ready(session)
157
+ self._wait_until_ready(session, runtime_env)
152
158
  session.write_files(
153
159
  [(item.target_path, item.source.read_bytes()) for item in input_files or []]
154
160
  )
@@ -157,6 +163,33 @@ class E2BSandboxBackend:
157
163
  def _wrap_sandbox(self, sandbox: Any) -> E2BSandboxSession:
158
164
  return E2BSandboxSession(sandbox)
159
165
 
160
- def _wait_until_ready(self, session: E2BSandboxSession) -> None:
166
+ def _wait_until_ready(
167
+ self, session: E2BSandboxSession, env: dict[str, str] | None = None
168
+ ) -> None:
161
169
  _with_startup_retry(lambda: session.run_command("true"))
162
170
  _with_startup_retry(lambda: session.write_file("/tmp/.ksadk-sandbox-ready", ""))
171
+ self._wait_env_applied(session, env or {})
172
+
173
+ def _wait_env_applied(self, session: E2BSandboxSession, env: dict[str, str]) -> None:
174
+ # create 返回后 envd 异步应用 envVars, 实测存在秒级延迟;
175
+ # 轮询一个非空变量直到值就位, 避免紧随其后的 agent 进程读到缺失的环境。
176
+ probe = next(((k, v) for k, v in env.items() if v), None)
177
+ if probe is None:
178
+ return
179
+ key, expected = probe
180
+ attempts = _startup_retry_attempts()
181
+ delay = _startup_retry_delay()
182
+ for attempt in range(attempts):
183
+ result = session.run_command(f"printenv {key} || true")
184
+ if result.stdout.strip() == expected:
185
+ return
186
+ time.sleep(min(delay * (2**attempt), 1.0))
187
+ # 不 raise: 模板可能预置同名空值覆盖 create 注入 (envd 合并优先级问题),
188
+ # 此时调用方仍可通过 run_command(env=...) 的 per-command 注入拿到正确值。
189
+ logger.warning(
190
+ "E2B sandbox env %s not applied after %d attempts (expected %r); "
191
+ "template may predefine an empty override",
192
+ key,
193
+ attempts,
194
+ expected,
195
+ )
ksadk/server/__init__.py CHANGED
@@ -1,7 +1,42 @@
1
+ """Lazy RuntimeAdapter-first server composition exports.
2
+
3
+ Keeping package import side-effect free is required because conversation models
4
+ import ``ksadk.server.api_models`` during RuntimeAdapter initialization.
1
5
  """
2
- KsADK Server - FastAPI 服务模块
3
- """
4
6
 
5
- from ksadk.server.app import app, set_runner
7
+ from __future__ import annotations
8
+
9
+ import importlib
10
+ from typing import Any
11
+
12
+ __all__ = [
13
+ "ALL_GROUPS",
14
+ "CONTROL_PLANE_GROUPS",
15
+ "DATA_PLANE_GROUPS",
16
+ "RuntimeAppConfig",
17
+ "RuntimeAppState",
18
+ "configure_runtime_app",
19
+ "create_runtime_app",
20
+ ]
21
+
22
+
23
+ def __getattr__(name: str) -> Any:
24
+ if name == "routes":
25
+ value = importlib.import_module("ksadk.server.routes")
26
+ globals()[name] = value
27
+ return value
28
+ if name == "configure_runtime_app":
29
+ from ksadk.server.composition import configure_runtime_app
6
30
 
7
- __all__ = ["app", "set_runner"]
31
+ return configure_runtime_app
32
+ if name in {
33
+ "ALL_GROUPS",
34
+ "CONTROL_PLANE_GROUPS",
35
+ "DATA_PLANE_GROUPS",
36
+ "RuntimeAppConfig",
37
+ "RuntimeAppState",
38
+ "create_runtime_app",
39
+ }:
40
+ factory = importlib.import_module("ksadk.server.factory")
41
+ return getattr(factory, name)
42
+ raise AttributeError(name)
ksadk/server/app.py CHANGED
@@ -1,501 +1,27 @@
1
- # ksadk/server/app.py
2
- """Default runtime app facade and backwards-compatible server exports."""
1
+ """Explicit RuntimeAdapter-first FastAPI composition API.
3
2
 
4
- from __future__ import annotations
3
+ There is deliberately no module-level ``app`` and no ``set_runner`` global.
4
+ Every caller must provide a RuntimeExecutor and RuntimeLaunchContext through
5
+ RuntimeAppConfig, so Web, protocol, harness, and generated entrypoints share the
6
+ same execution contract.
7
+ """
5
8
 
6
- import os
7
- from collections.abc import AsyncIterator
8
- from pathlib import Path
9
- from typing import Any
10
-
11
- from fastapi import FastAPI
12
- from fastapi.responses import StreamingResponse
13
-
14
- import ksadk.conversations as conversation
15
9
  from ksadk.server.composition import configure_runtime_app
16
10
  from ksadk.server.factory import (
11
+ ALL_GROUPS,
12
+ CONTROL_PLANE_GROUPS,
13
+ DATA_PLANE_GROUPS,
17
14
  RuntimeAppConfig,
18
15
  RuntimeAppState,
19
16
  create_runtime_app,
20
- get_state,
21
- set_fallback_state,
22
- shutdown_runtime_resources,
23
- )
24
- from ksadk.server.routes import dependencies as route_dependencies
25
- from ksadk.server.routes.checkpoint_resolution import (
26
- _find_session_checkpoint,
27
- _resolve_checkpoint_resume_input_from_session,
28
- )
29
- from ksadk.server.routes.common import (
30
- _CUSTOM_API_PROXY_ENV_KEYS,
31
- _HOP_BY_HOP_HEADERS,
32
- _MAX_INLINE_BASE64_CHARS,
33
- _MAX_INLINE_TEXT_CHARS,
34
- _MAX_REFERENCE_TEXT_BYTES,
35
- _NATIVE_TUI_FRAMEWORKS,
36
- _RESERVED_UI_PATHS,
37
- _TEXT_FILE_EXTENSIONS,
38
- _TEXT_MIME_PREFIXES,
39
- _TEXT_MIME_TYPES,
40
- _UPLOAD_URI_SCHEME,
41
- STATIC_DIR,
42
- _action_response,
43
- _attachment_from_part,
44
- _attachment_prompt_text,
45
- _build_bootstrap_model_payload,
46
- _build_native_terminal_capability,
47
- _current_framework,
48
- _custom_api_proxy_base_url,
49
- _decode_inline_data,
50
- _default_custom_ui_bundle_dir,
51
- _ensure_runner_loaded,
52
- _ensure_session,
53
- _extract_inline_attachment_text,
54
- _extract_pdf_text,
55
- _extract_user_input_from_parts,
56
- _hydrate_session,
57
- _is_custom_ui_static_asset_path,
58
- _is_textual_mime,
59
- _looks_like_textual_attachment,
60
- _normalize_request_ui_path,
61
- _prepare_runner_for_model,
62
- _proxy_headers,
63
- _read_attachment_bytes,
64
- _register_integrated_routers,
65
- _request_id,
66
- _resolve_active_runner,
67
- _resolve_agent_ui_spec,
68
- _resolve_attachment_storage_path,
69
- _resolve_current_model,
70
- _resolve_ui_static_response,
71
- _resolve_uploads_dir,
72
- _response_headers,
73
- _runner_project_dir,
74
- _sanitize_session_state_for_action,
75
- _ui_state_with_env_fallback,
76
- _workspace_root_dir,
77
- _workspace_runtime_request,
78
- custom_api_proxy,
79
- health_check,
80
- list_apps,
81
- set_runner,
82
- )
83
- from ksadk.server.routes.control import (
84
- get_checkpoint_resume_preview_action,
85
- resume_run_action,
86
- subscribe_run_events_action,
87
- )
88
- from ksadk.server.routes.misc import (
89
- _feedback_payload_from_state,
90
- _feedback_state_key,
91
- _find_feedback_assistant_event,
92
- create_session,
93
- delete_response_feedback_action,
94
- delete_session,
95
- get_agent_builder,
96
- get_event_graph,
97
- get_event_trace,
98
- get_response_feedback_action,
99
- get_session,
100
- get_session_trace,
101
- get_traces,
102
- list_agent_models_action,
103
- list_eval_results,
104
- list_eval_sets,
105
- list_sessions,
106
- save_agent_builder,
107
- save_session_to_memory,
108
- serve_agent_ui_static,
109
- upsert_response_feedback_action,
110
- )
111
- from ksadk.server.routes.models import (
112
- _EVENT_SCAN_PAGE_SIZE,
113
- _MAX_PREVIEW_TOOL_RECEIPTS,
114
- _RUN_ACTIVE_STATUSES,
115
- _RUN_TERMINAL_STATUSES,
116
- CancelRunActionRequest,
117
- CreateSessionActionRequest,
118
- GetCheckpointResumePreviewActionRequest,
119
- ListSessionCheckpointsActionRequest,
120
- ListSessionEventsActionRequest,
121
- ListSessionMessagesActionRequest,
122
- ListSessionsActionRequest,
123
- ListToolReceiptsActionRequest,
124
- ResponseFeedbackRefActionRequest,
125
- ResponsesRequest,
126
- ResumeRunActionRequest,
127
- RunAgentActionRequest,
128
- SessionIdRequest,
129
- UiBootstrapRequest,
130
- UpsertResponseFeedbackActionRequest,
131
- WorkspaceDeleteActionRequest,
132
- WorkspaceListActionRequest,
133
- _clean_optional_string,
134
- _event_run_id,
135
- _event_text,
136
- _latest_session_run_metadata,
137
- _latest_session_run_status,
138
- _metadata_invocation_id,
139
- _parse_iso_datetime,
140
- _resolve_responses_conversation_id,
141
- _resolve_responses_session_and_user,
142
- _run_agent_response_metadata,
143
- _run_status_payload_status,
144
- _runtime_agent_id,
145
- _session_topic_from_events,
146
- _session_user_prompt_from_event,
147
- _split_custom_metadata,
148
- _truncate_session_text,
149
- )
150
- from ksadk.server.routes.openai_compat import (
151
- ChatCompletionRequest,
152
- chat_completions,
153
- list_openai_models,
154
- responses,
155
- )
156
- from ksadk.server.routes.projection import (
157
- _SIDE_EFFECT_TOOL_NAMES,
158
- _agent_contains_invocation,
159
- _apply_adk_only_latest_resumable,
160
- _apply_checkpoint_resume_audit,
161
- _apply_latest_checkpoint_policy,
162
- _build_checkpoint_resume_preview,
163
- _check_adk_latest_resumable,
164
- _checkpoint_event_to_action_payload,
165
- _checkpoint_resume_disabled_detail,
166
- _event_invocation_id,
167
- _event_to_action_payload,
168
- _extend_invocation_after_window,
169
- _extend_invocation_before_window,
170
- _iter_agent_event_pages,
171
- _iter_scoped_event_pages,
172
- _iter_session_event_pages,
173
- _iter_with_idle_heartbeat,
174
- _latest_invocation_status,
175
- _oldest_unconsumed_session_events,
176
- _record_resume_audit,
177
- _require_action_session,
178
- _resume_audit_by_checkpoint,
179
- _session_contains_invocation,
180
- _session_to_action_payload,
181
- _tool_receipt_event_to_action_payload,
182
- )
183
- from ksadk.server.routes.routers import (
184
- GROUP_ROUTERS,
185
- builder_router,
186
- control_router,
187
- debug_router,
188
- feedback_router,
189
- health_meta_router,
190
- models_router,
191
- openai_compat_router,
192
- run_router,
193
- sessions_adk_compat_router,
194
- sessions_router,
195
- tools_router,
196
- ui_bootstrap_router,
197
- workspace_router,
198
- )
199
- from ksadk.server.routes.run import cancel_agent_changes, run_agent_action, run_sse
200
- from ksadk.server.routes.sessions import (
201
- _count_resumable_checkpoints,
202
- _list_checkpoints_payload,
203
- create_session_action,
204
- delete_session_action,
205
- get_agent_ui_bootstrap,
206
- get_session_action,
207
- list_session_checkpoints_action,
208
- list_session_events_action,
209
- list_session_messages_action,
210
- list_sessions_action,
211
- list_tool_receipts_action,
212
- )
213
- from ksadk.server.routes.streaming import (
214
- _cancel_detached_streams_for_session,
215
- _clear_detached_resume_key,
216
- _detached_resume_key_from_input,
217
- _DetachedSSEStream,
218
- _reject_if_detached_resume_active,
219
- )
220
- from ksadk.server.routes.workspace import (
221
- ListAgentModelsRequest,
222
- _build_models_payload,
223
- _normalize_model_catalog_items,
224
- attachment_content_action,
225
- cancel_run_action,
226
- delete_workspace_file_action,
227
- export_workspace_zip,
228
- get_workspace_file_content_action,
229
- list_workspace_files_action,
230
- upload_file_action,
231
- upload_workspace_file_action,
232
- workspace_file_path_route,
233
- )
234
- from ksadk.sessions import describe_session_backend, resolve_session_service
235
-
236
- # These names were historically importable from this module. Keeping an explicit
237
- # registry documents the facade and prevents static tooling from deleting aliases.
238
- _COMPAT_EXPORTS = (
239
- Path,
240
- RuntimeAppState,
241
- describe_session_backend,
242
- get_state,
243
- _find_session_checkpoint,
244
- _resolve_checkpoint_resume_input_from_session,
245
- STATIC_DIR,
246
- _CUSTOM_API_PROXY_ENV_KEYS,
247
- _HOP_BY_HOP_HEADERS,
248
- _MAX_INLINE_BASE64_CHARS,
249
- _MAX_INLINE_TEXT_CHARS,
250
- _MAX_REFERENCE_TEXT_BYTES,
251
- _NATIVE_TUI_FRAMEWORKS,
252
- _RESERVED_UI_PATHS,
253
- _TEXT_FILE_EXTENSIONS,
254
- _TEXT_MIME_PREFIXES,
255
- _TEXT_MIME_TYPES,
256
- _UPLOAD_URI_SCHEME,
257
- _action_response,
258
- _attachment_from_part,
259
- _attachment_prompt_text,
260
- _build_bootstrap_model_payload,
261
- _build_native_terminal_capability,
262
- _current_framework,
263
- _custom_api_proxy_base_url,
264
- _decode_inline_data,
265
- _default_custom_ui_bundle_dir,
266
- _ensure_runner_loaded,
267
- _ensure_session,
268
- _extract_inline_attachment_text,
269
- _extract_pdf_text,
270
- _extract_user_input_from_parts,
271
- _hydrate_session,
272
- _is_custom_ui_static_asset_path,
273
- _is_textual_mime,
274
- _looks_like_textual_attachment,
275
- _normalize_request_ui_path,
276
- _prepare_runner_for_model,
277
- _proxy_headers,
278
- _read_attachment_bytes,
279
- _register_integrated_routers,
280
- _request_id,
281
- _resolve_active_runner,
282
- _resolve_agent_ui_spec,
283
- _resolve_attachment_storage_path,
284
- _resolve_current_model,
285
- _resolve_ui_static_response,
286
- _resolve_uploads_dir,
287
- _response_headers,
288
- _runner_project_dir,
289
- _sanitize_session_state_for_action,
290
- _ui_state_with_env_fallback,
291
- _workspace_root_dir,
292
- _workspace_runtime_request,
293
- custom_api_proxy,
294
- health_check,
295
- list_apps,
296
- set_runner,
297
- get_checkpoint_resume_preview_action,
298
- resume_run_action,
299
- subscribe_run_events_action,
300
- _feedback_payload_from_state,
301
- _feedback_state_key,
302
- _find_feedback_assistant_event,
303
- create_session,
304
- delete_response_feedback_action,
305
- delete_session,
306
- get_agent_builder,
307
- get_event_graph,
308
- get_event_trace,
309
- get_response_feedback_action,
310
- get_session,
311
- get_session_trace,
312
- get_traces,
313
- list_agent_models_action,
314
- list_eval_results,
315
- list_eval_sets,
316
- list_sessions,
317
- save_agent_builder,
318
- save_session_to_memory,
319
- serve_agent_ui_static,
320
- upsert_response_feedback_action,
321
- CancelRunActionRequest,
322
- CreateSessionActionRequest,
323
- GetCheckpointResumePreviewActionRequest,
324
- ListSessionCheckpointsActionRequest,
325
- ListSessionEventsActionRequest,
326
- ListSessionMessagesActionRequest,
327
- ListSessionsActionRequest,
328
- ListToolReceiptsActionRequest,
329
- ResponseFeedbackRefActionRequest,
330
- ResponsesRequest,
331
- ResumeRunActionRequest,
332
- RunAgentActionRequest,
333
- SessionIdRequest,
334
- UiBootstrapRequest,
335
- UpsertResponseFeedbackActionRequest,
336
- WorkspaceDeleteActionRequest,
337
- WorkspaceListActionRequest,
338
- _EVENT_SCAN_PAGE_SIZE,
339
- _MAX_PREVIEW_TOOL_RECEIPTS,
340
- _RUN_ACTIVE_STATUSES,
341
- _RUN_TERMINAL_STATUSES,
342
- _clean_optional_string,
343
- _event_run_id,
344
- _event_text,
345
- _latest_session_run_metadata,
346
- _latest_session_run_status,
347
- _metadata_invocation_id,
348
- _parse_iso_datetime,
349
- _resolve_responses_conversation_id,
350
- _resolve_responses_session_and_user,
351
- _run_agent_response_metadata,
352
- _run_status_payload_status,
353
- _runtime_agent_id,
354
- _session_topic_from_events,
355
- _session_user_prompt_from_event,
356
- _split_custom_metadata,
357
- _truncate_session_text,
358
- ChatCompletionRequest,
359
- chat_completions,
360
- list_openai_models,
361
- responses,
362
- _agent_contains_invocation,
363
- _SIDE_EFFECT_TOOL_NAMES,
364
- _apply_adk_only_latest_resumable,
365
- _apply_checkpoint_resume_audit,
366
- _apply_latest_checkpoint_policy,
367
- _build_checkpoint_resume_preview,
368
- _check_adk_latest_resumable,
369
- _checkpoint_event_to_action_payload,
370
- _checkpoint_resume_disabled_detail,
371
- _event_invocation_id,
372
- _event_to_action_payload,
373
- _extend_invocation_after_window,
374
- _extend_invocation_before_window,
375
- _iter_agent_event_pages,
376
- _iter_scoped_event_pages,
377
- _iter_session_event_pages,
378
- _iter_with_idle_heartbeat,
379
- _latest_invocation_status,
380
- _oldest_unconsumed_session_events,
381
- _record_resume_audit,
382
- _require_action_session,
383
- _resume_audit_by_checkpoint,
384
- _session_contains_invocation,
385
- _session_to_action_payload,
386
- _tool_receipt_event_to_action_payload,
387
- builder_router,
388
- control_router,
389
- debug_router,
390
- feedback_router,
391
- health_meta_router,
392
- models_router,
393
- openai_compat_router,
394
- run_router,
395
- sessions_adk_compat_router,
396
- sessions_router,
397
- tools_router,
398
- ui_bootstrap_router,
399
- workspace_router,
400
- cancel_agent_changes,
401
- run_agent_action,
402
- run_sse,
403
- _count_resumable_checkpoints,
404
- _list_checkpoints_payload,
405
- create_session_action,
406
- delete_session_action,
407
- get_agent_ui_bootstrap,
408
- get_session_action,
409
- list_session_checkpoints_action,
410
- list_session_events_action,
411
- list_session_messages_action,
412
- list_sessions_action,
413
- list_tool_receipts_action,
414
- _cancel_detached_streams_for_session,
415
- _detached_resume_key_from_input,
416
- _reject_if_detached_resume_active,
417
- ListAgentModelsRequest,
418
- _build_models_payload,
419
- _normalize_model_catalog_items,
420
- attachment_content_action,
421
- cancel_run_action,
422
- delete_workspace_file_action,
423
- export_workspace_zip,
424
- get_workspace_file_content_action,
425
- list_workspace_files_action,
426
- upload_file_action,
427
- upload_workspace_file_action,
428
- workspace_file_path_route,
429
- )
430
-
431
-
432
- SSE_HEARTBEAT_INTERVAL_SECONDS = max(
433
- 1.0,
434
- float(os.getenv("AGENTENGINE_SSE_HEARTBEAT_SECONDS", "15")),
435
- )
436
-
437
- _GROUP_ROUTERS = GROUP_ROUTERS
438
- _configure_runtime_app = configure_runtime_app
439
- _shutdown_runner_resources = shutdown_runtime_resources
440
-
441
-
442
- def _detached_streaming_response(
443
- source: AsyncIterator[str],
444
- *,
445
- invocation_id: str | None = None,
446
- session_id: str | None = None,
447
- resume_key: tuple[str, str] | None = None,
448
- run_mode: str = "unknown",
449
- run_trigger: str = "unknown",
450
- ) -> StreamingResponse:
451
- """Build a detached response through the monkeypatch-compatible facade."""
452
- detached = _DetachedSSEStream(
453
- source,
454
- invocation_id=invocation_id,
455
- session_id=session_id,
456
- run_mode=run_mode,
457
- run_trigger=run_trigger,
458
- )
459
- registry = detached._registry
460
- if invocation_id and resume_key:
461
- registry.resume_keys_by_invocation[invocation_id] = resume_key
462
- registry.active_resume_invocation_by_key[resume_key] = invocation_id
463
- detached._task.add_done_callback(
464
- lambda _task: _clear_detached_resume_key(registry, invocation_id, resume_key)
465
- )
466
- return StreamingResponse(detached.iter_for_client(), media_type="text/event-stream")
467
-
468
-
469
- route_dependencies.configure(
470
- route_dependencies.ServerRouteDependencies(
471
- resolve_session_service=lambda: resolve_session_service(),
472
- describe_session_backend=lambda: describe_session_backend(),
473
- resolve_agent_ui_spec=lambda: _resolve_agent_ui_spec(),
474
- conversation=lambda: conversation,
475
- detached_streaming_response=lambda *args, **kwargs: _detached_streaming_response(
476
- *args, **kwargs
477
- ),
478
- detached_stream_class=lambda: _DetachedSSEStream,
479
- heartbeat_interval=lambda: SSE_HEARTBEAT_INTERVAL_SECONDS,
480
- runtime_app=lambda: app,
481
- )
482
17
  )
483
18
 
484
- app: FastAPI = create_runtime_app(
485
- RuntimeAppConfig(
486
- # Keep the documented facade injection seam dynamic. New factory users
487
- # get app-owned services unless they explicitly supply a provider.
488
- session_service_provider=lambda: resolve_session_service(),
489
- session_backend_provider=lambda: describe_session_backend(),
490
- ),
491
- configure_runtime_app,
492
- )
493
- set_fallback_state(app.state.runtime)
494
- terminal_manager = app.state.runtime.terminal_manager
495
-
496
-
497
- def __getattr__(name: str) -> Any:
498
- """Expose the default app's detached stream registry during migration."""
499
- if name == "_DETACHED_STREAMS_BY_INVOCATION":
500
- return app.state.runtime.stream_registry.streams_by_invocation
501
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
19
+ __all__ = [
20
+ "ALL_GROUPS",
21
+ "CONTROL_PLANE_GROUPS",
22
+ "DATA_PLANE_GROUPS",
23
+ "RuntimeAppConfig",
24
+ "RuntimeAppState",
25
+ "configure_runtime_app",
26
+ "create_runtime_app",
27
+ ]