import { defineWrappedResponseHandler } from "#server/utils/handler"; import { R } from "#server/utils/response"; import { resolveAgentIdentity } from "#server/service/agent/identity"; import { createSession } from "#server/service/agent/session"; import { generateTempToken, setTempTokenCookie, getTempTokenTtlMs } from "#server/service/agent/temp-token"; import { getConfigGlobal } from "#server/utils/context"; export default defineWrappedResponseHandler(async (event) => { const identity = await resolveAgentIdentity(event); let tempToken: string | null = null; let expiresAt: Date | null = null; if (!identity.userId && !identity.tempToken) { tempToken = generateTempToken(); expiresAt = new Date(Date.now() + getTempTokenTtlMs()); setTempTokenCookie(event, tempToken); } else if (!identity.userId && identity.tempToken) { tempToken = identity.tempToken; expiresAt = new Date(Date.now() + getTempTokenTtlMs()); } const defaultModelId = await getConfigGlobal("agentDefaultModelId"); const session = await createSession({ userId: identity.userId, tempToken, modelId: defaultModelId || null, expiresAt, }); return R.success(session); });