import type { TryHandleAssistantLivingChatRuntimeInput } from "./assistantLivingChatHandlerRuntimeAdapter"; import type { RunAssistantLivingChatLlmRuntimeInput } from "./assistantLivingChatLlmRuntimeAdapter"; export interface BuildAssistantLivingChatLlmRuntimeInputInput { userMessage: RunAssistantLivingChatLlmRuntimeInput["userMessage"]; sessionItems: RunAssistantLivingChatLlmRuntimeInput["sessionItems"]; payload: RunAssistantLivingChatLlmRuntimeInput["payload"]; chatClient: RunAssistantLivingChatLlmRuntimeInput["chatClient"]; loadAssistantCanonExcerpt: RunAssistantLivingChatLlmRuntimeInput["loadAssistantCanonExcerpt"]; sanitizeOutgoingAssistantText: RunAssistantLivingChatLlmRuntimeInput["sanitizeOutgoingAssistantText"]; defaultModel: RunAssistantLivingChatLlmRuntimeInput["defaultModel"]; defaultBaseUrl: RunAssistantLivingChatLlmRuntimeInput["defaultBaseUrl"]; defaultApiKey?: RunAssistantLivingChatLlmRuntimeInput["defaultApiKey"]; } export function buildAssistantLivingChatLlmRuntimeInput( input: BuildAssistantLivingChatLlmRuntimeInputInput ): RunAssistantLivingChatLlmRuntimeInput { return { userMessage: input.userMessage, sessionItems: input.sessionItems, payload: input.payload, chatClient: input.chatClient, loadAssistantCanonExcerpt: input.loadAssistantCanonExcerpt, sanitizeOutgoingAssistantText: input.sanitizeOutgoingAssistantText, defaultModel: input.defaultModel, defaultBaseUrl: input.defaultBaseUrl, defaultApiKey: input.defaultApiKey }; } export interface BuildAssistantLivingChatHandlerRuntimeInputInput extends Omit, "executeLlmChat"> { executeLlmChat: TryHandleAssistantLivingChatRuntimeInput["executeLlmChat"]; } export function buildAssistantLivingChatHandlerRuntimeInput( input: BuildAssistantLivingChatHandlerRuntimeInputInput ): TryHandleAssistantLivingChatRuntimeInput { return { sessionId: input.sessionId, userMessage: input.userMessage, sessionItems: input.sessionItems, modeDecision: input.modeDecision, sessionScope: input.sessionScope, addressRuntimeMeta: input.addressRuntimeMeta, traceIdFactory: input.traceIdFactory, toNonEmptyString: input.toNonEmptyString, mergeKnownOrganizations: input.mergeKnownOrganizations, hasAssistantDataScopeMetaQuestionSignal: input.hasAssistantDataScopeMetaQuestionSignal, shouldHandleAsAssistantCapabilityMetaQuery: input.shouldHandleAsAssistantCapabilityMetaQuery, hasDestructiveDataActionSignal: input.hasDestructiveDataActionSignal, hasDangerOrCoercionSignal: input.hasDangerOrCoercionSignal, hasOperationalAdminActionRequestSignal: input.hasOperationalAdminActionRequestSignal, hasOrganizationFactLookupSignal: input.hasOrganizationFactLookupSignal, hasOrganizationFactFollowupSignal: input.hasOrganizationFactFollowupSignal, shouldEmitOrganizationSelectionReply: input.shouldEmitOrganizationSelectionReply, hasAssistantCapabilityQuestionSignal: input.hasAssistantCapabilityQuestionSignal, resolveDataScopeProbe: input.resolveDataScopeProbe, executeLlmChat: input.executeLlmChat, applyScriptGuard: input.applyScriptGuard, applyGroundingGuard: input.applyGroundingGuard, buildAssistantSafetyRefusalReply: input.buildAssistantSafetyRefusalReply, buildAssistantDataScopeContractReply: input.buildAssistantDataScopeContractReply, buildAssistantOrganizationFactBoundaryReply: input.buildAssistantOrganizationFactBoundaryReply, buildAssistantDataScopeSelectionReply: input.buildAssistantDataScopeSelectionReply, buildAssistantOperationalBoundaryReply: input.buildAssistantOperationalBoundaryReply, buildAssistantCapabilityContractReply: input.buildAssistantCapabilityContractReply, appendItem: input.appendItem, getSession: input.getSession, persistSession: input.persistSession, cloneConversation: input.cloneConversation, logEvent: input.logEvent, messageIdFactory: input.messageIdFactory, nowIso: input.nowIso, runLivingChatRuntime: input.runLivingChatRuntime, finalizeLivingChatTurn: input.finalizeLivingChatTurn }; }