clauderipple 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/README.es.md +45 -0
- package/README.ja.md +17 -0
- package/README.ko.md +31 -0
- package/README.md +39 -0
- package/README.pt-BR.md +45 -0
- package/README.zh-CN.md +17 -0
- package/dist/app/assets/icon.icns +0 -0
- package/dist/app/assets/icon.ico +0 -0
- package/dist/app/assets/icon.png +0 -0
- package/dist/app/assets/trayDirectTemplate.png +0 -0
- package/dist/app/assets/trayDirectTemplate@2x.png +0 -0
- package/dist/app/assets/trayDownTemplate.png +0 -0
- package/dist/app/assets/trayDownTemplate@2x.png +0 -0
- package/dist/app/assets/trayTemplate.png +0 -0
- package/dist/app/assets/trayTemplate@2x.png +0 -0
- package/dist/app/assets/trayWarnTemplate.png +0 -0
- package/dist/app/assets/trayWarnTemplate@2x.png +0 -0
- package/dist/app/assets/trayWin.png +0 -0
- package/dist/app/assets/trayWin@2x.png +0 -0
- package/dist/app/assets/trayWinDirect.png +0 -0
- package/dist/app/assets/trayWinDirect@2x.png +0 -0
- package/dist/app/assets/trayWinDown.png +0 -0
- package/dist/app/assets/trayWinDown@2x.png +0 -0
- package/dist/app/assets/trayWinWarn.png +0 -0
- package/dist/app/assets/trayWinWarn@2x.png +0 -0
- package/dist/app/dist/claude-desktop.js +67 -0
- package/dist/app/dist/main.js +423 -110
- package/dist/app/dist/preload.js +21 -0
- package/dist/app/dist/protocol.js +121 -0
- package/dist/app/dist/status-model.js +87 -0
- package/dist/app/dist/window.js +140 -0
- package/dist/app/package.json +1 -1
- package/dist/cli/src/awake-setup.js +314 -0
- package/dist/cli/src/bundle.js +9 -5
- package/dist/cli/src/direct.js +159 -0
- package/dist/cli/src/doctor.js +205 -0
- package/dist/cli/src/index.js +184 -31
- package/dist/cli/src/launchd.js +29 -20
- package/dist/cli/src/launcher.js +215 -0
- package/dist/cli/src/power.js +182 -0
- package/dist/cli/src/registration.js +157 -0
- package/dist/cli/src/schtasks.js +2 -0
- package/dist/cli/src/settings.js +24 -0
- package/dist/cli/src/tray.js +5 -2
- package/dist/mod/hooks/i18n.ts +237 -237
- package/dist/mod/hooks/register.tsx +4 -5
- package/dist/mod/hooks/session.ts +6 -2
- package/dist/mod/hooks/ui/agents.tsx +81 -36
- package/dist/mod/hooks/ui/view.ts +8 -5
- package/dist/mod/tests/ui.test.tsx +46 -13
- package/dist/mod/types/index.d.ts +0 -2
- package/dist/remote/src/bridge-client.js +45 -4
- package/dist/router/src/admin.js +105 -2
- package/dist/router/src/awake-win.js +590 -0
- package/dist/router/src/awake.js +432 -0
- package/dist/router/src/config.js +64 -0
- package/dist/router/src/health.js +86 -3
- package/dist/router/src/hold.js +107 -0
- package/dist/router/src/index.js +69 -6
- package/dist/router/src/ingress/server.js +26 -4
- package/dist/router/src/power.js +107 -0
- package/dist/router/src/providers/google/antigravity.js +73 -10
- package/dist/router/src/providers/google/index.js +168 -17
- package/dist/router/src/providers/google/thoughtSignatures.js +13 -0
- package/dist/router/src/providers/google/transport.js +1 -1
- package/dist/router/src/providers/google/usage.js +71 -26
- package/dist/router/src/providers/retry.js +4 -1
- package/dist/router/src/proxy.js +50 -21
- package/dist/router/src/tether-win.js +211 -0
- package/dist/router/src/tether.js +712 -0
- package/dist/router/src/version.js +1 -1
- package/dist/ui/app.js +649 -2
- package/dist/ui/i18n.js +494 -77
- package/dist/ui/index.html +9 -1
- package/dist/ui/style.css +138 -0
- package/docs/ARCHITECTURE.md +294 -6
- package/package.json +2 -2
package/dist/mod/hooks/i18n.ts
CHANGED
|
@@ -467,7 +467,7 @@ const EN = {
|
|
|
467
467
|
'agents.back': 'All agents',
|
|
468
468
|
'agents.task': 'Task',
|
|
469
469
|
'agents.answer': 'Final answer',
|
|
470
|
-
'agents.
|
|
470
|
+
'agents.dropped': '{count} earlier entries left out: too long to draw',
|
|
471
471
|
'agents.act.command': 'Ran {count} commands',
|
|
472
472
|
'agents.act.commandOne': 'Ran {count} command',
|
|
473
473
|
'agents.act.read': 'Read {count} files',
|
|
@@ -518,10 +518,10 @@ const KO: Record<Key, string> = {
|
|
|
518
518
|
'band.high': '높음',
|
|
519
519
|
'band.xhigh': '매우 높음',
|
|
520
520
|
'band.max': '최대',
|
|
521
|
-
'band.pausedHint': '이
|
|
522
|
-
'band.offHint': '자동 선택이 꺼져 있습니다. 추론 강도를 직접
|
|
523
|
-
'band.decidingHint': '판정 모델이
|
|
524
|
-
'band.effortTitle': '추론 강도 {value}{hint} ·
|
|
521
|
+
'band.pausedHint': '이 모델은 추론 강도를 바꿔도 캐시가 유지되는지 확인하지 못했습니다. 자동 선택을 잠시 멈춥니다.',
|
|
522
|
+
'band.offHint': '자동 선택이 꺼져 있습니다. 추론 강도를 직접 정합니다.',
|
|
523
|
+
'band.decidingHint': '판정 모델이 이번 프롬프트에 맞는 추론 강도를 고르고 있습니다.',
|
|
524
|
+
'band.effortTitle': '추론 강도 {value}{hint} · 눌러서 강도 선택',
|
|
525
525
|
'band.effortAlt': '추론 강도 {value} ({mode}){why}',
|
|
526
526
|
'band.context': '컨텍스트',
|
|
527
527
|
'band.contextAlt': '컨텍스트 {value} / {window} ({tokens} 토큰)',
|
|
@@ -533,7 +533,7 @@ const KO: Record<Key, string> = {
|
|
|
533
533
|
'band.warmFor': '{time} 후 만료',
|
|
534
534
|
'band.expired': '만료됨',
|
|
535
535
|
'band.warmStoppedTip': ' · 캐시 유지 중단: {reason}',
|
|
536
|
-
'band.warmOnTip': ' · 캐시 유지 켜짐,
|
|
536
|
+
'band.warmOnTip': ' · 캐시 유지 켜짐, 유지 요청 {count}회',
|
|
537
537
|
'band.noReply': '아직 응답 없음',
|
|
538
538
|
'band.cacheAlt': '캐시 {state}{warm}',
|
|
539
539
|
'band.timeLeft': '{time} 남음',
|
|
@@ -548,13 +548,13 @@ const KO: Record<Key, string> = {
|
|
|
548
548
|
'band.resetting': '초기화 중',
|
|
549
549
|
'band.resetsIn': '{time} 뒤 초기화',
|
|
550
550
|
'band.resetsAt': '{time} 초기화',
|
|
551
|
-
'band.router': '
|
|
552
|
-
'band.routerAlt': '
|
|
551
|
+
'band.router': '리플',
|
|
552
|
+
'band.routerAlt': '리플: {value}',
|
|
553
553
|
'band.resentCaption': '재전송 · {status}',
|
|
554
554
|
'band.failedCaption': '실패 · {status}',
|
|
555
|
-
'band.lastRoute': '최근
|
|
556
|
-
'band.logHint': '
|
|
557
|
-
'band.routeAlt': '최근
|
|
555
|
+
'band.lastRoute': '최근 경로',
|
|
556
|
+
'band.logHint': '눌러서 요청 로그 보기',
|
|
557
|
+
'band.routeAlt': '최근 경로: {provider}의 {model}{effort}{cache}, {time}{status}',
|
|
558
558
|
'band.routeCache': ', 캐시 {percent}%',
|
|
559
559
|
'band.routeResent': ', {status} 재전송',
|
|
560
560
|
'band.routeFailed': ', {status} 실패',
|
|
@@ -562,8 +562,8 @@ const KO: Record<Key, string> = {
|
|
|
562
562
|
'band.handoff': '인수인계',
|
|
563
563
|
'band.compact': '압축',
|
|
564
564
|
'band.clear': '새로 시작',
|
|
565
|
-
'band.compactAlt': '대화 압축 —
|
|
566
|
-
'band.clearAlt': '새로 시작 (/clear) — 대화
|
|
565
|
+
'band.compactAlt': '대화 압축 — 대화를 요약해 컨텍스트를 줄입니다',
|
|
566
|
+
'band.clearAlt': '새로 시작 (/clear) — 대화 내용을 비우고 새로 시작합니다',
|
|
567
567
|
'band.log': '로그',
|
|
568
568
|
'band.agents': '에이전트',
|
|
569
569
|
'band.settings': '설정',
|
|
@@ -571,12 +571,12 @@ const KO: Record<Key, string> = {
|
|
|
571
571
|
'band.hit': '적중 {percent}%',
|
|
572
572
|
'band.effortAutoAlt': '추론 강도 자동 {state}',
|
|
573
573
|
'band.warmAlt': '캐시 유지 {state}',
|
|
574
|
-
'band.warmHere': '이
|
|
575
|
-
'band.handoffAdvised': '인수인계 (권장:
|
|
574
|
+
'band.warmHere': '이 대화에만 적용합니다. 새 대화는 설정을 따릅니다',
|
|
575
|
+
'band.handoffAdvised': '인수인계 (권장: 새 대화로 옮기는 편이 효율적입니다)',
|
|
576
576
|
'band.closeLog': '요청 로그 닫기',
|
|
577
577
|
'band.openLog': '요청 로그 열기',
|
|
578
578
|
'band.agentsAlt': '에이전트: {count}개 실행 중',
|
|
579
|
-
'band.settingsAlt': '
|
|
579
|
+
'band.settingsAlt': '리플 설정',
|
|
580
580
|
'band.warmStopped': '유지 중단',
|
|
581
581
|
'band.warmText': '≈유지',
|
|
582
582
|
'band.save': '절약',
|
|
@@ -586,200 +586,200 @@ const KO: Record<Key, string> = {
|
|
|
586
586
|
'band.footerPaused': ' (일시 중지)',
|
|
587
587
|
'band.footerOff': ' (자동 꺼짐)',
|
|
588
588
|
'band.footerManual': ' (수동)',
|
|
589
|
-
'band.footerContext': '
|
|
590
|
-
'band.routerRestart': '
|
|
591
|
-
'band.routerDown': '
|
|
589
|
+
'band.footerContext': '컨텍스트 {percent}%',
|
|
590
|
+
'band.routerRestart': '리플: 다시 시작하면 최근 경로를 표시합니다',
|
|
591
|
+
'band.routerDown': '리플: 응답이 없습니다',
|
|
592
592
|
// Alerts.
|
|
593
593
|
'alerts.coldTitle': '캐시가 만료되었습니다',
|
|
594
|
-
'alerts.coldBody': '{minutes}분 동안
|
|
594
|
+
'alerts.coldBody': '{minutes}분 동안 대화가 없어 캐시가 만료되었습니다. 다음 프롬프트는 {tokens} 토큰 전체를 다시 읽고, 캐시 할인 없이 비용을 계산합니다.',
|
|
595
595
|
'alerts.keptTitle': '자리를 비운 동안 캐시를 유지했습니다',
|
|
596
|
-
'alerts.keptBody': '
|
|
596
|
+
'alerts.keptBody': '유지 요청 {pings}회로 {tokens} 토큰을 캐시에 남겨 두었습니다. 다음 프롬프트도 캐시 할인 요금으로 읽습니다. 만료까지 {minutes}분 남았습니다.',
|
|
597
597
|
'alerts.gotIt': '확인',
|
|
598
598
|
'alerts.swampTitle': '컨텍스트 {percent}% 사용',
|
|
599
|
-
'alerts.swampBody': '프롬프트마다 {tokens}
|
|
599
|
+
'alerts.swampBody': '프롬프트마다 {tokens} 토큰을 함께 보냅니다. 응답이 느려지고 비용이 늘며, 답변도 덜 정확해집니다.',
|
|
600
600
|
'alerts.hotTitle': '{window} 한도 {percent}% 도달',
|
|
601
|
-
'alerts.saveOnBody': '절약
|
|
602
|
-
'alerts.saveBody': '절약
|
|
601
|
+
'alerts.saveOnBody': '절약 모드가 켜져 있습니다. 한도가 초기화될 때까지 자동 추론 강도를 중간 이하로 유지합니다.',
|
|
602
|
+
'alerts.saveBody': '절약 모드를 켜면 한도가 초기화될 때까지 자동 추론 강도를 중간 이하로 유지합니다.',
|
|
603
603
|
'alerts.saveOff': '절약 모드 끄기',
|
|
604
604
|
'alerts.save': '절약 모드',
|
|
605
605
|
'alerts.notNow': '나중에',
|
|
606
606
|
'alerts.judgeTitle': '추론 강도 판정 모델이 응답하지 않습니다',
|
|
607
|
-
'alerts.judgeNetworkTitle': '
|
|
608
|
-
'alerts.routerModel': '
|
|
607
|
+
'alerts.judgeNetworkTitle': '연결이 불안정해 당분간 Haiku가 판정합니다',
|
|
608
|
+
'alerts.routerModel': '리플 모델',
|
|
609
609
|
'alerts.judgeBody': '{judge}: {reason}. {fallback}',
|
|
610
|
-
'alerts.keepEffort': '
|
|
611
|
-
'alerts.askHaiku': '
|
|
610
|
+
'alerts.keepEffort': '당분간 현재 추론 강도를 유지합니다.',
|
|
611
|
+
'alerts.askHaiku': '당분간 Haiku가 판정합니다.',
|
|
612
612
|
'alerts.openSettings': '설정 열기',
|
|
613
613
|
'alerts.compactTitle': '대화 압축',
|
|
614
|
-
'alerts.compactBody': '
|
|
614
|
+
'alerts.compactBody': '꼭 남길 내용을 적으면 요약에 반영합니다. 비워 두면 알아서 요약합니다.',
|
|
615
615
|
'alerts.cancel': '취소',
|
|
616
616
|
'alerts.handoffTitle': '새 대화로 인수인계',
|
|
617
|
-
'alerts.quickBody': '간단:
|
|
618
|
-
'alerts.fullBody': '전체: 인수인계 스킬이 git을 확인하고 HANDOFF.md
|
|
617
|
+
'alerts.quickBody': '간단: 캐시에서 읽은 내용으로 요약을 만들어 새 대화에 넘깁니다.',
|
|
618
|
+
'alerts.fullBody': '전체: 인수인계 스킬이 git을 확인하고 HANDOFF.md부터 작성합니다.',
|
|
619
619
|
'alerts.go': '실행',
|
|
620
620
|
'alerts.dismiss': '닫기',
|
|
621
621
|
'alerts.handingOff': '인수인계 중…',
|
|
622
|
-
'alerts.fullProgress': '
|
|
623
|
-
'alerts.quickProgress': '새
|
|
622
|
+
'alerts.fullProgress': 'git을 확인하고 HANDOFF.md를 작성하고 있습니다.',
|
|
623
|
+
'alerts.quickProgress': '새 대화에서 이어갈 수 있도록 요약하고 있습니다.',
|
|
624
624
|
'alerts.handoffDone': '인수인계 완료',
|
|
625
|
-
'alerts.summaryReady': '
|
|
625
|
+
'alerts.summaryReady': '요약을 준비했습니다.',
|
|
626
626
|
'alerts.copyAgain': '다시 복사',
|
|
627
627
|
'alerts.compacting': '압축 중…',
|
|
628
|
-
'alerts.compactingBody': '대화를
|
|
628
|
+
'alerts.compactingBody': '대화를 요약하고 있습니다. 요약이 끝나면 그 내용으로 대화를 이어갑니다.',
|
|
629
629
|
'alerts.compacted': '압축 완료',
|
|
630
|
-
'alerts.compactedBody': '
|
|
631
|
-
'alerts.failed': '
|
|
632
|
-
'alerts.unchanged': '아무것도
|
|
630
|
+
'alerts.compactedBody': '요약한 내용으로 대화를 이어갑니다.',
|
|
631
|
+
'alerts.failed': '작업을 마치지 못했습니다',
|
|
632
|
+
'alerts.unchanged': '아무것도 바꾸지 않았습니다.',
|
|
633
633
|
'alerts.keep': '남길 내용',
|
|
634
|
-
'alerts.keepPlaceholder': '
|
|
634
|
+
'alerts.keepPlaceholder': '결정한 내용, 남은 질문, 파일 이름… (선택)',
|
|
635
635
|
'alerts.compactSubmit': '압축',
|
|
636
636
|
'alerts.quick': '간단',
|
|
637
637
|
'alerts.full': '전체',
|
|
638
|
-
'alerts.continue': '새
|
|
638
|
+
'alerts.continue': '바로 새 대화 열기',
|
|
639
639
|
'alerts.confirm': '확인 후 이동',
|
|
640
640
|
'alerts.copy': '복사만',
|
|
641
|
-
'alerts.continueHint': '같은
|
|
642
|
-
'alerts.confirmHint': '
|
|
643
|
-
'alerts.copyHint': '
|
|
641
|
+
'alerts.continueHint': '같은 폴더에서 새 대화를 열고 입력창에 인수인계 내용을 넣습니다. 새 대화에서 Enter를 누르면 이어갑니다. 현재 대화는 그대로 둡니다.',
|
|
642
|
+
'alerts.confirmHint': '요약만 만든 뒤 새 대화로 옮길지 묻습니다. 현재 대화는 그대로 둡니다.',
|
|
643
|
+
'alerts.copyHint': '요약만 클립보드에 복사합니다. 나머지는 그대로 둡니다.',
|
|
644
644
|
'alerts.handoffReady': '인수인계 준비 완료',
|
|
645
|
-
'alerts.handoffReadyBody': '같은
|
|
646
|
-
'alerts.openNew': '새
|
|
647
|
-
'alerts.openedBody': '새
|
|
648
|
-
'alerts.readHandoffFile': '{path}의
|
|
645
|
+
'alerts.handoffReadyBody': '같은 폴더에서 새 대화를 열어 이어갈 수 있습니다. 현재 대화는 그대로 둡니다.',
|
|
646
|
+
'alerts.openNew': '새 대화로 이동',
|
|
647
|
+
'alerts.openedBody': '새 대화를 열고 입력창에 인수인계 내용을 넣었습니다. 새 대화에서 Enter를 누르면 이어갑니다.',
|
|
648
|
+
'alerts.readHandoffFile': '{path}의 인수인계 내용을 읽고 이어서 진행해 주십시오.',
|
|
649
649
|
'alerts.copyText': '복사',
|
|
650
|
-
'toasts.newSessionFallback': '새
|
|
651
|
-
'alerts.kind': '
|
|
652
|
-
'alerts.then': '
|
|
650
|
+
'toasts.newSessionFallback': '새 대화를 열지 못해 인수인계 내용을 대신 복사했습니다.',
|
|
651
|
+
'alerts.kind': '방식 ',
|
|
652
|
+
'alerts.then': '완료 후 ',
|
|
653
653
|
'alerts.demoDown': 'Jev 크레딧 소진 (데모)',
|
|
654
|
-
'alerts.copied': '
|
|
654
|
+
'alerts.copied': '이어서 대화할 요약을 복사했습니다. 현재 대화는 그대로 둡니다.',
|
|
655
655
|
'alerts.compactFailed': '대화 압축을 마치지 못했습니다.',
|
|
656
|
-
'alerts.clearTitle': '
|
|
657
|
-
'alerts.clearBody': '
|
|
656
|
+
'alerts.clearTitle': '대화 새로 시작',
|
|
657
|
+
'alerts.clearBody': '현재 대화의 컨텍스트를 모두 비웁니다. 이전 내용 없이 새로 시작합니다.',
|
|
658
658
|
'alerts.clearGo': '새로 시작',
|
|
659
659
|
// Settings.
|
|
660
|
-
'settings.effortBlurb': '
|
|
660
|
+
'settings.effortBlurb': '프롬프트마다 추론 강도를 자동으로 고르는 방식을 정합니다.',
|
|
661
661
|
'settings.workers': '워커',
|
|
662
662
|
'settings.mode': '모드',
|
|
663
663
|
'settings.modeNone': '기본',
|
|
664
664
|
'band.mode': '모드',
|
|
665
|
-
'band.modeTip': '“{name}”
|
|
666
|
-
'settings.workersBlurb': '
|
|
665
|
+
'band.modeTip': '“{name}” 모드에 따라 워커를 고릅니다. 빠른 설정에서 모드를 바꿀 수 있습니다.',
|
|
666
|
+
'settings.workersBlurb': '맡기는 작업의 종류에 따라 워커를 정합니다.',
|
|
667
667
|
'settings.judge': '판정 모델',
|
|
668
|
-
'settings.judgeBlurb': '프롬프트의 추론 강도와
|
|
668
|
+
'settings.judgeBlurb': '프롬프트의 추론 강도와 맡긴 작업의 등급을 고르는 모델입니다.',
|
|
669
669
|
'settings.cacheBlurb': '자리를 비운 동안에도 프롬프트 캐시를 유지합니다.',
|
|
670
670
|
'settings.handoff': '압축·인수인계',
|
|
671
|
-
'settings.handoffBlurb': '
|
|
671
|
+
'settings.handoffBlurb': '길어진 대화를 요약하거나 새 대화로 넘기는 방식을 정합니다.',
|
|
672
672
|
'settings.look': '화면 표시',
|
|
673
|
-
'settings.lookBlurb': '상태 바에
|
|
674
|
-
'settings.light': '
|
|
675
|
-
'settings.lightBlurb': '단순 반복 작업,
|
|
673
|
+
'settings.lookBlurb': '상태 바에 무엇을 어떻게 보여 줄지 정합니다.',
|
|
674
|
+
'settings.light': '간단',
|
|
675
|
+
'settings.lightBlurb': '단순 작업, 반복 작업, 자료 찾기',
|
|
676
676
|
'settings.standard': '표준',
|
|
677
|
-
'settings.standardBlurb': '
|
|
678
|
-
'settings.deep': '
|
|
679
|
-
'settings.deepBlurb': '신중한 판단,
|
|
677
|
+
'settings.standardBlurb': '설계에 따른 구현, 조사, 코드 검토',
|
|
678
|
+
'settings.deep': '고난도',
|
|
679
|
+
'settings.deepBlurb': '신중한 판단, 실수하면 위험한 작업, 어려운 추론',
|
|
680
680
|
'settings.design': '디자인',
|
|
681
|
-
'settings.designBlurb': '
|
|
681
|
+
'settings.designBlurb': '화면, 시각 디자인, 브랜드',
|
|
682
682
|
'settings.tierAlt': '{name} 등급',
|
|
683
|
-
'settings.biasAlt': '성향 {value}{selected}',
|
|
683
|
+
'settings.biasAlt': '선택 성향 {value}{selected}',
|
|
684
684
|
'settings.selected': ' (선택됨)',
|
|
685
685
|
'settings.onSuffix': ' (켜짐)',
|
|
686
686
|
'settings.offSuffix': ' (꺼짐)',
|
|
687
687
|
'settings.mixedSuffix': ' (일부 켜짐)',
|
|
688
|
-
'settings.cheaper': '
|
|
689
|
-
'settings.smarter': '
|
|
690
|
-
'settings.autoHint': '프롬프트마다
|
|
691
|
-
'settings.lean': '성향',
|
|
692
|
-
'settings.leanHint': '
|
|
688
|
+
'settings.cheaper': '비용 우선',
|
|
689
|
+
'settings.smarter': '성능 우선',
|
|
690
|
+
'settings.autoHint': '프롬프트마다 자동으로 고릅니다. 직접 바꾸면 자동 선택이 꺼집니다.',
|
|
691
|
+
'settings.lean': '선택 성향',
|
|
692
|
+
'settings.leanHint': '어느 쪽을 고를지 애매할 때만 적용',
|
|
693
693
|
'settings.floor': '최저 강도',
|
|
694
694
|
'settings.ceiling': '최고 강도',
|
|
695
|
-
'settings.floorWins': '최저
|
|
695
|
+
'settings.floorWins': '최저 강도보다 낮아 최저 강도로 맞춥니다.',
|
|
696
696
|
'settings.unavailable': ' (사용 불가)',
|
|
697
697
|
'settings.takesOver': '적용 대상',
|
|
698
698
|
'settings.autoAgent': 'ripple:auto',
|
|
699
699
|
'settings.allSpawns': '모든 서브에이전트',
|
|
700
700
|
'settings.fallback': '대체 워커',
|
|
701
|
-
'settings.fallbackHint': '
|
|
701
|
+
'settings.fallbackHint': '이 등급의 프로바이더 한도를 모두 썼을 때',
|
|
702
702
|
'settings.haiku': 'Haiku',
|
|
703
703
|
'settings.jev': 'Jev',
|
|
704
|
-
'settings.routerModel': '
|
|
705
|
-
'settings.haikuHint': 'Claude
|
|
706
|
-
'settings.keyEnv': 'TYPESAFE_API_KEY
|
|
707
|
-
'settings.keyFile': '~/.config/jev/.env에
|
|
708
|
-
'settings.keySaved': '
|
|
704
|
+
'settings.routerModel': '리플 모델',
|
|
705
|
+
'settings.haikuHint': 'Claude 계정으로 Haiku 5.5 사용 · 프롬프트당 약 1초',
|
|
706
|
+
'settings.keyEnv': 'TYPESAFE_API_KEY의 키 사용',
|
|
707
|
+
'settings.keyFile': '~/.config/jev/.env에 저장',
|
|
708
|
+
'settings.keySaved': '저장 완료',
|
|
709
709
|
'settings.keyPaste': 'TypeSafe API 키 붙여넣기',
|
|
710
710
|
'settings.saveKey': '저장',
|
|
711
711
|
'settings.testing': '확인 중…',
|
|
712
|
-
'settings.keyWorks': 'API 키
|
|
712
|
+
'settings.keyWorks': 'API 키 확인 완료',
|
|
713
713
|
'settings.keyRejected': 'API 키 인증 실패',
|
|
714
714
|
'settings.key': 'API 키',
|
|
715
|
-
'settings.test': '
|
|
716
|
-
'settings.noModels': '
|
|
717
|
-
'settings.haikuFallback': '
|
|
715
|
+
'settings.test': '확인',
|
|
716
|
+
'settings.noModels': '리플 모델 목록이 비어 있습니다.',
|
|
717
|
+
'settings.haikuFallback': '실패하면 Haiku로 대체',
|
|
718
718
|
'settings.keepWarm': '캐시 유지',
|
|
719
|
-
'settings.keepWarmHint': '만료 직전에
|
|
719
|
+
'settings.keepWarmHint': '캐시 만료 직전에 유지 요청 전송',
|
|
720
720
|
'settings.for': '유지 시간',
|
|
721
|
-
'settings.afterReply': '마지막
|
|
721
|
+
'settings.afterReply': '마지막 응답부터',
|
|
722
722
|
'settings.chatsFrom': '대상 대화',
|
|
723
723
|
'settings.tokens': '토큰 이상',
|
|
724
|
-
'settings.warmCost': '
|
|
725
|
-
'settings.noSkill': '스킬 없음: 1
|
|
724
|
+
'settings.warmCost': '유지 요청마다 캐시에서 대화 전체를 다시 읽습니다. 비용은 일반 입력 비용의 약 1/10이며, 요금제 한도도 같은 비율로 사용합니다.',
|
|
725
|
+
'settings.noSkill': '스킬 없음: 응답 1회로 HANDOFF.md 작성',
|
|
726
726
|
'settings.compactWith': '압축 담당 모델',
|
|
727
|
-
'settings.sessionCompactor': '
|
|
727
|
+
'settings.sessionCompactor': '현재 대화 기본',
|
|
728
728
|
'settings.afterHandoff': '인수인계 후 동작',
|
|
729
729
|
'settings.handoffButton': '인수인계 버튼 표시',
|
|
730
|
-
'settings.whenAdvised': '
|
|
730
|
+
'settings.whenAdvised': '권장할 때만',
|
|
731
731
|
'settings.always': '항상',
|
|
732
732
|
'settings.fullHandoff': '전체 인수인계',
|
|
733
733
|
'settings.heavyAt': '대화 압축 기준',
|
|
734
734
|
'settings.context': '컨텍스트',
|
|
735
|
-
'settings.cacheTimer': '캐시
|
|
736
|
-
'settings.reason': '판정
|
|
737
|
-
'settings.route': '
|
|
735
|
+
'settings.cacheTimer': '캐시 남은 시간',
|
|
736
|
+
'settings.reason': '판정 이유',
|
|
737
|
+
'settings.route': '요청 경로',
|
|
738
738
|
'settings.limits': '한도',
|
|
739
|
-
'settings.layout': '
|
|
739
|
+
'settings.layout': '배치',
|
|
740
740
|
'settings.dashboard': '대시보드',
|
|
741
|
-
'settings.minimal': '
|
|
742
|
-
'settings.footerHint': '
|
|
741
|
+
'settings.minimal': '한 줄',
|
|
742
|
+
'settings.footerHint': '입력창 아래 한 줄로 표시',
|
|
743
743
|
'settings.appearance': '테마',
|
|
744
|
-
'settings.dark': '
|
|
745
|
-
'settings.lightAppearance': '
|
|
746
|
-
'settings.skin': '
|
|
744
|
+
'settings.dark': '어두운 테마',
|
|
745
|
+
'settings.lightAppearance': '밝은 테마',
|
|
746
|
+
'settings.skin': '모양',
|
|
747
747
|
'settings.skinLine': '상태 바와 카드의 모양을 정합니다.',
|
|
748
|
-
'settings.skinDeep': '
|
|
749
|
-
'settings.skinFlat': '
|
|
748
|
+
'settings.skinDeep': '입체',
|
|
749
|
+
'settings.skinFlat': '평면',
|
|
750
750
|
'settings.show': '표시 항목',
|
|
751
751
|
'settings.language': '언어',
|
|
752
752
|
'settings.title': '설정',
|
|
753
753
|
'settings.quick': '빠른 설정',
|
|
754
|
-
'settings.effortAuto': '
|
|
754
|
+
'settings.effortAuto': '추론 강도 자동 선택',
|
|
755
755
|
'settings.openAll': '전체 설정 열기',
|
|
756
|
-
'setup.workersNote': '
|
|
757
|
-
'setup.changeDashboard': '상태 바나 /ripple에서 빠르게
|
|
756
|
+
'setup.workersNote': '처음에는 기본 워커 단계에 따라 배정합니다. 대시보드에서 단계별 워커를 바꿀 수 있습니다.',
|
|
757
|
+
'setup.changeDashboard': '상태 바나 /ripple에서 빠르게 바꿉니다. 세부 설정은 전체 설정을 열어 대시보드에서 바꿉니다.',
|
|
758
758
|
'settings.save': '저장',
|
|
759
759
|
'settings.discard': '변경 취소',
|
|
760
760
|
'settings.close': '닫기',
|
|
761
|
-
'settings.autoLine': '프롬프트마다 알맞은 강도를 자동으로 고릅니다.',
|
|
762
|
-
'settings.autoOffNote': '앱의 강도 메뉴에서 고른 값을 그대로 씁니다.',
|
|
763
|
-
'settings.judgeLine': '추론 강도와
|
|
764
|
-
'settings.modeLine': '
|
|
765
|
-
'settings.warmLine': '
|
|
766
|
-
'settings.warmCostShort': '
|
|
767
|
-
'settings.sayAuto': '{judge}
|
|
768
|
-
'settings.sayManual': '추론 강도는 앱에서 고른 대로
|
|
769
|
-
'settings.sayWarm': '
|
|
770
|
-
'band.hideBand': '
|
|
771
|
-
'settings.unsaved': '●
|
|
761
|
+
'settings.autoLine': '프롬프트마다 알맞은 추론 강도를 자동으로 고릅니다.',
|
|
762
|
+
'settings.autoOffNote': '앱의 추론 강도 메뉴에서 고른 값을 그대로 씁니다.',
|
|
763
|
+
'settings.judgeLine': '프롬프트의 추론 강도와 맡긴 작업의 등급을 정합니다.',
|
|
764
|
+
'settings.modeLine': '맡긴 작업을 실행할 워커 묶음입니다.',
|
|
765
|
+
'settings.warmLine': '캐시 만료 직전에 유지 요청을 보냅니다.',
|
|
766
|
+
'settings.warmCostShort': '유지 요청마다 일반 입력 비용의 약 1/10이 듭니다.',
|
|
767
|
+
'settings.sayAuto': '{judge} 모델이 프롬프트마다 추론 강도를 고릅니다.',
|
|
768
|
+
'settings.sayManual': '추론 강도는 앱에서 고른 대로 유지합니다.',
|
|
769
|
+
'settings.sayWarm': '캐시도 만료되지 않도록 유지합니다.',
|
|
770
|
+
'band.hideBand': '상태 바 숨기기',
|
|
771
|
+
'settings.unsaved': '● 저장 전',
|
|
772
772
|
// Setup.
|
|
773
|
-
'setup.judgeTitle': '판정
|
|
774
|
-
'setup.judgeBlurb': '작고 빠른 판정 모델이 프롬프트마다 강도를, 작업마다 워커를
|
|
775
|
-
'setup.workersTitle': '
|
|
776
|
-
'setup.cacheTitle': '
|
|
777
|
-
'setup.cacheBlurb': '
|
|
778
|
-
'setup.effortSummary': '
|
|
773
|
+
'setup.judgeTitle': '판정 모델 선택',
|
|
774
|
+
'setup.judgeBlurb': '작고 빠른 판정 모델이 프롬프트마다 추론 강도를, 작업마다 워커를 고릅니다.',
|
|
775
|
+
'setup.workersTitle': '작업을 맡길 워커',
|
|
776
|
+
'setup.cacheTitle': '캐시 유지 설정',
|
|
777
|
+
'setup.cacheBlurb': '대화를 쉬면 캐시가 만료됩니다. 자리를 비운 동안 리플이 유지 요청을 보내 캐시를 유지합니다.',
|
|
778
|
+
'setup.effortSummary': '추론 강도 자동 선택 {state}, 판정 모델: {judge}',
|
|
779
779
|
'setup.cacheSummary': '응답 후 {hours}시간 동안 캐시 유지',
|
|
780
|
-
'setup.cacheOff': '캐시 유지
|
|
781
|
-
'setup.ready': '
|
|
782
|
-
'setup.welcome': '
|
|
780
|
+
'setup.cacheOff': '캐시 유지 꺼짐',
|
|
781
|
+
'setup.ready': '리플 준비 완료',
|
|
782
|
+
'setup.welcome': '리플을 시작합니다',
|
|
783
783
|
'setup.start': '시작',
|
|
784
784
|
'setup.finish': '완료',
|
|
785
785
|
'setup.next': '다음',
|
|
@@ -787,15 +787,15 @@ const KO: Record<Key, string> = {
|
|
|
787
787
|
'setup.skip': '설정 건너뛰기',
|
|
788
788
|
// Agents.
|
|
789
789
|
'agents.waiting': '대기 중',
|
|
790
|
-
'agents.routerModel': '
|
|
791
|
-
'agents.marker': '
|
|
790
|
+
'agents.routerModel': '리플 모델',
|
|
791
|
+
'agents.marker': '직접 지정',
|
|
792
792
|
'agents.default': '기본값',
|
|
793
|
-
'agents.session': '
|
|
794
|
-
'agents.by': '{name}
|
|
793
|
+
'agents.session': '현재 대화 모델',
|
|
794
|
+
'agents.by': '{name} 기준',
|
|
795
795
|
'agents.thinking': '추론 중',
|
|
796
796
|
'agents.fallback': '▲ 대체 워커 실행: {reason}',
|
|
797
|
-
'agents.emptyTitle': '
|
|
798
|
-
'agents.emptyBody': 'Claude가
|
|
797
|
+
'agents.emptyTitle': '아직 에이전트가 없습니다',
|
|
798
|
+
'agents.emptyBody': 'Claude가 맡긴 작업을 여기에 표시합니다. 리플이 고른 워커와 선택 이유도 함께 보여 줍니다.',
|
|
799
799
|
'agents.liveCount': '{count}개 실행 중',
|
|
800
800
|
'agents.noneRunning': '실행 중인 에이전트 없음',
|
|
801
801
|
'agents.doneCount': '{count}개 완료',
|
|
@@ -803,114 +803,114 @@ const KO: Record<Key, string> = {
|
|
|
803
803
|
'log.resent': '↻ {status} 재전송',
|
|
804
804
|
'log.input': '입력 {tokens}',
|
|
805
805
|
'log.output': '출력 {tokens}',
|
|
806
|
-
'log.thisSession': '현재
|
|
807
|
-
'log.allSessions': '
|
|
808
|
-
'log.showAll': '
|
|
809
|
-
'log.onlySession': '현재
|
|
810
|
-
'log.legend': '● 현재
|
|
811
|
-
'log.empty': '아직
|
|
812
|
-
'log.judge': '강도 판정',
|
|
806
|
+
'log.thisSession': '현재 대화',
|
|
807
|
+
'log.allSessions': '모든 대화',
|
|
808
|
+
'log.showAll': '모든 대화 보기',
|
|
809
|
+
'log.onlySession': '현재 대화만 보기',
|
|
810
|
+
'log.legend': '● 현재 대화 ○ 다른 대화',
|
|
811
|
+
'log.empty': '아직 모델에 보낸 요청이 없습니다.',
|
|
812
|
+
'log.judge': '추론 강도 판정',
|
|
813
813
|
'log.judgeWorker': '워커 판정',
|
|
814
814
|
'log.judgeFell': '{asked} 실패 → {by}',
|
|
815
815
|
'log.sure': '확신도 {percent}%',
|
|
816
816
|
// Toasts and locally generated failure/reason text.
|
|
817
|
-
'toasts.keySingle': '
|
|
818
|
-
'toasts.keyPrivateFailed': 'Jev 키
|
|
819
|
-
'toasts.keySaved': '
|
|
820
|
-
'toasts.judgeDown': '
|
|
821
|
-
'toasts.keyMissing': 'Jev 키
|
|
817
|
+
'toasts.keySingle': 'TypeSafe API 키는 하나만 붙여 넣어야 합니다',
|
|
818
|
+
'toasts.keyPrivateFailed': 'Jev 키 파일을 본인만 읽고 쓰도록 설정하지 못했습니다 (chmod 600)',
|
|
819
|
+
'toasts.keySaved': '리플: Jev 키를 본인만 읽고 쓰도록 저장했습니다. 환경 변수의 키를 먼저 씁니다.',
|
|
820
|
+
'toasts.judgeDown': '리플: {reason}. 현재 강도를 유지하거나 Haiku가 대신 판정합니다.',
|
|
821
|
+
'toasts.keyMissing': 'Jev 키 없음',
|
|
822
822
|
'toasts.jevNoVerdict': 'Jev 판정 결과 없음',
|
|
823
|
-
'judge.keptUnsure': '
|
|
824
|
-
'toasts.routerNoVerdict': '
|
|
823
|
+
'judge.keptUnsure': '판정이 애매해 현재 추론 강도 유지',
|
|
824
|
+
'toasts.routerNoVerdict': '리플 판정 모델의 결과 없음',
|
|
825
825
|
'toasts.haikuNoVerdict': 'Haiku 판정 결과 없음',
|
|
826
826
|
'toasts.noVerdict': '판정 결과 없음',
|
|
827
827
|
'toasts.judgeUnavailable': '판정 모델 사용 불가',
|
|
828
|
-
'toasts.explicitMarker': '
|
|
829
|
-
'toasts.sessionTier': '
|
|
830
|
-
'toasts.workerFallback': '
|
|
831
|
-
'toasts.modeEnded': '{name} 모드가
|
|
832
|
-
'toasts.yourPick': '
|
|
833
|
-
'toasts.effortEnter': '
|
|
834
|
-
'toasts.settingsSaved': '
|
|
835
|
-
'toasts.clipboardFallback': '
|
|
836
|
-
'toasts.handoffFailed': '
|
|
837
|
-
'toasts.compactFailed': '
|
|
838
|
-
'toasts.warmStopped': '
|
|
839
|
-
'toasts.warmBoundReason': '캐시 유지 중단:
|
|
840
|
-
'toasts.warmBound': '
|
|
828
|
+
'toasts.explicitMarker': '워커 직접 지정',
|
|
829
|
+
'toasts.sessionTier': '주 대화에서 정한 등급: {tier}',
|
|
830
|
+
'toasts.workerFallback': '리플: {reason}. 대신 {name} 워커를 실행합니다.',
|
|
831
|
+
'toasts.modeEnded': '{name} 모드가 끝났습니다.',
|
|
832
|
+
'toasts.yourPick': '직접 선택',
|
|
833
|
+
'toasts.effortEnter': '리플: Enter를 누르면 앱에도 같은 추론 강도를 적용합니다.',
|
|
834
|
+
'toasts.settingsSaved': '리플: 설정을 저장했습니다.',
|
|
835
|
+
'toasts.clipboardFallback': '리플: 클립보드를 쓸 수 없어 입력창에 인수인계 요약을 넣었습니다.',
|
|
836
|
+
'toasts.handoffFailed': '리플: 인수인계에 실패했습니다. 대화는 그대로 둡니다.',
|
|
837
|
+
'toasts.compactFailed': '리플: 대화 압축에 실패했습니다. 대화는 그대로 둡니다.',
|
|
838
|
+
'toasts.warmStopped': '리플: {reason}',
|
|
839
|
+
'toasts.warmBoundReason': '캐시 유지 중단: 유지 시간 종료',
|
|
840
|
+
'toasts.warmBound': '리플: 설정한 시간이 지나 캐시 유지를 멈췄습니다.',
|
|
841
841
|
'toasts.appEffort': '앱 추론 강도',
|
|
842
|
-
'toasts.appEffortChanged': '
|
|
843
|
-
'toasts.autoOff': '
|
|
844
|
-
'toasts.handoffEmpty': '
|
|
845
|
-
'toasts.ownModel': '
|
|
846
|
-
'toasts.transcriptEmpty': '대화 기록이
|
|
847
|
-
'toasts.summaryEmpty': 'Haiku
|
|
848
|
-
'toasts.compactFallback': '
|
|
849
|
-
'toasts.error': '
|
|
850
|
-
'toasts.jevTimeout': 'Jev
|
|
851
|
-
'toasts.jevRejected': 'Jev 키 인증
|
|
852
|
-
'toasts.jevCredits': 'Jev 크레딧
|
|
853
|
-
'toasts.jevRateLimited': 'Jev 속도
|
|
842
|
+
'toasts.appEffortChanged': '앱에서 추론 강도 변경',
|
|
843
|
+
'toasts.autoOff': '리플: 앱에서 추론 강도를 바꿔 자동 선택을 껐습니다.',
|
|
844
|
+
'toasts.handoffEmpty': '리플: 인수인계 응답이 없습니다. 대화는 그대로 둡니다.',
|
|
845
|
+
'toasts.ownModel': '리플: {name} 에이전트는 "{model}" 대신 자체 모델을 씁니다.',
|
|
846
|
+
'toasts.transcriptEmpty': '대화 기록이 없거나 압축에 쓸 수 있는 토큰 한도를 넘었습니다.',
|
|
847
|
+
'toasts.summaryEmpty': 'Haiku가 쓸 만한 요약을 보내지 않았습니다.',
|
|
848
|
+
'toasts.compactFallback': '리플: Haiku 압축에 실패해 현재 대화의 기본 방식으로 압축합니다.',
|
|
849
|
+
'toasts.error': '리플: {reason}',
|
|
850
|
+
'toasts.jevTimeout': 'Jev 응답 대기 시간 초과',
|
|
851
|
+
'toasts.jevRejected': 'Jev 키 인증 실패',
|
|
852
|
+
'toasts.jevCredits': 'Jev 크레딧 소진',
|
|
853
|
+
'toasts.jevRateLimited': 'Jev 요청 속도 한도 초과',
|
|
854
854
|
'toasts.jevHttp': 'Jev 요청 실패 ({status})',
|
|
855
|
-
'toasts.warmNoReply': '캐시 유지 중단:
|
|
856
|
-
'toasts.warmNoCache': '캐시 유지 중단:
|
|
857
|
-
'toasts.providerQuota': 'ChatGPT 계정을 사용할 수 없거나
|
|
858
|
-
'toasts.logNotPlaced': '
|
|
855
|
+
'toasts.warmNoReply': '캐시 유지 중단: 유지 요청에 응답 없음',
|
|
856
|
+
'toasts.warmNoCache': '캐시 유지 중단: 캐시를 읽지 않음',
|
|
857
|
+
'toasts.providerQuota': 'ChatGPT 계정을 사용할 수 없거나 한도를 모두 썼습니다.',
|
|
858
|
+
'toasts.logNotPlaced': '여기서는 로그를 열 수 없습니다: {reason}',
|
|
859
859
|
'toasts.saveMode': '절약 모드',
|
|
860
|
-
'toasts.yourSettings': '
|
|
861
|
-
'toasts.jevNetwork': 'Jev
|
|
862
|
-
'toasts.workerMissing': '{name} 에이전트
|
|
860
|
+
'toasts.yourSettings': '직접 정한 설정',
|
|
861
|
+
'toasts.jevNetwork': 'Jev 연결 불가',
|
|
862
|
+
'toasts.workerMissing': '{name} 에이전트 설치 안 됨',
|
|
863
863
|
// Commands (stats and debug labels included).
|
|
864
|
-
'commands.description': '
|
|
864
|
+
'commands.description': '리플 추론 강도, 워커, 캐시, 대화 관리',
|
|
865
865
|
'commands.argumentHint': 'settings|setup|auto|warm|save|handoff [full]|stats|debug|agents|log|bar|cold|swamp|hot|down|kept',
|
|
866
|
-
'commands.logDescription': '
|
|
867
|
-
'commands.barDescription': '
|
|
866
|
+
'commands.logDescription': '리플 요청 로그 열기/닫기',
|
|
867
|
+
'commands.barDescription': '리플 상태 바 표시/숨기기',
|
|
868
868
|
'commands.logTitle': 'ClaudeRipple',
|
|
869
|
-
'commands.agentsTitle': '
|
|
870
|
-
'commands.help': '
|
|
871
|
-
'commands.done': '
|
|
872
|
-
'commands.logOpened': '
|
|
873
|
-
'commands.logClosed': '
|
|
874
|
-
'commands.barShown': '
|
|
875
|
-
'commands.barShownMinimal': '
|
|
876
|
-
'commands.barHidden': '
|
|
877
|
-
'commands.statsAuto': '자동: 프롬프트 {prompts}개, 요청 {requests}개,
|
|
869
|
+
'commands.agentsTitle': '리플 에이전트',
|
|
870
|
+
'commands.help': '리플 명령: settings, setup, auto, warm, save, handoff [full], stats, debug, agents, log, bar, cold, swamp, hot, down, kept.',
|
|
871
|
+
'commands.done': '리플: {command} 완료.',
|
|
872
|
+
'commands.logOpened': '리플 로그를 열었습니다.',
|
|
873
|
+
'commands.logClosed': '리플 로그를 닫았습니다.',
|
|
874
|
+
'commands.barShown': '입력창 위에 리플 상태 바를 표시합니다.',
|
|
875
|
+
'commands.barShownMinimal': '배치가 한 줄로 설정되어 있어 입력창 아래에 리플을 표시합니다. 입력창 위에 상태 바를 보려면 /ripple settings에서 배치를 대시보드로 바꾸면 됩니다.',
|
|
876
|
+
'commands.barHidden': '리플 상태 바를 숨겼습니다. /ripple-bar로 다시 표시합니다.',
|
|
877
|
+
'commands.statsAuto': '자동: 프롬프트 {prompts}개, 요청 {requests}개, 환산 토큰 {total}',
|
|
878
878
|
'commands.statsTokens': '토큰: 입력 {input}, 쓰기 {write}, 읽기 {read}, 출력 {output}',
|
|
879
|
-
'commands.statsEffort': '{effort} 프롬프트 {prompts}개 /
|
|
880
|
-
'commands.statsJudges': '판정 모델:
|
|
879
|
+
'commands.statsEffort': '{effort} 프롬프트 {prompts}개 / 환산 토큰 {cost}',
|
|
880
|
+
'commands.statsJudges': '판정 모델: Haiku {haiku}, Jev {jev}, 모델 {model}; 토큰 {tokens}, {ms} ms (평균 {avg} ms)',
|
|
881
881
|
'commands.statsWorkers': '워커: {workers}',
|
|
882
|
-
'commands.statsWarm': '캐시 유지:
|
|
882
|
+
'commands.statsWarm': '캐시 유지: 유지 요청 {pings}회, 환산 토큰 {cost}',
|
|
883
883
|
'commands.debugJudge': '판정 모델',
|
|
884
|
-
'commands.debugJudgeModel': '판정용
|
|
884
|
+
'commands.debugJudgeModel': '판정용 리플 모델',
|
|
885
885
|
'commands.debugPick': '선택',
|
|
886
886
|
'commands.debugPaused': '일시 중지',
|
|
887
887
|
'commands.debugCache': '캐시',
|
|
888
888
|
'commands.debugWarm': '캐시 유지',
|
|
889
|
-
'commands.debugLastSpawn': '최근
|
|
889
|
+
'commands.debugLastSpawn': '최근 워커 실행',
|
|
890
890
|
'commands.debugLastRequest': '최근 요청',
|
|
891
891
|
'commands.debugEffort': '추론 강도',
|
|
892
|
-
'commands.debugWhy': '
|
|
893
|
-
'commands.debugBy': '선택
|
|
892
|
+
'commands.debugWhy': '이유',
|
|
893
|
+
'commands.debugBy': '선택 기준',
|
|
894
894
|
'commands.debugAt': '시각',
|
|
895
895
|
'commands.debugSure': '확신도',
|
|
896
|
-
'commands.debugTtlMs': '
|
|
896
|
+
'commands.debugTtlMs': '유효 시간(ms)',
|
|
897
897
|
'commands.debugLastReplyAt': '최근 응답 시각',
|
|
898
898
|
'commands.debugExpiresAt': '만료 시각',
|
|
899
|
-
'commands.debugPings': '
|
|
899
|
+
'commands.debugPings': '유지 요청 횟수',
|
|
900
900
|
'commands.debugCost': '비용',
|
|
901
|
-
'commands.debugStopped': '중단
|
|
902
|
-
'commands.debugLastPingAt': '최근
|
|
901
|
+
'commands.debugStopped': '중단 이유',
|
|
902
|
+
'commands.debugLastPingAt': '최근 유지 요청 시각',
|
|
903
903
|
'commands.debugTier': '등급',
|
|
904
904
|
'commands.debugTarget': '대상',
|
|
905
905
|
'commands.debugAgent': '에이전트',
|
|
906
906
|
'commands.debugModel': '모델',
|
|
907
907
|
'commands.debugMs': 'ms',
|
|
908
|
-
'commands.debugFallbackReason': '대체
|
|
909
|
-
'commands.debugAppEffort': '앱 강도',
|
|
910
|
-
'commands.debugSentEffort': '
|
|
911
|
-
'commands.debugLog': '
|
|
912
|
-
'commands.routerHttp': '
|
|
913
|
-
'commands.compactSkip': '압축이
|
|
908
|
+
'commands.debugFallbackReason': '대체 이유',
|
|
909
|
+
'commands.debugAppEffort': '앱 추론 강도',
|
|
910
|
+
'commands.debugSentEffort': '요청에 쓴 추론 강도',
|
|
911
|
+
'commands.debugLog': '리플 {where}: {reason}',
|
|
912
|
+
'commands.routerHttp': '리플 HTTP {status}',
|
|
913
|
+
'commands.compactSkip': '대화 압축이 필요하면 리플이 Haiku로 요약합니다.',
|
|
914
914
|
// Workers card, Jev source, and worker picks in the Agents pane.
|
|
915
915
|
'workers.previous': '이전',
|
|
916
916
|
'workers.next': '다음',
|
|
@@ -925,34 +925,34 @@ const KO: Record<Key, string> = {
|
|
|
925
925
|
'workers.docs': '문서',
|
|
926
926
|
'workers.research': '조사',
|
|
927
927
|
'workers.mode': '모드',
|
|
928
|
-
'workers.rung.light': '
|
|
929
|
-
'workers.rung.standard': '
|
|
930
|
-
'workers.rung.hard': '
|
|
931
|
-
'workers.rung.plan': '
|
|
932
|
-
'workers.rungHint.light': '파일
|
|
933
|
-
'workers.rungHint.standard': '
|
|
934
|
-
'workers.rungHint.hard': '
|
|
935
|
-
'workers.rungHint.plan': '최상의
|
|
936
|
-
'workers.rungEmpty': '{rung}에
|
|
937
|
-
'workers.notCandidate': '이
|
|
938
|
-
'workers.sessionModel': '
|
|
939
|
-
'workers.offset': '추론 강도
|
|
940
|
-
'workers.anyEffort': '
|
|
941
|
-
'workers.noTarget': '
|
|
942
|
-
'workers.judgeBlurb': '프롬프트의 추론 강도와
|
|
943
|
-
'workers.disabled': '{provider}
|
|
944
|
-
'workers.nested': '서브에이전트는
|
|
945
|
-
'workers.none': '
|
|
946
|
-
'workers.loading': '
|
|
947
|
-
'workers.providerSub': '{count}개 중 {on}개
|
|
948
|
-
'workers.fallbackHint': '
|
|
949
|
-
'workers.pinDetails': '추가
|
|
950
|
-
'workers.back': '뒤로
|
|
951
|
-
'settings.ladderWaiting': '
|
|
952
|
-
'jev.zenMissing': '
|
|
928
|
+
'workers.rung.light': '기본 워커',
|
|
929
|
+
'workers.rung.standard': '표준 워커',
|
|
930
|
+
'workers.rung.hard': '고급 워커',
|
|
931
|
+
'workers.rung.plan': '최상위 워커',
|
|
932
|
+
'workers.rungHint.light': '파일 찾기, 간단한 조회, 로그 훑기, 반복 수정',
|
|
933
|
+
'workers.rungHint.standard': '요구사항에 따른 구현, 코드 정리, 요약, 초안 작성',
|
|
934
|
+
'workers.rungHint.hard': '어려운 오류 해결, 여러 파일 수정, 별도 검토와 반박',
|
|
935
|
+
'workers.rungHint.plan': '최상의 결과: 기획, 설계, 전체 구조 설계, 의견 제시',
|
|
936
|
+
'workers.rungEmpty': '{rung}에 지정한 모델이 없습니다',
|
|
937
|
+
'workers.notCandidate': '{name}: 이 분야의 후보 모델이 아닙니다',
|
|
938
|
+
'workers.sessionModel': '현재 대화 모델',
|
|
939
|
+
'workers.offset': '추론 강도 조정',
|
|
940
|
+
'workers.anyEffort': '모든 추론 강도',
|
|
941
|
+
'workers.noTarget': '다음 단계 / 대체 워커',
|
|
942
|
+
'workers.judgeBlurb': '프롬프트의 추론 강도와 작업의 분야·등급을 고르는 모델입니다.',
|
|
943
|
+
'workers.disabled': '{provider} 꺼짐',
|
|
944
|
+
'workers.nested': '서브에이전트는 다른 서브에이전트를 띄울 수 없습니다. 이 작업은 직접 마친 뒤 결과를 보고해야 합니다.',
|
|
945
|
+
'workers.none': '실행할 수 있는 워커 없음',
|
|
946
|
+
'workers.loading': '리플의 워커 목록을 불러오는 중…',
|
|
947
|
+
'workers.providerSub': '{count}개 중 {on}개 켜짐',
|
|
948
|
+
'workers.fallbackHint': '지정한 워커를 실행할 수 없을 때',
|
|
949
|
+
'workers.pinDetails': '추가 설정',
|
|
950
|
+
'workers.back': '뒤로',
|
|
951
|
+
'settings.ladderWaiting': '리플의 모델 목록을 기다리고 있습니다.',
|
|
952
|
+
'jev.zenMissing': '리플 설정에 OpenCode Zen 인증 키가 없습니다',
|
|
953
953
|
'agents.domainLevel': '{domain} / {level}',
|
|
954
954
|
'agents.title': '에이전트',
|
|
955
|
-
'agents.total': '전체
|
|
955
|
+
'agents.total': '전체 에이전트',
|
|
956
956
|
'agents.input': '입력',
|
|
957
957
|
'agents.cache': '캐시',
|
|
958
958
|
'agents.output': '출력',
|
|
@@ -964,7 +964,7 @@ const KO: Record<Key, string> = {
|
|
|
964
964
|
'agents.back': '목록으로',
|
|
965
965
|
'agents.task': '작업 지시',
|
|
966
966
|
'agents.answer': '최종 답변',
|
|
967
|
-
'agents.
|
|
967
|
+
'agents.dropped': '너무 길어 앞의 {count}개는 생략했습니다',
|
|
968
968
|
'agents.act.command': '명령어 {count}개 실행함',
|
|
969
969
|
'agents.act.commandOne': '명령어 {count}개 실행함',
|
|
970
970
|
'agents.act.read': '파일 {count}개 읽음',
|
|
@@ -973,8 +973,8 @@ const KO: Record<Key, string> = {
|
|
|
973
973
|
'agents.act.editOne': '파일 {count}개를 편집함',
|
|
974
974
|
'agents.act.search': '검색 {count}회',
|
|
975
975
|
'agents.act.searchOne': '검색 {count}회',
|
|
976
|
-
'agents.act.web': '웹 {count}회',
|
|
977
|
-
'agents.act.webOne': '웹 {count}회',
|
|
976
|
+
'agents.act.web': '웹 요청 {count}회',
|
|
977
|
+
'agents.act.webOne': '웹 요청 {count}회',
|
|
978
978
|
'agents.act.agent': '에이전트 {count}개',
|
|
979
979
|
'agents.act.agentOne': '에이전트 {count}개',
|
|
980
980
|
'agents.act.other': '도구 {count}개 사용함',
|
|
@@ -983,7 +983,7 @@ const KO: Record<Key, string> = {
|
|
|
983
983
|
'agents.act.moreOne': '그 외 작업 {count}개',
|
|
984
984
|
'agents.act.failed': '{count}개 실패',
|
|
985
985
|
'agents.deny': '이 에이전트의 대화를 읽을 수 없습니다: {reason}',
|
|
986
|
-
'agents.gone': '
|
|
986
|
+
'agents.gone': '이 에이전트는 더는 목록에 없습니다.',
|
|
987
987
|
'agents.nothingYet': '아직 대화 내용이 없습니다.',
|
|
988
988
|
// Time units: countdowns, reset times, durations.
|
|
989
989
|
'units.seconds': '{n}초',
|
|
@@ -1459,7 +1459,7 @@ const ZH: Record<Key, string> = {
|
|
|
1459
1459
|
'agents.back': '返回列表',
|
|
1460
1460
|
'agents.task': '任务',
|
|
1461
1461
|
'agents.answer': '最终回答',
|
|
1462
|
-
'agents.
|
|
1462
|
+
'agents.dropped': '内容过长,已省略前面 {count} 条',
|
|
1463
1463
|
'agents.act.command': '运行了 {count} 条命令',
|
|
1464
1464
|
'agents.act.commandOne': '运行了 {count} 条命令',
|
|
1465
1465
|
'agents.act.read': '读取了 {count} 个文件',
|
|
@@ -1954,7 +1954,7 @@ const JA: Record<Key, string> = {
|
|
|
1954
1954
|
'agents.back': '一覧へ',
|
|
1955
1955
|
'agents.task': 'タスク',
|
|
1956
1956
|
'agents.answer': '最終回答',
|
|
1957
|
-
'agents.
|
|
1957
|
+
'agents.dropped': '長すぎるため、前の {count} 件を省略しました',
|
|
1958
1958
|
'agents.act.command': '{count} 件のコマンドを実行',
|
|
1959
1959
|
'agents.act.commandOne': '{count} 件のコマンドを実行',
|
|
1960
1960
|
'agents.act.read': '{count} 件のファイルを読み取り',
|
|
@@ -2449,7 +2449,7 @@ const ES: Record<Key, string> = {
|
|
|
2449
2449
|
'agents.back': 'Todos los agentes',
|
|
2450
2450
|
'agents.task': 'Tarea',
|
|
2451
2451
|
'agents.answer': 'Respuesta final',
|
|
2452
|
-
'agents.
|
|
2452
|
+
'agents.dropped': 'Se omiten {count} entradas anteriores: demasiado largo',
|
|
2453
2453
|
'agents.act.command': '{count} comandos ejecutados',
|
|
2454
2454
|
'agents.act.commandOne': '{count} comando ejecutado',
|
|
2455
2455
|
'agents.act.read': '{count} archivos leídos',
|
|
@@ -2944,7 +2944,7 @@ const PT: Record<Key, string> = {
|
|
|
2944
2944
|
'agents.back': 'Todos os agentes',
|
|
2945
2945
|
'agents.task': 'Tarefa',
|
|
2946
2946
|
'agents.answer': 'Resposta final',
|
|
2947
|
-
'agents.
|
|
2947
|
+
'agents.dropped': '{count} entradas anteriores omitidas: longo demais',
|
|
2948
2948
|
'agents.act.command': '{count} comandos executados',
|
|
2949
2949
|
'agents.act.commandOne': '{count} comando executado',
|
|
2950
2950
|
'agents.act.read': '{count} arquivos lidos',
|