agentengine-sdk-python 0.8.4__py3-none-any.whl → 0.8.5__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.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/METADATA +6 -3
- {agentengine_sdk_python-0.8.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/RECORD +591 -365
- ksadk/_build_provenance.json +1 -1
- ksadk/_process.py +83 -0
- ksadk/_str_enum.py +17 -0
- ksadk/a2ui/core.py +3 -3
- ksadk/api/client.py +6 -0
- ksadk/builders/code_builder.py +38 -12
- ksadk/builders/framework_requirements.py +20 -2
- ksadk/cli/__init__.py +36 -0
- ksadk/cli/cmd_config.py +4 -4
- ksadk/cli/cmd_create.py +12 -12
- ksadk/cli/cmd_hermes.py +24 -2
- ksadk/cli/cmd_invoke.py +28 -5
- ksadk/cli/cmd_openclaw.py +26 -1
- ksadk/cli/cmd_plugin.py +70 -12
- ksadk/cli/cmd_studio.py +64 -16
- ksadk/cli/openclaw_env.py +1 -1
- ksadk/cli/resource_common.py +26 -0
- ksadk/codex/client.py +3 -2
- ksadk/configs/__init__.py +1 -1
- ksadk/configs/env_registry.py +125 -31
- ksadk/configs/env_registry_studio.py +86 -0
- ksadk/configs/global_config.py +1 -1
- ksadk/configs/settings.py +3 -3
- ksadk/connector/__init__.py +17 -0
- ksadk/connector/channel.py +477 -0
- ksadk/context_engine/capabilities.py +52 -4
- ksadk/conversations/attachment_storage.py +10 -3
- ksadk/conversations/attachments.py +16 -5
- ksadk/conversations/message_projection.py +23 -32
- ksadk/conversations/normalize.py +28 -10
- ksadk/conversations/runtime_baseline.py +37 -0
- ksadk/conversations/runtime_invocation.py +17 -4
- ksadk/conversations/runtime_observability.py +39 -10
- ksadk/conversations/runtime_payloads.py +8 -0
- ksadk/conversations/runtime_persistence.py +105 -9
- ksadk/conversations/runtime_preparation.py +13 -7
- ksadk/conversations/runtime_stream_events.py +29 -35
- ksadk/conversations/runtime_streaming.py +8 -0
- ksadk/events/adapters/_codex_items.py +16 -8
- ksadk/events/adapters/_langgraph_support.py +34 -0
- ksadk/events/session_event.py +2 -2
- ksadk/harness/__init__.py +14 -0
- ksadk/harness/app.py +11 -0
- ksadk/harness/artifact_store.py +213 -0
- ksadk/harness/capabilities.py +115 -0
- ksadk/harness/capability_runtime.py +237 -0
- ksadk/harness/closure_contract.py +92 -0
- ksadk/harness/compaction_record.py +122 -0
- ksadk/harness/compiler.py +284 -0
- ksadk/harness/conformance/__init__.py +33 -0
- ksadk/harness/conformance/contract.py +506 -0
- ksadk/harness/conformance/fixtures.py +102 -0
- ksadk/harness/context_engine.py +403 -0
- ksadk/harness/context_maintenance.py +259 -0
- ksadk/harness/context_manifest.py +188 -0
- ksadk/harness/context_tuning.py +168 -0
- ksadk/harness/draft_runtime.py +322 -0
- ksadk/harness/engine/__init__.py +40 -0
- ksadk/harness/engine/base.py +122 -0
- ksadk/harness/engine/budgets.py +108 -0
- ksadk/harness/engine/capability_declarations.py +59 -0
- ksadk/harness/engine/completion_guard.py +42 -0
- ksadk/harness/engine/context_pipeline.py +579 -0
- ksadk/harness/engine/graph_builder.py +859 -0
- ksadk/harness/engine/langgraph.py +931 -0
- ksadk/harness/engine/mcp_disclosure.py +750 -0
- ksadk/harness/engine/policy_runtime.py +70 -0
- ksadk/harness/engine/postgres_checkpointer.py +63 -0
- ksadk/harness/engine/run_control_bridge.py +80 -0
- ksadk/harness/engine/run_types.py +88 -0
- ksadk/harness/engine/skill_disclosure.py +189 -0
- ksadk/harness/engine/spans.py +41 -0
- ksadk/harness/engine/subagents.py +343 -0
- ksadk/harness/engine/thread_ids.py +112 -0
- ksadk/harness/engine/tool_dispatch.py +144 -0
- ksadk/harness/event_tree.py +212 -0
- ksadk/harness/events.py +461 -0
- ksadk/harness/execution_policy.py +94 -0
- ksadk/harness/insights.py +210 -0
- ksadk/harness/lifecycle.py +578 -0
- ksadk/harness/lifecycle_conformance.py +233 -0
- ksadk/harness/lifecycle_local_plane.py +104 -0
- ksadk/harness/loop/__init__.py +44 -0
- ksadk/harness/loop/reason.py +454 -0
- ksadk/harness/loop/tools.py +762 -0
- ksadk/harness/managed_runtime.py +884 -0
- ksadk/harness/mcp_matrix.py +474 -0
- ksadk/harness/mcp_runtime.py +471 -0
- ksadk/harness/memory_consolidation.py +157 -0
- ksadk/harness/memory_loop.py +156 -0
- ksadk/harness/memory_runtime.py +541 -0
- ksadk/harness/metrics.py +90 -0
- ksadk/harness/model_capability.py +253 -0
- ksadk/harness/model_provider.py +220 -0
- ksadk/harness/observability/__init__.py +29 -0
- ksadk/harness/observability/inspection.py +528 -0
- ksadk/harness/observability/metrics.py +167 -0
- ksadk/harness/observability/otel_exporter.py +218 -0
- ksadk/harness/prompt_cache.py +70 -0
- ksadk/harness/public_activity.py +154 -0
- ksadk/harness/readiness.py +249 -0
- ksadk/harness/reasoner.py +466 -13
- ksadk/harness/release_readiness.py +140 -0
- ksadk/harness/resource_ref.py +69 -0
- ksadk/harness/run_control.py +668 -0
- ksadk/harness/runtime.py +146 -111
- ksadk/harness/runtime_capabilities.py +158 -0
- ksadk/harness/runtime_server.py +514 -0
- ksadk/harness/sandbox_adapters.py +739 -0
- ksadk/harness/sandbox_backend.py +530 -0
- ksadk/harness/sandbox_conformance.py +288 -0
- ksadk/harness/sandbox_lease.py +77 -0
- ksadk/harness/sandbox_lease_conformance.py +259 -0
- ksadk/harness/sandbox_matrix.py +170 -0
- ksadk/harness/sandbox_reconciliation.py +140 -0
- ksadk/harness/sandbox_recovery.py +586 -0
- ksadk/harness/sandbox_recovery_conformance.py +246 -0
- ksadk/harness/session_store.py +243 -0
- ksadk/harness/skill_composition.py +212 -0
- ksadk/harness/skill_feedback.py +123 -0
- ksadk/harness/skill_matrix.py +233 -0
- ksadk/harness/skill_runtime.py +259 -0
- ksadk/harness/spec.py +332 -0
- ksadk/harness/state.py +153 -0
- ksadk/harness/strategies.py +149 -0
- ksadk/harness/subagent.py +253 -0
- ksadk/harness/tool_policy.py +131 -0
- ksadk/harness/tool_receipts.py +96 -0
- ksadk/harness/tool_reliability.py +81 -0
- ksadk/harness/user_errors.py +69 -0
- ksadk/harness/working_context.py +81 -0
- ksadk/harness/working_context_patch.py +99 -0
- ksadk/identity/resolver.py +18 -0
- ksadk/interaction/__init__.py +1 -1
- ksadk/interaction/ledger.py +1 -1
- ksadk/interaction/provider.py +1 -1
- ksadk/interaction/providers/__init__.py +3 -1
- ksadk/interaction/providers/adk.py +1 -1
- ksadk/interaction/providers/codex.py +1 -1
- ksadk/interaction/providers/harness.py +50 -0
- ksadk/interaction/providers/langgraph.py +1 -1
- ksadk/kernel/__init__.py +10 -0
- ksadk/kernel/approval_presentation.py +91 -0
- ksadk/kernel/authorization.py +1 -1
- ksadk/kernel/bootstrap.py +86 -102
- ksadk/kernel/contract_fingerprints.py +1 -1
- ksadk/kernel/contracts.py +5 -0
- ksadk/kernel/control.py +32 -1
- ksadk/kernel/execution_grants.py +221 -0
- ksadk/kernel/execution_grants_memory.py +133 -0
- ksadk/kernel/execution_grants_postgres.py +217 -0
- ksadk/kernel/execution_grants_sqlite.py +209 -0
- ksadk/kernel/ingress.py +27 -27
- ksadk/kernel/mapping.py +1 -1
- ksadk/kernel/memory_store.py +24 -11
- ksadk/kernel/postgres_store.py +63 -33
- ksadk/kernel/recovery.py +78 -14
- ksadk/kernel/sql/001_agent_kernel.sql +23 -0
- ksadk/kernel/sqlite_store.py +304 -25
- ksadk/kernel/state.py +2 -3
- ksadk/kernel/store.py +69 -2
- ksadk/kernel/worker.py +79 -41
- ksadk/kernel/worker_history.py +72 -0
- ksadk/kernel/worker_identity.py +47 -0
- ksadk/memory/coordinator.py +22 -6
- ksadk/memory/extraction.py +40 -1
- ksadk/memory/models.py +77 -1
- ksadk/memory/provider_resolver.py +5 -0
- ksadk/memory/providers/local_postgres.py +200 -0
- ksadk/memory/providers/local_sqlite.py +42 -3
- ksadk/memory/retrieval.py +189 -0
- ksadk/memory/store_adapter.py +150 -0
- ksadk/model_policy.py +2 -2
- ksadk/model_proxy/detect.py +254 -0
- ksadk/model_proxy/server.py +4 -2
- ksadk/model_proxy/transform.py +40 -2
- ksadk/plugins/__init__.py +1 -1
- ksadk/plugins/bridges/dsh.py +11 -0
- ksadk/plugins/builtins.py +40 -2
- ksadk/plugins/companion_artifacts.py +83 -0
- ksadk/plugins/companions.py +368 -0
- ksadk/plugins/contracts.py +1 -1
- ksadk/plugins/dsh_channels.py +156 -0
- ksadk/plugins/dsh_home.py +140 -0
- ksadk/plugins/dsh_teams.py +105 -0
- ksadk/plugins/dsh_toolchain.py +101 -19
- ksadk/plugins/execution_host.py +99 -0
- ksadk/plugins/providers/bundles/dsh-channels-client/client.js +19 -0
- ksadk/plugins/providers/bundles/dsh-channels-client/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-channels-client/index.mjs +7 -0
- ksadk/plugins/providers/bundles/dsh-channels-client/package.json +12 -0
- ksadk/plugins/providers/bundles/dsh-knowledge/package.json +1 -1
- ksadk/plugins/providers/bundles/dsh-memory/package.json +1 -1
- ksadk/plugins/providers/bundles/dsh-skill-center/package.json +1 -1
- ksadk/plugins/providers/bundles/dsh-teams-client/client.js +29 -0
- ksadk/plugins/providers/bundles/dsh-teams-client/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-client/index.mjs +11 -0
- ksadk/plugins/providers/bundles/dsh-teams-client/package.json +35 -0
- ksadk/plugins/providers/bundles/dsh-teams-leader-policy/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-leader-policy/index.mjs +13 -0
- ksadk/plugins/providers/bundles/dsh-teams-leader-policy/package.json +27 -0
- ksadk/plugins/providers/bundles/dsh-teams-profile/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-profile/index.mjs +12 -0
- ksadk/plugins/providers/bundles/dsh-teams-profile/package.json +26 -0
- ksadk/plugins/providers/bundles/dsh-teams-router/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-router/index.mjs +16 -0
- ksadk/plugins/providers/bundles/dsh-teams-router/package.json +27 -0
- ksadk/plugins/providers/bundles/dsh-teams-tasks/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-tasks/index.mjs +16 -0
- ksadk/plugins/providers/bundles/dsh-teams-tasks/package.json +27 -0
- ksadk/plugins/providers/bundles/dsh-teams-tools/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/dsh-teams-tools/index.mjs +25 -0
- ksadk/plugins/providers/bundles/dsh-teams-tools/package.json +29 -0
- ksadk/plugins/providers/bundles/dsh-teams-tools/tools.json +235 -0
- ksadk/plugins/providers/bundles/ksadk-codex/index.mjs +1 -1
- ksadk/plugins/providers/bundles/ksadk-dsh-capability-host/index.mjs +51 -1
- ksadk/plugins/providers/bundles/ksadk-dsh-capability-host/package.json +2 -2
- ksadk/plugins/providers/bundles/ksadk-dsh-companion-host/client.mjs +133 -0
- ksadk/plugins/providers/bundles/ksadk-dsh-companion-host/index.mjs +14 -0
- ksadk/plugins/providers/bundles/ksadk-dsh-studio/client.js +27 -4
- ksadk/plugins/providers/bundles/ksadk-dsh-studio/index.mjs +9 -5
- ksadk/plugins/providers/bundles/ksadk-harness/index.mjs +1 -1
- ksadk/plugins/providers/codex.py +10 -2
- ksadk/plugins/providers/dsh_capabilities.py +61 -0
- ksadk/plugins/providers/harness.py +181 -33
- ksadk/plugins/providers/harness_delegation.py +593 -0
- ksadk/plugins/providers/harness_managed.py +456 -0
- ksadk/plugins/providers/harness_tools.py +326 -0
- ksadk/plugins/providers/shipped_dsh.py +4 -1
- ksadk/plugins/subagent_providers/codex.py +28 -6
- ksadk/plugins/teams/__init__.py +5 -0
- ksadk/plugins/teams/api.py +405 -0
- ksadk/plugins/teams/application.py +680 -0
- ksadk/plugins/teams/artifacts.py +60 -0
- ksadk/plugins/teams/context.py +96 -0
- ksadk/plugins/teams/contracts.py +136 -0
- ksadk/plugins/teams/domain.py +1427 -0
- ksadk/plugins/teams/domain_values.py +24 -0
- ksadk/plugins/teams/errors.py +13 -0
- ksadk/plugins/teams/migration.py +311 -0
- ksadk/plugins/teams/migration_cli.py +322 -0
- ksadk/plugins/teams/postgres_store.py +138 -0
- ksadk/plugins/teams/runtime.py +777 -0
- ksadk/plugins/teams/source_projection.py +84 -0
- ksadk/plugins/teams/store.py +311 -0
- ksadk/plugins/teams/task_decisions.py +423 -0
- ksadk/plugins/teams/transport.py +91 -0
- ksadk/plugins/teams/workspaces.py +255 -0
- ksadk/runners/_langgraph_runner_streams.py +121 -45
- ksadk/runners/_langgraph_state_reader.py +106 -0
- ksadk/runners/_session_identity.py +285 -0
- ksadk/runners/adk_runner.py +25 -60
- ksadk/runners/langgraph_runner.py +128 -111
- ksadk/runners/patch_langchain.py +47 -0
- ksadk/runners/usage_accumulator.py +11 -3
- ksadk/runtime/_runner_adapter/stream_mapping.py +52 -2
- ksadk/runtime/conversation_execution.py +25 -1
- ksadk/runtime/executor.py +9 -1
- ksadk/runtime/factory.py +36 -1
- ksadk/runtime/preprocessing.py +11 -3
- ksadk/runtime/runner_adapter.py +38 -9
- ksadk/runtime/skill_eval_result.py +36 -0
- ksadk/runtime/timing.py +46 -0
- ksadk/runtime/usage.py +49 -18
- ksadk/runtime_context.py +103 -1
- ksadk/sandbox/backends/e2b.py +245 -23
- ksadk/sandbox/backends/local_process.py +63 -39
- ksadk/sandbox/base.py +62 -1
- ksadk/sandbox/diagnostics.py +82 -0
- ksadk/sandbox/local_controls.py +746 -0
- ksadk/sandbox/local_launcher.py +90 -0
- ksadk/scheduler/dispatcher.py +1 -1
- ksadk/server/invocation_identity.py +118 -0
- ksadk/server/routes/common.py +32 -3
- ksadk/server/routes/control.py +64 -9
- ksadk/server/routes/dependencies.py +2 -1
- ksadk/server/routes/kernel_ingress.py +9 -1
- ksadk/server/routes/misc.py +233 -25
- ksadk/server/routes/models.py +3 -3
- ksadk/server/routes/openai_compat.py +76 -13
- ksadk/server/routes/run.py +106 -35
- ksadk/server/routes/sessions.py +244 -68
- ksadk/server/routes/workspace.py +130 -21
- ksadk/server/static/assets/{ArtifactsPanel-CGbWlMNh.js → ArtifactsPanel-C1YoaKhx.js} +1 -1
- ksadk/server/static/assets/{CodeBlock-b4C7upmO.js → CodeBlock-DHuAWfr5.js} +10 -7
- ksadk/server/static/assets/MathMessageMarkdown-cvdrBwYr.js +8 -0
- ksadk/server/static/assets/{MermaidBlock-BEBN4Ksz.js → MermaidBlock-DeBkbJvI.js} +9 -9
- ksadk/server/static/assets/{NativeTerminalPanel-zvL-WpAn.js → NativeTerminalPanel-oJj44_sV.js} +1 -1
- ksadk/server/static/assets/{abnfDiagram-VCTEODGH-BYafW7Za.js → abnfDiagram-VCTEODGH-Dhfv25o2.js} +1 -1
- ksadk/server/static/assets/{arc-bTohInsS.js → arc-C35w-pn1.js} +1 -1
- ksadk/server/static/assets/architecture-7GRP2DOG-BCsa26zi.js +1 -0
- ksadk/server/static/assets/{architectureDiagram-5GKGNRK7-Ch5Lbzsi.js → architectureDiagram-5GKGNRK7-FoMY_u6D.js} +1 -1
- ksadk/server/static/assets/{blockDiagram-NRAW4CY4-kqF4MDOG.js → blockDiagram-NRAW4CY4-zD4Rt7oE.js} +1 -1
- ksadk/server/static/assets/{c4Diagram-UCG6FXSJ-8uSRIODv.js → c4Diagram-UCG6FXSJ-BCtGGkhN.js} +1 -1
- ksadk/server/static/assets/channel-_KDifNys.js +1 -0
- ksadk/server/static/assets/chunk-2Q5K7J3B-HdVkJ9F0.js +1 -0
- ksadk/server/static/assets/{chunk-5VM5RSS4-DkhehZDr.js → chunk-5VM5RSS4-C2Ms13_k.js} +1 -1
- ksadk/server/static/assets/{chunk-F27PBJKO-BdXhtPe9.js → chunk-F27PBJKO-BoTj-qgx.js} +1 -1
- ksadk/server/static/assets/{chunk-G27WJ6UU-DPTpvpwi.js → chunk-G27WJ6UU-DOMyyjHH.js} +1 -1
- ksadk/server/static/assets/{chunk-JWPE2WC7-Pqoh38el.js → chunk-JWPE2WC7-DbJJqDli.js} +1 -1
- ksadk/server/static/assets/{chunk-LCL6LL3I-DeU00qC-.js → chunk-LCL6LL3I-CLuRCt_W.js} +1 -1
- ksadk/server/static/assets/{chunk-POPQ4Y6H-CzxScFkr.js → chunk-POPQ4Y6H-D0Dz847e.js} +1 -1
- ksadk/server/static/assets/{chunk-RHFEMEQ7-DpqMx-ux.js → chunk-RHFEMEQ7-BWSRzEcd.js} +1 -1
- ksadk/server/static/assets/{chunk-SVP7TREG-C6t0SypQ.js → chunk-SVP7TREG-CPoHqkCY.js} +1 -1
- ksadk/server/static/assets/{chunk-XXDRQBXY-DVaeafZk.js → chunk-XXDRQBXY-Bx1jS-X-.js} +1 -1
- ksadk/server/static/assets/classDiagram-DTDB5LWJ-BVCW3ZqZ.js +1 -0
- ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-BVCW3ZqZ.js +1 -0
- ksadk/server/static/assets/{cose-bilkent-JH36ORCC-Bf9D3tzJ.js → cose-bilkent-JH36ORCC-LzyWm4m0.js} +1 -1
- ksadk/server/static/assets/cynefin-OW5HDTMX-CNXjFctL.js +1 -0
- ksadk/server/static/assets/{cynefinDiagram-5FMLGOSQ-B9cY3iTz.js → cynefinDiagram-5FMLGOSQ-BlW_bHED.js} +1 -1
- ksadk/server/static/assets/{dagre-3AP2YEHR-CSwlx3CB.js → dagre-3AP2YEHR-Bu_S86_i.js} +1 -1
- ksadk/server/static/assets/{dagre-UBpgon5q.js → dagre-B7nCawed.js} +1 -1
- ksadk/server/static/assets/{diagram-S7CK7UJ4-C9akhN9a.js → diagram-S7CK7UJ4-W_Zow2Km.js} +1 -1
- ksadk/server/static/assets/{diagram-UQ7AKVKN-CgedhTPI.js → diagram-UQ7AKVKN-CLIKAHON.js} +1 -1
- ksadk/server/static/assets/{diagram-VSXAHHWV-Cjucz5BY.js → diagram-VSXAHHWV-Dv6_QAlN.js} +1 -1
- ksadk/server/static/assets/{diagram-VX7I27RA-Dd4Vleyn.js → diagram-VX7I27RA-BWAWRDtZ.js} +1 -1
- ksadk/server/static/assets/{diagram-Z3DM3KII-CZ2jGtYW.js → diagram-Z3DM3KII-XA_rWMss.js} +1 -1
- ksadk/server/static/assets/dist-0X_j2Rcc.js +1 -0
- ksadk/server/static/assets/{dist-DiixqL0J.js → dist-1nXCdsej.js} +1 -1
- ksadk/server/static/assets/{dist-BIr4DSRq.js → dist-2vL2sAdF.js} +1 -1
- ksadk/server/static/assets/{dist-D_ctSS2i.js → dist-B3bA05-e.js} +1 -1
- ksadk/server/static/assets/{dist-ClYUxfeK.js → dist-BLpRy_Yx.js} +1 -1
- ksadk/server/static/assets/{dist-QfkEHOlb.js → dist-BO_UwatH.js} +1 -1
- ksadk/server/static/assets/{dist-B3FR1SKK.js → dist-BdNFAney.js} +1 -1
- ksadk/server/static/assets/{dist-BnaTiyzN.js → dist-C0J5_3qM.js} +1 -1
- ksadk/server/static/assets/{dist-Bj730Ib4.js → dist-CGt_UGeO.js} +1 -1
- ksadk/server/static/assets/{dist-CFzsn6BG.js → dist-CIRMvUM4.js} +1 -1
- ksadk/server/static/assets/{dist-BgV_owcB.js → dist-CIpWk_5f.js} +1 -1
- ksadk/server/static/assets/{dist-C5_ZAZsG.js → dist-CPyieXEf.js} +1 -1
- ksadk/server/static/assets/{dist-btbmmX5O.js → dist-D-92S-Fd.js} +1 -1
- ksadk/server/static/assets/{dist-fBO2v5Kt.js → dist-DNKuMzWc.js} +1 -1
- ksadk/server/static/assets/{dist-ufY3F5p6.js → dist-DWfdmz9s.js} +2 -2
- ksadk/server/static/assets/{dist-DVCOWtha.js → dist-DppE_r-D.js} +1 -1
- ksadk/server/static/assets/{dist-C1NMAY5a.js → dist-DyG6Ya-z.js} +1 -1
- ksadk/server/static/assets/{dist-CB9iJrvg.js → dist-M-SrdhhZ.js} +1 -1
- ksadk/server/static/assets/{dist-DvFK7p5S.js → dist-mqD5TZup.js} +1 -1
- ksadk/server/static/assets/{dist-Cf125P_m.js → dist-n3n6t_FO.js} +1 -1
- ksadk/server/static/assets/{dist-DFD6Qa6T.js → dist-qe8xjesy.js} +1 -1
- ksadk/server/static/assets/{dist-DoVSwoDb.js → dist-t6MzE0jU.js} +1 -1
- ksadk/server/static/assets/{ebnfDiagram-PWID7BFC-Ci8NqqZu.js → ebnfDiagram-PWID7BFC-BfCzF1Xi.js} +1 -1
- ksadk/server/static/assets/{erDiagram-SSCWMZ5O-CCIOhLZG.js → erDiagram-SSCWMZ5O-Dpz9_0zn.js} +1 -1
- ksadk/server/static/assets/eventmodeling-NTZA5JFV-B5-8RH9c.js +1 -0
- ksadk/server/static/assets/flowDiagram-A5DVABFB-BppFxEKw.js +1 -0
- ksadk/server/static/assets/{ganttDiagram-EL5Y4UJY-Cp_r9Hb6.js → ganttDiagram-EL5Y4UJY-DDaG1f4_.js} +1 -1
- ksadk/server/static/assets/gitGraph-4MIJSDKK-B-AhYj4C.js +1 -0
- ksadk/server/static/assets/{gitGraphDiagram-WWUBYQGX-Dlhc8Wr8.js → gitGraphDiagram-WWUBYQGX-DcxzRwYC.js} +1 -1
- ksadk/server/static/assets/index-BMd2mucF.css +2 -0
- ksadk/server/static/assets/index-D5qyyhTH.js +244 -0
- ksadk/server/static/assets/info-A6RAGUB7-0uiKrC35.js +1 -0
- ksadk/server/static/assets/{infoDiagram-RXCK75RN-CO0rRTRA.js → infoDiagram-RXCK75RN-CYMdn6lQ.js} +1 -1
- ksadk/server/static/assets/{ishikawaDiagram-5VMMS53U-CHiaedSS.js → ishikawaDiagram-5VMMS53U-CLHFAD6c.js} +1 -1
- ksadk/server/static/assets/{journeyDiagram-EYS64GPL-CHcCIB09.js → journeyDiagram-EYS64GPL-BHSKQGAl.js} +1 -1
- ksadk/server/static/assets/{kanban-definition-3QL26DDD-CJ_ebBZf.js → kanban-definition-3QL26DDD-D5W3tjTT.js} +1 -1
- ksadk/server/static/assets/{katex-B4weu383.js → katex-mtjOi4KM.js} +1 -1
- ksadk/server/static/assets/{linear-V-MgYHW1.js → linear-BETqsxE_.js} +1 -1
- ksadk/server/static/assets/{mermaid-parser.core-CBijEX_c.js → mermaid-parser.core-DPWrvs90.js} +2 -2
- ksadk/server/static/assets/{mindmap-definition-FBJOCRG2-Bc-pQvpp.js → mindmap-definition-FBJOCRG2-CJG2mfBP.js} +1 -1
- ksadk/server/static/assets/packet-AYTQ26CC-BVTmZ_cw.js +1 -0
- ksadk/server/static/assets/{pegDiagram-XKGWAZYB-D7genGLl.js → pegDiagram-XKGWAZYB-GjAPNaqn.js} +1 -1
- ksadk/server/static/assets/pie-WAS4IAKB-DyfxBU7V.js +1 -0
- ksadk/server/static/assets/{pieDiagram-E7YTZNPT-Bxj32zwD.js → pieDiagram-E7YTZNPT-ToIewrqr.js} +1 -1
- ksadk/server/static/assets/{quadrantDiagram-AXDQQJYC-BURv2mGh.js → quadrantDiagram-AXDQQJYC-4d78KiEY.js} +1 -1
- ksadk/server/static/assets/radar-RG4KPBEZ-FFontjL2.js +1 -0
- ksadk/server/static/assets/railroad-74A4TZTK-D0Uidzen.js +1 -0
- ksadk/server/static/assets/railroad-abnf-HS5TGJTU-BOo_9T2h.js +1 -0
- ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-D6-BjW7Z.js +1 -0
- ksadk/server/static/assets/railroad-peg-WCYAUIDC-CXx__yMm.js +1 -0
- ksadk/server/static/assets/{railroadDiagram-O6MQD6OU-CCsh3avW.js → railroadDiagram-O6MQD6OU-DKzx4xfv.js} +1 -1
- ksadk/server/static/assets/{requirementDiagram-EFPCY7ZU-_FRRBKEd.js → requirementDiagram-EFPCY7ZU-CJYljxQS.js} +1 -1
- ksadk/server/static/assets/{sankeyDiagram-P5KCCOFB-C-gr2o9M.js → sankeyDiagram-P5KCCOFB-DLU2fV1w.js} +1 -1
- ksadk/server/static/assets/{sequenceDiagram-WJ2MYXX4-D97NmfKg.js → sequenceDiagram-WJ2MYXX4-CVqysrA9.js} +1 -1
- ksadk/server/static/assets/{sizeCapture-X5ZJPWSS-DjrPC5FX.js → sizeCapture-X5ZJPWSS-BUxfmTHc.js} +1 -1
- ksadk/server/static/assets/{stateDiagram-HBIQ2CUA-DzMNg1hh.js → stateDiagram-HBIQ2CUA-CNFgYI9E.js} +1 -1
- ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-BXAFScz8.js +1 -0
- ksadk/server/static/assets/{swimlanes-XN3QIQJK-Cssf_CsU.js → swimlanes-XN3QIQJK-B6qCMe8N.js} +1 -1
- ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-uIQ2lJKH.js +8 -0
- ksadk/server/static/assets/{timeline-definition-24CTP7MA-BWTHzyS1.js → timeline-definition-24CTP7MA-CMD3x_U_.js} +1 -1
- ksadk/server/static/assets/treeView-Q6P3EWNA-CK5GgucZ.js +1 -0
- ksadk/server/static/assets/treemap-WGGIJYW6-Bq1u1SpG.js +1 -0
- ksadk/server/static/assets/{vennDiagram-4TSXK5OY-BSKgJsmR.js → vennDiagram-4TSXK5OY-BqtUqvXM.js} +1 -1
- ksadk/server/static/assets/wardley-WFR3VGLG-QAt06uEz.js +1 -0
- ksadk/server/static/assets/{wardleyDiagram-VM6X3IG4-eflHNoaZ.js → wardleyDiagram-VM6X3IG4-B5KfDjI-.js} +1 -1
- ksadk/server/static/assets/{xychartDiagram-S5SC5T6Z-eYqrQ-v4.js → xychartDiagram-S5SC5T6Z-BaUlSZrn.js} +1 -1
- ksadk/server/static/index.html +2 -2
- ksadk/server/terminal_sessions.py +34 -2
- ksadk/sessions/invocation_identity.py +235 -0
- ksadk/skills/__init__.py +26 -0
- ksadk/skills/events.py +464 -0
- ksadk/skills/manifest_cache.py +263 -0
- ksadk/skills/mcp_server/__init__.py +0 -0
- ksadk/skills/mcp_server/_registry.py +33 -0
- ksadk/skills/mcp_server/_routing.py +26 -0
- ksadk/skills/mcp_server/_workspace_files.py +160 -0
- ksadk/skills/mcp_server/register.py +415 -0
- ksadk/skills/mcp_server/server.py +218 -0
- ksadk/skills/models.py +11 -0
- ksadk/skills/observability.py +132 -0
- ksadk/skills/package_store.py +75 -2
- ksadk/skills/runtime/agent.py +38 -5
- ksadk/skills/runtime/artifacts.py +87 -0
- ksadk/skills/runtime/backends/e2b.py +393 -52
- ksadk/skills/runtime/backends/local.py +621 -119
- ksadk/skills/runtime/base.py +78 -7
- ksadk/skills/runtime/executor.py +266 -1
- ksadk/skills/runtime/loader.py +108 -3
- ksadk/skills/runtime/request.py +18 -0
- ksadk/skills/tool_defs.py +108 -3
- ksadk/studio/api.py +592 -57
- ksadk/studio/api_contracts.py +8 -2
- ksadk/studio/api_plugin_routes.py +39 -12
- ksadk/studio/api_resource_connections.py +79 -41
- ksadk/studio/authoring.py +12 -6
- ksadk/studio/authoring_coordinator.py +4 -2
- ksadk/studio/builder.py +12 -0
- ksadk/studio/capabilities.py +23 -6
- ksadk/studio/channel_connections.py +333 -0
- ksadk/studio/cloud.py +30 -10
- ksadk/studio/cloud_shared_web.py +75 -2
- ksadk/studio/codex_agent_service.py +2 -2
- ksadk/studio/codex_builder.py +1 -1
- ksadk/studio/codex_run.py +6 -1
- ksadk/studio/compiler.py +10 -0
- ksadk/studio/configuration.py +182 -0
- ksadk/studio/contracts.py +33 -5
- ksadk/studio/dsh_application.py +135 -25
- ksadk/studio/dsh_capability_service.py +287 -20
- ksadk/studio/dsh_lifecycle.py +58 -0
- ksadk/studio/dsh_provider_registration.py +55 -16
- ksadk/studio/entry.py +53 -0
- ksadk/studio/event_store.py +36 -5
- ksadk/studio/execution_host.py +525 -0
- ksadk/studio/framework_run.py +32 -10
- ksadk/studio/hosted_kernel.py +1 -1
- ksadk/studio/kernel_registry.py +418 -0
- ksadk/studio/kernel_sqlite_migration.py +181 -0
- ksadk/studio/model_client.py +1178 -64
- ksadk/studio/model_profile_service.py +26 -11
- ksadk/studio/native_documents.py +172 -0
- ksadk/studio/plugin_composition.py +13 -2
- ksadk/studio/plugin_kernel_adapter.py +15 -0
- ksadk/studio/plugin_lifecycle.py +80 -0
- ksadk/studio/plugin_runtime.py +230 -17
- ksadk/studio/provider_recovery.py +59 -0
- ksadk/studio/recovery_page.py +70 -0
- ksadk/studio/resource_authority.py +59 -32
- ksadk/studio/resource_catalog.py +6 -0
- ksadk/studio/run_activity.py +895 -0
- ksadk/studio/run_documents.py +127 -0
- ksadk/studio/run_service.py +329 -33
- ksadk/studio/runtime_catalog.py +53 -10
- ksadk/studio/runtime_source.py +1 -1
- ksadk/studio/scheduler_runtime.py +32 -289
- ksadk/studio/service.py +398 -103
- ksadk/studio/shared_web.py +149 -36
- ksadk/studio/static/assets/ChannelsPage-D_PGmKVq.js +8 -0
- ksadk/studio/static/assets/CodeBlock-DMIf4h33-UIqo-BPW.js +44 -0
- ksadk/studio/static/assets/ExecutionTree-v3HexvPo-Bk8wzGSy.js +1 -0
- ksadk/studio/static/assets/MathMessageMarkdown-BesSeCYl-OhNwH4K9.js +8 -0
- ksadk/studio/static/assets/MermaidBlock-H_0qzQDf-BdXtxug_.js +11 -0
- ksadk/studio/static/assets/MessageMarkdown-CwMTvgFj-g0I-I4dD.js +59 -0
- ksadk/studio/static/assets/PrismRenderer-5pK6tUdb.js +3 -0
- ksadk/studio/static/assets/TeamsPage-DqX4HWKQ.js +3 -0
- ksadk/studio/static/assets/abnfDiagram-VCTEODGH-Bnb1O3tA.js +1 -0
- ksadk/studio/static/assets/architecture-7GRP2DOG-BMOPAkUC.js +1 -0
- ksadk/studio/static/assets/architectureDiagram-5GKGNRK7-5Zn1gqJv.js +36 -0
- ksadk/studio/static/assets/{blockDiagram-I7D4REHJ-CFmPl1de.js → blockDiagram-I7D4REHJ-CLB4L11u.js} +6 -6
- ksadk/studio/static/assets/{c4Diagram-7LVT6UL2-BRrGu8qt.js → c4Diagram-7LVT6UL2-BOma_Z_F.js} +7 -7
- ksadk/studio/static/assets/channel-r8itPEik.js +1 -0
- ksadk/studio/static/assets/chunk-2E4U76K2-BFf_huql.js +2 -0
- ksadk/studio/static/assets/chunk-2ZTRR5NV-C2qZJila.js +2 -0
- ksadk/studio/static/assets/chunk-3Z5EZCMW-DMniOlPd.js +1 -0
- ksadk/studio/static/assets/{chunk-4HAMMTFA-D220vUtq.js → chunk-4HAMMTFA-DVtDP4rm.js} +7 -7
- ksadk/studio/static/assets/chunk-5V3GS4D5-i-ZDOEnP.js +1 -0
- ksadk/studio/static/assets/chunk-6AZGARVD-BB6FqMl-.js +1 -0
- ksadk/studio/static/assets/chunk-6EIED4P4-DdUJkP0f.js +1 -0
- ksadk/studio/static/assets/chunk-6K3QC6MW-CqVsVn-y.js +1 -0
- ksadk/studio/static/assets/chunk-6TQVIW2G-DKlLbNIP.js +1 -0
- ksadk/studio/static/assets/chunk-747NJXEK-BFkZPlab.js +2 -0
- ksadk/studio/static/assets/chunk-75Z2AOVW-BZNhM4vB.js +2 -0
- ksadk/studio/static/assets/chunk-CLGD4ZFX-D-GTtyKs.js +1 -0
- ksadk/studio/static/assets/{chunk-DU6HZSFF-C4DtVpCu.js → chunk-DU6HZSFF-CpEZCUgg.js} +1 -1
- ksadk/studio/static/assets/chunk-F27PBJKO-D7pvKf0C.js +1 -0
- ksadk/studio/static/assets/{chunk-GMAD6QVW-DiQA-u2N.js → chunk-GMAD6QVW-DE_8H717.js} +6 -6
- ksadk/studio/static/assets/chunk-GVQU2GXP-BfEB0lNv.js +1 -0
- ksadk/studio/static/assets/chunk-I5DQTOEV-Hm2LfiYI.js +1 -0
- ksadk/studio/static/assets/chunk-ICYGCRZG-749o-pGJ.js +1 -0
- ksadk/studio/static/assets/chunk-IH6LHLGP-CC6I9F3i.js +1 -0
- ksadk/studio/static/assets/{chunk-IMKFNOWR-BSlbjT_b.js → chunk-IMKFNOWR-D38axYOR.js} +5 -5
- ksadk/studio/static/assets/chunk-KI3K4JFJ-Rma-0k_M.js +1 -0
- ksadk/studio/static/assets/chunk-L3NEJ4N5-Dq5xn7aL.js +1 -0
- ksadk/studio/static/assets/chunk-LNGE3PJU-DWpGwHrW.js +34 -0
- ksadk/studio/static/assets/{chunk-OSK3NFVY-M2m6G3j4.js → chunk-OSK3NFVY-DiCQjx9b.js} +5 -5
- ksadk/studio/static/assets/chunk-OUJLGHUK-D0j2JRSg.js +2 -0
- ksadk/studio/static/assets/{chunk-P2QGCYS3-DezaQxiK.js → chunk-P2QGCYS3-VdhKmfYq.js} +1 -1
- ksadk/studio/static/assets/chunk-POPQ4Y6H-C1_rzO5M.js +1 -0
- ksadk/studio/static/assets/chunk-PWAF6VOD-B45HvflI.js +1 -0
- ksadk/studio/static/assets/{chunk-SHT3W25Y-DAyIVp5H.js → chunk-SHT3W25Y-DsCFnRVE.js} +9 -9
- ksadk/studio/static/assets/{chunk-SVP7TREG-DulomOrS.js → chunk-SVP7TREG-DljApgRX.js} +1 -1
- ksadk/studio/static/assets/{chunk-TICWLB2K-bHJYoflj.js → chunk-TICWLB2K-DWqRtyqa.js} +6 -6
- ksadk/studio/static/assets/chunk-TLUHSLCS-DUeGgnD5.js +2 -0
- ksadk/studio/static/assets/chunk-UY3FDG6J-CnmaAkG5.js +1 -0
- ksadk/studio/static/assets/chunk-XHIXRSVI-BFQ6B8BE.js +1 -0
- ksadk/studio/static/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
- ksadk/studio/static/assets/classDiagram-ZZMXUADV-DjeMNJmu.js +1 -0
- ksadk/studio/static/assets/classDiagram-v2-VYDZK3BY-DjeMNJmu.js +1 -0
- ksadk/studio/static/assets/clsx-DB0hHKMi.js +1 -0
- ksadk/studio/static/assets/cose-bilkent-JH36ORCC-om8AY0Mc.js +1 -0
- ksadk/studio/static/assets/createLucideIcon-DR0LGTP5.js +1 -0
- ksadk/studio/static/assets/cynefin-OW5HDTMX-7tP7QfM3.js +1 -0
- ksadk/studio/static/assets/cynefinDiagram-5FMLGOSQ-6BrmK52S.js +62 -0
- ksadk/studio/static/assets/dagre-GXQ25YYZ-buZBRlwz.js +4 -0
- ksadk/studio/static/assets/{diagram-S7CK7UJ4-0BZ98mya.js → diagram-S7CK7UJ4-C6aH78c4.js} +3 -3
- ksadk/studio/static/assets/diagram-UQ7AKVKN-DY_tQ6C_.js +41 -0
- ksadk/studio/static/assets/diagram-VSXAHHWV-DX9p5cQT.js +3 -0
- ksadk/studio/static/assets/diagram-VX7I27RA-DB2WSH8X.js +24 -0
- ksadk/studio/static/assets/diagram-Z3DM3KII-Ce1BJwHE.js +24 -0
- ksadk/studio/static/assets/ebnfDiagram-PWID7BFC-Daukxwqf.js +1 -0
- ksadk/studio/static/assets/{erDiagram-RLTQ6QDP-DLGry2Ap.js → erDiagram-RLTQ6QDP-CGthTMmJ.js} +6 -6
- ksadk/studio/static/assets/eventmodeling-NTZA5JFV-BR2FzK4R.js +1 -0
- ksadk/studio/static/assets/flowDiagram-HODETNUW-CZ1tEenp.js +1 -0
- ksadk/studio/static/assets/ganttDiagram-EL5Y4UJY-BfoAZW9X.js +292 -0
- ksadk/studio/static/assets/gitGraph-4MIJSDKK-DYlXv_yJ.js +1 -0
- ksadk/studio/static/assets/gitGraphDiagram-WWUBYQGX-S985OIJF.js +106 -0
- ksadk/studio/static/assets/iconfont-4HN3C9Pg.woff2 +0 -0
- ksadk/studio/static/assets/index-CfEnms6Y.css +2 -0
- ksadk/studio/static/assets/index-Dp61rOWZ.js +0 -0
- ksadk/studio/static/assets/index.dom-BQenBtFm.js +1 -0
- ksadk/studio/static/assets/info-A6RAGUB7-BlU-8_xu.js +1 -0
- ksadk/studio/static/assets/infoDiagram-27XIBGKW-CO3W8tFn.js +2 -0
- ksadk/studio/static/assets/{ishikawaDiagram-5VMMS53U-CljI2wyf.js → ishikawaDiagram-5VMMS53U-BUGEl8cO.js} +2 -2
- ksadk/studio/static/assets/{journeyDiagram-3NMN7TZE-D50Fo2sL.js → journeyDiagram-3NMN7TZE-Ch2ZYxvr.js} +6 -6
- ksadk/studio/static/assets/{kanban-definition-UXKFOSKX-DimfOTam.js → kanban-definition-UXKFOSKX-Da-Fp4vC.js} +3 -3
- ksadk/studio/static/assets/kingsoft-cloud-BOcLiQ3e.ico +0 -0
- ksadk/studio/static/assets/{line-CX5BOOUP.js → line-BDaeq300.js} +1 -1
- ksadk/studio/static/assets/linear-DmucvK78.js +1 -0
- ksadk/studio/static/assets/mermaid-parser.core-Cj5mYdBi.js +4 -0
- ksadk/studio/static/assets/{mindmap-definition-YA3MSWOX-Bizzqy5R.js → mindmap-definition-YA3MSWOX-CvlsVQ38.js} +1 -1
- ksadk/studio/static/assets/packet-AYTQ26CC-BSJEH9Lb.js +1 -0
- ksadk/studio/static/assets/pegDiagram-XKGWAZYB-BuHuNgT5.js +1 -0
- ksadk/studio/static/assets/pie-WAS4IAKB-qxv01Y8W.js +1 -0
- ksadk/studio/static/assets/{pieDiagram-E7YTZNPT-B9mrFSDF.js → pieDiagram-E7YTZNPT-DlrWiSOv.js} +1 -1
- ksadk/studio/static/assets/preload-helper-CO68xz6u.js +1 -0
- ksadk/studio/static/assets/presentation-yYw7xK60-BmcZriri.js +1 -0
- ksadk/studio/static/assets/{quadrantDiagram-AXDQQJYC-NzUfCbMR.js → quadrantDiagram-AXDQQJYC-BA3hpUZM.js} +6 -6
- ksadk/studio/static/assets/radar-RG4KPBEZ-B6h6pWOs.js +1 -0
- ksadk/studio/static/assets/railroad-74A4TZTK-CGtTWdGc.js +1 -0
- ksadk/studio/static/assets/railroad-abnf-HS5TGJTU-Cq7y22IA.js +1 -0
- ksadk/studio/static/assets/railroad-ebnf-LZEXJU2U-V0aQVv9m.js +1 -0
- ksadk/studio/static/assets/railroad-peg-WCYAUIDC-BQiIsX_p.js +1 -0
- ksadk/studio/static/assets/railroadDiagram-O6MQD6OU-BxpAazym.js +1 -0
- ksadk/studio/static/assets/{requirementDiagram-BXWQKSXE-BF3d103U.js → requirementDiagram-BXWQKSXE-E-Ge0FcV.js} +1 -1
- ksadk/studio/static/assets/sankeyDiagram-P5KCCOFB-CA6YKhQ3.js +40 -0
- ksadk/studio/static/assets/{sequenceDiagram-WJ2MYXX4-Dh4wZtUm.js → sequenceDiagram-WJ2MYXX4-CcElXGg4.js} +9 -9
- ksadk/studio/static/assets/src-B6xuSHsQ.js +1 -0
- ksadk/studio/static/assets/stateDiagram-D77RDMKH-DdXZOFqY.js +1 -0
- ksadk/studio/static/assets/stateDiagram-v2-MP3YSRHH-CJbOM-QK.js +1 -0
- ksadk/studio/static/assets/swimlanes-42K2YHIH-NtgEEHLY.js +1 -0
- ksadk/studio/static/assets/swimlanesDiagram-VR7AAH4N-D-AVlW8B.js +8 -0
- ksadk/studio/static/assets/{timeline-definition-24CTP7MA-DxmSSjRB.js → timeline-definition-24CTP7MA-CIuYhNy3.js} +7 -7
- ksadk/studio/static/assets/treeView-Q6P3EWNA-BTTYcvrF.js +1 -0
- ksadk/studio/static/assets/treemap-WGGIJYW6-Cg7tyfH8.js +1 -0
- ksadk/studio/static/assets/vennDiagram-4TSXK5OY-7HbApbrv.js +34 -0
- ksadk/studio/static/assets/wardley-WFR3VGLG-C6N1rULY.js +1 -0
- ksadk/studio/static/assets/{wardleyDiagram-VM6X3IG4-Ba1AOWoe.js → wardleyDiagram-VM6X3IG4-CMJiaedy.js} +1 -1
- ksadk/studio/static/assets/{xychartDiagram-S5SC5T6Z-Cr5pt5Y-.js → xychartDiagram-S5SC5T6Z-BdgtMvW2.js} +6 -6
- ksadk/studio/static/index.html +8 -2
- ksadk/studio/teams_catalog.py +133 -0
- ksadk/studio/teams_installation.py +214 -0
- ksadk/studio/teams_node.py +545 -0
- ksadk/studio/teams_node_runner.py +69 -0
- ksadk/studio/teams_remote.py +274 -0
- ksadk/studio/templates.py +40 -19
- ksadk/studio/validator.py +13 -0
- ksadk/studio/workspace.py +19 -4
- ksadk/studio/workspace_plugins.py +136 -0
- ksadk/studio/workspace_registry.py +286 -0
- ksadk/toolsets/__init__.py +11 -0
- ksadk/toolsets/skills.py +446 -378
- ksadk/toolsets/workspace.py +3 -3
- ksadk/toolsets/workspace_identity.py +15 -0
- ksadk/version.py +1 -1
- ksadk_runtime_common/memory_backend/providers/lancedb.py +56 -2
- ksadk_runtime_common/schemas/memory_backend_manifest.schema.json +148 -148
- ksadk_runtime_common/workspace_files/router.py +26 -13
- ksadk/server/static/assets/MathMessageMarkdown-DbdW5A4_.js +0 -8
- ksadk/server/static/assets/architecture-7GRP2DOG-BW5UtSnx.js +0 -1
- ksadk/server/static/assets/channel-CF5Up3hQ.js +0 -1
- ksadk/server/static/assets/chunk-2Q5K7J3B-KkXX47WI.js +0 -1
- ksadk/server/static/assets/classDiagram-DTDB5LWJ-Cz81acRQ.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-Cz81acRQ.js +0 -1
- ksadk/server/static/assets/cynefin-OW5HDTMX-DVWs8a2t.js +0 -1
- ksadk/server/static/assets/dist-B2_CVgKv.js +0 -1
- ksadk/server/static/assets/eventmodeling-NTZA5JFV-CQqR2hg3.js +0 -1
- ksadk/server/static/assets/flowDiagram-A5DVABFB-DDRRbGPm.js +0 -1
- ksadk/server/static/assets/gitGraph-4MIJSDKK-fgWEf7UD.js +0 -1
- ksadk/server/static/assets/index-DcTML1Up.css +0 -2
- ksadk/server/static/assets/index-Dh2XHqPK.js +0 -244
- ksadk/server/static/assets/info-A6RAGUB7-BUecLTdt.js +0 -1
- ksadk/server/static/assets/packet-AYTQ26CC-BeW-btFv.js +0 -1
- ksadk/server/static/assets/pie-WAS4IAKB-X0xh4SaT.js +0 -1
- ksadk/server/static/assets/radar-RG4KPBEZ-DzRMSqjd.js +0 -1
- ksadk/server/static/assets/railroad-74A4TZTK-Cc44icX-.js +0 -1
- ksadk/server/static/assets/railroad-abnf-HS5TGJTU-D6S4BdV-.js +0 -1
- ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-vD3aVE2o.js +0 -1
- ksadk/server/static/assets/railroad-peg-WCYAUIDC-CYbW_b4T.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-BIcjKFhF.js +0 -1
- ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-tq3K3Ybl.js +0 -8
- ksadk/server/static/assets/treeView-Q6P3EWNA-DBXt3GdU.js +0 -1
- ksadk/server/static/assets/treemap-WGGIJYW6-DrCy4E_l.js +0 -1
- ksadk/server/static/assets/wardley-WFR3VGLG-CefhOliM.js +0 -1
- ksadk/studio/static/assets/CodeBlock-DCUUY0PL-BLjA7kbS.js +0 -41
- ksadk/studio/static/assets/MathMessageMarkdown-CBcDrAw--CUYIXwgI.js +0 -8
- ksadk/studio/static/assets/MermaidBlock-DBFTztfQ-BTYKWEbD.js +0 -44
- ksadk/studio/static/assets/PrismRenderer-wiXRHURw.js +0 -3
- ksadk/studio/static/assets/abnfDiagram-VCTEODGH-CLETGjKq.js +0 -1
- ksadk/studio/static/assets/architecture-7GRP2DOG-hXMiO_AU.js +0 -1
- ksadk/studio/static/assets/architectureDiagram-5GKGNRK7-B5EQysk6.js +0 -36
- ksadk/studio/static/assets/channel-BqO-gtEw.js +0 -1
- ksadk/studio/static/assets/chunk-75Z2AOVW-C8lLv_qc.js +0 -2
- ksadk/studio/static/assets/chunk-F27PBJKO-Cpw14SNG.js +0 -1
- ksadk/studio/static/assets/chunk-GVQU2GXP-DUdNBUCi.js +0 -1
- ksadk/studio/static/assets/chunk-L3NEJ4N5-Db8Ab22W.js +0 -1
- ksadk/studio/static/assets/chunk-POPQ4Y6H-DOpufJ3t.js +0 -1
- ksadk/studio/static/assets/chunk-PWAF6VOD-CfLb1gSc.js +0 -1
- ksadk/studio/static/assets/chunk-XXDRQBXY-7PcdR2B1.js +0 -1
- ksadk/studio/static/assets/classDiagram-ZZMXUADV-D_bW8JjA.js +0 -1
- ksadk/studio/static/assets/classDiagram-v2-VYDZK3BY-D_bW8JjA.js +0 -1
- ksadk/studio/static/assets/cose-bilkent-JH36ORCC-snL88wkX.js +0 -1
- ksadk/studio/static/assets/cynefin-OW5HDTMX-Bd1YhRo1.js +0 -1
- ksadk/studio/static/assets/cynefinDiagram-5FMLGOSQ-BBrIG_mI.js +0 -62
- ksadk/studio/static/assets/dagre-GXQ25YYZ-DtF1nGdY.js +0 -4
- ksadk/studio/static/assets/diagram-UQ7AKVKN-6mLKEo6L.js +0 -41
- ksadk/studio/static/assets/diagram-VSXAHHWV-CJBIaiZ2.js +0 -3
- ksadk/studio/static/assets/diagram-VX7I27RA-BohLEE1C.js +0 -24
- ksadk/studio/static/assets/diagram-Z3DM3KII-D8KIGonG.js +0 -24
- ksadk/studio/static/assets/ebnfDiagram-PWID7BFC-C99HU61t.js +0 -1
- ksadk/studio/static/assets/eventmodeling-NTZA5JFV-B1_5Ac8j.js +0 -1
- ksadk/studio/static/assets/flowDiagram-HODETNUW-DD5hmicn.js +0 -1
- ksadk/studio/static/assets/ganttDiagram-EL5Y4UJY-BPJrVLSG.js +0 -292
- ksadk/studio/static/assets/gitGraph-4MIJSDKK-Cy_ZQBGi.js +0 -1
- ksadk/studio/static/assets/gitGraphDiagram-WWUBYQGX-CZCUz4MT.js +0 -106
- ksadk/studio/static/assets/index-CeHL9ARV.css +0 -2
- ksadk/studio/static/assets/index-D9QEcVpL.js +0 -320
- ksadk/studio/static/assets/info-A6RAGUB7-DBzDQB_I.js +0 -1
- ksadk/studio/static/assets/infoDiagram-27XIBGKW-B-sq07Hi.js +0 -2
- ksadk/studio/static/assets/linear-BCxN9JLv.js +0 -1
- ksadk/studio/static/assets/mermaid-parser.core-BdCz8fkS.js +0 -7
- ksadk/studio/static/assets/packet-AYTQ26CC-gPln-_kG.js +0 -1
- ksadk/studio/static/assets/pegDiagram-XKGWAZYB-Dy3fB-gW.js +0 -1
- ksadk/studio/static/assets/pie-WAS4IAKB-qZdHMr7B.js +0 -1
- ksadk/studio/static/assets/radar-RG4KPBEZ-BZlnaea9.js +0 -1
- ksadk/studio/static/assets/railroad-74A4TZTK-Ce3__H9c.js +0 -1
- ksadk/studio/static/assets/railroad-abnf-HS5TGJTU-DqQn7EzD.js +0 -1
- ksadk/studio/static/assets/railroad-ebnf-LZEXJU2U-B55kCA8F.js +0 -1
- ksadk/studio/static/assets/railroad-peg-WCYAUIDC-DfQnvkHd.js +0 -1
- ksadk/studio/static/assets/railroadDiagram-O6MQD6OU-DnhMjZCk.js +0 -1
- ksadk/studio/static/assets/sankeyDiagram-P5KCCOFB-Bo-JTwt0.js +0 -40
- ksadk/studio/static/assets/src-SFn9St9H.js +0 -1
- ksadk/studio/static/assets/stateDiagram-D77RDMKH-DH774G6d.js +0 -1
- ksadk/studio/static/assets/stateDiagram-v2-MP3YSRHH-DZvVWPBo.js +0 -1
- ksadk/studio/static/assets/swimlanes-42K2YHIH-Bl13OvTX.js +0 -1
- ksadk/studio/static/assets/swimlanesDiagram-VR7AAH4N-BnFOTALJ.js +0 -8
- ksadk/studio/static/assets/treeView-Q6P3EWNA-D5Nn9Swz.js +0 -1
- ksadk/studio/static/assets/treemap-WGGIJYW6-CgHgnQhE.js +0 -1
- ksadk/studio/static/assets/vennDiagram-4TSXK5OY-B9QEXcJq.js +0 -34
- ksadk/studio/static/assets/wardley-WFR3VGLG-DXrK2RRY.js +0 -1
- {agentengine_sdk_python-0.8.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/WHEEL +0 -0
- {agentengine_sdk_python-0.8.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.8.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.8.4.dist-info → agentengine_sdk_python-0.8.5.dist-info}/top_level.txt +0 -0
- /ksadk/studio/static/assets/{MathMessageMarkdown-CBcDrAw--BEOyPC3w.css → MathMessageMarkdown-BesSeCYl-BEOyPC3w.css} +0 -0
ksadk/_build_provenance.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":1,"sourceCommit":"
|
|
1
|
+
{"schemaVersion":1,"sourceCommit":"5128ff1e57d1c37bc16f780028698da433c12a7e","sourceTree":"clean","version":"0.8.5"}
|
ksadk/_process.py
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"""Small process-group lifecycle helpers shared by local runtime backends."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import signal
|
|
7
|
+
import subprocess
|
|
8
|
+
import time
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def starts_new_process_group() -> bool:
|
|
12
|
+
return os.name == "posix"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def terminate_process_group(
|
|
16
|
+
process: subprocess.Popen[object],
|
|
17
|
+
*,
|
|
18
|
+
grace_seconds: float = 0.2,
|
|
19
|
+
reap_seconds: float = 1.0,
|
|
20
|
+
) -> str | None:
|
|
21
|
+
"""Stop a process and its descendants, then reap the direct child.
|
|
22
|
+
|
|
23
|
+
The caller must have created the process with ``start_new_session=True`` on
|
|
24
|
+
POSIX. The bounded waits intentionally avoid ``communicate()`` because a
|
|
25
|
+
surviving descendant may keep inherited output descriptors open.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
errors: list[str] = []
|
|
29
|
+
if os.name == "posix":
|
|
30
|
+
_signal_group(process.pid, signal.SIGTERM, errors)
|
|
31
|
+
deadline = time.monotonic() + max(grace_seconds, 0)
|
|
32
|
+
while time.monotonic() < deadline and _group_exists(process.pid):
|
|
33
|
+
# Reap an exited group leader before probing again. On Darwin an
|
|
34
|
+
# unreaped leader can make a now-empty group appear present and a
|
|
35
|
+
# subsequent killpg report EPERM.
|
|
36
|
+
process.poll()
|
|
37
|
+
time.sleep(0.01)
|
|
38
|
+
process.poll()
|
|
39
|
+
if _group_exists(process.pid):
|
|
40
|
+
_signal_group(process.pid, signal.SIGKILL, errors)
|
|
41
|
+
elif process.poll() is None:
|
|
42
|
+
try:
|
|
43
|
+
process.terminate()
|
|
44
|
+
except ProcessLookupError:
|
|
45
|
+
pass
|
|
46
|
+
except Exception as exc: # pragma: no cover - platform/runtime specific
|
|
47
|
+
errors.append(type(exc).__name__)
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
process.wait(timeout=max(reap_seconds, 0.01))
|
|
51
|
+
except subprocess.TimeoutExpired:
|
|
52
|
+
try:
|
|
53
|
+
process.kill()
|
|
54
|
+
except ProcessLookupError:
|
|
55
|
+
pass
|
|
56
|
+
except Exception as exc: # pragma: no cover - platform/runtime specific
|
|
57
|
+
errors.append(type(exc).__name__)
|
|
58
|
+
try:
|
|
59
|
+
process.wait(timeout=max(reap_seconds, 0.01))
|
|
60
|
+
except subprocess.TimeoutExpired:
|
|
61
|
+
errors.append("process_reap_timeout")
|
|
62
|
+
except Exception as exc: # pragma: no cover - platform/runtime specific
|
|
63
|
+
errors.append(type(exc).__name__)
|
|
64
|
+
return ",".join(dict.fromkeys(errors)) or None
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _signal_group(pid: int, sig: signal.Signals, errors: list[str]) -> None:
|
|
68
|
+
try:
|
|
69
|
+
os.killpg(pid, sig)
|
|
70
|
+
except ProcessLookupError:
|
|
71
|
+
pass
|
|
72
|
+
except Exception as exc: # pragma: no cover - platform/runtime specific
|
|
73
|
+
errors.append(type(exc).__name__)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def _group_exists(pid: int) -> bool:
|
|
77
|
+
try:
|
|
78
|
+
os.killpg(pid, 0)
|
|
79
|
+
return True
|
|
80
|
+
except ProcessLookupError:
|
|
81
|
+
return False
|
|
82
|
+
except PermissionError: # pragma: no cover - cannot inspect another owner
|
|
83
|
+
return True
|
ksadk/_str_enum.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""String-valued enums on all supported Python versions (including 3.10)."""
|
|
2
|
+
|
|
3
|
+
try:
|
|
4
|
+
from enum import StrEnum
|
|
5
|
+
except ImportError: # Python 3.10
|
|
6
|
+
from enum import Enum
|
|
7
|
+
|
|
8
|
+
class StrEnum(str, Enum):
|
|
9
|
+
__str__ = str.__str__
|
|
10
|
+
__format__ = str.__format__
|
|
11
|
+
|
|
12
|
+
@staticmethod
|
|
13
|
+
def _generate_next_value_(name, start, count, last_values):
|
|
14
|
+
return name.lower()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
__all__ = ["StrEnum"]
|
ksadk/a2ui/core.py
CHANGED
|
@@ -73,7 +73,7 @@ class A2UICore:
|
|
|
73
73
|
self._seq = 0
|
|
74
74
|
self._seen_surfaces: set[str] = set()
|
|
75
75
|
# InteractionLedger 存在时它是 pending interaction 的唯一权威
|
|
76
|
-
# (
|
|
76
|
+
# (Kernel Task 5 Step 6);本地 dict 只作无 ledger 的降级路径。
|
|
77
77
|
self._ledger = interaction_ledger
|
|
78
78
|
self._guard = interaction_guard
|
|
79
79
|
self._tenant_id = tenant_id
|
|
@@ -181,7 +181,7 @@ class A2UICore:
|
|
|
181
181
|
await self.display_ui(surface, invocation_id=invocation_id, origin=origin)
|
|
182
182
|
interaction_id = f"int_{uuid.uuid4().hex[:12]}"
|
|
183
183
|
if self._ledger is not None and self._guard is not None:
|
|
184
|
-
#
|
|
184
|
+
# Kernel Task 5 Step 6:durable ledger 是 pending interaction 的
|
|
185
185
|
# 唯一权威;持久化身份与 interaction.requested 事实由 ledger 落盘。
|
|
186
186
|
from datetime import datetime, timezone
|
|
187
187
|
|
|
@@ -264,7 +264,7 @@ class A2UICore:
|
|
|
264
264
|
``action``: ``{"action_id","surface_id","name","actor"?,"component_id"?}``;
|
|
265
265
|
携带 ``interaction_id`` 且配置了 InteractionLedger 时,对原 ID 建
|
|
266
266
|
InteractionSubmission 走 durable resolve,不再发第二个
|
|
267
|
-
InteractionRequested(
|
|
267
|
+
InteractionRequested(Kernel Task 5 Step 6)。
|
|
268
268
|
"""
|
|
269
269
|
receipt = ActionReceipt(
|
|
270
270
|
action_id=str(action.get("action_id") or f"act_{uuid.uuid4().hex[:12]}"),
|
ksadk/api/client.py
CHANGED
|
@@ -1615,6 +1615,9 @@ class AgentEngineClient:
|
|
|
1615
1615
|
"EnableObservability": enable_observability,
|
|
1616
1616
|
"EnvironmentVariables": env_vars,
|
|
1617
1617
|
}
|
|
1618
|
+
component_config = data.get("component_config")
|
|
1619
|
+
if component_config:
|
|
1620
|
+
advanced["ComponentConfig"] = component_config
|
|
1618
1621
|
inbound_identity_auth = data.get("inbound_identity_auth")
|
|
1619
1622
|
if inbound_identity_auth is not None:
|
|
1620
1623
|
advanced["InboundIdentityAuth"] = inbound_identity_auth
|
|
@@ -1966,6 +1969,9 @@ class AgentEngineClient:
|
|
|
1966
1969
|
inbound_identity_auth = data.get("inbound_identity_auth")
|
|
1967
1970
|
if inbound_identity_auth is not None:
|
|
1968
1971
|
advanced["InboundIdentityAuth"] = inbound_identity_auth
|
|
1972
|
+
component_config = data.get("component_config")
|
|
1973
|
+
if component_config:
|
|
1974
|
+
advanced["ComponentConfig"] = component_config
|
|
1969
1975
|
project_id = data.get("project_id")
|
|
1970
1976
|
if project_id:
|
|
1971
1977
|
advanced["ProjectId"] = project_id
|
ksadk/builders/code_builder.py
CHANGED
|
@@ -236,6 +236,14 @@ class CodeBuilder(BaseBuilder):
|
|
|
236
236
|
".ruff_cache",
|
|
237
237
|
}
|
|
238
238
|
IGNORED_FILE_NAMES = {".DS_Store"}
|
|
239
|
+
BUNDLED_SOURCE_IGNORED_DIR_NAMES = {
|
|
240
|
+
"__pycache__",
|
|
241
|
+
"node_modules",
|
|
242
|
+
".git",
|
|
243
|
+
".pytest_cache",
|
|
244
|
+
".mypy_cache",
|
|
245
|
+
".ruff_cache",
|
|
246
|
+
}
|
|
239
247
|
KSADK_ALLOWED_SUFFIXES = {
|
|
240
248
|
".py",
|
|
241
249
|
".yaml",
|
|
@@ -850,18 +858,36 @@ class CodeBuilder(BaseBuilder):
|
|
|
850
858
|
yield from self._iter_bundled_source_package(package_name, package_root)
|
|
851
859
|
|
|
852
860
|
def _iter_bundled_source_package(self, package_name: str, package_root: Path):
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
861
|
+
bundled_files = []
|
|
862
|
+
for current_root, dirnames, filenames in os.walk(package_root):
|
|
863
|
+
current_path = Path(current_root)
|
|
864
|
+
dirnames[:] = sorted(
|
|
865
|
+
dir_name
|
|
866
|
+
for dir_name in dirnames
|
|
867
|
+
if dir_name not in self.BUNDLED_SOURCE_IGNORED_DIR_NAMES
|
|
868
|
+
and not (
|
|
869
|
+
package_name == "ksadk"
|
|
870
|
+
and self._should_skip_ksadk_relative_path(
|
|
871
|
+
(current_path / dir_name).relative_to(package_root)
|
|
872
|
+
)
|
|
873
|
+
)
|
|
874
|
+
)
|
|
875
|
+
for file_name in sorted(filenames):
|
|
876
|
+
file_path = current_path / file_name
|
|
877
|
+
if not file_path.is_file():
|
|
878
|
+
continue
|
|
879
|
+
relative_path = file_path.relative_to(package_root)
|
|
880
|
+
if (
|
|
881
|
+
package_name == "ksadk"
|
|
882
|
+
and self._should_skip_ksadk_relative_path(relative_path)
|
|
883
|
+
):
|
|
884
|
+
continue
|
|
885
|
+
if file_path.suffix.lower() not in self.KSADK_ALLOWED_SUFFIXES:
|
|
886
|
+
continue
|
|
887
|
+
bundled_files.append((relative_path.as_posix(), file_path))
|
|
888
|
+
|
|
889
|
+
for relative_path, file_path in sorted(bundled_files):
|
|
890
|
+
yield package_name, relative_path, file_path
|
|
865
891
|
|
|
866
892
|
def _should_skip_ksadk_relative_path(self, relative_path: Path) -> bool:
|
|
867
893
|
parts = relative_path.parts
|
|
@@ -23,8 +23,22 @@ LANGCHAIN_ECOSYSTEM_REQUIREMENTS = (
|
|
|
23
23
|
|
|
24
24
|
DEEPAGENTS_REQUIREMENTS = ("deepagents>=0.6.2,<1.0.0",)
|
|
25
25
|
|
|
26
|
-
# codex runtime:openai-codex SDK(自带 codex CLI 二进制,见 PyPI cli-bin wheel)
|
|
27
|
-
|
|
26
|
+
# codex runtime:openai-codex SDK(自带 codex CLI 二进制,见 PyPI cli-bin wheel)。
|
|
27
|
+
# 版本必须与 pyproject.toml 的 ksadk[codex] extra 保持一致:适配层
|
|
28
|
+
# (ksadk/codex/client.py)依赖 app-server 私有协议,SDK/CLI 是精确 co-pin。
|
|
29
|
+
CODEX_REQUIREMENTS = ("openai-codex==0.154.0",)
|
|
30
|
+
|
|
31
|
+
# KsADK Harness is a managed LangGraph runtime. Keep its checkpoint adapter
|
|
32
|
+
# explicit: LangGraph split the SQLite saver into a separately distributed
|
|
33
|
+
# package, so installing only ``langgraph`` leaves
|
|
34
|
+
# ``langgraph.checkpoint.sqlite`` unavailable in a freshly built agent.
|
|
35
|
+
HARNESS_REQUIREMENTS = (
|
|
36
|
+
"langgraph>=1.2.0,<1.3.0",
|
|
37
|
+
"langgraph-checkpoint-sqlite>=2.0.0",
|
|
38
|
+
"langchain>=1.3.14,<2.0.0",
|
|
39
|
+
"langchain-core>=1.5.0,<2.0.0",
|
|
40
|
+
"langchain-openai>=1.4.0,<2.0.0",
|
|
41
|
+
)
|
|
28
42
|
|
|
29
43
|
|
|
30
44
|
def code_requirements_for_framework(framework: str) -> list[str]:
|
|
@@ -46,6 +60,8 @@ def requirements_for_framework(framework: str) -> list[str]:
|
|
|
46
60
|
return list(ADK_REQUIREMENTS)
|
|
47
61
|
if normalized == "codex":
|
|
48
62
|
return list(CODEX_REQUIREMENTS)
|
|
63
|
+
if normalized == "harness":
|
|
64
|
+
return list(HARNESS_REQUIREMENTS)
|
|
49
65
|
if normalized in {"langchain", "langgraph", "deepagents"}:
|
|
50
66
|
requirements = list(LANGCHAIN_ECOSYSTEM_REQUIREMENTS)
|
|
51
67
|
if normalized == "deepagents":
|
|
@@ -61,6 +77,8 @@ def minimal_requirements_for_framework(framework: str) -> list[str]:
|
|
|
61
77
|
return list(ADK_REQUIREMENTS)
|
|
62
78
|
if normalized == "codex":
|
|
63
79
|
return list(CODEX_REQUIREMENTS)
|
|
80
|
+
if normalized == "harness":
|
|
81
|
+
return list(HARNESS_REQUIREMENTS)
|
|
64
82
|
if normalized in {"langchain", "langgraph", "deepagents"}:
|
|
65
83
|
requirements = [
|
|
66
84
|
"langchain>=1.3.14,<2.0.0",
|
ksadk/cli/__init__.py
CHANGED
|
@@ -354,6 +354,17 @@ def _register_commands():
|
|
|
354
354
|
|
|
355
355
|
_add_command_once(cli, web)
|
|
356
356
|
|
|
357
|
+
# The desktop shell invokes exactly ``ksadk studio``. Avoid importing the
|
|
358
|
+
# full command registry (A2A, deploy, eval, etc.) on this hot path: those
|
|
359
|
+
# optional SDKs are unrelated to Studio and their import warnings used to
|
|
360
|
+
# obscure the real startup error. This also shortens the time to the first
|
|
361
|
+
# local health check in Electron.
|
|
362
|
+
if bool(_argv) and _argv[0] == "studio":
|
|
363
|
+
from ksadk.cli.cmd_studio import studio
|
|
364
|
+
|
|
365
|
+
_add_command_once(cli, studio)
|
|
366
|
+
return
|
|
367
|
+
|
|
357
368
|
if _runtime_only:
|
|
358
369
|
# Skip create/deploy/run/managed_runtime imports on the runtime path.
|
|
359
370
|
return
|
|
@@ -460,6 +471,31 @@ def _main():
|
|
|
460
471
|
except ImportError:
|
|
461
472
|
pass
|
|
462
473
|
|
|
474
|
+
# Studio and ordinary CLI commands consume the same saved workspace values.
|
|
475
|
+
from pathlib import Path
|
|
476
|
+
|
|
477
|
+
from ksadk.studio.configuration import WorkspaceConfiguration
|
|
478
|
+
from ksadk.studio.workspace import Workspace
|
|
479
|
+
|
|
480
|
+
try:
|
|
481
|
+
root = Path.cwd()
|
|
482
|
+
if any(
|
|
483
|
+
(root / ".agentkit" / name).is_file()
|
|
484
|
+
for name in ("config.yaml", "settings.yaml", "secrets.env")
|
|
485
|
+
):
|
|
486
|
+
configuration = WorkspaceConfiguration(Workspace(root))
|
|
487
|
+
effective = configuration.environment()
|
|
488
|
+
os.environ.update(effective)
|
|
489
|
+
if (
|
|
490
|
+
"codexProxy" in configuration.settings()
|
|
491
|
+
and "KSADK_CODEX_USE_PROXY" not in effective
|
|
492
|
+
):
|
|
493
|
+
os.environ.pop("KSADK_CODEX_USE_PROXY", None)
|
|
494
|
+
except Exception as error:
|
|
495
|
+
cli_error = cli_error_from_exception(error, show_help=False)
|
|
496
|
+
emit_cli_error(cli_error)
|
|
497
|
+
raise SystemExit(cli_error.exit_code) from None
|
|
498
|
+
|
|
463
499
|
# 全局配置回退: .env 未设置的变量从 ~/.agentengine/settings.json 补充
|
|
464
500
|
try:
|
|
465
501
|
from ksadk.configs.global_config import get_env_from_global_config
|
ksadk/cli/cmd_config.py
CHANGED
|
@@ -184,7 +184,7 @@ def _apply_set_command(
|
|
|
184
184
|
if not updates_yaml and not updates_env and invalid_items:
|
|
185
185
|
raise usage_error(
|
|
186
186
|
"至少提供一个有效的 KEY=VALUE 配置项。",
|
|
187
|
-
hints=["示例: `agentengine config set region=cn-beijing-6 OPENAI_MODEL_NAME=
|
|
187
|
+
hints=["示例: `agentengine config set region=cn-beijing-6 OPENAI_MODEL_NAME=deepseek-v4.1-flash`"],
|
|
188
188
|
)
|
|
189
189
|
|
|
190
190
|
result = {
|
|
@@ -323,7 +323,7 @@ def _run_config_set_command(
|
|
|
323
323
|
if not set_items:
|
|
324
324
|
raise usage_error(
|
|
325
325
|
"请至少提供一个 KEY=VALUE 配置项。",
|
|
326
|
-
hints=["示例: `agentengine config set region=cn-beijing-6 OPENAI_MODEL_NAME=
|
|
326
|
+
hints=["示例: `agentengine config set region=cn-beijing-6 OPENAI_MODEL_NAME=deepseek-v4.1-flash`"],
|
|
327
327
|
)
|
|
328
328
|
return _apply_set_command(set_items, output_path, env_path, is_global)
|
|
329
329
|
|
|
@@ -464,7 +464,7 @@ def run_config_wizard(config_file: str | None, set_items: tuple, is_global: bool
|
|
|
464
464
|
|
|
465
465
|
new_env["OPENAI_MODEL_NAME"] = _ask_or_exit(
|
|
466
466
|
questionary.text(
|
|
467
|
-
"模型名称 (OPENAI_MODEL_NAME) [选填,默认使用金山云星流平台
|
|
467
|
+
"模型名称 (OPENAI_MODEL_NAME) [选填,默认使用金山云星流平台deepseek-v4.1-flash]:",
|
|
468
468
|
default=existing_env.get("OPENAI_MODEL_NAME", ""),
|
|
469
469
|
style=_questionary_style(),
|
|
470
470
|
)
|
|
@@ -784,7 +784,7 @@ def config_set(set_items: tuple, is_global: bool, output_mode: str | None):
|
|
|
784
784
|
\b
|
|
785
785
|
示例:
|
|
786
786
|
agentengine config set region=cn-beijing-6
|
|
787
|
-
agentengine config set OPENAI_MODEL_NAME=
|
|
787
|
+
agentengine config set OPENAI_MODEL_NAME=deepseek-v4.1-flash OPENAI_BASE_URL=https://example.com/v1
|
|
788
788
|
agentengine config set KSYUN_REGION=cn-beijing-6 --global
|
|
789
789
|
"""
|
|
790
790
|
_ = output_mode
|
ksadk/cli/cmd_create.py
CHANGED
|
@@ -104,7 +104,7 @@ from google.adk.agents import Agent
|
|
|
104
104
|
from google.adk.models.lite_llm import LiteLlm
|
|
105
105
|
|
|
106
106
|
model = LiteLlm(
|
|
107
|
-
model=f"openai/{{os.getenv('OPENAI_MODEL_NAME', '
|
|
107
|
+
model=f"openai/{{os.getenv('OPENAI_MODEL_NAME', 'deepseek-v4.1-flash')}}",
|
|
108
108
|
api_base=os.getenv("OPENAI_BASE_URL"),
|
|
109
109
|
api_key=os.getenv("OPENAI_API_KEY"),
|
|
110
110
|
stream=True, # 启用流式输出
|
|
@@ -147,7 +147,7 @@ from langchain.agents import create_agent
|
|
|
147
147
|
from langchain_openai import ChatOpenAI
|
|
148
148
|
|
|
149
149
|
llm = ChatOpenAI(
|
|
150
|
-
model=os.getenv("OPENAI_MODEL_NAME", "
|
|
150
|
+
model=os.getenv("OPENAI_MODEL_NAME", "deepseek-v4.1-flash"),
|
|
151
151
|
base_url=os.getenv("OPENAI_BASE_URL"),
|
|
152
152
|
api_key=os.getenv("OPENAI_API_KEY"),
|
|
153
153
|
streaming=True,
|
|
@@ -194,7 +194,7 @@ from typing import TypedDict, Annotated
|
|
|
194
194
|
import operator
|
|
195
195
|
|
|
196
196
|
llm = ChatOpenAI(
|
|
197
|
-
model=os.getenv("OPENAI_MODEL_NAME", "
|
|
197
|
+
model=os.getenv("OPENAI_MODEL_NAME", "deepseek-v4.1-flash"),
|
|
198
198
|
base_url=os.getenv("OPENAI_BASE_URL"),
|
|
199
199
|
api_key=os.getenv("OPENAI_API_KEY"),
|
|
200
200
|
streaming=True,
|
|
@@ -234,7 +234,7 @@ from deepagents import create_deep_agent
|
|
|
234
234
|
from langchain_openai import ChatOpenAI
|
|
235
235
|
|
|
236
236
|
llm = ChatOpenAI(
|
|
237
|
-
model=os.getenv("OPENAI_MODEL_NAME", "
|
|
237
|
+
model=os.getenv("OPENAI_MODEL_NAME", "deepseek-v4.1-flash"),
|
|
238
238
|
base_url=os.getenv("OPENAI_BASE_URL"),
|
|
239
239
|
api_key=os.getenv("OPENAI_API_KEY"),
|
|
240
240
|
streaming=True,
|
|
@@ -671,7 +671,7 @@ def _generate_codex_env_content(global_env: dict) -> str:
|
|
|
671
671
|
"# 本地 Codex 模型配置(仅用于 ksadk web,不会进入 ManagedRuntime bundle)",
|
|
672
672
|
"# OPENAI_API_KEY=",
|
|
673
673
|
f"OPENAI_BASE_URL={base_url}" if base_url else "# OPENAI_BASE_URL=",
|
|
674
|
-
f"OPENAI_MODEL_NAME={model_name}" if model_name else "# OPENAI_MODEL_NAME=
|
|
674
|
+
f"OPENAI_MODEL_NAME={model_name}" if model_name else "# OPENAI_MODEL_NAME=deepseek-v4.1-flash",
|
|
675
675
|
"",
|
|
676
676
|
"# 可选:自定义上游仅支持 Chat Completions 时,强制启用协议转换代理",
|
|
677
677
|
"# KSADK_CODEX_USE_PROXY=1",
|
|
@@ -1601,7 +1601,7 @@ runtime:
|
|
|
1601
1601
|
name: codex
|
|
1602
1602
|
|
|
1603
1603
|
# codex 的模型与开发者指令(CodexRuntimeAdapter 传入 codex thread)
|
|
1604
|
-
model:
|
|
1604
|
+
model: deepseek-v4.1-flash
|
|
1605
1605
|
prompt: |
|
|
1606
1606
|
你是 codex 编码助手。简洁回答,能跑命令验证就跑(shell 工具),中文回复。
|
|
1607
1607
|
""",
|
|
@@ -1820,7 +1820,7 @@ KSYUN_REGION={ks_region}
|
|
|
1820
1820
|
if model_name:
|
|
1821
1821
|
env_content += f"OPENAI_MODEL_NAME={model_name}\n"
|
|
1822
1822
|
else:
|
|
1823
|
-
env_content += "# OPENAI_MODEL_NAME=
|
|
1823
|
+
env_content += "# OPENAI_MODEL_NAME=deepseek-v4.1-flash\n"
|
|
1824
1824
|
elif framework == "hermes":
|
|
1825
1825
|
env_content = f"""# ======================
|
|
1826
1826
|
# Hermes 标准部署最小配置
|
|
@@ -1840,7 +1840,7 @@ KSYUN_REGION={ks_region}
|
|
|
1840
1840
|
if model_name:
|
|
1841
1841
|
env_content += f"OPENAI_MODEL_NAME={model_name}\n"
|
|
1842
1842
|
else:
|
|
1843
|
-
env_content += "# OPENAI_MODEL_NAME=
|
|
1843
|
+
env_content += "# OPENAI_MODEL_NAME=deepseek-v4.1-flash\n"
|
|
1844
1844
|
|
|
1845
1845
|
env_content += """
|
|
1846
1846
|
# Hermes runtime
|
|
@@ -1851,7 +1851,7 @@ HERMES_DASHBOARD_HOST=127.0.0.1
|
|
|
1851
1851
|
HERMES_DASHBOARD_PORT=9119
|
|
1852
1852
|
PORT=8080
|
|
1853
1853
|
# HERMES_CONTEXT_LENGTH=200000
|
|
1854
|
-
# HERMES_FALLBACK_MODEL=
|
|
1854
|
+
# HERMES_FALLBACK_MODEL=glm-5.3-flash
|
|
1855
1855
|
"""
|
|
1856
1856
|
env_example_content = """# ======================
|
|
1857
1857
|
# Hermes 标准部署最小配置示例
|
|
@@ -1863,7 +1863,7 @@ KSYUN_REGION=cn-beijing-6
|
|
|
1863
1863
|
|
|
1864
1864
|
OPENAI_API_KEY=your-model-api-key
|
|
1865
1865
|
OPENAI_BASE_URL=https://kspmas.ksyun.com/v1/
|
|
1866
|
-
OPENAI_MODEL_NAME=
|
|
1866
|
+
OPENAI_MODEL_NAME=deepseek-v4.1-flash
|
|
1867
1867
|
|
|
1868
1868
|
# Hermes runtime
|
|
1869
1869
|
API_SERVER_ENABLED=true
|
|
@@ -1873,7 +1873,7 @@ HERMES_DASHBOARD_HOST=127.0.0.1
|
|
|
1873
1873
|
HERMES_DASHBOARD_PORT=9119
|
|
1874
1874
|
PORT=8080
|
|
1875
1875
|
# HERMES_CONTEXT_LENGTH=200000
|
|
1876
|
-
# HERMES_FALLBACK_MODEL=
|
|
1876
|
+
# HERMES_FALLBACK_MODEL=glm-5.3-flash
|
|
1877
1877
|
"""
|
|
1878
1878
|
elif framework == "codex":
|
|
1879
1879
|
env_content = _generate_codex_env_content(global_env)
|
|
@@ -1893,7 +1893,7 @@ PORT=8080
|
|
|
1893
1893
|
if model_name:
|
|
1894
1894
|
env_content += f"OPENAI_MODEL_NAME={model_name}\n"
|
|
1895
1895
|
else:
|
|
1896
|
-
env_content += "# OPENAI_MODEL_NAME=
|
|
1896
|
+
env_content += "# OPENAI_MODEL_NAME=deepseek-v4.1-flash\n"
|
|
1897
1897
|
|
|
1898
1898
|
env_content += """
|
|
1899
1899
|
# ======================
|
ksadk/cli/cmd_hermes.py
CHANGED
|
@@ -24,6 +24,7 @@ from ksadk.cli.error_utils import remote_error, resolution_error
|
|
|
24
24
|
from ksadk.cli.model_catalog import fetch_provider_model_metadata
|
|
25
25
|
from ksadk.cli.network_options import build_network_payload, network_cli_kwargs, network_options
|
|
26
26
|
from ksadk.cli.resource_common import (
|
|
27
|
+
build_component_config,
|
|
27
28
|
CONTEXT_SETTINGS,
|
|
28
29
|
ResourceActionSet,
|
|
29
30
|
ResourceDescriptor,
|
|
@@ -65,8 +66,8 @@ from ksadk.hermes_terminal import (
|
|
|
65
66
|
)
|
|
66
67
|
|
|
67
68
|
DEFAULT_HERMES_IMAGE = "ghcr.io/kingsoftcloud/hermes-agent:v2026.7.7.2-ksadk-v070"
|
|
68
|
-
DEFAULT_HERMES_CONTEXT_LENGTHS = (("
|
|
69
|
-
DEFAULT_HERMES_MODEL_NAME = "
|
|
69
|
+
DEFAULT_HERMES_CONTEXT_LENGTHS = (("deepseek-v4.1-flash", "128000"),)
|
|
70
|
+
DEFAULT_HERMES_MODEL_NAME = "deepseek-v4.1-flash"
|
|
70
71
|
DEFAULT_HERMES_PUBLIC_BASE_URL = "https://kspmas.ksyun.com/v1/"
|
|
71
72
|
DEFAULT_HERMES_RUNTIME_BASE_URL = DEFAULT_HERMES_PUBLIC_BASE_URL
|
|
72
73
|
KSPMAS_PUBLIC_BASES = (
|
|
@@ -163,6 +164,8 @@ def _build_hermes_update_payload(
|
|
|
163
164
|
update_payload["storage"] = storage_config
|
|
164
165
|
if network_payload:
|
|
165
166
|
update_payload["network"] = network_payload
|
|
167
|
+
if payload.get("component_config"):
|
|
168
|
+
update_payload["component_config"] = payload["component_config"]
|
|
166
169
|
return update_payload
|
|
167
170
|
|
|
168
171
|
|
|
@@ -428,6 +431,9 @@ def _render_hermes_dry_run(
|
|
|
428
431
|
@click.option("--storage-size-gi", type=int, default=20, show_default=True, help="PVC 容量(Gi)")
|
|
429
432
|
@click.option("--storage-mount-path", default=None, help="PVC 挂载目录(默认: /home/node/.hermes)")
|
|
430
433
|
@click.option("--no-storage", is_flag=True, help="禁用默认 PVC 挂载")
|
|
434
|
+
@click.option("--skill-space-id", "skill_space_ids", multiple=True, help="Skill 中心空间 ID(可重复传入多个)")
|
|
435
|
+
@click.option("--sandbox-template-id", default=None, help="沙箱模板 ID(启用 E2B 沙箱执行 execute_skills)")
|
|
436
|
+
@click.option("--sandbox-api-key", default=None, help="沙箱 API Key(可选,默认从服务端注入)")
|
|
431
437
|
@env_options
|
|
432
438
|
@click.option(
|
|
433
439
|
"--observability/--no-observability",
|
|
@@ -468,6 +474,9 @@ def deploy(
|
|
|
468
474
|
subnet_id: Optional[str],
|
|
469
475
|
security_group_id: Optional[str],
|
|
470
476
|
availability_zone: Optional[str],
|
|
477
|
+
skill_space_ids: tuple[str, ...],
|
|
478
|
+
sandbox_template_id: Optional[str],
|
|
479
|
+
sandbox_api_key: Optional[str],
|
|
471
480
|
dry_run: bool,
|
|
472
481
|
output_mode: str | None,
|
|
473
482
|
):
|
|
@@ -510,6 +519,9 @@ def deploy(
|
|
|
510
519
|
include_storage_on_update=include_storage_on_update,
|
|
511
520
|
extra_env=extra_env,
|
|
512
521
|
env_file=env_file,
|
|
522
|
+
skill_space_ids=skill_space_ids,
|
|
523
|
+
sandbox_template_id=sandbox_template_id,
|
|
524
|
+
sandbox_api_key=sandbox_api_key,
|
|
513
525
|
**network_cli_kwargs(
|
|
514
526
|
enable_public_access=enable_public_access,
|
|
515
527
|
enable_vpc_access=enable_vpc_access,
|
|
@@ -551,6 +563,9 @@ async def _deploy_hermes(
|
|
|
551
563
|
subnet_id: str | None = None,
|
|
552
564
|
security_group_id: str | None = None,
|
|
553
565
|
availability_zone: str | None = None,
|
|
566
|
+
skill_space_ids: tuple[str, ...] = (),
|
|
567
|
+
sandbox_template_id: str | None = None,
|
|
568
|
+
sandbox_api_key: str | None = None,
|
|
554
569
|
dry_run: bool = False,
|
|
555
570
|
) -> None:
|
|
556
571
|
project_dir = Path(".").resolve()
|
|
@@ -606,6 +621,11 @@ async def _deploy_hermes(
|
|
|
606
621
|
auto_dotenv=auto_dotenv,
|
|
607
622
|
shell_keys=shell_keys,
|
|
608
623
|
)
|
|
624
|
+
component_config = build_component_config(
|
|
625
|
+
skill_space_ids=skill_space_ids,
|
|
626
|
+
sandbox_template_id=sandbox_template_id,
|
|
627
|
+
sandbox_api_key=sandbox_api_key,
|
|
628
|
+
)
|
|
609
629
|
payload = {
|
|
610
630
|
"name": agent_name,
|
|
611
631
|
"description": "Hermes Agent (managed by AgentEngine)",
|
|
@@ -619,6 +639,8 @@ async def _deploy_hermes(
|
|
|
619
639
|
"env_vars": env_vars,
|
|
620
640
|
"ui_config": {"profile": "hermes", "path": "/", "url": None},
|
|
621
641
|
}
|
|
642
|
+
if component_config:
|
|
643
|
+
payload["component_config"] = component_config
|
|
622
644
|
storage_config = build_storage_config(
|
|
623
645
|
"hermes",
|
|
624
646
|
no_storage=no_storage,
|
ksadk/cli/cmd_invoke.py
CHANGED
|
@@ -18,7 +18,6 @@ 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
|
|
22
21
|
from ksadk.cli.cmd_files import (
|
|
23
22
|
_build_sync_payload,
|
|
24
23
|
_collect_local_files_report,
|
|
@@ -27,6 +26,7 @@ from ksadk.cli.cmd_files import (
|
|
|
27
26
|
_normalize_workspace_dir,
|
|
28
27
|
_push_workspace_files,
|
|
29
28
|
)
|
|
29
|
+
from ksadk.cli.invoke_payload import build_chat_request
|
|
30
30
|
from ksadk.cli.resource_common import (
|
|
31
31
|
CONTEXT_SETTINGS,
|
|
32
32
|
CompatibilityAliasCommand,
|
|
@@ -1311,7 +1311,15 @@ async def _invoke_once(
|
|
|
1311
1311
|
last_refresh_time = 0.0
|
|
1312
1312
|
full_reasoning = ""
|
|
1313
1313
|
async for chunk in _stream_chat(
|
|
1314
|
-
endpoint,
|
|
1314
|
+
endpoint,
|
|
1315
|
+
message,
|
|
1316
|
+
api_key,
|
|
1317
|
+
session_id,
|
|
1318
|
+
True,
|
|
1319
|
+
insecure,
|
|
1320
|
+
model,
|
|
1321
|
+
api_format,
|
|
1322
|
+
default_model,
|
|
1315
1323
|
):
|
|
1316
1324
|
content, reasoning = _extract_content(chunk)
|
|
1317
1325
|
|
|
@@ -1341,7 +1349,15 @@ async def _invoke_once(
|
|
|
1341
1349
|
live.refresh() # 确保最后一次刷新
|
|
1342
1350
|
else:
|
|
1343
1351
|
async for chunk in _stream_chat(
|
|
1344
|
-
endpoint,
|
|
1352
|
+
endpoint,
|
|
1353
|
+
message,
|
|
1354
|
+
api_key,
|
|
1355
|
+
session_id,
|
|
1356
|
+
True,
|
|
1357
|
+
insecure,
|
|
1358
|
+
model,
|
|
1359
|
+
api_format,
|
|
1360
|
+
default_model,
|
|
1345
1361
|
):
|
|
1346
1362
|
content, reasoning = _extract_content(chunk)
|
|
1347
1363
|
if reasoning:
|
|
@@ -1510,8 +1526,15 @@ def _extract_content(chunk: dict) -> tuple[str, str]:
|
|
|
1510
1526
|
event_name = str(chunk.get("_event") or "")
|
|
1511
1527
|
if event_name == "response.output_text.delta":
|
|
1512
1528
|
return str(chunk.get("delta") or ""), ""
|
|
1513
|
-
|
|
1514
|
-
|
|
1529
|
+
# reasoning delta 有 4 个变体名(与 remote_runner / 前端 chatProtocol 对齐),
|
|
1530
|
+
# 主 runtime 发 reasoning.delta,Studio shared_web 发 reasoning_summary_text.delta。
|
|
1531
|
+
if event_name in {
|
|
1532
|
+
"response.reasoning.delta",
|
|
1533
|
+
"response.reasoning_text.delta",
|
|
1534
|
+
"response.reasoning_summary.delta",
|
|
1535
|
+
"response.reasoning_summary_text.delta",
|
|
1536
|
+
}:
|
|
1537
|
+
return "", str(chunk.get("delta") or chunk.get("text") or "")
|
|
1515
1538
|
if event_name == "response.completed":
|
|
1516
1539
|
return "", ""
|
|
1517
1540
|
|