v4.3.6: gateway 루트에 남아있던 나머지 20개 파일도 서브디렉토리로 분류

- memory/ (3): fact-store, memory-manager, memory-vector
- hooks/ (2): hooks, hook-loader
- infra/ (4): boot, gpu-detector, ollama-process-manager, mcp-manager
- guards/ (6): link-validator, visual-error-detection, context-injection,
  prompt-gates, retry-strategy, verification-flow
- internal-agent-task.ts(실제 express 라우터), music-renderer.ts(routes-music.ts
  전용 백엔드)는 routes/로 편입
- server.ts/session.ts/skills-manager.ts는 5곳 안팎에서 두루 참조되는 핵심
  모듈이라 루트 유지, orchestrator.ts(export {}뿐인 죽은 레거시 껍데기)도
  분류 대상이 아니라 별도 이슈로 루트에 남김
- 이번에도 import 경로 자동 재계산 스크립트 사용, 41곳 수정 후 빌드/재시작/
  20개 엔드포인트 재검증 완료

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
kim
2026-07-25 17:10:44 +09:00
co-authored by Claude Sonnet 5
parent db7260ac46
commit 05976e3f05
27 changed files with 40 additions and 40 deletions
+15 -15
View File
@@ -23,7 +23,7 @@ import {
queryVectorsWithEmbedding,
USER_FACTS_COLLECTION,
DAILY_EXTRACTS_COLLECTION,
} from './memory-vector';
} from './memory/memory-vector';
import {
isGreetingLikeMessage,
isExecutionLikeRequest,
@@ -48,7 +48,7 @@ import {
isHighStakesFile,
requestedFullTemplate,
userRequestedImageEdit,
} from './prompt-gates';
} from './guards/prompt-gates';
import { registerArduinoRoutes } from './routes/routes-arduino';
import { registerAndroidRoutes, attachAndroidWsProxy } from './routes/routes-android';
import { registerBgTasksRoutes, loadTaskHeartbeatConfig } from './routes/routes-bg-tasks';
@@ -95,20 +95,20 @@ import { getVault, SecretValue } from '../security/vault';
import { getOllamaClient } from '../agents/ollama-client';
import { spawnAgent } from '../agents/spawner';
import { getSession, addMessage, getHistory, getHistoryForApiCall, getWorkspace, setWorkspace, clearHistory, setContextTokens, cleanupSessions, cleanupEmptySessions, migrateGlobalSessionsToUser, listAllSessions, resolveNumCtx } from './session';
import { hookBus } from './hooks';
import { loadWorkspaceHooks } from './hook-loader';
import { validateLinksInText, filterImageMarkdown } from './link-validator';
import { runBootMd } from './boot';
import { hookBus } from './hooks/hooks';
import { loadWorkspaceHooks } from './hooks/hook-loader';
import { validateLinksInText, filterImageMarkdown } from './guards/link-validator';
import { runBootMd } from './infra/boot';
import { TaskRunner, runTask, TaskTool, TaskState } from './tasks/task-runner';
import { setupErrorResponseEndpoint } from './errors/error-response-endpoint-integrated';
import { initCredentialHandler, getCredentialHandler } from '../security/credential-handler';
import { getVerificationFlowManager } from './verification-flow';
import { getVerificationFlowManager } from './guards/verification-flow';
import { getErrorAnalyzer } from './errors/error-analyzer';
import { getErrorHistory } from './errors/error-history';
import { getRetryStrategy } from './retry-strategy';
import { getVisualErrorDetector } from './visual-error-detection';
import { getRetryStrategy } from './guards/retry-strategy';
import { getVisualErrorDetector } from './guards/visual-error-detection';
import { getErrorAudit } from '../security/error-audit';
import { getContextInjectionManager } from './context-injection';
import { getContextInjectionManager } from './guards/context-injection';
import { SkillsManager } from './skills-manager';
import { writeSkillPackFromContent } from '../skills/processor.js';
import { summarizeSkillForApi } from '../tools/skills.js';
@@ -215,12 +215,12 @@ import {
saveFileOpCheckpoint,
clearFileOpCheckpoint,
} from '../orchestration/file-op-v2';
import { OllamaProcessManager } from './ollama-process-manager';
import { OllamaProcessManager } from './infra/ollama-process-manager';
import { transcribeAudio } from '../tools/stt.js';
import { synthesizeSpeech, isTTSAvailable } from '../tools/tts.js';
import { raceWithWatchdog, PreemptState } from './tasks/preempt-watchdog';
import { detectGpu, logGpuStatus } from './gpu-detector';
import { internalAgentTaskRouter } from './internal-agent-task';
import { detectGpu, logGpuStatus } from './infra/gpu-detector';
import { internalAgentTaskRouter } from './routes/internal-agent-task';
// ─── Server log ring buffer ────────────────────────────────────────────────────
@@ -10987,9 +10987,9 @@ app.post('/api/open-path', requireGatewayAuth, async (req, res) => {
import { getProvider, resetProvider, buildProviderForLLM, getModelForRole } from '../providers/factory';
import { buildWebhookRouter, resolveHookConfig } from './channels/webhook-handler';
import { getMCPManager } from './mcp-manager';
import { getMCPManager } from './infra/mcp-manager';
import { startOAuthFlow, isConnected, clearTokens, loadTokens, exchangeManualCodeFromPending } from '../auth/openai-oauth';
import { renderMusic, renderMidi, getRenderFile, getRenderPageFile, renderMidiAsync, saveMidiFile } from './music-renderer';
import { renderMusic, renderMidi, getRenderFile, getRenderPageFile, renderMidiAsync, saveMidiFile } from './routes/music-renderer';
function sanitizeLLMConfig(llm: any): any {
if (!llm || typeof llm !== 'object') return llm;