MCPcopy Create free account
hub / github.com/Noumena-Network/code / runHeadlessStreaming

Function runHeadlessStreaming

src/cli/print.ts:986–4177  ·  view source on GitHub ↗
(
  structuredIO: StructuredIO,
  mcpClients: MCPServerConnection[],
  commands: Command[],
  tools: Tools,
  initialMessages: Message[],
  canUseTool: CanUseToolFn,
  sdkMcpConfigs: Record<string, McpSdkServerConfig>,
  getAppState: () => AppState,
  setAppState: (f: (prev: AppState) => AppState) => void,
  agents: AgentDefinition[],
  deferredCommandsPromise: Promise<Command[]> | undefined,
  deferredAgentsPromise: Promise<AgentDefinition[]> | undefined,
  options: {
    verbose: boolean | undefined
    jsonSchema: Record<string, unknown> | undefined
    toolChoice?: BetaToolChoiceTool | BetaToolChoiceAuto | undefined
    permissionPromptToolName: string | undefined
    allowedTools: string[] | undefined
    thinkingConfig: ThinkingConfig | undefined
    maxTurns: number | undefined
    maxBudgetUsd: number | undefined
    taskBudget: { total: number } | undefined
    systemPrompt: string | undefined
    appendSystemPrompt: string | undefined
    userSpecifiedModel: string | undefined
    fallbackModel: string | undefined
    replayUserMessages?: boolean | undefined
    includePartialMessages?: boolean | undefined
    enableAuthStatus?: boolean | undefined
    agent?: string | undefined
    setSDKStatus?: (status: SDKStatus) => void
    promptSuggestions?: boolean | undefined
    workload?: string | undefined
  },
  turnInterruptionState?: TurnInterruptionState,
)

Source from the content-addressed store, hash-verified

984}
985
986function runHeadlessStreaming(
987 structuredIO: StructuredIO,
988 mcpClients: MCPServerConnection[],
989 commands: Command[],
990 tools: Tools,
991 initialMessages: Message[],
992 canUseTool: CanUseToolFn,
993 sdkMcpConfigs: Record<string, McpSdkServerConfig>,
994 getAppState: () => AppState,
995 setAppState: (f: (prev: AppState) => AppState) => void,
996 agents: AgentDefinition[],
997 deferredCommandsPromise: Promise<Command[]> | undefined,
998 deferredAgentsPromise: Promise<AgentDefinition[]> | undefined,
999 options: {
1000 verbose: boolean | undefined
1001 jsonSchema: Record<string, unknown> | undefined
1002 toolChoice?: BetaToolChoiceTool | BetaToolChoiceAuto | undefined
1003 permissionPromptToolName: string | undefined
1004 allowedTools: string[] | undefined
1005 thinkingConfig: ThinkingConfig | undefined
1006 maxTurns: number | undefined
1007 maxBudgetUsd: number | undefined
1008 taskBudget: { total: number } | undefined
1009 systemPrompt: string | undefined
1010 appendSystemPrompt: string | undefined
1011 userSpecifiedModel: string | undefined
1012 fallbackModel: string | undefined
1013 replayUserMessages?: boolean | undefined
1014 includePartialMessages?: boolean | undefined
1015 enableAuthStatus?: boolean | undefined
1016 agent?: string | undefined
1017 setSDKStatus?: (status: SDKStatus) => void
1018 promptSuggestions?: boolean | undefined
1019 workload?: string | undefined
1020 },
1021 turnInterruptionState?: TurnInterruptionState,
1022): AsyncIterable<StdoutMessage> {
1023 let running = false
1024 let runPhase:
1025 | 'draining_commands'
1026 | 'waiting_for_agents'
1027 | 'finally_flush'
1028 | 'finally_post_flush'
1029 | undefined
1030 let inputClosed = false
1031 let shutdownPromptInjected = false
1032 let heldBackResult: StdoutMessage | null = null
1033 let abortController: AbortController | undefined
1034 // Same queue sendRequest() enqueues to — one FIFO for everything.
1035 const output = structuredIO.outbound
1036
1037 // Ctrl+C in -p mode: abort the in-flight query, then shut down gracefully.
1038 // gracefulShutdown persists session state and flushes analytics, with a
1039 // failsafe timer that force-exits if cleanup hangs.
1040 const sigintHandler = () => {
1041 logForDiagnosticsNoPII('info', 'shutdown_signal', { signal: 'SIGINT' })
1042 if (abortController && !abortController.signal.aborted) {
1043 abortController.abort()

Callers 1

runHeadlessFunction · 0.85

Calls 15

startOAuthFlowMethod · 0.95
cleanupMethod · 0.95
randomUUIDFunction · 0.90
isEnvTruthyFunction · 0.90
registerCleanupFunction · 0.85
getRunningTasksFunction · 0.85
isBackgroundTaskFunction · 0.85
logForDiagnosticsNoPIIFunction · 0.85
getSessionStateFunction · 0.85
getSessionIdFunction · 0.85

Tested by

no test coverage detected