MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / createIdleShutdownHandler

Function createIdleShutdownHandler

apps/kimi-code/src/cli/sub/server/run.ts:379–407  ·  view source on GitHub ↗
(opts: { graceMs: number; onIdle: () => void })

Source from the content-addressed store, hash-verified

377 * timer (so a freshly-spawned daemon is not killed before anyone connects).
378 */
379export function createIdleShutdownHandler(opts: { graceMs: number; onIdle: () => void }): {
380 onConnectionCountChange(size: number): void;
381 cancel(): void;
382} {
383 let timer: NodeJS.Timeout | undefined;
384 let seenClient = false;
385
386 const cancel = (): void => {
387 if (timer !== undefined) {
388 clearTimeout(timer);
389 timer = undefined;
390 }
391 };
392
393 return {
394 onConnectionCountChange(size: number): void {
395 if (size > 0) {
396 seenClient = true;
397 cancel();
398 return;
399 }
400 if (seenClient) {
401 cancel();
402 timer = setTimeout(opts.onIdle, opts.graceMs);
403 }
404 },
405 cancel,
406 };
407}
408
409function serverWebAssetsDir(): string {
410 return resolveServerWebAssetsDir();

Callers 2

server.test.tsFile · 0.85
runServerInProcessFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected