아키텍처

CLI-JAW는 15개 라우트 모듈에 걸쳐 141개의 API 엔드포인트를 갖춘 Node.js 서버입니다. 네 가지 인터페이스(CLI, Web, Telegram, Discord)가 중앙 서버에 연결되며, 서버는 에이전트, 오케스트레이션, 메모리, 브라우저 하위 시스템으로 요청을 분배합니다.

시스템 개요

네 가지 인터페이스 모두 server.ts를 거치며, 이 파일은 인증, 보안, WebSocket, 부트스트랩을 처리한 후 src/routes/의 라우트 모듈로 위임합니다.

CLI (bin/commands/*)  ──HTTP──→  server.ts (glue)
Web (public/)         ──HTTP+WS→      │
Telegram Bot          ──HTTP──→       │
Discord Bot           ──HTTP──→       │
                                      ↓
Dashboard (port 24576) ─scan/proxy→ src/manager/
                                      │
                        src/routes/* ──┤──→ src/core/
                                      ├──→ src/agent/
                                      ├──→ src/orchestrator/
                                      ├──→ src/prompt/
                                      ├──→ src/memory/
                                      ├──→ src/messaging/
                                      ├──→ src/telegram/
                                      ├──→ src/discord/
                                      └──→ src/browser/

네 가지 인터페이스

인터페이스진입점전송 방식
CLIbin/cli-jaw.ts + bin/commands/*.ts서버로의 HTTP
Web UIpublic/index.htmlHTTP + WebSocket
Telegramsrc/telegram/bot.tsGrammy 봇 폴링
Discordsrc/discord/bot.tsdiscord.js 게이트웨이

라우트 모듈

서버는 15개의 라우트 모듈을 등록합니다. 각 모듈은 Express 앱과 인증 미들웨어를 받는 독립적인 등록 함수입니다.

모듈라우트 수역할
server.ts (기본)14헬스체크, 세션, 메시지, 인증, 명령, 중지, 초기화
settings.ts18설정, 프롬프트, heartbeat-md, MCP, CLI 레지스트리, 쿼터
browser.ts41브라우저 기본 동작, 탭 관리, web-ai 자동화
memory.ts13메모리 런타임, KV 저장소, 메모리 파일
jaw-memory.ts11Jaw 메모리 검색, 읽기, 저장, 소울, 플러시, 리플렉션
orchestrate.ts11PABCD 상태, 워커, 디스패치, 큐 관리
goal.ts3지속적 목표 상태, 이력
goal-run.ts3범위 제한 목표 실행 생명주기
messaging.ts6업로드, 파일 열기, 음성, 채널 전송
employees.ts5직원 CRUD 및 초기화
skills.ts5스킬 목록, 활성화, 비활성화, 초기화
avatar.ts4에이전트/사용자 아바타 이미지 관리
traces.ts3공개 트레이스 요약 및 이벤트 조회
heartbeat.ts2하트비트 GET 및 검증된 PUT
i18n.ts2언어 목록 및 로케일 번들

파일 트리 개요

cli-jaw/
├── bin/                    # CLI entry + 23 command files
│   ├── cli-jaw.ts          # Root CLI router
│   └── commands/           # serve, init, doctor, chat, browser, ...
├── server.ts               # Express/WS bootstrap (882L)
├── src/
│   ├── core/               # 21 files — config, DB, bus, i18n, employees
│   ├── agent/              # 37 files — spawn, events, lifecycle, ACP
│   ├── orchestrator/       # 10 files — PABCD pipeline, state machine
│   ├── prompt/             # builder + templates
│   ├── memory/             # 13 files — runtime, indexing, flush, identity
│   ├── cli/                # registry, commands, handlers, ACP client
│   ├── messaging/          # shared Telegram/Discord runtime
│   ├── telegram/           # Telegram bot transport
│   ├── discord/            # Discord bot transport
│   ├── browser/            # CDP control + web-ai automation
│   ├── routes/             # 15 route registrars
│   ├── manager/            # Dashboard server (77 TS/TSX files)
│   ├── security/           # Path guards, input validation
│   └── shared/             # Tool-log sanitization
├── public/                 # Web UI (Vanilla TS + Vite 8)
│   ├── js/                 # 80 TypeScript modules
│   ├── css/                # 11 CSS files
│   ├── manager/            # React 19 dashboard app (286 files)
│   └── dist/               # Build output
├── native/                 # jaw-claude-i Rust helper
│   └── jaw-claude-i/       # 15 Rust source files
└── tests/                  # 447 test files

핵심 하위 시스템

하위 시스템위치역할
에이전트 런타임src/agent/CLI 프로세스 생성, NDJSON 이벤트 스트리밍, 세션 관리, 큐, 폴백, 재시도
오케스트레이터src/orchestrator/PABCD 상태 머신, 직원 디스패치, 워커 모니터링
메모리src/memory/3계층 메모리(구조화/에피소드/시맨틱), FTS5 인덱싱, 플러시, 리플렉션
프롬프트 빌더src/prompt/9단계 프롬프트 파이프라인: A1, A2, 메모리, 오케스트레이션, 하트비트, 스킬, 위임
브라우저src/browser/Chrome CDP 제어, 비전 클릭, 탭 생명주기, web-ai 자동화
메시징src/messaging/공유 Telegram/Discord 채널 라우팅, 대상 추적

보안 모델

데이터 저장소

CLI-JAW는 better-sqlite3를 통해 SQLite를 사용하여 세션, 메시지, 메모리, 직원, 오케스트레이션 상태, 대기 중인 메시지를 저장합니다. 데이터베이스 스키마는 src/core/db.ts에 정의되어 있습니다.

session           # active CLI, session ID, model, working directory
messages          # conversation history with trace and tool log
memory            # key-value memory store
employees         # registered employee agents
employee_sessions # per-employee session tracking
orc_state         # PABCD orchestration state
queued_messages   # pending message queue