mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-25 17:54:34 +08:00
Resolve private ranking display names, apply privacy preprocessing consistently across cached recaps and structural labels, and bound model-visible overview payloads to the configured tool budget.
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import type {
|
|
AgentTool,
|
|
CrossChatAnalysisService,
|
|
PreprocessConfig,
|
|
SessionRuntimeAdapter,
|
|
} from '@openchatlab/node-runtime'
|
|
import {
|
|
countTokens,
|
|
preprocessCrossChatLabel,
|
|
preprocessCrossChatMessages,
|
|
preprocessCrossChatSummaries,
|
|
} from '@openchatlab/node-runtime'
|
|
import { createCrossChatAgentToolAdapters, type CrossChatToolExecutionContext } from '@openchatlab/tools'
|
|
|
|
export function createCliCrossChatTools(options: {
|
|
analysisService: CrossChatAnalysisService
|
|
sessionAdapter: SessionRuntimeAdapter
|
|
locale?: string
|
|
preprocessConfig?: Record<string, unknown>
|
|
maxToolResultTokens: number
|
|
}): AgentTool<any, any>[] {
|
|
const context: Omit<CrossChatToolExecutionContext, 'abortSignal' | 'reportProgress'> = {
|
|
locale: options.locale,
|
|
analysisService: options.analysisService,
|
|
maxToolResultTokens: options.maxToolResultTokens,
|
|
countTokens,
|
|
preprocessMessagesBySession: (sessionId, messages) =>
|
|
preprocessCrossChatMessages(
|
|
options.sessionAdapter,
|
|
sessionId,
|
|
messages,
|
|
options.preprocessConfig as PreprocessConfig | undefined
|
|
),
|
|
preprocessSummariesBySession: (sessionId, summaries) =>
|
|
preprocessCrossChatSummaries(
|
|
options.sessionAdapter,
|
|
sessionId,
|
|
summaries,
|
|
options.preprocessConfig as PreprocessConfig | undefined
|
|
),
|
|
preprocessModelLabel: (value, pseudonym) =>
|
|
preprocessCrossChatLabel(value, pseudonym, options.preprocessConfig as PreprocessConfig | undefined),
|
|
}
|
|
|
|
return createCrossChatAgentToolAdapters(context) as AgentTool<any, any>[]
|
|
}
|