import type { RunAssistantLivingChatAttemptRuntimeInput } from "./assistantLivingChatAttemptRuntimeAdapter"; interface AssistantLivingChatAttemptSessionScope { knownOrganizations: string[]; selectedOrganization: string | null; activeOrganization: string | null; } export interface BuildAssistantLivingChatAttemptRuntimeInputInput { sessionId: string; userMessage: string; sessionItems: RunAssistantLivingChatAttemptRuntimeInput["sessionItems"]; modeDecision: RunAssistantLivingChatAttemptRuntimeInput["modeDecision"]; sessionScope: AssistantLivingChatAttemptSessionScope; addressRuntimeMeta?: Record | null; toNonEmptyString: RunAssistantLivingChatAttemptRuntimeInput["toNonEmptyString"]; mergeKnownOrganizations: RunAssistantLivingChatAttemptRuntimeInput["mergeKnownOrganizations"]; hasAssistantDataScopeMetaQuestionSignal: RunAssistantLivingChatAttemptRuntimeInput["hasAssistantDataScopeMetaQuestionSignal"]; shouldHandleAsAssistantCapabilityMetaQuery: RunAssistantLivingChatAttemptRuntimeInput["shouldHandleAsAssistantCapabilityMetaQuery"]; hasDestructiveDataActionSignal: RunAssistantLivingChatAttemptRuntimeInput["hasDestructiveDataActionSignal"]; hasDangerOrCoercionSignal: RunAssistantLivingChatAttemptRuntimeInput["hasDangerOrCoercionSignal"]; hasOperationalAdminActionRequestSignal: RunAssistantLivingChatAttemptRuntimeInput["hasOperationalAdminActionRequestSignal"]; hasOrganizationFactLookupSignal: RunAssistantLivingChatAttemptRuntimeInput["hasOrganizationFactLookupSignal"]; hasOrganizationFactFollowupSignal: RunAssistantLivingChatAttemptRuntimeInput["hasOrganizationFactFollowupSignal"]; hasLivingChatSignal: RunAssistantLivingChatAttemptRuntimeInput["hasLivingChatSignal"]; shouldEmitOrganizationSelectionReply: RunAssistantLivingChatAttemptRuntimeInput["shouldEmitOrganizationSelectionReply"]; hasAssistantCapabilityQuestionSignal: RunAssistantLivingChatAttemptRuntimeInput["hasAssistantCapabilityQuestionSignal"]; resolveDataScopeProbe: RunAssistantLivingChatAttemptRuntimeInput["resolveDataScopeProbe"]; applyScriptGuard: RunAssistantLivingChatAttemptRuntimeInput["applyScriptGuard"]; applyGroundingGuard: RunAssistantLivingChatAttemptRuntimeInput["applyGroundingGuard"]; buildAssistantSafetyRefusalReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantSafetyRefusalReply"]; buildAssistantDataScopeContractReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantDataScopeContractReply"]; buildAssistantProactiveOrganizationOfferReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantProactiveOrganizationOfferReply"]; buildAssistantOrganizationFactBoundaryReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantOrganizationFactBoundaryReply"]; buildAssistantDataScopeSelectionReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantDataScopeSelectionReply"]; buildAssistantOperationalBoundaryReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantOperationalBoundaryReply"]; buildAssistantCapabilityContractReply: RunAssistantLivingChatAttemptRuntimeInput["buildAssistantCapabilityContractReply"]; appendItem: RunAssistantLivingChatAttemptRuntimeInput["appendItem"]; getSession: RunAssistantLivingChatAttemptRuntimeInput["getSession"]; persistSession: RunAssistantLivingChatAttemptRuntimeInput["persistSession"]; cloneConversation: RunAssistantLivingChatAttemptRuntimeInput["cloneConversation"]; logEvent: RunAssistantLivingChatAttemptRuntimeInput["logEvent"]; messageIdFactory: NonNullable["messageIdFactory"]>; nowIso: RunAssistantLivingChatAttemptRuntimeInput["nowIso"]; payload: RunAssistantLivingChatAttemptRuntimeInput["payload"]; chatClient: RunAssistantLivingChatAttemptRuntimeInput["chatClient"]; loadAssistantCanonExcerpt: RunAssistantLivingChatAttemptRuntimeInput["loadAssistantCanonExcerpt"]; sanitizeOutgoingAssistantText: RunAssistantLivingChatAttemptRuntimeInput["sanitizeOutgoingAssistantText"]; defaultModel: RunAssistantLivingChatAttemptRuntimeInput["defaultModel"]; defaultBaseUrl: RunAssistantLivingChatAttemptRuntimeInput["defaultBaseUrl"]; defaultApiKey?: RunAssistantLivingChatAttemptRuntimeInput["defaultApiKey"]; } export function buildAssistantLivingChatAttemptRuntimeInput( input: BuildAssistantLivingChatAttemptRuntimeInputInput ): RunAssistantLivingChatAttemptRuntimeInput { return { sessionId: input.sessionId, userMessage: input.userMessage, sessionItems: input.sessionItems, modeDecision: input.modeDecision, sessionScope: { knownOrganizations: input.sessionScope.knownOrganizations, selectedOrganization: input.sessionScope.selectedOrganization, activeOrganization: input.sessionScope.activeOrganization }, addressRuntimeMeta: input.addressRuntimeMeta ?? null, traceIdFactory: () => `chat-${input.messageIdFactory().replace(/^msg-/, "")}`, 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, hasLivingChatSignal: input.hasLivingChatSignal, shouldEmitOrganizationSelectionReply: input.shouldEmitOrganizationSelectionReply, hasAssistantCapabilityQuestionSignal: input.hasAssistantCapabilityQuestionSignal, resolveDataScopeProbe: input.resolveDataScopeProbe, applyScriptGuard: input.applyScriptGuard, applyGroundingGuard: input.applyGroundingGuard, buildAssistantSafetyRefusalReply: input.buildAssistantSafetyRefusalReply, buildAssistantDataScopeContractReply: input.buildAssistantDataScopeContractReply, buildAssistantProactiveOrganizationOfferReply: input.buildAssistantProactiveOrganizationOfferReply, 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, payload: input.payload, chatClient: input.chatClient, loadAssistantCanonExcerpt: input.loadAssistantCanonExcerpt, sanitizeOutgoingAssistantText: input.sanitizeOutgoingAssistantText, defaultModel: input.defaultModel, defaultBaseUrl: input.defaultBaseUrl, defaultApiKey: input.defaultApiKey }; }