Web UI Repository
The KsADK Web UI source lives in the independent kingsoftcloud/ksadk-web
repository and is published as the npm package @kingsoftcloud/ksadk-web.
ksadk-python synchronizes the dist-ksadk output from the npm package into
ksadk/server/static for the local agentengine web server. The Studio
production payload lives in ksadk/studio/static. Public Git exports contain Studio React / TypeScript sources and the dependency lockfile, not generated assets. Package builds consume the pinned Web npm package and compile Studio; sdists and wheels contain the audited static payload.
Repository Roles
| Repository / Package | Role |
|---|---|
kingsoftcloud/ksadk-web | Editable React/Vite source, tests, Pages demo, npm publishing |
@kingsoftcloud/ksadk-web (npm) | Distribution channel for dist-ksadk / dist-hosted build outputs |
public ksadk-python repository | Python SDK, CLI, runner, local server, Studio sources and dependency lockfile |
| Python artifacts | SDK and compiled server/static and studio/static, without frontend development dependencies |
| hosted UI | Production deployment shell, gateway, image and environment injection; also consumes the npm package |
The ksadk-python public clean export does not contain ksadk/server/web-ui
source, nor node_modules, dist/, or dist-hosted/ intermediate UI artifacts.
The hosted editable UI source is maintained in kingsoftcloud/ksadk-web.
Studio source is included in the public export. Static assets are generated at build time and included only in Python artifacts.
Sync Rules
make sync-ksadk-web-static synchronizes the dist-ksadk directory of the
@kingsoftcloud/ksadk-web npm package into ksadk/server/static:
# Default: pull the verified npm version
make sync-ksadk-web-static
# Pin the concrete 0.8.4 candidate version
make sync-ksadk-web-static KSADK_WEB_VERSION=0.3.7Do not pull GitHub latest release at wheel build time
latest is not reproducible, introduces network and supply-chain risk, and
cannot guarantee wheel contents match the release record. Release candidates
must pin KSADK_WEB_VERSION to a concrete version. To fall back in a
network-restricted environment, use KSADK_WEB_RELEASE_URL to point at an
audited tarball.
Controlled package build
make build and make build-wheel consume pinned ksadk-web assets, build React Studio from its dependency lock, and then build the wheel. Internal and public Git trees use the same path:
make build-wheel KSADK_WEB_VERSION=0.3.7Wheel users do not need to compile the frontend. The universal wheel does not include framework dependencies or native toolchains; fully disconnected installation also needs an appropriate dependency wheelhouse.
Sync Variables
| Variable | Default | Description |
|---|---|---|
KSADK_WEB_VERSION | 0.3.7 | published npm package version; release candidates must pin a concrete version |
KSADK_WEB_PACKAGE | @kingsoftcloud/ksadk-web | npm package name |
KSADK_WEB_TARBALL_NAME | kingsoftcloud-ksadk-web-<version>.tgz | Tarball filename, derived from the version |
KSADK_WEB_RELEASE_URL | empty | Explicit tarball URL fallback; takes precedence over npm pack |
KSADK_WEB_CACHE_DIR | .cache/ksadk-web | Local cache directory for extraction |
KSADK_WEB_REGISTRY | https://registry.npmjs.org | npm registry; used to resolve the tarball URL only when no npm CLI is available |
Sync precedence: KSADK_WEB_RELEASE_URL explicit tarball > npm pack > registry
resolution. Regardless of the path taken, the dist-ksadk directory is verified
to exist before it is copied over ksadk/server/static.
Release Record
Each ksadk-python release note should record:
- The
ksadk-pythonversion (e.g.0.8.4). - The
KSADK_WEB_VERSION/ npm package version (e.g.0.8.4maps to@kingsoftcloud/ksadk-web@0.3.7). - The controlled build command (e.g.
make build-frontend KSADK_WEB_VERSION=0.3.7). - The wheel / sdist audit result (
make public-build-check/twine check dist/*).
0.8.4 candidate record example
ksadk-python:0.8.4- npm package:
@kingsoftcloud/ksadk-web@0.3.7 - frontend build:
make build-frontend KSADK_WEB_VERSION=0.3.7 - audit:
make public-build-checkpassed,twine check dist/*passed