크라우니 입력도구 v1 스펙 (공용 컴포넌트 — 2026-07-11 사장님 지시)
목표: 터미널에서 완성한 입력 경험을 모든 PPM 앱의 기본 입력도구로 승격. 향후 문서작성기·프리젠테이션작성기·스프레드시트작성기가 이 컴포넌트를 그대로 사용.
사용자 실측 결함 (터미널 탭)
- Cmd 조합키(Cmd+V/C/A 등) 작동 안 함 — 추정: CrownyAppView가 performKeyEquivalent/Edit메뉴 액션을 PPM 입력 버퍼에 미배선(붙여넣기가 갈 곳이 없음)
- 입력창 클릭 시 I빔 커서·캐럿(깜빡이) 활성 신호 없음 — 포커스는 잡히나 시각 피드백 부재
계층 설계 (역방향 SSOT — 한선씨가 정본)
| 층 | 담당 | 실체 |
|---|---|---|
| 네이티브 수집 | 클릭좌표·키·Cmd콤보·클립보드(NSPasteboard)·I빔(addCursorRect) | crowny-browser.m 공용 헬퍼 |
| 입력코어(정본) | 버퍼·캐럿 인덱스·선택영역·삽입/삭제·전체선택·한영 상태 | libs/입력코어.한선 (신규 — 키입력처리.한선 확장 승격) |
| 조합 | 두벌식 자모→음절 | 한글조합기.한선 (기존, OS입력소스 추종은 별도 진행중) |
| 렌더 계약 | 캐럿(깜빡), 선택 하이라이트, 포커스 링, 힌트 | 화면.한선 입력칸 확장 (캐럿위치·선택범위 인자) |
기능 목록 (v1)
- 캐럿: 클릭 위치→글자 인덱스 환산(글자폭추정 역함수), 500ms 깜빡(이벤트루프 틱 재사용), 좌/우/Home/End 이동
- 선택: Shift+이동, 드래그, Cmd+A 전체 / 선택 하이라이트 렌더
- 클립보드: Cmd+V 삽입, Cmd+C 복사, Cmd+X 잘라내기 (네이티브 pasteboard ↔ 입력코어 버퍼)
- I빔: 입력영역 hover 시 NSCursor IBeam
- 상태 계약: /tmp/입력상태.psv 확장 — 이름|값|캐럿|선앞|선뒤 (하위호환: 캐럿 이후 필드 옵션)
- 학습: "기존 터미널 학습" = crowny-terminal-native app.m(스크린버퍼·커서), crowny-terminal web(입력줄), Terminal.app 관례(클릭포커스·I빔·Cmd콤보)를 조사해 매트릭스로 정리 후 구현
적용 순서
- 터미널 탭에 v1 적용(검증장) → 2. 메모 등 기존 입력칸 앱 전환 → 3. 문서/프리젠/스프레드 작성기의 기본 위젯으로
순서 제약
crowny-browser.m 은 현재 한영 OS추종 에이전트가 수정 중 — 완료 후 입력도구 에이전트 착수(파일 충돌 방지).구현 현황 (2026-07-11 — v1 완료)
한영 OS추종 세션 완료 확인(/Users/ef/CrownyDoc/projects/2026-07-11-crownyai-한영-OS입력소스추종.md,
빌드 exit0·3곳 SHA 동일 배치 기록) 후 착수. 전체 구현·검증·잔여이슈는
/Users/ef/CrownyDoc/projects/2026-07-11-크라우니-입력도구-v1.md 참조.
요약: 입력코어.한선 신규(키입력처리.한선 하위호환 유지) + crowny-browser.m
copy:/cut:/paste:/selectAll:+CLICKCARET+resetCursorRects+캐럿타이머 + 화면.한선/
터미널앱.한선 캐럿·선택 렌더 확장. 빌드 exit0, 3곳 배치 SHA 동일
(8f4e2426dace203451d8f33281e951815be7e521). 헤드리스 E2E 전항목 통과.