로컬 브리지 안내

# 트레이딩 데스크 로컬 브리지

주문 권한을 가진 **유일한** 구성요소다. 사용자 기기에서만 실행되고
`127.0.0.1` 에만 바인딩한다. 공개 도메인에 올리지 않는다.

## 실행

```bash
cd trade.agenticfabworks.com/bridge
cp .env.example .env      # 자격증명은 여기에만 둔다
node server.mjs           # 기본: 모의(paper) 모드
```

실계좌 주문을 허용하려면 명시적으로 켜야 한다.

```bash
node server.mjs --allow-live
```

`--allow-live` 없이 실행하면 브라우저에서 실계좌 모드를 선택할 수 없다.

## 기본 동작

| 항목 | 값 |
|---|---|
| 바인딩 | `127.0.0.1:8811` |
| 기본 모드 | `paper` (체결 시뮬레이션) |
| 실계좌 | `--allow-live` + `.env` 자격증명 + 화면 확인 문구 |
| 조건 저장 | `bridge/data/conditions.json` |
| 로그 | `bridge/data/orders.log` (append only) |

## 안전장치

1. **원격 접속 차단.** `127.0.0.1` 외 요청은 연결 즉시 종료한다.
2. **Origin 검사.** 허용 Origin 목록 밖에서 온 WebSocket 을 거부한다.
3. **조건 상한 필수.** 1일 최대 발동 횟수와 1회 최대 금액이 없으면 저장하지
   않는다.
4. **일일 한도.** `.env` 의 `DAILY_ORDER_LIMIT`, `DAILY_AMOUNT_LIMIT` 를 넘으면
   주문을 거부한다.
5. **감사 로그.** 모든 주문 시도(성공·거부 포함)를 파일에 남긴다.
6. **live 잠금.** 브로커 어댑터가 없으면 `paper` 로 강제하고 그 사실을 알린다.

## 키움 연동

실제 브로커 호출은 `adapters/kiwoom.mjs` 가 담당한다. 현재는 REST 어댑터
연결점만 정의되어 있고, 자격증명이 없으면 `paper` 로 동작한다.

기존 `02_trading_automation/platform/myaitrader/brokers/kiwoom/` 의 REST
어댑터(모의투자 검증됨)를 재사용할 수 있다. 그 어댑터를 붙이려면
`.env` 에 `KIWOOM_APP_KEY`, `KIWOOM_APP_SECRET`, `KIWOOM_ACCOUNT_NO` 를 넣고
`KIWOOM_BASE_URL` 을 모의/실계좌 중 하나로 지정한다.

**주의:** `wts.kiwoom.com` 화면을 브라우저 자동화로 조작하는 방식은 쓰지
않는다. 약관 위반 소지가 있고 화면 변경 시 조용히 오작동한다. 정식 REST
경로만 사용한다.
데스크로 돌아가기