You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TUI corpus target after pi (see pi tracker). Kimi Code CLI (MoonshotAI/kimi-code, @moonshot-ai/kimi-code@0.27.0), TypeScript — not to be confused with the Python kimi-cli.
Artifact & shape
Ships exactly the input shape we want: a single self-contained dist/main.mjs — 15MB, ESM, stock Node ≥22.19, bundled by tsdown/rolldown but not name-mangled (~35 chars/line, readable identifiers). Zero install-time assembly. (dist-web/ 20MB is static web assets served over HTTP — data files, not code to compile.)
Their release flow also builds a Node SEA binary (postject) from that same JS — independent proof the whole app runs single-file under stock node.
TUI is a vendored copy of pi's pi-tui — the renderer/input work from the pi target transfers directly.
The bundle contains an in-process fastify-based server ("kap-server" architecture). fastify/find-my-way + ajv + fast-json-stringify perform mandatory new Function codegen with no fallback (13 sites verified in the shipped bundle) → blocked on #6559. Staging that respects this:
Optional natives with try/catch fallbacks bundled in: canvas (via jimp), bufferutil (via ws), @mariozechner/clipboard — verify the fallback paths take under perry instead of crashing.
TUI corpus target after pi (see pi tracker). Kimi Code CLI (MoonshotAI/kimi-code,
@moonshot-ai/kimi-code@0.27.0), TypeScript — not to be confused with the Pythonkimi-cli.Artifact & shape
dist/main.mjs— 15MB, ESM, stock Node ≥22.19, bundled by tsdown/rolldown but not name-mangled (~35 chars/line, readable identifiers). Zero install-time assembly. (dist-web/20MB is static web assets served over HTTP — data files, not code to compile.)pi-tui— the renderer/input work from the pi target transfers directly.The wall that makes this target #2 rather than #1
The bundle contains an in-process fastify-based server ("kap-server" architecture). fastify/find-my-way + ajv + fast-json-stringify perform mandatory
new Functioncodegen with no fallback (13 sites verified in the shipped bundle) → blocked on #6559. Staging that respects this:kimi server run(and the v2 multi-server mode) as the second milestone — this is where runtime: dynamic code evaluation (new Function) for schema-codegen libs (ajv / fast-json-stringify / find-my-way) — blocks kimi-code #6559 is unavoidable.Other pre-analyzed surfaces
@jsquash/webpviaWebAssembly.compile/instantiate) in the media/attachment path — runtime: WebAssembly story for target apps (photon, webp, llhttp) — real support or per-module replacement policy #6558.node-pty:optionalDependency, loaded via dynamicimport("node-pty")inNodePtyTerminalBackend; terminal tool has a non-pty fallback, so degraded-but-working without it. Full fix: runtime: native pty exposed under the node-pty JS shape (kimi terminal backend, opencode #pty) #6563.canvas(via jimp),bufferutil(via ws),@mariozechner/clipboard— verify the fallback paths take under perry instead of crashing.new Function("")) — should already behave like the zod probe fix (fix(hir): report dynamic-codegen unavailable tonew Function("")probes by default #6031): throw cleanly, library falls back.Acceptance milestones: (1)
--version/--helpparity; (2) interactive TUI usable; (3)kimi server runboots and serves (needs #6559).