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

Function runPromptTurn

apps/kimi-code/src/cli/run-prompt.ts:424–559  ·  view source on GitHub ↗
(
  session: Session,
  prompt: string,
  outputFormat: PromptOutputFormat,
  stdout: PromptOutput,
  stderr: PromptOutput,
)

Source from the content-addressed store, hash-verified

422}
423
424function runPromptTurn(
425 session: Session,
426 prompt: string,
427 outputFormat: PromptOutputFormat,
428 stdout: PromptOutput,
429 stderr: PromptOutput,
430): Promise<void> {
431 let activeTurnId: number | undefined;
432 let activeAgentId: string | undefined;
433 const outputWriter =
434 outputFormat === 'stream-json'
435 ? new PromptJsonWriter(stdout)
436 : new PromptTranscriptWriter(stdout, stderr);
437 let settled = false;
438 let unsubscribe: (() => void) | undefined;
439
440 return new Promise<void>((resolve, reject) => {
441 const finish = (error?: Error): void => {
442 if (settled) return;
443 settled = true;
444 unsubscribe?.();
445 outputWriter.finish();
446 if (error !== undefined) {
447 reject(error);
448 return;
449 }
450 resolve();
451 };
452
453 unsubscribe = session.onEvent((event) => {
454 if (event.type === 'error') {
455 if (event.agentId !== PROMPT_MAIN_AGENT_ID) {
456 return;
457 }
458 finish(new Error(`${event.code}: ${event.message}`));
459 return;
460 }
461 if (event.type === 'turn.started' && activeTurnId === undefined) {
462 if (event.agentId !== PROMPT_MAIN_AGENT_ID) {
463 return;
464 }
465 activeTurnId = event.turnId;
466 activeAgentId = event.agentId;
467 return;
468 }
469 if (
470 activeTurnId === undefined ||
471 activeAgentId === undefined ||
472 !hasTurnId(event) ||
473 event.turnId !== activeTurnId ||
474 event.agentId !== activeAgentId
475 ) {
476 return;
477 }
478 switch (event.type) {
479 case 'turn.step.started':
480 case 'turn.step.interrupted':
481 outputWriter.flushAssistant();

Callers 2

runPromptFunction · 0.85
runHeadlessGoalFunction · 0.85

Calls 15

formatTurnEndedFailureFunction · 0.85
finishFunction · 0.70
hasTurnIdFunction · 0.70
onEventMethod · 0.65
flushAssistantMethod · 0.65
discardAssistantMethod · 0.65
writeAssistantDeltaMethod · 0.65
writeHookResultMethod · 0.65
writeThinkingDeltaMethod · 0.65
writeToolCallMethod · 0.65
writeToolCallDeltaMethod · 0.65
writeToolResultMethod · 0.65

Tested by

no test coverage detected