kimi-code / apps /kimi-inspect /README.md
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
6a2bc3b verified
|
Raw History Blame Contribute Delete
2.99 kB
# kimi-inspect
Web inspector for the kap-server `/api/v1/debug` RPC surface β€” a read/trigger
window into a running Kimi Code engine (workspaces, sessions, agents, and the
scoped DI registry).
## Run
1. Start a kap-server with the debug surface mounted (repo dev scripts do this
for you): `pnpm dev:v1` / `pnpm dev:v2` from the repo root pass
`--debug-endpoints` on a loopback bind; the surface inherits the global
bearer auth.
2. `pnpm --filter @moonshot-ai/kimi-inspect dev` β€” the Vite dev server proxies
`/api` to the server (`KIMI_SERVER_URL`, default `http://127.0.0.1:58627`)
and auto-discovers running instances
(`~/.kimi-code/server/instances`); switch servers from the header dropdown.
A connection failure shows a blocking "Debug surface unavailable" screen β€”
there is no fallback data source.
## Views (left icon rail)
- **Chat workspace** β€” session list (activity badges from the global-events WS)
plus a transcript-driven per-session chat; the right dock hosts the
Agent-scope Service panels, a plan lookup card, and the transcript audit
panel. The Session scope has its own column (pending interactions + session
Service panels, and a State tab).
- **Search** β€” cross-session full-text search over `POST /api/v1/search`
(cursor-paged; exact-match maps to the API's `literal` mode; a `live`/`index`
badge shows which server route served the results).
- **Model Catalog** β€” every provider with its models and the default marker,
with per-model ping and session creation actions.
- **App / Workspace Services** β€” the full Service reflection over the App
scope, and over each Workspace scope (picked via the directory browser;
workspace handlers materialize on demand).
- **DI** β€” the engine's Service Γ— Effect Γ— DI debug surface, four panels fed
by the App-scope debug Services (`IDebugLedgerService` / `IDebugGraphService`
/ `IDebugCascadeService`) and refreshed eagerly off the `event.di.unit_changed`
WS frame:
- **Unit tree** β€” scope β†’ unit β†’ ledger entries (label, five-state
`Pending / Activating / Active / Unloading / Failed`, uid, `pinned` flag,
unit error object), with **unprovide / update / dispose** triggers.
- **Graph** β€” the dependency DAG (instance edges across scopes + collection
edges).
- **Cascade** β€” the cascade transaction history ring (changes, contagion set,
torn-down / rebuilt / failed, abort wait, duration).
- **Pending** β€” the waiting area: units parked on unsatisfied dependencies
with their missing-token sets.
## Notes for maintainers
- The channel layer (`src/channel/`) is a VS Code-style `ProxyChannel`:
`GET /api/v1/debug/channels` enumerates every scoped Service β€” there is no
whitelist; new Services appear automatically.
- There is no Service-event push channel besides the global events listed
above; panels fetch/refresh on demand (react-query, 15 s poll) plus the
`event.di.unit_changed` invalidation for the DI view.