한선씨 AI 라우터 — JS Gemini 레이어의 하이퍼트윈 (2026-06-11)
개요
사용자 방향: "한선씨/크라우니 기계어가 최종. 기존 안 해치고 하이퍼트윈 구성→분석→이관/이사."
첫 적용: 흩어진 JS Gemini 코드(crowny-ai/tiomta/mpti/report/aimed)의
한선씨 단일 정본 구축.
산출물
/Users/ef/CrownyOS/crownyc/libs/크라우니AI라우터.한선 (공유 라이브러리)
- 그라운딩 레지스트리: AI그라운딩(도메인) → 도메인별 시스템컨텍스트(환각방지). 현재 tiomta/crowny/report 시드.
- thinkingBudget:0: generationConfig에 thinkingConfig 주입 → Flash 지연 폭변동 제거.
- 재시도: _AI재시도 3회 백오프(sleep), [ERR] 판정.
- 외부경계: 본문을 파일에 쓰고
curl -d @파일(셸 따옴표 이스케이프 불필요) > 임시파일 > 읽기. 체계 stdout 미신뢰 우회.
- 단일 API: AI응답(도메인, 메시지) → 그라운딩 자동주입 + 응답.
검증 (패리티)
환각 질문 "티옴타 테스트가 언제 만들어진걸까?" → JS판과 동일하게
환각 없이 정직:
"티옴타는 크라우니월드가 만든 자기이해 도구로, 제가 언제 만들어졌는지 구체적 시기는 알지 못합니다. 4상균형3진(TOAU)의 결을 통해…"
→ 순수 한선씨로 JS Gemini 레이어 품질 패리티 달성.
함정 기록 (한선씨)
시도는 예약어 → 회차.
- 내장
맵생성/맵넣어는 JSON직렬화 불가(JSON생성([])) → JSON.한선 배열-맵 JSON설정(맵,키,값)([키,값,...]) 필수.
- curl
-d '인라인'은 그라운딩 내 작은따옴표로 셸 EOF 깨짐 → -d @파일.
다음 (이관/이사)
- 라우터를 한선씨 HTTP 서버로 래핑(/api/ai/start·/poll, jobId 패턴) — 그림자 포트.
- JS 서비스를 하나씩 이 한선씨 정본 호출로 스왑(무중단, 그림자 검증 후).
- 그라운딩 레지스트리에 전 도메인 컨텍스트 확충(단일 정본화).
서버 래핑 완료 (2026-06-11) — 하이퍼트윈 정식 서비스화
산출물
/Users/ef/crowny-ai-router/AI서버.한선 — 순수 한선씨 HTTP AI 서버
- 포트 9789(그림자, crowny-ports 등록), crowny-stack.yaml 등재(워치독 관리, type: hanseon)
- 엔드포인트:
/api/ai/health · POST /api/ai/start · GET /api/ai/poll/<id>
- jobId 비동기: 단일스레드 한선씨에서 백그라운드 curl(
( ...재시도... ) &)로 무블로킹 → 게이트웨이 멀티초 503 회피
- CORS + Connection:close + SIGPIPE(시그널등록 13,1) + JSON문자열이스케이프
end-to-end 검증 (그림자, 1회 — 에티켓)
- health →
{"status":"ok","gemini":true,"port":9789}
- POST start → 즉시
{"jobId":"j1781152475"}
- poll → 1.5초 done + 그라운딩 응답: "티옴타는 크라우니월드가 만든 자기이해 도구... 제작 시기는 정보가 없어... 4상균형3진의 결로..."
- JS Gemini 레이어 + jobId 패턴 전체 파리티를 순수 한선씨로 달성. 라이브(tiomta:9878/crowny-ai:9852) 무영향.
한선씨 함정 추가
시작하는가는 문자열.한선 함수(미import 시 미정의) → 로컬 _접두사인가 헬퍼.
- jobId는
현재시간() 기반(단일스레드라 요청 간 ms 차이로 충돌 회피).
다음 = 이사(migration)
하이퍼트윈 검증 완료 → 라이브 서비스를 한선씨 정본 호출로 이관:
- 게이트웨이에 ai-router 라우트 추가(도메인/경로) → 브라우저에서 도달 가능.
- 한 서비스 프론트(예: tiomta 채팅)를
/api/ai/start|poll(한선씨 라우터)로 repoint. 기존 JS는 즉시 롤백용 보존.
- 그림자 파리티 통과 후 무중단 스왑. 이후 서비스별 순차 이관 → JS Gemini 코드 은퇴.