diff --git a/src/server-agent.ts b/src/agents/server-agent.ts similarity index 99% rename from src/server-agent.ts rename to src/agents/server-agent.ts index 4689d4c..a1cbaa8 100644 --- a/src/server-agent.ts +++ b/src/agents/server-agent.ts @@ -9,11 +9,11 @@ * - Brave Search / Context7 도구로 최신 트렌드 반영 */ -import type { Env, ServerSession, BandwidthInfo, RecommendResponse } from './types'; -import { createLogger } from './utils/logger'; -import { executeSearchWeb, executeLookupDocs } from './tools/search-tool'; -import { formatTrafficInfo } from './utils/formatters'; -import { SERVER_CONSULTATION_STATUS, LANGUAGE_CODE } from './constants'; +import type { Env, ServerSession, BandwidthInfo, RecommendResponse } from '../types'; +import { createLogger } from '../utils/logger'; +import { executeSearchWeb, executeLookupDocs } from '../tools/search-tool'; +import { formatTrafficInfo } from '../utils/formatters'; +import { SERVER_CONSULTATION_STATUS, LANGUAGE_CODE } from '../constants'; const logger = createLogger('server-agent'); @@ -362,7 +362,7 @@ async function callServerExpertAI( throw new Error('OPENAI_API_KEY not configured'); } - const { getOpenAIUrl } = await import('./utils/api-urls'); + const { getOpenAIUrl } = await import('../utils/api-urls'); // Build conversation history const conversationHistory = session.messages.map(m => ({ @@ -819,7 +819,7 @@ export async function processServerConsultation( // 1. Call recommendation API (추천 먼저 받기) logger.info('추천 API 호출', { collectedInfo: session.collectedInfo }); - const { executeServerAction, getRecommendationData } = await import('./tools/server-tool'); + const { executeServerAction, getRecommendationData } = await import('../tools/server-tool'); // 전체 메시지 내용 (tech stack 추출 및 리전 추출에 재사용) const allMessages = session.messages.map(m => m.content).join(' '); diff --git a/src/openai-service.ts b/src/openai-service.ts index cc9a5e8..50e4ba8 100644 --- a/src/openai-service.ts +++ b/src/openai-service.ts @@ -6,7 +6,7 @@ import { createLogger } from './utils/logger'; import { metrics } from './utils/metrics'; import { getOpenAIUrl } from './utils/api-urls'; import { ERROR_MESSAGES } from './constants/messages'; -import { getServerSession, processServerConsultation } from './server-agent'; +import { getServerSession, processServerConsultation } from './agents/server-agent'; import { getTroubleshootSession, processTroubleshoot } from './troubleshoot-agent'; import { sendMessage } from './telegram'; diff --git a/src/routes/api/chat.ts b/src/routes/api/chat.ts index e70d5f7..63bf240 100644 --- a/src/routes/api/chat.ts +++ b/src/routes/api/chat.ts @@ -331,7 +331,7 @@ async function handleChatApi(request: Request, env: Env): Promise { const orderData = JSON.parse(orderSessionData); // 1. 서버 세션에서 가격 정보 가져오기 - const { getServerSession, deleteServerSession } = await import('../../server-agent'); + const { getServerSession, deleteServerSession } = await import('../../agents/server-agent'); const session = await getServerSession(env.DB, telegramUserId); if (!session || !session.lastRecommendation) { diff --git a/src/routes/handlers/message-handler.ts b/src/routes/handlers/message-handler.ts index 2d10280..5da1d74 100644 --- a/src/routes/handlers/message-handler.ts +++ b/src/routes/handlers/message-handler.ts @@ -121,7 +121,7 @@ export async function handleMessage( const orderData = JSON.parse(orderSessionData); // 1. 서버 세션에서 가격 정보 가져오기 - const { getServerSession, deleteServerSession } = await import('../../server-agent'); + const { getServerSession, deleteServerSession } = await import('../../agents/server-agent'); const session = await getServerSession(env.DB, telegramUserId); if (!session || !session.lastRecommendation) { diff --git a/src/tools/server-tool.ts b/src/tools/server-tool.ts index 229cb81..e894698 100644 --- a/src/tools/server-tool.ts +++ b/src/tools/server-tool.ts @@ -664,7 +664,7 @@ export async function executeServerAction( switch (action) { case 'start_consultation': { // Import session functions - const { saveServerSession } = await import('../server-agent'); + const { saveServerSession } = await import('../agents/server-agent'); if (!telegramUserId) { return '🚫 사용자 인증이 필요합니다.'; @@ -691,7 +691,7 @@ export async function executeServerAction( } case 'continue_consultation': { - const { getServerSession, processServerConsultation } = await import('../server-agent'); + const { getServerSession, processServerConsultation } = await import('../agents/server-agent'); if (!telegramUserId) { return '🚫 사용자 인증이 필요합니다.'; @@ -715,7 +715,7 @@ export async function executeServerAction( } case 'cancel_consultation': { - const { deleteServerSession } = await import('../server-agent'); + const { deleteServerSession } = await import('../agents/server-agent'); if (!telegramUserId) { return '🚫 사용자 인증이 필요합니다.'; @@ -771,7 +771,7 @@ export async function executeServerAction( // 세션에 추천 결과 저장 (선택 기능 활성화) if (telegramUserId && env?.DB && recommendationData.recommendations && recommendationData.recommendations.length > 0) { try { - const { getServerSession, saveServerSession } = await import('../server-agent'); + const { getServerSession, saveServerSession } = await import('../agents/server-agent'); // 기존 세션 조회 또는 새로 생성 let session = await getServerSession(env.DB, telegramUserId);