mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-08-04 05:51:03 +00:00
Some checks are pending
CI / test (4) (push) Waiting to run
CI / test (5) (push) Waiting to run
CI / test-pi-tui (push) Waiting to run
CI / test-windows (push) Waiting to run
CI / lint (push) Waiting to run
CI / build (push) Waiting to run
CI / test (1) (push) Waiting to run
CI / test (2) (push) Waiting to run
CI / test (3) (push) Waiting to run
CI / typecheck (push) Waiting to run
Nix Build / Check flake.nix workspace sync (push) Waiting to run
Nix Build / nix build .#kimi-code (push) Blocked by required conditions
Release / Native release artifact (push) Blocked by required conditions
Release / Release (push) Waiting to run
Release / Deploy docs (push) Blocked by required conditions
Release / Publish native release assets (push) Blocked by required conditions
* refactor(agent-core-v2): decouple kosong from config persistence
- keep the kosong provider/model registries in memory and sync them with
config.toml through a new app/kosongConfig two-way bridge: hydrate on
startup, push config section changes into the registries, and persist
runtime mutations (discovery refresh, OAuth provisioning, default-model
pointer changes) back to disk
- declare the providers/models/thinking section constants, zod schemas,
env bindings, and TOML transforms in a single app/kosongConfig
configSection.ts; kosong keeps hand-written types only
- pin every schema to its kosong type at compile time via
AssertExact<Equal<...>> (_base/utils/typeEquality)
- register a transitional auth>kosongConfig exception in the domain-layer
checker for the OAuth provisioning flows
* chore(agent-core-v2): drop unused IConfigService import from authLegacy
* fix(agent-core-v2): reconcile registry with env-pinned default pointers
A registry-originated default-model/provider write lands only in the
config user layer when an effective overlay pins the section
(KIMI_MODEL_NAME pins defaultModel to the reserved env model): the
effective value does not move and no change event fires, so the registry
diverged from the effective config view — catalog/auth reads reported the
user pick while profile resolution kept the pinned model. After
persisting, the bridge now re-asserts the effective value into the
registry, restoring the pre-refactor behavior where every default-pointer
write was arbitrated by the effective view.
* fix(agent-core-v2): await persistence before resolving kosong registry mutations
ProviderService/ModelService mutations resolved as soon as the in-memory
registry updated, while the kosongConfig bridge persisted the change on an
unawaited private chain — callers (klient kosong.*, set_default route,
OAuth provision, discovery refresh) could observe success before the write
reached config.toml, and a restart right after could lose it.
- fire registry change events through AsyncEmitter and await delivery in
set/delete/replaceAll/setDefaultX, so a mutation resolves only after
listeners' waitUntil work completes; loadAll keeps synchronous timing
- the bridge hooks its persists into waitUntil, hoists the equality guards
into the listeners so config-originated echoes stay fully synchronous,
and serializes persists on the chain as before
- retry a failed persist with bounded backoff (3 attempts); failures are
logged, never rejected to callers, and the in-memory change stands
- default-pointer change events now carry an { id } payload (fireAsync
requires object events)
- add the klient kosong-config stress example covering read-after-write,
concurrent bursts, and restart durability
55 lines
1.9 KiB
JSON
55 lines
1.9 KiB
JSON
{
|
|
"name": "@moonshot-ai/klient",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "Kimi client SDK — contract-driven facade over agent-core-v2, routable over ipc or in-memory transports.",
|
|
"license": "MIT",
|
|
"type": "module",
|
|
"imports": {
|
|
"#/*": "./src/*.ts"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/index.ts",
|
|
"default": "./src/index.ts"
|
|
},
|
|
"./ipc": {
|
|
"types": "./src/transports/ipc/index.ts",
|
|
"default": "./src/transports/ipc/index.ts"
|
|
},
|
|
"./memory": {
|
|
"types": "./src/transports/memory/index.ts",
|
|
"default": "./src/transports/memory/index.ts"
|
|
},
|
|
"./package.json": {
|
|
"types": "./package.json",
|
|
"default": "./package.json"
|
|
},
|
|
"./*": {
|
|
"types": "./src/*.ts",
|
|
"default": "./src/*.ts"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsdown",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit && pnpm typecheck:examples",
|
|
"typecheck:examples": "tsc -p tsconfig.examples.json --noEmit",
|
|
"test": "vitest run",
|
|
"smoke": "tsx --tsconfig ./tsconfig.examples.json --import ../../build/register-raw-text-loader.mjs examples/smoke.ts",
|
|
"smoke:boundary": "tsx --tsconfig ./tsconfig.examples.json --import ../../build/register-raw-text-loader.mjs examples/model-requester-boundary.ts",
|
|
"smoke:select-tools": "tsx --tsconfig ./tsconfig.examples.json --import ../../build/register-raw-text-loader.mjs examples/kimi-select-tools.ts",
|
|
"stress:kosong-config": "tsx --tsconfig ./tsconfig.examples.json --import ../../build/register-raw-text-loader.mjs examples/kosong-config-stress.ts",
|
|
"clean": "rm -rf dist",
|
|
"docker:e2e": "bash scripts/run-docker-e2e.sh"
|
|
},
|
|
"dependencies": {
|
|
"@moonshot-ai/agent-core-v2": "workspace:^",
|
|
"zod": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@moonshot-ai/protocol": "workspace:^",
|
|
"@types/ws": "^8.18.0",
|
|
"ulid": "^3.0.1",
|
|
"ws": "^8.18.0"
|
|
}
|
|
}
|