# OSCODE Web CLI

터미널에서 실행하는 OSCODE 에이전트를 브라우저 대화 화면에서 사용합니다. 별도의 클라우드 서비스가 아닌 로컬 전용 UI입니다.

```sh
# 저장소에서 실행
node bin/oscode.js --web --cwd /path/to/project
# 키 없이 실제 파일 목록을 읽는 제한된 데모
node bin/oscode.js --web --demo --cwd /path/to/project
# 설치된 버전에 --web 기능이 포함된 경우
oscode --web --cwd /path/to/project
```

0.19.0부터 웹 CLI를 지원합니다.

현재 소스에는 [예약 배치 가이드](scheduled-batches.md)의 반복 예약·순차 요청 기능도 추가되어 있습니다. npm 0.24.0에는 아직 포함되지 않습니다.

시작 화면은 OSCODE의 작업 흐름을 중심으로 구성됩니다. **맡긴 작업 → 결과물 확인 → 화면 미리보기 → 전문 블록**에서 원하는 화면으로 바로 이동할 수 있습니다. 메뉴를 여는 것만으로 모델 요청이나 코드 수정은 실행되지 않습니다. 개발비서는 프론트엔드 작업을, 전문업무 비서는 반도체·ERP 업무를 안내하며, 개인비서와 사용자 정의 비서의 소개는 유지합니다.

- 왼쪽: 새 대화, 최대 8개 세션 전환, 대화 검색
- 가운데: 자연어 요청, 응답 스트리밍, 복사, 고정 입력창, 실행 중 다음 요청 초안 작성
- 아래: 개별 파일 수정·명령 실행 승인/거절. 영구 자동 승인 버튼은 없습니다.
- 오른쪽: 실제 도구 입력, 결과, 완료/실패 상태
- Enter 전송, Shift+Enter 줄바꿈. IME 조합 중 Enter는 전송하지 않습니다.
- 동일 프로젝트에서는 한 번에 한 작업만 실행합니다. 중단 버튼으로 실행을 취소할 수 있습니다.

## 화면 언어

사이드바 하단의 **언어** 선택에서 **한국어 / English / 日本語**를 전환합니다. 메뉴, 설정, 주요 조작 안내가 새로고침 없이 바뀌며 같은 브라우저에서 선택을 기억합니다. 작성 중인 입력, 모델 ID, 파일 경로와 대화 내용은 유지됩니다. 이 설정은 화면 언어만 바꾸며 모델 답변 언어는 요청에서 지정하세요.


## 모델과 권한

기존 oscode.json, CLI 인수, 환경 변수, 저장된 인증 정보를 사용합니다. 기존 저장 키는 브라우저에 반환하지 않습니다. 웹에서 새로 입력한 키는 로컬 서버 메모리에만 유지합니다. `oscode auth set` 또는 기존 모델 설정 후 실행하세요. 개발 버전의 설정 화면에서는 모델 설정을 열린 대화에 즉시 적용합니다. `--demo`는 모델 API 없이 파일 목록을 읽으며 실제 코딩 AI가 아닙니다.

CLI의 실제 `runTurn`, `WorkspaceTools`, 체크포인트 및 세션 저장을 ACP 어댑터를 통해 재사용합니다. 파일 편집 및 셸 실행은 웹에서 한 번씩 승인합니다. 기존 deny 권한은 유지됩니다. 셸은 운영체제 샌드박스가 아니므로 승인한 명령은 프로젝트 밖에 영향을 미칠 수도 있습니다.

127.0.0.1에 임의 포트와 비밀 경로로 열립니다. 이 주소를 공유하거나 외부로 프록시하지 마세요. Host/Origin, POST JSON 검증과 CSP를 적용합니다. 브라우저 접속이 30초 넘게 끊기면 진행 중인 작업에 취소를 요청하며 승인 대기는 최대 2분입니다. 백그라운드 탭을 오래 두면 브라우저의 타이머 제한 때문에 취소될 수 있습니다.

대화는 `.oscode`에 저장됩니다. 실행 중인 서버에서는 새로고침 후 복원됩니다. 개발 버전에서는 이전 대화를 선택해 복원합니다. 모든 슬래시 명령, MCP 설정 UI, 파일 첨부, 웹 모델 변경은 아직 지원하지 않습니다. 프로젝트 코드가 모델에 전송되는 범위는 기존 CLI와 같습니다.

## 작업 목록 · 승인 · 예정 · ID

입력한 요청은 각각 `OSC-…` 작업 ID로 등록됩니다. 오른쪽 **목록** 또는 왼쪽 **작업 목록**에서 전체 작업, 승인 필요, 예정·대기, 종료된 작업을 골라 볼 수 있습니다. ID를 누르면 복사됩니다. 작업 카드의 **대화 보기**로 관련 대화를 열 수 있습니다.

- **목록**: 대기 / 예정 / 진행 중 / 승인 필요 / 응답 완료 / 실패 / 한도 도달·중단 / 취소를 구분합니다. ‘응답 완료’는 에이전트 턴 종료를 뜻하며 결과물의 품질 검증이나 업무 성공을 보장하지 않습니다.
- **승인**: 파일 변경·명령 실행 요청에 작업 ID가 표시됩니다. 각 작업의 승인 기록에서 승인, 거절, 만료를 확인합니다. 승인은 해당 행동 1회에만 적용됩니다.
- **예정**: 작업 진행 중 새 요청은 대기열에 들어갑니다. 입력창 위 **실행 시점 → 날짜와 시간 지정**으로 예약할 수 있습니다. 화면에 입력한 로컬 시각을 기준으로 예약합니다. 예약 시각은 시작 가능한 가장 이른 시각입니다. 프로젝트당 하나씩 실행하므로 앞 작업이나 승인 대기가 끝날 때까지 늦어질 수 있습니다. 실행 중단과 예정·대기 취소를 지원합니다.
- **ID**: 요청마다 고유한 ID가 생깁니다. 브라우저 새로고침 후 같은 ID와 상태, 승인 기록을 유지합니다. 네트워크 재전송 시 같은 요청 ID로 중복 등록되지 않도록 서버에서 확인합니다.

서버 실행당 최대 100개 작업입니다. 개발 버전은 작업 목록·승인 기록을 프로젝트의 .oscode에 저장합니다. 이전 대화를 선택하면 기록을 복원하고, 이전 미완료 작업은 취소 상태로 표시합니다. 자동 재실행은 하지 않습니다. 종료하면 대기·예약 작업은 취소됩니다. 실제 대화와 도구 실행 기록은 기존 `.oscode` 세션에 저장됩니다. 서버와 브라우저가 연결된 동안만 대기열을 실행합니다. 브라우저 연결이 끊기면 30초 이후 진행 중 작업에 중단을 요청하고, 나머지 대기 작업은 재연결 시 순서대로 이어집니다. 캘린더 연동·외부 이벤트 감지·반복 예약은 아직 포함하지 않습니다.

## 작업 상세 타임라인

작업 카드의 **작업 상세**를 누르면 왼쪽에 해당 작업의 실제 도구 호출 단계, 오른쪽에 선택한 단계의 입력·승인 시 변경 미리보기·출력·소요 시간이 표시됩니다. 완료·실패·실행 중을 구분하고 승인 기록과 작업 ID를 연결합니다. 대화별 최근 최대 100개 도구 기록을 표시하며, 오래된 단계는 생략될 수 있습니다. 소요 시간은 도구 요청부터 결과 수신까지로 승인 대기를 포함합니다. 도구가 반환한 출력 자체를 표시하며 실행되지 않은 단계나 성공 설명을 생성하지 않습니다. Esc 또는 닫기 버튼으로 돌아갑니다.

## 실시간 브라우저 작업 창

왼쪽 **실시간 브라우저 열기** 버튼으로 작업 창을 엽니다. 주소를 입력하면 별도 Chromium에서 페이지를 실행하고 약 1초마다 현재 화면을 표시합니다. 프레임에는 방문한 페이지의 실제 내용이 포함됩니다. 개인 브라우저의 로그인·쿠키는 공유하지 않습니다.

- **직접 제어**: 화면 클릭·휠 스크롤, 입력칸을 클릭한 후 하단 텍스트 전송, Enter/Tab 등 키 전송, 뒤로가기·새로고침을 지원합니다.
- **에이전트에게 넘기기**: 사용자의 조작 버튼을 잠그고 에이전트가 같은 페이지를 사용할 수 있게 합니다. 자연어로 ‘browser_live로 이 페이지의 버튼을 확인해줘’처럼 요청할 수 있습니다. 에이전트의 각 브라우저 동작은 기존 실행 승인과 deny 권한을 따릅니다. 데모 모델은 브라우저를 조작하지 않습니다.
- **브라우저 직접 제어**: 에이전트로부터 제어권을 가져오고 연결된 실행 작업에 취소를 요청합니다. 이미 시작된 브라우저 동작은 마무리될 수 있으며, 대기 중인 이후 동작은 제어권을 다시 확인합니다.
- **중지**: 브라우저를 종료하고 연결된 작업에 취소를 요청합니다. 창 닫기(×)는 보기만 닫으며 브라우저를 종료하지 않습니다.
- **대화·승인 요청 보기**: 창을 닫고 실제 승인 카드로 돌아갑니다.

Playwright Chromium이 필요합니다. 시작할 수 없다는 안내가 나오면 `npx playwright install chromium`으로 브라우저를 설치하세요.

현재는 1280×800 뷰포트의 단일 탭·기본 입력을 지원합니다. 팝업, 다운로드, 파일 업로드, 브라우저 확인 대화상자, 전체 데스크톱 조작은 지원하지 않습니다. 모델에는 제한된 본문·컨트롤 정보가 전달되며, 스크린샷 영상 스트림 자체를 모델에 전달하지 않습니다. 화면 갱신 간격은 작업 및 시스템 부하에 따라 길어질 수 있습니다. 서버를 종료하면 쿠키를 포함한 격리 브라우저 상태도 종료됩니다. 페이지를 여는 것 자체로 대상 사이트에 네트워크 요청이 발생합니다.


## 개발 버전: 웹 작업 도구

이 항목은 저장소에서 실행하는 개발 버전 기준입니다. 기존 npm 0.19.0에는 아래 추가 기능이 포함되지 않습니다.

- **모델 연결 설정**: 왼쪽 설정 버튼에서 Anthropic, OpenAI 호환 API, 기존 Codex 로그인 연결을 선택합니다. 모델 ID, 주소, 토큰 예산은 oscode.json에 저장합니다. API 키는 현재 서버 메모리에만 유지하므로 서버 재시작 시 다시 입력하거나 기존 CLI 인증을 사용합니다. 연결 테스트는 짧은 실제 모델 요청이며 과금될 수 있습니다. 진행·대기·예약 작업이 있으면 설정 변경을 막습니다.
- **파일 선택**: 프로젝트 파일을 검색하고 최대 8개를 첨부합니다. 텍스트 파일당 24KB, 합계 48KB로 제한합니다. 비밀 파일과 프로젝트 밖 경로를 차단합니다. 선택된 파일은 전송 시 읽어 요청에 포함되며 파일 예상 토큰을 미리 확인할 수 있습니다. 폴더 전체 자동 첨부와 이미지 첨부는 포함하지 않습니다.
- **답변 서식**: 제목, 목록, 굵은 글씨, 인라인 코드, 코드 블록과 단순 표를 표시합니다. 코드별 복사를 지원합니다. 답변 HTML은 실행하지 않습니다. 구문별 색상 강조는 아직 포함하지 않습니다.
- **변경 비교**: 파일 도구의 체크포인트에서 변경 전 내용과 현재 파일을 나란히 봅니다. 되돌리기는 기록된 변경 이후 파일이 바뀌면 충돌로 멈춥니다. 셸 작업은 되돌리기 대상에 포함하지 않습니다.
- **이전 대화**: 저장된 대화와 작업 기록을 선택해 이어갑니다. 서버 재시작 후 미완료 작업은 자동 실행하지 않고, 새로운 요청으로 현재 상태 확인을 지시합니다.
- **토큰 표시**: 입력·출력 사용량, 설정 예산, 현재 초안 추정량을 표시합니다. 추정은 공급자 토크나이저와 다릅니다. 첨부는 별도로 산정하며 기본 에이전트의 요청별 예산 검사도 계속 적용합니다.
- **화면 검증**: URL과 선택적 시나리오 파일로 검증 요청을 작성합니다. 전송 후 기존 승인 절차를 거쳐 ui_check가 실행됩니다. 실제 결과·화면 넘침·오류·시나리오 상태와 기록된 캡처를 표시합니다. 시나리오 없이 버튼 동작이 통과했다고 표시하지 않습니다.
- **화면 분할**: 실시간 브라우저 창의 화면 분할 버튼을 누르면 데스크톱에서 대화와 화면을 나란히 볼 수 있습니다. 작은 화면에서는 크게 보기 전환을 사용하세요.
- **작업 결과 카드**: 새로 실행한 작업별 입력·출력 토큰, 모델 요청 수, 도구 실패 수와 체크포인트 변경 파일을 표시합니다. 검증 도구를 실행했는지 구분하며, 실행 횟수만으로 검증 통과를 표시하지 않습니다.
- **오류 해결과 이어가기**: 출력 한도·예산·인증·연결 오류에 맞는 안내를 제공합니다. 실패한 작업의 **상태 확인 후 이어가기**는 현재 파일을 먼저 확인하도록 초안을 작성합니다. 사용자가 전송하기 전에는 작업이나 명령을 재실행하지 않습니다.
- **예산과 출력 한도**: 누적 사용량과 작업당 토큰 예산을 구분합니다. 누적 사용량이 예산보다 커도 그것만으로 다음 요청을 막지 않습니다. 설정의 최대 출력 토큰으로 긴 코드 응답의 한도를 조정할 수 있으며, 공급자와 모델의 제한은 별도로 적용됩니다.
- **작업 템플릿**: 입력창 위에서 화면 구현, 오류 수정, 컴포넌트 정리, 접근성·반응형 검토를 선택합니다. 기존 초안 뒤에 요청을 붙이며 자동 전송하지 않습니다. `[빈칸]`을 실제 요구사항으로 바꾼 뒤 전송하세요.
- **작업 검색**: 목록에서 제목·요청·작업 ID를 검색합니다. 공백으로 구분한 검색어를 모두 포함하는 작업을 현재 상태 필터와 함께 찾습니다.
- **보고서 다운로드**: 작업 카드에서 Markdown 기록을 로컬 파일로 다운로드합니다. 실제 상태·사용량·파일 도구 변경·검증 실행·승인 설명을 포함하며 검증 통과를 추정하지 않습니다. 이전 작업에 없는 요약은 없다고 표시합니다. 원문 대화·도구 입력·출력은 제외하지만 제목·파일 경로·승인 설명에 민감한 내용이 있을 수 있으므로 공유 전 확인하세요.

## 개발 버전: 1인 개인비서 프로필

입력창 위 **비서 프로필**에서 이름(1~24자), 이미지(PNG·JPEG·WebP, 최대 768KB), 사용 모드를 선택하고 **프로필 저장**을 누릅니다. 왼쪽 아이콘, 오른쪽 프로필, 탭 아이콘과 작업 진행 이미지가 함께 변경됩니다. **기본 고양이 아이콘 사용** 후 저장하면 기본 사진으로 돌아갑니다.

**1인 개인비서** 모드의 작업 템플릿은 오늘 할 일, 회의 정리, 문서 초안, 업무 인수인계를 제공합니다. 선택 후 내용을 채워 직접 전송합니다. 개발 에이전트 모드로 돌아가면 개발 템플릿을 다시 사용합니다. 모드는 UI 템플릿 선택이며 별도 모델이나 권한 변경을 뜻하지 않습니다.

프로필은 해당 프로젝트의 `.oscode/web-profile.json`에 저장되어 재시작 후 복원됩니다. 사진을 외부에 업로드하거나 모델에 전달하지 않습니다. 메일 발송·캘린더 동기화·상시 백그라운드 비서 기능은 포함하지 않습니다. 예약 작업은 기존 웹 CLI의 로컬 서버·브라우저 연결 조건을 따릅니다. 현재 저장소 개발 버전 기능이며 npm 게시와 공개 서비스 출시는 별도입니다.

### 오늘의 업무

왼쪽 **오늘의 업무** 버튼에서 현재 프로젝트의 열린 대화에 등록된 작업을 한눈에 확인합니다. 개인비서 모드에서는 시작할 때 이 화면을 엽니다.

- **내 승인 필요**: 이전 날짜부터 기다리는 승인도 포함합니다. 확인 버튼은 해당 대화의 승인 카드로 이동하며 자동 승인하지 않습니다.
- **진행 중**: 날짜와 관계없이 현재 실행 중인 작업을 표시합니다.
- **오늘 예정·대기**: 브라우저의 현지 날짜를 기준으로 오늘 예약과 아직 실행되지 않은 이전 예약을 표시합니다. 예약 시각은 마감일이 아닙니다.
- **오늘 응답 완료**: 오늘 종료된 응답입니다. 검증 통과나 업무 성공을 의미하지 않습니다.
- **문제 확인**: 오늘 실패하거나 한도에 도달한 작업에서 실제 상세 기록을 확인합니다.

작업 상태가 바뀌면 열린 화면도 갱신됩니다. 내일 이후 예약, 취소 작업, 아직 불러오지 않은 저장 대화는 이 화면에 포함되지 않습니다. ‘오늘의 업무’는 등록된 에이전트 작업의 현황이며 외부 캘린더나 별도의 할 일 목록과 동기화하지 않습니다.

### 알림 · 결과물 보관함 · 내 템플릿

- **알림**: 이 탭을 연 뒤 생긴 작업 완료·실패·중단·취소와 새 승인 요청을 최근 50개까지 표시합니다. 같은 이벤트를 중복 표시하지 않습니다. 새로고침하면 화면 내 알림 이력은 초기화되며 기존 작업 기록은 유지합니다. 브라우저 알림은 직접 켜고 권한을 허용해야 합니다. 시스템 알림에는 요청 내용 대신 상태와 작업 ID만 표시합니다. 이 탭과 로컬 서버가 연결된 동안만 전달되며 지원하지 않는 브라우저에서는 화면 내 알림을 사용합니다.
- **결과물 보관함**: 현재 대화의 종료된 작업 보고서, 최근 30개 파일 도구 체크포인트의 현재 내용, 실제 ui_check 검증 캡처를 표시합니다. 텍스트 보고서·변경 파일은 미리보기와 다운로드를 지원합니다. 중복 경로는 최신 기록을 사용합니다. 삭제·읽기 불가 파일은 다운로드하지 않습니다. 셸로 만든 파일이나 임의 프로젝트 파일을 자동 수집하지 않습니다. 공유 전 실제 내용과 민감 정보를 확인하세요.
- **내 템플릿**: 이름과 요청을 저장·수정하고 초안에 붙입니다. 최대 20개, 이름 60자, 요청 8,000자이며 프로젝트의 `.oscode/web-templates.json`에 저장합니다. API 키·비밀번호를 넣지 마세요. 선택은 자동 전송이나 예약이 아니며, 파일 첨부는 저장하지 않습니다.

### 채팅 HTML 미리보기

완성된 `html` 코드 블록의 **HTML 미리보기**를 누르면 파일 저장 없이 화면을 표시합니다. 입력창 위 같은 이름의 버튼에서는 HTML을 직접 붙여넣고 **미리보기 실행**을 누릅니다. 편집한 내용은 재실행으로 반영하며 HTML 다운로드도 지원합니다.

0.24.0에서는 미리보기를 닫고 다시 열 때 늦게 도착한 이전 응답이 새 미리보기를 지우지 않도록 보완했습니다. 설정·파일 등 다른 화면에서도 이전 화면의 응답이 현재 입력과 조작을 덮어쓰지 않습니다.

기본은 화면 표시 전용입니다. **자바스크립트 동작 켜기**를 선택하고 다시 실행하면 인라인 JavaScript의 버튼 동작을 확인할 수 있습니다. 폼 제출, 팝업, 외부 CDN·이미지·API, 프로젝트 파일 접근은 차단합니다. React JSX, Vue SFC, npm 패키지에 의존하는 소스는 빌드한 HTML이나 기존 실시간 브라우저 기능을 사용하세요. 외부 폰트가 필요하면 시스템 기본 글꼴로 표시될 수 있습니다.

데스크톱·390px 모바일 표시를 전환합니다. HTML은 로컬 서버 메모리에서 최대 20개, 각 96KB, 15분 동안만 보관하며 창을 닫으면 현재 미리보기를 제거합니다. 실제 프로젝트 파일은 생성하지 않습니다. 미리보기 실행은 모델을 호출하지 않습니다.

표준 sandbox iframe을 사용하며 Chromium(Chrome·Edge 계열), Firefox, WebKit(Safari 계열)에서 화면·스크립트 선택·모바일 너비·격리 테스트를 통과했습니다. 이는 해당 엔진 테스트이며 모든 브라우저 버전이나 모바일 기기의 실측 검증을 의미하지 않습니다. 브라우저 시스템 알림 등 다른 기능의 지원 여부는 별도입니다.

## 다른 플러그인 연결

입력창 도구의 **플러그인 연결**에서 MCP 호환 서버를 등록할 수 있습니다.
로컬 stdio는 실행 파일·JSON 인자·전달할 환경변수 이름을, 원격 HTTP는 MCP 주소와 인증 방식(없음·환경변수 토큰·OAuth)을 지정합니다. API 키나 토큰 값은 이 화면에 저장하지 마세요.

1. **설정 저장 승인 · 플러그인 등록**: 프로젝트 `.oscode/mcp.json`에 등록합니다. 서버는 자동 실행하지 않습니다.
2. **서버 실행·연결 승인**: 신뢰하는 서버에만 사용하세요. 로컬 프로세스 실행 또는 원격 통신이 발생합니다. OAuth가 필요하면 공식 인증 화면에서 로그인합니다.
3. 서버 도구 중 **AI 도구로 선택**을 누릅니다. 선택한 최대 8개 도구만 모델에 전달됩니다. 실제 실행은 기존 도구 승인과 실행·쓰기 권한을 따릅니다.
4. **AI 도구 선택 해제** 또는 **연결 종료**로 중지합니다.

최대 10개 서버 등록, 대화당 3개 동시 연결을 지원합니다. 등록은 프로젝트 공통이며 연결·선택은 현재 대화와 서버 실행 동안만 유지됩니다. 진행 중이거나 대기 중인 작업이 있으면 플러그인 변경을 차단합니다. 일반 브라우저 확장이나 임의의 npm 패키지는 직접 플러그인으로 실행하지 않으며 MCP 서버 인터페이스가 필요합니다.

## 프론트 프레임워크 미리보기

**프레임워크 미리보기** 버튼은 HTML 코드 미리보기와 별개로 실제 프로젝트 개발 서버를 사용합니다. React·Vue·Angular·Svelte·Next.js·Nuxt 의존성을 감지하며 프로젝트 안의 하위 폴더도 지정할 수 있습니다.

1. 프론트 프로젝트 폴더를 입력하고 **프로젝트 확인**을 누릅니다.
2. `package.json`에 등록된 dev/start/serve/preview 스크립트와 실제 명령을 확인합니다.
3. 의존성을 먼저 설치한 뒤 **개발 스크립트 실행 승인**을 누릅니다. OSCODE는 `npm run 선택한스크립트`를 실행합니다. pre/post 스크립트도 실행될 수 있습니다. 패키지 설치는 자동 실행하지 않습니다.
4. 개발 서버 주소를 실제 로그의 주소에 맞추고 **실제 프레임워크 화면 열기**를 누릅니다. 이미 실행 중인 서버는 실행 단계 없이 주소를 지정해 열 수 있습니다.
5. 내장 작업 브라우저에서 클릭·입력·스크롤을 확인합니다. 소스 수정 반영은 해당 프레임워크의 HMR 설정을 따릅니다.
6. **OSCODE가 시작한 개발 서버 중지**로 종료합니다. OSCODE 종료 시에도 소유 프로세스를 정리합니다. 외부에서 실행한 서버는 중지하지 않습니다.

로컬 HTTP(S) 주소만 허용합니다. 감지한 기본 포트는 제안이며 스크립트 포트를 변경하지 않습니다. 내장 미리보기는 Playwright Chromium 설치가 필요하며, 프레임워크별 컴파일 성공을 보장하지 않습니다. JSX/Vue/Svelte 소스 블록만으로는 실행할 수 없고 프로젝트 구성과 의존성이 필요합니다. 로그는 메모리에 마지막 16,000자만 보관합니다.

## 화면을 선택해서 수정 요청하기

작업 브라우저를 열고 직접 제어 상태에서 **화면 요소 선택**을 누른 뒤 수정할 요소를 클릭하세요. 실제 버튼 동작은 실행하지 않고 DOM 선택자·간격·색상 등의 정보를 표시합니다. 수정 내용을 입력하고 **수정 요청 초안 작성**을 누르면 대화 입력창에 추가됩니다. 확인한 뒤 직접 전송하세요. DOM 선택자는 실행 화면의 단서이며 소스 파일 위치를 보장하지 않습니다.

## 수정 전후 비교와 브라우저 기록

**수정 전 화면 저장** 후 같은 URL에서 **수정 전후 비교**를 누르면 수정 전·현재·차이 화면을 비교합니다. 화면은 1280×800이며 애니메이션을 멈춰 캡처합니다. 픽셀 변화에는 동적 콘텐츠도 포함되므로 기능 테스트의 성공 여부와는 별개입니다. **현재 화면을 새 기준으로 수락**은 비교 기준만 갱신하며 커밋하지 않습니다. **재수정 요청 초안 작성**은 입력창에 요청을 준비합니다.

**브라우저 작업 기록**은 최근 최대 20개의 동작 후 화면을 조회합니다. 동작을 다시 실행하지 않으며 서버 종료·브라우저 중지 시 지워집니다. 키보드 직접 입력은 이 목록에 포함되지 않습니다. **상세 추적 기록 시작**에서 동의하면 실제 Playwright Trace를 기록하고 **추적 기록 종료·다운로드**로 ZIP을 받습니다. DOM·화면·네트워크에 민감한 정보가 포함될 수 있습니다. 다운로드 파일은 최대 16MiB이며 사용자가 Playwright Trace Viewer에서 직접 열 수 있습니다. OSCODE가 외부 뷰어에 자동 업로드하지 않습니다.

## 프레임워크 연결 도우미

**프론트 앱 폴더 자동 찾기**는 최대 3,000개 파일과 40개 `package.json`에서 프론트 앱을 찾습니다. 등록된 스크립트의 포트 또는 프레임워크 기본 포트를 제안하며 설치된 `node_modules` 유무도 표시합니다. 모노레포의 공통 의존성은 상위 폴더에 있을 수 있습니다. 개발 로그에서 주소를 발견하면 **로그에서 발견한 주소 적용**으로 명시적으로 반영하세요. 서버 미실행·종료·HTTP 오류별 안내를 제공합니다. OSCODE CLI 자체의 실행 스크립트는 프론트 미리보기로 실행하지 않습니다.

## 업무 레시피와 모델 비용

**업무 레시피**에서 AI 작업·사람 검토 단계를 연결하고 저장하세요. 레시피는 최대 10개, 각 1~8단계이며 `.oscode/web-recipes.json`에 저장됩니다. 화면 개선·정보 브리핑 예시의 빈칸을 실제 값으로 바꿔 사용하세요. 첫 실행과 다음 단계는 각각 승인이 필요합니다. 앞 작업이 완료되어야 진행할 수 있고 실패·중단 작업은 자동 반복하지 않습니다. 작업의 ‘완료’는 응답 완료 상태이므로 사용자가 실제 결과를 검토해야 합니다. 실행 기록은 최대 20개이며 서버 재시작 시 복원하지 않습니다. 매일 반복 예약은 이 기능에 포함되지 않습니다.

**모델 비용 단가**에서 현재 API 모델의 입력·출력 단가를 USD/100만 토큰 기준으로 입력하세요. Anthropic·호환 API만 지원하며 선택적 캐시 읽기·쓰기 단가도 설정할 수 있습니다. 이후 요청에 요청 당시 단가를 적용하고 작업 카드에 모델·MCP 호출 수·예상 비용을 표시합니다. 단가가 없는 요청은 확인 불가로 표시하고 부분 합계와 구분합니다. ChatGPT 구독 요금과 MCP 서비스 자체 비용은 계산하지 않으며 실제 청구서와는 다를 수 있습니다.

## 작업실 확장

[작업실 전체 가이드](./work-studio.md)에서 동작 테스트 초안·완료 조건·모듈 캔버스·변경 영향·두 구현 비교·오류 묶음·결과 패키지·작업 재사용·이벤트 개인비서·반도체 모델 비교를 확인하세요.

## 모델 연결 확장

[모델 연결 가이드](model-connections.md): 공급자 선택·모델 검색·도구 호출 호환 검사·스트리밍 설정.

[신뢰할 수 있는 작업과 미리보기](reliable-workflows.md): 작업 복구·캐시·모델 정책·검증 후 반영·실패 재현·기기별 화면.

## 저장 경고와 종료

웹 사이드바는 **오늘·대화·작업·결과물·작업실·연결**로 구성됩니다. 오늘에는 승인 필요 건수, 작업에는 진행·대기 건수, 연결에는 이 탭에서 확인한 연결 검사 오류 또는 웹 CLI 접속 오류를 표시합니다. 배지는 이 탭의 실시간 상태이며 영구 오류 기록이 아닙니다. 연결 화면을 여는 것만으로 모델 요청이나 MCP 연결을 실행하지 않습니다. 모델 설정 정보와 실제 통신 검사 결과는 구분합니다.

미리보기는 대화 상단에서, 설정·프로필·대화 목록은 사이드바 하단에서 엽니다. 모바일에서는 대화 메뉴를 선택하면 활동 패널을 닫고 입력창으로 돌아갑니다.

작업 기록을 저장하지 못하면 화면에 **작업 기록 저장 실패** 경고가 표시됩니다. 디스크 공간·프로젝트 쓰기 권한·`.oscode` 파일 상태를 확인하세요. 최신 작업 기록의 정상 저장이 확인되면 경고가 해제됩니다. 경고가 있는 동안에는 재시작 후 복원을 보장할 수 없습니다.

`Ctrl+C`로 종료하면 작업 취소와 개발 서버·브라우저·MCP 정리를 기다린 뒤 최종 작업 기록을 저장합니다. 종료 중 강제 종료하면 저장을 마치지 못할 수 있습니다. 결과 요약 수집만 실패한 작업에는 실행 상태와 별도로 경고가 표시되므로, 원래 실행 오류와 구분해 확인하세요.

## 에이전트 작업 분담

입력창 위 **에이전트 작업 분담**에서 요청을 입력하고 **AI 분담안 만들기 승인**을 누릅니다. 메인 에이전트는 읽기 전용으로 프로젝트를 분석해 최대 3개의 역할을 제안합니다. 완료 후 같은 메뉴를 열어 JSON의 `name`, `prompt`, `readOnly`를 검토·수정하고 **하위 에이전트 시작 승인**을 누르세요.

하위 에이전트는 각각 별도 대화에서 현재 모델 설정을 사용합니다. 같은 프로젝트에서 순차 실행하며 앞선 에이전트의 실제 응답을 최대 8,000자로 전달합니다. 읽기 전용 역할은 파일 수정·셸 실행 도구를 사용할 수 없고, 수정 역할의 도구 실행에는 기존 승인이 적용됩니다. 별도 파일 복사본이나 자동 병합을 제공하는 기능은 아닙니다.

작업 상세 창에서 메인·하위 에이전트별 실행 상태, 실제 도구 기록, 토큰 사용량과 응답을 확인합니다. 전체 또는 개별 에이전트를 중지할 수 있습니다. 앞선 작업이 실패·중단되면 후속 작업은 모델을 호출하지 않고 중단합니다. 재시도는 해당 에이전트만 새 작업으로 실행하며, 이전 파일 변경은 자동으로 되돌리지 않습니다. 선행 작업을 복구한 뒤 후속 작업도 직접 재시도하세요. 서버 재시작 후에는 관련 대화를 복원해야 전체 타임라인이 표시됩니다.

각 역할에 별도 모델 요청 비용이 발생합니다. 작은 작업은 단일 에이전트를 사용하고, 분담할 때는 구체적인 범위와 검증 조건을 지정하세요. 응답 완료는 검증 통과를 뜻하지 않습니다.

## 파일 데이터 자동 입력

실시간 브라우저의 **데이터 자동 입력** 버튼으로 CSV·TSV·XLSX의 데이터를 웹 폼에 연결할 수 있습니다. 모델 호출 없이 화면의 실제 입력 필드를 찾고, 승인한 한 행의 데이터를 입력합니다.

1. 작업 브라우저에서 대상 페이지를 열고 **브라우저 직접 제어**로 전환합니다. 로그인이 필요하면 먼저 직접 로그인합니다.
2. **데이터 자동 입력**에서 파일을 선택합니다. 첫 행은 중복 없는 열 이름입니다. CSV/TSV는 UTF-8 1 MB, XLSX는 2 MB이며 최대 300행·40열입니다. XLSX는 Python 3이 필요합니다. 첫 번째 보이는 시트의 원시 값을 사용하고 수식·오류 셀·병합 셀은 거절합니다. 날짜/통화 표시 형식을 변환하지 않습니다. 구형 XLS는 CSV 또는 XLSX로 변환하세요.
3. **화면 입력 필드 찾기**를 누른 뒤 각 필드에 데이터 열을 연결합니다. 이름이 일치하면 연결을 제안하며 직접 변경할 수 있습니다. 텍스트·textarea·select·checkbox를 지원합니다. select는 옵션의 실제 value를, checkbox는 true/false, 1/0, yes/no를 사용합니다. 비밀번호·숨김·파일·radio 필드는 제외합니다. iframe·사용자 정의 위젯은 이 기능에서 지원하지 않습니다.
4. 행을 고르고 **입력 미리보기**에서 URL·열·필드·값을 확인합니다. **이 행 입력 승인**으로 입력한 뒤 값을 다시 읽어 검증합니다. 웹사이트가 입력 이벤트에서 자동 저장하는 경우 입력 자체가 데이터 변경을 일으킬 수 있으므로 해당 사이트의 동작을 먼저 확인하세요.
5. 저장이 필요하면 제출 버튼과 **저장 완료 표시 CSS 선택자**를 지정합니다. 아직 보이지 않는 고유 요소가 제출 후 나타나야 합니다. **이 내용 제출 · 한 번 승인**은 그 행의 입력 내용에만 적용합니다. 서버 저장 여부를 별도 API로 조회하는 기능은 아니므로 완료 표시가 실제 저장 결과를 뜻하는지 확인하세요.
6. 행별 기록을 확인하고 다음 행을 진행합니다. 입력 실패는 다시 미리보기 후 재시도할 수 있습니다. 제출 후 확인 실패는 **저장 여부 확인 필요**로 표시하며 재전송하지 않습니다. 같은 작업에서 저장 확인된 동일 URL·연결 값·제출 버튼 조합은 중복 제출을 막습니다. 다른 작업이나 서버 재시작을 넘는 중복 방지는 지원하지 않습니다.

데이터와 진행 기록은 로컬 서버의 메모리에만 보관합니다. **실행 결과 다운로드**로 값이 포함되지 않은 행 상태 기록을 저장할 수 있습니다. **데이터 지우기**로 업로드 데이터를 제거합니다. 서버를 종료하면 복구되지 않습니다. 브라우저 중지·직접 제어 전환으로 진행을 중단할 수 있지만 이미 전송된 요청을 되돌리지는 못합니다. 전체 행 무인 제출, 클라우드 원격 접속, CAPTCHA 우회 기능은 포함하지 않습니다.

### 화면 선택 · 입력 규칙 · 사전 검사

**화면에서 완료 표시 선택**으로 저장 후 나타난 표시를 클릭하면 CSS 선택자를 가져옵니다. 이 클릭은 실제 사이트 동작을 실행하지 않습니다. 먼저 수동으로 저장 결과 화면을 표시한 뒤 선택하고, 새 입력 화면으로 돌아와 미리보기를 확인하세요. Esc로 취소할 수 있습니다. 완료 표시는 제출 전에는 보이지 않고 제출 후 새로 나타나는 고유한 요소여야 합니다. 표시가 잘못된 결과를 뜻하면 잘못된 성공 판정이 가능하며 서버 데이터 대조를 대신하지 않습니다.

필드 연결 아래에서 **필수값**, **중복 금지**, **날짜 YYYY-MM-DD**, **금액(소수 둘째 자리까지)**를 지정하고 **입력 전 데이터 검사**를 누릅니다. 날짜는 실제 달력의 유효한 날짜여야 하고, 금액은 통화 기호·천 단위 쉼표 없이 입력합니다. 전체 행 중복 검사는 별도로 켭니다. 오류는 행과 열별로 표시하며 해당 행은 미리보기에서 차단합니다. **선택한 행 데이터 수정**에서 값을 수정한 뒤 재검사하세요. 값은 자동 변환하지 않습니다. 검사는 연결한 열에 적용하고 아직 전송한 결과가 불명확하거나 저장 확인된 행은 수정하지 않습니다.

**사이트 입력 규칙 저장·불러오기**에서 이름을 정해 필드 연결·검사 규칙·제출 버튼·완료 선택자를 저장합니다. 데이터 값과 파일 이름은 저장하지 않고, 사이트의 Origin·경로, 열 이름, 필드 라벨·유형과 설정을 프로젝트별 비공개 기록에 저장합니다. 최대 50개이며 서버 재시작 후에도 유지합니다. 업로드 데이터와 실행 결과의 복구 기능은 포함하지 않습니다.

새 파일을 불러오고 화면 필드를 찾은 뒤 저장 규칙을 적용합니다. 같은 Origin·경로에서만 적용되며 열 이름과 필드 라벨·유형이 고유하게 일치해야 합니다. 필드 ID가 바뀌어도 라벨·유형이 같으면 새 선택자를 연결합니다. 완료 선택자는 구조 변경에 취약하므로 다시 확인해야 합니다. 규칙을 불러오는 것만으로 입력·제출하지 않으며 매번 미리보기와 기존 승인을 거칩니다.

## 비서별 화면과 대화

왼쪽 **담당 비서**에서 개인비서·개발비서·전문업무 비서를 선택합니다. 비서별 첫 화면, 빠른 요청 버튼과 강조색을 제공하며 선택을 브라우저에 기억합니다. 개인비서는 오늘 할 일·회의 정리, 개발비서는 프로젝트 분석·프론트엔드 검토, 전문업무 비서는 반도체 모델 비교·ERP 검토를 시작할 수 있습니다. 빠른 요청은 초안만 작성하며 직접 전송해야 합니다.

대화 목록은 기본적으로 선택한 비서의 열린 대화만 표시합니다. **전체 대화**를 선택하면 모든 비서의 열린 대화를 함께 검색하고 선택할 수 있습니다. 최대 8개는 비서별이 아닌 프로젝트의 전체 열린 대화 수입니다. 이전 저장 대화는 기존 **이전 대화** 기능으로 불러옵니다. 다른 비서로 전환해도 대화별 초안과 기록은 유지하며, 대화가 없는 비서는 **새 채팅**으로 시작합니다.

**프로필**에서 현재 비서의 이름과 사진을 저장합니다. 프로필은 프로젝트의 비공개 `.oscode/web-assistants.json`에 따로 보관됩니다. 기존 프로필은 유지하고, 담당 정보가 없는 기존 대화는 기존 사용 모드에 따라 개인비서 또는 개발비서로 분류합니다.

**담당 비서 변경**에서 대상 비서를 선택하고 기록·첨부 유지 확인을 체크해 적용합니다. 기존 대화를 이동하며 기록·첨부·모델 설정을 복사하거나 다시 실행하지 않습니다. 진행·승인·대기·예약 작업이 있는 대화는 변경을 거절합니다. 담당 정보는 대화 파일에 저장되어 이전 대화를 복원할 때도 유지됩니다.

비서는 화면과 대화의 업무 분류입니다. 프로젝트 파일, 실행 권한, 모델 설정의 격리를 제공하지 않습니다. 모델을 자동 변경하거나 외부 데이터를 자동 전송하지 않으며 승인·작업 패널은 모든 비서의 진행 작업을 계속 표시합니다. 반도체·ERP 검토는 요청 초안이며 실제 모델 검사·데이터 연결은 기존 작업실 기능에서 설정하세요.

### 직접 비서 추가

**비서 선택 → ＋ 비서 추가**에서 이름, 담당 업무, 기본 지침, 강조색, 기본 모델 ID, 프로젝트 스킬과 빠른 요청 초안을 설정합니다. 기본 지침과 스킬을 모델에 전달하는 것에 동의한 후 **비서 만들기**를 누릅니다. 사진은 생성 후 **프로필**에서 변경합니다. 기본 3종을 포함해 프로젝트당 최대 12명입니다.

새 비서는 전용 첫 화면과 대화 목록을 가지며 **새 채팅**으로 시작합니다. 생성과 빠른 요청 클릭은 모델 호출을 실행하지 않습니다. 빠른 요청은 입력창에 초안을 채우고 실제 전송은 직접 해야 합니다. 비서를 추가해도 전체 열린 대화 최대 8개 제한은 유지됩니다.

기본 모델 ID를 비우면 현재 연결 설정을 사용합니다. ID를 지정하면 새 대화와 해당 대화 복원 시 현재 공급자·인증을 유지한 채 그 모델을 사용합니다. 지원 여부와 요금은 연결 공급자에 따릅니다. 기존 대화의 담당만 변경할 때 현재 모델은 바꾸지 않습니다. 프로젝트 스킬은 실제 `.oscode/skills` 목록에서 선택하고 매 요청 시 파일을 다시 읽습니다. 스킬이 없어지면 요청이 실패하므로 스킬을 복원하거나 스킬 없이 비서를 새로 만드세요.

역할과 지침은 모델의 기본 안내로 전달하지만 도구 승인·프로젝트 접근 범위를 확대하지 않습니다. 비서 정의와 이름·사진은 프로젝트별 비공개 기록에 저장되며 이전 형식의 기본 비서 기록도 읽을 수 있습니다. 사용자 정의 이름과 업무 설명은 언어를 바꿔도 자동 번역하지 않습니다.


### 초안 복구와 요청 기록

입력 중인 텍스트는 같은 탭의 `sessionStorage`에 저장합니다. 같은 주소를 새로고침하면 대화별 초안을 복구하며, 성공적으로 등록한 요청의 초안은 지웁니다. 최대 최근 32개, 초안당 16,384자까지 복구 대상으로 보관합니다. 더 긴 글은 현재 화면에서는 편집할 수 있지만 새로고침 복구 대상에서는 제외됩니다. 탭을 닫거나 주소가 바뀌거나 브라우저 저장소가 비활성화되면 복구되지 않습니다. 첨부 파일은 복구하지 않으며 텍스트를 서버나 다른 탭에 보내지 않습니다. 공용 기기에서는 입력창을 비워 저장된 초안을 지우세요.

**요청 기록** 버튼에서 현재 대화의 사용자 요청을 검색할 수 있습니다. **초안에 추가**를 누르면 기존 입력 뒤에 내용을 덧붙입니다. 자동 실행·재전송은 하지 않으므로 첨부와 실행 시점을 다시 확인한 뒤 전송하세요. 표시 대상은 현재 대화에서 로드된 요청 중 검색 결과 최대 100개입니다.


### 완료 기준과 검증 보고서

입력창 위 **완료 기준**에서 한 줄에 한 항목씩 최대 12개, 항목당 500자로 입력합니다. 기준은 현재 대화에서 다음에 전송하는 작업에 적용되고 모델 요청에 포함됩니다. 아직 전송하지 않은 기준은 메모리에만 보관하며 새로고침 시 사라집니다. 작업 등록 후에는 기준과 검토 기록을 프로젝트 작업 기록에 저장하며 기존 작업 복구 흐름으로 복원합니다.

실행이 종료되어도 기준을 자동 통과 처리하지 않습니다. 작업 목록의 **완료 기준 검토**에서 항목별 미검토·통과·실패를 선택하고 확인 근거를 기록합니다. 통과·실패에는 근거가 필수입니다. 모든 기준을 통과하고 실행 상태도 완료일 때만 **사용자 검토 통과**로 표시합니다. 이는 사람이 입력한 확인 기록이며 자동 테스트 통과나 운영 배포 승인이 아닙니다.

**검증 보고서 다운로드**는 실행 상태, 완료 기준, 사용자 검토, 기존 도구 검사 기록, 파일 변경, 예상 비용과 승인 기록을 `oscode-task-report/1` JSON으로 내려받습니다. 완료 기준이 없는 기존 작업도 보고서를 내려받을 수 있습니다. 보고서에는 사용자 요청·경로·검토 근거 등이 포함될 수 있으므로 공유 전 내용을 확인하세요.

### 가상 반도체 생산라인

작업실의 **가상 생산라인**에서 합성 LOT 20개·웨이퍼 500장을 WebGL 3D 화면으로 확인합니다. 단일 운반기가 요청 순서대로 LOT를 옮기며, 이동 2분·각 설비 로딩 1분이라는 가정 시간이 생산 계산에 포함됩니다. 운반 대기·운반·설비 대기·로딩·공정 상태를 구분하고 공정 B 정지 때는 남은 작업 시간을 유지합니다.

**실험 설정**과 **LOT 운반 이력**은 펼치고 접을 수 있습니다. 한 번에 가상 1분씩 진행하며 재생 간격은 500ms·200ms·80ms 중 선택합니다. **1분 진행**으로 단계별 확인, 설비·LOT 클릭으로 상태 확인, **설비 관찰**로 선택한 설비 확대가 가능합니다. WebGL이 없으면 경량 투영 화면을 사용합니다.

정상·설비 정지·센서 드리프트·모의 검사 오류를 같은 시드로 비교하고 전체 센서 시계열·운반 이력·LOT별 대기/운반/로딩/공정/정지 시간이 포함된 보고서를 다운로드할 수 있습니다. `inTransitLots`에는 운반 대기도 포함하며, 로딩과 공정 중 LOT는 별도 집계해 전체 20 LOT를 보존합니다. 물리·센서는 합성이고 검사는 정답을 참조하는 모의 점수입니다. 실제 데이터 학습이나 이 생산라인의 MLflow 모델 연결은 아직 지원하지 않습니다. [실험 가이드와 가정](fab-simulation.md)을 확인하세요.

**판정 정책 실험실**은 독립 180분 표본 또는 현재 3D 시점의 완료 검사 점수를 고정하고 임계값 21개를 비교합니다. 오탐·미탐·재검 후보와 사용자 가중치에 따른 가정 비용, 최소 검사 수·오류 개수 기준을 함께 확인합니다. 설비 대기 LOT·분과 작업 시간의 근거, SHA-256 재현 지문이 포함된 JSON·Markdown 저장 및 같은 실험 재현을 제공하며, 오류 사례는 원본 시점의 검사 화면에서 다시 볼 수 있습니다. 실제 모델 성능·절감액·OEE·운영 승인을 뜻하지 않습니다. [판정 정책 실험실 사용 가이드](fab-simulation.md#판정-정책-실험실)를 확인하세요.

### 검사 회귀 작업실

**작업실 → 반도체 모델 비교 → 검사 실패 사례 모으기**에서 합성 LOT 이미지의 가상 검사 환경을 새 탭으로 엽니다. **가상 생산라인** 패널에도 같은 링크가 있습니다. 일반 이미지의 분류·탐지·분할 및 A/B 화면은 별도 **Model Lab**에서 계속 사용할 수 있습니다. 이 회귀 기능은 0.24.0 기준이며, npm 게시 여부는 설치·게시된 패키지 버전과 기능을 확인하세요.

정상 응답을 받았지만 과검출·미검출이 있는 다이를 선택하고 이름을 입력한 뒤 **선택한 실패 저장**으로 보관합니다. 첫 사례의 검사 당시 점수 임계값·IoU와 실제 요청에 사용한 PNG·정답·기준 예측을 고정하며 최대 48개 사례, PNG 합계 12 MiB·JSON 파일 18 MiB입니다. 선택적으로 정답 JSON을 수정하고 **정답을 검수했습니다**를 체크할 수 있습니다. **회귀 세트 저장 / 회귀 세트 열기**는 JSON과 SHA-256 지문을 확인해 이어서 사용하며, **새 회귀 세트**는 현재 모음을 비웁니다. 브라우저 메모리에 보관하므로 새로고침 전에 저장하세요.

기존 MLflow detection 모델 설정 후 **새 모델로 회귀 검사**를 누르면 같은 PNG를 보내 기존 오류의 감소·잔존·악화를 비교합니다. 정답·기준 예측은 전송하지 않습니다. 모든 사례가 정상 완료되고, 고정된 평가 기준에서 각 사례의 FP·FN이 늘지 않으며 전체 허용 개수(기본 각각 0개)를 충족해야 통과합니다. 실패·취소·누락은 미완료입니다. 모의 실행과 사용자 지정 모델 버전은 계속 구분하며 서버 모델의 실제 식별은 검증하지 않습니다. **검사 결과 저장**으로 근거를 보관할 수 있습니다.

오류 사례만 모은 결과이므로 전체 모델 성능이나 배포 승인을 뜻하지 않으며, 생산라인의 모의 점수 실험에 실제 모델을 연결하는 기능도 아닙니다. [입력 규격·검수·회귀 판정 가이드](inspection-simulator.md#오류-사례를-회귀-검사로-재사용)를 확인하세요.

## 업무 흐름 확장 (현재 소스)

통합 작업함·승인 전 수정·백그라운드 예약·화면 소스 후보·결과 검증 카드·반도체 비교 보드는 [웹 CLI 업무 흐름 가이드](web-workflows.md)를 참고하세요. npm 0.24.0에는 아직 포함되지 않습니다.
