mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-08-04 05:51:03 +00:00
* feat(kap-server): add the /api/v1/search global message search endpoint Cross-session full-text search over user messages, assistant text and session titles, backed by a minidb index under <home>/search-index with a single-writer lock election and read-only WAL catch-up for other processes. Hits carry transcript anchors (turn ordinal and step id) so clients can jump straight to the matching turn or step. * feat(kimi-inspect): add a search view with chat-timeline navigation The left rail gains a Search view over the global search endpoint, with role and sort filters and cursor pagination. Clicking a hit switches to the chat view and navigates to its session, agent, turn and step — the channel pages the turn into the loaded window, scrolls it into view and flashes the target briefly. * chore(kimi-code): start the dev server without built web assets The repo's dev server scripts (dev:server, dev:kap-server, dev:kap-server:multi, dev:server:restart) now set KIMI_CODE_DEV_SERVER=1. When it is set and dist-web/index.html is missing, kimi web starts the API server without the bundled web UI instead of failing at startup, so backend dev no longer requires a kimi-web build. * feat(kap-server): add literal substring search and a live session route - minidb: text indexes accept an injectable tokenizer/queryTokenizer, and a hashed 2/3-gram tokenizer (NFKC + lowercase, code-point windows) backs substring search; tokenizer names persist in db.textindexes.json with backward-compatible defaults - /api/v1/search gains mode: 'literal' — n-gram candidates confirmed against the original text (zero false positives), with an 'candidate_cap' incomplete flag when the candidate set truncates - container.session_id queries against a session live in this process scan the in-memory transcript store instead of the index (both modes); the response's source: live|index field names the serving route and rides in the page-token fingerprint - kimi-inspect: exact-match toggle and source badge in the search view, plus an in-chat session search bar with jump-to-hit navigation * test(kimi-inspect): avoid stringifying BodyInit in search api tests
43 lines
1.1 KiB
JSON
43 lines
1.1 KiB
JSON
{
|
||
"name": "@moonshot-ai/kap-server",
|
||
"version": "0.1.0",
|
||
"private": true,
|
||
"description": "Kimi Code server backed by the DI × Scope agent engine (agent-core-v2)",
|
||
"type": "module",
|
||
"exports": {
|
||
".": {
|
||
"types": "./src/index.ts",
|
||
"default": "./src/index.ts"
|
||
},
|
||
"./contract": {
|
||
"types": "./src/contract.ts",
|
||
"default": "./src/contract.ts"
|
||
}
|
||
},
|
||
"scripts": {
|
||
"build": "tsdown",
|
||
"typecheck": "tsc -p tsconfig.json --noEmit",
|
||
"test": "vitest run",
|
||
"clean": "rm -rf dist"
|
||
},
|
||
"dependencies": {
|
||
"@fastify/multipart": "^10.0.0",
|
||
"@fastify/swagger": "^9.7.0",
|
||
"@moonshot-ai/agent-core-v2": "workspace:^",
|
||
"@moonshot-ai/kimi-code-oauth": "workspace:^",
|
||
"@moonshot-ai/minidb": "workspace:*",
|
||
"@moonshot-ai/transcript": "workspace:^",
|
||
"bcryptjs": "^2.4.3",
|
||
"fastify": "^5.1.0",
|
||
"pino": "^9.5.0",
|
||
"smol-toml": "^1.6.1",
|
||
"ulid": "^3.0.1",
|
||
"ws": "^8.18.0",
|
||
"zod": "catalog:"
|
||
},
|
||
"devDependencies": {
|
||
"@types/bcryptjs": "^2.4.6",
|
||
"@types/ws": "^8.18.0",
|
||
"tsx": "^4.21.0"
|
||
}
|
||
}
|