MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / createCliRunAgentStream

Function createCliRunAgentStream

apps/cli/src/ai/agent-stream-runner.ts:65–227  ·  view source on GitHub ↗
(
  dbManager: DatabaseManager,
  aiChatManager: AIChatManager,
  semanticIndexService?: SemanticIndexRuntime
)

Source from the content-addressed store, hash-verified

63}
64
65export function createCliRunAgentStream(
66 dbManager: DatabaseManager,
67 aiChatManager: AIChatManager,
68 semanticIndexService?: SemanticIndexRuntime
69): (params: AgentStreamRequest, onEvent: (chunk: AgentStreamChunk) => void, abortSignal: AbortSignal) => Promise<void> {
70 return async (params, onEvent, abortSignal) => {
71 const {
72 userMessage,
73 aiChatId,
74 historyLeafMessageId,
75 sessionId,
76 chatType,
77 locale,
78 assistantId,
79 skillId,
80 enableAutoSkill,
81 chartAutoMode,
82 compressionConfig,
83 ownerInfo,
84 mentionedMembers,
85 thinkingLevel,
86 } = params
87
88 const aiDataDir = getAiDir(dbManager)
89
90 let assistantSystemPrompt: string | undefined
91 let assistantAllowedTools: string[] | undefined
92 if (assistantId) {
93 const assistantConfig = loadAssistantConfig(aiDataDir, assistantId)
94 if (assistantConfig?.systemPrompt) {
95 assistantSystemPrompt = assistantConfig.systemPrompt
96 }
97 assistantAllowedTools = assistantConfig?.allowedBuiltinTools
98 }
99
100 const llmConfig = getDefaultAssistantConfig(aiDataDir)
101 const maxToolResultPercent = compressionConfig?.maxToolResultPercent ?? 50
102 const contextWindow = llmConfig ? (buildPiModel(llmConfig).contextWindow ?? 128000) : 128000
103 const maxToolResultTokens = Math.floor(contextWindow * (maxToolResultPercent / 100))
104
105 const db = (dbManager as any).open?.(sessionId)
106 const resolvedChartAutoMode: ChartAutoMode = chartAutoMode ?? 'suggest'
107 const chartRuntime = resolveChartRuntimeForRequest({
108 skillId,
109 userMessage,
110 locale,
111 assistantAllowedTools,
112 enableAutoDetection: enableAutoSkill === true,
113 chartAutoMode: resolvedChartAutoMode,
114 })
115 const isChartCapability = chartRuntime.isChartCapability
116 const autoSkillAllowedTools =
117 !skillId && enableAutoSkill && resolvedChartAutoMode !== 'explicit'
118 ? getAllowedBuiltinToolsForChartAutoSkill(assistantAllowedTools)
119 : assistantAllowedTools
120 const allowedToolSet = getAllowedToolSet(
121 isChartCapability,
122 isChartCapability ? chartRuntime.allowedBuiltinTools : autoSkillAllowedTools

Callers 1

startHttpServerFunction · 0.90

Calls 15

initMethod · 0.95
getSkillConfigMethod · 0.95
getSkillMenuMethod · 0.95
loadAssistantConfigFunction · 0.90
buildPiModelFunction · 0.90
adaptToolsForAgentFunction · 0.90
getChartCapabilitySkillFunction · 0.90

Tested by

no test coverage detected