cli-jaw 2.17.47 → 2.17.48
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/dist/src/agent/claude-runtime-run.js +5 -3
- package/dist/src/agent/claude-runtime-run.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +20 -13
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/runtime/acp/runtime-session.js +2 -2
- package/dist/src/agent/runtime/acp/runtime-session.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-session.js +3 -2
- package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -1
- package/dist/src/agent/runtime/events.js +4 -0
- package/dist/src/agent/runtime/events.js.map +1 -1
- package/dist/src/agent/runtime/projection.js +27 -12
- package/dist/src/agent/runtime/projection.js.map +1 -1
- package/dist/src/agent/spawn.js +16 -13
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/core/config.js +2 -0
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/discord/bot.js +1 -2
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/forwarder.js +2 -1
- package/dist/src/discord/forwarder.js.map +1 -1
- package/dist/src/memory/heartbeat-destination.js +64 -0
- package/dist/src/memory/heartbeat-destination.js.map +1 -0
- package/dist/src/memory/heartbeat.js +30 -40
- package/dist/src/memory/heartbeat.js.map +1 -1
- package/dist/src/messaging/forwarder-origin.js +36 -0
- package/dist/src/messaging/forwarder-origin.js.map +1 -1
- package/dist/src/messaging/run-pin.js +58 -0
- package/dist/src/messaging/run-pin.js.map +1 -0
- package/dist/src/messaging/send.js +6 -3
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/routes/chat-sessions.js +9 -4
- package/dist/src/routes/chat-sessions.js.map +1 -1
- package/dist/src/routes/heartbeat.js +18 -1
- package/dist/src/routes/heartbeat.js.map +1 -1
- package/dist/src/slack/bot.js +1 -2
- package/dist/src/slack/bot.js.map +1 -1
- package/dist/src/slack/forwarder.js +4 -1
- package/dist/src/slack/forwarder.js.map +1 -1
- package/dist/src/slack/progress-activity.js +10 -0
- package/dist/src/slack/progress-activity.js.map +1 -1
- package/dist/src/slack/progress-lifecycle.js +7 -0
- package/dist/src/slack/progress-lifecycle.js.map +1 -1
- package/dist/src/slack/progress.js +88 -5
- package/dist/src/slack/progress.js.map +1 -1
- package/dist/src/telegram/bot.js +1 -6
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/forwarder.js +7 -5
- package/dist/src/telegram/forwarder.js.map +1 -1
- package/dist/src/trace/activity-control.js +3 -2
- package/dist/src/trace/activity-control.js.map +1 -1
- package/dist/src/trace/activity-journal.js +3 -1
- package/dist/src/trace/activity-journal.js.map +1 -1
- package/package.json +1 -1
- package/public/dist/.vite/manifest.json +19 -19
- package/public/dist/assets/{ChannelEnablementControl-egwTtO9-.js → ChannelEnablementControl-8KNIMzHd.js} +4 -4
- package/public/dist/assets/{ChannelSetupEntry-CCrUYd2-.js → ChannelSetupEntry-xvHkWzg1.js} +1 -1
- package/public/dist/assets/{ChannelsDiscord-B6rJAsQG.js → ChannelsDiscord-BV1rTT6B.js} +1 -1
- package/public/dist/assets/{ChannelsSlack-CrSIw4Wd.js → ChannelsSlack-YfI_w4Tf.js} +1 -1
- package/public/dist/assets/{ChannelsTelegram-DPrdLEnT.js → ChannelsTelegram-C4WV655d.js} +1 -1
- package/public/dist/assets/{manager-CFwOAoe0.js → manager-KjU4gHRX.js} +1 -1
- package/public/dist/assets/{settings-qkC0NuQ7.js → settings-CjSj1Y5Q.js} +1 -1
- package/public/dist/assets/{settings-embedding-DspkJ6sr.js → settings-embedding-CuWqXH7z.js} +1 -1
- package/public/dist/manager/index.html +1 -1
- package/public/dist/settings/index.html +1 -1
- package/public/locales/en.json +1 -0
- package/public/locales/ja.json +1 -0
- package/public/locales/ko.json +1 -0
- package/public/locales/zh.json +1 -0
|
@@ -19,7 +19,7 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./copy-text-Djg
|
|
|
19
19
|
이 이미지를 분석해주세요.`,"chat.file.sentVideo":`[사용자가 동영상을 보냈습니다: {path}]
|
|
20
20
|
이 동영상 파일을 확인해주세요.`,"chat.file.sentWithMsg":`
|
|
21
21
|
|
|
22
|
-
사용자 메시지: {text}`,"chat.file.uploadFail":`파일 업로드 실패: {msg}`,"chat.requestFail":`요청 실패 ({status})`,"chat.continue":`현재 작업을 이어서 진행합니다.`,"chat.noPendingContinue":`이어갈 작업이 없습니다.`,"chat.voice.label":`🎤 [음성 메시지]`,"sessionHub.title":`세션`,"sessionHub.description":`채널과 로컬 대화를 세션별로 확인합니다.`,"sessionHub.defaultSession":`기본 세션`,"sessionHub.sessionLabel":`세션 {seq}`,"sessionHub.source.local":`로컬`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`메시지`,"sessionHub.lastActivity":`마지막 활동`,"sessionHub.noActivity":`활동 없음`,"sessionHub.empty.title":`아직 채널 세션이 없습니다`,"sessionHub.empty.description":`채널을 연결하면 대화별 세션이 여기 생깁니다.`,"sessionHub.empty.action":`설정에서 채널 연결하기`,"sessionHub.listAria":`세션 목록`,"sessionHub.delete":`삭제`,"sessionHub.deleteConfirm":`이 세션을 삭제할까요? 대화 기록도 함께 삭제됩니다.`,"sessionHub.deleteRemoteDisabled":`채널에 연결된 세션은 삭제할 수 없습니다.`,"sessionHub.deleteFailed":`세션을 삭제하지 못했습니다. 실행 중인지 확인해 주세요.`,"sessionReadonly.message":`읽기 전용입니다. 이 세션에서 보내려면 먼저 전환하세요.`,"sessionReadonly.remote":`채널에 연결된 세션은 웹에서 읽기 전용입니다.`,"sessionReadonly.switch":`세션 /{seq}(으)로 전환`,"sessionReadonly.openSessions":`세션 목록 열기`,"sessionReadonly.composeRejected":`읽기 전용 세션입니다. 위 전환 버튼을 사용해 주세요.`,"sessionReadonly.elicitationRejected":`읽기 전용 세션에서는 응답을 보낼 수 없습니다. 세션을 전환한 뒤 다시 시도하세요.`,"skill.loadFail":`스킬 로드 실패`,"skill.count":`활성 {active}개 / 전체 {total}개`,"skill.countFiltered":`검색 {shown}개 / 활성 {active}개 / 전체 {total}개`,"skill.search.placeholder":`스킬 검색...`,"skill.search.aria":`스킬 검색`,"skill.search.empty":`검색 결과가 없습니다.`,"skill.filter.all":`전체`,"skill.filter.installed":`설치됨`,"skill.filter.productivity":`생산성`,"skill.filter.communication":`커뮤`,"skill.filter.devtools":`개발`,"skill.filter.utility":`유틸`,"skill.filter.smarthome":`홈`,"skill.filter.other":`기타`,"skill.filter.ai":`AI`,"lang.ko":`한국어`,"lang.en":`English`,"lang.ja":`日本語`,"lang.zh":`中文`,"emp.addPrompt":`에이전트를 추가하세요`,"emp.delete":`삭제`,"emp.customRole":`커스텀 역할...`,"emp.customModel":`직접 입력...`,"role.label.frontend":`프런트엔드`,"role.label.backend":`백엔드`,"role.label.data":`데이터`,"role.label.docs":`문서작성`,"role.label.security":`보안`,"role.label.testing":`테스트`,"role.label.custom":`커스텀...`,"hb.empty":`하트비트가 없습니다`,"hb.name":`이름`,"hb.prompt":`프롬프트...`,"hb.add":`+ 새 하트비트 추가`,"hb.kindEvery":`반복`,"hb.kindCron":`cron`,"hb.minutesLabel":`분마다`,"hb.cronLabel":`식`,"hb.timezoneAuto":`비우면 시스템/브라우저 시간대`,"hb.cronPlaceholder":`예: 0 9 * * *`,"hb.invalidCron":`cron 식이 올바르지 않다. 5필드 형식으로 입력해야 한다.`,"hb.invalidTimeZone":`시간대가 올바르지 않다. 예: Asia/Seoul`,"hb.invalidMinutes":`반복 분은 1 이상의 정수여야 한다.`,"hb.invalidSchedule":`하트비트 스케줄이 올바르지 않다.`,"hb.scheduleHintCron":`예: {cron} · 시간대: {timeZone}`,"hb.scheduleHintEvery":`예: {minutes}분마다 · 시간대: {timeZone}`,"cmd.noMatch":`일치하는 커맨드가 없습니다`,"mem.noFiles":`No memory files yet`,"mem.empty":`No memory yet`,"memory.banner.bootstrapRerun":`메모리 bootstrap을 다시 실행하는 중...`,"memory.banner.reindexing":`메모리 인덱스를 재생성하는 중...`,"memory.banner.soulOptimize":`Soul 최적화`,"memory.banner.soulOptimizing":`Soul 최적화 중... (활성 CLI가 작업합니다)`,"memory.banner.soulPromptSent":`✓ Soul 최적화 프롬프트 전송됨. 채팅창을 확인하세요.`,"model.promptInput":`모델 ID를 입력하세요:`,"model.customOption":`직접 입력...`,"model.placeholder":`model ID 입력`,"mcp.syncing":`동기화 중...`,"mcp.installing":`npm i -g 설치 중... (최대 2분 소요)`,"settings.none":`(없음)`,"settings.channel.statusTitle":`전송 상태`,"settings.channel.activeInbound":`대화 수신 채널`,"settings.channel.configured":`설정됨`,"settings.channel.notConfigured":`미설정`,"settings.channel.sendCapable":`발송 가능`,"settings.channel.sendOnlyHint":`수신 채널은 아니지만, 설정되어 있으면 발송은 가능합니다.`,"settings.channel.testSend":`테스트 발송`,"settings.channel.testSendOk":`발송 성공`,"settings.channel.testSendFail":`발송 실패: {error}`,"cli.gemini.auth":`첫 실행 시 브라우저 인증`,"cli.copilot.authHint":`copilot login 또는 gh auth login`,"cli.showMore":`더 보기 ▸`,"cli.authRequired":`설치 / 인증 필요`,"cli.notAuthenticated":`인증 필요 — 아래 명령어 실행`,"drag.drop":`파일을 여기에 드랍하세요`,"status.responding":`응답 중`,"aria.cmdList":`커맨드 목록`,"btn.attach":`파일 첨부`,"input.placeholder":`메시지 입력...`,"queue.pendingTitle":`대기 중`,"queue.copy":`복사`,"queue.delete":`삭제`,"queue.steer":`지금 실행 (steer)`,"queue.cancelArm":`취소 (3초 안에 한 번 더 누르면 취소)`,loading:`로딩 중...`,"btn.editPrompt":`시스템 프롬프트 편집`,"tg.chatIds.placeholder":`콤마 구분 (비워두면 전체 허용)`,"fallback.desc":`CLI 실패 시 자동 재시도 순서`,"btn.cancel":`취소`,"btn.save":`저장`,"btn.stop":`멈춤 (Stop)`,"msg.you":`You`,"stat.messages":`Messages: {count}`,"ui.offline.banner":`오프라인 모드 — 캐시된 메시지 표시 중`,"time.10m":`10분`,"time.30m":`30분`,"time.manual":`수동`,"phase.plan":`기획`,"phase.verify":`기획검증`,"phase.dev":`개발`,"phase.debug":`디버깅`,"phase.integrate":`통합검증`,"orchestrator.allDone":`모든 작업 완료`,"orchestrator.continueHint":`이어서 진행하려면 "이어서 해줘"라고 말씀하세요.`,"orchestrator.noWorklog":`이어갈 worklog가 없습니다.`,"orchestrator.alreadyDone":`모든 작업이 이미 완료되었습니다.`,"sidebar.status":`상태`,"sidebar.memory":`메모리`,"sidebar.stats":`통계`,"sidebar.cliStatus":`CLI 상태`,"sidebar.agentName":`에이전트 이름`,"sidebar.avatar":`아바타`,"sidebar.employees":`직원`,"sidebar.promptTemplates":`프롬프트 템플릿`,"templates.title":`프롬프트 구조`,"templates.back":`뒤로`,"templates.devMode":`개발자 모드`,"templates.hint.click":`클릭하면 프롬프트 내용 확인`,"templates.hint.devEdit":`개발자 모드에서 편집`,"tab.agents":`에이전트`,"tab.skills":`스킬`,"tab.settings":`설정`,"btn.saveSettings":`저장`,"btn.addEmployee":`+ 추가`,"btn.off":`끔`,"btn.on":`켬`,"label.activeCli":`활성 CLI`,"label.model":`모델`,"label.effort":`추론 강도`,"label.permissions":`권한`,"label.workingDir":`작업 디렉토리`,"label.enabled":`활성화`,"label.botToken":`봇 토큰`,"label.chatIds":`허용 채팅 ID`,"label.forwardAll":`자동 전송`,"label.flushEvery":`정리 주기`,"emp.empty":`직원이 없습니다`,"modal.promptTitle":`시스템 프롬프트 (A-2)`,"modal.heartbeatTitle":`하트비트 작업`,"modal.memoryTitle":`메모리`,"code.copy":`복사`,"code.copied":`복사됨 ✓`,"mcp.noServers":`(서버 미설정)`,"mermaid.renderFail":`Mermaid 렌더링 실패`,"orchestrator.dispatching":`처리 중…`,"cmd.ide.desc":`IDE diff 보기`,"cmd.ide.toggled":`IDE diff 모드를 전환했습니다`,"cmd.ide.popToggled":`IDE 팝업을 전환했습니다`,"cmd.ide.usage":`/ide [pop|on|off]`,"label.mentionOnly":`@멘션 시에만 응답`,"help.section.what":`무엇인가`,"help.section.effect":`무엇이 바뀌나`,"help.section.useWhen":`언제 쓰나`,"help.section.howTo":`사용방법`,"help.section.example":`예시`,"help.section.avoidWhen":`언제 안 쓰나`,"help.section.related":`관련`,"help.close":`닫기`,"help.activeCli.title":`활성 CLI`,"help.activeCli.aria":`활성 CLI 도움말`,"help.activeCli.intro":`다음 요청을 처리할 CLI 엔진을 선택합니다.`,"help.activeCli.effect":`다음 실행부터 선택한 CLI의 세션, 모델 설정, 도구 동작 규칙을 사용합니다.`,"help.activeCli.use.1":`Claude, Codex, Gemini, OpenCode, Copilot 사이를 바꿀 때`,"help.activeCli.use.2":`CLI별 동작 차이를 비교하거나 테스트할 때`,"help.activeCli.howTo.1":`상단 활성 CLI 선택기에서 원하는 CLI를 고릅니다.`,"help.activeCli.howTo.2":`채팅에서 /cli <이름> 명령으로도 바꿀 수 있습니다.`,"help.activeCli.example.1":`Claude 응답이 막히면 Codex로 바꿔 같은 작업을 이어갈 수 있습니다.`,"help.activeCli.avoid.1":`같은 CLI 안에서 모델만 바꾸려는 경우`,"help.activeCli.related.1":`/cli`,"help.activeCli.related.2":`모델 선택`,"help.model.title":`모델`,"help.model.aria":`모델 도움말`,"help.model.intro":`현재 활성 CLI가 사용할 모델을 선택합니다.`,"help.model.effect":`다음 요청부터 같은 CLI 안에서 선택한 모델명으로 실행됩니다.`,"help.model.use.1":`더 빠른 모델이나 더 강한 모델로 바꿀 때`,"help.model.use.2":`모델별 기능이나 비용을 조절할 때`,"help.model.howTo.1":`활성 CLI 옆 모델 선택기에서 모델을 고릅니다.`,"help.model.howTo.2":`채팅에서 /model <모델명>으로도 변경할 수 있습니다.`,"help.model.example.1":`일반 코딩은 Sonnet, 긴 설계 검토는 Opus 계열처럼 목적에 맞춰 바꿉니다.`,"help.model.avoid.1":`CLI 엔진 자체를 바꿔야 하는 경우`,"help.model.related.1":`/model`,"help.effort.title":`추론 강도`,"help.effort.aria":`추론 강도 도움말`,"help.effort.intro":`지원되는 모델에서 사고 깊이와 속도를 조절합니다.`,"help.effort.effect":`지원되는 모델에서는 응답 속도와 reasoning 깊이의 균형이 바뀝니다.`,"help.effort.use.1":`복잡한 코드 분석이나 설계 검토가 필요할 때`,"help.effort.use.2":`짧은 작업을 빠르게 처리하고 싶을 때`,"help.effort.howTo.1":`Effort 선택기에서 low, medium, high 같은 값을 고릅니다.`,"help.effort.howTo.2":`빠른 확인은 낮게, 복잡한 구현 전 검토는 높게 둡니다.`,"help.effort.example.1":`오타 수정은 low, 큰 리팩터링 계획은 high로 둡니다.`,"help.effort.avoid.1":`현재 모델이 effort 설정을 무시하는 경우`,"help.effort.related.1":`모델별 지원 여부`,"help.permissions.title":`권한`,"help.permissions.aria":`권한 도움말`,"help.permissions.intro":`Auto (YOLO)는 자동 승인·권한 우회를 요청하는 정책입니다. YOLO는 이 화면에서 Auto의 표시 이름입니다.`,"help.permissions.effect":`자동 승인 방식, 파일 접근 범위와 Safe 지원 여부는 CLI·전송 방식마다 다릅니다.`,"help.permissions.use.1":`로컬 자동화가 반복 승인 없이 진행되어야 할 때`,"help.permissions.use.2":`신뢰할 수 있는 작업 디렉토리에서 긴 작업을 맡길 때`,"help.permissions.howTo.1":`Auto (YOLO) 또는 Safe를 선택한 뒤 저장된 정책을 확인합니다.`,"help.permissions.howTo.2":`승인 절차가 필요하면 해당 런타임의 Safe 지원 여부를 먼저 확인합니다.`,"help.permissions.example.1":`반복 작업에 자동 승인이 필요할 때 Auto (YOLO)를 선택합니다. 명시적인 질문은 계속 나올 수 있습니다.`,"help.permissions.avoid.1":`낯선 디렉토리나 위험한 작업을 다룰 때`,"help.permissions.related.1":`Auto (YOLO) / Safe — 런타임별 지원`,"help.flushAgent.title":`Flush Agent`,"help.flushAgent.aria":`Flush Agent 도움말`,"help.flushAgent.intro":`컨텍스트 정리나 요약에 사용할 CLI와 모델을 지정합니다.`,"help.flushAgent.effect":`compact나 flush 때 활성 모델 대신 지정된 요약용 에이전트가 컨텍스트를 정리합니다.`,"help.flushAgent.use.1":`요약 작업을 빠르고 안정적인 모델에 맡기고 싶을 때`,"help.flushAgent.use.2":`활성 모델과 요약 모델을 분리하고 싶을 때`,"help.flushAgent.howTo.1":`Flush Agent 설정에서 요약에 쓸 CLI와 모델을 고릅니다.`,"help.flushAgent.howTo.2":`긴 작업 전에 /flush 흐름과 함께 사용할 모델을 맞춥니다.`,"help.flushAgent.example.1":`주 작업은 Opus로 하고, 컨텍스트 정리는 빠른 Sonnet으로 맡길 수 있습니다.`,"help.flushAgent.avoid.1":`활성 CLI와 모델을 그대로 쓰면 충분한 경우`,"help.flushAgent.related.1":`/flush`,"help.employees.title":`직원`,"help.employees.aria":`직원 도움말`,"help.employees.intro":`직원은 Boss가 작업을 나눠 맡기는 별도 AI 작업자입니다.`,"help.employees.effect":`Boss의 메인 흐름과 분리된 CLI 세션에서 감사나 검증 결과를 받아옵니다.`,"help.employees.use.1":`프론트/백엔드/문서 검증을 나눌 때`,"help.employees.use.2":`PABCD A/B 단계에서 read-only 검증이 필요할 때`,"help.employees.use.3":`긴 리뷰를 메인 작업과 분리해서 돌릴 때`,"help.employees.howTo.1":`/employee reset — 디스크에서 직원 설정을 다시 로드합니다.`,"help.employees.howTo.2":`직원 디스패치: cli-jaw dispatch --agent "이름" --task "...".`,"help.employees.howTo.3":`PABCD A/B에서 직원은 기본적으로 읽기 전용 감사/검증만 수행합니다.`,"help.employees.howTo.4":`--mutable 플래그를 사용하면 직원이 파일을 수정할 수 있습니다.`,"help.employees.example.1":`Boss가 구현하는 동안 Backend 직원에게 계획의 import와 테스트 위험만 감사시킵니다.`,"help.employees.avoid.1":`단순 파일 읽기`,"help.employees.avoid.2":`작은 단일 수정`,"help.employees.avoid.3":`즉시 답변 가능한 질문`,"help.employees.related.1":`cli-jaw dispatch`,"help.employees.related.2":`PABCD A/B phase`,"help.skills.title":`스킬`,"help.skills.aria":`스킬 도움말`,"help.skills.intro":`스킬은 특정 작업 방식을 에이전트에게 알려주는 지침 묶음입니다.`,"help.skills.effect":`선택된 작업 유형에 맞는 절차, 도구, 검증 규칙이 에이전트에게 추가됩니다.`,"help.skills.use.1":`브라우저 제어, GitHub, PDF, 문서 작업처럼 특화된 절차가 필요할 때`,"help.skills.use.2":`반복 워크플로를 안정적으로 수행하게 만들 때`,"help.skills.howTo.1":`/skill — 설치된 활성 스킬 목록을 표시합니다.`,"help.skills.howTo.2":`/skill list — 활성 스킬과 참조 가능한 스킬을 모두 표시합니다.`,"help.skills.howTo.3":`/skill reset — 디스크에서 모든 스킬을 다시 로드합니다.`,"help.skills.howTo.4":`작업을 설명하면 에이전트가 자동으로 매칭되는 스킬을 선택합니다.`,"help.skills.example.1":`PDF 분석은 jaw-pdf 스킬, 프런트엔드 구현은 jaw-dev-frontend 지침을 사용합니다.`,"help.skills.avoid.1":`기본 대화만으로 충분한 일반 질문`,"help.skills.related.1":`/skill`,"help.activeChannel.title":`Active Channel`,"help.activeChannel.aria":`Active Channel 도움말`,"help.activeChannel.intro":`현재 메시지 전달과 채널 출력을 어느 서비스로 보낼지 정합니다.`,"help.activeChannel.effect":`파일 전달, 알림, 예약 작업 결과가 선택된 채널 기준으로 전송됩니다.`,"help.activeChannel.use.1":`Telegram과 Discord 중 운영 채널을 바꿀 때`,"help.activeChannel.use.2":`외부 알림 대상이 달라질 때`,"help.activeChannel.howTo.1":`채널 설정에서 Telegram 또는 Discord를 활성 채널로 선택합니다.`,"help.activeChannel.howTo.2":`전송이 필요한 작업 전 현재 채널이 맞는지 확인합니다.`,"help.activeChannel.example.1":`문서 파일은 Telegram으로 받고, 팀 알림은 Discord 채널로 보낼 수 있습니다.`,"help.activeChannel.avoid.1":`전송 on/off만 바꾸려는 경우`,"help.activeChannel.related.1":`Telegram / Discord 설정`,"help.telegram.title":`Telegram`,"help.telegram.aria":`Telegram 도움말`,"help.telegram.intro":`Telegram 봇 연결, 허용 채팅, mention-only, 자동 전송을 관리합니다.`,"help.telegram.effect":`허용된 Telegram 채팅에서 메시지, 파일, 음성 입력, 작업 결과를 주고받을 수 있습니다.`,"help.telegram.use.1":`Telegram에서 cli-jaw 응답이나 상태를 받고 싶을 때`,"help.telegram.use.2":`웹 응답을 Telegram으로 자동 전송할 때`,"help.telegram.link.botfather":`BotFather에서 봇 만들기`,"help.telegram.link.docs":`Telegram Bot API 가이드`,"help.telegram.howTo.1":`Telegram 앱에서 @BotFather를 검색해서 대화를 시작합니다.`,"help.telegram.howTo.2":`/newbot 명령을 보내면 봇 이름을 물어봅니다. 표시될 이름을 입력하세요 (예: "Jaw Bot").`,"help.telegram.howTo.3":`다음으로 유저네임을 입력합니다. 반드시 _bot으로 끝나야 해요 (예: jaw_helper_bot).`,"help.telegram.howTo.4":`성공하면 BotFather가 HTTP API 토큰을 보내줍니다 (1234567890:ABCdef... 형식). 이 토큰을 복사하세요.`,"help.telegram.howTo.5":`~/.cli-jaw/settings.json을 열고 telegram.token에 복사한 토큰을 붙여넣습니다.`,"help.telegram.howTo.6":`Telegram에서 방금 만든 봇을 검색 → "시작" 버튼을 누르거나 아무 메시지(예: "hello")를 보냅니다.`,"help.telegram.howTo.7":`터미널에서 jaw doctor를 실행하면 방금 보낸 채팅의 chat ID(숫자)가 표시됩니다.`,"help.telegram.howTo.8":`settings.json의 telegram.allowedChatIds 배열에 이 chat ID를 추가하면 설정 완료!`,"help.telegram.example.1":`외출 중에도 Telegram으로 장기 작업 완료 파일을 받을 수 있습니다.`,"help.telegram.avoid.1":`Discord를 주 운영 채널로 쓰는 경우`,"help.telegram.related.1":`/forward`,"help.telegram.related.2":`Allowed chat IDs`,"help.discord.title":`Discord`,"help.discord.aria":`Discord 도움말`,"help.discord.intro":`Discord guild/channel 라우팅과 mention 동작을 관리합니다.`,"help.discord.effect":`설정된 guild와 channel로 명령, 파일, 직원 결과 전달 범위가 제한됩니다.`,"help.discord.use.1":`서버 채널에서 slash command 중심으로 운영할 때`,"help.discord.use.2":`특정 guild/channel로 출력을 제한할 때`,"help.discord.link.portal":`Discord Developer Portal 열기`,"help.discord.link.docs":`Discord 봇 시작 가이드`,"help.discord.howTo.1":`discord.com/developers/applications에 접속하고 Discord 계정으로 로그인합니다.`,"help.discord.howTo.2":`오른쪽 상단 "New Application" 클릭 → 앱 이름 입력 (예: "Jaw Bot") → Create.`,"help.discord.howTo.3":`왼쪽 메뉴 "Bot" 탭 → "Reset Token" 클릭 → 봇 토큰을 복사합니다. (한 번만 보이니 바로 저장하세요!)`,"help.discord.howTo.4":`같은 Bot 페이지 아래쪽 "Privileged Gateway Intents" → MESSAGE CONTENT INTENT를 켭니다. (안 켜면 메시지를 못 읽어요!)`,"help.discord.howTo.5":`왼쪽 메뉴 "OAuth2" → "URL Generator"로 이동합니다.`,"help.discord.howTo.6":`SCOPES에서 bot과 applications.commands를 체크합니다. 아래 BOT PERMISSIONS에서 Send Messages, Read Message History 등을 선택합니다.`,"help.discord.howTo.7":`페이지 하단에 생성된 초대 URL을 복사 → 브라우저에 붙여넣기 → 봇을 추가할 서버를 선택합니다.`,"help.discord.howTo.8":`~/.cli-jaw/settings.json에 discord.token, guildId(서버 ID), channelId(채널 ID)를 입력합니다.`,"help.discord.howTo.9":`터미널에서 jaw doctor를 실행해서 봇 연결 상태와 권한이 정상인지 확인하면 완료!`,"help.discord.example.1":`프로젝트 채널 하나에 직원 검증 결과만 모아볼 수 있습니다.`,"help.discord.avoid.1":`DM 전달을 기대하는 경우`,"help.discord.related.1":`jaw doctor`,"help.discord.related.2":`Discord degraded mode`,"help.slack.title":`Slack`,"help.slack.aria":`Slack 도움말`,"help.slack.intro":`Slack 워크스페이스에 봇을 붙여 채널·DM·스레드에서 에이전트를 실행합니다.`,"help.slack.effect":`허용된 대화에서 멘션·DM·슬래시 커맨드가 에이전트로 전달되고, 답변은 스레드로 돌아옵니다.`,"help.slack.use.1":`팀 채널에서 멘션으로 에이전트를 부를 때`,"help.slack.use.2":`DM으로 개인 작업을 돌릴 때`,"help.slack.avoid.1":`토큰이 하나만 있을 때 — 봇 토큰만으로는 수신이 안 됩니다`,"help.slack.related.1":`Telegram 설정`,"help.slack.related.2":`Discord 설정`,"help.slack.link.portal":`Slack 앱 관리 페이지 열기`,"help.slack.link.docs":`Socket Mode 문서`,"help.slack.example.1":`@cli-jaw 이 저장소 테스트 돌려줘`,"help.slack.howTo.1":`아래 가이드 카드의 "매니페스트 복사"를 눌러 api.slack.com/apps → Create New App → From a manifest에 붙여넣어 앱을 만듭니다.`,"help.slack.howTo.2":`Socket Mode를 켜고 connections:write 범위의 app-level 토큰(xapp-)을 발급합니다.`,"help.slack.howTo.3":`워크스페이스에 설치해 봇 토큰(xoxb-)을 받습니다.`,"help.slack.howTo.4":`두 토큰을 아래 입력란에 각각 붙여넣습니다 — 서로 바꿔 넣지 않도록 주의하세요.`,"help.slack.howTo.5":`Channel IDs에 봇이 활동할 대화 ID를 넣습니다. 비우면 전체 허용입니다.`,"help.slack.howTo.6":`각 채널에서 /invite @봇이름 으로 봇을 초대합니다.`,"help.slack.howTo.7":`Mention Only가 켜져 있으면 채널에서는 멘션할 때만 응답합니다. DM은 항상 응답합니다.`,"help.slack.howTo.8":`Reply in Thread가 켜져 있으면 답변이 원 메시지 스레드로 들어갑니다.`,"help.slack.howTo.9":`cli-jaw doctor 로 토큰과 연결 상태를 확인합니다.`,"help.fallbackOrder.title":`Fallback`,"help.fallbackOrder.aria":`Fallback 도움말`,"help.fallbackOrder.intro":`현재 CLI가 실패하거나 사용 불가일 때 재시도할 CLI 순서를 정합니다.`,"help.fallbackOrder.effect":`선택한 순서대로 다른 CLI를 시도해 provider 장애나 quota 문제의 중단을 줄입니다.`,"help.fallbackOrder.use.1":`한 provider가 overloaded일 때 자동 백업을 쓰고 싶을 때`,"help.fallbackOrder.use.2":`긴 작업에서 중단 가능성을 줄이고 싶을 때`,"help.fallbackOrder.howTo.1":`Fallback 설정에서 재시도할 CLI 순서를 정합니다.`,"help.fallbackOrder.howTo.2":`디버깅 중에는 fallback을 끄거나 순서를 단순화합니다.`,"help.fallbackOrder.example.1":`Claude가 overloaded이면 Codex나 Gemini로 이어가도록 순서를 둘 수 있습니다.`,"help.fallbackOrder.avoid.1":`실패 원인을 즉시 멈춰서 디버깅해야 할 때`,"help.fallbackOrder.related.1":`/fallback`,"help.mcp.title":`MCP Servers`,"help.mcp.aria":`MCP 도움말`,"help.mcp.intro":`MCP 서버는 에이전트가 외부 도구와 리소스를 사용할 수 있게 연결합니다.`,"help.mcp.effect":`설치된 서버가 Claude, Codex, Gemini 등 여러 CLI의 도구 목록에 동기화됩니다.`,"help.mcp.use.1":`외부 앱, 데이터, 도구 접근이 필요한 작업을 할 때`,"help.mcp.use.2":`여러 CLI에 같은 도구 설정을 동기화할 때`,"help.mcp.howTo.1":`/mcp — 연결된 MCP 서버와 도구 목록을 표시합니다.`,"help.mcp.howTo.2":`/mcp sync — MCP 서버를 활성 CLI와 다시 동기화합니다.`,"help.mcp.howTo.3":`/mcp install — 레지스트리에서 새 MCP 서버를 설치합니다.`,"help.mcp.howTo.4":`MCP 설정 패널(⚙️)에서 서버를 추가, 편집, 삭제할 수 있습니다.`,"help.mcp.example.1":`filesystem MCP를 추가하면 에이전트가 허용된 폴더를 안정적으로 탐색할 수 있습니다.`,"help.mcp.avoid.1":`로컬 파일과 기본 도구만으로 충분한 작업`,"help.mcp.related.1":`/mcp`,"help.memory.title":`메모리`,"help.memory.aria":`메모리 도움말`,"help.memory.intro":`프로젝트 사실, 사용자 선호, 장기 컨텍스트를 세션 밖에 저장합니다.`,"help.memory.effect":`저장한 결정과 선호가 다음 세션이나 compact 이후에도 다시 검색되어 주입될 수 있습니다.`,"help.memory.use.1":`결정이나 선호를 다음 세션에도 유지해야 할 때`,"help.memory.use.2":`긴 프로젝트의 핵심 맥락을 보존해야 할 때`,"help.memory.howTo.1":`/memory — 저장된 메모리 항목 목록을 표시합니다.`,"help.memory.howTo.2":`/memory <검색어> — 키워드로 메모리를 검색합니다.`,"help.memory.howTo.3":`메모리는 memory/ 디렉토리의 구조화된 파일에 저장됩니다.`,"help.memory.howTo.4":`장기 결정과 선호사항만 저장하고, 임시 체크리스트나 로그는 저장하지 마세요.`,"help.memory.example.1":`"이 프로젝트는 vanilla JS 유지"는 저장하고, "오늘 테스트 3개 남음"은 저장하지 않습니다.`,"help.memory.avoid.1":`임시 체크리스트나 원본 로그를 그대로 저장하려는 경우`,"help.memory.related.1":`/memory`,"help.memory.related.2":`flush / bootstrap`,"help.stt.title":`음성 인식`,"help.stt.aria":`STT 도움말`,"help.stt.intro":`브라우저 음성 입력을 텍스트로 변환하는 설정입니다.`,"help.stt.effect":`음성 버튼으로 입력한 말이 선택된 STT 엔진을 거쳐 채팅 텍스트로 들어갑니다.`,"help.stt.use.1":`음성으로 긴 지시를 입력하고 싶을 때`,"help.stt.use.2":`Gemini, OpenAI, Whisper 중 STT 엔진을 고를 때`,"help.stt.howTo.1":`STT provider와 필요한 API 키를 설정합니다.`,"help.stt.howTo.2":`음성 버튼을 눌러 녹음한 뒤 변환된 텍스트를 확인합니다.`,"help.stt.example.1":`긴 회의 메모를 말로 입력한 뒤 에이전트에게 요약을 요청할 수 있습니다.`,"help.stt.avoid.1":`텍스트 입력만 쓰거나 API 키가 없는 경우`,"help.stt.related.1":`voice button`,"help.promptTemplates.title":`프롬프트 템플릿`,"help.promptTemplates.aria":`프롬프트 템플릿 도움말`,"help.promptTemplates.intro":`자주 쓰는 지시문을 재사용 가능한 템플릿으로 관리합니다.`,"help.promptTemplates.effect":`선택한 템플릿 내용이 새 요청에 반복 가능한 지시문으로 들어갑니다.`,"help.promptTemplates.use.1":`반복되는 작업 지시를 일관되게 넣고 싶을 때`,"help.promptTemplates.use.2":`긴 시스템성 지시를 직접 다시 쓰기 싫을 때`,"help.promptTemplates.howTo.1":`프롬프트 템플릿 모달에서 템플릿을 만들고 저장합니다.`,"help.promptTemplates.howTo.2":`반복 작업 전 해당 템플릿을 선택해 요청에 붙입니다.`,"help.promptTemplates.example.1":`매번 같은 코드 리뷰 기준을 붙여야 할 때 템플릿으로 저장합니다.`,"help.promptTemplates.avoid.1":`한 번만 쓸 짧은 지시인 경우`,"help.promptTemplates.related.1":`프롬프트 템플릿 모달`,"help.chatInput.title":`채팅 입력`,"help.chatInput.aria":`채팅 입력 도움말`,"help.chatComposer.aria":`채팅 입력 및 키보드 단축키 도움말`,"help.chatInput.intro":`현재 작업 지시, 슬래시 커맨드, 파일 첨부를 보내는 기본 입력창입니다.`,"help.chatInput.effect":`보낸 내용은 선택된 CLI와 현재 설정으로 전달되고, 첨부 파일은 메시지와 함께 처리됩니다.`,"help.chatInput.use.1":`새 작업을 시작하거나 현재 작업을 이어갈 때`,"help.chatInput.use.2":`/help, /pabcd 같은 슬래시 커맨드를 실행할 때`,"help.chatInput.use.3":`텍스트와 첨부 파일을 함께 보내야 할 때`,"help.chatInput.howTo.1":`메시지를 입력하고 Send를 누르거나 지원되는 제출 단축키를 사용합니다.`,"help.chatInput.howTo.2":`파일은 첨부 버튼이나 드래그 앤 드롭으로 추가한 뒤 함께 보냅니다.`,"help.chatInput.example.1":`"이 diff 리뷰해줘"라고 쓰고 관련 파일을 첨부합니다.`,"help.chatInput.avoid.1":`명령만 실행하려면 잘못된 자연어보다 슬래시 커맨드를 쓰는 편이 안전합니다.`,"help.chatInput.avoid.2":`비밀 키나 토큰 원문은 메시지에 직접 넣지 마세요.`,"help.chatInput.related.1":`첨부 파일`,"help.chatInput.related.2":`키보드 단축키`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD 도움말`,"help.orchestration.intro":`PABCD는 계획, 감사, 구현, 확인, 완료를 단계별로 진행하는 작업 흐름입니다.`,"help.orchestration.effect":`각 단계에서 해야 할 일이 분리되어 큰 작업을 더 안전하게 진행합니다.`,"help.orchestration.use.1":`여러 파일이나 기능을 건드리는 작업을 시작할 때`,"help.orchestration.use.2":`직원 감사나 구현 검증이 필요한 변경일 때`,"help.orchestration.use.3":`계획을 먼저 확정하고 싶은 작업일 때`,"help.orchestration.howTo.1":`/orchestrate I — 인터뷰 모드에 진입하여 요구사항을 정리합니다.`,"help.orchestration.howTo.2":`/orchestrate P — 계획 모드에 진입하여 플랜을 작성합니다.`,"help.orchestration.howTo.3":`/orchestrate A — 감사 모드에 진입하여 플랜을 검토합니다.`,"help.orchestration.howTo.4":`/orchestrate B — 빌드 모드에 진입하여 구현합니다.`,"help.orchestration.howTo.5":`/orchestrate C — 체크 모드에 진입하여 최종 검증합니다.`,"help.orchestration.howTo.6":`/orchestrate D — 완료 모드로 진입하고 IDLE로 복귀합니다.`,"help.orchestration.howTo.7":`/orchestrate status — 현재 PABCD 단계를 표시합니다.`,"help.orchestration.howTo.8":`/orchestrate reset — 어느 단계에서든 IDLE로 복귀합니다.`,"help.orchestration.example.1":`P에서 계획을 세우고, A에서 직원이 감사한 뒤, B에서 구현합니다.`,"help.orchestration.avoid.1":`한 줄 답변이나 단순 상태 확인에는 과합니다.`,"help.orchestration.avoid.2":`바로 실행해야 하는 긴급 작업에는 먼저 범위를 줄이세요.`,"help.orchestration.related.1":`직원`,"help.orchestration.related.2":`키보드 단축키`,"help.attachments.title":`첨부 파일`,"help.attachments.aria":`첨부 파일 도움말`,"help.attachments.intro":`이미지, 문서, 코드 파일을 현재 메시지와 함께 전달하는 영역입니다.`,"help.attachments.effect":`첨부된 파일은 메시지 맥락에 포함되어 에이전트가 읽거나 분석할 수 있습니다.`,"help.attachments.use.1":`스크린샷이나 오류 로그를 같이 설명해야 할 때`,"help.attachments.use.2":`문서나 코드 파일을 직접 검토시킬 때`,"help.attachments.use.3":`여러 파일을 한 요청에 묶어 보내야 할 때`,"help.attachments.howTo.1":`첨부 버튼을 누르거나 파일을 채팅 영역에 드롭합니다.`,"help.attachments.howTo.2":`보내기 전에 미리보기에서 잘못 붙은 파일을 제거합니다.`,"help.attachments.example.1":`오류 스크린샷과 로그 파일을 함께 보내 원인을 묻습니다.`,"help.attachments.avoid.1":`민감한 인증 파일이나 토큰이 든 파일은 보내지 마세요.`,"help.attachments.avoid.2":`관련 없는 대용량 파일은 분석 품질을 떨어뜨릴 수 있습니다.`,"help.attachments.related.1":`채팅 입력`,"help.attachments.related.2":`메모리`,"help.diagrams.title":`다이어그램`,"help.diagrams.aria":`다이어그램 도움말`,"help.diagrams.intro":`답변 안의 SVG, Mermaid, interactive diagram을 화면에서 바로 보는 기능입니다.`,"help.diagrams.effect":`복잡한 흐름, 구조, 비교를 글보다 빠르게 파악할 수 있습니다.`,"help.diagrams.use.1":`파일 변경 지도나 시스템 흐름을 보고 싶을 때`,"help.diagrams.use.2":`PABCD 계획이나 감사 결과를 한눈에 정리할 때`,"help.diagrams.use.3":`렌더링된 도표를 확대하거나 복사해야 할 때`,"help.diagrams.howTo.1":`답변 안의 다이어그램 버튼으로 확대, 복사, 저장 동작을 사용합니다.`,"help.diagrams.howTo.2":`글자가 밀리거나 선이 안 보이면 렌더링 문제로 보고해 주세요.`,"help.diagrams.example.1":`작업 범위를 파일 박스와 화살표로 보여 달라고 요청합니다.`,"help.diagrams.avoid.1":`정확한 원문이나 긴 코드에는 다이어그램보다 텍스트가 낫습니다.`,"help.diagrams.avoid.2":`보안 정보가 포함된 화면을 그대로 시각화하지 마세요.`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`첨부 파일`,"help.keyboardShortcuts.title":`키보드 단축키`,"help.keyboardShortcuts.aria":`키보드 단축키 도움말`,"help.keyboardShortcuts.intro":`반복 조작을 줄이는 브라우저와 Jaw UI의 단축키 안내입니다.`,"help.keyboardShortcuts.effect":`입력, 음성, 도움말, 대시보드 이동 같은 작업을 더 빠르게 실행할 수 있습니다.`,"help.keyboardShortcuts.use.1":`마우스 없이 자주 쓰는 동작을 실행하고 싶을 때`,"help.keyboardShortcuts.use.2":`단축키가 입력창을 방해하는지 확인하고 싶을 때`,"help.keyboardShortcuts.use.3":`Manager dashboard 단축키 설정 위치를 찾을 때`,"help.keyboardShortcuts.howTo.1":`Classic Web: 채팅 입력창에서 Enter는 전송, Shift+Enter는 줄바꿈이며, 슬래시 커맨드는 같은 입력창에서 /로 시작합니다. STT 녹음은 Ctrl+Shift+Space 또는 Alt/Option+M으로 토글합니다.`,"help.keyboardShortcuts.howTo.2":`Manager: 에디터 밖에서 ?는 단축키 도움말을 열고, Alt+I, Alt+P, Alt+N은 Instances, active Preview, Notes로 이동하며, Alt+K와 Alt+J는 이전/다음 인스턴스를 선택합니다.`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S는 저장, Cmd/Ctrl+E는 Raw/Preview/WYSIWYG 전환, Cmd/Ctrl+Shift+F는 노트 검색, Cmd/Ctrl+P는 quick switcher 토글, Cmd/Ctrl+Delete 또는 Cmd/Ctrl+Backspace는 선택한 노트나 폴더를 휴지통으로 보냅니다.`,"help.keyboardShortcuts.example.1":`채팅 입력창에서 Enter를 눌러 전송하고, 줄바꿈이 필요하면 Shift+Enter를 사용합니다.`,"help.keyboardShortcuts.example.2":`Manager에서 포커스가 입력창이나 에디터 안에 없을 때 ?를 눌러 이 단축키 도움말을 엽니다.`,"help.keyboardShortcuts.avoid.1":`브라우저 기본 단축키와 충돌하면 설정에서 다른 조합을 쓰세요.`,"help.keyboardShortcuts.avoid.2":`텍스트 작성 중에는 전역 단축키보다 입력 보호가 우선입니다.`,"help.keyboardShortcuts.related.1":`채팅 입력`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`세션 도움말`,"help.session.title":`세션`,"help.session.intro":`채팅 세션을 관리합니다 — 새 세션 생성, 세션 전환, 대화 초기화, 워크스페이스 리셋 등.`,"help.session.effect":`세션 명령은 현재 대화 상태만 변경하며 AI 에이전트 설정에는 영향을 주지 않습니다.`,"help.session.use.1":`/new로 새 대화 시작`,"help.session.use.2":`여러 채팅 세션 간 전환`,"help.session.use.3":`/clear 또는 /compact로 대화 기록 정리`,"help.session.howTo.1":`/new [라벨] — 선택적 라벨로 새 채팅 세션을 생성합니다.`,"help.session.howTo.2":`/switch <번호> — 세션 번호로 전환합니다. 별칭: /sw`,"help.session.howTo.3":`/sessions — 모든 세션 목록을 표시합니다. 별칭: /ss`,"help.session.howTo.4":`/clear — 현재 채팅 화면을 지웁니다.`,"help.session.howTo.5":`/clear all — 화면 + 모든 대화 기록을 지웁니다.`,"help.session.howTo.6":`/compact [지시] — 대화 컨텍스트를 압축하여 토큰을 절약합니다.`,"help.session.howTo.7":`/purge — 대화와 구조화된 메모리를 모두 삭제합니다.`,"help.session.howTo.8":`/reset confirm — 전체 워크스페이스 리셋 (설정은 보존).`,"help.session.example.1":`/new 코드리뷰 — 코드 리뷰용 라벨 세션을 생성합니다.`,"help.session.avoid.1":`채팅만 지우려면 /clear, 전체 초기화가 필요할 때만 /reset 사용.`,"help.session.related.1":`채팅 입력`,"help.session.related.2":`키보드 단축키`,"help.cliTools.aria":`CLI 도구 도움말`,"help.cliTools.title":`CLI 도구`,"help.cliTools.intro":`버전 확인, 프로젝트 관리, 시스템 프롬프트 보기, IDE 연동 등 유틸리티 명령어.`,"help.cliTools.effect":`정보를 표시하거나 개발 도구 연동을 설정합니다.`,"help.cliTools.use.1":`/version으로 현재 jaw 버전 확인`,"help.cliTools.use.2":`/project로 작업 디렉토리 설정`,"help.cliTools.use.3":`/prompt로 전체 시스템 프롬프트 보기`,"help.cliTools.howTo.1":`/version — jaw 버전과 활성 CLI 상태를 표시합니다.`,"help.cliTools.howTo.2":`/project set <경로...> — 프로젝트 워크스페이스 디렉토리를 설정합니다.`,"help.cliTools.howTo.3":`/project list — 현재 설정된 프로젝트 경로를 표시합니다.`,"help.cliTools.howTo.4":`/project reset — 프로젝트 디렉토리를 기본값으로 리셋합니다.`,"help.cliTools.howTo.5":`/prompt — AI에 전송되는 전체 시스템 프롬프트를 표시합니다.`,"help.cliTools.howTo.6":`/ide [pop|on|off] — IDE diff 뷰를 토글합니다 (CLI 전용).`,"help.cliTools.example.1":`/project set ~/my-repo — 활성 프로젝트 디렉토리를 설정합니다.`,"help.cliTools.avoid.1":`IDE 명령은 CLI 모드에서만 동작하며 웹 UI에서는 사용 불가.`,"help.cliTools.related.1":`활성 CLI`,"help.cliTools.related.2":`모델`,"help.agentControl.aria":`에이전트 제어 도움말`,"help.agentControl.title":`에이전트 제어`,"help.agentControl.intro":`AI 에이전트의 동작을 제어합니다 — 메시지 포워딩, 사고 표시, 플러시 모델 설정 등.`,"help.agentControl.effect":`현재 세션의 에이전트 런타임 동작을 변경합니다.`,"help.agentControl.use.1":`/forward로 채널 간 메시지 포워딩 토글`,"help.agentControl.use.2":`/thought로 Gemini 사고 과정 표시/숨기기`,"help.agentControl.use.3":`/flush로 컨텍스트 관리용 플러시 모델 설정`,"help.agentControl.howTo.1":`/forward [on|off] — 활성 채널로 메시지 포워딩을 토글합니다.`,"help.agentControl.howTo.2":`/thought [on|off] — Gemini 사고 과정 표시/숨기기.`,"help.agentControl.howTo.3":`/flush <cli> <model> — 컨텍스트 압축용 플러시 모델을 설정합니다.`,"help.agentControl.howTo.4":`/flush off — 플러시 모델을 비활성화합니다.`,"help.agentControl.howTo.5":`/steer <프롬프트> — 실행 중인 에이전트를 중단하고 방향을 전환합니다.`,"help.agentControl.howTo.6":`/status — CLI, 모델, 채널, 에이전트의 현재 상태를 표시합니다.`,"help.agentControl.example.1":`/forward on — 활성 채널로 메시지 포워딩을 활성화합니다.`,"help.agentControl.avoid.1":`에이전트 작업 중에는 포워딩을 토글하지 마세요.`,"help.agentControl.related.1":`모델`,"help.agentControl.related.2":`플러시 에이전트`,"help.goals.aria":`목표 도움말`,"help.goals.title":`목표 & 계획`,"help.goals.intro":`지속 목표와 구조화된 계획 워크플로 — 목표 설정, PABCD 오케스트레이션, 요구사항 인터뷰, 멀티세션 작업 관리.`,"help.goals.effect":`목표/계획 명령은 세션 간 지속되는 상태를 생성하고 AI를 구조화된 개발 단계로 안내합니다.`,"help.goals.use.1":`/goal로 지속 개발 목표 설정`,"help.goals.use.2":`/plan 또는 /orchestrate로 PABCD 구조화 계획 실행`,"help.goals.use.3":`/interview로 불명확한 요구사항 정리`,"help.goals.howTo.1":`/goal <목표> — 새 지속 개발 목표를 설정합니다.`,"help.goals.howTo.2":`/goal status — 현재 목표와 진행 체크포인트를 표시합니다.`,"help.goals.howTo.3":`/goal run — 활성 목표 작업을 재개합니다.`,"help.goals.howTo.4":`/goal plan [힌트] — AI 주도 목표 계획. 별칭: /goalplan`,"help.goals.howTo.5":`/goal done — 현재 목표를 완료로 표시합니다.`,"help.goals.howTo.6":`/goal cancel — 활성 목표를 취소합니다.`,"help.goals.howTo.7":`/goal pause / resume — 수동으로 목표를 일시정지/재개합니다.`,"help.goals.howTo.8":`/goal history — 완료/취소된 목표 기록을 표시합니다.`,"help.goals.howTo.9":`/plan [요청|status|copy] — PABCD 계획을 설명하거나 시작합니다.`,"help.goals.howTo.10":`/interview <요청> — 계획 전 요구사항을 정리합니다.`,"help.goals.example.1":`/goal 사용자 인증 구현 — AI가 세션 간 지속적으로 작업할 목표를 설정합니다.`,"help.goals.avoid.1":`모호한 목표는 피하세요 — 구체적으로 무엇을 만들지 명시.`,"help.goals.related.1":`오케스트레이션`,"help.goals.related.2":`직원`,"help.section.commands":`명령어 레퍼런스`,"help.session.subcmd.1":`/new [라벨] — 선택적 라벨을 붙여 새 채팅 세션을 시작합니다`,"help.session.subcmd.2":`/switch <번호> — 세션 번호로 전환합니다 (별칭: /sw, /<번호>)`,"help.session.subcmd.3":`/sessions — 모든 세션 목록을 표시합니다 (별칭: /ss)`,"help.session.subcmd.4":`/clear — 현재 채팅 화면을 지웁니다`,"help.session.subcmd.5":`/clear all — 화면과 모든 대화 기록을 삭제합니다`,"help.session.subcmd.6":`/compact [지시] — 대화 컨텍스트를 압축하여 토큰을 절약합니다`,"help.session.subcmd.7":`/purge — 대화와 구조화된 메모리를 모두 삭제합니다`,"help.session.subcmd.8":`/reset confirm — 전체 워크스페이스를 리셋합니다 (설정은 보존)`,"help.session.subcmd.9":`/quit — 프로세스를 종료합니다 (별칭: /q, /exit; CLI 전용)`,"help.orchestration.subcmd.1":`/orchestrate I — 인터뷰 모드에 진입하여 요구사항을 정리합니다`,"help.orchestration.subcmd.2":`/orchestrate P — 계획 모드에 진입하여 플랜을 작성합니다`,"help.orchestration.subcmd.3":`/orchestrate A — 감사 모드에 진입하여 플랜을 검토합니다`,"help.orchestration.subcmd.4":`/orchestrate B — 빌드 모드에 진입하여 구현합니다`,"help.orchestration.subcmd.5":`/orchestrate C — 체크 모드에 진입하여 최종 검증합니다`,"help.orchestration.subcmd.6":`/orchestrate D — 완료 모드로 진입하고 IDLE로 복귀합니다`,"help.orchestration.subcmd.7":`/orchestrate status — 현재 PABCD 단계를 표시합니다`,"help.orchestration.subcmd.8":`/orchestrate reset — 어느 단계에서든 IDLE로 복귀합니다 (별칭: /pabcd)`,"help.goals.subcmd.1":`/goal <목표> — 새 지속 목표를 설정합니다`,"help.goals.subcmd.2":`/goal plan [힌트] — AI가 목표 달성 계획을 수립합니다`,"help.goals.subcmd.3":`/goal status — 활성 목표의 현재 상태를 표시합니다`,"help.goals.subcmd.4":`/goal run — 목표 실행을 계속합니다`,"help.goals.subcmd.5":`/goal done [메모] — 목표를 완료로 표시합니다`,"help.goals.subcmd.6":`/goal cancel [사유] — 활성 목표를 취소합니다`,"help.goals.subcmd.7":`/goal pause — 활성 목표를 일시정지합니다`,"help.goals.subcmd.8":`/goal resume — 일시정지된 목표를 재개합니다`,"help.goals.subcmd.9":`/goal clear — 목표 데이터를 초기화합니다`,"help.goals.subcmd.10":`/goal reset — 목표 상태를 리셋합니다`,"help.goals.subcmd.11":`/goal history — 완료된 목표 이력을 표시합니다`,"help.goals.subcmd.12":`/goalplan [힌트] — /goal plan의 별칭입니다`,"help.goals.subcmd.13":`/plan [요청] — 구조화된 PABCD 계획을 수립합니다`,"help.goals.subcmd.14":`/plan status — 현재 계획 상태를 표시합니다`,"help.goals.subcmd.15":`/plan copy — 계획 내용을 클립보드에 복사합니다`,"help.goals.subcmd.16":`/interview <요청> — 요구사항을 구조적으로 정리합니다`,"help.goals.subcmd.17":`/deliberate <요청> — 계획자, 설계자, 비평가 역할로 심의합니다`,"help.goals.subcmd.18":`/planaudit [계획] — 읽기 전용 직원 감사 작업을 생성합니다`,"help.goals.subcmd.19":`/team plan <목표> — 병렬 팀 계획을 시작합니다`,"help.goals.subcmd.20":`/team audit — 팀 감사를 실행합니다`,"help.goals.subcmd.21":`/team status — 팀 실행 상태를 표시합니다`,"help.goals.subcmd.22":`/team collect — 팀 결과를 수집합니다`,"help.goals.subcmd.23":`/team stop — 팀 실행을 중지합니다`,"help.goals.subcmd.24":`/goal refine <목표> — AI가 선택한 plan-mode 목표를 최종 확정합니다`,"help.goals.subcmd.25":`/gd [메모] — 활성 목표를 강제 완료합니다. /goal done --force의 별칭입니다`,"help.activeCli.subcmd.1":`/cli — 현재 활성 CLI를 표시합니다`,"help.activeCli.subcmd.2":`/cli <이름> — CLI 엔진을 전환합니다 (claude, codex, gemini 등)`,"help.activeCli.subcmd.3":`/status — 전체 시스템 상태를 표시합니다`,"help.model.subcmd.1":`/model — 현재 모델을 표시합니다`,"help.model.subcmd.2":`/model <이름> — 활성 CLI의 모델을 변경합니다`,"help.skills.subcmd.1":`/skill — 설치된 활성 스킬 목록을 표시합니다`,"help.skills.subcmd.2":`/skill list — 활성 + 참조 가능 스킬 전체를 표시합니다`,"help.skills.subcmd.3":`/skill reset — 디스크에서 모든 스킬을 다시 로드합니다`,"help.employees.subcmd.1":`/employee — 등록된 직원 목록을 표시합니다`,"help.employees.subcmd.2":`/employee sessions-reset — 저장된 직원 resume 세션만 초기화합니다`,"help.mcp.subcmd.1":`/mcp — MCP 서버 목록을 표시합니다`,"help.mcp.subcmd.2":`/mcp sync — MCP 도구를 동기화합니다`,"help.mcp.subcmd.3":`/mcp install — MCP 서버를 설치합니다`,"help.mcp.subcmd.4":`/browser status — 브라우저 연결 상태를 표시합니다`,"help.mcp.subcmd.5":`/browser tabs — 열린 탭 목록을 표시합니다`,"help.memory.subcmd.1":`/memory — 메모리 개요를 표시합니다`,"help.memory.subcmd.2":`/memory <검색어> — 저장된 메모리를 검색합니다`,"help.flushAgent.subcmd.1":`/flush — 현재 플러시 설정을 표시합니다`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 지정 CLI의 플러시 모델을 설정합니다`,"help.flushAgent.subcmd.3":`/flush off — 플러시 모델을 비활성화합니다`,"help.fallbackOrder.subcmd.1":`/fallback — 현재 폴백 순서를 표시합니다`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — 폴백 CLI 순서를 설정합니다`,"help.fallbackOrder.subcmd.3":`/fallback off — 폴백을 비활성화합니다`,"help.agentControl.subcmd.1":`/forward on — 활성 채널로 메시지 포워딩을 활성화합니다`,"help.agentControl.subcmd.2":`/forward off — 메시지 포워딩을 비활성화합니다`,"help.agentControl.subcmd.3":`/thought on — Gemini 사고 과정을 표시합니다`,"help.agentControl.subcmd.4":`/thought off — Gemini 사고 과정을 숨깁니다`,"help.agentControl.subcmd.5":`/steer <프롬프트> — 실행 중인 에이전트를 중단하고 방향을 전환합니다`,"help.agentControl.subcmd.6":`/status — CLI, 모델, 채널, 에이전트의 현재 상태를 표시합니다`,"help.cliTools.subcmd.1":`/version — jaw 버전과 활성 CLI 상태를 표시합니다`,"help.cliTools.subcmd.2":`/project set <경로...> — 프로젝트 워크스페이스 디렉토리를 설정합니다`,"help.cliTools.subcmd.3":`/project list — 현재 설정된 프로젝트 경로를 표시합니다`,"help.cliTools.subcmd.4":`/project reset — 프로젝트 디렉토리를 기본값으로 리셋합니다`,"help.cliTools.subcmd.5":`/project clear — 프로젝트 디렉토리 설정을 초기화합니다`,"help.cliTools.subcmd.6":`/prompt — AI에 전송되는 전체 시스템 프롬프트를 표시합니다`,"help.cliTools.subcmd.7":`/ide pop — IDE diff 뷰를 팝업으로 엽니다 (CLI 전용)`,"help.cliTools.subcmd.8":`/ide on — IDE diff 뷰를 활성화합니다 (CLI 전용)`,"help.cliTools.subcmd.9":`/ide off — IDE diff 뷰를 비활성화합니다 (CLI 전용)`,"help.keyboardShortcuts.subcmd.1":`/help — 전체 명령어 목록을 표시합니다`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 특정 명령어의 상세 도움말을 표시합니다`,"help.keyboardShortcuts.subcmd.3":`/commands — 명령 팔레트를 엽니다 (별칭: /cmd)`,"bgtask.title":`백그라운드`,"tg.elicitationExpired":`선택 세션이 만료되었습니다. 텍스트로 답해주세요.`,"settings.slack.guide.step1Title":`Slack 앱 만들기`,"settings.slack.guide.openApps":`앱 페이지 열기`,"settings.slack.guide.step2Title":`봇 토큰 붙여넣기`,"settings.slack.guide.step3Title":`수신용 앱 토큰 (선택)`,"settings.slack.guide.step3Desc":`비워두면 전송 전용(outbound-only)으로 동작합니다`,"settings.slack.guide.botTokenError":`xoxb-로 시작하는 봇 토큰이어야 합니다 — 앱 토큰과 바꿔 넣지 않았나요?`,"settings.slack.guide.appTokenError":`xapp-로 시작하는 앱 레벨 토큰이어야 합니다 — 봇 토큰과 바꿔 넣지 않았나요?`,"settings.slack.advanced":`고급 설정`,"settings.slack.resetConnection":`연결 초기화`,"settings.slack.resetConfirm":`Slack 앱 연결이 초기화됩니다. 계속하시겠습니까?`,"settings.slack.resetEmpty":`연결된 Slack 앱이 없습니다.`,"settings.slack.resetFailed":`Slack 앱 연결을 초기화하지 못했습니다. 다시 시도해주세요.`,"settings.slack.resetManagedByEnvironment":`이 Slack 연결은 환경변수({variables})로 관리되고 있습니다. 해당 환경변수를 제거하고 cli-jaw를 재시작한 후 연결을 초기화하세요.`,"settings.slack.managedByEnvironment":`연결 설정은 환경변수({variables})로 관리되어 읽기 전용입니다. 여기서 수정하려면 환경변수를 제거하고 cli-jaw를 재시작하세요.`,"settings.slack.attachPort":`연결 인스턴스 포트`,"settings.channel.notAttachInstanceHint":`다른 인스턴스가 이 Slack 연결을 소유하고 있습니다 (연결 인스턴스 포트 확인)`,"settings.slack.guide.step2Desc":`앱 설정 → OAuth & Permissions → files:read 확인 → Reinstall to Workspace → Bot User OAuth Token 복사`,"settings.slack.guide.step3Location":`앱 설정 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`정보 수집 중...`,"slack.progress.working":`작업 중`,"slack.files.partialFailure":`⚠️ 일부 첨부파일을 제외했습니다:`,"slack.files.allFailure":`⚠️ 첨부파일을 처리하지 못해 요청을 실행하지 않았습니다:`,"slack.files.limit":`파일은 한 개당 50 MiB, 메시지당 10개·100 MiB까지 처리됩니다.`,"slack.files.error.external_file_unsupported":`Slack 외부 파일은 지원하지 않습니다`,"slack.files.error.private_network":`안전하지 않은 다운로드 위치입니다`,"slack.files.error.redirect_limit":`리다이렉트 한도를 초과했습니다`,"slack.files.error.size_exceeded":`파일 크기 한도를 초과했습니다`,"slack.files.error.message_budget_exceeded":`메시지 첨부 용량 한도를 초과했습니다`,"slack.files.error.missing_scope":`files:read 권한을 추가하고 앱을 재설치하세요`,"slack.files.error.ingress_cancelled":`처리가 취소되었습니다`,"slack.files.error.download_failed":`파일을 다운로드하지 못했습니다`,"onboarding.open":`설정 마법사`,"onboarding.optional":`선택`,"onboarding.validate":`검증`,"onboarding.save":`저장`,"onboarding.close":`닫기`,"onboarding.valid":`확인됨: {identity}`,"onboarding.title.telegram":`Telegram 연결`,"onboarding.title.discord":`Discord 연결`,"onboarding.title.slack":`Slack 연결`,"onboarding.guide.telegram":`텔레그램에서 @BotFather 를 열고 /newbot 을 보낸 뒤, 이름과 username을 정하면 봇 토큰이 나옵니다. 그 토큰을 아래에 붙여넣고 검증을 누르세요.`,"onboarding.guide.discord":`discord.com/developers/applications 에서 New Application → Bot → Reset Token 으로 토큰을 만들고, Privileged Gateway Intents 의 MESSAGE CONTENT INTENT 를 켜세요. 서버 ID는 Discord 설정에서 개발자 모드를 켠 뒤 서버 우클릭 → ID 복사로 얻습니다.`,"onboarding.guide.slack":`api.slack.com/apps에서 Create New App → From a manifest의 JSON 탭에 복사된 매니페스트를 붙여넣고, 추가하려는 워크스페이스를 선택하여 앱을 생성해 주세요.`,"onboarding.slackAppName":`앱 이름`,"onboarding.slackAppNameHint":`앱 이름을 35자 이내로 입력하세요. 봇 이름은 여기서 만들며, 쓸 수 있는 영문자가 없으면 cli-jaw가 됩니다.`,"onboarding.slackGenerateManifest":`매니페스트 생성`,"onboarding.slackManifestGenerating":`생성 중...`,"onboarding.slackManifestReady":`복사되었습니다`,"onboarding.slackManifestCopiedWithBot":`매니페스트를 복사했습니다. 봇 이름: {bot}`,"onboarding.slackManifestError":`매니페스트를 생성하거나 복사하지 못했어요. 다시 시도해주세요.`,"onboarding.slackAppNameError":`앱 이름을 1~35자로 입력하세요.`,"onboarding.warning.missingCapabilities":`선택 권한({capabilities})이 없어 해당 기능만 꺼져 있습니다. 권한을 추가하고 앱을 재설치하세요. 텍스트 메시지는 계속 사용할 수 있습니다.`,"onboarding.token.botToken":`봇 토큰`,"onboarding.token.appToken":`앱 레벨 토큰`,"onboarding.token.guildId":`서버 ID`,"onboarding.next.telegram":`저장했습니다. 이제 텔레그램에서 봇에게 아무 메시지나 보내면 채팅 ID가 자동 저장됩니다.`,"onboarding.next.discord":`저장했습니다. 봇을 서버에 초대하고 MESSAGE CONTENT INTENT 가 켜져 있는지 확인하세요.`,"onboarding.next.slack":`저장했습니다. 봇이 읽을 채널에서 /invite @cli-jaw 로 초대하세요.`,"onboarding.error.token_required":`토큰을 입력하세요.`,"onboarding.error.invalid_token":`토큰이 유효하지 않습니다. 다시 확인해 주세요.`,"onboarding.error.invalid_app_token":`앱 레벨 토큰이 유효하지 않습니다 (connections:write 범위 확인).`,"onboarding.error.guild_required":`서버 ID를 입력하세요.`,"onboarding.error.bot_prefix":`봇 토큰은 xoxb- 로 시작해야 합니다.`,"onboarding.error.app_prefix":`앱 레벨 토큰은 xapp- 로 시작해야 합니다.`,"onboarding.error.unknown_channel":`지원하지 않는 채널입니다.`,"onboarding.error.network":`네트워크 오류로 검증하지 못했습니다.`,"onboarding.next":`다음`,"onboarding.back":`이전`,"onboarding.step.1":`1. 어디서 받는지 확인`,"onboarding.step.2":`2. 발급받은 값 붙여넣기`,"onboarding.step.3":`3. 연결 검증`,"onboarding.step.4":`4. 저장`,"onboarding.validating":`확인하는 중...`,"onboarding.validateHint":`검증을 눌러 실제 연결을 확인하세요. 통과해야 저장으로 넘어갑니다.`,"onboarding.saveHint":`검증을 통과했습니다. 저장을 누르면 설정에 반영되고 채널이 바로 연결됩니다.`,"onboarding.error.validation_required":`먼저 검증을 통과해야 합니다.`,"onboarding.error.slack_setup_required":`매니페스트를 생성하고 발급 페이지를 연 뒤 다음 단계로 진행하세요.`,"onboarding.openIssuer":`발급 페이지 열기`,"onboarding.error.missing_scopes":`토큰은 유효하지만 앱에 권한(스코프)이 부족합니다. OAuth & Permissions에서 아래 항목을 추가하고 앱을 재설치하세요.`,"onboarding.hint.telegram.botToken":`@BotFather가 /newbot 후 알려준 값입니다.`,"onboarding.hint.discord.botToken":`Bot 탭의 Reset Token으로 새로 만든 값입니다.`,"onboarding.hint.discord.guildId":`개발자 모드를 켠 뒤 서버를 우클릭해 ID 복사.`,"onboarding.hint.slack.botToken":`OAuth & Permissions의 Bot User OAuth Token (xoxb-로 시작).`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens (xapp-, connections:write).`,"onboarding.progressLabel":`{total}단계 중 {step}단계`,"slack.progress.title":`요청 진행 상황`,"slack.progress.activityTitle":`최근 작업`,"slack.progress.deliveryTitle":`답변 전달`,"slack.progress.queued":`대기열에서 대기 중`,"slack.progress.running":`작업 활동 관찰 중`,"slack.progress.waiting":`다음 업데이트를 기다리는 중`,"slack.progress.delivering":`답변 전달 중`,"slack.progress.complete":`작업 관찰 종료`,"slack.progress.workflowComplete":`워크플로 응답이 끝났습니다. 실제 제작 결과는 별도 확인이 필요합니다.`,"slack.progress.unavailable":`활동 내역을 표시할 수 없습니다. 실행은 계속될 수 있습니다.`,"slack.progress.error":`요청 실패`,"slack.progress.cancelled":`요청 취소됨`,"slack.progress.expired":`진행 표시가 종료되었습니다. 실행은 계속될 수 있습니다.`,"slack.progress.merged":`다른 요청과 합쳐짐`,"slack.progress.removed":`요청 제거됨`,"slack.progress.restored":`이전 진행 표시가 종료되었습니다. 실행 결과는 확인되지 않았습니다.`,"slack.progress.failure":`응답을 완료하지 못했습니다.`,"slack.progress.elapsed":`경과: {seconds}초`,"slack.progress.lastActivity":`마지막 활동: {seconds}초 전`,"slack.progress.longRunning":`{minutes}분째 실행 중 — 아직 진행 중입니다`,"slack.progress.category.read":`파일 읽기`,"slack.progress.category.write":`파일 편집`,"slack.progress.category.search":`검색`,"slack.progress.category.web":`웹페이지 읽기`,"slack.progress.category.command":`명령 실행`,"slack.progress.category.external":`외부 도구`,"slack.progress.category.tool":`도구 활동`,"slack.progress.status.observed":`관찰됨`,"slack.progress.status.in_progress":`진행 중`,"slack.progress.status.complete":`완료`,"slack.progress.status.error":`오류`,"slack.progress.status.stopped":`중단됨`,"slack.progress.status.unconfirmed":`완료 미확인`,"slack.progress.deliveryComplete":`답변 전달 완료`,"slack.progress.deliveryFailed":`답변 전달을 확인하지 못했습니다`,"slack.progress.deliveryUnconfirmed":`답변 전달 여부 미확인`,"slack.workflow.unavailable":`자동화의 발신·요청 정보나 지정된 활성 스킬을 확인할 수 없어 실행하지 않았습니다. 설정을 확인하세요.`,"slack.workflow.unconfirmed":`등록된 워크플로가 실질적인 결과를 반환하지 않았습니다. 이미 작업이 시작되었을 수 있으니 재시도 전에 기록을 확인하세요.`},O={"cmd.help.desc":`Command list`,"cmd.status.desc":`Current status`,"cmd.clear.desc":`Clear conversation / all: reset skills+employees+MCP`,"cmd.purge.desc":`Purge conversation and memory`,"cmd.purge.tg_desc":`Purge chat+memory`,"cmd.reset.desc":`Bootstrap reset (conversation/memory/skills/employees/MCP)`,"cmd.model.desc":`View/change model`,"cmd.cli.desc":`View/change active CLI`,"cmd.fallback.desc":`Set fallback CLI order`,"cmd.forward.desc":`Toggle Telegram auto-forwarding on/off`,"cmd.flush.desc":`View/change flush model`,"cmd.version.desc":`Version/CLI install status`,"cmd.skill.desc":`Skill list/reset`,"cmd.employee.desc":`Manage employees (list/model/cli/reset/sessions-reset)`,"cmd.mcp.desc":`MCP list/sync/install`,"cmd.memory.desc":`Memory search/list`,"cmd.browser.desc":`Browser status/tabs`,"cmd.prompt.desc":`View system prompt`,"cmd.quit.desc":`Quit process`,"cmd.file.desc":`Attach file`,"cmd.steer.desc":`Interrupt agent and redirect`,"cmd.compact.desc":`Compact conversation context`,"cmd.compact.tg_desc":`Compact conversation context`,"cmd.workflow.interview.desc":`Clarify requirements before planning`,"cmd.workflow.interview.tg_desc":`Start requirements interview`,"cmd.workflow.deliberate.desc":`Review a plan through multiple roles`,"cmd.workflow.deliberate.tg_desc":`Review plan by roles`,"cmd.workflow.plan.desc":`Explain the PABCD planning flow`,"cmd.workflow.plan.tg_desc":`Explain PABCD planning`,"cmd.workflow.plan.title":`PABCD planning guide`,"cmd.workflow.plan.pabcdEquivalent":`In cli-jaw, /plan is not a separate mode. It maps to PABCD P: clarify the plan first, then audit (A), build (B), check (C), and finish (D).`,"cmd.workflow.plan.noRequest":`No request was provided. Use /interview for unclear requirements or /deliberate for comparing implementation options.`,"cmd.workflow.plan.section.pabcd":`cli-jaw planning`,"cmd.workflow.plan.section.source":`Original request`,"cmd.workflow.plan.section.next":`Next actions`,"cmd.workflow.plan.next.interview":`- Need clearer requirements: /interview <request>`,"cmd.workflow.plan.next.deliberate":`- Need option comparison: /deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- Already have a plan: /planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- Ready to formalize: /orchestrate P`,"cmd.workflow.plan.footer":`This is a guidance artifact. The approved plan still belongs to PABCD P.`,"cmd.artifact.action.copy":`Copy`,"cmd.artifact.action.reinsert":`Put back in input`,"cmd.artifact.action.sendAsChat":`Send as chat`,"cmd.artifact.action.startPabcd":`Use in PABCD P`,"cmd.workflow.planAudit.desc":`Create a read-only plan audit task`,"cmd.workflow.planAudit.tg_desc":`Create plan audit task`,"cmd.workflow.search.desc":`Route search through the search skill`,"cmd.workflow.search.tg_desc":`Search through the search skill`,"cmd.workflow.goal.desc":`Goal state and bounded run workflow`,"cmd.workflow.goal.tg_desc":`Check goal or run state`,"cmd.workflow.team.desc":`Parallel team orchestration`,"cmd.workflow.team.tg_desc":`Team orchestration`,"cmd.workflow.review.tg_desc":`Review project dir`,"cmd.workflow.interview.title":`Requirements interview`,"cmd.workflow.deliberate.title":`Role-based plan review`,"cmd.workflow.planAudit.title":`Read-only plan audit`,"cmd.help.tg_desc":`Show available commands`,"cmd.status.tg_desc":`Check model, CLI & session status`,"cmd.clear.tg_desc":`Reset conversation (keep data)`,"cmd.model.tg_desc":`Check current AI model`,"cmd.cli.tg_desc":`Check current CLI engine`,"cmd.fallback.tg_desc":`Set CLI auto-switch order`,"cmd.forward.tg_desc":`Toggle auto-forwarding`,"cmd.flush.tg_desc":`Set model for conversation reset`,"cmd.version.tg_desc":`Check version & install status`,"cmd.skill.tg_desc":`View AI skill list`,"cmd.browser.tg_desc":`Check browser connection`,"cmd.steer.tg_desc":`Redirect agent to new task`,"cmd.steer.noPrompt":`Usage: /steer <new prompt>`,"cmd.steer.noAgent":`No agent is currently running.`,"cmd.steer.started":`Redirecting...`,"cmd.unknown":`Unknown command: /{name}
|
|
22
|
+
사용자 메시지: {text}`,"chat.file.uploadFail":`파일 업로드 실패: {msg}`,"chat.requestFail":`요청 실패 ({status})`,"chat.continue":`현재 작업을 이어서 진행합니다.`,"chat.noPendingContinue":`이어갈 작업이 없습니다.`,"chat.voice.label":`🎤 [음성 메시지]`,"sessionHub.title":`세션`,"sessionHub.description":`채널과 로컬 대화를 세션별로 확인합니다.`,"sessionHub.defaultSession":`기본 세션`,"sessionHub.sessionLabel":`세션 {seq}`,"sessionHub.source.local":`로컬`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`메시지`,"sessionHub.lastActivity":`마지막 활동`,"sessionHub.noActivity":`활동 없음`,"sessionHub.empty.title":`아직 채널 세션이 없습니다`,"sessionHub.empty.description":`채널을 연결하면 대화별 세션이 여기 생깁니다.`,"sessionHub.empty.action":`설정에서 채널 연결하기`,"sessionHub.listAria":`세션 목록`,"sessionHub.delete":`삭제`,"sessionHub.deleteConfirm":`이 세션을 삭제할까요? 대화 기록도 함께 삭제됩니다.`,"sessionHub.deleteRemoteDisabled":`채널에 연결된 세션은 삭제할 수 없습니다.`,"sessionHub.deleteFailed":`세션을 삭제하지 못했습니다. 실행 중인지 확인해 주세요.`,"sessionReadonly.message":`읽기 전용입니다. 이 세션에서 보내려면 먼저 전환하세요.`,"sessionReadonly.remote":`채널에 연결된 세션은 웹에서 읽기 전용입니다.`,"sessionReadonly.switch":`세션 /{seq}(으)로 전환`,"sessionReadonly.openSessions":`세션 목록 열기`,"sessionReadonly.composeRejected":`읽기 전용 세션입니다. 위 전환 버튼을 사용해 주세요.`,"sessionReadonly.elicitationRejected":`읽기 전용 세션에서는 응답을 보낼 수 없습니다. 세션을 전환한 뒤 다시 시도하세요.`,"skill.loadFail":`스킬 로드 실패`,"skill.count":`활성 {active}개 / 전체 {total}개`,"skill.countFiltered":`검색 {shown}개 / 활성 {active}개 / 전체 {total}개`,"skill.search.placeholder":`스킬 검색...`,"skill.search.aria":`스킬 검색`,"skill.search.empty":`검색 결과가 없습니다.`,"skill.filter.all":`전체`,"skill.filter.installed":`설치됨`,"skill.filter.productivity":`생산성`,"skill.filter.communication":`커뮤`,"skill.filter.devtools":`개발`,"skill.filter.utility":`유틸`,"skill.filter.smarthome":`홈`,"skill.filter.other":`기타`,"skill.filter.ai":`AI`,"lang.ko":`한국어`,"lang.en":`English`,"lang.ja":`日本語`,"lang.zh":`中文`,"emp.addPrompt":`에이전트를 추가하세요`,"emp.delete":`삭제`,"emp.customRole":`커스텀 역할...`,"emp.customModel":`직접 입력...`,"role.label.frontend":`프런트엔드`,"role.label.backend":`백엔드`,"role.label.data":`데이터`,"role.label.docs":`문서작성`,"role.label.security":`보안`,"role.label.testing":`테스트`,"role.label.custom":`커스텀...`,"hb.empty":`하트비트가 없습니다`,"hb.name":`이름`,"hb.prompt":`프롬프트...`,"hb.add":`+ 새 하트비트 추가`,"hb.kindEvery":`반복`,"hb.kindCron":`cron`,"hb.minutesLabel":`분마다`,"hb.cronLabel":`식`,"hb.timezoneAuto":`비우면 시스템/브라우저 시간대`,"hb.cronPlaceholder":`예: 0 9 * * *`,"hb.invalidCron":`cron 식이 올바르지 않다. 5필드 형식으로 입력해야 한다.`,"hb.invalidTimeZone":`시간대가 올바르지 않다. 예: Asia/Seoul`,"hb.invalidMinutes":`반복 분은 1 이상의 정수여야 한다.`,"hb.invalidSchedule":`하트비트 스케줄이 올바르지 않다.`,"hb.scheduleHintCron":`예: {cron} · 시간대: {timeZone}`,"hb.scheduleHintEvery":`예: {minutes}분마다 · 시간대: {timeZone}`,"cmd.noMatch":`일치하는 커맨드가 없습니다`,"mem.noFiles":`No memory files yet`,"mem.empty":`No memory yet`,"memory.banner.bootstrapRerun":`메모리 bootstrap을 다시 실행하는 중...`,"memory.banner.reindexing":`메모리 인덱스를 재생성하는 중...`,"memory.banner.soulOptimize":`Soul 최적화`,"memory.banner.soulOptimizing":`Soul 최적화 중... (활성 CLI가 작업합니다)`,"memory.banner.soulPromptSent":`✓ Soul 최적화 프롬프트 전송됨. 채팅창을 확인하세요.`,"model.promptInput":`모델 ID를 입력하세요:`,"model.customOption":`직접 입력...`,"model.placeholder":`model ID 입력`,"mcp.syncing":`동기화 중...`,"mcp.installing":`npm i -g 설치 중... (최대 2분 소요)`,"settings.none":`(없음)`,"settings.channel.statusTitle":`전송 상태`,"settings.channel.activeInbound":`대화 수신 채널`,"settings.channel.configured":`설정됨`,"settings.channel.notConfigured":`미설정`,"settings.channel.sendCapable":`발송 가능`,"settings.channel.sendOnlyHint":`수신 채널은 아니지만, 설정되어 있으면 발송은 가능합니다.`,"settings.channel.testSend":`테스트 발송`,"settings.channel.testSendOk":`발송 성공`,"settings.channel.testSendFail":`발송 실패: {error}`,"cli.gemini.auth":`첫 실행 시 브라우저 인증`,"cli.copilot.authHint":`copilot login 또는 gh auth login`,"cli.showMore":`더 보기 ▸`,"cli.authRequired":`설치 / 인증 필요`,"cli.notAuthenticated":`인증 필요 — 아래 명령어 실행`,"drag.drop":`파일을 여기에 드랍하세요`,"status.responding":`응답 중`,"aria.cmdList":`커맨드 목록`,"btn.attach":`파일 첨부`,"input.placeholder":`메시지 입력...`,"queue.pendingTitle":`대기 중`,"queue.copy":`복사`,"queue.delete":`삭제`,"queue.steer":`지금 실행 (steer)`,"queue.cancelArm":`취소 (3초 안에 한 번 더 누르면 취소)`,loading:`로딩 중...`,"btn.editPrompt":`시스템 프롬프트 편집`,"tg.chatIds.placeholder":`콤마 구분 (비워두면 전체 허용)`,"fallback.desc":`CLI 실패 시 자동 재시도 순서`,"btn.cancel":`취소`,"btn.save":`저장`,"btn.stop":`멈춤 (Stop)`,"msg.you":`You`,"stat.messages":`Messages: {count}`,"ui.offline.banner":`오프라인 모드 — 캐시된 메시지 표시 중`,"time.10m":`10분`,"time.30m":`30분`,"time.manual":`수동`,"phase.plan":`기획`,"phase.verify":`기획검증`,"phase.dev":`개발`,"phase.debug":`디버깅`,"phase.integrate":`통합검증`,"orchestrator.allDone":`모든 작업 완료`,"orchestrator.continueHint":`이어서 진행하려면 "이어서 해줘"라고 말씀하세요.`,"orchestrator.noWorklog":`이어갈 worklog가 없습니다.`,"orchestrator.alreadyDone":`모든 작업이 이미 완료되었습니다.`,"sidebar.status":`상태`,"sidebar.memory":`메모리`,"sidebar.stats":`통계`,"sidebar.cliStatus":`CLI 상태`,"sidebar.agentName":`에이전트 이름`,"sidebar.avatar":`아바타`,"sidebar.employees":`직원`,"sidebar.promptTemplates":`프롬프트 템플릿`,"templates.title":`프롬프트 구조`,"templates.back":`뒤로`,"templates.devMode":`개발자 모드`,"templates.hint.click":`클릭하면 프롬프트 내용 확인`,"templates.hint.devEdit":`개발자 모드에서 편집`,"tab.agents":`에이전트`,"tab.skills":`스킬`,"tab.settings":`설정`,"btn.saveSettings":`저장`,"btn.addEmployee":`+ 추가`,"btn.off":`끔`,"btn.on":`켬`,"label.activeCli":`활성 CLI`,"label.model":`모델`,"label.effort":`추론 강도`,"label.permissions":`권한`,"label.workingDir":`작업 디렉토리`,"label.enabled":`활성화`,"label.botToken":`봇 토큰`,"label.chatIds":`허용 채팅 ID`,"label.forwardAll":`자동 전송`,"label.flushEvery":`정리 주기`,"emp.empty":`직원이 없습니다`,"modal.promptTitle":`시스템 프롬프트 (A-2)`,"modal.heartbeatTitle":`하트비트 작업`,"modal.memoryTitle":`메모리`,"code.copy":`복사`,"code.copied":`복사됨 ✓`,"mcp.noServers":`(서버 미설정)`,"mermaid.renderFail":`Mermaid 렌더링 실패`,"orchestrator.dispatching":`처리 중…`,"cmd.ide.desc":`IDE diff 보기`,"cmd.ide.toggled":`IDE diff 모드를 전환했습니다`,"cmd.ide.popToggled":`IDE 팝업을 전환했습니다`,"cmd.ide.usage":`/ide [pop|on|off]`,"label.mentionOnly":`@멘션 시에만 응답`,"help.section.what":`무엇인가`,"help.section.effect":`무엇이 바뀌나`,"help.section.useWhen":`언제 쓰나`,"help.section.howTo":`사용방법`,"help.section.example":`예시`,"help.section.avoidWhen":`언제 안 쓰나`,"help.section.related":`관련`,"help.close":`닫기`,"help.activeCli.title":`활성 CLI`,"help.activeCli.aria":`활성 CLI 도움말`,"help.activeCli.intro":`다음 요청을 처리할 CLI 엔진을 선택합니다.`,"help.activeCli.effect":`다음 실행부터 선택한 CLI의 세션, 모델 설정, 도구 동작 규칙을 사용합니다.`,"help.activeCli.use.1":`Claude, Codex, Gemini, OpenCode, Copilot 사이를 바꿀 때`,"help.activeCli.use.2":`CLI별 동작 차이를 비교하거나 테스트할 때`,"help.activeCli.howTo.1":`상단 활성 CLI 선택기에서 원하는 CLI를 고릅니다.`,"help.activeCli.howTo.2":`채팅에서 /cli <이름> 명령으로도 바꿀 수 있습니다.`,"help.activeCli.example.1":`Claude 응답이 막히면 Codex로 바꿔 같은 작업을 이어갈 수 있습니다.`,"help.activeCli.avoid.1":`같은 CLI 안에서 모델만 바꾸려는 경우`,"help.activeCli.related.1":`/cli`,"help.activeCli.related.2":`모델 선택`,"help.model.title":`모델`,"help.model.aria":`모델 도움말`,"help.model.intro":`현재 활성 CLI가 사용할 모델을 선택합니다.`,"help.model.effect":`다음 요청부터 같은 CLI 안에서 선택한 모델명으로 실행됩니다.`,"help.model.use.1":`더 빠른 모델이나 더 강한 모델로 바꿀 때`,"help.model.use.2":`모델별 기능이나 비용을 조절할 때`,"help.model.howTo.1":`활성 CLI 옆 모델 선택기에서 모델을 고릅니다.`,"help.model.howTo.2":`채팅에서 /model <모델명>으로도 변경할 수 있습니다.`,"help.model.example.1":`일반 코딩은 Sonnet, 긴 설계 검토는 Opus 계열처럼 목적에 맞춰 바꿉니다.`,"help.model.avoid.1":`CLI 엔진 자체를 바꿔야 하는 경우`,"help.model.related.1":`/model`,"help.effort.title":`추론 강도`,"help.effort.aria":`추론 강도 도움말`,"help.effort.intro":`지원되는 모델에서 사고 깊이와 속도를 조절합니다.`,"help.effort.effect":`지원되는 모델에서는 응답 속도와 reasoning 깊이의 균형이 바뀝니다.`,"help.effort.use.1":`복잡한 코드 분석이나 설계 검토가 필요할 때`,"help.effort.use.2":`짧은 작업을 빠르게 처리하고 싶을 때`,"help.effort.howTo.1":`Effort 선택기에서 low, medium, high 같은 값을 고릅니다.`,"help.effort.howTo.2":`빠른 확인은 낮게, 복잡한 구현 전 검토는 높게 둡니다.`,"help.effort.example.1":`오타 수정은 low, 큰 리팩터링 계획은 high로 둡니다.`,"help.effort.avoid.1":`현재 모델이 effort 설정을 무시하는 경우`,"help.effort.related.1":`모델별 지원 여부`,"help.permissions.title":`권한`,"help.permissions.aria":`권한 도움말`,"help.permissions.intro":`Auto (YOLO)는 자동 승인·권한 우회를 요청하는 정책입니다. YOLO는 이 화면에서 Auto의 표시 이름입니다.`,"help.permissions.effect":`자동 승인 방식, 파일 접근 범위와 Safe 지원 여부는 CLI·전송 방식마다 다릅니다.`,"help.permissions.use.1":`로컬 자동화가 반복 승인 없이 진행되어야 할 때`,"help.permissions.use.2":`신뢰할 수 있는 작업 디렉토리에서 긴 작업을 맡길 때`,"help.permissions.howTo.1":`Auto (YOLO) 또는 Safe를 선택한 뒤 저장된 정책을 확인합니다.`,"help.permissions.howTo.2":`승인 절차가 필요하면 해당 런타임의 Safe 지원 여부를 먼저 확인합니다.`,"help.permissions.example.1":`반복 작업에 자동 승인이 필요할 때 Auto (YOLO)를 선택합니다. 명시적인 질문은 계속 나올 수 있습니다.`,"help.permissions.avoid.1":`낯선 디렉토리나 위험한 작업을 다룰 때`,"help.permissions.related.1":`Auto (YOLO) / Safe — 런타임별 지원`,"help.flushAgent.title":`Flush Agent`,"help.flushAgent.aria":`Flush Agent 도움말`,"help.flushAgent.intro":`컨텍스트 정리나 요약에 사용할 CLI와 모델을 지정합니다.`,"help.flushAgent.effect":`compact나 flush 때 활성 모델 대신 지정된 요약용 에이전트가 컨텍스트를 정리합니다.`,"help.flushAgent.use.1":`요약 작업을 빠르고 안정적인 모델에 맡기고 싶을 때`,"help.flushAgent.use.2":`활성 모델과 요약 모델을 분리하고 싶을 때`,"help.flushAgent.howTo.1":`Flush Agent 설정에서 요약에 쓸 CLI와 모델을 고릅니다.`,"help.flushAgent.howTo.2":`긴 작업 전에 /flush 흐름과 함께 사용할 모델을 맞춥니다.`,"help.flushAgent.example.1":`주 작업은 Opus로 하고, 컨텍스트 정리는 빠른 Sonnet으로 맡길 수 있습니다.`,"help.flushAgent.avoid.1":`활성 CLI와 모델을 그대로 쓰면 충분한 경우`,"help.flushAgent.related.1":`/flush`,"help.employees.title":`직원`,"help.employees.aria":`직원 도움말`,"help.employees.intro":`직원은 Boss가 작업을 나눠 맡기는 별도 AI 작업자입니다.`,"help.employees.effect":`Boss의 메인 흐름과 분리된 CLI 세션에서 감사나 검증 결과를 받아옵니다.`,"help.employees.use.1":`프론트/백엔드/문서 검증을 나눌 때`,"help.employees.use.2":`PABCD A/B 단계에서 read-only 검증이 필요할 때`,"help.employees.use.3":`긴 리뷰를 메인 작업과 분리해서 돌릴 때`,"help.employees.howTo.1":`/employee reset — 디스크에서 직원 설정을 다시 로드합니다.`,"help.employees.howTo.2":`직원 디스패치: cli-jaw dispatch --agent "이름" --task "...".`,"help.employees.howTo.3":`PABCD A/B에서 직원은 기본적으로 읽기 전용 감사/검증만 수행합니다.`,"help.employees.howTo.4":`--mutable 플래그를 사용하면 직원이 파일을 수정할 수 있습니다.`,"help.employees.example.1":`Boss가 구현하는 동안 Backend 직원에게 계획의 import와 테스트 위험만 감사시킵니다.`,"help.employees.avoid.1":`단순 파일 읽기`,"help.employees.avoid.2":`작은 단일 수정`,"help.employees.avoid.3":`즉시 답변 가능한 질문`,"help.employees.related.1":`cli-jaw dispatch`,"help.employees.related.2":`PABCD A/B phase`,"help.skills.title":`스킬`,"help.skills.aria":`스킬 도움말`,"help.skills.intro":`스킬은 특정 작업 방식을 에이전트에게 알려주는 지침 묶음입니다.`,"help.skills.effect":`선택된 작업 유형에 맞는 절차, 도구, 검증 규칙이 에이전트에게 추가됩니다.`,"help.skills.use.1":`브라우저 제어, GitHub, PDF, 문서 작업처럼 특화된 절차가 필요할 때`,"help.skills.use.2":`반복 워크플로를 안정적으로 수행하게 만들 때`,"help.skills.howTo.1":`/skill — 설치된 활성 스킬 목록을 표시합니다.`,"help.skills.howTo.2":`/skill list — 활성 스킬과 참조 가능한 스킬을 모두 표시합니다.`,"help.skills.howTo.3":`/skill reset — 디스크에서 모든 스킬을 다시 로드합니다.`,"help.skills.howTo.4":`작업을 설명하면 에이전트가 자동으로 매칭되는 스킬을 선택합니다.`,"help.skills.example.1":`PDF 분석은 jaw-pdf 스킬, 프런트엔드 구현은 jaw-dev-frontend 지침을 사용합니다.`,"help.skills.avoid.1":`기본 대화만으로 충분한 일반 질문`,"help.skills.related.1":`/skill`,"help.activeChannel.title":`Active Channel`,"help.activeChannel.aria":`Active Channel 도움말`,"help.activeChannel.intro":`현재 메시지 전달과 채널 출력을 어느 서비스로 보낼지 정합니다.`,"help.activeChannel.effect":`파일 전달, 알림, 예약 작업 결과가 선택된 채널 기준으로 전송됩니다.`,"help.activeChannel.use.1":`Telegram과 Discord 중 운영 채널을 바꿀 때`,"help.activeChannel.use.2":`외부 알림 대상이 달라질 때`,"help.activeChannel.howTo.1":`채널 설정에서 Telegram 또는 Discord를 활성 채널로 선택합니다.`,"help.activeChannel.howTo.2":`전송이 필요한 작업 전 현재 채널이 맞는지 확인합니다.`,"help.activeChannel.example.1":`문서 파일은 Telegram으로 받고, 팀 알림은 Discord 채널로 보낼 수 있습니다.`,"help.activeChannel.avoid.1":`전송 on/off만 바꾸려는 경우`,"help.activeChannel.related.1":`Telegram / Discord 설정`,"help.telegram.title":`Telegram`,"help.telegram.aria":`Telegram 도움말`,"help.telegram.intro":`Telegram 봇 연결, 허용 채팅, mention-only, 자동 전송을 관리합니다.`,"help.telegram.effect":`허용된 Telegram 채팅에서 메시지, 파일, 음성 입력, 작업 결과를 주고받을 수 있습니다.`,"help.telegram.use.1":`Telegram에서 cli-jaw 응답이나 상태를 받고 싶을 때`,"help.telegram.use.2":`웹 응답을 Telegram으로 자동 전송할 때`,"help.telegram.link.botfather":`BotFather에서 봇 만들기`,"help.telegram.link.docs":`Telegram Bot API 가이드`,"help.telegram.howTo.1":`Telegram 앱에서 @BotFather를 검색해서 대화를 시작합니다.`,"help.telegram.howTo.2":`/newbot 명령을 보내면 봇 이름을 물어봅니다. 표시될 이름을 입력하세요 (예: "Jaw Bot").`,"help.telegram.howTo.3":`다음으로 유저네임을 입력합니다. 반드시 _bot으로 끝나야 해요 (예: jaw_helper_bot).`,"help.telegram.howTo.4":`성공하면 BotFather가 HTTP API 토큰을 보내줍니다 (1234567890:ABCdef... 형식). 이 토큰을 복사하세요.`,"help.telegram.howTo.5":`~/.cli-jaw/settings.json을 열고 telegram.token에 복사한 토큰을 붙여넣습니다.`,"help.telegram.howTo.6":`Telegram에서 방금 만든 봇을 검색 → "시작" 버튼을 누르거나 아무 메시지(예: "hello")를 보냅니다.`,"help.telegram.howTo.7":`터미널에서 jaw doctor를 실행하면 방금 보낸 채팅의 chat ID(숫자)가 표시됩니다.`,"help.telegram.howTo.8":`settings.json의 telegram.allowedChatIds 배열에 이 chat ID를 추가하면 설정 완료!`,"help.telegram.example.1":`외출 중에도 Telegram으로 장기 작업 완료 파일을 받을 수 있습니다.`,"help.telegram.avoid.1":`Discord를 주 운영 채널로 쓰는 경우`,"help.telegram.related.1":`/forward`,"help.telegram.related.2":`Allowed chat IDs`,"help.discord.title":`Discord`,"help.discord.aria":`Discord 도움말`,"help.discord.intro":`Discord guild/channel 라우팅과 mention 동작을 관리합니다.`,"help.discord.effect":`설정된 guild와 channel로 명령, 파일, 직원 결과 전달 범위가 제한됩니다.`,"help.discord.use.1":`서버 채널에서 slash command 중심으로 운영할 때`,"help.discord.use.2":`특정 guild/channel로 출력을 제한할 때`,"help.discord.link.portal":`Discord Developer Portal 열기`,"help.discord.link.docs":`Discord 봇 시작 가이드`,"help.discord.howTo.1":`discord.com/developers/applications에 접속하고 Discord 계정으로 로그인합니다.`,"help.discord.howTo.2":`오른쪽 상단 "New Application" 클릭 → 앱 이름 입력 (예: "Jaw Bot") → Create.`,"help.discord.howTo.3":`왼쪽 메뉴 "Bot" 탭 → "Reset Token" 클릭 → 봇 토큰을 복사합니다. (한 번만 보이니 바로 저장하세요!)`,"help.discord.howTo.4":`같은 Bot 페이지 아래쪽 "Privileged Gateway Intents" → MESSAGE CONTENT INTENT를 켭니다. (안 켜면 메시지를 못 읽어요!)`,"help.discord.howTo.5":`왼쪽 메뉴 "OAuth2" → "URL Generator"로 이동합니다.`,"help.discord.howTo.6":`SCOPES에서 bot과 applications.commands를 체크합니다. 아래 BOT PERMISSIONS에서 Send Messages, Read Message History 등을 선택합니다.`,"help.discord.howTo.7":`페이지 하단에 생성된 초대 URL을 복사 → 브라우저에 붙여넣기 → 봇을 추가할 서버를 선택합니다.`,"help.discord.howTo.8":`~/.cli-jaw/settings.json에 discord.token, guildId(서버 ID), channelId(채널 ID)를 입력합니다.`,"help.discord.howTo.9":`터미널에서 jaw doctor를 실행해서 봇 연결 상태와 권한이 정상인지 확인하면 완료!`,"help.discord.example.1":`프로젝트 채널 하나에 직원 검증 결과만 모아볼 수 있습니다.`,"help.discord.avoid.1":`DM 전달을 기대하는 경우`,"help.discord.related.1":`jaw doctor`,"help.discord.related.2":`Discord degraded mode`,"help.slack.title":`Slack`,"help.slack.aria":`Slack 도움말`,"help.slack.intro":`Slack 워크스페이스에 봇을 붙여 채널·DM·스레드에서 에이전트를 실행합니다.`,"help.slack.effect":`허용된 대화에서 멘션·DM·슬래시 커맨드가 에이전트로 전달되고, 답변은 스레드로 돌아옵니다.`,"help.slack.use.1":`팀 채널에서 멘션으로 에이전트를 부를 때`,"help.slack.use.2":`DM으로 개인 작업을 돌릴 때`,"help.slack.avoid.1":`토큰이 하나만 있을 때 — 봇 토큰만으로는 수신이 안 됩니다`,"help.slack.related.1":`Telegram 설정`,"help.slack.related.2":`Discord 설정`,"help.slack.link.portal":`Slack 앱 관리 페이지 열기`,"help.slack.link.docs":`Socket Mode 문서`,"help.slack.example.1":`@cli-jaw 이 저장소 테스트 돌려줘`,"help.slack.howTo.1":`아래 가이드 카드의 "매니페스트 복사"를 눌러 api.slack.com/apps → Create New App → From a manifest에 붙여넣어 앱을 만듭니다.`,"help.slack.howTo.2":`Socket Mode를 켜고 connections:write 범위의 app-level 토큰(xapp-)을 발급합니다.`,"help.slack.howTo.3":`워크스페이스에 설치해 봇 토큰(xoxb-)을 받습니다.`,"help.slack.howTo.4":`두 토큰을 아래 입력란에 각각 붙여넣습니다 — 서로 바꿔 넣지 않도록 주의하세요.`,"help.slack.howTo.5":`Channel IDs에 봇이 활동할 대화 ID를 넣습니다. 비우면 전체 허용입니다.`,"help.slack.howTo.6":`각 채널에서 /invite @봇이름 으로 봇을 초대합니다.`,"help.slack.howTo.7":`Mention Only가 켜져 있으면 채널에서는 멘션할 때만 응답합니다. DM은 항상 응답합니다.`,"help.slack.howTo.8":`Reply in Thread가 켜져 있으면 답변이 원 메시지 스레드로 들어갑니다.`,"help.slack.howTo.9":`cli-jaw doctor 로 토큰과 연결 상태를 확인합니다.`,"help.fallbackOrder.title":`Fallback`,"help.fallbackOrder.aria":`Fallback 도움말`,"help.fallbackOrder.intro":`현재 CLI가 실패하거나 사용 불가일 때 재시도할 CLI 순서를 정합니다.`,"help.fallbackOrder.effect":`선택한 순서대로 다른 CLI를 시도해 provider 장애나 quota 문제의 중단을 줄입니다.`,"help.fallbackOrder.use.1":`한 provider가 overloaded일 때 자동 백업을 쓰고 싶을 때`,"help.fallbackOrder.use.2":`긴 작업에서 중단 가능성을 줄이고 싶을 때`,"help.fallbackOrder.howTo.1":`Fallback 설정에서 재시도할 CLI 순서를 정합니다.`,"help.fallbackOrder.howTo.2":`디버깅 중에는 fallback을 끄거나 순서를 단순화합니다.`,"help.fallbackOrder.example.1":`Claude가 overloaded이면 Codex나 Gemini로 이어가도록 순서를 둘 수 있습니다.`,"help.fallbackOrder.avoid.1":`실패 원인을 즉시 멈춰서 디버깅해야 할 때`,"help.fallbackOrder.related.1":`/fallback`,"help.mcp.title":`MCP Servers`,"help.mcp.aria":`MCP 도움말`,"help.mcp.intro":`MCP 서버는 에이전트가 외부 도구와 리소스를 사용할 수 있게 연결합니다.`,"help.mcp.effect":`설치된 서버가 Claude, Codex, Gemini 등 여러 CLI의 도구 목록에 동기화됩니다.`,"help.mcp.use.1":`외부 앱, 데이터, 도구 접근이 필요한 작업을 할 때`,"help.mcp.use.2":`여러 CLI에 같은 도구 설정을 동기화할 때`,"help.mcp.howTo.1":`/mcp — 연결된 MCP 서버와 도구 목록을 표시합니다.`,"help.mcp.howTo.2":`/mcp sync — MCP 서버를 활성 CLI와 다시 동기화합니다.`,"help.mcp.howTo.3":`/mcp install — 레지스트리에서 새 MCP 서버를 설치합니다.`,"help.mcp.howTo.4":`MCP 설정 패널(⚙️)에서 서버를 추가, 편집, 삭제할 수 있습니다.`,"help.mcp.example.1":`filesystem MCP를 추가하면 에이전트가 허용된 폴더를 안정적으로 탐색할 수 있습니다.`,"help.mcp.avoid.1":`로컬 파일과 기본 도구만으로 충분한 작업`,"help.mcp.related.1":`/mcp`,"help.memory.title":`메모리`,"help.memory.aria":`메모리 도움말`,"help.memory.intro":`프로젝트 사실, 사용자 선호, 장기 컨텍스트를 세션 밖에 저장합니다.`,"help.memory.effect":`저장한 결정과 선호가 다음 세션이나 compact 이후에도 다시 검색되어 주입될 수 있습니다.`,"help.memory.use.1":`결정이나 선호를 다음 세션에도 유지해야 할 때`,"help.memory.use.2":`긴 프로젝트의 핵심 맥락을 보존해야 할 때`,"help.memory.howTo.1":`/memory — 저장된 메모리 항목 목록을 표시합니다.`,"help.memory.howTo.2":`/memory <검색어> — 키워드로 메모리를 검색합니다.`,"help.memory.howTo.3":`메모리는 memory/ 디렉토리의 구조화된 파일에 저장됩니다.`,"help.memory.howTo.4":`장기 결정과 선호사항만 저장하고, 임시 체크리스트나 로그는 저장하지 마세요.`,"help.memory.example.1":`"이 프로젝트는 vanilla JS 유지"는 저장하고, "오늘 테스트 3개 남음"은 저장하지 않습니다.`,"help.memory.avoid.1":`임시 체크리스트나 원본 로그를 그대로 저장하려는 경우`,"help.memory.related.1":`/memory`,"help.memory.related.2":`flush / bootstrap`,"help.stt.title":`음성 인식`,"help.stt.aria":`STT 도움말`,"help.stt.intro":`브라우저 음성 입력을 텍스트로 변환하는 설정입니다.`,"help.stt.effect":`음성 버튼으로 입력한 말이 선택된 STT 엔진을 거쳐 채팅 텍스트로 들어갑니다.`,"help.stt.use.1":`음성으로 긴 지시를 입력하고 싶을 때`,"help.stt.use.2":`Gemini, OpenAI, Whisper 중 STT 엔진을 고를 때`,"help.stt.howTo.1":`STT provider와 필요한 API 키를 설정합니다.`,"help.stt.howTo.2":`음성 버튼을 눌러 녹음한 뒤 변환된 텍스트를 확인합니다.`,"help.stt.example.1":`긴 회의 메모를 말로 입력한 뒤 에이전트에게 요약을 요청할 수 있습니다.`,"help.stt.avoid.1":`텍스트 입력만 쓰거나 API 키가 없는 경우`,"help.stt.related.1":`voice button`,"help.promptTemplates.title":`프롬프트 템플릿`,"help.promptTemplates.aria":`프롬프트 템플릿 도움말`,"help.promptTemplates.intro":`자주 쓰는 지시문을 재사용 가능한 템플릿으로 관리합니다.`,"help.promptTemplates.effect":`선택한 템플릿 내용이 새 요청에 반복 가능한 지시문으로 들어갑니다.`,"help.promptTemplates.use.1":`반복되는 작업 지시를 일관되게 넣고 싶을 때`,"help.promptTemplates.use.2":`긴 시스템성 지시를 직접 다시 쓰기 싫을 때`,"help.promptTemplates.howTo.1":`프롬프트 템플릿 모달에서 템플릿을 만들고 저장합니다.`,"help.promptTemplates.howTo.2":`반복 작업 전 해당 템플릿을 선택해 요청에 붙입니다.`,"help.promptTemplates.example.1":`매번 같은 코드 리뷰 기준을 붙여야 할 때 템플릿으로 저장합니다.`,"help.promptTemplates.avoid.1":`한 번만 쓸 짧은 지시인 경우`,"help.promptTemplates.related.1":`프롬프트 템플릿 모달`,"help.chatInput.title":`채팅 입력`,"help.chatInput.aria":`채팅 입력 도움말`,"help.chatComposer.aria":`채팅 입력 및 키보드 단축키 도움말`,"help.chatInput.intro":`현재 작업 지시, 슬래시 커맨드, 파일 첨부를 보내는 기본 입력창입니다.`,"help.chatInput.effect":`보낸 내용은 선택된 CLI와 현재 설정으로 전달되고, 첨부 파일은 메시지와 함께 처리됩니다.`,"help.chatInput.use.1":`새 작업을 시작하거나 현재 작업을 이어갈 때`,"help.chatInput.use.2":`/help, /pabcd 같은 슬래시 커맨드를 실행할 때`,"help.chatInput.use.3":`텍스트와 첨부 파일을 함께 보내야 할 때`,"help.chatInput.howTo.1":`메시지를 입력하고 Send를 누르거나 지원되는 제출 단축키를 사용합니다.`,"help.chatInput.howTo.2":`파일은 첨부 버튼이나 드래그 앤 드롭으로 추가한 뒤 함께 보냅니다.`,"help.chatInput.example.1":`"이 diff 리뷰해줘"라고 쓰고 관련 파일을 첨부합니다.`,"help.chatInput.avoid.1":`명령만 실행하려면 잘못된 자연어보다 슬래시 커맨드를 쓰는 편이 안전합니다.`,"help.chatInput.avoid.2":`비밀 키나 토큰 원문은 메시지에 직접 넣지 마세요.`,"help.chatInput.related.1":`첨부 파일`,"help.chatInput.related.2":`키보드 단축키`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD 도움말`,"help.orchestration.intro":`PABCD는 계획, 감사, 구현, 확인, 완료를 단계별로 진행하는 작업 흐름입니다.`,"help.orchestration.effect":`각 단계에서 해야 할 일이 분리되어 큰 작업을 더 안전하게 진행합니다.`,"help.orchestration.use.1":`여러 파일이나 기능을 건드리는 작업을 시작할 때`,"help.orchestration.use.2":`직원 감사나 구현 검증이 필요한 변경일 때`,"help.orchestration.use.3":`계획을 먼저 확정하고 싶은 작업일 때`,"help.orchestration.howTo.1":`/orchestrate I — 인터뷰 모드에 진입하여 요구사항을 정리합니다.`,"help.orchestration.howTo.2":`/orchestrate P — 계획 모드에 진입하여 플랜을 작성합니다.`,"help.orchestration.howTo.3":`/orchestrate A — 감사 모드에 진입하여 플랜을 검토합니다.`,"help.orchestration.howTo.4":`/orchestrate B — 빌드 모드에 진입하여 구현합니다.`,"help.orchestration.howTo.5":`/orchestrate C — 체크 모드에 진입하여 최종 검증합니다.`,"help.orchestration.howTo.6":`/orchestrate D — 완료 모드로 진입하고 IDLE로 복귀합니다.`,"help.orchestration.howTo.7":`/orchestrate status — 현재 PABCD 단계를 표시합니다.`,"help.orchestration.howTo.8":`/orchestrate reset — 어느 단계에서든 IDLE로 복귀합니다.`,"help.orchestration.example.1":`P에서 계획을 세우고, A에서 직원이 감사한 뒤, B에서 구현합니다.`,"help.orchestration.avoid.1":`한 줄 답변이나 단순 상태 확인에는 과합니다.`,"help.orchestration.avoid.2":`바로 실행해야 하는 긴급 작업에는 먼저 범위를 줄이세요.`,"help.orchestration.related.1":`직원`,"help.orchestration.related.2":`키보드 단축키`,"help.attachments.title":`첨부 파일`,"help.attachments.aria":`첨부 파일 도움말`,"help.attachments.intro":`이미지, 문서, 코드 파일을 현재 메시지와 함께 전달하는 영역입니다.`,"help.attachments.effect":`첨부된 파일은 메시지 맥락에 포함되어 에이전트가 읽거나 분석할 수 있습니다.`,"help.attachments.use.1":`스크린샷이나 오류 로그를 같이 설명해야 할 때`,"help.attachments.use.2":`문서나 코드 파일을 직접 검토시킬 때`,"help.attachments.use.3":`여러 파일을 한 요청에 묶어 보내야 할 때`,"help.attachments.howTo.1":`첨부 버튼을 누르거나 파일을 채팅 영역에 드롭합니다.`,"help.attachments.howTo.2":`보내기 전에 미리보기에서 잘못 붙은 파일을 제거합니다.`,"help.attachments.example.1":`오류 스크린샷과 로그 파일을 함께 보내 원인을 묻습니다.`,"help.attachments.avoid.1":`민감한 인증 파일이나 토큰이 든 파일은 보내지 마세요.`,"help.attachments.avoid.2":`관련 없는 대용량 파일은 분석 품질을 떨어뜨릴 수 있습니다.`,"help.attachments.related.1":`채팅 입력`,"help.attachments.related.2":`메모리`,"help.diagrams.title":`다이어그램`,"help.diagrams.aria":`다이어그램 도움말`,"help.diagrams.intro":`답변 안의 SVG, Mermaid, interactive diagram을 화면에서 바로 보는 기능입니다.`,"help.diagrams.effect":`복잡한 흐름, 구조, 비교를 글보다 빠르게 파악할 수 있습니다.`,"help.diagrams.use.1":`파일 변경 지도나 시스템 흐름을 보고 싶을 때`,"help.diagrams.use.2":`PABCD 계획이나 감사 결과를 한눈에 정리할 때`,"help.diagrams.use.3":`렌더링된 도표를 확대하거나 복사해야 할 때`,"help.diagrams.howTo.1":`답변 안의 다이어그램 버튼으로 확대, 복사, 저장 동작을 사용합니다.`,"help.diagrams.howTo.2":`글자가 밀리거나 선이 안 보이면 렌더링 문제로 보고해 주세요.`,"help.diagrams.example.1":`작업 범위를 파일 박스와 화살표로 보여 달라고 요청합니다.`,"help.diagrams.avoid.1":`정확한 원문이나 긴 코드에는 다이어그램보다 텍스트가 낫습니다.`,"help.diagrams.avoid.2":`보안 정보가 포함된 화면을 그대로 시각화하지 마세요.`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`첨부 파일`,"help.keyboardShortcuts.title":`키보드 단축키`,"help.keyboardShortcuts.aria":`키보드 단축키 도움말`,"help.keyboardShortcuts.intro":`반복 조작을 줄이는 브라우저와 Jaw UI의 단축키 안내입니다.`,"help.keyboardShortcuts.effect":`입력, 음성, 도움말, 대시보드 이동 같은 작업을 더 빠르게 실행할 수 있습니다.`,"help.keyboardShortcuts.use.1":`마우스 없이 자주 쓰는 동작을 실행하고 싶을 때`,"help.keyboardShortcuts.use.2":`단축키가 입력창을 방해하는지 확인하고 싶을 때`,"help.keyboardShortcuts.use.3":`Manager dashboard 단축키 설정 위치를 찾을 때`,"help.keyboardShortcuts.howTo.1":`Classic Web: 채팅 입력창에서 Enter는 전송, Shift+Enter는 줄바꿈이며, 슬래시 커맨드는 같은 입력창에서 /로 시작합니다. STT 녹음은 Ctrl+Shift+Space 또는 Alt/Option+M으로 토글합니다.`,"help.keyboardShortcuts.howTo.2":`Manager: 에디터 밖에서 ?는 단축키 도움말을 열고, Alt+I, Alt+P, Alt+N은 Instances, active Preview, Notes로 이동하며, Alt+K와 Alt+J는 이전/다음 인스턴스를 선택합니다.`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S는 저장, Cmd/Ctrl+E는 Raw/Preview/WYSIWYG 전환, Cmd/Ctrl+Shift+F는 노트 검색, Cmd/Ctrl+P는 quick switcher 토글, Cmd/Ctrl+Delete 또는 Cmd/Ctrl+Backspace는 선택한 노트나 폴더를 휴지통으로 보냅니다.`,"help.keyboardShortcuts.example.1":`채팅 입력창에서 Enter를 눌러 전송하고, 줄바꿈이 필요하면 Shift+Enter를 사용합니다.`,"help.keyboardShortcuts.example.2":`Manager에서 포커스가 입력창이나 에디터 안에 없을 때 ?를 눌러 이 단축키 도움말을 엽니다.`,"help.keyboardShortcuts.avoid.1":`브라우저 기본 단축키와 충돌하면 설정에서 다른 조합을 쓰세요.`,"help.keyboardShortcuts.avoid.2":`텍스트 작성 중에는 전역 단축키보다 입력 보호가 우선입니다.`,"help.keyboardShortcuts.related.1":`채팅 입력`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`세션 도움말`,"help.session.title":`세션`,"help.session.intro":`채팅 세션을 관리합니다 — 새 세션 생성, 세션 전환, 대화 초기화, 워크스페이스 리셋 등.`,"help.session.effect":`세션 명령은 현재 대화 상태만 변경하며 AI 에이전트 설정에는 영향을 주지 않습니다.`,"help.session.use.1":`/new로 새 대화 시작`,"help.session.use.2":`여러 채팅 세션 간 전환`,"help.session.use.3":`/clear 또는 /compact로 대화 기록 정리`,"help.session.howTo.1":`/new [라벨] — 선택적 라벨로 새 채팅 세션을 생성합니다.`,"help.session.howTo.2":`/switch <번호> — 세션 번호로 전환합니다. 별칭: /sw`,"help.session.howTo.3":`/sessions — 모든 세션 목록을 표시합니다. 별칭: /ss`,"help.session.howTo.4":`/clear — 현재 채팅 화면을 지웁니다.`,"help.session.howTo.5":`/clear all — 화면 + 모든 대화 기록을 지웁니다.`,"help.session.howTo.6":`/compact [지시] — 대화 컨텍스트를 압축하여 토큰을 절약합니다.`,"help.session.howTo.7":`/purge — 대화와 구조화된 메모리를 모두 삭제합니다.`,"help.session.howTo.8":`/reset confirm — 전체 워크스페이스 리셋 (설정은 보존).`,"help.session.example.1":`/new 코드리뷰 — 코드 리뷰용 라벨 세션을 생성합니다.`,"help.session.avoid.1":`채팅만 지우려면 /clear, 전체 초기화가 필요할 때만 /reset 사용.`,"help.session.related.1":`채팅 입력`,"help.session.related.2":`키보드 단축키`,"help.cliTools.aria":`CLI 도구 도움말`,"help.cliTools.title":`CLI 도구`,"help.cliTools.intro":`버전 확인, 프로젝트 관리, 시스템 프롬프트 보기, IDE 연동 등 유틸리티 명령어.`,"help.cliTools.effect":`정보를 표시하거나 개발 도구 연동을 설정합니다.`,"help.cliTools.use.1":`/version으로 현재 jaw 버전 확인`,"help.cliTools.use.2":`/project로 작업 디렉토리 설정`,"help.cliTools.use.3":`/prompt로 전체 시스템 프롬프트 보기`,"help.cliTools.howTo.1":`/version — jaw 버전과 활성 CLI 상태를 표시합니다.`,"help.cliTools.howTo.2":`/project set <경로...> — 프로젝트 워크스페이스 디렉토리를 설정합니다.`,"help.cliTools.howTo.3":`/project list — 현재 설정된 프로젝트 경로를 표시합니다.`,"help.cliTools.howTo.4":`/project reset — 프로젝트 디렉토리를 기본값으로 리셋합니다.`,"help.cliTools.howTo.5":`/prompt — AI에 전송되는 전체 시스템 프롬프트를 표시합니다.`,"help.cliTools.howTo.6":`/ide [pop|on|off] — IDE diff 뷰를 토글합니다 (CLI 전용).`,"help.cliTools.example.1":`/project set ~/my-repo — 활성 프로젝트 디렉토리를 설정합니다.`,"help.cliTools.avoid.1":`IDE 명령은 CLI 모드에서만 동작하며 웹 UI에서는 사용 불가.`,"help.cliTools.related.1":`활성 CLI`,"help.cliTools.related.2":`모델`,"help.agentControl.aria":`에이전트 제어 도움말`,"help.agentControl.title":`에이전트 제어`,"help.agentControl.intro":`AI 에이전트의 동작을 제어합니다 — 메시지 포워딩, 사고 표시, 플러시 모델 설정 등.`,"help.agentControl.effect":`현재 세션의 에이전트 런타임 동작을 변경합니다.`,"help.agentControl.use.1":`/forward로 채널 간 메시지 포워딩 토글`,"help.agentControl.use.2":`/thought로 Gemini 사고 과정 표시/숨기기`,"help.agentControl.use.3":`/flush로 컨텍스트 관리용 플러시 모델 설정`,"help.agentControl.howTo.1":`/forward [on|off] — 활성 채널로 메시지 포워딩을 토글합니다.`,"help.agentControl.howTo.2":`/thought [on|off] — Gemini 사고 과정 표시/숨기기.`,"help.agentControl.howTo.3":`/flush <cli> <model> — 컨텍스트 압축용 플러시 모델을 설정합니다.`,"help.agentControl.howTo.4":`/flush off — 플러시 모델을 비활성화합니다.`,"help.agentControl.howTo.5":`/steer <프롬프트> — 실행 중인 에이전트를 중단하고 방향을 전환합니다.`,"help.agentControl.howTo.6":`/status — CLI, 모델, 채널, 에이전트의 현재 상태를 표시합니다.`,"help.agentControl.example.1":`/forward on — 활성 채널로 메시지 포워딩을 활성화합니다.`,"help.agentControl.avoid.1":`에이전트 작업 중에는 포워딩을 토글하지 마세요.`,"help.agentControl.related.1":`모델`,"help.agentControl.related.2":`플러시 에이전트`,"help.goals.aria":`목표 도움말`,"help.goals.title":`목표 & 계획`,"help.goals.intro":`지속 목표와 구조화된 계획 워크플로 — 목표 설정, PABCD 오케스트레이션, 요구사항 인터뷰, 멀티세션 작업 관리.`,"help.goals.effect":`목표/계획 명령은 세션 간 지속되는 상태를 생성하고 AI를 구조화된 개발 단계로 안내합니다.`,"help.goals.use.1":`/goal로 지속 개발 목표 설정`,"help.goals.use.2":`/plan 또는 /orchestrate로 PABCD 구조화 계획 실행`,"help.goals.use.3":`/interview로 불명확한 요구사항 정리`,"help.goals.howTo.1":`/goal <목표> — 새 지속 개발 목표를 설정합니다.`,"help.goals.howTo.2":`/goal status — 현재 목표와 진행 체크포인트를 표시합니다.`,"help.goals.howTo.3":`/goal run — 활성 목표 작업을 재개합니다.`,"help.goals.howTo.4":`/goal plan [힌트] — AI 주도 목표 계획. 별칭: /goalplan`,"help.goals.howTo.5":`/goal done — 현재 목표를 완료로 표시합니다.`,"help.goals.howTo.6":`/goal cancel — 활성 목표를 취소합니다.`,"help.goals.howTo.7":`/goal pause / resume — 수동으로 목표를 일시정지/재개합니다.`,"help.goals.howTo.8":`/goal history — 완료/취소된 목표 기록을 표시합니다.`,"help.goals.howTo.9":`/plan [요청|status|copy] — PABCD 계획을 설명하거나 시작합니다.`,"help.goals.howTo.10":`/interview <요청> — 계획 전 요구사항을 정리합니다.`,"help.goals.example.1":`/goal 사용자 인증 구현 — AI가 세션 간 지속적으로 작업할 목표를 설정합니다.`,"help.goals.avoid.1":`모호한 목표는 피하세요 — 구체적으로 무엇을 만들지 명시.`,"help.goals.related.1":`오케스트레이션`,"help.goals.related.2":`직원`,"help.section.commands":`명령어 레퍼런스`,"help.session.subcmd.1":`/new [라벨] — 선택적 라벨을 붙여 새 채팅 세션을 시작합니다`,"help.session.subcmd.2":`/switch <번호> — 세션 번호로 전환합니다 (별칭: /sw, /<번호>)`,"help.session.subcmd.3":`/sessions — 모든 세션 목록을 표시합니다 (별칭: /ss)`,"help.session.subcmd.4":`/clear — 현재 채팅 화면을 지웁니다`,"help.session.subcmd.5":`/clear all — 화면과 모든 대화 기록을 삭제합니다`,"help.session.subcmd.6":`/compact [지시] — 대화 컨텍스트를 압축하여 토큰을 절약합니다`,"help.session.subcmd.7":`/purge — 대화와 구조화된 메모리를 모두 삭제합니다`,"help.session.subcmd.8":`/reset confirm — 전체 워크스페이스를 리셋합니다 (설정은 보존)`,"help.session.subcmd.9":`/quit — 프로세스를 종료합니다 (별칭: /q, /exit; CLI 전용)`,"help.orchestration.subcmd.1":`/orchestrate I — 인터뷰 모드에 진입하여 요구사항을 정리합니다`,"help.orchestration.subcmd.2":`/orchestrate P — 계획 모드에 진입하여 플랜을 작성합니다`,"help.orchestration.subcmd.3":`/orchestrate A — 감사 모드에 진입하여 플랜을 검토합니다`,"help.orchestration.subcmd.4":`/orchestrate B — 빌드 모드에 진입하여 구현합니다`,"help.orchestration.subcmd.5":`/orchestrate C — 체크 모드에 진입하여 최종 검증합니다`,"help.orchestration.subcmd.6":`/orchestrate D — 완료 모드로 진입하고 IDLE로 복귀합니다`,"help.orchestration.subcmd.7":`/orchestrate status — 현재 PABCD 단계를 표시합니다`,"help.orchestration.subcmd.8":`/orchestrate reset — 어느 단계에서든 IDLE로 복귀합니다 (별칭: /pabcd)`,"help.goals.subcmd.1":`/goal <목표> — 새 지속 목표를 설정합니다`,"help.goals.subcmd.2":`/goal plan [힌트] — AI가 목표 달성 계획을 수립합니다`,"help.goals.subcmd.3":`/goal status — 활성 목표의 현재 상태를 표시합니다`,"help.goals.subcmd.4":`/goal run — 목표 실행을 계속합니다`,"help.goals.subcmd.5":`/goal done [메모] — 목표를 완료로 표시합니다`,"help.goals.subcmd.6":`/goal cancel [사유] — 활성 목표를 취소합니다`,"help.goals.subcmd.7":`/goal pause — 활성 목표를 일시정지합니다`,"help.goals.subcmd.8":`/goal resume — 일시정지된 목표를 재개합니다`,"help.goals.subcmd.9":`/goal clear — 목표 데이터를 초기화합니다`,"help.goals.subcmd.10":`/goal reset — 목표 상태를 리셋합니다`,"help.goals.subcmd.11":`/goal history — 완료된 목표 이력을 표시합니다`,"help.goals.subcmd.12":`/goalplan [힌트] — /goal plan의 별칭입니다`,"help.goals.subcmd.13":`/plan [요청] — 구조화된 PABCD 계획을 수립합니다`,"help.goals.subcmd.14":`/plan status — 현재 계획 상태를 표시합니다`,"help.goals.subcmd.15":`/plan copy — 계획 내용을 클립보드에 복사합니다`,"help.goals.subcmd.16":`/interview <요청> — 요구사항을 구조적으로 정리합니다`,"help.goals.subcmd.17":`/deliberate <요청> — 계획자, 설계자, 비평가 역할로 심의합니다`,"help.goals.subcmd.18":`/planaudit [계획] — 읽기 전용 직원 감사 작업을 생성합니다`,"help.goals.subcmd.19":`/team plan <목표> — 병렬 팀 계획을 시작합니다`,"help.goals.subcmd.20":`/team audit — 팀 감사를 실행합니다`,"help.goals.subcmd.21":`/team status — 팀 실행 상태를 표시합니다`,"help.goals.subcmd.22":`/team collect — 팀 결과를 수집합니다`,"help.goals.subcmd.23":`/team stop — 팀 실행을 중지합니다`,"help.goals.subcmd.24":`/goal refine <목표> — AI가 선택한 plan-mode 목표를 최종 확정합니다`,"help.goals.subcmd.25":`/gd [메모] — 활성 목표를 강제 완료합니다. /goal done --force의 별칭입니다`,"help.activeCli.subcmd.1":`/cli — 현재 활성 CLI를 표시합니다`,"help.activeCli.subcmd.2":`/cli <이름> — CLI 엔진을 전환합니다 (claude, codex, gemini 등)`,"help.activeCli.subcmd.3":`/status — 전체 시스템 상태를 표시합니다`,"help.model.subcmd.1":`/model — 현재 모델을 표시합니다`,"help.model.subcmd.2":`/model <이름> — 활성 CLI의 모델을 변경합니다`,"help.skills.subcmd.1":`/skill — 설치된 활성 스킬 목록을 표시합니다`,"help.skills.subcmd.2":`/skill list — 활성 + 참조 가능 스킬 전체를 표시합니다`,"help.skills.subcmd.3":`/skill reset — 디스크에서 모든 스킬을 다시 로드합니다`,"help.employees.subcmd.1":`/employee — 등록된 직원 목록을 표시합니다`,"help.employees.subcmd.2":`/employee sessions-reset — 저장된 직원 resume 세션만 초기화합니다`,"help.mcp.subcmd.1":`/mcp — MCP 서버 목록을 표시합니다`,"help.mcp.subcmd.2":`/mcp sync — MCP 도구를 동기화합니다`,"help.mcp.subcmd.3":`/mcp install — MCP 서버를 설치합니다`,"help.mcp.subcmd.4":`/browser status — 브라우저 연결 상태를 표시합니다`,"help.mcp.subcmd.5":`/browser tabs — 열린 탭 목록을 표시합니다`,"help.memory.subcmd.1":`/memory — 메모리 개요를 표시합니다`,"help.memory.subcmd.2":`/memory <검색어> — 저장된 메모리를 검색합니다`,"help.flushAgent.subcmd.1":`/flush — 현재 플러시 설정을 표시합니다`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 지정 CLI의 플러시 모델을 설정합니다`,"help.flushAgent.subcmd.3":`/flush off — 플러시 모델을 비활성화합니다`,"help.fallbackOrder.subcmd.1":`/fallback — 현재 폴백 순서를 표시합니다`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — 폴백 CLI 순서를 설정합니다`,"help.fallbackOrder.subcmd.3":`/fallback off — 폴백을 비활성화합니다`,"help.agentControl.subcmd.1":`/forward on — 활성 채널로 메시지 포워딩을 활성화합니다`,"help.agentControl.subcmd.2":`/forward off — 메시지 포워딩을 비활성화합니다`,"help.agentControl.subcmd.3":`/thought on — Gemini 사고 과정을 표시합니다`,"help.agentControl.subcmd.4":`/thought off — Gemini 사고 과정을 숨깁니다`,"help.agentControl.subcmd.5":`/steer <프롬프트> — 실행 중인 에이전트를 중단하고 방향을 전환합니다`,"help.agentControl.subcmd.6":`/status — CLI, 모델, 채널, 에이전트의 현재 상태를 표시합니다`,"help.cliTools.subcmd.1":`/version — jaw 버전과 활성 CLI 상태를 표시합니다`,"help.cliTools.subcmd.2":`/project set <경로...> — 프로젝트 워크스페이스 디렉토리를 설정합니다`,"help.cliTools.subcmd.3":`/project list — 현재 설정된 프로젝트 경로를 표시합니다`,"help.cliTools.subcmd.4":`/project reset — 프로젝트 디렉토리를 기본값으로 리셋합니다`,"help.cliTools.subcmd.5":`/project clear — 프로젝트 디렉토리 설정을 초기화합니다`,"help.cliTools.subcmd.6":`/prompt — AI에 전송되는 전체 시스템 프롬프트를 표시합니다`,"help.cliTools.subcmd.7":`/ide pop — IDE diff 뷰를 팝업으로 엽니다 (CLI 전용)`,"help.cliTools.subcmd.8":`/ide on — IDE diff 뷰를 활성화합니다 (CLI 전용)`,"help.cliTools.subcmd.9":`/ide off — IDE diff 뷰를 비활성화합니다 (CLI 전용)`,"help.keyboardShortcuts.subcmd.1":`/help — 전체 명령어 목록을 표시합니다`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 특정 명령어의 상세 도움말을 표시합니다`,"help.keyboardShortcuts.subcmd.3":`/commands — 명령 팔레트를 엽니다 (별칭: /cmd)`,"bgtask.title":`백그라운드`,"tg.elicitationExpired":`선택 세션이 만료되었습니다. 텍스트로 답해주세요.`,"settings.slack.guide.step1Title":`Slack 앱 만들기`,"settings.slack.guide.openApps":`앱 페이지 열기`,"settings.slack.guide.step2Title":`봇 토큰 붙여넣기`,"settings.slack.guide.step3Title":`수신용 앱 토큰 (선택)`,"settings.slack.guide.step3Desc":`비워두면 전송 전용(outbound-only)으로 동작합니다`,"settings.slack.guide.botTokenError":`xoxb-로 시작하는 봇 토큰이어야 합니다 — 앱 토큰과 바꿔 넣지 않았나요?`,"settings.slack.guide.appTokenError":`xapp-로 시작하는 앱 레벨 토큰이어야 합니다 — 봇 토큰과 바꿔 넣지 않았나요?`,"settings.slack.advanced":`고급 설정`,"settings.slack.resetConnection":`연결 초기화`,"settings.slack.resetConfirm":`Slack 앱 연결이 초기화됩니다. 계속하시겠습니까?`,"settings.slack.resetEmpty":`연결된 Slack 앱이 없습니다.`,"settings.slack.resetFailed":`Slack 앱 연결을 초기화하지 못했습니다. 다시 시도해주세요.`,"settings.slack.resetManagedByEnvironment":`이 Slack 연결은 환경변수({variables})로 관리되고 있습니다. 해당 환경변수를 제거하고 cli-jaw를 재시작한 후 연결을 초기화하세요.`,"settings.slack.managedByEnvironment":`연결 설정은 환경변수({variables})로 관리되어 읽기 전용입니다. 여기서 수정하려면 환경변수를 제거하고 cli-jaw를 재시작하세요.`,"settings.slack.attachPort":`연결 인스턴스 포트`,"settings.channel.notAttachInstanceHint":`다른 인스턴스가 이 Slack 연결을 소유하고 있습니다 (연결 인스턴스 포트 확인)`,"settings.slack.guide.step2Desc":`앱 설정 → OAuth & Permissions → files:read 확인 → Reinstall to Workspace → Bot User OAuth Token 복사`,"settings.slack.guide.step3Location":`앱 설정 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`정보 수집 중...`,"slack.progress.working":`작업 중`,"slack.files.partialFailure":`⚠️ 일부 첨부파일을 제외했습니다:`,"slack.files.allFailure":`⚠️ 첨부파일을 처리하지 못해 요청을 실행하지 않았습니다:`,"slack.files.limit":`파일은 한 개당 50 MiB, 메시지당 10개·100 MiB까지 처리됩니다.`,"slack.files.error.external_file_unsupported":`Slack 외부 파일은 지원하지 않습니다`,"slack.files.error.private_network":`안전하지 않은 다운로드 위치입니다`,"slack.files.error.redirect_limit":`리다이렉트 한도를 초과했습니다`,"slack.files.error.size_exceeded":`파일 크기 한도를 초과했습니다`,"slack.files.error.message_budget_exceeded":`메시지 첨부 용량 한도를 초과했습니다`,"slack.files.error.missing_scope":`files:read 권한을 추가하고 앱을 재설치하세요`,"slack.files.error.ingress_cancelled":`처리가 취소되었습니다`,"slack.files.error.download_failed":`파일을 다운로드하지 못했습니다`,"onboarding.open":`설정 마법사`,"onboarding.optional":`선택`,"onboarding.validate":`검증`,"onboarding.save":`저장`,"onboarding.close":`닫기`,"onboarding.valid":`확인됨: {identity}`,"onboarding.title.telegram":`Telegram 연결`,"onboarding.title.discord":`Discord 연결`,"onboarding.title.slack":`Slack 연결`,"onboarding.guide.telegram":`텔레그램에서 @BotFather 를 열고 /newbot 을 보낸 뒤, 이름과 username을 정하면 봇 토큰이 나옵니다. 그 토큰을 아래에 붙여넣고 검증을 누르세요.`,"onboarding.guide.discord":`discord.com/developers/applications 에서 New Application → Bot → Reset Token 으로 토큰을 만들고, Privileged Gateway Intents 의 MESSAGE CONTENT INTENT 를 켜세요. 서버 ID는 Discord 설정에서 개발자 모드를 켠 뒤 서버 우클릭 → ID 복사로 얻습니다.`,"onboarding.guide.slack":`api.slack.com/apps에서 Create New App → From a manifest의 JSON 탭에 복사된 매니페스트를 붙여넣고, 추가하려는 워크스페이스를 선택하여 앱을 생성해 주세요.`,"onboarding.slackAppName":`앱 이름`,"onboarding.slackAppNameHint":`앱 이름을 35자 이내로 입력하세요. 봇 이름은 여기서 만들며, 쓸 수 있는 영문자가 없으면 cli-jaw가 됩니다.`,"onboarding.slackGenerateManifest":`매니페스트 생성`,"onboarding.slackManifestGenerating":`생성 중...`,"onboarding.slackManifestReady":`복사되었습니다`,"onboarding.slackManifestCopiedWithBot":`매니페스트를 복사했습니다. 봇 이름: {bot}`,"onboarding.slackManifestError":`매니페스트를 생성하거나 복사하지 못했어요. 다시 시도해주세요.`,"onboarding.slackAppNameError":`앱 이름을 1~35자로 입력하세요.`,"onboarding.warning.missingCapabilities":`선택 권한({capabilities})이 없어 해당 기능만 꺼져 있습니다. 권한을 추가하고 앱을 재설치하세요. 텍스트 메시지는 계속 사용할 수 있습니다.`,"onboarding.token.botToken":`봇 토큰`,"onboarding.token.appToken":`앱 레벨 토큰`,"onboarding.token.guildId":`서버 ID`,"onboarding.next.telegram":`저장했습니다. 이제 텔레그램에서 봇에게 아무 메시지나 보내면 채팅 ID가 자동 저장됩니다.`,"onboarding.next.discord":`저장했습니다. 봇을 서버에 초대하고 MESSAGE CONTENT INTENT 가 켜져 있는지 확인하세요.`,"onboarding.next.slack":`저장했습니다. 봇이 읽을 채널에서 /invite @cli-jaw 로 초대하세요.`,"onboarding.error.token_required":`토큰을 입력하세요.`,"onboarding.error.invalid_token":`토큰이 유효하지 않습니다. 다시 확인해 주세요.`,"onboarding.error.invalid_app_token":`앱 레벨 토큰이 유효하지 않습니다 (connections:write 범위 확인).`,"onboarding.error.guild_required":`서버 ID를 입력하세요.`,"onboarding.error.bot_prefix":`봇 토큰은 xoxb- 로 시작해야 합니다.`,"onboarding.error.app_prefix":`앱 레벨 토큰은 xapp- 로 시작해야 합니다.`,"onboarding.error.unknown_channel":`지원하지 않는 채널입니다.`,"onboarding.error.network":`네트워크 오류로 검증하지 못했습니다.`,"onboarding.next":`다음`,"onboarding.back":`이전`,"onboarding.step.1":`1. 어디서 받는지 확인`,"onboarding.step.2":`2. 발급받은 값 붙여넣기`,"onboarding.step.3":`3. 연결 검증`,"onboarding.step.4":`4. 저장`,"onboarding.validating":`확인하는 중...`,"onboarding.validateHint":`검증을 눌러 실제 연결을 확인하세요. 통과해야 저장으로 넘어갑니다.`,"onboarding.saveHint":`검증을 통과했습니다. 저장을 누르면 설정에 반영되고 채널이 바로 연결됩니다.`,"onboarding.error.validation_required":`먼저 검증을 통과해야 합니다.`,"onboarding.error.slack_setup_required":`매니페스트를 생성하고 발급 페이지를 연 뒤 다음 단계로 진행하세요.`,"onboarding.openIssuer":`발급 페이지 열기`,"onboarding.error.missing_scopes":`토큰은 유효하지만 앱에 권한(스코프)이 부족합니다. OAuth & Permissions에서 아래 항목을 추가하고 앱을 재설치하세요.`,"onboarding.hint.telegram.botToken":`@BotFather가 /newbot 후 알려준 값입니다.`,"onboarding.hint.discord.botToken":`Bot 탭의 Reset Token으로 새로 만든 값입니다.`,"onboarding.hint.discord.guildId":`개발자 모드를 켠 뒤 서버를 우클릭해 ID 복사.`,"onboarding.hint.slack.botToken":`OAuth & Permissions의 Bot User OAuth Token (xoxb-로 시작).`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens (xapp-, connections:write).`,"onboarding.progressLabel":`{total}단계 중 {step}단계`,"slack.progress.title":`요청 진행 상황`,"slack.progress.activityTitle":`최근 작업`,"slack.progress.deliveryTitle":`답변 전달`,"slack.progress.queued":`대기열에서 대기 중`,"slack.progress.running":`작업 활동 관찰 중`,"slack.progress.waiting":`다음 업데이트를 기다리는 중`,"slack.progress.delivering":`답변 전달 중`,"slack.progress.complete":`작업 관찰 종료`,"slack.progress.workflowComplete":`워크플로 응답이 끝났습니다. 실제 제작 결과는 별도 확인이 필요합니다.`,"slack.progress.unavailable":`활동 내역을 표시할 수 없습니다. 실행은 계속될 수 있습니다.`,"slack.progress.lastRuntime":`마지막 실행 신호: {seconds}초 전`,"slack.progress.error":`요청 실패`,"slack.progress.cancelled":`요청 취소됨`,"slack.progress.expired":`진행 표시가 종료되었습니다. 실행은 계속될 수 있습니다.`,"slack.progress.merged":`다른 요청과 합쳐짐`,"slack.progress.removed":`요청 제거됨`,"slack.progress.restored":`이전 진행 표시가 종료되었습니다. 실행 결과는 확인되지 않았습니다.`,"slack.progress.failure":`응답을 완료하지 못했습니다.`,"slack.progress.elapsed":`경과: {seconds}초`,"slack.progress.lastActivity":`마지막 활동: {seconds}초 전`,"slack.progress.longRunning":`{minutes}분째 실행 중 — 아직 진행 중입니다`,"slack.progress.category.read":`파일 읽기`,"slack.progress.category.write":`파일 편집`,"slack.progress.category.search":`검색`,"slack.progress.category.web":`웹페이지 읽기`,"slack.progress.category.command":`명령 실행`,"slack.progress.category.external":`외부 도구`,"slack.progress.category.tool":`도구 활동`,"slack.progress.status.observed":`관찰됨`,"slack.progress.status.in_progress":`진행 중`,"slack.progress.status.complete":`완료`,"slack.progress.status.error":`오류`,"slack.progress.status.stopped":`중단됨`,"slack.progress.status.unconfirmed":`완료 미확인`,"slack.progress.deliveryComplete":`답변 전달 완료`,"slack.progress.deliveryFailed":`답변 전달을 확인하지 못했습니다`,"slack.progress.deliveryUnconfirmed":`답변 전달 여부 미확인`,"slack.workflow.unavailable":`자동화의 발신·요청 정보나 지정된 활성 스킬을 확인할 수 없어 실행하지 않았습니다. 설정을 확인하세요.`,"slack.workflow.unconfirmed":`등록된 워크플로가 실질적인 결과를 반환하지 않았습니다. 이미 작업이 시작되었을 수 있으니 재시도 전에 기록을 확인하세요.`},O={"cmd.help.desc":`Command list`,"cmd.status.desc":`Current status`,"cmd.clear.desc":`Clear conversation / all: reset skills+employees+MCP`,"cmd.purge.desc":`Purge conversation and memory`,"cmd.purge.tg_desc":`Purge chat+memory`,"cmd.reset.desc":`Bootstrap reset (conversation/memory/skills/employees/MCP)`,"cmd.model.desc":`View/change model`,"cmd.cli.desc":`View/change active CLI`,"cmd.fallback.desc":`Set fallback CLI order`,"cmd.forward.desc":`Toggle Telegram auto-forwarding on/off`,"cmd.flush.desc":`View/change flush model`,"cmd.version.desc":`Version/CLI install status`,"cmd.skill.desc":`Skill list/reset`,"cmd.employee.desc":`Manage employees (list/model/cli/reset/sessions-reset)`,"cmd.mcp.desc":`MCP list/sync/install`,"cmd.memory.desc":`Memory search/list`,"cmd.browser.desc":`Browser status/tabs`,"cmd.prompt.desc":`View system prompt`,"cmd.quit.desc":`Quit process`,"cmd.file.desc":`Attach file`,"cmd.steer.desc":`Interrupt agent and redirect`,"cmd.compact.desc":`Compact conversation context`,"cmd.compact.tg_desc":`Compact conversation context`,"cmd.workflow.interview.desc":`Clarify requirements before planning`,"cmd.workflow.interview.tg_desc":`Start requirements interview`,"cmd.workflow.deliberate.desc":`Review a plan through multiple roles`,"cmd.workflow.deliberate.tg_desc":`Review plan by roles`,"cmd.workflow.plan.desc":`Explain the PABCD planning flow`,"cmd.workflow.plan.tg_desc":`Explain PABCD planning`,"cmd.workflow.plan.title":`PABCD planning guide`,"cmd.workflow.plan.pabcdEquivalent":`In cli-jaw, /plan is not a separate mode. It maps to PABCD P: clarify the plan first, then audit (A), build (B), check (C), and finish (D).`,"cmd.workflow.plan.noRequest":`No request was provided. Use /interview for unclear requirements or /deliberate for comparing implementation options.`,"cmd.workflow.plan.section.pabcd":`cli-jaw planning`,"cmd.workflow.plan.section.source":`Original request`,"cmd.workflow.plan.section.next":`Next actions`,"cmd.workflow.plan.next.interview":`- Need clearer requirements: /interview <request>`,"cmd.workflow.plan.next.deliberate":`- Need option comparison: /deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- Already have a plan: /planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- Ready to formalize: /orchestrate P`,"cmd.workflow.plan.footer":`This is a guidance artifact. The approved plan still belongs to PABCD P.`,"cmd.artifact.action.copy":`Copy`,"cmd.artifact.action.reinsert":`Put back in input`,"cmd.artifact.action.sendAsChat":`Send as chat`,"cmd.artifact.action.startPabcd":`Use in PABCD P`,"cmd.workflow.planAudit.desc":`Create a read-only plan audit task`,"cmd.workflow.planAudit.tg_desc":`Create plan audit task`,"cmd.workflow.search.desc":`Route search through the search skill`,"cmd.workflow.search.tg_desc":`Search through the search skill`,"cmd.workflow.goal.desc":`Goal state and bounded run workflow`,"cmd.workflow.goal.tg_desc":`Check goal or run state`,"cmd.workflow.team.desc":`Parallel team orchestration`,"cmd.workflow.team.tg_desc":`Team orchestration`,"cmd.workflow.review.tg_desc":`Review project dir`,"cmd.workflow.interview.title":`Requirements interview`,"cmd.workflow.deliberate.title":`Role-based plan review`,"cmd.workflow.planAudit.title":`Read-only plan audit`,"cmd.help.tg_desc":`Show available commands`,"cmd.status.tg_desc":`Check model, CLI & session status`,"cmd.clear.tg_desc":`Reset conversation (keep data)`,"cmd.model.tg_desc":`Check current AI model`,"cmd.cli.tg_desc":`Check current CLI engine`,"cmd.fallback.tg_desc":`Set CLI auto-switch order`,"cmd.forward.tg_desc":`Toggle auto-forwarding`,"cmd.flush.tg_desc":`Set model for conversation reset`,"cmd.version.tg_desc":`Check version & install status`,"cmd.skill.tg_desc":`View AI skill list`,"cmd.browser.tg_desc":`Check browser connection`,"cmd.steer.tg_desc":`Redirect agent to new task`,"cmd.steer.noPrompt":`Usage: /steer <new prompt>`,"cmd.steer.noAgent":`No agent is currently running.`,"cmd.steer.started":`Redirecting...`,"cmd.unknown":`Unknown command: /{name}
|
|
23
23
|
Use /help to see available commands.`,"cmd.unsupported":`/{name} is not available on {iface}.`,"cmd.error":`/{name} execution error: {msg}`,"cmd.recovery.originalPrompt":`Original input`,"cmd.helpTitle":`Available commands`,"cmd.helpDetail":`Detailed help: /help <command>`,"cmd.settingsLoadFail":`Failed to load settings.`,"cmd.model.current":`Current model ({cli}): {model}`,"cmd.model.invalid":`Invalid model name.`,"cmd.model.changed":`Model changed: {model}
|
|
24
24
|
Applied from next message.`,"cmd.cli.current":`Current CLI: {cli}
|
|
25
25
|
Available: {available}`,"cmd.cli.unknown":`Unknown CLI: {cli}
|
|
@@ -40,7 +40,7 @@ Please read and analyze this file.`,"chat.file.sentImage":`[User sent an image:
|
|
|
40
40
|
Please analyze this image.`,"chat.file.sentVideo":`[User sent a video: {path}]
|
|
41
41
|
Please check this video file.`,"chat.file.sentWithMsg":`
|
|
42
42
|
|
|
43
|
-
User message: {text}`,"chat.file.uploadFail":`File upload failed: {msg}`,"chat.requestFail":`Request failed ({status})`,"chat.continue":`Continuing the current task.`,"chat.noPendingContinue":`No pending work to continue.`,"chat.voice.label":`🎤 [Voice message]`,"sessionHub.title":`Sessions`,"sessionHub.description":`Review local and channel conversations by session.`,"sessionHub.defaultSession":`Default session`,"sessionHub.sessionLabel":`Session {seq}`,"sessionHub.source.local":`Local`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`Messages`,"sessionHub.lastActivity":`Last activity`,"sessionHub.noActivity":`No activity`,"sessionHub.empty.title":`No channel sessions yet`,"sessionHub.empty.description":`Connect a channel and each conversation will appear here as a session.`,"sessionHub.empty.action":`Connect a channel in settings`,"sessionHub.listAria":`Session list`,"sessionHub.delete":`Delete`,"sessionHub.deleteConfirm":`Delete this session? Its conversation history will also be deleted.`,"sessionHub.deleteRemoteDisabled":`Sessions connected to a channel cannot be deleted.`,"sessionHub.deleteFailed":`The session could not be deleted. Check whether it has active work.`,"sessionReadonly.message":`Read-only. Switch to this session before sending.`,"sessionReadonly.remote":`Sessions connected to a channel are read-only on the web.`,"sessionReadonly.switch":`Switch to /{seq}`,"sessionReadonly.openSessions":`Open session list`,"sessionReadonly.composeRejected":`This session is read-only. Use the switch action above.`,"sessionReadonly.elicitationRejected":`Responses cannot be sent from a read-only session. Switch sessions and try again.`,"skill.loadFail":`Failed to load skills`,"skill.count":`{active} active / {total} total`,"skill.countFiltered":`{shown} shown / {active} active / {total} total`,"skill.search.placeholder":`Search skills...`,"skill.search.aria":`Search skills`,"skill.search.empty":`No skills match your search.`,"skill.filter.all":`All`,"skill.filter.installed":`Installed`,"skill.filter.productivity":`Productivity`,"skill.filter.communication":`Comms`,"skill.filter.devtools":`Dev`,"skill.filter.utility":`Utility`,"skill.filter.smarthome":`Home`,"skill.filter.other":`Other`,"skill.filter.ai":`AI`,"lang.ko":`한국어`,"lang.en":`English`,"lang.ja":`日本語`,"lang.zh":`中文`,"emp.addPrompt":`Add an agent`,"emp.delete":`Delete`,"emp.customRole":`Custom role...`,"emp.customModel":`Enter manually...`,"role.label.frontend":`Frontend`,"role.label.backend":`Backend`,"role.label.data":`Data`,"role.label.docs":`Docs`,"role.label.security":`Security`,"role.label.testing":`Testing`,"role.label.custom":`Custom...`,"hb.empty":`No heartbeats`,"hb.name":`Name`,"hb.prompt":`Prompt...`,"hb.add":`+ Add heartbeat`,"hb.kindEvery":`Every`,"hb.kindCron":`Cron`,"hb.minutesLabel":`minutes`,"hb.cronLabel":`expr`,"hb.timezoneAuto":`Blank = system/browser timezone`,"hb.cronPlaceholder":`e.g. 0 9 * * *`,"hb.invalidCron":`Invalid cron expression. Use 5 fields.`,"hb.invalidTimeZone":`Invalid time zone. Example: Asia/Seoul`,"hb.invalidMinutes":`Minutes must be an integer greater than or equal to 1.`,"hb.invalidSchedule":`Invalid heartbeat schedule.`,"hb.scheduleHintCron":`Example: {cron} · Time zone: {timeZone}`,"hb.scheduleHintEvery":`Example: every {minutes} min · Time zone: {timeZone}`,"cmd.noMatch":`No matching commands`,"mem.noFiles":`No memory files yet`,"mem.empty":`No memory yet`,"memory.banner.bootstrapRerun":`Re-running memory bootstrap...`,"memory.banner.reindexing":`Rebuilding memory index...`,"memory.banner.soulOptimize":`Optimize Soul`,"memory.banner.soulOptimizing":`Optimizing Soul... (active CLI is working)`,"memory.banner.soulPromptSent":`✓ Soul optimization prompt sent. Check the chat.`,"model.promptInput":`Enter model ID:`,"model.customOption":`Enter manually...`,"model.placeholder":`Enter model ID`,"mcp.syncing":`Syncing...`,"mcp.installing":`Installing via npm... (up to 2 min)`,"settings.none":`(none)`,"settings.channel.statusTitle":`Transport status`,"settings.channel.activeInbound":`Active inbound channel`,"settings.channel.configured":`Configured`,"settings.channel.notConfigured":`Not configured`,"settings.channel.sendCapable":`Send-capable`,"settings.channel.sendOnlyHint":`Not receiving inbound, but outbound send still works when configured.`,"settings.channel.testSend":`Test send`,"settings.channel.testSendOk":`Send succeeded`,"settings.channel.testSendFail":`Send failed: {error}`,"cli.gemini.auth":`Browser auth on first run`,"cli.copilot.authHint":`copilot login or gh auth login`,"cli.showMore":`More ▸`,"cli.authRequired":`Install / auth required`,"cli.notAuthenticated":`Auth required — run command below`,"drag.drop":`Drop files here`,"status.responding":`Responding`,"aria.cmdList":`Command list`,"btn.attach":`Attach file`,"input.placeholder":`Type a message...`,"queue.pendingTitle":`Pending`,"queue.copy":`Copy prompt`,"queue.delete":`Remove`,"queue.steer":`Run now (steer)`,"queue.cancelArm":`Click again to cancel`,loading:`Loading...`,"btn.editPrompt":`Edit system prompt`,"tg.chatIds.placeholder":`Comma-separated (leave empty to allow all)`,"fallback.desc":`Auto-retry order on CLI failure`,"btn.cancel":`Cancel`,"btn.save":`Save`,"btn.stop":`Stop`,"msg.you":`You`,"stat.messages":`Messages: {count}`,"ui.offline.banner":`Offline mode — showing cached messages`,"time.10m":`10 min`,"time.30m":`30 min`,"time.manual":`Manual`,"phase.plan":`Planning`,"phase.verify":`Plan Review`,"phase.dev":`Development`,"phase.debug":`Debugging`,"phase.integrate":`Integration`,"orchestrator.allDone":`All tasks completed`,"orchestrator.continueHint":`Say "continue" to proceed.`,"orchestrator.noWorklog":`No worklog to continue from.`,"orchestrator.alreadyDone":`All tasks are already completed.`,"sidebar.status":`Status`,"sidebar.memory":`Memory`,"sidebar.stats":`Stats`,"sidebar.cliStatus":`CLI STATUS`,"sidebar.agentName":`Agent Name`,"sidebar.avatar":`Avatar`,"sidebar.employees":`Employees`,"sidebar.promptTemplates":`Prompt Templates`,"templates.title":`Prompt Structure`,"templates.back":`Back`,"templates.devMode":`Developer Mode`,"templates.hint.click":`Click to view template content`,"templates.hint.devEdit":`Edit in developer mode`,"tab.agents":`Agents`,"tab.skills":`Skills`,"tab.settings":`Settings`,"btn.saveSettings":`Save`,"btn.addEmployee":`+ Add`,"btn.off":`Off`,"btn.on":`On`,"label.activeCli":`Active CLI`,"label.model":`Model`,"label.effort":`Effort`,"label.permissions":`Permissions`,"label.workingDir":`Working Directory`,"label.enabled":`Enabled`,"label.botToken":`Bot Token`,"label.chatIds":`Allowed Chat IDs`,"label.forwardAll":`Auto Forward`,"label.flushEvery":`Flush Every`,"emp.empty":`No employees yet`,"modal.promptTitle":`System Prompt (A-2)`,"modal.heartbeatTitle":`Heartbeat Jobs`,"modal.memoryTitle":`Memory`,"code.copy":`Copy`,"code.copied":`Copied ✓`,"mcp.noServers":`(no servers configured)`,"mermaid.renderFail":`Mermaid render failed`,"orchestrator.dispatching":`Processing…`,"cmd.ide.desc":`IDE diff view`,"cmd.ide.toggled":`IDE diff mode toggled`,"cmd.ide.popToggled":`IDE popup toggled`,"cmd.ide.usage":`Usage: /ide [pop|on|off]`,"label.mentionOnly":`Mention Only`,"help.section.what":`What it is`,"help.section.effect":`What changes`,"help.section.useWhen":`Use when`,"help.section.howTo":`How to use`,"help.section.example":`Example`,"help.section.avoidWhen":`Avoid when`,"help.section.related":`Related`,"help.close":`Close`,"help.activeCli.title":`Active CLI`,"help.activeCli.aria":`Active CLI help`,"help.activeCli.intro":`Chooses which CLI engine handles the next request.`,"help.activeCli.effect":`The next run uses the selected CLI's session, model settings, and tool behavior.`,"help.activeCli.use.1":`Switching between Claude, Codex, Gemini, OpenCode, or Copilot`,"help.activeCli.use.2":`Testing behavior across CLI engines`,"help.activeCli.howTo.1":`Choose the desired CLI from the active CLI selector.`,"help.activeCli.howTo.2":`You can also type /cli <name> in chat.`,"help.activeCli.example.1":`If Claude is blocked, switch to Codex and continue the same work.`,"help.activeCli.avoid.1":`Only the model within the same CLI needs to change`,"help.activeCli.related.1":`/cli`,"help.activeCli.related.2":`Model selector`,"help.model.title":`Model`,"help.model.aria":`Model help`,"help.model.intro":`Chooses the model used by the active CLI.`,"help.model.effect":`Future requests on the same CLI run with the selected model name.`,"help.model.use.1":`Switching to a faster or stronger model`,"help.model.use.2":`Tuning model-specific capability or cost`,"help.model.howTo.1":`Pick a model from the selector beside the active CLI.`,"help.model.howTo.2":`You can also type /model <model-name> in chat.`,"help.model.example.1":`Use Sonnet for normal coding and an Opus model when deeper review matters more than speed.`,"help.model.avoid.1":`The CLI engine itself needs to change`,"help.model.related.1":`/model`,"help.effort.title":`Reasoning effort`,"help.effort.aria":`Reasoning effort help`,"help.effort.intro":`Controls reasoning depth and speed where the selected model supports it.`,"help.effort.effect":`Supported models rebalance response speed against reasoning depth.`,"help.effort.use.1":`Deep code analysis or design review needs more reasoning`,"help.effort.use.2":`Small tasks should run faster`,"help.effort.howTo.1":`Choose low, medium, high, or another available value from the effort selector.`,"help.effort.howTo.2":`Use lower effort for quick checks and higher effort before complex implementation.`,"help.effort.example.1":`Use low for a typo fix and high for a large refactor plan.`,"help.effort.avoid.1":`The current model ignores effort settings`,"help.effort.related.1":`Model support notes`,"help.permissions.title":`Permissions`,"help.permissions.aria":`Permissions help`,"help.permissions.intro":`Auto (YOLO) requests automatic approval or permission bypass. YOLO is the display name for Auto in this selector.`,"help.permissions.effect":`Automatic approval, file access and Safe support vary by CLI and transport.`,"help.permissions.use.1":`Local automation should proceed without repeated prompts`,"help.permissions.use.2":`A trusted working directory is handling a long task`,"help.permissions.howTo.1":`Choose Auto (YOLO) or Safe, then check the saved policy.`,"help.permissions.howTo.2":`If approvals are required, first check whether your runtime supports Safe.`,"help.permissions.example.1":`Choose Auto (YOLO) for repetitive work that needs automatic approval. Explicit questions may still appear.`,"help.permissions.avoid.1":`The directory or task is unfamiliar or risky`,"help.permissions.related.1":`Auto (YOLO) / Safe — runtime support`,"help.flushAgent.title":`Flush Agent`,"help.flushAgent.aria":`Flush Agent help`,"help.flushAgent.intro":`Chooses which CLI and model summarize or flush context.`,"help.flushAgent.effect":`Compaction and flush work use the configured summary agent instead of the active model.`,"help.flushAgent.use.1":`Summary work should use a fast or reliable model`,"help.flushAgent.use.2":`The active model and summary model should differ`,"help.flushAgent.howTo.1":`Pick the CLI and model that should handle summarization in Flush Agent settings.`,"help.flushAgent.howTo.2":`Align it with the /flush flow before long sessions.`,"help.flushAgent.example.1":`Use Opus for main work while a faster Sonnet handles context summaries.`,"help.flushAgent.avoid.1":`The active CLI and model are already enough`,"help.flushAgent.related.1":`/flush`,"help.employees.title":`Employees`,"help.employees.aria":`Employees help`,"help.employees.intro":`Employees are separate AI workers that the Boss can dispatch for role-based verification or analysis.`,"help.employees.effect":`The Boss receives audit or verification results from a separate CLI session.`,"help.employees.use.1":`Frontend, backend, or docs review should run independently`,"help.employees.use.2":`PABCD A/B needs read-only verification`,"help.employees.use.3":`A long review should run outside the main thread`,"help.employees.howTo.1":`/employee reset — Restart all employee configurations from disk.`,"help.employees.howTo.2":`Employees are dispatched via cli-jaw dispatch --agent "Name" --task "...".`,"help.employees.howTo.3":`In PABCD A/B, employees run as read-only auditors or verifiers by default.`,"help.employees.howTo.4":`Use --mutable flag to let an employee write files during dispatch.`,"help.employees.example.1":`While Boss implements, ask Backend to audit imports and test risks only.`,"help.employees.avoid.1":`Simple file lookup`,"help.employees.avoid.2":`Small single-file edits`,"help.employees.avoid.3":`Questions that can be answered directly`,"help.employees.related.1":`cli-jaw dispatch`,"help.employees.related.2":`PABCD A/B phase`,"help.skills.title":`Skills`,"help.skills.aria":`Skills help`,"help.skills.intro":`Skills are instruction packs for specialized workflows.`,"help.skills.effect":`The agent receives workflow-specific procedures, tools, and verification rules.`,"help.skills.use.1":`A task needs browser control, GitHub, PDF, document, or testing workflow`,"help.skills.use.2":`A repeatable workflow should run consistently`,"help.skills.howTo.1":`/skill — List all active (installed) skills.`,"help.skills.howTo.2":`/skill list — Show active skills and available reference skills.`,"help.skills.howTo.3":`/skill reset — Reload all skills from disk.`,"help.skills.howTo.4":`Name the skill or describe the task — the agent auto-selects matching skills.`,"help.skills.example.1":`PDF analysis uses the jaw-pdf skill; frontend implementation uses jaw-dev-frontend guidance.`,"help.skills.avoid.1":`A normal chat response is enough`,"help.skills.related.1":`/skill`,"help.activeChannel.title":`Active Channel`,"help.activeChannel.aria":`Active Channel help`,"help.activeChannel.intro":`Chooses which service receives channel output.`,"help.activeChannel.effect":`File delivery, notifications, and scheduled job results target the selected channel.`,"help.activeChannel.use.1":`Switching operational output between Telegram and Discord`,"help.activeChannel.use.2":`External notification targets change`,"help.activeChannel.howTo.1":`Select Telegram or Discord in channel settings.`,"help.activeChannel.howTo.2":`Check the active channel before tasks that deliver files or notifications.`,"help.activeChannel.example.1":`Receive document files on Telegram while team alerts go to Discord.`,"help.activeChannel.avoid.1":`Only forwarding on/off should change`,"help.activeChannel.related.1":`Telegram / Discord settings`,"help.telegram.title":`Telegram`,"help.telegram.aria":`Telegram help`,"help.telegram.intro":`Manages Telegram bot connection, allowed chats, mention-only mode, and forwarding.`,"help.telegram.effect":`Allowed Telegram chats can exchange messages, files, voice input, and task results.`,"help.telegram.use.1":`You want cli-jaw updates through Telegram`,"help.telegram.use.2":`Web responses should be forwarded to Telegram`,"help.telegram.link.botfather":`Create bot with BotFather`,"help.telegram.link.docs":`Telegram Bot API guide`,"help.telegram.howTo.1":`Open Telegram and search for @BotFather to start a conversation.`,"help.telegram.howTo.2":`Send /newbot — it will ask for a display name. Enter one (e.g. "Jaw Bot").`,"help.telegram.howTo.3":`Next, enter a username. It must end with _bot (e.g. jaw_helper_bot).`,"help.telegram.howTo.4":`BotFather will send you an HTTP API token (format: 1234567890:ABCdef...). Copy it.`,"help.telegram.howTo.5":`Open ~/.cli-jaw/settings.json and paste the token into telegram.token.`,"help.telegram.howTo.6":`Search for your new bot in Telegram → tap "Start" or send any message (e.g. "hello").`,"help.telegram.howTo.7":`Run jaw doctor in your terminal — it will display the chat ID (a number) from the message you just sent.`,"help.telegram.howTo.8":`Add that chat ID to the telegram.allowedChatIds array in settings.json — done!`,"help.telegram.example.1":`Receive a long-running task's finished file through Telegram while away from the web UI.`,"help.telegram.avoid.1":`Discord is the active operational channel`,"help.telegram.related.1":`/forward`,"help.telegram.related.2":`Allowed chat IDs`,"help.discord.title":`Discord`,"help.discord.aria":`Discord help`,"help.discord.intro":`Manages Discord guild and channel routing plus mention behavior.`,"help.discord.effect":`Commands, files, and employee results are limited to the configured guild and channel.`,"help.discord.use.1":`Operating through a server channel with slash commands`,"help.discord.use.2":`Restricting output to specific guilds or channels`,"help.discord.link.portal":`Open Discord Developer Portal`,"help.discord.link.docs":`Discord bot getting started`,"help.discord.howTo.1":`Go to discord.com/developers/applications and log in with your Discord account.`,"help.discord.howTo.2":`Click "New Application" (top right) → enter an app name (e.g. "Jaw Bot") → Create.`,"help.discord.howTo.3":`In the left menu, go to "Bot" tab → click "Reset Token" → copy the bot token. (It's only shown once — save it now!)`,"help.discord.howTo.4":`On the same Bot page, scroll to "Privileged Gateway Intents" → turn on MESSAGE CONTENT INTENT. (Without this, the bot can't read messages!)`,"help.discord.howTo.5":`In the left menu, go to "OAuth2" → "URL Generator".`,"help.discord.howTo.6":`Under SCOPES, check bot and applications.commands. Under BOT PERMISSIONS, select Send Messages, Read Message History, etc.`,"help.discord.howTo.7":`Copy the generated invite URL at the bottom → paste in browser → select the server to add the bot to.`,"help.discord.howTo.8":`Open ~/.cli-jaw/settings.json and enter discord.token, guildId (server ID), and channelId (channel ID).`,"help.discord.howTo.9":`Run jaw doctor in your terminal to verify bot connection and permissions — done!`,"help.discord.example.1":`Collect employee verification results in one project channel.`,"help.discord.avoid.1":`You expect direct-message delivery`,"help.discord.related.1":`jaw doctor`,"help.discord.related.2":`Discord degraded mode`,"help.slack.title":`Slack`,"help.slack.aria":`Slack help`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`Click "Copy manifest" in the guide card below, then create the app at api.slack.com/apps → Create New App → From a manifest.`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback`,"help.fallbackOrder.aria":`Fallback help`,"help.fallbackOrder.intro":`Sets which CLI is tried when the current one fails or is unavailable.`,"help.fallbackOrder.effect":`Other CLIs are tried in order to reduce interruptions from provider failures or quota issues.`,"help.fallbackOrder.use.1":`A provider is overloaded and you want an automatic backup`,"help.fallbackOrder.use.2":`Long jobs should be less likely to stop on provider failure`,"help.fallbackOrder.howTo.1":`Set the retry order in Fallback settings.`,"help.fallbackOrder.howTo.2":`Disable or simplify fallback while debugging root causes.`,"help.fallbackOrder.example.1":`If Claude is overloaded, continue through Codex or Gemini according to your order.`,"help.fallbackOrder.avoid.1":`Failures should stop immediately for debugging`,"help.fallbackOrder.related.1":`/fallback`,"help.mcp.title":`MCP Servers`,"help.mcp.aria":`MCP help`,"help.mcp.intro":`MCP servers connect agents to external tools and resources.`,"help.mcp.effect":`Installed servers sync into tool lists for Claude, Codex, Gemini, and other CLIs.`,"help.mcp.use.1":`A task needs external app, data, or tool access`,"help.mcp.use.2":`The same tool setup should sync across CLIs`,"help.mcp.howTo.1":`/mcp — List all connected MCP servers and their tools.`,"help.mcp.howTo.2":`/mcp sync — Re-sync MCP servers with the active CLI.`,"help.mcp.howTo.3":`/mcp install — Install a new MCP server from the registry.`,"help.mcp.howTo.4":`Use the MCP settings panel (⚙️) to add, edit, or remove servers.`,"help.mcp.example.1":`Add filesystem MCP so agents can inspect allowed folders reliably.`,"help.mcp.avoid.1":`Local files and built-in tools are enough`,"help.mcp.related.1":`/mcp`,"help.memory.title":`Memory`,"help.memory.aria":`Memory help`,"help.memory.intro":`Stores durable project facts, user preferences, and long-term context.`,"help.memory.effect":`Saved decisions and preferences can be searched and injected in later sessions or after compaction.`,"help.memory.use.1":`Decisions or preferences should survive future sessions`,"help.memory.use.2":`A long project needs stable context continuity`,"help.memory.howTo.1":`/memory — List all saved memory entries.`,"help.memory.howTo.2":`/memory <query> — Search memory for matching entries.`,"help.memory.howTo.3":`Memory is stored in structured files under the memory/ directory.`,"help.memory.howTo.4":`Save durable decisions and preferences, not temporary checklists or raw logs.`,"help.memory.example.1":`Save "this project stays vanilla JS"; do not save "three tests left today".`,"help.memory.avoid.1":`You are saving temporary checklists or raw logs`,"help.memory.related.1":`/memory`,"help.memory.related.2":`flush / bootstrap`,"help.stt.title":`Speech recognition`,"help.stt.aria":`STT help`,"help.stt.intro":`Configures speech-to-text for browser voice input.`,"help.stt.effect":`Voice button recordings are transcribed by the selected STT engine into chat text.`,"help.stt.use.1":`You want to dictate long instructions`,"help.stt.use.2":`You need to choose Gemini, OpenAI, or Whisper STT`,"help.stt.howTo.1":`Choose an STT provider and configure any required API key.`,"help.stt.howTo.2":`Press the voice button, record, then review the transcribed text.`,"help.stt.example.1":`Dictate long meeting notes and then ask the agent to summarize them.`,"help.stt.avoid.1":`Text input is enough or API keys are not configured`,"help.stt.related.1":`voice button`,"help.promptTemplates.title":`Prompt Templates`,"help.promptTemplates.aria":`Prompt Templates help`,"help.promptTemplates.intro":`Stores reusable prompt blocks for common workflows.`,"help.promptTemplates.effect":`The selected template is inserted as repeatable instructions for new requests.`,"help.promptTemplates.use.1":`Repeated instructions should stay consistent`,"help.promptTemplates.use.2":`Long setup instructions should not be rewritten each time`,"help.promptTemplates.howTo.1":`Create and save templates in the prompt templates modal.`,"help.promptTemplates.howTo.2":`Select the template before a repeated workflow.`,"help.promptTemplates.example.1":`Save the same code review checklist instead of retyping it each time.`,"help.promptTemplates.avoid.1":`A short one-off instruction is clearer in chat`,"help.promptTemplates.related.1":`Prompt templates modal`,"help.chatInput.title":`Chat input`,"help.chatInput.aria":`Chat input help`,"help.chatComposer.aria":`Chat input and keyboard shortcuts help`,"help.chatInput.intro":`The main box for sending task instructions, slash commands, and attachments.`,"help.chatInput.effect":`Messages go to the selected CLI with current settings, and attached files travel with the request.`,"help.chatInput.use.1":`Starting a new task or continuing current work`,"help.chatInput.use.2":`Running slash commands such as /help or /pabcd`,"help.chatInput.use.3":`Sending text and files together`,"help.chatInput.howTo.1":`Type a message and press Send or the supported submit shortcut.`,"help.chatInput.howTo.2":`Add files with the attachment button or drag and drop before sending.`,"help.chatInput.example.1":`Type "review this diff" and attach the relevant file.`,"help.chatInput.avoid.1":`Use slash commands for command-only actions instead of vague prose.`,"help.chatInput.avoid.2":`Do not paste raw secret keys or tokens into chat.`,"help.chatInput.related.1":`Attachments`,"help.chatInput.related.2":`Keyboard shortcuts`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD help`,"help.orchestration.intro":`PABCD is the plan, audit, build, check, and done workflow for larger work.`,"help.orchestration.effect":`Each phase has one job, which keeps broad changes safer and easier to review.`,"help.orchestration.use.1":`A task touches several files or features`,"help.orchestration.use.2":`Employee audit or implementation verification is needed`,"help.orchestration.use.3":`You want the plan agreed before code changes`,"help.orchestration.howTo.1":`/orchestrate I — Enter Interview mode to clarify requirements.`,"help.orchestration.howTo.2":`/orchestrate P — Enter Planning mode to write a plan.`,"help.orchestration.howTo.3":`/orchestrate A — Enter Audit mode for plan review.`,"help.orchestration.howTo.4":`/orchestrate B — Enter Build mode for implementation.`,"help.orchestration.howTo.5":`/orchestrate C — Enter Check mode for final verification.`,"help.orchestration.howTo.6":`/orchestrate D — Enter Done mode and return to idle.`,"help.orchestration.howTo.7":`/orchestrate status — Show the current PABCD phase.`,"help.orchestration.howTo.8":`/orchestrate reset — Return to idle from any phase.`,"help.orchestration.example.1":`Plan in P, audit in A, then implement in B.`,"help.orchestration.avoid.1":`A one-line answer or simple status check is enough`,"help.orchestration.avoid.2":`The task is urgent and should first be reduced in scope`,"help.orchestration.related.1":`Employees`,"help.orchestration.related.2":`Keyboard shortcuts`,"help.attachments.title":`Attachments`,"help.attachments.aria":`Attachments help`,"help.attachments.intro":`The area for sending images, documents, logs, or code files with the current message.`,"help.attachments.effect":`Attached files become part of the request context so the agent can read or analyze them.`,"help.attachments.use.1":`A screenshot or error log explains the problem`,"help.attachments.use.2":`A document or code file needs direct review`,"help.attachments.use.3":`Several related files should be sent together`,"help.attachments.howTo.1":`Use the attach button or drop files onto the chat area.`,"help.attachments.howTo.2":`Remove wrong files from the preview before sending.`,"help.attachments.example.1":`Send an error screenshot and log file together to ask for root cause.`,"help.attachments.avoid.1":`Do not attach credential files or files containing tokens.`,"help.attachments.avoid.2":`Unrelated large files can reduce analysis quality.`,"help.attachments.related.1":`Chat input`,"help.attachments.related.2":`Memory`,"help.diagrams.title":`Diagrams`,"help.diagrams.aria":`Diagrams help`,"help.diagrams.intro":`Inline SVG, Mermaid, and interactive diagrams rendered directly inside answers.`,"help.diagrams.effect":`Complex flows, structures, and comparisons become easier to scan than prose alone.`,"help.diagrams.use.1":`You want a file-change map or system flow`,"help.diagrams.use.2":`A PABCD plan or audit result needs a quick overview`,"help.diagrams.use.3":`A rendered diagram should be expanded or copied`,"help.diagrams.howTo.1":`Use the diagram action buttons to zoom, copy, or save when available.`,"help.diagrams.howTo.2":`Report rendering issues such as shifted text or invisible lines.`,"help.diagrams.example.1":`Ask for the scope to be shown as boxes and arrows.`,"help.diagrams.avoid.1":`Exact source text or long code is clearer as text.`,"help.diagrams.avoid.2":`Do not visualize screens that expose secrets.`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`Attachments`,"help.keyboardShortcuts.title":`Keyboard shortcuts`,"help.keyboardShortcuts.aria":`Keyboard shortcuts help`,"help.keyboardShortcuts.intro":`A guide to Jaw UI and browser shortcuts that reduce repeated clicking.`,"help.keyboardShortcuts.effect":`Input, voice, help, and dashboard navigation can be faster from the keyboard.`,"help.keyboardShortcuts.use.1":`You want to run frequent actions without the mouse`,"help.keyboardShortcuts.use.2":`You need to know whether shortcuts interrupt typing`,"help.keyboardShortcuts.use.3":`You are looking for Manager dashboard shortcut settings`,"help.keyboardShortcuts.howTo.1":`Classic Web: Enter sends from the chat input, Shift+Enter adds a new line, slash commands start with / in the same input, and STT recording toggles with Ctrl+Shift+Space or Alt/Option+M.`,"help.keyboardShortcuts.howTo.2":`Manager: ? opens shortcut help outside editors; Alt+I, Alt+P, and Alt+N jump to Instances, the active Preview, and Notes; Alt+K and Alt+J select the previous or next instance.`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S saves, Cmd/Ctrl+E cycles Raw/Preview/WYSIWYG, Cmd/Ctrl+Shift+F opens note search, Cmd/Ctrl+P toggles the quick switcher, and Cmd/Ctrl+Delete or Cmd/Ctrl+Backspace trashes the selected note or folder.`,"help.keyboardShortcuts.example.1":`Press Enter in the chat input to send; use Shift+Enter when you need a new line.`,"help.keyboardShortcuts.example.2":`Press ? in Manager when focus is not in an input or editor to open this shortcut help.`,"help.keyboardShortcuts.avoid.1":`Change the chord when it conflicts with browser defaults.`,"help.keyboardShortcuts.avoid.2":`Global shortcuts should not override active text editing.`,"help.keyboardShortcuts.related.1":`Chat input`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`Session help`,"help.session.title":`Session`,"help.session.intro":`Manage your chat sessions — create new ones, switch between them, clear conversation, or reset the workspace.`,"help.session.effect":`Session commands operate on the current conversation state without affecting the AI agent or its configuration.`,"help.session.use.1":`Starting a fresh conversation with /new`,"help.session.use.2":`Switching between multiple chat sessions`,"help.session.use.3":`Clearing chat history with /clear or /compact`,"help.session.howTo.1":`/new [label] — Create a new chat session with an optional label.`,"help.session.howTo.2":`/switch <seq> — Switch to a session by its sequence number. Alias: /sw`,"help.session.howTo.3":`/sessions — List all available sessions. Alias: /ss`,"help.session.howTo.4":`/clear — Clear the current chat screen.`,"help.session.howTo.5":`/clear all — Clear screen and remove all conversation history.`,"help.session.howTo.6":`/compact [instructions] — Compress conversation context to save tokens.`,"help.session.howTo.7":`/purge — Clear conversation and all structured memory.`,"help.session.howTo.8":`/reset confirm — Full workspace reset (settings preserved).`,"help.session.example.1":`/new project-review — creates a labeled session for code review.`,"help.session.avoid.1":`Use /reset only when you need a full workspace reset, not just a clean chat.`,"help.session.related.1":`Chat input`,"help.session.related.2":`Keyboard shortcuts`,"help.cliTools.aria":`CLI Tools help`,"help.cliTools.title":`CLI Tools`,"help.cliTools.intro":`Utility commands for checking version, managing projects, viewing the system prompt, and IDE integration.`,"help.cliTools.effect":`These commands display information or configure development tool integrations.`,"help.cliTools.use.1":`Checking the current jaw version with /version`,"help.cliTools.use.2":`Setting project workspace directories with /project`,"help.cliTools.use.3":`Viewing the full system prompt with /prompt`,"help.cliTools.howTo.1":`/version — Show jaw version and active CLI status.`,"help.cliTools.howTo.2":`/project set <paths...> — Set project workspace directories.`,"help.cliTools.howTo.3":`/project list — Show currently configured project paths.`,"help.cliTools.howTo.4":`/project reset — Reset project directories to default.`,"help.cliTools.howTo.5":`/prompt — View the full system prompt sent to the AI.`,"help.cliTools.howTo.6":`/ide [pop|on|off] — Toggle IDE diff view (CLI only).`,"help.cliTools.example.1":`/project set ~/my-repo — sets the active project directory.`,"help.cliTools.avoid.1":`IDE commands only work in CLI mode, not web UI.`,"help.cliTools.related.1":`Active CLI`,"help.cliTools.related.2":`Model`,"help.agentControl.aria":`Agent Control help`,"help.agentControl.title":`Agent Control`,"help.agentControl.intro":`Control how the AI agent behaves — toggle message forwarding, thought visibility, and flush model settings.`,"help.agentControl.effect":`These commands change the agent's runtime behavior for the current session.`,"help.agentControl.use.1":`Toggling message forwarding between channels with /forward`,"help.agentControl.use.2":`Showing or hiding Gemini thinking with /thought`,"help.agentControl.use.3":`Setting a flush model for context management with /flush`,"help.agentControl.howTo.1":`/forward [on|off] — Toggle message forwarding to the active channel.`,"help.agentControl.howTo.2":`/thought [on|off] — Show or hide Gemini thinking process.`,"help.agentControl.howTo.3":`/flush <cli> <model> — Set a flush model for context compaction.`,"help.agentControl.howTo.4":`/flush off — Disable the flush model.`,"help.agentControl.howTo.5":`/steer <prompt> — Interrupt the running agent and redirect it.`,"help.agentControl.howTo.6":`/status — Show current status of CLI, model, channel, and agent.`,"help.agentControl.example.1":`/forward on — enables message forwarding to the active channel.`,"help.agentControl.avoid.1":`Don't toggle forwarding during active agent work.`,"help.agentControl.related.1":`Model`,"help.agentControl.related.2":`Flush agent`,"help.goals.aria":`Goals help`,"help.goals.title":`Goals & Planning`,"help.goals.intro":`Persistent goals and structured planning workflows — set objectives, run PABCD orchestration, interview for requirements, and manage multi-session work.`,"help.goals.effect":`Goal and planning commands create durable state that persists across sessions and guide the AI through structured development phases.`,"help.goals.use.1":`Setting a persistent development goal with /goal`,"help.goals.use.2":`Running structured PABCD planning with /plan or /orchestrate`,"help.goals.use.3":`Gathering requirements before planning with /interview`,"help.goals.howTo.1":`/goal <objective> — Set a new persistent development goal.`,"help.goals.howTo.2":`/goal status — Show the current goal and progress checkpoints.`,"help.goals.howTo.3":`/goal run — Resume working on the active goal.`,"help.goals.howTo.4":`/goal plan [hint] — AI-driven goal planning. Alias: /goalplan`,"help.goals.howTo.5":`/goal done — Mark the current goal as complete.`,"help.goals.howTo.6":`/goal cancel — Cancel the active goal.`,"help.goals.howTo.7":`/goal pause / resume — Manually pause or resume a goal.`,"help.goals.howTo.8":`/goal history — Show completed and cancelled goals.`,"help.goals.howTo.9":`/plan [request|status|copy] — Explain or start PABCD planning.`,"help.goals.howTo.10":`/interview <request> — Clarify requirements before planning.`,"help.goals.example.1":`/goal Implement user authentication — sets a persistent goal the AI will work toward across sessions.`,"help.goals.avoid.1":`Don't set vague goals — be specific about what you want built.`,"help.goals.related.1":`Orchestration`,"help.goals.related.2":`Employees`,"help.section.commands":`Command Reference`,"help.session.subcmd.1":`/new [label] — Start a new chat session with an optional label`,"help.session.subcmd.2":`/switch <N> — Switch to session number N (alias: /sw, /<N>)`,"help.session.subcmd.3":`/sessions — List all sessions (alias: /ss)`,"help.session.subcmd.4":`/clear — Clear the current chat screen`,"help.session.subcmd.5":`/clear all — Clear screen and delete all conversation history`,"help.session.subcmd.6":`/compact [instructions] — Compress conversation context to save tokens`,"help.session.subcmd.7":`/purge — Delete conversation and structured memory`,"help.session.subcmd.8":`/reset confirm — Full workspace reset (settings preserved)`,"help.session.subcmd.9":`/quit — Exit the process (alias: /q, /exit; CLI only)`,"help.orchestration.subcmd.1":`/orchestrate I — Enter Interview mode to clarify requirements`,"help.orchestration.subcmd.2":`/orchestrate P — Enter Planning mode to write the plan`,"help.orchestration.subcmd.3":`/orchestrate A — Enter Audit mode to review the plan`,"help.orchestration.subcmd.4":`/orchestrate B — Enter Build mode to implement`,"help.orchestration.subcmd.5":`/orchestrate C — Enter Check mode for final verification`,"help.orchestration.subcmd.6":`/orchestrate D — Enter Done mode and return to IDLE`,"help.orchestration.subcmd.7":`/orchestrate status — Show current PABCD phase`,"help.orchestration.subcmd.8":`/orchestrate reset — Return to IDLE from any phase (alias: /pabcd)`,"help.goals.subcmd.1":`/goal <objective> — Set a new persistent goal`,"help.goals.subcmd.2":`/goal plan [hint] — AI-driven goal planning`,"help.goals.subcmd.3":`/goal status — Show active goal status`,"help.goals.subcmd.4":`/goal run — Continue goal execution`,"help.goals.subcmd.5":`/goal done [note] — Mark goal as complete`,"help.goals.subcmd.6":`/goal cancel [reason] — Cancel the active goal`,"help.goals.subcmd.7":`/goal pause — Pause the active goal`,"help.goals.subcmd.8":`/goal resume — Resume a paused goal`,"help.goals.subcmd.9":`/goal clear — Clear goal data`,"help.goals.subcmd.10":`/goal reset — Reset goal state`,"help.goals.subcmd.11":`/goal history — Show completed goal history`,"help.goals.subcmd.12":`/goalplan [hint] — Alias for /goal plan`,"help.goals.subcmd.13":`/plan [request] — Create a structured PABCD plan`,"help.goals.subcmd.14":`/plan status — Show current plan status`,"help.goals.subcmd.15":`/plan copy — Copy plan content to clipboard`,"help.goals.subcmd.16":`/interview <request> — Structured requirements gathering`,"help.goals.subcmd.17":`/deliberate <request> — Multi-role deliberation (planner, architect, critic)`,"help.goals.subcmd.18":`/planaudit [plan] — Create a read-only employee audit task`,"help.goals.subcmd.19":`/team plan <objective> — Start parallel team planning`,"help.goals.subcmd.20":`/team audit — Run team audit`,"help.goals.subcmd.21":`/team status — Show team execution status`,"help.goals.subcmd.22":`/team collect — Collect team results`,"help.goals.subcmd.23":`/team stop — Stop team execution`,"help.goals.subcmd.24":`/goal refine <objective> — Finalize an AI-selected plan-mode goal`,"help.goals.subcmd.25":`/gd [note] — Force-complete the active goal; alias for /goal done --force`,"help.activeCli.subcmd.1":`/cli — Show the current active CLI`,"help.activeCli.subcmd.2":`/cli <name> — Switch CLI engine (claude, codex, gemini, etc.)`,"help.activeCli.subcmd.3":`/status — Show full system status`,"help.model.subcmd.1":`/model — Show the current model`,"help.model.subcmd.2":`/model <name> — Change the active CLI's model`,"help.skills.subcmd.1":`/skill — List installed active skills`,"help.skills.subcmd.2":`/skill list — List all active and reference skills`,"help.skills.subcmd.3":`/skill reset — Reload all skills from disk`,"help.employees.subcmd.1":`/employee — Show registered employee list`,"help.employees.subcmd.2":`/employee sessions-reset — Clear saved employee resume sessions`,"help.mcp.subcmd.1":`/mcp — Show MCP server list`,"help.mcp.subcmd.2":`/mcp sync — Sync MCP tools`,"help.mcp.subcmd.3":`/mcp install — Install an MCP server`,"help.mcp.subcmd.4":`/browser status — Show browser connection status`,"help.mcp.subcmd.5":`/browser tabs — Show open tab list`,"help.memory.subcmd.1":`/memory — Show memory overview`,"help.memory.subcmd.2":`/memory <query> — Search stored memory`,"help.flushAgent.subcmd.1":`/flush — Show current flush settings`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — Set flush model for a CLI`,"help.flushAgent.subcmd.3":`/flush off — Disable flush model`,"help.fallbackOrder.subcmd.1":`/fallback — Show current fallback order`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — Set fallback CLI order`,"help.fallbackOrder.subcmd.3":`/fallback off — Disable fallback`,"help.agentControl.subcmd.1":`/forward on — Enable message forwarding to active channel`,"help.agentControl.subcmd.2":`/forward off — Disable message forwarding`,"help.agentControl.subcmd.3":`/thought on — Show Gemini thinking process`,"help.agentControl.subcmd.4":`/thought off — Hide Gemini thinking process`,"help.agentControl.subcmd.5":`/steer <prompt> — Interrupt running agent and redirect`,"help.agentControl.subcmd.6":`/status — Show CLI, model, channel, and agent status`,"help.cliTools.subcmd.1":`/version — Show jaw version and active CLI status`,"help.cliTools.subcmd.2":`/project set <paths...> — Set project workspace directories`,"help.cliTools.subcmd.3":`/project list — Show current project paths`,"help.cliTools.subcmd.4":`/project reset — Reset project directories to defaults`,"help.cliTools.subcmd.5":`/project clear — Clear project directory settings`,"help.cliTools.subcmd.6":`/prompt — Show the full system prompt sent to AI`,"help.cliTools.subcmd.7":`/ide pop — Open IDE diff view as popup (CLI only)`,"help.cliTools.subcmd.8":`/ide on — Enable IDE diff view (CLI only)`,"help.cliTools.subcmd.9":`/ide off — Disable IDE diff view (CLI only)`,"help.keyboardShortcuts.subcmd.1":`/help — Show full command list`,"help.keyboardShortcuts.subcmd.2":`/help <command> — Show detailed help for a specific command`,"help.keyboardShortcuts.subcmd.3":`/commands — Open command palette (alias: /cmd)`,"bgtask.title":`Background`,"tg.elicitationExpired":`Selection expired. Please reply with text.`,"settings.slack.guide.step1Title":`Create the Slack app`,"settings.slack.guide.openApps":`Open apps page`,"settings.slack.guide.step2Title":`Paste the bot token`,"settings.slack.guide.step3Title":`App-level token for inbound (optional)`,"settings.slack.guide.step3Desc":`Leave empty for outbound-only operation`,"settings.slack.guide.botTokenError":`Must be a bot token starting with xoxb- — swapped with the app token?`,"settings.slack.guide.appTokenError":`Must be an app-level token starting with xapp- — swapped with the bot token?`,"settings.slack.advanced":`Advanced settings`,"settings.slack.resetConnection":`Reset connection`,"settings.slack.resetConfirm":`The Slack app connection will be reset. Continue?`,"settings.slack.resetEmpty":`No Slack app is connected.`,"settings.slack.resetFailed":`Could not reset the Slack app connection. Try again.`,"settings.slack.resetManagedByEnvironment":`This Slack connection is managed by environment variables ({variables}). Remove them and restart cli-jaw before resetting the connection.`,"settings.slack.managedByEnvironment":`Connection settings are read-only because they are managed by environment variables: {variables}. Remove them and restart cli-jaw to edit here.`,"settings.slack.attachPort":`Attach instance port`,"settings.channel.notAttachInstanceHint":`Another instance owns this Slack connection (check the attach instance port)`,"settings.slack.guide.step2Desc":`App settings → OAuth & Permissions → confirm files:read → Reinstall to Workspace → copy Bot User OAuth Token`,"settings.slack.guide.step3Location":`App settings → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`Gathering context...`,"slack.progress.working":`Working`,"slack.files.partialFailure":`⚠️ Some attachments were skipped:`,"slack.files.allFailure":`⚠️ No attachment could be processed, so the request was not run:`,"slack.files.limit":`Files are limited to 50 MiB each and 10 files or 100 MiB per message.`,"slack.files.error.external_file_unsupported":`External Slack files are not supported`,"slack.files.error.private_network":`The download location is not safe`,"slack.files.error.redirect_limit":`The redirect limit was exceeded`,"slack.files.error.size_exceeded":`The file size limit was exceeded`,"slack.files.error.message_budget_exceeded":`The message attachment limit was exceeded`,"slack.files.error.missing_scope":`Add files:read and reinstall the app`,"slack.files.error.ingress_cancelled":`Processing was cancelled`,"slack.files.error.download_failed":`The file could not be downloaded`,"onboarding.open":`Setup wizard`,"onboarding.optional":`optional`,"onboarding.validate":`Validate`,"onboarding.save":`Save`,"onboarding.close":`Close`,"onboarding.valid":`Verified: {identity}`,"onboarding.title.telegram":`Connect Telegram`,"onboarding.title.discord":`Connect Discord`,"onboarding.title.slack":`Connect Slack`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`At api.slack.com/apps, choose Create New App → From a manifest, paste the copied manifest into the JSON tab, select the workspace where you want to add the app, and create it.`,"onboarding.slackAppName":`App name`,"onboarding.slackAppNameHint":`Enter an app name up to 35 characters. The bot handle is derived from it, and falls back to cli-jaw when the name has no usable ASCII characters.`,"onboarding.slackGenerateManifest":`Generate manifest`,"onboarding.slackManifestGenerating":`Generating...`,"onboarding.slackManifestReady":`Copied`,"onboarding.slackManifestCopiedWithBot":`Manifest copied. Bot handle: {bot}`,"onboarding.slackManifestError":`Could not generate or copy the manifest. Try again.`,"onboarding.slackAppNameError":`Enter an app name from 1 to 35 characters.`,"onboarding.warning.missingCapabilities":`Optional scopes {capabilities} are missing, so the features they cover are turned off. Add them and reinstall the app. Text messages still work.`,"onboarding.token.botToken":`Bot token`,"onboarding.token.appToken":`App-level token`,"onboarding.token.guildId":`Server ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`Next`,"onboarding.back":`Back`,"onboarding.step.1":`1. Where to get it`,"onboarding.step.2":`2. Paste what you received`,"onboarding.step.3":`3. Verify the connection`,"onboarding.step.4":`4. Save`,"onboarding.validating":`Checking...`,"onboarding.validateHint":`Press Validate to check the real connection. It must pass before saving.`,"onboarding.saveHint":`Validation passed. Saving applies the settings and connects the channel right away.`,"onboarding.error.validation_required":`Validation has to pass first.`,"onboarding.error.slack_setup_required":`Generate the manifest and open the issuing page before continuing.`,"onboarding.openIssuer":`Open the issuing page`,"onboarding.error.missing_scopes":`The token works, but the app is missing OAuth scopes. Add the ones below under OAuth & Permissions, then reinstall the app.`,"onboarding.hint.telegram.botToken":`The value @BotFather returned after /newbot.`,"onboarding.hint.discord.botToken":`Generated with Reset Token on the Bot tab.`,"onboarding.hint.discord.guildId":`Enable Developer Mode, right-click the server, copy ID.`,"onboarding.hint.slack.botToken":`Bot User OAuth Token from OAuth & Permissions (starts with xoxb-).`,"onboarding.hint.slack.appToken":`Basic Information, App-Level Tokens (xapp-, connections:write).`,"onboarding.progressLabel":`Step {step} of {total}`,"slack.progress.title":`Request progress`,"slack.progress.activityTitle":`Recent activity`,"slack.progress.deliveryTitle":`Answer delivery`,"slack.progress.queued":`Queued`,"slack.progress.running":`Observing activity`,"slack.progress.waiting":`Waiting for the next update`,"slack.progress.delivering":`Delivering the answer`,"slack.progress.complete":`Work observation ended`,"slack.progress.workflowComplete":`Workflow response ended; production outcome is not verified.`,"slack.progress.unavailable":`Activity updates unavailable. Execution may continue.`,"slack.progress.error":`Request failed`,"slack.progress.cancelled":`Request cancelled`,"slack.progress.expired":`Progress tracking ended. Execution may continue.`,"slack.progress.merged":`Request combined with another request`,"slack.progress.removed":`Request removed`,"slack.progress.restored":`Previous progress tracking ended. The execution result is unconfirmed.`,"slack.progress.failure":`Could not complete the response.`,"slack.progress.elapsed":`Elapsed: {seconds}s`,"slack.progress.lastActivity":`Last activity: {seconds}s ago`,"slack.progress.longRunning":`Running for {minutes} min — still in progress`,"slack.progress.category.read":`File reading`,"slack.progress.category.write":`File editing`,"slack.progress.category.search":`Search`,"slack.progress.category.web":`Webpage reading`,"slack.progress.category.command":`Command execution`,"slack.progress.category.external":`External tool`,"slack.progress.category.tool":`Tool activity`,"slack.progress.status.observed":`Observed`,"slack.progress.status.in_progress":`Running`,"slack.progress.status.complete":`Done`,"slack.progress.status.error":`Error`,"slack.progress.status.stopped":`Stopped`,"slack.progress.status.unconfirmed":`Unconfirmed`,"slack.progress.deliveryComplete":`Answer delivered`,"slack.progress.deliveryFailed":`Answer delivery could not be confirmed`,"slack.progress.deliveryUnconfirmed":`Answer delivery unconfirmed`,"slack.workflow.unavailable":`The automation was not run because its sender/request information or the designated enabled skill could not be verified. Check the configuration.`,"slack.workflow.unconfirmed":`The registered workflow returned no substantive result. Work may already have begun; inspect its records before retrying.`},k={"cmd.help.desc":`コマンド一覧`,"cmd.status.desc":`現在の状態`,"cmd.clear.desc":`会話削除 / all: スキル+従業員+MCPリセット`,"cmd.purge.desc":`会話+メモリ削除`,"cmd.purge.tg_desc":`会話+メモリ削除`,"cmd.reset.desc":`ブートストラップ初期化(会話/メモリ/スキル/従業員/MCP)`,"cmd.model.desc":`モデルの確認/変更`,"cmd.cli.desc":`アクティブ CLI の確認/変更`,"cmd.fallback.desc":`Fallback CLI の順序を設定`,"cmd.forward.desc":`Telegram 自動転送のオン/オフ`,"cmd.flush.desc":`Flush モデルの確認/変更`,"cmd.version.desc":`バージョン/CLI インストール状態`,"cmd.skill.desc":`スキル一覧/リセット`,"cmd.employee.desc":`従業員管理(一覧/モデル/CLI/リセット/セッション消去)`,"cmd.mcp.desc":`MCP の一覧/同期/インストール`,"cmd.memory.desc":`メモリの検索/一覧`,"cmd.browser.desc":`ブラウザ状態/タブ`,"cmd.prompt.desc":`システムプロンプトを表示`,"cmd.quit.desc":`プロセスを終了`,"cmd.file.desc":`ファイルを添付`,"cmd.steer.desc":`Agent を中断して新しい指示へ切り替え`,"cmd.compact.desc":`会話コンテキストを圧縮`,"cmd.compact.tg_desc":`会話コンテキストを圧縮`,"cmd.workflow.interview.desc":`計画前に要件を明確化`,"cmd.workflow.interview.tg_desc":`要件インタビューを開始`,"cmd.workflow.deliberate.desc":`複数の役割で計画を確認`,"cmd.workflow.deliberate.tg_desc":`役割別に計画を確認`,"cmd.workflow.plan.desc":`PABCD計画フローを説明`,"cmd.workflow.plan.tg_desc":`PABCD計画を説明`,"cmd.workflow.plan.title":`PABCD計画ガイド`,"cmd.workflow.plan.pabcdEquivalent":`cli-jawの /plan は別のモードではありません。PABCD Pとして計画を明確にし、その後A(監査)、B(実装)、C(確認)、D(完了)へ進みます。`,"cmd.workflow.plan.noRequest":`依頼内容がありません。要件が曖昧なら /interview、実装案の比較が必要なら /deliberate を使ってください。`,"cmd.workflow.plan.section.pabcd":`cli-jawの計画方式`,"cmd.workflow.plan.section.source":`元の依頼`,"cmd.workflow.plan.section.next":`次の操作`,"cmd.workflow.plan.next.interview":`- 要件を明確にする: /interview <request>`,"cmd.workflow.plan.next.deliberate":`- 選択肢を比較する: /deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- 既に計画がある: /planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- 正式に進める: /orchestrate P`,"cmd.workflow.plan.footer":`これは案内用アーティファクトです。承認済み計画はPABCD Pに属します。`,"cmd.artifact.action.copy":`コピー`,"cmd.artifact.action.reinsert":`入力欄に戻す`,"cmd.artifact.action.sendAsChat":`通常メッセージとして送信`,"cmd.artifact.action.startPabcd":`PABCD Pで使う`,"cmd.workflow.planAudit.desc":`読み取り専用の計画監査タスクを作成`,"cmd.workflow.planAudit.tg_desc":`計画監査タスクを作成`,"cmd.workflow.search.desc":`検索スキル経由で検索を実行`,"cmd.workflow.search.tg_desc":`検索スキルで検索`,"cmd.workflow.goal.desc":`ゴール状態と制限付き実行ワークフロー`,"cmd.workflow.goal.tg_desc":`ゴールまたは実行状態を確認`,"cmd.workflow.team.desc":`並列チームオーケストレーション`,"cmd.workflow.team.tg_desc":`チームオーケストレーション`,"cmd.workflow.review.tg_desc":`プロジェクトディレクトリをレビュー`,"cmd.workflow.interview.title":`要件インタビュー`,"cmd.workflow.deliberate.title":`役割別計画レビュー`,"cmd.workflow.planAudit.title":`読み取り専用計画監査`,"cmd.help.tg_desc":`使用できるコマンドを表示`,"cmd.status.tg_desc":`モデル、CLI、セッション状態を確認`,"cmd.clear.tg_desc":`会話をリセット(データは保持)`,"cmd.model.tg_desc":`現在の AI モデルを確認`,"cmd.cli.tg_desc":`現在の CLI エンジンを確認`,"cmd.fallback.tg_desc":`CLI の自動切り替え順序を設定`,"cmd.forward.tg_desc":`自動転送を切り替え`,"cmd.flush.tg_desc":`会話リセット時に使うモデルを設定`,"cmd.version.tg_desc":`バージョンとインストール状態を確認`,"cmd.skill.tg_desc":`AI スキル一覧を表示`,"cmd.browser.tg_desc":`ブラウザ接続を確認`,"cmd.steer.tg_desc":`Agent を新しいタスクへ切り替え`,"cmd.steer.noPrompt":`使い方: /steer <新しい指示>`,"cmd.steer.noAgent":`現在実行中の Agent はありません。`,"cmd.steer.started":`切り替えています...`,"cmd.unknown":`不明なコマンド: /{name}
|
|
43
|
+
User message: {text}`,"chat.file.uploadFail":`File upload failed: {msg}`,"chat.requestFail":`Request failed ({status})`,"chat.continue":`Continuing the current task.`,"chat.noPendingContinue":`No pending work to continue.`,"chat.voice.label":`🎤 [Voice message]`,"sessionHub.title":`Sessions`,"sessionHub.description":`Review local and channel conversations by session.`,"sessionHub.defaultSession":`Default session`,"sessionHub.sessionLabel":`Session {seq}`,"sessionHub.source.local":`Local`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`Messages`,"sessionHub.lastActivity":`Last activity`,"sessionHub.noActivity":`No activity`,"sessionHub.empty.title":`No channel sessions yet`,"sessionHub.empty.description":`Connect a channel and each conversation will appear here as a session.`,"sessionHub.empty.action":`Connect a channel in settings`,"sessionHub.listAria":`Session list`,"sessionHub.delete":`Delete`,"sessionHub.deleteConfirm":`Delete this session? Its conversation history will also be deleted.`,"sessionHub.deleteRemoteDisabled":`Sessions connected to a channel cannot be deleted.`,"sessionHub.deleteFailed":`The session could not be deleted. Check whether it has active work.`,"sessionReadonly.message":`Read-only. Switch to this session before sending.`,"sessionReadonly.remote":`Sessions connected to a channel are read-only on the web.`,"sessionReadonly.switch":`Switch to /{seq}`,"sessionReadonly.openSessions":`Open session list`,"sessionReadonly.composeRejected":`This session is read-only. Use the switch action above.`,"sessionReadonly.elicitationRejected":`Responses cannot be sent from a read-only session. Switch sessions and try again.`,"skill.loadFail":`Failed to load skills`,"skill.count":`{active} active / {total} total`,"skill.countFiltered":`{shown} shown / {active} active / {total} total`,"skill.search.placeholder":`Search skills...`,"skill.search.aria":`Search skills`,"skill.search.empty":`No skills match your search.`,"skill.filter.all":`All`,"skill.filter.installed":`Installed`,"skill.filter.productivity":`Productivity`,"skill.filter.communication":`Comms`,"skill.filter.devtools":`Dev`,"skill.filter.utility":`Utility`,"skill.filter.smarthome":`Home`,"skill.filter.other":`Other`,"skill.filter.ai":`AI`,"lang.ko":`한국어`,"lang.en":`English`,"lang.ja":`日本語`,"lang.zh":`中文`,"emp.addPrompt":`Add an agent`,"emp.delete":`Delete`,"emp.customRole":`Custom role...`,"emp.customModel":`Enter manually...`,"role.label.frontend":`Frontend`,"role.label.backend":`Backend`,"role.label.data":`Data`,"role.label.docs":`Docs`,"role.label.security":`Security`,"role.label.testing":`Testing`,"role.label.custom":`Custom...`,"hb.empty":`No heartbeats`,"hb.name":`Name`,"hb.prompt":`Prompt...`,"hb.add":`+ Add heartbeat`,"hb.kindEvery":`Every`,"hb.kindCron":`Cron`,"hb.minutesLabel":`minutes`,"hb.cronLabel":`expr`,"hb.timezoneAuto":`Blank = system/browser timezone`,"hb.cronPlaceholder":`e.g. 0 9 * * *`,"hb.invalidCron":`Invalid cron expression. Use 5 fields.`,"hb.invalidTimeZone":`Invalid time zone. Example: Asia/Seoul`,"hb.invalidMinutes":`Minutes must be an integer greater than or equal to 1.`,"hb.invalidSchedule":`Invalid heartbeat schedule.`,"hb.scheduleHintCron":`Example: {cron} · Time zone: {timeZone}`,"hb.scheduleHintEvery":`Example: every {minutes} min · Time zone: {timeZone}`,"cmd.noMatch":`No matching commands`,"mem.noFiles":`No memory files yet`,"mem.empty":`No memory yet`,"memory.banner.bootstrapRerun":`Re-running memory bootstrap...`,"memory.banner.reindexing":`Rebuilding memory index...`,"memory.banner.soulOptimize":`Optimize Soul`,"memory.banner.soulOptimizing":`Optimizing Soul... (active CLI is working)`,"memory.banner.soulPromptSent":`✓ Soul optimization prompt sent. Check the chat.`,"model.promptInput":`Enter model ID:`,"model.customOption":`Enter manually...`,"model.placeholder":`Enter model ID`,"mcp.syncing":`Syncing...`,"mcp.installing":`Installing via npm... (up to 2 min)`,"settings.none":`(none)`,"settings.channel.statusTitle":`Transport status`,"settings.channel.activeInbound":`Active inbound channel`,"settings.channel.configured":`Configured`,"settings.channel.notConfigured":`Not configured`,"settings.channel.sendCapable":`Send-capable`,"settings.channel.sendOnlyHint":`Not receiving inbound, but outbound send still works when configured.`,"settings.channel.testSend":`Test send`,"settings.channel.testSendOk":`Send succeeded`,"settings.channel.testSendFail":`Send failed: {error}`,"cli.gemini.auth":`Browser auth on first run`,"cli.copilot.authHint":`copilot login or gh auth login`,"cli.showMore":`More ▸`,"cli.authRequired":`Install / auth required`,"cli.notAuthenticated":`Auth required — run command below`,"drag.drop":`Drop files here`,"status.responding":`Responding`,"aria.cmdList":`Command list`,"btn.attach":`Attach file`,"input.placeholder":`Type a message...`,"queue.pendingTitle":`Pending`,"queue.copy":`Copy prompt`,"queue.delete":`Remove`,"queue.steer":`Run now (steer)`,"queue.cancelArm":`Click again to cancel`,loading:`Loading...`,"btn.editPrompt":`Edit system prompt`,"tg.chatIds.placeholder":`Comma-separated (leave empty to allow all)`,"fallback.desc":`Auto-retry order on CLI failure`,"btn.cancel":`Cancel`,"btn.save":`Save`,"btn.stop":`Stop`,"msg.you":`You`,"stat.messages":`Messages: {count}`,"ui.offline.banner":`Offline mode — showing cached messages`,"time.10m":`10 min`,"time.30m":`30 min`,"time.manual":`Manual`,"phase.plan":`Planning`,"phase.verify":`Plan Review`,"phase.dev":`Development`,"phase.debug":`Debugging`,"phase.integrate":`Integration`,"orchestrator.allDone":`All tasks completed`,"orchestrator.continueHint":`Say "continue" to proceed.`,"orchestrator.noWorklog":`No worklog to continue from.`,"orchestrator.alreadyDone":`All tasks are already completed.`,"sidebar.status":`Status`,"sidebar.memory":`Memory`,"sidebar.stats":`Stats`,"sidebar.cliStatus":`CLI STATUS`,"sidebar.agentName":`Agent Name`,"sidebar.avatar":`Avatar`,"sidebar.employees":`Employees`,"sidebar.promptTemplates":`Prompt Templates`,"templates.title":`Prompt Structure`,"templates.back":`Back`,"templates.devMode":`Developer Mode`,"templates.hint.click":`Click to view template content`,"templates.hint.devEdit":`Edit in developer mode`,"tab.agents":`Agents`,"tab.skills":`Skills`,"tab.settings":`Settings`,"btn.saveSettings":`Save`,"btn.addEmployee":`+ Add`,"btn.off":`Off`,"btn.on":`On`,"label.activeCli":`Active CLI`,"label.model":`Model`,"label.effort":`Effort`,"label.permissions":`Permissions`,"label.workingDir":`Working Directory`,"label.enabled":`Enabled`,"label.botToken":`Bot Token`,"label.chatIds":`Allowed Chat IDs`,"label.forwardAll":`Auto Forward`,"label.flushEvery":`Flush Every`,"emp.empty":`No employees yet`,"modal.promptTitle":`System Prompt (A-2)`,"modal.heartbeatTitle":`Heartbeat Jobs`,"modal.memoryTitle":`Memory`,"code.copy":`Copy`,"code.copied":`Copied ✓`,"mcp.noServers":`(no servers configured)`,"mermaid.renderFail":`Mermaid render failed`,"orchestrator.dispatching":`Processing…`,"cmd.ide.desc":`IDE diff view`,"cmd.ide.toggled":`IDE diff mode toggled`,"cmd.ide.popToggled":`IDE popup toggled`,"cmd.ide.usage":`Usage: /ide [pop|on|off]`,"label.mentionOnly":`Mention Only`,"help.section.what":`What it is`,"help.section.effect":`What changes`,"help.section.useWhen":`Use when`,"help.section.howTo":`How to use`,"help.section.example":`Example`,"help.section.avoidWhen":`Avoid when`,"help.section.related":`Related`,"help.close":`Close`,"help.activeCli.title":`Active CLI`,"help.activeCli.aria":`Active CLI help`,"help.activeCli.intro":`Chooses which CLI engine handles the next request.`,"help.activeCli.effect":`The next run uses the selected CLI's session, model settings, and tool behavior.`,"help.activeCli.use.1":`Switching between Claude, Codex, Gemini, OpenCode, or Copilot`,"help.activeCli.use.2":`Testing behavior across CLI engines`,"help.activeCli.howTo.1":`Choose the desired CLI from the active CLI selector.`,"help.activeCli.howTo.2":`You can also type /cli <name> in chat.`,"help.activeCli.example.1":`If Claude is blocked, switch to Codex and continue the same work.`,"help.activeCli.avoid.1":`Only the model within the same CLI needs to change`,"help.activeCli.related.1":`/cli`,"help.activeCli.related.2":`Model selector`,"help.model.title":`Model`,"help.model.aria":`Model help`,"help.model.intro":`Chooses the model used by the active CLI.`,"help.model.effect":`Future requests on the same CLI run with the selected model name.`,"help.model.use.1":`Switching to a faster or stronger model`,"help.model.use.2":`Tuning model-specific capability or cost`,"help.model.howTo.1":`Pick a model from the selector beside the active CLI.`,"help.model.howTo.2":`You can also type /model <model-name> in chat.`,"help.model.example.1":`Use Sonnet for normal coding and an Opus model when deeper review matters more than speed.`,"help.model.avoid.1":`The CLI engine itself needs to change`,"help.model.related.1":`/model`,"help.effort.title":`Reasoning effort`,"help.effort.aria":`Reasoning effort help`,"help.effort.intro":`Controls reasoning depth and speed where the selected model supports it.`,"help.effort.effect":`Supported models rebalance response speed against reasoning depth.`,"help.effort.use.1":`Deep code analysis or design review needs more reasoning`,"help.effort.use.2":`Small tasks should run faster`,"help.effort.howTo.1":`Choose low, medium, high, or another available value from the effort selector.`,"help.effort.howTo.2":`Use lower effort for quick checks and higher effort before complex implementation.`,"help.effort.example.1":`Use low for a typo fix and high for a large refactor plan.`,"help.effort.avoid.1":`The current model ignores effort settings`,"help.effort.related.1":`Model support notes`,"help.permissions.title":`Permissions`,"help.permissions.aria":`Permissions help`,"help.permissions.intro":`Auto (YOLO) requests automatic approval or permission bypass. YOLO is the display name for Auto in this selector.`,"help.permissions.effect":`Automatic approval, file access and Safe support vary by CLI and transport.`,"help.permissions.use.1":`Local automation should proceed without repeated prompts`,"help.permissions.use.2":`A trusted working directory is handling a long task`,"help.permissions.howTo.1":`Choose Auto (YOLO) or Safe, then check the saved policy.`,"help.permissions.howTo.2":`If approvals are required, first check whether your runtime supports Safe.`,"help.permissions.example.1":`Choose Auto (YOLO) for repetitive work that needs automatic approval. Explicit questions may still appear.`,"help.permissions.avoid.1":`The directory or task is unfamiliar or risky`,"help.permissions.related.1":`Auto (YOLO) / Safe — runtime support`,"help.flushAgent.title":`Flush Agent`,"help.flushAgent.aria":`Flush Agent help`,"help.flushAgent.intro":`Chooses which CLI and model summarize or flush context.`,"help.flushAgent.effect":`Compaction and flush work use the configured summary agent instead of the active model.`,"help.flushAgent.use.1":`Summary work should use a fast or reliable model`,"help.flushAgent.use.2":`The active model and summary model should differ`,"help.flushAgent.howTo.1":`Pick the CLI and model that should handle summarization in Flush Agent settings.`,"help.flushAgent.howTo.2":`Align it with the /flush flow before long sessions.`,"help.flushAgent.example.1":`Use Opus for main work while a faster Sonnet handles context summaries.`,"help.flushAgent.avoid.1":`The active CLI and model are already enough`,"help.flushAgent.related.1":`/flush`,"help.employees.title":`Employees`,"help.employees.aria":`Employees help`,"help.employees.intro":`Employees are separate AI workers that the Boss can dispatch for role-based verification or analysis.`,"help.employees.effect":`The Boss receives audit or verification results from a separate CLI session.`,"help.employees.use.1":`Frontend, backend, or docs review should run independently`,"help.employees.use.2":`PABCD A/B needs read-only verification`,"help.employees.use.3":`A long review should run outside the main thread`,"help.employees.howTo.1":`/employee reset — Restart all employee configurations from disk.`,"help.employees.howTo.2":`Employees are dispatched via cli-jaw dispatch --agent "Name" --task "...".`,"help.employees.howTo.3":`In PABCD A/B, employees run as read-only auditors or verifiers by default.`,"help.employees.howTo.4":`Use --mutable flag to let an employee write files during dispatch.`,"help.employees.example.1":`While Boss implements, ask Backend to audit imports and test risks only.`,"help.employees.avoid.1":`Simple file lookup`,"help.employees.avoid.2":`Small single-file edits`,"help.employees.avoid.3":`Questions that can be answered directly`,"help.employees.related.1":`cli-jaw dispatch`,"help.employees.related.2":`PABCD A/B phase`,"help.skills.title":`Skills`,"help.skills.aria":`Skills help`,"help.skills.intro":`Skills are instruction packs for specialized workflows.`,"help.skills.effect":`The agent receives workflow-specific procedures, tools, and verification rules.`,"help.skills.use.1":`A task needs browser control, GitHub, PDF, document, or testing workflow`,"help.skills.use.2":`A repeatable workflow should run consistently`,"help.skills.howTo.1":`/skill — List all active (installed) skills.`,"help.skills.howTo.2":`/skill list — Show active skills and available reference skills.`,"help.skills.howTo.3":`/skill reset — Reload all skills from disk.`,"help.skills.howTo.4":`Name the skill or describe the task — the agent auto-selects matching skills.`,"help.skills.example.1":`PDF analysis uses the jaw-pdf skill; frontend implementation uses jaw-dev-frontend guidance.`,"help.skills.avoid.1":`A normal chat response is enough`,"help.skills.related.1":`/skill`,"help.activeChannel.title":`Active Channel`,"help.activeChannel.aria":`Active Channel help`,"help.activeChannel.intro":`Chooses which service receives channel output.`,"help.activeChannel.effect":`File delivery, notifications, and scheduled job results target the selected channel.`,"help.activeChannel.use.1":`Switching operational output between Telegram and Discord`,"help.activeChannel.use.2":`External notification targets change`,"help.activeChannel.howTo.1":`Select Telegram or Discord in channel settings.`,"help.activeChannel.howTo.2":`Check the active channel before tasks that deliver files or notifications.`,"help.activeChannel.example.1":`Receive document files on Telegram while team alerts go to Discord.`,"help.activeChannel.avoid.1":`Only forwarding on/off should change`,"help.activeChannel.related.1":`Telegram / Discord settings`,"help.telegram.title":`Telegram`,"help.telegram.aria":`Telegram help`,"help.telegram.intro":`Manages Telegram bot connection, allowed chats, mention-only mode, and forwarding.`,"help.telegram.effect":`Allowed Telegram chats can exchange messages, files, voice input, and task results.`,"help.telegram.use.1":`You want cli-jaw updates through Telegram`,"help.telegram.use.2":`Web responses should be forwarded to Telegram`,"help.telegram.link.botfather":`Create bot with BotFather`,"help.telegram.link.docs":`Telegram Bot API guide`,"help.telegram.howTo.1":`Open Telegram and search for @BotFather to start a conversation.`,"help.telegram.howTo.2":`Send /newbot — it will ask for a display name. Enter one (e.g. "Jaw Bot").`,"help.telegram.howTo.3":`Next, enter a username. It must end with _bot (e.g. jaw_helper_bot).`,"help.telegram.howTo.4":`BotFather will send you an HTTP API token (format: 1234567890:ABCdef...). Copy it.`,"help.telegram.howTo.5":`Open ~/.cli-jaw/settings.json and paste the token into telegram.token.`,"help.telegram.howTo.6":`Search for your new bot in Telegram → tap "Start" or send any message (e.g. "hello").`,"help.telegram.howTo.7":`Run jaw doctor in your terminal — it will display the chat ID (a number) from the message you just sent.`,"help.telegram.howTo.8":`Add that chat ID to the telegram.allowedChatIds array in settings.json — done!`,"help.telegram.example.1":`Receive a long-running task's finished file through Telegram while away from the web UI.`,"help.telegram.avoid.1":`Discord is the active operational channel`,"help.telegram.related.1":`/forward`,"help.telegram.related.2":`Allowed chat IDs`,"help.discord.title":`Discord`,"help.discord.aria":`Discord help`,"help.discord.intro":`Manages Discord guild and channel routing plus mention behavior.`,"help.discord.effect":`Commands, files, and employee results are limited to the configured guild and channel.`,"help.discord.use.1":`Operating through a server channel with slash commands`,"help.discord.use.2":`Restricting output to specific guilds or channels`,"help.discord.link.portal":`Open Discord Developer Portal`,"help.discord.link.docs":`Discord bot getting started`,"help.discord.howTo.1":`Go to discord.com/developers/applications and log in with your Discord account.`,"help.discord.howTo.2":`Click "New Application" (top right) → enter an app name (e.g. "Jaw Bot") → Create.`,"help.discord.howTo.3":`In the left menu, go to "Bot" tab → click "Reset Token" → copy the bot token. (It's only shown once — save it now!)`,"help.discord.howTo.4":`On the same Bot page, scroll to "Privileged Gateway Intents" → turn on MESSAGE CONTENT INTENT. (Without this, the bot can't read messages!)`,"help.discord.howTo.5":`In the left menu, go to "OAuth2" → "URL Generator".`,"help.discord.howTo.6":`Under SCOPES, check bot and applications.commands. Under BOT PERMISSIONS, select Send Messages, Read Message History, etc.`,"help.discord.howTo.7":`Copy the generated invite URL at the bottom → paste in browser → select the server to add the bot to.`,"help.discord.howTo.8":`Open ~/.cli-jaw/settings.json and enter discord.token, guildId (server ID), and channelId (channel ID).`,"help.discord.howTo.9":`Run jaw doctor in your terminal to verify bot connection and permissions — done!`,"help.discord.example.1":`Collect employee verification results in one project channel.`,"help.discord.avoid.1":`You expect direct-message delivery`,"help.discord.related.1":`jaw doctor`,"help.discord.related.2":`Discord degraded mode`,"help.slack.title":`Slack`,"help.slack.aria":`Slack help`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`Click "Copy manifest" in the guide card below, then create the app at api.slack.com/apps → Create New App → From a manifest.`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback`,"help.fallbackOrder.aria":`Fallback help`,"help.fallbackOrder.intro":`Sets which CLI is tried when the current one fails or is unavailable.`,"help.fallbackOrder.effect":`Other CLIs are tried in order to reduce interruptions from provider failures or quota issues.`,"help.fallbackOrder.use.1":`A provider is overloaded and you want an automatic backup`,"help.fallbackOrder.use.2":`Long jobs should be less likely to stop on provider failure`,"help.fallbackOrder.howTo.1":`Set the retry order in Fallback settings.`,"help.fallbackOrder.howTo.2":`Disable or simplify fallback while debugging root causes.`,"help.fallbackOrder.example.1":`If Claude is overloaded, continue through Codex or Gemini according to your order.`,"help.fallbackOrder.avoid.1":`Failures should stop immediately for debugging`,"help.fallbackOrder.related.1":`/fallback`,"help.mcp.title":`MCP Servers`,"help.mcp.aria":`MCP help`,"help.mcp.intro":`MCP servers connect agents to external tools and resources.`,"help.mcp.effect":`Installed servers sync into tool lists for Claude, Codex, Gemini, and other CLIs.`,"help.mcp.use.1":`A task needs external app, data, or tool access`,"help.mcp.use.2":`The same tool setup should sync across CLIs`,"help.mcp.howTo.1":`/mcp — List all connected MCP servers and their tools.`,"help.mcp.howTo.2":`/mcp sync — Re-sync MCP servers with the active CLI.`,"help.mcp.howTo.3":`/mcp install — Install a new MCP server from the registry.`,"help.mcp.howTo.4":`Use the MCP settings panel (⚙️) to add, edit, or remove servers.`,"help.mcp.example.1":`Add filesystem MCP so agents can inspect allowed folders reliably.`,"help.mcp.avoid.1":`Local files and built-in tools are enough`,"help.mcp.related.1":`/mcp`,"help.memory.title":`Memory`,"help.memory.aria":`Memory help`,"help.memory.intro":`Stores durable project facts, user preferences, and long-term context.`,"help.memory.effect":`Saved decisions and preferences can be searched and injected in later sessions or after compaction.`,"help.memory.use.1":`Decisions or preferences should survive future sessions`,"help.memory.use.2":`A long project needs stable context continuity`,"help.memory.howTo.1":`/memory — List all saved memory entries.`,"help.memory.howTo.2":`/memory <query> — Search memory for matching entries.`,"help.memory.howTo.3":`Memory is stored in structured files under the memory/ directory.`,"help.memory.howTo.4":`Save durable decisions and preferences, not temporary checklists or raw logs.`,"help.memory.example.1":`Save "this project stays vanilla JS"; do not save "three tests left today".`,"help.memory.avoid.1":`You are saving temporary checklists or raw logs`,"help.memory.related.1":`/memory`,"help.memory.related.2":`flush / bootstrap`,"help.stt.title":`Speech recognition`,"help.stt.aria":`STT help`,"help.stt.intro":`Configures speech-to-text for browser voice input.`,"help.stt.effect":`Voice button recordings are transcribed by the selected STT engine into chat text.`,"help.stt.use.1":`You want to dictate long instructions`,"help.stt.use.2":`You need to choose Gemini, OpenAI, or Whisper STT`,"help.stt.howTo.1":`Choose an STT provider and configure any required API key.`,"help.stt.howTo.2":`Press the voice button, record, then review the transcribed text.`,"help.stt.example.1":`Dictate long meeting notes and then ask the agent to summarize them.`,"help.stt.avoid.1":`Text input is enough or API keys are not configured`,"help.stt.related.1":`voice button`,"help.promptTemplates.title":`Prompt Templates`,"help.promptTemplates.aria":`Prompt Templates help`,"help.promptTemplates.intro":`Stores reusable prompt blocks for common workflows.`,"help.promptTemplates.effect":`The selected template is inserted as repeatable instructions for new requests.`,"help.promptTemplates.use.1":`Repeated instructions should stay consistent`,"help.promptTemplates.use.2":`Long setup instructions should not be rewritten each time`,"help.promptTemplates.howTo.1":`Create and save templates in the prompt templates modal.`,"help.promptTemplates.howTo.2":`Select the template before a repeated workflow.`,"help.promptTemplates.example.1":`Save the same code review checklist instead of retyping it each time.`,"help.promptTemplates.avoid.1":`A short one-off instruction is clearer in chat`,"help.promptTemplates.related.1":`Prompt templates modal`,"help.chatInput.title":`Chat input`,"help.chatInput.aria":`Chat input help`,"help.chatComposer.aria":`Chat input and keyboard shortcuts help`,"help.chatInput.intro":`The main box for sending task instructions, slash commands, and attachments.`,"help.chatInput.effect":`Messages go to the selected CLI with current settings, and attached files travel with the request.`,"help.chatInput.use.1":`Starting a new task or continuing current work`,"help.chatInput.use.2":`Running slash commands such as /help or /pabcd`,"help.chatInput.use.3":`Sending text and files together`,"help.chatInput.howTo.1":`Type a message and press Send or the supported submit shortcut.`,"help.chatInput.howTo.2":`Add files with the attachment button or drag and drop before sending.`,"help.chatInput.example.1":`Type "review this diff" and attach the relevant file.`,"help.chatInput.avoid.1":`Use slash commands for command-only actions instead of vague prose.`,"help.chatInput.avoid.2":`Do not paste raw secret keys or tokens into chat.`,"help.chatInput.related.1":`Attachments`,"help.chatInput.related.2":`Keyboard shortcuts`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD help`,"help.orchestration.intro":`PABCD is the plan, audit, build, check, and done workflow for larger work.`,"help.orchestration.effect":`Each phase has one job, which keeps broad changes safer and easier to review.`,"help.orchestration.use.1":`A task touches several files or features`,"help.orchestration.use.2":`Employee audit or implementation verification is needed`,"help.orchestration.use.3":`You want the plan agreed before code changes`,"help.orchestration.howTo.1":`/orchestrate I — Enter Interview mode to clarify requirements.`,"help.orchestration.howTo.2":`/orchestrate P — Enter Planning mode to write a plan.`,"help.orchestration.howTo.3":`/orchestrate A — Enter Audit mode for plan review.`,"help.orchestration.howTo.4":`/orchestrate B — Enter Build mode for implementation.`,"help.orchestration.howTo.5":`/orchestrate C — Enter Check mode for final verification.`,"help.orchestration.howTo.6":`/orchestrate D — Enter Done mode and return to idle.`,"help.orchestration.howTo.7":`/orchestrate status — Show the current PABCD phase.`,"help.orchestration.howTo.8":`/orchestrate reset — Return to idle from any phase.`,"help.orchestration.example.1":`Plan in P, audit in A, then implement in B.`,"help.orchestration.avoid.1":`A one-line answer or simple status check is enough`,"help.orchestration.avoid.2":`The task is urgent and should first be reduced in scope`,"help.orchestration.related.1":`Employees`,"help.orchestration.related.2":`Keyboard shortcuts`,"help.attachments.title":`Attachments`,"help.attachments.aria":`Attachments help`,"help.attachments.intro":`The area for sending images, documents, logs, or code files with the current message.`,"help.attachments.effect":`Attached files become part of the request context so the agent can read or analyze them.`,"help.attachments.use.1":`A screenshot or error log explains the problem`,"help.attachments.use.2":`A document or code file needs direct review`,"help.attachments.use.3":`Several related files should be sent together`,"help.attachments.howTo.1":`Use the attach button or drop files onto the chat area.`,"help.attachments.howTo.2":`Remove wrong files from the preview before sending.`,"help.attachments.example.1":`Send an error screenshot and log file together to ask for root cause.`,"help.attachments.avoid.1":`Do not attach credential files or files containing tokens.`,"help.attachments.avoid.2":`Unrelated large files can reduce analysis quality.`,"help.attachments.related.1":`Chat input`,"help.attachments.related.2":`Memory`,"help.diagrams.title":`Diagrams`,"help.diagrams.aria":`Diagrams help`,"help.diagrams.intro":`Inline SVG, Mermaid, and interactive diagrams rendered directly inside answers.`,"help.diagrams.effect":`Complex flows, structures, and comparisons become easier to scan than prose alone.`,"help.diagrams.use.1":`You want a file-change map or system flow`,"help.diagrams.use.2":`A PABCD plan or audit result needs a quick overview`,"help.diagrams.use.3":`A rendered diagram should be expanded or copied`,"help.diagrams.howTo.1":`Use the diagram action buttons to zoom, copy, or save when available.`,"help.diagrams.howTo.2":`Report rendering issues such as shifted text or invisible lines.`,"help.diagrams.example.1":`Ask for the scope to be shown as boxes and arrows.`,"help.diagrams.avoid.1":`Exact source text or long code is clearer as text.`,"help.diagrams.avoid.2":`Do not visualize screens that expose secrets.`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`Attachments`,"help.keyboardShortcuts.title":`Keyboard shortcuts`,"help.keyboardShortcuts.aria":`Keyboard shortcuts help`,"help.keyboardShortcuts.intro":`A guide to Jaw UI and browser shortcuts that reduce repeated clicking.`,"help.keyboardShortcuts.effect":`Input, voice, help, and dashboard navigation can be faster from the keyboard.`,"help.keyboardShortcuts.use.1":`You want to run frequent actions without the mouse`,"help.keyboardShortcuts.use.2":`You need to know whether shortcuts interrupt typing`,"help.keyboardShortcuts.use.3":`You are looking for Manager dashboard shortcut settings`,"help.keyboardShortcuts.howTo.1":`Classic Web: Enter sends from the chat input, Shift+Enter adds a new line, slash commands start with / in the same input, and STT recording toggles with Ctrl+Shift+Space or Alt/Option+M.`,"help.keyboardShortcuts.howTo.2":`Manager: ? opens shortcut help outside editors; Alt+I, Alt+P, and Alt+N jump to Instances, the active Preview, and Notes; Alt+K and Alt+J select the previous or next instance.`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S saves, Cmd/Ctrl+E cycles Raw/Preview/WYSIWYG, Cmd/Ctrl+Shift+F opens note search, Cmd/Ctrl+P toggles the quick switcher, and Cmd/Ctrl+Delete or Cmd/Ctrl+Backspace trashes the selected note or folder.`,"help.keyboardShortcuts.example.1":`Press Enter in the chat input to send; use Shift+Enter when you need a new line.`,"help.keyboardShortcuts.example.2":`Press ? in Manager when focus is not in an input or editor to open this shortcut help.`,"help.keyboardShortcuts.avoid.1":`Change the chord when it conflicts with browser defaults.`,"help.keyboardShortcuts.avoid.2":`Global shortcuts should not override active text editing.`,"help.keyboardShortcuts.related.1":`Chat input`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`Session help`,"help.session.title":`Session`,"help.session.intro":`Manage your chat sessions — create new ones, switch between them, clear conversation, or reset the workspace.`,"help.session.effect":`Session commands operate on the current conversation state without affecting the AI agent or its configuration.`,"help.session.use.1":`Starting a fresh conversation with /new`,"help.session.use.2":`Switching between multiple chat sessions`,"help.session.use.3":`Clearing chat history with /clear or /compact`,"help.session.howTo.1":`/new [label] — Create a new chat session with an optional label.`,"help.session.howTo.2":`/switch <seq> — Switch to a session by its sequence number. Alias: /sw`,"help.session.howTo.3":`/sessions — List all available sessions. Alias: /ss`,"help.session.howTo.4":`/clear — Clear the current chat screen.`,"help.session.howTo.5":`/clear all — Clear screen and remove all conversation history.`,"help.session.howTo.6":`/compact [instructions] — Compress conversation context to save tokens.`,"help.session.howTo.7":`/purge — Clear conversation and all structured memory.`,"help.session.howTo.8":`/reset confirm — Full workspace reset (settings preserved).`,"help.session.example.1":`/new project-review — creates a labeled session for code review.`,"help.session.avoid.1":`Use /reset only when you need a full workspace reset, not just a clean chat.`,"help.session.related.1":`Chat input`,"help.session.related.2":`Keyboard shortcuts`,"help.cliTools.aria":`CLI Tools help`,"help.cliTools.title":`CLI Tools`,"help.cliTools.intro":`Utility commands for checking version, managing projects, viewing the system prompt, and IDE integration.`,"help.cliTools.effect":`These commands display information or configure development tool integrations.`,"help.cliTools.use.1":`Checking the current jaw version with /version`,"help.cliTools.use.2":`Setting project workspace directories with /project`,"help.cliTools.use.3":`Viewing the full system prompt with /prompt`,"help.cliTools.howTo.1":`/version — Show jaw version and active CLI status.`,"help.cliTools.howTo.2":`/project set <paths...> — Set project workspace directories.`,"help.cliTools.howTo.3":`/project list — Show currently configured project paths.`,"help.cliTools.howTo.4":`/project reset — Reset project directories to default.`,"help.cliTools.howTo.5":`/prompt — View the full system prompt sent to the AI.`,"help.cliTools.howTo.6":`/ide [pop|on|off] — Toggle IDE diff view (CLI only).`,"help.cliTools.example.1":`/project set ~/my-repo — sets the active project directory.`,"help.cliTools.avoid.1":`IDE commands only work in CLI mode, not web UI.`,"help.cliTools.related.1":`Active CLI`,"help.cliTools.related.2":`Model`,"help.agentControl.aria":`Agent Control help`,"help.agentControl.title":`Agent Control`,"help.agentControl.intro":`Control how the AI agent behaves — toggle message forwarding, thought visibility, and flush model settings.`,"help.agentControl.effect":`These commands change the agent's runtime behavior for the current session.`,"help.agentControl.use.1":`Toggling message forwarding between channels with /forward`,"help.agentControl.use.2":`Showing or hiding Gemini thinking with /thought`,"help.agentControl.use.3":`Setting a flush model for context management with /flush`,"help.agentControl.howTo.1":`/forward [on|off] — Toggle message forwarding to the active channel.`,"help.agentControl.howTo.2":`/thought [on|off] — Show or hide Gemini thinking process.`,"help.agentControl.howTo.3":`/flush <cli> <model> — Set a flush model for context compaction.`,"help.agentControl.howTo.4":`/flush off — Disable the flush model.`,"help.agentControl.howTo.5":`/steer <prompt> — Interrupt the running agent and redirect it.`,"help.agentControl.howTo.6":`/status — Show current status of CLI, model, channel, and agent.`,"help.agentControl.example.1":`/forward on — enables message forwarding to the active channel.`,"help.agentControl.avoid.1":`Don't toggle forwarding during active agent work.`,"help.agentControl.related.1":`Model`,"help.agentControl.related.2":`Flush agent`,"help.goals.aria":`Goals help`,"help.goals.title":`Goals & Planning`,"help.goals.intro":`Persistent goals and structured planning workflows — set objectives, run PABCD orchestration, interview for requirements, and manage multi-session work.`,"help.goals.effect":`Goal and planning commands create durable state that persists across sessions and guide the AI through structured development phases.`,"help.goals.use.1":`Setting a persistent development goal with /goal`,"help.goals.use.2":`Running structured PABCD planning with /plan or /orchestrate`,"help.goals.use.3":`Gathering requirements before planning with /interview`,"help.goals.howTo.1":`/goal <objective> — Set a new persistent development goal.`,"help.goals.howTo.2":`/goal status — Show the current goal and progress checkpoints.`,"help.goals.howTo.3":`/goal run — Resume working on the active goal.`,"help.goals.howTo.4":`/goal plan [hint] — AI-driven goal planning. Alias: /goalplan`,"help.goals.howTo.5":`/goal done — Mark the current goal as complete.`,"help.goals.howTo.6":`/goal cancel — Cancel the active goal.`,"help.goals.howTo.7":`/goal pause / resume — Manually pause or resume a goal.`,"help.goals.howTo.8":`/goal history — Show completed and cancelled goals.`,"help.goals.howTo.9":`/plan [request|status|copy] — Explain or start PABCD planning.`,"help.goals.howTo.10":`/interview <request> — Clarify requirements before planning.`,"help.goals.example.1":`/goal Implement user authentication — sets a persistent goal the AI will work toward across sessions.`,"help.goals.avoid.1":`Don't set vague goals — be specific about what you want built.`,"help.goals.related.1":`Orchestration`,"help.goals.related.2":`Employees`,"help.section.commands":`Command Reference`,"help.session.subcmd.1":`/new [label] — Start a new chat session with an optional label`,"help.session.subcmd.2":`/switch <N> — Switch to session number N (alias: /sw, /<N>)`,"help.session.subcmd.3":`/sessions — List all sessions (alias: /ss)`,"help.session.subcmd.4":`/clear — Clear the current chat screen`,"help.session.subcmd.5":`/clear all — Clear screen and delete all conversation history`,"help.session.subcmd.6":`/compact [instructions] — Compress conversation context to save tokens`,"help.session.subcmd.7":`/purge — Delete conversation and structured memory`,"help.session.subcmd.8":`/reset confirm — Full workspace reset (settings preserved)`,"help.session.subcmd.9":`/quit — Exit the process (alias: /q, /exit; CLI only)`,"help.orchestration.subcmd.1":`/orchestrate I — Enter Interview mode to clarify requirements`,"help.orchestration.subcmd.2":`/orchestrate P — Enter Planning mode to write the plan`,"help.orchestration.subcmd.3":`/orchestrate A — Enter Audit mode to review the plan`,"help.orchestration.subcmd.4":`/orchestrate B — Enter Build mode to implement`,"help.orchestration.subcmd.5":`/orchestrate C — Enter Check mode for final verification`,"help.orchestration.subcmd.6":`/orchestrate D — Enter Done mode and return to IDLE`,"help.orchestration.subcmd.7":`/orchestrate status — Show current PABCD phase`,"help.orchestration.subcmd.8":`/orchestrate reset — Return to IDLE from any phase (alias: /pabcd)`,"help.goals.subcmd.1":`/goal <objective> — Set a new persistent goal`,"help.goals.subcmd.2":`/goal plan [hint] — AI-driven goal planning`,"help.goals.subcmd.3":`/goal status — Show active goal status`,"help.goals.subcmd.4":`/goal run — Continue goal execution`,"help.goals.subcmd.5":`/goal done [note] — Mark goal as complete`,"help.goals.subcmd.6":`/goal cancel [reason] — Cancel the active goal`,"help.goals.subcmd.7":`/goal pause — Pause the active goal`,"help.goals.subcmd.8":`/goal resume — Resume a paused goal`,"help.goals.subcmd.9":`/goal clear — Clear goal data`,"help.goals.subcmd.10":`/goal reset — Reset goal state`,"help.goals.subcmd.11":`/goal history — Show completed goal history`,"help.goals.subcmd.12":`/goalplan [hint] — Alias for /goal plan`,"help.goals.subcmd.13":`/plan [request] — Create a structured PABCD plan`,"help.goals.subcmd.14":`/plan status — Show current plan status`,"help.goals.subcmd.15":`/plan copy — Copy plan content to clipboard`,"help.goals.subcmd.16":`/interview <request> — Structured requirements gathering`,"help.goals.subcmd.17":`/deliberate <request> — Multi-role deliberation (planner, architect, critic)`,"help.goals.subcmd.18":`/planaudit [plan] — Create a read-only employee audit task`,"help.goals.subcmd.19":`/team plan <objective> — Start parallel team planning`,"help.goals.subcmd.20":`/team audit — Run team audit`,"help.goals.subcmd.21":`/team status — Show team execution status`,"help.goals.subcmd.22":`/team collect — Collect team results`,"help.goals.subcmd.23":`/team stop — Stop team execution`,"help.goals.subcmd.24":`/goal refine <objective> — Finalize an AI-selected plan-mode goal`,"help.goals.subcmd.25":`/gd [note] — Force-complete the active goal; alias for /goal done --force`,"help.activeCli.subcmd.1":`/cli — Show the current active CLI`,"help.activeCli.subcmd.2":`/cli <name> — Switch CLI engine (claude, codex, gemini, etc.)`,"help.activeCli.subcmd.3":`/status — Show full system status`,"help.model.subcmd.1":`/model — Show the current model`,"help.model.subcmd.2":`/model <name> — Change the active CLI's model`,"help.skills.subcmd.1":`/skill — List installed active skills`,"help.skills.subcmd.2":`/skill list — List all active and reference skills`,"help.skills.subcmd.3":`/skill reset — Reload all skills from disk`,"help.employees.subcmd.1":`/employee — Show registered employee list`,"help.employees.subcmd.2":`/employee sessions-reset — Clear saved employee resume sessions`,"help.mcp.subcmd.1":`/mcp — Show MCP server list`,"help.mcp.subcmd.2":`/mcp sync — Sync MCP tools`,"help.mcp.subcmd.3":`/mcp install — Install an MCP server`,"help.mcp.subcmd.4":`/browser status — Show browser connection status`,"help.mcp.subcmd.5":`/browser tabs — Show open tab list`,"help.memory.subcmd.1":`/memory — Show memory overview`,"help.memory.subcmd.2":`/memory <query> — Search stored memory`,"help.flushAgent.subcmd.1":`/flush — Show current flush settings`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — Set flush model for a CLI`,"help.flushAgent.subcmd.3":`/flush off — Disable flush model`,"help.fallbackOrder.subcmd.1":`/fallback — Show current fallback order`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — Set fallback CLI order`,"help.fallbackOrder.subcmd.3":`/fallback off — Disable fallback`,"help.agentControl.subcmd.1":`/forward on — Enable message forwarding to active channel`,"help.agentControl.subcmd.2":`/forward off — Disable message forwarding`,"help.agentControl.subcmd.3":`/thought on — Show Gemini thinking process`,"help.agentControl.subcmd.4":`/thought off — Hide Gemini thinking process`,"help.agentControl.subcmd.5":`/steer <prompt> — Interrupt running agent and redirect`,"help.agentControl.subcmd.6":`/status — Show CLI, model, channel, and agent status`,"help.cliTools.subcmd.1":`/version — Show jaw version and active CLI status`,"help.cliTools.subcmd.2":`/project set <paths...> — Set project workspace directories`,"help.cliTools.subcmd.3":`/project list — Show current project paths`,"help.cliTools.subcmd.4":`/project reset — Reset project directories to defaults`,"help.cliTools.subcmd.5":`/project clear — Clear project directory settings`,"help.cliTools.subcmd.6":`/prompt — Show the full system prompt sent to AI`,"help.cliTools.subcmd.7":`/ide pop — Open IDE diff view as popup (CLI only)`,"help.cliTools.subcmd.8":`/ide on — Enable IDE diff view (CLI only)`,"help.cliTools.subcmd.9":`/ide off — Disable IDE diff view (CLI only)`,"help.keyboardShortcuts.subcmd.1":`/help — Show full command list`,"help.keyboardShortcuts.subcmd.2":`/help <command> — Show detailed help for a specific command`,"help.keyboardShortcuts.subcmd.3":`/commands — Open command palette (alias: /cmd)`,"bgtask.title":`Background`,"tg.elicitationExpired":`Selection expired. Please reply with text.`,"settings.slack.guide.step1Title":`Create the Slack app`,"settings.slack.guide.openApps":`Open apps page`,"settings.slack.guide.step2Title":`Paste the bot token`,"settings.slack.guide.step3Title":`App-level token for inbound (optional)`,"settings.slack.guide.step3Desc":`Leave empty for outbound-only operation`,"settings.slack.guide.botTokenError":`Must be a bot token starting with xoxb- — swapped with the app token?`,"settings.slack.guide.appTokenError":`Must be an app-level token starting with xapp- — swapped with the bot token?`,"settings.slack.advanced":`Advanced settings`,"settings.slack.resetConnection":`Reset connection`,"settings.slack.resetConfirm":`The Slack app connection will be reset. Continue?`,"settings.slack.resetEmpty":`No Slack app is connected.`,"settings.slack.resetFailed":`Could not reset the Slack app connection. Try again.`,"settings.slack.resetManagedByEnvironment":`This Slack connection is managed by environment variables ({variables}). Remove them and restart cli-jaw before resetting the connection.`,"settings.slack.managedByEnvironment":`Connection settings are read-only because they are managed by environment variables: {variables}. Remove them and restart cli-jaw to edit here.`,"settings.slack.attachPort":`Attach instance port`,"settings.channel.notAttachInstanceHint":`Another instance owns this Slack connection (check the attach instance port)`,"settings.slack.guide.step2Desc":`App settings → OAuth & Permissions → confirm files:read → Reinstall to Workspace → copy Bot User OAuth Token`,"settings.slack.guide.step3Location":`App settings → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`Gathering context...`,"slack.progress.working":`Working`,"slack.files.partialFailure":`⚠️ Some attachments were skipped:`,"slack.files.allFailure":`⚠️ No attachment could be processed, so the request was not run:`,"slack.files.limit":`Files are limited to 50 MiB each and 10 files or 100 MiB per message.`,"slack.files.error.external_file_unsupported":`External Slack files are not supported`,"slack.files.error.private_network":`The download location is not safe`,"slack.files.error.redirect_limit":`The redirect limit was exceeded`,"slack.files.error.size_exceeded":`The file size limit was exceeded`,"slack.files.error.message_budget_exceeded":`The message attachment limit was exceeded`,"slack.files.error.missing_scope":`Add files:read and reinstall the app`,"slack.files.error.ingress_cancelled":`Processing was cancelled`,"slack.files.error.download_failed":`The file could not be downloaded`,"onboarding.open":`Setup wizard`,"onboarding.optional":`optional`,"onboarding.validate":`Validate`,"onboarding.save":`Save`,"onboarding.close":`Close`,"onboarding.valid":`Verified: {identity}`,"onboarding.title.telegram":`Connect Telegram`,"onboarding.title.discord":`Connect Discord`,"onboarding.title.slack":`Connect Slack`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`At api.slack.com/apps, choose Create New App → From a manifest, paste the copied manifest into the JSON tab, select the workspace where you want to add the app, and create it.`,"onboarding.slackAppName":`App name`,"onboarding.slackAppNameHint":`Enter an app name up to 35 characters. The bot handle is derived from it, and falls back to cli-jaw when the name has no usable ASCII characters.`,"onboarding.slackGenerateManifest":`Generate manifest`,"onboarding.slackManifestGenerating":`Generating...`,"onboarding.slackManifestReady":`Copied`,"onboarding.slackManifestCopiedWithBot":`Manifest copied. Bot handle: {bot}`,"onboarding.slackManifestError":`Could not generate or copy the manifest. Try again.`,"onboarding.slackAppNameError":`Enter an app name from 1 to 35 characters.`,"onboarding.warning.missingCapabilities":`Optional scopes {capabilities} are missing, so the features they cover are turned off. Add them and reinstall the app. Text messages still work.`,"onboarding.token.botToken":`Bot token`,"onboarding.token.appToken":`App-level token`,"onboarding.token.guildId":`Server ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`Next`,"onboarding.back":`Back`,"onboarding.step.1":`1. Where to get it`,"onboarding.step.2":`2. Paste what you received`,"onboarding.step.3":`3. Verify the connection`,"onboarding.step.4":`4. Save`,"onboarding.validating":`Checking...`,"onboarding.validateHint":`Press Validate to check the real connection. It must pass before saving.`,"onboarding.saveHint":`Validation passed. Saving applies the settings and connects the channel right away.`,"onboarding.error.validation_required":`Validation has to pass first.`,"onboarding.error.slack_setup_required":`Generate the manifest and open the issuing page before continuing.`,"onboarding.openIssuer":`Open the issuing page`,"onboarding.error.missing_scopes":`The token works, but the app is missing OAuth scopes. Add the ones below under OAuth & Permissions, then reinstall the app.`,"onboarding.hint.telegram.botToken":`The value @BotFather returned after /newbot.`,"onboarding.hint.discord.botToken":`Generated with Reset Token on the Bot tab.`,"onboarding.hint.discord.guildId":`Enable Developer Mode, right-click the server, copy ID.`,"onboarding.hint.slack.botToken":`Bot User OAuth Token from OAuth & Permissions (starts with xoxb-).`,"onboarding.hint.slack.appToken":`Basic Information, App-Level Tokens (xapp-, connections:write).`,"onboarding.progressLabel":`Step {step} of {total}`,"slack.progress.title":`Request progress`,"slack.progress.activityTitle":`Recent activity`,"slack.progress.deliveryTitle":`Answer delivery`,"slack.progress.queued":`Queued`,"slack.progress.running":`Observing activity`,"slack.progress.waiting":`Waiting for the next update`,"slack.progress.delivering":`Delivering the answer`,"slack.progress.complete":`Work observation ended`,"slack.progress.workflowComplete":`Workflow response ended; production outcome is not verified.`,"slack.progress.unavailable":`Activity updates unavailable. Execution may continue.`,"slack.progress.lastRuntime":`Last runtime signal: {seconds}s ago`,"slack.progress.error":`Request failed`,"slack.progress.cancelled":`Request cancelled`,"slack.progress.expired":`Progress tracking ended. Execution may continue.`,"slack.progress.merged":`Request combined with another request`,"slack.progress.removed":`Request removed`,"slack.progress.restored":`Previous progress tracking ended. The execution result is unconfirmed.`,"slack.progress.failure":`Could not complete the response.`,"slack.progress.elapsed":`Elapsed: {seconds}s`,"slack.progress.lastActivity":`Last activity: {seconds}s ago`,"slack.progress.longRunning":`Running for {minutes} min — still in progress`,"slack.progress.category.read":`File reading`,"slack.progress.category.write":`File editing`,"slack.progress.category.search":`Search`,"slack.progress.category.web":`Webpage reading`,"slack.progress.category.command":`Command execution`,"slack.progress.category.external":`External tool`,"slack.progress.category.tool":`Tool activity`,"slack.progress.status.observed":`Observed`,"slack.progress.status.in_progress":`Running`,"slack.progress.status.complete":`Done`,"slack.progress.status.error":`Error`,"slack.progress.status.stopped":`Stopped`,"slack.progress.status.unconfirmed":`Unconfirmed`,"slack.progress.deliveryComplete":`Answer delivered`,"slack.progress.deliveryFailed":`Answer delivery could not be confirmed`,"slack.progress.deliveryUnconfirmed":`Answer delivery unconfirmed`,"slack.workflow.unavailable":`The automation was not run because its sender/request information or the designated enabled skill could not be verified. Check the configuration.`,"slack.workflow.unconfirmed":`The registered workflow returned no substantive result. Work may already have begun; inspect its records before retrying.`},k={"cmd.help.desc":`コマンド一覧`,"cmd.status.desc":`現在の状態`,"cmd.clear.desc":`会話削除 / all: スキル+従業員+MCPリセット`,"cmd.purge.desc":`会話+メモリ削除`,"cmd.purge.tg_desc":`会話+メモリ削除`,"cmd.reset.desc":`ブートストラップ初期化(会話/メモリ/スキル/従業員/MCP)`,"cmd.model.desc":`モデルの確認/変更`,"cmd.cli.desc":`アクティブ CLI の確認/変更`,"cmd.fallback.desc":`Fallback CLI の順序を設定`,"cmd.forward.desc":`Telegram 自動転送のオン/オフ`,"cmd.flush.desc":`Flush モデルの確認/変更`,"cmd.version.desc":`バージョン/CLI インストール状態`,"cmd.skill.desc":`スキル一覧/リセット`,"cmd.employee.desc":`従業員管理(一覧/モデル/CLI/リセット/セッション消去)`,"cmd.mcp.desc":`MCP の一覧/同期/インストール`,"cmd.memory.desc":`メモリの検索/一覧`,"cmd.browser.desc":`ブラウザ状態/タブ`,"cmd.prompt.desc":`システムプロンプトを表示`,"cmd.quit.desc":`プロセスを終了`,"cmd.file.desc":`ファイルを添付`,"cmd.steer.desc":`Agent を中断して新しい指示へ切り替え`,"cmd.compact.desc":`会話コンテキストを圧縮`,"cmd.compact.tg_desc":`会話コンテキストを圧縮`,"cmd.workflow.interview.desc":`計画前に要件を明確化`,"cmd.workflow.interview.tg_desc":`要件インタビューを開始`,"cmd.workflow.deliberate.desc":`複数の役割で計画を確認`,"cmd.workflow.deliberate.tg_desc":`役割別に計画を確認`,"cmd.workflow.plan.desc":`PABCD計画フローを説明`,"cmd.workflow.plan.tg_desc":`PABCD計画を説明`,"cmd.workflow.plan.title":`PABCD計画ガイド`,"cmd.workflow.plan.pabcdEquivalent":`cli-jawの /plan は別のモードではありません。PABCD Pとして計画を明確にし、その後A(監査)、B(実装)、C(確認)、D(完了)へ進みます。`,"cmd.workflow.plan.noRequest":`依頼内容がありません。要件が曖昧なら /interview、実装案の比較が必要なら /deliberate を使ってください。`,"cmd.workflow.plan.section.pabcd":`cli-jawの計画方式`,"cmd.workflow.plan.section.source":`元の依頼`,"cmd.workflow.plan.section.next":`次の操作`,"cmd.workflow.plan.next.interview":`- 要件を明確にする: /interview <request>`,"cmd.workflow.plan.next.deliberate":`- 選択肢を比較する: /deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- 既に計画がある: /planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- 正式に進める: /orchestrate P`,"cmd.workflow.plan.footer":`これは案内用アーティファクトです。承認済み計画はPABCD Pに属します。`,"cmd.artifact.action.copy":`コピー`,"cmd.artifact.action.reinsert":`入力欄に戻す`,"cmd.artifact.action.sendAsChat":`通常メッセージとして送信`,"cmd.artifact.action.startPabcd":`PABCD Pで使う`,"cmd.workflow.planAudit.desc":`読み取り専用の計画監査タスクを作成`,"cmd.workflow.planAudit.tg_desc":`計画監査タスクを作成`,"cmd.workflow.search.desc":`検索スキル経由で検索を実行`,"cmd.workflow.search.tg_desc":`検索スキルで検索`,"cmd.workflow.goal.desc":`ゴール状態と制限付き実行ワークフロー`,"cmd.workflow.goal.tg_desc":`ゴールまたは実行状態を確認`,"cmd.workflow.team.desc":`並列チームオーケストレーション`,"cmd.workflow.team.tg_desc":`チームオーケストレーション`,"cmd.workflow.review.tg_desc":`プロジェクトディレクトリをレビュー`,"cmd.workflow.interview.title":`要件インタビュー`,"cmd.workflow.deliberate.title":`役割別計画レビュー`,"cmd.workflow.planAudit.title":`読み取り専用計画監査`,"cmd.help.tg_desc":`使用できるコマンドを表示`,"cmd.status.tg_desc":`モデル、CLI、セッション状態を確認`,"cmd.clear.tg_desc":`会話をリセット(データは保持)`,"cmd.model.tg_desc":`現在の AI モデルを確認`,"cmd.cli.tg_desc":`現在の CLI エンジンを確認`,"cmd.fallback.tg_desc":`CLI の自動切り替え順序を設定`,"cmd.forward.tg_desc":`自動転送を切り替え`,"cmd.flush.tg_desc":`会話リセット時に使うモデルを設定`,"cmd.version.tg_desc":`バージョンとインストール状態を確認`,"cmd.skill.tg_desc":`AI スキル一覧を表示`,"cmd.browser.tg_desc":`ブラウザ接続を確認`,"cmd.steer.tg_desc":`Agent を新しいタスクへ切り替え`,"cmd.steer.noPrompt":`使い方: /steer <新しい指示>`,"cmd.steer.noAgent":`現在実行中の Agent はありません。`,"cmd.steer.started":`切り替えています...`,"cmd.unknown":`不明なコマンド: /{name}
|
|
44
44
|
使用できるコマンドは /help で確認できます。`,"cmd.unsupported":`/{name} は {iface} では使えません。`,"cmd.error":`/{name} の実行エラー: {msg}`,"cmd.recovery.originalPrompt":`入力した内容`,"cmd.helpTitle":`使用できるコマンド`,"cmd.helpDetail":`詳細ヘルプ: /help <command>`,"cmd.settingsLoadFail":`設定を読み込めませんでした。`,"cmd.model.current":`現在のモデル({cli}): {model}`,"cmd.model.invalid":`モデル名が無効です。`,"cmd.model.changed":`モデルを変更しました: {model}
|
|
45
45
|
次のメッセージから適用されます。`,"cmd.cli.current":`現在の CLI: {cli}
|
|
46
46
|
使用可能: {available}`,"cmd.cli.unknown":`不明な CLI: {cli}
|
|
@@ -61,7 +61,7 @@ User message: {text}`,"chat.file.uploadFail":`File upload failed: {msg}`,"chat.r
|
|
|
61
61
|
この画像を分析してください。`,"chat.file.sentVideo":`[ユーザーが動画を送信しました: {path}]
|
|
62
62
|
この動画ファイルを確認してください。`,"chat.file.sentWithMsg":`
|
|
63
63
|
|
|
64
|
-
ユーザーメッセージ: {text}`,"chat.file.uploadFail":`ファイルのアップロードに失敗しました: {msg}`,"chat.requestFail":`リクエストに失敗しました({status})`,"chat.continue":`現在の作業を続行しています。`,"chat.noPendingContinue":`続行できる保留中の作業はありません。`,"chat.voice.label":`🎤 [音声メッセージ]`,"sessionHub.title":`セッション`,"sessionHub.description":`ローカルとチャンネルの会話をセッション別に確認します。`,"sessionHub.defaultSession":`基本セッション`,"sessionHub.sessionLabel":`セッション {seq}`,"sessionHub.source.local":`ローカル`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`メッセージ`,"sessionHub.lastActivity":`最終アクティビティ`,"sessionHub.noActivity":`アクティビティなし`,"sessionHub.empty.title":`チャンネルセッションはまだありません`,"sessionHub.empty.description":`チャンネルを接続すると、会話ごとのセッションがここに表示されます。`,"sessionHub.empty.action":`設定でチャンネルを接続`,"sessionHub.listAria":`セッション一覧`,"sessionHub.delete":`削除`,"sessionHub.deleteConfirm":`このセッションを削除しますか?会話履歴も一緒に削除されます。`,"sessionHub.deleteRemoteDisabled":`チャンネルに接続されたセッションは削除できません。`,"sessionHub.deleteFailed":`セッションを削除できませんでした。実行中の作業がないか確認してください。`,"sessionReadonly.message":`読み取り専用です。送信する前にこのセッションへ切り替えてください。`,"sessionReadonly.remote":`チャンネルに接続されたセッションはWebでは読み取り専用です。`,"sessionReadonly.switch":`/{seq} に切り替え`,"sessionReadonly.openSessions":`セッション一覧を開く`,"sessionReadonly.composeRejected":`このセッションは読み取り専用です。上の切り替え操作を使用してください。`,"sessionReadonly.elicitationRejected":`読み取り専用セッションからは応答を送信できません。切り替えてから再試行してください。`,"skill.loadFail":`スキルを読み込めませんでした`,"skill.count":`有効 {active} 件 / 全 {total} 件`,"skill.countFiltered":`表示 {shown} 件 / 有効 {active} 件 / 全 {total} 件`,"skill.search.placeholder":`スキルを検索...`,"skill.search.aria":`スキルを検索`,"skill.search.empty":`検索に一致するスキルはありません。`,"skill.filter.all":`すべて`,"skill.filter.installed":`インストール済み`,"skill.filter.productivity":`生産性`,"skill.filter.communication":`連携`,"skill.filter.devtools":`開発`,"skill.filter.utility":`ユーティリティ`,"skill.filter.smarthome":`ホーム`,"skill.filter.other":`その他`,"skill.filter.ai":`AI 関連`,"lang.ko":`韓国語`,"lang.en":`英語`,"lang.ja":`日本語(日本)`,"lang.zh":`中国語`,"emp.addPrompt":`Agent を追加`,"emp.delete":`削除`,"emp.customRole":`カスタムロール...`,"emp.customModel":`手動入力...`,"role.label.frontend":`フロントエンド`,"role.label.backend":`バックエンド`,"role.label.data":`データ`,"role.label.docs":`ドキュメント`,"role.label.security":`セキュリティ`,"role.label.testing":`テスト`,"role.label.custom":`カスタム...`,"hb.empty":`heartbeat はありません`,"hb.name":`名前`,"hb.prompt":`プロンプト...`,"hb.add":`+ heartbeat を追加`,"hb.kindEvery":`間隔`,"hb.kindCron":`Cron 予定`,"hb.minutesLabel":`分`,"hb.cronLabel":`式`,"hb.timezoneAuto":`空欄 = システム/ブラウザのタイムゾーン`,"hb.cronPlaceholder":`例: 0 9 * * *`,"hb.invalidCron":`Cron 式が無効です。5 フィールドで入力してください。`,"hb.invalidTimeZone":`タイムゾーンが無効です。例: Asia/Seoul`,"hb.invalidMinutes":`分数は 1 以上の整数である必要があります。`,"hb.invalidSchedule":`heartbeat スケジュールが無効です。`,"hb.scheduleHintCron":`例: {cron} · タイムゾーン: {timeZone}`,"hb.scheduleHintEvery":`例: {minutes} 分ごと · タイムゾーン: {timeZone}`,"cmd.noMatch":`一致するコマンドはありません`,"mem.noFiles":`メモリファイルはまだありません`,"mem.empty":`メモリはまだありません`,"memory.banner.bootstrapRerun":`メモリ bootstrap を再実行しています...`,"memory.banner.reindexing":`メモリインデックスを再作成しています...`,"memory.banner.soulOptimize":`Soul を最適化`,"memory.banner.soulOptimizing":`Soul を最適化しています...(アクティブ CLI が処理しています)`,"memory.banner.soulPromptSent":`✓ Soul 最適化プロンプトを送信しました。チャットを確認してください。`,"model.promptInput":`モデル ID を入力:`,"model.customOption":`手動入力...`,"model.placeholder":`モデル ID を入力`,"mcp.syncing":`同期中...`,"mcp.installing":`npm でインストール中...(最大 2 分)`,"settings.none":`(なし)`,"cli.gemini.auth":`初回実行時にブラウザ認証`,"cli.copilot.authHint":`copilot login または gh auth login`,"cli.showMore":`もっと見る ▸`,"cli.authRequired":`インストール/認証が必要です`,"cli.notAuthenticated":`認証が必要です — 下のコマンドを実行してください`,"drag.drop":`ここにファイルをドロップ`,"status.responding":`応答中`,"aria.cmdList":`コマンド一覧`,"btn.attach":`ファイルを添付`,"input.placeholder":`メッセージを入力...`,"queue.pendingTitle":`待機中`,"queue.copy":`コピー`,"queue.delete":`削除`,"queue.steer":`今すぐ実行(steer)`,"queue.cancelArm":`もう一度クリックしてキャンセル`,loading:`読み込み中...`,"btn.editPrompt":`システムプロンプトを編集`,"tg.chatIds.placeholder":`カンマ区切り(空欄ならすべて許可)`,"fallback.desc":`CLI 失敗時の自動リトライ順`,"btn.cancel":`キャンセル`,"btn.save":`保存`,"btn.stop":`停止`,"msg.you":`あなた`,"stat.messages":`メッセージ: {count}`,"ui.offline.banner":`オフラインモード — キャッシュ済みメッセージを表示中`,"time.10m":`10 分`,"time.30m":`30 分`,"time.manual":`手動`,"phase.plan":`計画`,"phase.verify":`計画レビュー`,"phase.dev":`開発`,"phase.debug":`デバッグ`,"phase.integrate":`統合`,"orchestrator.allDone":`すべてのタスクが完了しました`,"orchestrator.continueHint":`続行するには「continue」と入力してください。`,"orchestrator.noWorklog":`続行できる worklog がありません。`,"orchestrator.alreadyDone":`すべてのタスクはすでに完了しています。`,"sidebar.status":`状態`,"sidebar.memory":`メモリ`,"sidebar.stats":`統計`,"sidebar.cliStatus":`CLI 状態`,"sidebar.agentName":`Agent 名`,"sidebar.avatar":`アバター`,"sidebar.employees":`従業員`,"sidebar.promptTemplates":`プロンプトテンプレート`,"templates.title":`プロンプト構成`,"templates.back":`戻る`,"templates.devMode":`開発者モード`,"templates.hint.click":`クリックでテンプレート内容を表示`,"templates.hint.devEdit":`開発者モードで編集`,"tab.agents":`Agent`,"tab.skills":`スキル`,"tab.settings":`設定`,"btn.saveSettings":`保存`,"btn.addEmployee":`+ 追加`,"btn.off":`オフ`,"btn.on":`オン`,"label.activeCli":`アクティブ CLI`,"label.model":`モデル`,"label.effort":`推論強度`,"label.permissions":`権限`,"label.workingDir":`作業ディレクトリ`,"label.enabled":`有効`,"label.botToken":`Bot Token(bot トークン)`,"label.chatIds":`許可する Chat ID`,"label.forwardAll":`自動転送`,"label.flushEvery":`整理間隔`,"emp.empty":`従業員はまだいません`,"modal.promptTitle":`システムプロンプト(A-2)`,"modal.heartbeatTitle":`Heartbeat ジョブ`,"modal.memoryTitle":`メモリ`,"code.copy":`コピー`,"code.copied":`コピーしました ✓`,"mcp.noServers":`(サーバー未設定)`,"mermaid.renderFail":`Mermaid の描画に失敗しました`,"orchestrator.dispatching":`処理中…`,"cmd.ide.desc":`IDE diff 表示`,"cmd.ide.toggled":`IDE diff モードを切り替えました`,"cmd.ide.popToggled":`IDE ポップアップを切り替えました`,"cmd.ide.usage":`使い方: /ide [pop|on|off]`,"label.mentionOnly":`メンション時のみ応答`,"help.section.what":`概要`,"help.section.effect":`変更内容`,"help.section.useWhen":`使う場面`,"help.section.howTo":`使い方`,"help.section.example":`例`,"help.section.avoidWhen":`避ける場面`,"help.section.related":`関連項目`,"help.close":`閉じる`,"help.activeCli.title":`アクティブ CLI`,"help.activeCli.aria":`アクティブ CLI ヘルプ`,"help.activeCli.intro":`次のリクエストを処理する CLI エンジンを選びます。`,"help.activeCli.effect":`次回の実行から、選択した CLI のセッション、モデル設定、ツールの動作を使います。`,"help.activeCli.use.1":`Claude、Codex、Gemini、OpenCode、Copilot を切り替えるとき`,"help.activeCli.use.2":`CLI エンジンごとの挙動を比較するとき`,"help.activeCli.howTo.1":`アクティブ CLI セレクターから使いたい CLI を選びます。`,"help.activeCli.howTo.2":`チャットで /cli <name> と入力しても変更できます。`,"help.activeCli.example.1":`Claude が止まっている場合は、Codex に切り替えて同じ作業を続けられます。`,"help.activeCli.avoid.1":`同じ CLI 内のモデルだけを変更したい場合`,"help.activeCli.related.1":`/cli コマンド`,"help.activeCli.related.2":`モデルセレクター`,"help.model.title":`モデル`,"help.model.aria":`モデルヘルプ`,"help.model.intro":`アクティブ CLI で使うモデルを選びます。`,"help.model.effect":`同じ CLI の今後のリクエストは、選択したモデル名で実行されます。`,"help.model.use.1":`より速いモデル、またはより強力なモデルへ切り替えるとき`,"help.model.use.2":`モデルごとの性能やコストを調整するとき`,"help.model.howTo.1":`アクティブ CLI の横にあるモデルセレクターから選びます。`,"help.model.howTo.2":`チャットで /model <model-name> と入力しても変更できます。`,"help.model.example.1":`通常のコーディングは Sonnet、深いレビューが必要なときは Opus 系モデルを使います。`,"help.model.avoid.1":`CLI エンジン自体を変更する必要がある場合`,"help.model.related.1":`/model コマンド`,"help.effort.title":`推論強度`,"help.effort.aria":`推論強度ヘルプ`,"help.effort.intro":`対応モデルで、推論の深さと速度を調整します。`,"help.effort.effect":`対応モデルでは、応答速度と推論の深さのバランスが変わります。`,"help.effort.use.1":`深いコード分析や設計レビューにより多くの推論が必要なとき`,"help.effort.use.2":`小さな作業を速く終わらせたいとき`,"help.effort.howTo.1":`effort セレクターから low、medium、high などの値を選びます。`,"help.effort.howTo.2":`簡単な確認は低めに、複雑な実装前の検討は高めに設定します。`,"help.effort.example.1":`誤字修正は low、大きなリファクタリング計画は high にします。`,"help.effort.avoid.1":`現在のモデルが effort 設定を無視する場合`,"help.effort.related.1":`モデル対応状況`,"help.permissions.title":`権限`,"help.permissions.aria":`権限ヘルプ`,"help.permissions.intro":`Auto (YOLO) は自動承認や権限チェックの省略を要求するポリシーです。この選択欄では YOLO は Auto の表示名です。`,"help.permissions.effect":`自動承認の方法、ファイルアクセスの範囲、Safe の対応状況は CLI と通信方式によって異なります。`,"help.permissions.use.1":`ローカル自動化を毎回の確認なしで進めたいとき`,"help.permissions.use.2":`信頼できる作業ディレクトリで長いタスクを任せるとき`,"help.permissions.howTo.1":`Auto (YOLO) または Safe を選び、保存されたポリシーを確認します。`,"help.permissions.howTo.2":`承認が必要な場合は、使用するランタイムが Safe に対応しているか先に確認します。`,"help.permissions.example.1":`自動承認が必要な繰り返し作業では Auto (YOLO) を選びます。明示的な質問は引き続き表示される場合があります。`,"help.permissions.avoid.1":`ディレクトリやタスクが不慣れ、またはリスクを含む場合`,"help.permissions.related.1":`Auto (YOLO) / Safe — ランタイム別の対応状況`,"help.flushAgent.title":`Flush Agent 設定`,"help.flushAgent.aria":`Flush Agent ヘルプ`,"help.flushAgent.intro":`コンテキストの要約や flush に使う CLI とモデルを選びます。`,"help.flushAgent.effect":`compact や flush では、アクティブモデルではなく設定済みの要約用 Agent を使います。`,"help.flushAgent.use.1":`要約を速いモデル、または安定したモデルに任せたいとき`,"help.flushAgent.use.2":`アクティブモデルと要約モデルを分けたいとき`,"help.flushAgent.howTo.1":`Flush Agent 設定で、要約に使う CLI とモデルを選びます。`,"help.flushAgent.howTo.2":`長いセッションの前に /flush の流れと合わせておきます。`,"help.flushAgent.example.1":`主作業は Opus、コンテキスト整理は速い Sonnet に任せられます。`,"help.flushAgent.avoid.1":`アクティブ CLI とモデルで十分な場合`,"help.flushAgent.related.1":`/flush コマンド`,"help.employees.title":`従業員`,"help.employees.aria":`従業員ヘルプ`,"help.employees.intro":`従業員は、Boss が役割別の検証や分析を依頼できる独立した AI ワーカーです。`,"help.employees.effect":`Boss は、別の CLI セッションから監査や検証結果を受け取ります。`,"help.employees.use.1":`フロントエンド、バックエンド、ドキュメントのレビューを独立して走らせたいとき`,"help.employees.use.2":`PABCD A/B で読み取り専用の検証が必要なとき`,"help.employees.use.3":`長いレビューをメインスレッドから分離したいとき`,"help.employees.howTo.1":`/employee reset — ディスクから従業員設定を再読み込みします。`,"help.employees.howTo.2":`従業員のディスパッチ: cli-jaw dispatch --agent "Name" --task "..."。`,"help.employees.howTo.3":`PABCD A/Bでは従業員はデフォルトで読み取り専用の監査/検証のみ実行します。`,"help.employees.howTo.4":`--mutableフラグを使用すると従業員がファイルを変更できます。`,"help.employees.example.1":`Boss が実装している間、Backend に import とテストリスクだけを監査させます。`,"help.employees.avoid.1":`単純なファイル確認`,"help.employees.avoid.2":`小さな単一ファイル編集`,"help.employees.avoid.3":`直接回答できる質問`,"help.employees.related.1":`cli-jaw dispatch コマンド`,"help.employees.related.2":`PABCD A/B フェーズ`,"help.skills.title":`スキル`,"help.skills.aria":`スキルヘルプ`,"help.skills.intro":`スキルは、特定の作業フロー向けの指示パックです。`,"help.skills.effect":`Agent は、作業に応じた手順、ツール、検証ルールを受け取ります。`,"help.skills.use.1":`ブラウザ操作、GitHub、PDF、文書、テストなどの専用ワークフローが必要なとき`,"help.skills.use.2":`繰り返しのワークフローを安定して実行したいとき`,"help.skills.howTo.1":`/skill — インストール済みのアクティブスキル一覧を表示します。`,"help.skills.howTo.2":`/skill list — アクティブスキルと参照可能スキルを全て表示します。`,"help.skills.howTo.3":`/skill reset — ディスクから全スキルを再読み込みします。`,"help.skills.howTo.4":`タスクを説明すると、エージェントが自動でマッチするスキルを選択します。`,"help.skills.example.1":`PDF 分析には jaw-pdf スキル、フロントエンド実装には jaw-dev-frontend ガイドを使います。`,"help.skills.avoid.1":`通常のチャット回答で十分な場合`,"help.skills.related.1":`/skill コマンド`,"help.activeChannel.title":`アクティブチャンネル`,"help.activeChannel.aria":`アクティブチャンネルヘルプ`,"help.activeChannel.intro":`チャンネル出力をどのサービスへ送るかを選びます。`,"help.activeChannel.effect":`ファイル配信、通知、スケジュールジョブの結果は、選択したチャンネルへ送られます。`,"help.activeChannel.use.1":`運用出力を Telegram と Discord の間で切り替えるとき`,"help.activeChannel.use.2":`外部通知の宛先が変わるとき`,"help.activeChannel.howTo.1":`チャンネル設定で Telegram または Discord を選びます。`,"help.activeChannel.howTo.2":`ファイルや通知を送る作業の前に、現在のチャンネルを確認します。`,"help.activeChannel.example.1":`文書ファイルは Telegram、チーム通知は Discord チャンネルで受け取れます。`,"help.activeChannel.avoid.1":`転送のオン/オフだけを変更したい場合`,"help.activeChannel.related.1":`Telegram / Discord 設定`,"help.telegram.title":`Telegram 設定`,"help.telegram.aria":`Telegram ヘルプ`,"help.telegram.intro":`Telegram bot 接続、許可チャット、mention-only モード、転送を管理します。`,"help.telegram.effect":`許可された Telegram チャットで、メッセージ、ファイル、音声入力、タスク結果をやり取りできます。`,"help.telegram.use.1":`Telegram で cli-jaw の更新を受け取りたいとき`,"help.telegram.use.2":`Web の応答を Telegram に転送したいとき`,"help.telegram.link.botfather":`BotFatherでbot作成`,"help.telegram.link.docs":`Telegram Bot APIガイド`,"help.telegram.howTo.1":`Telegram アプリで @BotFather を検索して会話を開始します。`,"help.telegram.howTo.2":`/newbot を送信すると bot 名を聞かれます。表示名を入力してください(例: "Jaw Bot")。`,"help.telegram.howTo.3":`次にユーザー名を入力します。必ず _bot で終わる必要があります(例: jaw_helper_bot)。`,"help.telegram.howTo.4":`成功すると BotFather が HTTP API token を送ってきます(1234567890:ABCdef... 形式)。これをコピーしてください。`,"help.telegram.howTo.5":`~/.cli-jaw/settings.json を開き、telegram.token にコピーした token を貼り付けます。`,"help.telegram.howTo.6":`Telegram で作成した bot を検索 →「開始」をタップするか、何かメッセージ(例: "hello")を送ります。`,"help.telegram.howTo.7":`ターミナルで jaw doctor を実行すると、送信したチャットの chat ID(数字)が表示されます。`,"help.telegram.howTo.8":`settings.json の telegram.allowedChatIds 配列にその chat ID を追加すれば設定完了!`,"help.telegram.example.1":`Web から離れていても、長時間タスクの完了ファイルを Telegram で受け取れます。`,"help.telegram.avoid.1":`Discord が現在の運用チャンネルである場合`,"help.telegram.related.1":`/forward コマンド`,"help.telegram.related.2":`許可する chat ID`,"help.discord.title":`Discord 設定`,"help.discord.aria":`Discord ヘルプ`,"help.discord.intro":`Discord の guild/channel ルーティングとメンション動作を管理します。`,"help.discord.effect":`コマンド、ファイル、従業員結果は、設定した guild と channel に制限されます。`,"help.discord.use.1":`サーバーチャンネルでスラッシュコマンド中心に運用するとき`,"help.discord.use.2":`出力先を特定の guild や channel に制限したいとき`,"help.discord.link.portal":`Discord Developer Portalを開く`,"help.discord.link.docs":`Discord botスタートガイド`,"help.discord.howTo.1":`discord.com/developers/applications にアクセスし、Discord アカウントでログインします。`,"help.discord.howTo.2":`右上の「New Application」をクリック → アプリ名を入力(例: "Jaw Bot")→ Create。`,"help.discord.howTo.3":`左メニュー「Bot」タブ →「Reset Token」をクリック → bot token をコピーします。(一度しか表示されないのですぐ保存!)`,"help.discord.howTo.4":`同じ Bot ページ下部「Privileged Gateway Intents」→ MESSAGE CONTENT INTENT を有効にします。(これがないとメッセージを読めません!)`,"help.discord.howTo.5":`左メニュー「OAuth2」→「URL Generator」に移動します。`,"help.discord.howTo.6":`SCOPES で bot と applications.commands をチェック。下の BOT PERMISSIONS で Send Messages、Read Message History などを選択します。`,"help.discord.howTo.7":`ページ下部に生成された招待 URL をコピー → ブラウザに貼り付け → bot を追加するサーバーを選択します。`,"help.discord.howTo.8":`~/.cli-jaw/settings.json に discord.token、guildId(サーバー ID)、channelId(チャンネル ID)を入力します。`,"help.discord.howTo.9":`ターミナルで jaw doctor を実行して bot 接続と権限が正常か確認すれば完了!`,"help.discord.example.1":`従業員の検証結果を 1 つのプロジェクトチャンネルに集約できます。`,"help.discord.avoid.1":`DM での配信を期待している場合`,"help.discord.related.1":`jaw doctor コマンド`,"help.discord.related.2":`Discord degraded mode の説明`,"help.slack.title":`Slack`,"help.slack.aria":`Slack ヘルプ`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`下のガイドカードの「マニフェストをコピー」を押し、api.slack.com/apps → Create New App → From a manifest に貼り付けてアプリを作成します。`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback 設定`,"help.fallbackOrder.aria":`Fallback ヘルプ`,"help.fallbackOrder.intro":`現在の CLI が失敗または利用不可になったとき、どの CLI を試すかの順序を設定します。`,"help.fallbackOrder.effect":`provider 障害やクォータ問題による中断を減らすため、他の CLI を順番に試します。`,"help.fallbackOrder.use.1":`provider が過負荷で、自動バックアップを使いたいとき`,"help.fallbackOrder.use.2":`長いジョブを provider 障害で止まりにくくしたいとき`,"help.fallbackOrder.howTo.1":`Fallback 設定で再試行順序を設定します。`,"help.fallbackOrder.howTo.2":`原因調査中は fallback を無効化するか、順序を単純にします。`,"help.fallbackOrder.example.1":`Claude が過負荷なら、設定順に Codex や Gemini で続行できます。`,"help.fallbackOrder.avoid.1":`失敗時にすぐ止めてデバッグしたい場合`,"help.fallbackOrder.related.1":`/fallback コマンド`,"help.mcp.title":`MCP サーバー`,"help.mcp.aria":`MCP ヘルプ`,"help.mcp.intro":`MCP サーバーは、Agent を外部ツールやリソースに接続します。`,"help.mcp.effect":`インストール済みサーバーは、Claude、Codex、Gemini などの CLI のツール一覧へ同期されます。`,"help.mcp.use.1":`タスクに外部アプリ、データ、ツールへのアクセスが必要なとき`,"help.mcp.use.2":`同じツール設定を複数 CLI に同期したいとき`,"help.mcp.howTo.1":`/mcp — 接続済みMCPサーバーとツール一覧を表示します。`,"help.mcp.howTo.2":`/mcp sync — MCPサーバーをアクティブCLIと再同期します。`,"help.mcp.howTo.3":`/mcp install — レジストリから新しいMCPサーバーをインストールします。`,"help.mcp.howTo.4":`MCP設定パネル(⚙️)でサーバーの追加・編集・削除ができます。`,"help.mcp.example.1":`filesystem MCP を追加すると、Agent が許可フォルダを安定して確認できます。`,"help.mcp.avoid.1":`ローカルファイルと組み込みツールだけで十分な場合`,"help.mcp.related.1":`/mcp コマンド`,"help.memory.title":`メモリ`,"help.memory.aria":`メモリヘルプ`,"help.memory.intro":`長期的なプロジェクト事実、ユーザー設定、コンテキストを保存します。`,"help.memory.effect":`保存した判断や設定は、後続セッションや compact 後に検索して再注入できます。`,"help.memory.use.1":`判断や設定を今後のセッションにも残したいとき`,"help.memory.use.2":`長いプロジェクトで安定した文脈を維持したいとき`,"help.memory.howTo.1":`/memory — 保存済みメモリエントリ一覧を表示します。`,"help.memory.howTo.2":`/memory <クエリ> — キーワードでメモリを検索します。`,"help.memory.howTo.3":`メモリはmemory/ディレクトリの構造化ファイルに保存されます。`,"help.memory.howTo.4":`長期的な判断と好みを保存し、一時的なチェックリストやログは保存しないでください。`,"help.memory.example.1":`「このプロジェクトは vanilla JS のままにする」は保存し、「今日テストが 3 件残っている」は保存しません。`,"help.memory.avoid.1":`一時的なチェックリストや生ログを保存しようとしている場合`,"help.memory.related.1":`/memory コマンド`,"help.memory.related.2":`flush / bootstrap の流れ`,"help.stt.title":`音声認識`,"help.stt.aria":`音声認識ヘルプ`,"help.stt.intro":`ブラウザの音声入力をテキスト化する設定です。`,"help.stt.effect":`音声ボタンで録音した内容は、選択した STT エンジンでチャットテキストに変換されます。`,"help.stt.use.1":`長い指示を音声で入力したいとき`,"help.stt.use.2":`Gemini、OpenAI、Whisper STT のいずれかを選びたいとき`,"help.stt.howTo.1":`STT provider を選び、必要な API key を設定します。`,"help.stt.howTo.2":`音声ボタンを押して録音し、変換されたテキストを確認します。`,"help.stt.example.1":`長い会議メモを音声で入力し、Agent に要約させられます。`,"help.stt.avoid.1":`テキスト入力で十分、または API key が未設定の場合`,"help.stt.related.1":`音声ボタン`,"help.promptTemplates.title":`プロンプトテンプレート`,"help.promptTemplates.aria":`プロンプトテンプレートヘルプ`,"help.promptTemplates.intro":`よく使うプロンプトブロックを再利用できる形で保存します。`,"help.promptTemplates.effect":`選択したテンプレートは、新しいリクエストの繰り返し指示として挿入されます。`,"help.promptTemplates.use.1":`繰り返しの指示を一貫させたいとき`,"help.promptTemplates.use.2":`長い準備指示を毎回書き直したくないとき`,"help.promptTemplates.howTo.1":`プロンプトテンプレートモーダルでテンプレートを作成して保存します。`,"help.promptTemplates.howTo.2":`繰り返しワークフローの前にテンプレートを選びます。`,"help.promptTemplates.example.1":`同じコードレビュー用チェックリストを保存して、毎回入力し直さずに使います。`,"help.promptTemplates.avoid.1":`短い一度きりの指示をチャットで書くほうが明確な場合`,"help.promptTemplates.related.1":`プロンプトテンプレートモーダル`,"help.chatInput.title":`チャット入力`,"help.chatInput.aria":`チャット入力ヘルプ`,"help.chatComposer.aria":`チャット入力とキーボードショートカットのヘルプ`,"help.chatInput.intro":`作業指示、スラッシュコマンド、添付ファイルを送る基本入力欄です。`,"help.chatInput.effect":`送信内容は現在の CLI と設定で処理され、添付ファイルも同じリクエストに含まれます。`,"help.chatInput.use.1":`新しい作業を始める、または現在の作業を続けるとき`,"help.chatInput.use.2":`/help や /pabcd などのスラッシュコマンドを使うとき`,"help.chatInput.use.3":`テキストとファイルを一緒に送りたいとき`,"help.chatInput.howTo.1":`メッセージを入力し、Send または対応する送信ショートカットを使います。`,"help.chatInput.howTo.2":`添付ボタンまたはドラッグ&ドロップでファイルを追加してから送信します。`,"help.chatInput.example.1":`「この diff をレビューして」と書き、関連ファイルを添付します。`,"help.chatInput.avoid.1":`コマンドだけ実行する場合は曖昧な文章よりスラッシュコマンドが安全です。`,"help.chatInput.avoid.2":`秘密鍵やトークンの原文を直接貼り付けないでください。`,"help.chatInput.related.1":`添付ファイル`,"help.chatInput.related.2":`キーボードショートカット`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD ヘルプ`,"help.orchestration.intro":`PABCD は、計画、監査、実装、確認、完了を分けて進める作業フローです。`,"help.orchestration.effect":`各フェーズの役割を分けることで、大きな変更を安全に進められます。`,"help.orchestration.use.1":`複数ファイルや複数機能にまたがる作業を始めるとき`,"help.orchestration.use.2":`従業員監査や実装検証が必要なとき`,"help.orchestration.use.3":`コード変更前に計画を合意したいとき`,"help.orchestration.howTo.1":`/orchestrate I — インタビューモードに入り要件を整理します。`,"help.orchestration.howTo.2":`/orchestrate P — プランニングモードに入りプランを作成します。`,"help.orchestration.howTo.3":`/orchestrate A — 監査モードに入りプランをレビューします。`,"help.orchestration.howTo.4":`/orchestrate B — ビルドモードに入り実装します。`,"help.orchestration.howTo.5":`/orchestrate C — チェックモードに入り最終検証します。`,"help.orchestration.howTo.6":`/orchestrate D — 完了モードに入りIDLEに戻ります。`,"help.orchestration.howTo.7":`/orchestrate status — 現在のPABCDフェーズを表示します。`,"help.orchestration.howTo.8":`/orchestrate reset — 任意のフェーズからIDLEに戻ります。`,"help.orchestration.example.1":`P で計画し、A で監査し、B で実装します。`,"help.orchestration.avoid.1":`一行回答や単純な状態確認で十分な場合`,"help.orchestration.avoid.2":`緊急作業はまず範囲を小さくしてください。`,"help.orchestration.related.1":`従業員`,"help.orchestration.related.2":`キーボードショートカット`,"help.attachments.title":`添付ファイル`,"help.attachments.aria":`添付ファイルヘルプ`,"help.attachments.intro":`画像、文書、ログ、コードファイルを現在のメッセージと一緒に送る領域です。`,"help.attachments.effect":`添付ファイルはリクエスト文脈に入り、Agent が読み取りや分析に使えます。`,"help.attachments.use.1":`スクリーンショットやエラーログで問題を説明するとき`,"help.attachments.use.2":`文書やコードファイルを直接レビューさせるとき`,"help.attachments.use.3":`関連ファイルをまとめて送るとき`,"help.attachments.howTo.1":`添付ボタンを使うか、チャット領域にファイルをドロップします。`,"help.attachments.howTo.2":`送信前にプレビューで不要なファイルを削除します。`,"help.attachments.example.1":`エラー画面とログファイルを一緒に送り、原因調査を依頼します。`,"help.attachments.avoid.1":`認証情報やトークンを含むファイルは添付しないでください。`,"help.attachments.avoid.2":`関係ない大きなファイルは分析品質を下げることがあります。`,"help.attachments.related.1":`チャット入力`,"help.attachments.related.2":`メモリ`,"help.diagrams.title":`ダイアグラム`,"help.diagrams.aria":`ダイアグラムヘルプ`,"help.diagrams.intro":`回答内の SVG、Mermaid、インタラクティブ図をそのまま表示する機能です。`,"help.diagrams.effect":`複雑な流れ、構造、比較を文章だけより早く把握できます。`,"help.diagrams.use.1":`ファイル変更マップやシステムフローを見たいとき`,"help.diagrams.use.2":`PABCD 計画や監査結果を一目で整理したいとき`,"help.diagrams.use.3":`表示された図を拡大またはコピーしたいとき`,"help.diagrams.howTo.1":`利用できる場合は図のボタンで拡大、コピー、保存を行います。`,"help.diagrams.howTo.2":`文字ずれや線が見えない場合はレンダリング問題として報告してください。`,"help.diagrams.example.1":`作業範囲を箱と矢印で示すよう依頼します。`,"help.diagrams.avoid.1":`正確な原文や長いコードはテキストのほうが明確です。`,"help.diagrams.avoid.2":`秘密情報が見える画面をそのまま図にしないでください。`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`添付ファイル`,"help.keyboardShortcuts.title":`キーボードショートカット`,"help.keyboardShortcuts.aria":`キーボードショートカットヘルプ`,"help.keyboardShortcuts.intro":`クリックを減らすための Jaw UI とブラウザショートカットの案内です。`,"help.keyboardShortcuts.effect":`入力、音声、ヘルプ、ダッシュボード移動をキーボードで素早く実行できます。`,"help.keyboardShortcuts.use.1":`マウスなしでよく使う操作を実行したいとき`,"help.keyboardShortcuts.use.2":`ショートカットが入力を邪魔しないか確認したいとき`,"help.keyboardShortcuts.use.3":`Manager dashboard のショートカット設定を探しているとき`,"help.keyboardShortcuts.howTo.1":`Classic Web: チャット入力では Enter で送信し、Shift+Enter で改行します。スラッシュコマンドは同じ入力欄で / から始めます。STT 録音は Ctrl+Shift+Space または Alt/Option+M で切り替えます。`,"help.keyboardShortcuts.howTo.2":`Manager: エディタ外では ? でショートカットヘルプを開き、Alt+I、Alt+P、Alt+N で Instances、active Preview、Notes へ移動し、Alt+K と Alt+J で前後のインスタンスを選択します。`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S で保存、Cmd/Ctrl+E で Raw/Preview/WYSIWYG を切り替え、Cmd/Ctrl+Shift+F でノート検索、Cmd/Ctrl+P で quick switcher、Cmd/Ctrl+Delete または Cmd/Ctrl+Backspace で選択中のノートやフォルダをゴミ箱へ移動します。`,"help.keyboardShortcuts.example.1":`チャット入力で Enter を押すと送信し、改行したいときは Shift+Enter を使います。`,"help.keyboardShortcuts.example.2":`Manager で入力欄やエディタにフォーカスがない状態で ? を押すと、このショートカットヘルプを開きます。`,"help.keyboardShortcuts.avoid.1":`ブラウザ既定ショートカットと衝突する場合は別の組み合わせに変更します。`,"help.keyboardShortcuts.avoid.2":`グローバルショートカットは編集中の入力を上書きしません。`,"help.keyboardShortcuts.related.1":`チャット入力`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`セッションヘルプ`,"help.session.title":`セッション`,"help.session.intro":`チャットセッションの管理 — 新規作成、切り替え、会話のクリア、ワークスペースのリセットなど。`,"help.session.effect":`セッションコマンドは現在の会話状態のみを操作し、AIエージェントの設定には影響しません。`,"help.session.use.1":`/newで新しい会話を開始`,"help.session.use.2":`複数のチャットセッション間の切り替え`,"help.session.use.3":`/clearまたは/compactで会話履歴を整理`,"help.session.howTo.1":`/new [ラベル] — オプションのラベル付きで新規チャットセッションを作成します。`,"help.session.howTo.2":`/switch <番号> — セッション番号で切り替えます。エイリアス: /sw`,"help.session.howTo.3":`/sessions — 全セッション一覧を表示します。エイリアス: /ss`,"help.session.howTo.4":`/clear — 現在のチャット画面をクリアします。`,"help.session.howTo.5":`/clear all — 画面と全会話履歴をクリアします。`,"help.session.howTo.6":`/compact [指示] — 会話コンテキストを圧縮してトークンを節約します。`,"help.session.howTo.7":`/purge — 会話と構造化メモリを全て削除します。`,"help.session.howTo.8":`/reset confirm — ワークスペース全体をリセット(設定は保持)。`,"help.session.example.1":`/new code-review — コードレビュー用のラベル付きセッションを作成します。`,"help.session.avoid.1":`チャットのみクリアする場合は/clear、完全リセットが必要な場合のみ/resetを使用。`,"help.session.related.1":`チャット入力`,"help.session.related.2":`キーボードショートカット`,"help.cliTools.aria":`CLIツールヘルプ`,"help.cliTools.title":`CLIツール`,"help.cliTools.intro":`バージョン確認、プロジェクト管理、システムプロンプト表示、IDE連携などのユーティリティコマンド。`,"help.cliTools.effect":`情報の表示や開発ツール連携の設定を行います。`,"help.cliTools.use.1":`/versionで現在のjawバージョンを確認`,"help.cliTools.use.2":`/projectで作業ディレクトリを設定`,"help.cliTools.use.3":`/promptでシステムプロンプト全文を表示`,"help.cliTools.howTo.1":`/version — jawバージョンとアクティブCLIのステータスを表示します。`,"help.cliTools.howTo.2":`/project set <パス...> — プロジェクトワークスペースディレクトリを設定します。`,"help.cliTools.howTo.3":`/project list — 現在設定されているプロジェクトパスを表示します。`,"help.cliTools.howTo.4":`/project reset — プロジェクトディレクトリをデフォルトにリセットします。`,"help.cliTools.howTo.5":`/prompt — AIに送信される完全なシステムプロンプトを表示します。`,"help.cliTools.howTo.6":`/ide [pop|on|off] — IDE diffビューを切り替えます(CLI専用)。`,"help.cliTools.example.1":`/project set ~/my-repo — アクティブなプロジェクトディレクトリを設定します。`,"help.cliTools.avoid.1":`IDEコマンドはCLIモードでのみ動作し、Web UIでは使用不可。`,"help.cliTools.related.1":`アクティブCLI`,"help.cliTools.related.2":`モデル`,"help.agentControl.aria":`エージェント制御ヘルプ`,"help.agentControl.title":`エージェント制御`,"help.agentControl.intro":`AIエージェントの動作を制御 — メッセージ転送、思考表示、フラッシュモデル設定など。`,"help.agentControl.effect":`現在のセッションのエージェントランタイム動作を変更します。`,"help.agentControl.use.1":`/forwardでチャンネル間メッセージ転送を切り替え`,"help.agentControl.use.2":`/thoughtでGeminiの思考プロセスの表示/非表示`,"help.agentControl.use.3":`/flushでコンテキスト管理用フラッシュモデルを設定`,"help.agentControl.howTo.1":`/forward [on|off] — アクティブチャンネルへのメッセージ転送を切り替えます。`,"help.agentControl.howTo.2":`/thought [on|off] — Geminiの思考プロセスの表示/非表示。`,"help.agentControl.howTo.3":`/flush <cli> <model> — コンテキスト圧縮用フラッシュモデルを設定します。`,"help.agentControl.howTo.4":`/flush off — フラッシュモデルを無効化します。`,"help.agentControl.howTo.5":`/steer <プロンプト> — 実行中のエージェントを中断し方向を変更します。`,"help.agentControl.howTo.6":`/status — CLI、モデル、チャンネル、エージェントの現在の状態を表示します。`,"help.agentControl.example.1":`/forward on — アクティブチャンネルへのメッセージ転送を有効にします。`,"help.agentControl.avoid.1":`エージェント作業中に転送を切り替えないでください。`,"help.agentControl.related.1":`モデル`,"help.agentControl.related.2":`フラッシュエージェント`,"help.goals.aria":`目標ヘルプ`,"help.goals.title":`目標と計画`,"help.goals.intro":`永続的な目標と構造化された計画ワークフロー — 目標設定、PABCDオーケストレーション、要件インタビュー、マルチセッション作業管理。`,"help.goals.effect":`目標・計画コマンドはセッション間で持続する状態を作成し、AIを構造化された開発フェーズに導きます。`,"help.goals.use.1":`/goalで永続的な開発目標を設定`,"help.goals.use.2":`/planまたは/orchestrateでPABCD構造化計画を実行`,"help.goals.use.3":`/interviewで不明確な要件を整理`,"help.goals.howTo.1":`/goal <目標> — 新しい永続的な開発目標を設定します。`,"help.goals.howTo.2":`/goal status — 現在の目標と進捗チェックポイントを表示します。`,"help.goals.howTo.3":`/goal run — アクティブな目標の作業を再開します。`,"help.goals.howTo.4":`/goal plan [ヒント] — AI主導の目標計画。エイリアス: /goalplan`,"help.goals.howTo.5":`/goal done — 現在の目標を完了としてマークします。`,"help.goals.howTo.6":`/goal cancel — アクティブな目標をキャンセルします。`,"help.goals.howTo.7":`/goal pause / resume — 目標を手動で一時停止/再開します。`,"help.goals.howTo.8":`/goal history — 完了/キャンセルされた目標の履歴を表示します。`,"help.goals.howTo.9":`/plan [リクエスト|status|copy] — PABCD計画の説明または開始。`,"help.goals.howTo.10":`/interview <リクエスト> — 計画前に要件を整理します。`,"help.goals.example.1":`/goal ユーザー認証の実装 — AIがセッション間で継続的に取り組む目標を設定します。`,"help.goals.avoid.1":`曖昧な目標は避けてください — 具体的に何を作るか明示。`,"help.goals.related.1":`オーケストレーション`,"help.goals.related.2":`従業員`,"help.section.commands":`コマンドリファレンス`,"help.session.subcmd.1":`/new [ラベル] — オプションのラベル付きで新しいチャットセッションを開始します`,"help.session.subcmd.2":`/switch <番号> — セッション番号で切り替えます(エイリアス: /sw, /<番号>)`,"help.session.subcmd.3":`/sessions — 全セッション一覧を表示します(エイリアス: /ss)`,"help.session.subcmd.4":`/clear — 現在のチャット画面をクリアします`,"help.session.subcmd.5":`/clear all — 画面と全会話履歴を削除します`,"help.session.subcmd.6":`/compact [指示] — 会話コンテキストを圧縮してトークンを節約します`,"help.session.subcmd.7":`/purge — 会話と構造化メモリを全て削除します`,"help.session.subcmd.8":`/reset confirm — ワークスペース全体をリセットします(設定は保持)`,"help.session.subcmd.9":`/quit — プロセスを終了します(エイリアス: /q, /exit; CLI専用)`,"help.orchestration.subcmd.1":`/orchestrate I — インタビューモードに入り要件を整理します`,"help.orchestration.subcmd.2":`/orchestrate P — 計画モードに入りプランを作成します`,"help.orchestration.subcmd.3":`/orchestrate A — 監査モードに入りプランをレビューします`,"help.orchestration.subcmd.4":`/orchestrate B — ビルドモードに入り実装します`,"help.orchestration.subcmd.5":`/orchestrate C — チェックモードに入り最終検証します`,"help.orchestration.subcmd.6":`/orchestrate D — 完了モードに入りIDLEに復帰します`,"help.orchestration.subcmd.7":`/orchestrate status — 現在のPABCDフェーズを表示します`,"help.orchestration.subcmd.8":`/orchestrate reset — 任意のフェーズからIDLEに復帰します(エイリアス: /pabcd)`,"help.goals.subcmd.1":`/goal <目標> — 新しい永続目標を設定します`,"help.goals.subcmd.2":`/goal plan [ヒント] — AI駆動の目標計画を実行します`,"help.goals.subcmd.3":`/goal status — アクティブな目標の状態を表示します`,"help.goals.subcmd.4":`/goal run — 目標の実行を継続します`,"help.goals.subcmd.5":`/goal done [メモ] — 目標を完了としてマークします`,"help.goals.subcmd.6":`/goal cancel [理由] — アクティブな目標をキャンセルします`,"help.goals.subcmd.7":`/goal pause — アクティブな目標を一時停止します`,"help.goals.subcmd.8":`/goal resume — 一時停止した目標を再開します`,"help.goals.subcmd.9":`/goal clear — 目標データを初期化します`,"help.goals.subcmd.10":`/goal reset — 目標の状態をリセットします`,"help.goals.subcmd.11":`/goal history — 完了した目標の履歴を表示します`,"help.goals.subcmd.12":`/goalplan [ヒント] — /goal planのエイリアスです`,"help.goals.subcmd.13":`/plan [リクエスト] — 構造化されたPABCD計画を作成します`,"help.goals.subcmd.14":`/plan status — 現在の計画状態を表示します`,"help.goals.subcmd.15":`/plan copy — 計画内容をクリップボードにコピーします`,"help.goals.subcmd.16":`/interview <リクエスト> — 構造的に要件を整理します`,"help.goals.subcmd.17":`/deliberate <リクエスト> — 計画者、設計者、批評家の役割で審議します`,"help.goals.subcmd.18":`/planaudit [計画] — 読み取り専用の従業員監査タスクを作成します`,"help.goals.subcmd.19":`/team plan <目標> — 並列チーム計画を開始します`,"help.goals.subcmd.20":`/team audit — チーム監査を実行します`,"help.goals.subcmd.21":`/team status — チーム実行状態を表示します`,"help.goals.subcmd.22":`/team collect — チームの結果を収集します`,"help.goals.subcmd.23":`/team stop — チーム実行を停止します`,"help.goals.subcmd.24":`/goal refine <目標> — AIが選択したplan-mode目標を確定します`,"help.goals.subcmd.25":`/gd [メモ] — アクティブな目標を強制完了します。/goal done --forceのエイリアスです`,"help.activeCli.subcmd.1":`/cli — 現在のアクティブCLIを表示します`,"help.activeCli.subcmd.2":`/cli <名前> — CLIエンジンを切り替えます(claude, codex, gemini等)`,"help.activeCli.subcmd.3":`/status — システム全体の状態を表示します`,"help.model.subcmd.1":`/model — 現在のモデルを表示します`,"help.model.subcmd.2":`/model <名前> — アクティブCLIのモデルを変更します`,"help.skills.subcmd.1":`/skill — インストール済みのアクティブスキル一覧を表示します`,"help.skills.subcmd.2":`/skill list — アクティブ+参照可能な全スキルを表示します`,"help.skills.subcmd.3":`/skill reset — ディスクから全スキルを再読み込みします`,"help.employees.subcmd.1":`/employee — 登録済みの従業員一覧を表示します`,"help.employees.subcmd.2":`/employee sessions-reset — 保存済み従業員 resume セッションのみクリアします`,"help.mcp.subcmd.1":`/mcp — MCPサーバー一覧を表示します`,"help.mcp.subcmd.2":`/mcp sync — MCPツールを同期します`,"help.mcp.subcmd.3":`/mcp install — MCPサーバーをインストールします`,"help.mcp.subcmd.4":`/browser status — ブラウザ接続状態を表示します`,"help.mcp.subcmd.5":`/browser tabs — 開いているタブ一覧を表示します`,"help.memory.subcmd.1":`/memory — メモリ概要を表示します`,"help.memory.subcmd.2":`/memory <検索語> — 保存されたメモリを検索します`,"help.flushAgent.subcmd.1":`/flush — 現在のフラッシュ設定を表示します`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 指定CLIのフラッシュモデルを設定します`,"help.flushAgent.subcmd.3":`/flush off — フラッシュモデルを無効にします`,"help.fallbackOrder.subcmd.1":`/fallback — 現在のフォールバック順序を表示します`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — フォールバックCLI順序を設定します`,"help.fallbackOrder.subcmd.3":`/fallback off — フォールバックを無効にします`,"help.agentControl.subcmd.1":`/forward on — アクティブチャンネルへのメッセージ転送を有効にします`,"help.agentControl.subcmd.2":`/forward off — メッセージ転送を無効にします`,"help.agentControl.subcmd.3":`/thought on — Geminiの思考プロセスを表示します`,"help.agentControl.subcmd.4":`/thought off — Geminiの思考プロセスを非表示にします`,"help.agentControl.subcmd.5":`/steer <プロンプト> — 実行中のエージェントを中断し方向を変更します`,"help.agentControl.subcmd.6":`/status — CLI、モデル、チャンネル、エージェントの状態を表示します`,"help.cliTools.subcmd.1":`/version — jawバージョンとアクティブCLI状態を表示します`,"help.cliTools.subcmd.2":`/project set <パス...> — プロジェクトワークスペースディレクトリを設定します`,"help.cliTools.subcmd.3":`/project list — 現在のプロジェクトパスを表示します`,"help.cliTools.subcmd.4":`/project reset — プロジェクトディレクトリをデフォルトにリセットします`,"help.cliTools.subcmd.5":`/project clear — プロジェクトディレクトリ設定を初期化します`,"help.cliTools.subcmd.6":`/prompt — AIに送信される全システムプロンプトを表示します`,"help.cliTools.subcmd.7":`/ide pop — IDE diffビューをポップアップで開きます(CLI専用)`,"help.cliTools.subcmd.8":`/ide on — IDE diffビューを有効にします(CLI専用)`,"help.cliTools.subcmd.9":`/ide off — IDE diffビューを無効にします(CLI専用)`,"help.keyboardShortcuts.subcmd.1":`/help — 全コマンド一覧を表示します`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 特定コマンドの詳細ヘルプを表示します`,"help.keyboardShortcuts.subcmd.3":`/commands — コマンドパレットを開きます(エイリアス: /cmd)`,"bgtask.title":`バックグラウンド`,"tg.elicitationExpired":`選択セッションの有効期限が切れました。テキストで返信してください。`,"settings.slack.guide.step1Title":`Slack アプリを作成`,"settings.slack.guide.openApps":`アプリページを開く`,"settings.slack.guide.step2Title":`ボットトークンを貼り付け`,"settings.slack.guide.step3Title":`受信用アプリトークン(任意)`,"settings.slack.guide.step3Desc":`空のままなら送信専用(outbound-only)で動作します`,"settings.slack.guide.botTokenError":`xoxb- で始まるボットトークンが必要です — アプリトークンと入れ替わっていませんか?`,"settings.slack.guide.appTokenError":`xapp- で始まるアプリレベルトークンが必要です — ボットトークンと入れ替わっていませんか?`,"settings.slack.advanced":`詳細設定`,"settings.slack.resetConnection":`接続をリセット`,"settings.slack.resetConfirm":`Slack アプリの接続がリセットされます。続行しますか?`,"settings.slack.resetEmpty":`接続されている Slack アプリはありません。`,"settings.slack.resetFailed":`Slack アプリの接続をリセットできませんでした。もう一度お試しください。`,"settings.slack.resetManagedByEnvironment":`この Slack 接続は環境変数({variables})で管理されています。環境変数を削除して cli-jaw を再起動してから、接続をリセットしてください。`,"settings.slack.managedByEnvironment":`接続設定は環境変数({variables})で管理されているため読み取り専用です。ここで編集するには環境変数を削除し、cli-jaw を再起動してください。`,"settings.slack.attachPort":`接続インスタンスのポート`,"settings.channel.notAttachInstanceHint":`別のインスタンスがこの Slack 接続を所有しています(接続インスタンスのポートを確認)`,"settings.slack.guide.step2Desc":`アプリ設定 → OAuth & Permissions → files:read を確認 → Reinstall to Workspace → Bot User OAuth Token をコピー`,"settings.slack.guide.step3Location":`アプリ設定 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`情報を収集中...`,"slack.progress.working":`作業中`,"slack.files.partialFailure":`⚠️ 一部の添付ファイルを除外しました:`,"slack.files.allFailure":`⚠️ 添付ファイルを処理できなかったため、リクエストを実行しませんでした:`,"slack.files.limit":`ファイルは1件50 MiB、メッセージあたり10件・100 MiBまでです。`,"slack.files.error.external_file_unsupported":`Slack 外部ファイルには対応していません`,"slack.files.error.private_network":`安全でないダウンロード先です`,"slack.files.error.redirect_limit":`リダイレクト上限を超えました`,"slack.files.error.size_exceeded":`ファイルサイズ上限を超えました`,"slack.files.error.message_budget_exceeded":`メッセージの添付容量上限を超えました`,"slack.files.error.missing_scope":`files:read を追加してアプリを再インストールしてください`,"slack.files.error.ingress_cancelled":`処理がキャンセルされました`,"slack.files.error.download_failed":`ファイルをダウンロードできませんでした`,"onboarding.open":`セットアップウィザード`,"onboarding.optional":`任意`,"onboarding.validate":`検証`,"onboarding.save":`保存`,"onboarding.close":`閉じる`,"onboarding.valid":`確認済み: {identity}`,"onboarding.title.telegram":`Telegram に接続`,"onboarding.title.discord":`Discord に接続`,"onboarding.title.slack":`Slack に接続`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`api.slack.com/apps で Create New App → From a manifest を選び、JSON タブにコピーしたマニフェストを貼り付け、アプリを追加するワークスペースを選択して作成してください。`,"onboarding.slackAppName":`アプリ名`,"onboarding.slackAppNameHint":`アプリ名を35文字以内で入力してください。ボット名はここから生成し、使用可能な半角英数字がない場合は cli-jaw になります。`,"onboarding.slackGenerateManifest":`マニフェストを生成`,"onboarding.slackManifestGenerating":`生成中...`,"onboarding.slackManifestReady":`コピーしました`,"onboarding.slackManifestCopiedWithBot":`マニフェストをコピーしました。ボット名: {bot}`,"onboarding.slackManifestError":`マニフェストを生成またはコピーできませんでした。もう一度お試しください。`,"onboarding.slackAppNameError":`アプリ名を1〜35文字で入力してください。`,"onboarding.warning.missingCapabilities":`任意の権限 {capabilities} がないため、その機能のみ無効です。権限を追加してアプリを再インストールしてください。テキストは引き続き利用できます。`,"onboarding.token.botToken":`ボットトークン`,"onboarding.token.appToken":`アプリレベルトークン`,"onboarding.token.guildId":`サーバー ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`次へ`,"onboarding.back":`戻る`,"onboarding.step.1":`1. 取得場所の確認`,"onboarding.step.2":`2. 取得した値を貼り付け`,"onboarding.step.3":`3. 接続の検証`,"onboarding.step.4":`4. 保存`,"onboarding.validating":`確認中...`,"onboarding.validateHint":`「検証」を押して実際の接続を確認してください。通過しないと保存に進めません。`,"onboarding.saveHint":`検証に成功しました。保存すると設定に反映され、チャンネルがすぐ接続されます。`,"onboarding.error.validation_required":`先に検証を通す必要があります。`,"onboarding.error.slack_setup_required":`マニフェストを生成し、発行ページを開いてから次へ進んでください。`,"onboarding.openIssuer":`発行ページを開く`,"onboarding.error.missing_scopes":`トークンは有効ですが、アプリの権限(スコープ)が不足しています。OAuth & Permissions で以下を追加し、アプリを再インストールしてください。`,"onboarding.hint.telegram.botToken":`@BotFather が /newbot の後に返した値です。`,"onboarding.hint.discord.botToken":`Bot タブの Reset Token で生成した値です。`,"onboarding.hint.discord.guildId":`開発者モードを有効にし、サーバーを右クリックして ID をコピー。`,"onboarding.hint.slack.botToken":`OAuth & Permissions の Bot User OAuth Token(xoxb- で始まる)。`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens(xapp-, connections:write)。`,"cmd.memory.embed.estimate":`埋め込み推定`,"cmd.memory.embed.status":`埋め込み状態`,"settings.channel.activeInbound":`受信チャンネル`,"settings.channel.configured":`設定済み`,"settings.channel.notConfigured":`未設定`,"settings.channel.sendCapable":`送信可能`,"settings.channel.sendOnlyHint":`受信チャンネルではありませんが、設定済みなら送信は可能です。`,"settings.channel.statusTitle":`送信状態`,"settings.channel.testSend":`テスト送信`,"settings.channel.testSendFail":`送信失敗: {error}`,"settings.channel.testSendOk":`送信成功`,"onboarding.progressLabel":`{total} ステップ中 {step} ステップ目`,"slack.progress.title":`リクエストの進捗`,"slack.progress.activityTitle":`最近の作業`,"slack.progress.deliveryTitle":`回答の送信`,"slack.progress.queued":`キューで待機中`,"slack.progress.running":`作業を観測中`,"slack.progress.waiting":`次の更新を待機中`,"slack.progress.delivering":`回答を送信中`,"slack.progress.complete":`作業の観測終了`,"slack.progress.workflowComplete":`ワークフローの応答が終了しました。実際の制作結果は別途確認が必要です。`,"slack.progress.unavailable":`活動の更新を表示できません。実行は継続している可能性があります。`,"slack.progress.error":`リクエスト失敗`,"slack.progress.cancelled":`リクエスト取消済み`,"slack.progress.expired":`進捗表示が終了しました。実行は続いている可能性があります。`,"slack.progress.merged":`別のリクエストと統合済み`,"slack.progress.removed":`リクエスト削除済み`,"slack.progress.restored":`以前の進捗表示が終了しました。実行結果は確認されていません。`,"slack.progress.failure":`応答を完了できませんでした。`,"slack.progress.elapsed":`経過: {seconds}秒`,"slack.progress.lastActivity":`最後の活動: {seconds}秒前`,"slack.progress.longRunning":`{minutes}分間実行中 — まだ進行中です`,"slack.progress.category.read":`ファイル読取`,"slack.progress.category.write":`ファイル編集`,"slack.progress.category.search":`検索`,"slack.progress.category.web":`ウェブページ読取`,"slack.progress.category.command":`コマンド実行`,"slack.progress.category.external":`外部ツール`,"slack.progress.category.tool":`ツール活動`,"slack.progress.status.observed":`観測済み`,"slack.progress.status.in_progress":`実行中`,"slack.progress.status.complete":`完了`,"slack.progress.status.error":`エラー`,"slack.progress.status.stopped":`停止`,"slack.progress.status.unconfirmed":`完了未確認`,"slack.progress.deliveryComplete":`回答を送信しました`,"slack.progress.deliveryFailed":`回答の送信を確認できませんでした`,"slack.progress.deliveryUnconfirmed":`回答の送信は未確認`,"slack.workflow.unavailable":`自動化の送信元・リクエスト情報、または指定された有効なスキルを確認できなかったため、実行しませんでした。設定を確認してください。`,"slack.workflow.unconfirmed":`登録されたワークフローから実質的な結果が返されませんでした。作業がすでに始まっている可能性があるため、再試行する前に記録を確認してください。`},A={"cmd.help.desc":`命令列表`,"cmd.status.desc":`当前状态`,"cmd.clear.desc":`删除对话 / all: 重置技能+员工+MCP`,"cmd.purge.desc":`删除对话和记忆`,"cmd.purge.tg_desc":`删除对话+记忆`,"cmd.reset.desc":`引导重置(对话/记忆/技能/员工/MCP)`,"cmd.model.desc":`查看/切换模型`,"cmd.cli.desc":`查看/切换当前 CLI`,"cmd.fallback.desc":`设置 CLI fallback 顺序`,"cmd.forward.desc":`开启/关闭 Telegram 自动转发`,"cmd.flush.desc":`查看/切换 flush 模型`,"cmd.version.desc":`版本/CLI 安装状态`,"cmd.skill.desc":`技能列表/重置`,"cmd.employee.desc":`员工管理(列表/模型/CLI/重置/会话清除)`,"cmd.mcp.desc":`MCP 列表/同步/安装`,"cmd.memory.desc":`记忆搜索/列表`,"cmd.browser.desc":`浏览器状态/标签页`,"cmd.prompt.desc":`查看系统提示`,"cmd.quit.desc":`退出进程`,"cmd.file.desc":`附加文件`,"cmd.steer.desc":`中断 Agent 并改用新指示`,"cmd.compact.desc":`压缩对话上下文`,"cmd.compact.tg_desc":`压缩对话上下文`,"cmd.workflow.interview.desc":`计划前澄清需求`,"cmd.workflow.interview.tg_desc":`开始需求访谈`,"cmd.workflow.deliberate.desc":`用多种角色审查计划`,"cmd.workflow.deliberate.tg_desc":`按角色审查计划`,"cmd.workflow.plan.desc":`说明 PABCD 计划流程`,"cmd.workflow.plan.tg_desc":`说明 PABCD 计划`,"cmd.workflow.plan.title":`PABCD 计划指南`,"cmd.workflow.plan.pabcdEquivalent":`在 cli-jaw 中,/plan 不是独立模式,而是 PABCD P:先明确计划,再进入 A 审计、B 构建、C 检查、D 完成。`,"cmd.workflow.plan.noRequest":`没有提供请求。需求不清楚时使用 /interview,需要比较实现方案时使用 /deliberate。`,"cmd.workflow.plan.section.pabcd":`cli-jaw 计划方式`,"cmd.workflow.plan.section.source":`原始请求`,"cmd.workflow.plan.section.next":`下一步`,"cmd.workflow.plan.next.interview":`- 需要澄清需求:/interview <request>`,"cmd.workflow.plan.next.deliberate":`- 需要比较方案:/deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- 已有计划:/planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- 准备正式进入:/orchestrate P`,"cmd.workflow.plan.footer":`这是说明性 artifact。已批准的计划仍属于 PABCD P。`,"cmd.artifact.action.copy":`复制`,"cmd.artifact.action.reinsert":`放回输入框`,"cmd.artifact.action.sendAsChat":`作为普通消息发送`,"cmd.artifact.action.startPabcd":`用于 PABCD P`,"cmd.workflow.planAudit.desc":`创建只读计划审计任务`,"cmd.workflow.planAudit.tg_desc":`创建计划审计任务`,"cmd.workflow.search.desc":`通过搜索技能路由搜索请求`,"cmd.workflow.search.tg_desc":`通过搜索技能搜索`,"cmd.workflow.goal.desc":`目标状态和受限运行工作流`,"cmd.workflow.goal.tg_desc":`查看目标或运行状态`,"cmd.workflow.team.desc":`并行团队编排`,"cmd.workflow.team.tg_desc":`团队编排`,"cmd.workflow.review.tg_desc":`审查项目目录`,"cmd.workflow.interview.title":`需求访谈`,"cmd.workflow.deliberate.title":`角色式计划审查`,"cmd.workflow.planAudit.title":`只读计划审计`,"cmd.help.tg_desc":`显示可用命令`,"cmd.status.tg_desc":`检查模型、CLI 和会话状态`,"cmd.clear.tg_desc":`重置对话(保留数据)`,"cmd.model.tg_desc":`查看当前 AI 模型`,"cmd.cli.tg_desc":`查看当前 CLI 引擎`,"cmd.fallback.tg_desc":`设置 CLI 自动切换顺序`,"cmd.forward.tg_desc":`开启/关闭自动转发`,"cmd.flush.tg_desc":`设置对话重置使用的模型`,"cmd.version.tg_desc":`检查版本和安装状态`,"cmd.skill.tg_desc":`查看 AI 技能列表`,"cmd.browser.tg_desc":`检查浏览器连接`,"cmd.steer.tg_desc":`把 Agent 转到新任务`,"cmd.steer.noPrompt":`用法:/steer <新指示>`,"cmd.steer.noAgent":`当前没有正在运行的 Agent。`,"cmd.steer.started":`正在转向...`,"cmd.unknown":`未知命令:/{name}
|
|
64
|
+
ユーザーメッセージ: {text}`,"chat.file.uploadFail":`ファイルのアップロードに失敗しました: {msg}`,"chat.requestFail":`リクエストに失敗しました({status})`,"chat.continue":`現在の作業を続行しています。`,"chat.noPendingContinue":`続行できる保留中の作業はありません。`,"chat.voice.label":`🎤 [音声メッセージ]`,"sessionHub.title":`セッション`,"sessionHub.description":`ローカルとチャンネルの会話をセッション別に確認します。`,"sessionHub.defaultSession":`基本セッション`,"sessionHub.sessionLabel":`セッション {seq}`,"sessionHub.source.local":`ローカル`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`メッセージ`,"sessionHub.lastActivity":`最終アクティビティ`,"sessionHub.noActivity":`アクティビティなし`,"sessionHub.empty.title":`チャンネルセッションはまだありません`,"sessionHub.empty.description":`チャンネルを接続すると、会話ごとのセッションがここに表示されます。`,"sessionHub.empty.action":`設定でチャンネルを接続`,"sessionHub.listAria":`セッション一覧`,"sessionHub.delete":`削除`,"sessionHub.deleteConfirm":`このセッションを削除しますか?会話履歴も一緒に削除されます。`,"sessionHub.deleteRemoteDisabled":`チャンネルに接続されたセッションは削除できません。`,"sessionHub.deleteFailed":`セッションを削除できませんでした。実行中の作業がないか確認してください。`,"sessionReadonly.message":`読み取り専用です。送信する前にこのセッションへ切り替えてください。`,"sessionReadonly.remote":`チャンネルに接続されたセッションはWebでは読み取り専用です。`,"sessionReadonly.switch":`/{seq} に切り替え`,"sessionReadonly.openSessions":`セッション一覧を開く`,"sessionReadonly.composeRejected":`このセッションは読み取り専用です。上の切り替え操作を使用してください。`,"sessionReadonly.elicitationRejected":`読み取り専用セッションからは応答を送信できません。切り替えてから再試行してください。`,"skill.loadFail":`スキルを読み込めませんでした`,"skill.count":`有効 {active} 件 / 全 {total} 件`,"skill.countFiltered":`表示 {shown} 件 / 有効 {active} 件 / 全 {total} 件`,"skill.search.placeholder":`スキルを検索...`,"skill.search.aria":`スキルを検索`,"skill.search.empty":`検索に一致するスキルはありません。`,"skill.filter.all":`すべて`,"skill.filter.installed":`インストール済み`,"skill.filter.productivity":`生産性`,"skill.filter.communication":`連携`,"skill.filter.devtools":`開発`,"skill.filter.utility":`ユーティリティ`,"skill.filter.smarthome":`ホーム`,"skill.filter.other":`その他`,"skill.filter.ai":`AI 関連`,"lang.ko":`韓国語`,"lang.en":`英語`,"lang.ja":`日本語(日本)`,"lang.zh":`中国語`,"emp.addPrompt":`Agent を追加`,"emp.delete":`削除`,"emp.customRole":`カスタムロール...`,"emp.customModel":`手動入力...`,"role.label.frontend":`フロントエンド`,"role.label.backend":`バックエンド`,"role.label.data":`データ`,"role.label.docs":`ドキュメント`,"role.label.security":`セキュリティ`,"role.label.testing":`テスト`,"role.label.custom":`カスタム...`,"hb.empty":`heartbeat はありません`,"hb.name":`名前`,"hb.prompt":`プロンプト...`,"hb.add":`+ heartbeat を追加`,"hb.kindEvery":`間隔`,"hb.kindCron":`Cron 予定`,"hb.minutesLabel":`分`,"hb.cronLabel":`式`,"hb.timezoneAuto":`空欄 = システム/ブラウザのタイムゾーン`,"hb.cronPlaceholder":`例: 0 9 * * *`,"hb.invalidCron":`Cron 式が無効です。5 フィールドで入力してください。`,"hb.invalidTimeZone":`タイムゾーンが無効です。例: Asia/Seoul`,"hb.invalidMinutes":`分数は 1 以上の整数である必要があります。`,"hb.invalidSchedule":`heartbeat スケジュールが無効です。`,"hb.scheduleHintCron":`例: {cron} · タイムゾーン: {timeZone}`,"hb.scheduleHintEvery":`例: {minutes} 分ごと · タイムゾーン: {timeZone}`,"cmd.noMatch":`一致するコマンドはありません`,"mem.noFiles":`メモリファイルはまだありません`,"mem.empty":`メモリはまだありません`,"memory.banner.bootstrapRerun":`メモリ bootstrap を再実行しています...`,"memory.banner.reindexing":`メモリインデックスを再作成しています...`,"memory.banner.soulOptimize":`Soul を最適化`,"memory.banner.soulOptimizing":`Soul を最適化しています...(アクティブ CLI が処理しています)`,"memory.banner.soulPromptSent":`✓ Soul 最適化プロンプトを送信しました。チャットを確認してください。`,"model.promptInput":`モデル ID を入力:`,"model.customOption":`手動入力...`,"model.placeholder":`モデル ID を入力`,"mcp.syncing":`同期中...`,"mcp.installing":`npm でインストール中...(最大 2 分)`,"settings.none":`(なし)`,"cli.gemini.auth":`初回実行時にブラウザ認証`,"cli.copilot.authHint":`copilot login または gh auth login`,"cli.showMore":`もっと見る ▸`,"cli.authRequired":`インストール/認証が必要です`,"cli.notAuthenticated":`認証が必要です — 下のコマンドを実行してください`,"drag.drop":`ここにファイルをドロップ`,"status.responding":`応答中`,"aria.cmdList":`コマンド一覧`,"btn.attach":`ファイルを添付`,"input.placeholder":`メッセージを入力...`,"queue.pendingTitle":`待機中`,"queue.copy":`コピー`,"queue.delete":`削除`,"queue.steer":`今すぐ実行(steer)`,"queue.cancelArm":`もう一度クリックしてキャンセル`,loading:`読み込み中...`,"btn.editPrompt":`システムプロンプトを編集`,"tg.chatIds.placeholder":`カンマ区切り(空欄ならすべて許可)`,"fallback.desc":`CLI 失敗時の自動リトライ順`,"btn.cancel":`キャンセル`,"btn.save":`保存`,"btn.stop":`停止`,"msg.you":`あなた`,"stat.messages":`メッセージ: {count}`,"ui.offline.banner":`オフラインモード — キャッシュ済みメッセージを表示中`,"time.10m":`10 分`,"time.30m":`30 分`,"time.manual":`手動`,"phase.plan":`計画`,"phase.verify":`計画レビュー`,"phase.dev":`開発`,"phase.debug":`デバッグ`,"phase.integrate":`統合`,"orchestrator.allDone":`すべてのタスクが完了しました`,"orchestrator.continueHint":`続行するには「continue」と入力してください。`,"orchestrator.noWorklog":`続行できる worklog がありません。`,"orchestrator.alreadyDone":`すべてのタスクはすでに完了しています。`,"sidebar.status":`状態`,"sidebar.memory":`メモリ`,"sidebar.stats":`統計`,"sidebar.cliStatus":`CLI 状態`,"sidebar.agentName":`Agent 名`,"sidebar.avatar":`アバター`,"sidebar.employees":`従業員`,"sidebar.promptTemplates":`プロンプトテンプレート`,"templates.title":`プロンプト構成`,"templates.back":`戻る`,"templates.devMode":`開発者モード`,"templates.hint.click":`クリックでテンプレート内容を表示`,"templates.hint.devEdit":`開発者モードで編集`,"tab.agents":`Agent`,"tab.skills":`スキル`,"tab.settings":`設定`,"btn.saveSettings":`保存`,"btn.addEmployee":`+ 追加`,"btn.off":`オフ`,"btn.on":`オン`,"label.activeCli":`アクティブ CLI`,"label.model":`モデル`,"label.effort":`推論強度`,"label.permissions":`権限`,"label.workingDir":`作業ディレクトリ`,"label.enabled":`有効`,"label.botToken":`Bot Token(bot トークン)`,"label.chatIds":`許可する Chat ID`,"label.forwardAll":`自動転送`,"label.flushEvery":`整理間隔`,"emp.empty":`従業員はまだいません`,"modal.promptTitle":`システムプロンプト(A-2)`,"modal.heartbeatTitle":`Heartbeat ジョブ`,"modal.memoryTitle":`メモリ`,"code.copy":`コピー`,"code.copied":`コピーしました ✓`,"mcp.noServers":`(サーバー未設定)`,"mermaid.renderFail":`Mermaid の描画に失敗しました`,"orchestrator.dispatching":`処理中…`,"cmd.ide.desc":`IDE diff 表示`,"cmd.ide.toggled":`IDE diff モードを切り替えました`,"cmd.ide.popToggled":`IDE ポップアップを切り替えました`,"cmd.ide.usage":`使い方: /ide [pop|on|off]`,"label.mentionOnly":`メンション時のみ応答`,"help.section.what":`概要`,"help.section.effect":`変更内容`,"help.section.useWhen":`使う場面`,"help.section.howTo":`使い方`,"help.section.example":`例`,"help.section.avoidWhen":`避ける場面`,"help.section.related":`関連項目`,"help.close":`閉じる`,"help.activeCli.title":`アクティブ CLI`,"help.activeCli.aria":`アクティブ CLI ヘルプ`,"help.activeCli.intro":`次のリクエストを処理する CLI エンジンを選びます。`,"help.activeCli.effect":`次回の実行から、選択した CLI のセッション、モデル設定、ツールの動作を使います。`,"help.activeCli.use.1":`Claude、Codex、Gemini、OpenCode、Copilot を切り替えるとき`,"help.activeCli.use.2":`CLI エンジンごとの挙動を比較するとき`,"help.activeCli.howTo.1":`アクティブ CLI セレクターから使いたい CLI を選びます。`,"help.activeCli.howTo.2":`チャットで /cli <name> と入力しても変更できます。`,"help.activeCli.example.1":`Claude が止まっている場合は、Codex に切り替えて同じ作業を続けられます。`,"help.activeCli.avoid.1":`同じ CLI 内のモデルだけを変更したい場合`,"help.activeCli.related.1":`/cli コマンド`,"help.activeCli.related.2":`モデルセレクター`,"help.model.title":`モデル`,"help.model.aria":`モデルヘルプ`,"help.model.intro":`アクティブ CLI で使うモデルを選びます。`,"help.model.effect":`同じ CLI の今後のリクエストは、選択したモデル名で実行されます。`,"help.model.use.1":`より速いモデル、またはより強力なモデルへ切り替えるとき`,"help.model.use.2":`モデルごとの性能やコストを調整するとき`,"help.model.howTo.1":`アクティブ CLI の横にあるモデルセレクターから選びます。`,"help.model.howTo.2":`チャットで /model <model-name> と入力しても変更できます。`,"help.model.example.1":`通常のコーディングは Sonnet、深いレビューが必要なときは Opus 系モデルを使います。`,"help.model.avoid.1":`CLI エンジン自体を変更する必要がある場合`,"help.model.related.1":`/model コマンド`,"help.effort.title":`推論強度`,"help.effort.aria":`推論強度ヘルプ`,"help.effort.intro":`対応モデルで、推論の深さと速度を調整します。`,"help.effort.effect":`対応モデルでは、応答速度と推論の深さのバランスが変わります。`,"help.effort.use.1":`深いコード分析や設計レビューにより多くの推論が必要なとき`,"help.effort.use.2":`小さな作業を速く終わらせたいとき`,"help.effort.howTo.1":`effort セレクターから low、medium、high などの値を選びます。`,"help.effort.howTo.2":`簡単な確認は低めに、複雑な実装前の検討は高めに設定します。`,"help.effort.example.1":`誤字修正は low、大きなリファクタリング計画は high にします。`,"help.effort.avoid.1":`現在のモデルが effort 設定を無視する場合`,"help.effort.related.1":`モデル対応状況`,"help.permissions.title":`権限`,"help.permissions.aria":`権限ヘルプ`,"help.permissions.intro":`Auto (YOLO) は自動承認や権限チェックの省略を要求するポリシーです。この選択欄では YOLO は Auto の表示名です。`,"help.permissions.effect":`自動承認の方法、ファイルアクセスの範囲、Safe の対応状況は CLI と通信方式によって異なります。`,"help.permissions.use.1":`ローカル自動化を毎回の確認なしで進めたいとき`,"help.permissions.use.2":`信頼できる作業ディレクトリで長いタスクを任せるとき`,"help.permissions.howTo.1":`Auto (YOLO) または Safe を選び、保存されたポリシーを確認します。`,"help.permissions.howTo.2":`承認が必要な場合は、使用するランタイムが Safe に対応しているか先に確認します。`,"help.permissions.example.1":`自動承認が必要な繰り返し作業では Auto (YOLO) を選びます。明示的な質問は引き続き表示される場合があります。`,"help.permissions.avoid.1":`ディレクトリやタスクが不慣れ、またはリスクを含む場合`,"help.permissions.related.1":`Auto (YOLO) / Safe — ランタイム別の対応状況`,"help.flushAgent.title":`Flush Agent 設定`,"help.flushAgent.aria":`Flush Agent ヘルプ`,"help.flushAgent.intro":`コンテキストの要約や flush に使う CLI とモデルを選びます。`,"help.flushAgent.effect":`compact や flush では、アクティブモデルではなく設定済みの要約用 Agent を使います。`,"help.flushAgent.use.1":`要約を速いモデル、または安定したモデルに任せたいとき`,"help.flushAgent.use.2":`アクティブモデルと要約モデルを分けたいとき`,"help.flushAgent.howTo.1":`Flush Agent 設定で、要約に使う CLI とモデルを選びます。`,"help.flushAgent.howTo.2":`長いセッションの前に /flush の流れと合わせておきます。`,"help.flushAgent.example.1":`主作業は Opus、コンテキスト整理は速い Sonnet に任せられます。`,"help.flushAgent.avoid.1":`アクティブ CLI とモデルで十分な場合`,"help.flushAgent.related.1":`/flush コマンド`,"help.employees.title":`従業員`,"help.employees.aria":`従業員ヘルプ`,"help.employees.intro":`従業員は、Boss が役割別の検証や分析を依頼できる独立した AI ワーカーです。`,"help.employees.effect":`Boss は、別の CLI セッションから監査や検証結果を受け取ります。`,"help.employees.use.1":`フロントエンド、バックエンド、ドキュメントのレビューを独立して走らせたいとき`,"help.employees.use.2":`PABCD A/B で読み取り専用の検証が必要なとき`,"help.employees.use.3":`長いレビューをメインスレッドから分離したいとき`,"help.employees.howTo.1":`/employee reset — ディスクから従業員設定を再読み込みします。`,"help.employees.howTo.2":`従業員のディスパッチ: cli-jaw dispatch --agent "Name" --task "..."。`,"help.employees.howTo.3":`PABCD A/Bでは従業員はデフォルトで読み取り専用の監査/検証のみ実行します。`,"help.employees.howTo.4":`--mutableフラグを使用すると従業員がファイルを変更できます。`,"help.employees.example.1":`Boss が実装している間、Backend に import とテストリスクだけを監査させます。`,"help.employees.avoid.1":`単純なファイル確認`,"help.employees.avoid.2":`小さな単一ファイル編集`,"help.employees.avoid.3":`直接回答できる質問`,"help.employees.related.1":`cli-jaw dispatch コマンド`,"help.employees.related.2":`PABCD A/B フェーズ`,"help.skills.title":`スキル`,"help.skills.aria":`スキルヘルプ`,"help.skills.intro":`スキルは、特定の作業フロー向けの指示パックです。`,"help.skills.effect":`Agent は、作業に応じた手順、ツール、検証ルールを受け取ります。`,"help.skills.use.1":`ブラウザ操作、GitHub、PDF、文書、テストなどの専用ワークフローが必要なとき`,"help.skills.use.2":`繰り返しのワークフローを安定して実行したいとき`,"help.skills.howTo.1":`/skill — インストール済みのアクティブスキル一覧を表示します。`,"help.skills.howTo.2":`/skill list — アクティブスキルと参照可能スキルを全て表示します。`,"help.skills.howTo.3":`/skill reset — ディスクから全スキルを再読み込みします。`,"help.skills.howTo.4":`タスクを説明すると、エージェントが自動でマッチするスキルを選択します。`,"help.skills.example.1":`PDF 分析には jaw-pdf スキル、フロントエンド実装には jaw-dev-frontend ガイドを使います。`,"help.skills.avoid.1":`通常のチャット回答で十分な場合`,"help.skills.related.1":`/skill コマンド`,"help.activeChannel.title":`アクティブチャンネル`,"help.activeChannel.aria":`アクティブチャンネルヘルプ`,"help.activeChannel.intro":`チャンネル出力をどのサービスへ送るかを選びます。`,"help.activeChannel.effect":`ファイル配信、通知、スケジュールジョブの結果は、選択したチャンネルへ送られます。`,"help.activeChannel.use.1":`運用出力を Telegram と Discord の間で切り替えるとき`,"help.activeChannel.use.2":`外部通知の宛先が変わるとき`,"help.activeChannel.howTo.1":`チャンネル設定で Telegram または Discord を選びます。`,"help.activeChannel.howTo.2":`ファイルや通知を送る作業の前に、現在のチャンネルを確認します。`,"help.activeChannel.example.1":`文書ファイルは Telegram、チーム通知は Discord チャンネルで受け取れます。`,"help.activeChannel.avoid.1":`転送のオン/オフだけを変更したい場合`,"help.activeChannel.related.1":`Telegram / Discord 設定`,"help.telegram.title":`Telegram 設定`,"help.telegram.aria":`Telegram ヘルプ`,"help.telegram.intro":`Telegram bot 接続、許可チャット、mention-only モード、転送を管理します。`,"help.telegram.effect":`許可された Telegram チャットで、メッセージ、ファイル、音声入力、タスク結果をやり取りできます。`,"help.telegram.use.1":`Telegram で cli-jaw の更新を受け取りたいとき`,"help.telegram.use.2":`Web の応答を Telegram に転送したいとき`,"help.telegram.link.botfather":`BotFatherでbot作成`,"help.telegram.link.docs":`Telegram Bot APIガイド`,"help.telegram.howTo.1":`Telegram アプリで @BotFather を検索して会話を開始します。`,"help.telegram.howTo.2":`/newbot を送信すると bot 名を聞かれます。表示名を入力してください(例: "Jaw Bot")。`,"help.telegram.howTo.3":`次にユーザー名を入力します。必ず _bot で終わる必要があります(例: jaw_helper_bot)。`,"help.telegram.howTo.4":`成功すると BotFather が HTTP API token を送ってきます(1234567890:ABCdef... 形式)。これをコピーしてください。`,"help.telegram.howTo.5":`~/.cli-jaw/settings.json を開き、telegram.token にコピーした token を貼り付けます。`,"help.telegram.howTo.6":`Telegram で作成した bot を検索 →「開始」をタップするか、何かメッセージ(例: "hello")を送ります。`,"help.telegram.howTo.7":`ターミナルで jaw doctor を実行すると、送信したチャットの chat ID(数字)が表示されます。`,"help.telegram.howTo.8":`settings.json の telegram.allowedChatIds 配列にその chat ID を追加すれば設定完了!`,"help.telegram.example.1":`Web から離れていても、長時間タスクの完了ファイルを Telegram で受け取れます。`,"help.telegram.avoid.1":`Discord が現在の運用チャンネルである場合`,"help.telegram.related.1":`/forward コマンド`,"help.telegram.related.2":`許可する chat ID`,"help.discord.title":`Discord 設定`,"help.discord.aria":`Discord ヘルプ`,"help.discord.intro":`Discord の guild/channel ルーティングとメンション動作を管理します。`,"help.discord.effect":`コマンド、ファイル、従業員結果は、設定した guild と channel に制限されます。`,"help.discord.use.1":`サーバーチャンネルでスラッシュコマンド中心に運用するとき`,"help.discord.use.2":`出力先を特定の guild や channel に制限したいとき`,"help.discord.link.portal":`Discord Developer Portalを開く`,"help.discord.link.docs":`Discord botスタートガイド`,"help.discord.howTo.1":`discord.com/developers/applications にアクセスし、Discord アカウントでログインします。`,"help.discord.howTo.2":`右上の「New Application」をクリック → アプリ名を入力(例: "Jaw Bot")→ Create。`,"help.discord.howTo.3":`左メニュー「Bot」タブ →「Reset Token」をクリック → bot token をコピーします。(一度しか表示されないのですぐ保存!)`,"help.discord.howTo.4":`同じ Bot ページ下部「Privileged Gateway Intents」→ MESSAGE CONTENT INTENT を有効にします。(これがないとメッセージを読めません!)`,"help.discord.howTo.5":`左メニュー「OAuth2」→「URL Generator」に移動します。`,"help.discord.howTo.6":`SCOPES で bot と applications.commands をチェック。下の BOT PERMISSIONS で Send Messages、Read Message History などを選択します。`,"help.discord.howTo.7":`ページ下部に生成された招待 URL をコピー → ブラウザに貼り付け → bot を追加するサーバーを選択します。`,"help.discord.howTo.8":`~/.cli-jaw/settings.json に discord.token、guildId(サーバー ID)、channelId(チャンネル ID)を入力します。`,"help.discord.howTo.9":`ターミナルで jaw doctor を実行して bot 接続と権限が正常か確認すれば完了!`,"help.discord.example.1":`従業員の検証結果を 1 つのプロジェクトチャンネルに集約できます。`,"help.discord.avoid.1":`DM での配信を期待している場合`,"help.discord.related.1":`jaw doctor コマンド`,"help.discord.related.2":`Discord degraded mode の説明`,"help.slack.title":`Slack`,"help.slack.aria":`Slack ヘルプ`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`下のガイドカードの「マニフェストをコピー」を押し、api.slack.com/apps → Create New App → From a manifest に貼り付けてアプリを作成します。`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback 設定`,"help.fallbackOrder.aria":`Fallback ヘルプ`,"help.fallbackOrder.intro":`現在の CLI が失敗または利用不可になったとき、どの CLI を試すかの順序を設定します。`,"help.fallbackOrder.effect":`provider 障害やクォータ問題による中断を減らすため、他の CLI を順番に試します。`,"help.fallbackOrder.use.1":`provider が過負荷で、自動バックアップを使いたいとき`,"help.fallbackOrder.use.2":`長いジョブを provider 障害で止まりにくくしたいとき`,"help.fallbackOrder.howTo.1":`Fallback 設定で再試行順序を設定します。`,"help.fallbackOrder.howTo.2":`原因調査中は fallback を無効化するか、順序を単純にします。`,"help.fallbackOrder.example.1":`Claude が過負荷なら、設定順に Codex や Gemini で続行できます。`,"help.fallbackOrder.avoid.1":`失敗時にすぐ止めてデバッグしたい場合`,"help.fallbackOrder.related.1":`/fallback コマンド`,"help.mcp.title":`MCP サーバー`,"help.mcp.aria":`MCP ヘルプ`,"help.mcp.intro":`MCP サーバーは、Agent を外部ツールやリソースに接続します。`,"help.mcp.effect":`インストール済みサーバーは、Claude、Codex、Gemini などの CLI のツール一覧へ同期されます。`,"help.mcp.use.1":`タスクに外部アプリ、データ、ツールへのアクセスが必要なとき`,"help.mcp.use.2":`同じツール設定を複数 CLI に同期したいとき`,"help.mcp.howTo.1":`/mcp — 接続済みMCPサーバーとツール一覧を表示します。`,"help.mcp.howTo.2":`/mcp sync — MCPサーバーをアクティブCLIと再同期します。`,"help.mcp.howTo.3":`/mcp install — レジストリから新しいMCPサーバーをインストールします。`,"help.mcp.howTo.4":`MCP設定パネル(⚙️)でサーバーの追加・編集・削除ができます。`,"help.mcp.example.1":`filesystem MCP を追加すると、Agent が許可フォルダを安定して確認できます。`,"help.mcp.avoid.1":`ローカルファイルと組み込みツールだけで十分な場合`,"help.mcp.related.1":`/mcp コマンド`,"help.memory.title":`メモリ`,"help.memory.aria":`メモリヘルプ`,"help.memory.intro":`長期的なプロジェクト事実、ユーザー設定、コンテキストを保存します。`,"help.memory.effect":`保存した判断や設定は、後続セッションや compact 後に検索して再注入できます。`,"help.memory.use.1":`判断や設定を今後のセッションにも残したいとき`,"help.memory.use.2":`長いプロジェクトで安定した文脈を維持したいとき`,"help.memory.howTo.1":`/memory — 保存済みメモリエントリ一覧を表示します。`,"help.memory.howTo.2":`/memory <クエリ> — キーワードでメモリを検索します。`,"help.memory.howTo.3":`メモリはmemory/ディレクトリの構造化ファイルに保存されます。`,"help.memory.howTo.4":`長期的な判断と好みを保存し、一時的なチェックリストやログは保存しないでください。`,"help.memory.example.1":`「このプロジェクトは vanilla JS のままにする」は保存し、「今日テストが 3 件残っている」は保存しません。`,"help.memory.avoid.1":`一時的なチェックリストや生ログを保存しようとしている場合`,"help.memory.related.1":`/memory コマンド`,"help.memory.related.2":`flush / bootstrap の流れ`,"help.stt.title":`音声認識`,"help.stt.aria":`音声認識ヘルプ`,"help.stt.intro":`ブラウザの音声入力をテキスト化する設定です。`,"help.stt.effect":`音声ボタンで録音した内容は、選択した STT エンジンでチャットテキストに変換されます。`,"help.stt.use.1":`長い指示を音声で入力したいとき`,"help.stt.use.2":`Gemini、OpenAI、Whisper STT のいずれかを選びたいとき`,"help.stt.howTo.1":`STT provider を選び、必要な API key を設定します。`,"help.stt.howTo.2":`音声ボタンを押して録音し、変換されたテキストを確認します。`,"help.stt.example.1":`長い会議メモを音声で入力し、Agent に要約させられます。`,"help.stt.avoid.1":`テキスト入力で十分、または API key が未設定の場合`,"help.stt.related.1":`音声ボタン`,"help.promptTemplates.title":`プロンプトテンプレート`,"help.promptTemplates.aria":`プロンプトテンプレートヘルプ`,"help.promptTemplates.intro":`よく使うプロンプトブロックを再利用できる形で保存します。`,"help.promptTemplates.effect":`選択したテンプレートは、新しいリクエストの繰り返し指示として挿入されます。`,"help.promptTemplates.use.1":`繰り返しの指示を一貫させたいとき`,"help.promptTemplates.use.2":`長い準備指示を毎回書き直したくないとき`,"help.promptTemplates.howTo.1":`プロンプトテンプレートモーダルでテンプレートを作成して保存します。`,"help.promptTemplates.howTo.2":`繰り返しワークフローの前にテンプレートを選びます。`,"help.promptTemplates.example.1":`同じコードレビュー用チェックリストを保存して、毎回入力し直さずに使います。`,"help.promptTemplates.avoid.1":`短い一度きりの指示をチャットで書くほうが明確な場合`,"help.promptTemplates.related.1":`プロンプトテンプレートモーダル`,"help.chatInput.title":`チャット入力`,"help.chatInput.aria":`チャット入力ヘルプ`,"help.chatComposer.aria":`チャット入力とキーボードショートカットのヘルプ`,"help.chatInput.intro":`作業指示、スラッシュコマンド、添付ファイルを送る基本入力欄です。`,"help.chatInput.effect":`送信内容は現在の CLI と設定で処理され、添付ファイルも同じリクエストに含まれます。`,"help.chatInput.use.1":`新しい作業を始める、または現在の作業を続けるとき`,"help.chatInput.use.2":`/help や /pabcd などのスラッシュコマンドを使うとき`,"help.chatInput.use.3":`テキストとファイルを一緒に送りたいとき`,"help.chatInput.howTo.1":`メッセージを入力し、Send または対応する送信ショートカットを使います。`,"help.chatInput.howTo.2":`添付ボタンまたはドラッグ&ドロップでファイルを追加してから送信します。`,"help.chatInput.example.1":`「この diff をレビューして」と書き、関連ファイルを添付します。`,"help.chatInput.avoid.1":`コマンドだけ実行する場合は曖昧な文章よりスラッシュコマンドが安全です。`,"help.chatInput.avoid.2":`秘密鍵やトークンの原文を直接貼り付けないでください。`,"help.chatInput.related.1":`添付ファイル`,"help.chatInput.related.2":`キーボードショートカット`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD ヘルプ`,"help.orchestration.intro":`PABCD は、計画、監査、実装、確認、完了を分けて進める作業フローです。`,"help.orchestration.effect":`各フェーズの役割を分けることで、大きな変更を安全に進められます。`,"help.orchestration.use.1":`複数ファイルや複数機能にまたがる作業を始めるとき`,"help.orchestration.use.2":`従業員監査や実装検証が必要なとき`,"help.orchestration.use.3":`コード変更前に計画を合意したいとき`,"help.orchestration.howTo.1":`/orchestrate I — インタビューモードに入り要件を整理します。`,"help.orchestration.howTo.2":`/orchestrate P — プランニングモードに入りプランを作成します。`,"help.orchestration.howTo.3":`/orchestrate A — 監査モードに入りプランをレビューします。`,"help.orchestration.howTo.4":`/orchestrate B — ビルドモードに入り実装します。`,"help.orchestration.howTo.5":`/orchestrate C — チェックモードに入り最終検証します。`,"help.orchestration.howTo.6":`/orchestrate D — 完了モードに入りIDLEに戻ります。`,"help.orchestration.howTo.7":`/orchestrate status — 現在のPABCDフェーズを表示します。`,"help.orchestration.howTo.8":`/orchestrate reset — 任意のフェーズからIDLEに戻ります。`,"help.orchestration.example.1":`P で計画し、A で監査し、B で実装します。`,"help.orchestration.avoid.1":`一行回答や単純な状態確認で十分な場合`,"help.orchestration.avoid.2":`緊急作業はまず範囲を小さくしてください。`,"help.orchestration.related.1":`従業員`,"help.orchestration.related.2":`キーボードショートカット`,"help.attachments.title":`添付ファイル`,"help.attachments.aria":`添付ファイルヘルプ`,"help.attachments.intro":`画像、文書、ログ、コードファイルを現在のメッセージと一緒に送る領域です。`,"help.attachments.effect":`添付ファイルはリクエスト文脈に入り、Agent が読み取りや分析に使えます。`,"help.attachments.use.1":`スクリーンショットやエラーログで問題を説明するとき`,"help.attachments.use.2":`文書やコードファイルを直接レビューさせるとき`,"help.attachments.use.3":`関連ファイルをまとめて送るとき`,"help.attachments.howTo.1":`添付ボタンを使うか、チャット領域にファイルをドロップします。`,"help.attachments.howTo.2":`送信前にプレビューで不要なファイルを削除します。`,"help.attachments.example.1":`エラー画面とログファイルを一緒に送り、原因調査を依頼します。`,"help.attachments.avoid.1":`認証情報やトークンを含むファイルは添付しないでください。`,"help.attachments.avoid.2":`関係ない大きなファイルは分析品質を下げることがあります。`,"help.attachments.related.1":`チャット入力`,"help.attachments.related.2":`メモリ`,"help.diagrams.title":`ダイアグラム`,"help.diagrams.aria":`ダイアグラムヘルプ`,"help.diagrams.intro":`回答内の SVG、Mermaid、インタラクティブ図をそのまま表示する機能です。`,"help.diagrams.effect":`複雑な流れ、構造、比較を文章だけより早く把握できます。`,"help.diagrams.use.1":`ファイル変更マップやシステムフローを見たいとき`,"help.diagrams.use.2":`PABCD 計画や監査結果を一目で整理したいとき`,"help.diagrams.use.3":`表示された図を拡大またはコピーしたいとき`,"help.diagrams.howTo.1":`利用できる場合は図のボタンで拡大、コピー、保存を行います。`,"help.diagrams.howTo.2":`文字ずれや線が見えない場合はレンダリング問題として報告してください。`,"help.diagrams.example.1":`作業範囲を箱と矢印で示すよう依頼します。`,"help.diagrams.avoid.1":`正確な原文や長いコードはテキストのほうが明確です。`,"help.diagrams.avoid.2":`秘密情報が見える画面をそのまま図にしないでください。`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`添付ファイル`,"help.keyboardShortcuts.title":`キーボードショートカット`,"help.keyboardShortcuts.aria":`キーボードショートカットヘルプ`,"help.keyboardShortcuts.intro":`クリックを減らすための Jaw UI とブラウザショートカットの案内です。`,"help.keyboardShortcuts.effect":`入力、音声、ヘルプ、ダッシュボード移動をキーボードで素早く実行できます。`,"help.keyboardShortcuts.use.1":`マウスなしでよく使う操作を実行したいとき`,"help.keyboardShortcuts.use.2":`ショートカットが入力を邪魔しないか確認したいとき`,"help.keyboardShortcuts.use.3":`Manager dashboard のショートカット設定を探しているとき`,"help.keyboardShortcuts.howTo.1":`Classic Web: チャット入力では Enter で送信し、Shift+Enter で改行します。スラッシュコマンドは同じ入力欄で / から始めます。STT 録音は Ctrl+Shift+Space または Alt/Option+M で切り替えます。`,"help.keyboardShortcuts.howTo.2":`Manager: エディタ外では ? でショートカットヘルプを開き、Alt+I、Alt+P、Alt+N で Instances、active Preview、Notes へ移動し、Alt+K と Alt+J で前後のインスタンスを選択します。`,"help.keyboardShortcuts.howTo.3":`Manager Notes: Cmd/Ctrl+S で保存、Cmd/Ctrl+E で Raw/Preview/WYSIWYG を切り替え、Cmd/Ctrl+Shift+F でノート検索、Cmd/Ctrl+P で quick switcher、Cmd/Ctrl+Delete または Cmd/Ctrl+Backspace で選択中のノートやフォルダをゴミ箱へ移動します。`,"help.keyboardShortcuts.example.1":`チャット入力で Enter を押すと送信し、改行したいときは Shift+Enter を使います。`,"help.keyboardShortcuts.example.2":`Manager で入力欄やエディタにフォーカスがない状態で ? を押すと、このショートカットヘルプを開きます。`,"help.keyboardShortcuts.avoid.1":`ブラウザ既定ショートカットと衝突する場合は別の組み合わせに変更します。`,"help.keyboardShortcuts.avoid.2":`グローバルショートカットは編集中の入力を上書きしません。`,"help.keyboardShortcuts.related.1":`チャット入力`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`セッションヘルプ`,"help.session.title":`セッション`,"help.session.intro":`チャットセッションの管理 — 新規作成、切り替え、会話のクリア、ワークスペースのリセットなど。`,"help.session.effect":`セッションコマンドは現在の会話状態のみを操作し、AIエージェントの設定には影響しません。`,"help.session.use.1":`/newで新しい会話を開始`,"help.session.use.2":`複数のチャットセッション間の切り替え`,"help.session.use.3":`/clearまたは/compactで会話履歴を整理`,"help.session.howTo.1":`/new [ラベル] — オプションのラベル付きで新規チャットセッションを作成します。`,"help.session.howTo.2":`/switch <番号> — セッション番号で切り替えます。エイリアス: /sw`,"help.session.howTo.3":`/sessions — 全セッション一覧を表示します。エイリアス: /ss`,"help.session.howTo.4":`/clear — 現在のチャット画面をクリアします。`,"help.session.howTo.5":`/clear all — 画面と全会話履歴をクリアします。`,"help.session.howTo.6":`/compact [指示] — 会話コンテキストを圧縮してトークンを節約します。`,"help.session.howTo.7":`/purge — 会話と構造化メモリを全て削除します。`,"help.session.howTo.8":`/reset confirm — ワークスペース全体をリセット(設定は保持)。`,"help.session.example.1":`/new code-review — コードレビュー用のラベル付きセッションを作成します。`,"help.session.avoid.1":`チャットのみクリアする場合は/clear、完全リセットが必要な場合のみ/resetを使用。`,"help.session.related.1":`チャット入力`,"help.session.related.2":`キーボードショートカット`,"help.cliTools.aria":`CLIツールヘルプ`,"help.cliTools.title":`CLIツール`,"help.cliTools.intro":`バージョン確認、プロジェクト管理、システムプロンプト表示、IDE連携などのユーティリティコマンド。`,"help.cliTools.effect":`情報の表示や開発ツール連携の設定を行います。`,"help.cliTools.use.1":`/versionで現在のjawバージョンを確認`,"help.cliTools.use.2":`/projectで作業ディレクトリを設定`,"help.cliTools.use.3":`/promptでシステムプロンプト全文を表示`,"help.cliTools.howTo.1":`/version — jawバージョンとアクティブCLIのステータスを表示します。`,"help.cliTools.howTo.2":`/project set <パス...> — プロジェクトワークスペースディレクトリを設定します。`,"help.cliTools.howTo.3":`/project list — 現在設定されているプロジェクトパスを表示します。`,"help.cliTools.howTo.4":`/project reset — プロジェクトディレクトリをデフォルトにリセットします。`,"help.cliTools.howTo.5":`/prompt — AIに送信される完全なシステムプロンプトを表示します。`,"help.cliTools.howTo.6":`/ide [pop|on|off] — IDE diffビューを切り替えます(CLI専用)。`,"help.cliTools.example.1":`/project set ~/my-repo — アクティブなプロジェクトディレクトリを設定します。`,"help.cliTools.avoid.1":`IDEコマンドはCLIモードでのみ動作し、Web UIでは使用不可。`,"help.cliTools.related.1":`アクティブCLI`,"help.cliTools.related.2":`モデル`,"help.agentControl.aria":`エージェント制御ヘルプ`,"help.agentControl.title":`エージェント制御`,"help.agentControl.intro":`AIエージェントの動作を制御 — メッセージ転送、思考表示、フラッシュモデル設定など。`,"help.agentControl.effect":`現在のセッションのエージェントランタイム動作を変更します。`,"help.agentControl.use.1":`/forwardでチャンネル間メッセージ転送を切り替え`,"help.agentControl.use.2":`/thoughtでGeminiの思考プロセスの表示/非表示`,"help.agentControl.use.3":`/flushでコンテキスト管理用フラッシュモデルを設定`,"help.agentControl.howTo.1":`/forward [on|off] — アクティブチャンネルへのメッセージ転送を切り替えます。`,"help.agentControl.howTo.2":`/thought [on|off] — Geminiの思考プロセスの表示/非表示。`,"help.agentControl.howTo.3":`/flush <cli> <model> — コンテキスト圧縮用フラッシュモデルを設定します。`,"help.agentControl.howTo.4":`/flush off — フラッシュモデルを無効化します。`,"help.agentControl.howTo.5":`/steer <プロンプト> — 実行中のエージェントを中断し方向を変更します。`,"help.agentControl.howTo.6":`/status — CLI、モデル、チャンネル、エージェントの現在の状態を表示します。`,"help.agentControl.example.1":`/forward on — アクティブチャンネルへのメッセージ転送を有効にします。`,"help.agentControl.avoid.1":`エージェント作業中に転送を切り替えないでください。`,"help.agentControl.related.1":`モデル`,"help.agentControl.related.2":`フラッシュエージェント`,"help.goals.aria":`目標ヘルプ`,"help.goals.title":`目標と計画`,"help.goals.intro":`永続的な目標と構造化された計画ワークフロー — 目標設定、PABCDオーケストレーション、要件インタビュー、マルチセッション作業管理。`,"help.goals.effect":`目標・計画コマンドはセッション間で持続する状態を作成し、AIを構造化された開発フェーズに導きます。`,"help.goals.use.1":`/goalで永続的な開発目標を設定`,"help.goals.use.2":`/planまたは/orchestrateでPABCD構造化計画を実行`,"help.goals.use.3":`/interviewで不明確な要件を整理`,"help.goals.howTo.1":`/goal <目標> — 新しい永続的な開発目標を設定します。`,"help.goals.howTo.2":`/goal status — 現在の目標と進捗チェックポイントを表示します。`,"help.goals.howTo.3":`/goal run — アクティブな目標の作業を再開します。`,"help.goals.howTo.4":`/goal plan [ヒント] — AI主導の目標計画。エイリアス: /goalplan`,"help.goals.howTo.5":`/goal done — 現在の目標を完了としてマークします。`,"help.goals.howTo.6":`/goal cancel — アクティブな目標をキャンセルします。`,"help.goals.howTo.7":`/goal pause / resume — 目標を手動で一時停止/再開します。`,"help.goals.howTo.8":`/goal history — 完了/キャンセルされた目標の履歴を表示します。`,"help.goals.howTo.9":`/plan [リクエスト|status|copy] — PABCD計画の説明または開始。`,"help.goals.howTo.10":`/interview <リクエスト> — 計画前に要件を整理します。`,"help.goals.example.1":`/goal ユーザー認証の実装 — AIがセッション間で継続的に取り組む目標を設定します。`,"help.goals.avoid.1":`曖昧な目標は避けてください — 具体的に何を作るか明示。`,"help.goals.related.1":`オーケストレーション`,"help.goals.related.2":`従業員`,"help.section.commands":`コマンドリファレンス`,"help.session.subcmd.1":`/new [ラベル] — オプションのラベル付きで新しいチャットセッションを開始します`,"help.session.subcmd.2":`/switch <番号> — セッション番号で切り替えます(エイリアス: /sw, /<番号>)`,"help.session.subcmd.3":`/sessions — 全セッション一覧を表示します(エイリアス: /ss)`,"help.session.subcmd.4":`/clear — 現在のチャット画面をクリアします`,"help.session.subcmd.5":`/clear all — 画面と全会話履歴を削除します`,"help.session.subcmd.6":`/compact [指示] — 会話コンテキストを圧縮してトークンを節約します`,"help.session.subcmd.7":`/purge — 会話と構造化メモリを全て削除します`,"help.session.subcmd.8":`/reset confirm — ワークスペース全体をリセットします(設定は保持)`,"help.session.subcmd.9":`/quit — プロセスを終了します(エイリアス: /q, /exit; CLI専用)`,"help.orchestration.subcmd.1":`/orchestrate I — インタビューモードに入り要件を整理します`,"help.orchestration.subcmd.2":`/orchestrate P — 計画モードに入りプランを作成します`,"help.orchestration.subcmd.3":`/orchestrate A — 監査モードに入りプランをレビューします`,"help.orchestration.subcmd.4":`/orchestrate B — ビルドモードに入り実装します`,"help.orchestration.subcmd.5":`/orchestrate C — チェックモードに入り最終検証します`,"help.orchestration.subcmd.6":`/orchestrate D — 完了モードに入りIDLEに復帰します`,"help.orchestration.subcmd.7":`/orchestrate status — 現在のPABCDフェーズを表示します`,"help.orchestration.subcmd.8":`/orchestrate reset — 任意のフェーズからIDLEに復帰します(エイリアス: /pabcd)`,"help.goals.subcmd.1":`/goal <目標> — 新しい永続目標を設定します`,"help.goals.subcmd.2":`/goal plan [ヒント] — AI駆動の目標計画を実行します`,"help.goals.subcmd.3":`/goal status — アクティブな目標の状態を表示します`,"help.goals.subcmd.4":`/goal run — 目標の実行を継続します`,"help.goals.subcmd.5":`/goal done [メモ] — 目標を完了としてマークします`,"help.goals.subcmd.6":`/goal cancel [理由] — アクティブな目標をキャンセルします`,"help.goals.subcmd.7":`/goal pause — アクティブな目標を一時停止します`,"help.goals.subcmd.8":`/goal resume — 一時停止した目標を再開します`,"help.goals.subcmd.9":`/goal clear — 目標データを初期化します`,"help.goals.subcmd.10":`/goal reset — 目標の状態をリセットします`,"help.goals.subcmd.11":`/goal history — 完了した目標の履歴を表示します`,"help.goals.subcmd.12":`/goalplan [ヒント] — /goal planのエイリアスです`,"help.goals.subcmd.13":`/plan [リクエスト] — 構造化されたPABCD計画を作成します`,"help.goals.subcmd.14":`/plan status — 現在の計画状態を表示します`,"help.goals.subcmd.15":`/plan copy — 計画内容をクリップボードにコピーします`,"help.goals.subcmd.16":`/interview <リクエスト> — 構造的に要件を整理します`,"help.goals.subcmd.17":`/deliberate <リクエスト> — 計画者、設計者、批評家の役割で審議します`,"help.goals.subcmd.18":`/planaudit [計画] — 読み取り専用の従業員監査タスクを作成します`,"help.goals.subcmd.19":`/team plan <目標> — 並列チーム計画を開始します`,"help.goals.subcmd.20":`/team audit — チーム監査を実行します`,"help.goals.subcmd.21":`/team status — チーム実行状態を表示します`,"help.goals.subcmd.22":`/team collect — チームの結果を収集します`,"help.goals.subcmd.23":`/team stop — チーム実行を停止します`,"help.goals.subcmd.24":`/goal refine <目標> — AIが選択したplan-mode目標を確定します`,"help.goals.subcmd.25":`/gd [メモ] — アクティブな目標を強制完了します。/goal done --forceのエイリアスです`,"help.activeCli.subcmd.1":`/cli — 現在のアクティブCLIを表示します`,"help.activeCli.subcmd.2":`/cli <名前> — CLIエンジンを切り替えます(claude, codex, gemini等)`,"help.activeCli.subcmd.3":`/status — システム全体の状態を表示します`,"help.model.subcmd.1":`/model — 現在のモデルを表示します`,"help.model.subcmd.2":`/model <名前> — アクティブCLIのモデルを変更します`,"help.skills.subcmd.1":`/skill — インストール済みのアクティブスキル一覧を表示します`,"help.skills.subcmd.2":`/skill list — アクティブ+参照可能な全スキルを表示します`,"help.skills.subcmd.3":`/skill reset — ディスクから全スキルを再読み込みします`,"help.employees.subcmd.1":`/employee — 登録済みの従業員一覧を表示します`,"help.employees.subcmd.2":`/employee sessions-reset — 保存済み従業員 resume セッションのみクリアします`,"help.mcp.subcmd.1":`/mcp — MCPサーバー一覧を表示します`,"help.mcp.subcmd.2":`/mcp sync — MCPツールを同期します`,"help.mcp.subcmd.3":`/mcp install — MCPサーバーをインストールします`,"help.mcp.subcmd.4":`/browser status — ブラウザ接続状態を表示します`,"help.mcp.subcmd.5":`/browser tabs — 開いているタブ一覧を表示します`,"help.memory.subcmd.1":`/memory — メモリ概要を表示します`,"help.memory.subcmd.2":`/memory <検索語> — 保存されたメモリを検索します`,"help.flushAgent.subcmd.1":`/flush — 現在のフラッシュ設定を表示します`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 指定CLIのフラッシュモデルを設定します`,"help.flushAgent.subcmd.3":`/flush off — フラッシュモデルを無効にします`,"help.fallbackOrder.subcmd.1":`/fallback — 現在のフォールバック順序を表示します`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — フォールバックCLI順序を設定します`,"help.fallbackOrder.subcmd.3":`/fallback off — フォールバックを無効にします`,"help.agentControl.subcmd.1":`/forward on — アクティブチャンネルへのメッセージ転送を有効にします`,"help.agentControl.subcmd.2":`/forward off — メッセージ転送を無効にします`,"help.agentControl.subcmd.3":`/thought on — Geminiの思考プロセスを表示します`,"help.agentControl.subcmd.4":`/thought off — Geminiの思考プロセスを非表示にします`,"help.agentControl.subcmd.5":`/steer <プロンプト> — 実行中のエージェントを中断し方向を変更します`,"help.agentControl.subcmd.6":`/status — CLI、モデル、チャンネル、エージェントの状態を表示します`,"help.cliTools.subcmd.1":`/version — jawバージョンとアクティブCLI状態を表示します`,"help.cliTools.subcmd.2":`/project set <パス...> — プロジェクトワークスペースディレクトリを設定します`,"help.cliTools.subcmd.3":`/project list — 現在のプロジェクトパスを表示します`,"help.cliTools.subcmd.4":`/project reset — プロジェクトディレクトリをデフォルトにリセットします`,"help.cliTools.subcmd.5":`/project clear — プロジェクトディレクトリ設定を初期化します`,"help.cliTools.subcmd.6":`/prompt — AIに送信される全システムプロンプトを表示します`,"help.cliTools.subcmd.7":`/ide pop — IDE diffビューをポップアップで開きます(CLI専用)`,"help.cliTools.subcmd.8":`/ide on — IDE diffビューを有効にします(CLI専用)`,"help.cliTools.subcmd.9":`/ide off — IDE diffビューを無効にします(CLI専用)`,"help.keyboardShortcuts.subcmd.1":`/help — 全コマンド一覧を表示します`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 特定コマンドの詳細ヘルプを表示します`,"help.keyboardShortcuts.subcmd.3":`/commands — コマンドパレットを開きます(エイリアス: /cmd)`,"bgtask.title":`バックグラウンド`,"tg.elicitationExpired":`選択セッションの有効期限が切れました。テキストで返信してください。`,"settings.slack.guide.step1Title":`Slack アプリを作成`,"settings.slack.guide.openApps":`アプリページを開く`,"settings.slack.guide.step2Title":`ボットトークンを貼り付け`,"settings.slack.guide.step3Title":`受信用アプリトークン(任意)`,"settings.slack.guide.step3Desc":`空のままなら送信専用(outbound-only)で動作します`,"settings.slack.guide.botTokenError":`xoxb- で始まるボットトークンが必要です — アプリトークンと入れ替わっていませんか?`,"settings.slack.guide.appTokenError":`xapp- で始まるアプリレベルトークンが必要です — ボットトークンと入れ替わっていませんか?`,"settings.slack.advanced":`詳細設定`,"settings.slack.resetConnection":`接続をリセット`,"settings.slack.resetConfirm":`Slack アプリの接続がリセットされます。続行しますか?`,"settings.slack.resetEmpty":`接続されている Slack アプリはありません。`,"settings.slack.resetFailed":`Slack アプリの接続をリセットできませんでした。もう一度お試しください。`,"settings.slack.resetManagedByEnvironment":`この Slack 接続は環境変数({variables})で管理されています。環境変数を削除して cli-jaw を再起動してから、接続をリセットしてください。`,"settings.slack.managedByEnvironment":`接続設定は環境変数({variables})で管理されているため読み取り専用です。ここで編集するには環境変数を削除し、cli-jaw を再起動してください。`,"settings.slack.attachPort":`接続インスタンスのポート`,"settings.channel.notAttachInstanceHint":`別のインスタンスがこの Slack 接続を所有しています(接続インスタンスのポートを確認)`,"settings.slack.guide.step2Desc":`アプリ設定 → OAuth & Permissions → files:read を確認 → Reinstall to Workspace → Bot User OAuth Token をコピー`,"settings.slack.guide.step3Location":`アプリ設定 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`情報を収集中...`,"slack.progress.working":`作業中`,"slack.files.partialFailure":`⚠️ 一部の添付ファイルを除外しました:`,"slack.files.allFailure":`⚠️ 添付ファイルを処理できなかったため、リクエストを実行しませんでした:`,"slack.files.limit":`ファイルは1件50 MiB、メッセージあたり10件・100 MiBまでです。`,"slack.files.error.external_file_unsupported":`Slack 外部ファイルには対応していません`,"slack.files.error.private_network":`安全でないダウンロード先です`,"slack.files.error.redirect_limit":`リダイレクト上限を超えました`,"slack.files.error.size_exceeded":`ファイルサイズ上限を超えました`,"slack.files.error.message_budget_exceeded":`メッセージの添付容量上限を超えました`,"slack.files.error.missing_scope":`files:read を追加してアプリを再インストールしてください`,"slack.files.error.ingress_cancelled":`処理がキャンセルされました`,"slack.files.error.download_failed":`ファイルをダウンロードできませんでした`,"onboarding.open":`セットアップウィザード`,"onboarding.optional":`任意`,"onboarding.validate":`検証`,"onboarding.save":`保存`,"onboarding.close":`閉じる`,"onboarding.valid":`確認済み: {identity}`,"onboarding.title.telegram":`Telegram に接続`,"onboarding.title.discord":`Discord に接続`,"onboarding.title.slack":`Slack に接続`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`api.slack.com/apps で Create New App → From a manifest を選び、JSON タブにコピーしたマニフェストを貼り付け、アプリを追加するワークスペースを選択して作成してください。`,"onboarding.slackAppName":`アプリ名`,"onboarding.slackAppNameHint":`アプリ名を35文字以内で入力してください。ボット名はここから生成し、使用可能な半角英数字がない場合は cli-jaw になります。`,"onboarding.slackGenerateManifest":`マニフェストを生成`,"onboarding.slackManifestGenerating":`生成中...`,"onboarding.slackManifestReady":`コピーしました`,"onboarding.slackManifestCopiedWithBot":`マニフェストをコピーしました。ボット名: {bot}`,"onboarding.slackManifestError":`マニフェストを生成またはコピーできませんでした。もう一度お試しください。`,"onboarding.slackAppNameError":`アプリ名を1〜35文字で入力してください。`,"onboarding.warning.missingCapabilities":`任意の権限 {capabilities} がないため、その機能のみ無効です。権限を追加してアプリを再インストールしてください。テキストは引き続き利用できます。`,"onboarding.token.botToken":`ボットトークン`,"onboarding.token.appToken":`アプリレベルトークン`,"onboarding.token.guildId":`サーバー ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`次へ`,"onboarding.back":`戻る`,"onboarding.step.1":`1. 取得場所の確認`,"onboarding.step.2":`2. 取得した値を貼り付け`,"onboarding.step.3":`3. 接続の検証`,"onboarding.step.4":`4. 保存`,"onboarding.validating":`確認中...`,"onboarding.validateHint":`「検証」を押して実際の接続を確認してください。通過しないと保存に進めません。`,"onboarding.saveHint":`検証に成功しました。保存すると設定に反映され、チャンネルがすぐ接続されます。`,"onboarding.error.validation_required":`先に検証を通す必要があります。`,"onboarding.error.slack_setup_required":`マニフェストを生成し、発行ページを開いてから次へ進んでください。`,"onboarding.openIssuer":`発行ページを開く`,"onboarding.error.missing_scopes":`トークンは有効ですが、アプリの権限(スコープ)が不足しています。OAuth & Permissions で以下を追加し、アプリを再インストールしてください。`,"onboarding.hint.telegram.botToken":`@BotFather が /newbot の後に返した値です。`,"onboarding.hint.discord.botToken":`Bot タブの Reset Token で生成した値です。`,"onboarding.hint.discord.guildId":`開発者モードを有効にし、サーバーを右クリックして ID をコピー。`,"onboarding.hint.slack.botToken":`OAuth & Permissions の Bot User OAuth Token(xoxb- で始まる)。`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens(xapp-, connections:write)。`,"cmd.memory.embed.estimate":`埋め込み推定`,"cmd.memory.embed.status":`埋め込み状態`,"settings.channel.activeInbound":`受信チャンネル`,"settings.channel.configured":`設定済み`,"settings.channel.notConfigured":`未設定`,"settings.channel.sendCapable":`送信可能`,"settings.channel.sendOnlyHint":`受信チャンネルではありませんが、設定済みなら送信は可能です。`,"settings.channel.statusTitle":`送信状態`,"settings.channel.testSend":`テスト送信`,"settings.channel.testSendFail":`送信失敗: {error}`,"settings.channel.testSendOk":`送信成功`,"onboarding.progressLabel":`{total} ステップ中 {step} ステップ目`,"slack.progress.title":`リクエストの進捗`,"slack.progress.activityTitle":`最近の作業`,"slack.progress.deliveryTitle":`回答の送信`,"slack.progress.queued":`キューで待機中`,"slack.progress.running":`作業を観測中`,"slack.progress.waiting":`次の更新を待機中`,"slack.progress.delivering":`回答を送信中`,"slack.progress.complete":`作業の観測終了`,"slack.progress.workflowComplete":`ワークフローの応答が終了しました。実際の制作結果は別途確認が必要です。`,"slack.progress.unavailable":`活動の更新を表示できません。実行は継続している可能性があります。`,"slack.progress.lastRuntime":`最後の実行シグナル: {seconds}秒前`,"slack.progress.error":`リクエスト失敗`,"slack.progress.cancelled":`リクエスト取消済み`,"slack.progress.expired":`進捗表示が終了しました。実行は続いている可能性があります。`,"slack.progress.merged":`別のリクエストと統合済み`,"slack.progress.removed":`リクエスト削除済み`,"slack.progress.restored":`以前の進捗表示が終了しました。実行結果は確認されていません。`,"slack.progress.failure":`応答を完了できませんでした。`,"slack.progress.elapsed":`経過: {seconds}秒`,"slack.progress.lastActivity":`最後の活動: {seconds}秒前`,"slack.progress.longRunning":`{minutes}分間実行中 — まだ進行中です`,"slack.progress.category.read":`ファイル読取`,"slack.progress.category.write":`ファイル編集`,"slack.progress.category.search":`検索`,"slack.progress.category.web":`ウェブページ読取`,"slack.progress.category.command":`コマンド実行`,"slack.progress.category.external":`外部ツール`,"slack.progress.category.tool":`ツール活動`,"slack.progress.status.observed":`観測済み`,"slack.progress.status.in_progress":`実行中`,"slack.progress.status.complete":`完了`,"slack.progress.status.error":`エラー`,"slack.progress.status.stopped":`停止`,"slack.progress.status.unconfirmed":`完了未確認`,"slack.progress.deliveryComplete":`回答を送信しました`,"slack.progress.deliveryFailed":`回答の送信を確認できませんでした`,"slack.progress.deliveryUnconfirmed":`回答の送信は未確認`,"slack.workflow.unavailable":`自動化の送信元・リクエスト情報、または指定された有効なスキルを確認できなかったため、実行しませんでした。設定を確認してください。`,"slack.workflow.unconfirmed":`登録されたワークフローから実質的な結果が返されませんでした。作業がすでに始まっている可能性があるため、再試行する前に記録を確認してください。`},A={"cmd.help.desc":`命令列表`,"cmd.status.desc":`当前状态`,"cmd.clear.desc":`删除对话 / all: 重置技能+员工+MCP`,"cmd.purge.desc":`删除对话和记忆`,"cmd.purge.tg_desc":`删除对话+记忆`,"cmd.reset.desc":`引导重置(对话/记忆/技能/员工/MCP)`,"cmd.model.desc":`查看/切换模型`,"cmd.cli.desc":`查看/切换当前 CLI`,"cmd.fallback.desc":`设置 CLI fallback 顺序`,"cmd.forward.desc":`开启/关闭 Telegram 自动转发`,"cmd.flush.desc":`查看/切换 flush 模型`,"cmd.version.desc":`版本/CLI 安装状态`,"cmd.skill.desc":`技能列表/重置`,"cmd.employee.desc":`员工管理(列表/模型/CLI/重置/会话清除)`,"cmd.mcp.desc":`MCP 列表/同步/安装`,"cmd.memory.desc":`记忆搜索/列表`,"cmd.browser.desc":`浏览器状态/标签页`,"cmd.prompt.desc":`查看系统提示`,"cmd.quit.desc":`退出进程`,"cmd.file.desc":`附加文件`,"cmd.steer.desc":`中断 Agent 并改用新指示`,"cmd.compact.desc":`压缩对话上下文`,"cmd.compact.tg_desc":`压缩对话上下文`,"cmd.workflow.interview.desc":`计划前澄清需求`,"cmd.workflow.interview.tg_desc":`开始需求访谈`,"cmd.workflow.deliberate.desc":`用多种角色审查计划`,"cmd.workflow.deliberate.tg_desc":`按角色审查计划`,"cmd.workflow.plan.desc":`说明 PABCD 计划流程`,"cmd.workflow.plan.tg_desc":`说明 PABCD 计划`,"cmd.workflow.plan.title":`PABCD 计划指南`,"cmd.workflow.plan.pabcdEquivalent":`在 cli-jaw 中,/plan 不是独立模式,而是 PABCD P:先明确计划,再进入 A 审计、B 构建、C 检查、D 完成。`,"cmd.workflow.plan.noRequest":`没有提供请求。需求不清楚时使用 /interview,需要比较实现方案时使用 /deliberate。`,"cmd.workflow.plan.section.pabcd":`cli-jaw 计划方式`,"cmd.workflow.plan.section.source":`原始请求`,"cmd.workflow.plan.section.next":`下一步`,"cmd.workflow.plan.next.interview":`- 需要澄清需求:/interview <request>`,"cmd.workflow.plan.next.deliberate":`- 需要比较方案:/deliberate <request-or-plan>`,"cmd.workflow.plan.next.planaudit":`- 已有计划:/planaudit <plan>`,"cmd.workflow.plan.next.orchestrate":`- 准备正式进入:/orchestrate P`,"cmd.workflow.plan.footer":`这是说明性 artifact。已批准的计划仍属于 PABCD P。`,"cmd.artifact.action.copy":`复制`,"cmd.artifact.action.reinsert":`放回输入框`,"cmd.artifact.action.sendAsChat":`作为普通消息发送`,"cmd.artifact.action.startPabcd":`用于 PABCD P`,"cmd.workflow.planAudit.desc":`创建只读计划审计任务`,"cmd.workflow.planAudit.tg_desc":`创建计划审计任务`,"cmd.workflow.search.desc":`通过搜索技能路由搜索请求`,"cmd.workflow.search.tg_desc":`通过搜索技能搜索`,"cmd.workflow.goal.desc":`目标状态和受限运行工作流`,"cmd.workflow.goal.tg_desc":`查看目标或运行状态`,"cmd.workflow.team.desc":`并行团队编排`,"cmd.workflow.team.tg_desc":`团队编排`,"cmd.workflow.review.tg_desc":`审查项目目录`,"cmd.workflow.interview.title":`需求访谈`,"cmd.workflow.deliberate.title":`角色式计划审查`,"cmd.workflow.planAudit.title":`只读计划审计`,"cmd.help.tg_desc":`显示可用命令`,"cmd.status.tg_desc":`检查模型、CLI 和会话状态`,"cmd.clear.tg_desc":`重置对话(保留数据)`,"cmd.model.tg_desc":`查看当前 AI 模型`,"cmd.cli.tg_desc":`查看当前 CLI 引擎`,"cmd.fallback.tg_desc":`设置 CLI 自动切换顺序`,"cmd.forward.tg_desc":`开启/关闭自动转发`,"cmd.flush.tg_desc":`设置对话重置使用的模型`,"cmd.version.tg_desc":`检查版本和安装状态`,"cmd.skill.tg_desc":`查看 AI 技能列表`,"cmd.browser.tg_desc":`检查浏览器连接`,"cmd.steer.tg_desc":`把 Agent 转到新任务`,"cmd.steer.noPrompt":`用法:/steer <新指示>`,"cmd.steer.noAgent":`当前没有正在运行的 Agent。`,"cmd.steer.started":`正在转向...`,"cmd.unknown":`未知命令:/{name}
|
|
65
65
|
使用 /help 查看可用命令。`,"cmd.unsupported":`/{name} 不能在 {iface} 中使用。`,"cmd.error":`/{name} 执行出错:{msg}`,"cmd.recovery.originalPrompt":`原始输入`,"cmd.helpTitle":`可用命令`,"cmd.helpDetail":`详细帮助:/help <command>`,"cmd.settingsLoadFail":`无法加载设置。`,"cmd.model.current":`当前模型({cli}):{model}`,"cmd.model.invalid":`模型名称无效。`,"cmd.model.changed":`模型已切换:{model}
|
|
66
66
|
从下一条消息开始生效。`,"cmd.cli.current":`当前 CLI:{cli}
|
|
67
67
|
可用:{available}`,"cmd.cli.unknown":`未知 CLI:{cli}
|
|
@@ -82,4 +82,4 @@ User message: {text}`,"chat.file.uploadFail":`File upload failed: {msg}`,"chat.r
|
|
|
82
82
|
请分析这张图片。`,"chat.file.sentVideo":`[用户发送了视频:{path}]
|
|
83
83
|
请查看这个视频文件。`,"chat.file.sentWithMsg":`
|
|
84
84
|
|
|
85
|
-
用户消息:{text}`,"chat.file.uploadFail":`文件上传失败:{msg}`,"chat.requestFail":`请求失败({status})`,"chat.continue":`正在继续当前任务。`,"chat.noPendingContinue":`没有可继续的待处理工作。`,"chat.voice.label":`🎤 [语音消息]`,"sessionHub.title":`会话`,"sessionHub.description":`按会话查看本地和频道对话。`,"sessionHub.defaultSession":`默认会话`,"sessionHub.sessionLabel":`会话 {seq}`,"sessionHub.source.local":`本地`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`消息`,"sessionHub.lastActivity":`最后活动`,"sessionHub.noActivity":`暂无活动`,"sessionHub.empty.title":`尚无频道会话`,"sessionHub.empty.description":`连接频道后,每个对话会作为会话显示在这里。`,"sessionHub.empty.action":`在设置中连接频道`,"sessionHub.listAria":`会话列表`,"sessionHub.delete":`删除`,"sessionHub.deleteConfirm":`要删除此会话吗?对话记录也会一并删除。`,"sessionHub.deleteRemoteDisabled":`无法删除已连接到频道的会话。`,"sessionHub.deleteFailed":`无法删除会话。请确认该会话是否仍有正在进行的任务。`,"sessionReadonly.message":`当前为只读。发送前请先切换到此会话。`,"sessionReadonly.remote":`连接到频道的会话在网页端为只读。`,"sessionReadonly.switch":`切换到 /{seq}`,"sessionReadonly.openSessions":`打开会话列表`,"sessionReadonly.composeRejected":`此会话为只读。请使用上方的切换操作。`,"sessionReadonly.elicitationRejected":`无法从只读会话发送回复。请切换会话后重试。`,"skill.loadFail":`无法加载技能`,"skill.count":`{active} 个启用 / 共 {total} 个`,"skill.countFiltered":`显示 {shown} 个 / 启用 {active} 个 / 共 {total} 个`,"skill.search.placeholder":`搜索技能...`,"skill.search.aria":`搜索技能`,"skill.search.empty":`没有匹配的技能。`,"skill.filter.all":`全部`,"skill.filter.installed":`已安装`,"skill.filter.productivity":`生产力`,"skill.filter.communication":`通信`,"skill.filter.devtools":`开发`,"skill.filter.utility":`工具`,"skill.filter.smarthome":`家庭`,"skill.filter.other":`其他`,"skill.filter.ai":`人工智能`,"lang.ko":`韩语`,"lang.en":`英语`,"lang.ja":`日语`,"lang.zh":`中文(简体)`,"emp.addPrompt":`添加 Agent`,"emp.delete":`删除`,"emp.customRole":`自定义角色...`,"emp.customModel":`手动输入...`,"role.label.frontend":`前端`,"role.label.backend":`后端`,"role.label.data":`数据`,"role.label.docs":`文档`,"role.label.security":`安全`,"role.label.testing":`测试`,"role.label.custom":`自定义...`,"hb.empty":`暂无 heartbeat`,"hb.name":`名称`,"hb.prompt":`提示...`,"hb.add":`+ 新增 heartbeat`,"hb.kindEvery":`每隔`,"hb.kindCron":`Cron 计划`,"hb.minutesLabel":`分钟`,"hb.cronLabel":`表达式`,"hb.timezoneAuto":`留空 = 系统/浏览器时区`,"hb.cronPlaceholder":`例如 0 9 * * *`,"hb.invalidCron":`Cron 表达式无效。请使用 5 个字段。`,"hb.invalidTimeZone":`时区无效。例如:Asia/Seoul`,"hb.invalidMinutes":`分钟数必须是大于等于 1 的整数。`,"hb.invalidSchedule":`Heartbeat 计划无效。`,"hb.scheduleHintCron":`示例:{cron} · 时区:{timeZone}`,"hb.scheduleHintEvery":`示例:每 {minutes} 分钟 · 时区:{timeZone}`,"cmd.noMatch":`没有匹配的命令`,"mem.noFiles":`还没有记忆文件`,"mem.empty":`还没有记忆`,"memory.banner.bootstrapRerun":`正在重新运行记忆 bootstrap...`,"memory.banner.reindexing":`正在重建记忆索引...`,"memory.banner.soulOptimize":`优化 Soul`,"memory.banner.soulOptimizing":`正在优化 Soul...(当前 CLI 正在处理)`,"memory.banner.soulPromptSent":`✓ Soul 优化提示已发送。请查看聊天窗口。`,"model.promptInput":`输入模型 ID:`,"model.customOption":`手动输入...`,"model.placeholder":`输入模型 ID`,"mcp.syncing":`正在同步...`,"mcp.installing":`正在通过 npm 安装...(最多 2 分钟)`,"settings.none":`(无)`,"cli.gemini.auth":`首次运行时通过浏览器认证`,"cli.copilot.authHint":`copilot login 或 gh auth login`,"cli.showMore":`更多 ▸`,"cli.authRequired":`需要安装/认证`,"cli.notAuthenticated":`需要认证 — 请运行下面的命令`,"drag.drop":`将文件拖到这里`,"status.responding":`正在回复`,"aria.cmdList":`命令列表`,"btn.attach":`附加文件`,"input.placeholder":`输入消息...`,"queue.pendingTitle":`待处理`,"queue.copy":`复制`,"queue.delete":`移除`,"queue.steer":`立即运行(steer)`,"queue.cancelArm":`再次点击取消`,loading:`加载中...`,"btn.editPrompt":`编辑系统提示`,"tg.chatIds.placeholder":`用逗号分隔(留空则允许全部)`,"fallback.desc":`CLI 失败时的自动重试顺序`,"btn.cancel":`取消`,"btn.save":`保存`,"btn.stop":`停止`,"msg.you":`你`,"stat.messages":`消息数:{count}`,"ui.offline.banner":`离线模式 — 正在显示缓存消息`,"time.10m":`10 分钟`,"time.30m":`30 分钟`,"time.manual":`手动`,"phase.plan":`规划`,"phase.verify":`计划评审`,"phase.dev":`开发`,"phase.debug":`调试`,"phase.integrate":`集成`,"orchestrator.allDone":`所有任务已完成`,"orchestrator.continueHint":`输入“continue”继续。`,"orchestrator.noWorklog":`没有可继续的 worklog。`,"orchestrator.alreadyDone":`所有任务都已完成。`,"sidebar.status":`状态`,"sidebar.memory":`记忆`,"sidebar.stats":`统计`,"sidebar.cliStatus":`CLI 状态`,"sidebar.agentName":`Agent 名称`,"sidebar.avatar":`头像`,"sidebar.employees":`员工`,"sidebar.promptTemplates":`提示模板`,"templates.title":`提示结构`,"templates.back":`返回`,"templates.devMode":`开发者模式`,"templates.hint.click":`点击查看模板内容`,"templates.hint.devEdit":`在开发者模式下编辑`,"tab.agents":`Agent`,"tab.skills":`技能`,"tab.settings":`设置`,"btn.saveSettings":`保存`,"btn.addEmployee":`+ 添加`,"btn.off":`关`,"btn.on":`开`,"label.activeCli":`当前 CLI`,"label.model":`模型`,"label.effort":`推理强度`,"label.permissions":`权限`,"label.workingDir":`工作目录`,"label.enabled":`启用`,"label.botToken":`Bot Token(机器人令牌)`,"label.chatIds":`允许的 Chat ID`,"label.forwardAll":`自动转发`,"label.flushEvery":`整理周期`,"emp.empty":`暂无员工`,"modal.promptTitle":`系统提示(A-2)`,"modal.heartbeatTitle":`Heartbeat 任务`,"modal.memoryTitle":`记忆`,"code.copy":`复制`,"code.copied":`已复制 ✓`,"mcp.noServers":`(未配置服务器)`,"mermaid.renderFail":`Mermaid 渲染失败`,"orchestrator.dispatching":`处理中…`,"cmd.ide.desc":`IDE diff 视图`,"cmd.ide.toggled":`IDE diff 模式已切换`,"cmd.ide.popToggled":`IDE 弹窗已切换`,"cmd.ide.usage":`用法:/ide [pop|on|off]`,"label.mentionOnly":`仅 mention 时响应`,"help.section.what":`这是什么`,"help.section.effect":`会改变什么`,"help.section.useWhen":`适用场景`,"help.section.howTo":`使用方法`,"help.section.example":`示例`,"help.section.avoidWhen":`不适用场景`,"help.section.related":`相关项`,"help.close":`关闭`,"help.activeCli.title":`当前 CLI`,"help.activeCli.aria":`当前 CLI 帮助`,"help.activeCli.intro":`选择由哪个 CLI 引擎处理下一次请求。`,"help.activeCli.effect":`下一次运行会使用所选 CLI 的会话、模型设置和工具行为。`,"help.activeCli.use.1":`需要在 Claude、Codex、Gemini、OpenCode 或 Copilot 之间切换时`,"help.activeCli.use.2":`需要比较不同 CLI 引擎行为时`,"help.activeCli.howTo.1":`在当前 CLI 选择器中选择想用的 CLI。`,"help.activeCli.howTo.2":`也可以在聊天中输入 /cli <name>。`,"help.activeCli.example.1":`如果 Claude 受阻,可以切到 Codex 继续同一项工作。`,"help.activeCli.avoid.1":`只需要更换同一 CLI 内的模型时`,"help.activeCli.related.1":`/cli 命令`,"help.activeCli.related.2":`模型选择器`,"help.model.title":`模型`,"help.model.aria":`模型帮助`,"help.model.intro":`选择当前 CLI 使用的模型。`,"help.model.effect":`同一 CLI 后续请求会使用选中的模型名称运行。`,"help.model.use.1":`需要切换到更快或更强的模型时`,"help.model.use.2":`需要按模型能力或成本调节时`,"help.model.howTo.1":`在当前 CLI 旁边的模型选择器中选择模型。`,"help.model.howTo.2":`也可以在聊天中输入 /model <model-name>。`,"help.model.example.1":`普通编码用 Sonnet;需要更深入审查时用 Opus 系列。`,"help.model.avoid.1":`需要更换的是 CLI 引擎本身时`,"help.model.related.1":`/model 命令`,"help.effort.title":`推理强度`,"help.effort.aria":`推理强度帮助`,"help.effort.intro":`在所选模型支持时控制推理深度和速度。`,"help.effort.effect":`支持的模型会在响应速度和推理深度之间重新平衡。`,"help.effort.use.1":`深入代码分析或设计评审需要更多推理时`,"help.effort.use.2":`小任务需要更快完成时`,"help.effort.howTo.1":`从 effort 选择器中选择 low、medium、high 或其他可用值。`,"help.effort.howTo.2":`快速检查用较低 effort,复杂实现前用较高 effort。`,"help.effort.example.1":`错别字修复用 low,大型重构计划用 high。`,"help.effort.avoid.1":`当前模型忽略 effort 设置时`,"help.effort.related.1":`模型支持说明`,"help.permissions.title":`权限`,"help.permissions.aria":`权限帮助`,"help.permissions.intro":`Auto (YOLO) 请求自动批准或跳过权限检查。在此选择器中,YOLO 是 Auto 的显示名称。`,"help.permissions.effect":`自动批准方式、文件访问范围和 Safe 支持情况因 CLI 和传输方式而异。`,"help.permissions.use.1":`本地自动化需要避免反复确认时`,"help.permissions.use.2":`在可信工作目录中运行长任务时`,"help.permissions.howTo.1":`选择 Auto (YOLO) 或 Safe,然后确认已保存的策略。`,"help.permissions.howTo.2":`如果需要审批,请先确认所用运行时是否支持 Safe。`,"help.permissions.example.1":`重复任务需要自动批准时,选择 Auto (YOLO)。明确要求回答的问题仍可能出现。`,"help.permissions.avoid.1":`目录或任务不熟悉、有风险时`,"help.permissions.related.1":`Auto (YOLO) / Safe — 运行时支持情况`,"help.flushAgent.title":`Flush Agent 设置`,"help.flushAgent.aria":`Flush Agent 帮助`,"help.flushAgent.intro":`选择用于总结或 flush 上下文的 CLI 和模型。`,"help.flushAgent.effect":`压缩和 flush 会使用配置的摘要 Agent,而不是当前活动模型。`,"help.flushAgent.use.1":`摘要工作适合交给更快或更稳定的模型时`,"help.flushAgent.use.2":`希望主模型和摘要模型分开时`,"help.flushAgent.howTo.1":`在 Flush Agent 设置中选择负责摘要的 CLI 和模型。`,"help.flushAgent.howTo.2":`长会话前让它和 /flush 流程保持一致。`,"help.flushAgent.example.1":`主工作用 Opus,同时让更快的 Sonnet 整理上下文。`,"help.flushAgent.avoid.1":`当前 CLI 和模型已经足够时`,"help.flushAgent.related.1":`/flush 命令`,"help.employees.title":`员工`,"help.employees.aria":`员工帮助`,"help.employees.intro":`员工是 Boss 可按角色派发的独立 AI 工作者,用于验证或分析。`,"help.employees.effect":`Boss 会从独立 CLI 会话接收审计或验证结果。`,"help.employees.use.1":`需要独立进行前端、后端或文档评审时`,"help.employees.use.2":`PABCD A/B 需要只读验证时`,"help.employees.use.3":`需要把长时间评审从主线程分离出去时`,"help.employees.howTo.1":`/employee reset — 从磁盘重新加载员工配置。`,"help.employees.howTo.2":`员工派发: cli-jaw dispatch --agent "Name" --task "..."。`,"help.employees.howTo.3":`在PABCD A/B中,员工默认仅执行只读审计/验证。`,"help.employees.howTo.4":`使用--mutable标志允许员工修改文件。`,"help.employees.example.1":`Boss 实现时,可以让 Backend 只审计 import 和测试风险。`,"help.employees.avoid.1":`简单查文件`,"help.employees.avoid.2":`小型单文件修改`,"help.employees.avoid.3":`可以直接回答的问题`,"help.employees.related.1":`cli-jaw dispatch 命令`,"help.employees.related.2":`PABCD A/B 阶段`,"help.skills.title":`技能`,"help.skills.aria":`技能帮助`,"help.skills.intro":`技能是面向特定工作流的指令包。`,"help.skills.effect":`Agent 会获得对应工作流的流程、工具和验证规则。`,"help.skills.use.1":`任务需要浏览器控制、GitHub、PDF、文档或测试工作流时`,"help.skills.use.2":`需要稳定执行可重复工作流时`,"help.skills.howTo.1":`/skill — 显示已安装的活跃技能列表。`,"help.skills.howTo.2":`/skill list — 显示活跃技能和可用参考技能。`,"help.skills.howTo.3":`/skill reset — 从磁盘重新加载所有技能。`,"help.skills.howTo.4":`描述任务后,代理会自动选择匹配的技能。`,"help.skills.example.1":`PDF 分析使用 jaw-pdf 技能;前端实现使用 jaw-dev-frontend 指南。`,"help.skills.avoid.1":`普通聊天回复已经足够时`,"help.skills.related.1":`/skill 命令`,"help.activeChannel.title":`当前频道`,"help.activeChannel.aria":`当前频道帮助`,"help.activeChannel.intro":`选择哪个服务接收频道输出。`,"help.activeChannel.effect":`文件发送、通知和定时任务结果会投递到所选频道。`,"help.activeChannel.use.1":`需要在 Telegram 和 Discord 之间切换运营输出时`,"help.activeChannel.use.2":`外部通知目标发生变化时`,"help.activeChannel.howTo.1":`在频道设置中选择 Telegram 或 Discord。`,"help.activeChannel.howTo.2":`发送文件或通知前检查当前频道。`,"help.activeChannel.example.1":`文档文件发到 Telegram,团队提醒发到 Discord。`,"help.activeChannel.avoid.1":`只需要切换转发开关时`,"help.activeChannel.related.1":`Telegram / Discord 设置`,"help.telegram.title":`Telegram 设置`,"help.telegram.aria":`Telegram 帮助`,"help.telegram.intro":`管理 Telegram bot 连接、允许的聊天、mention-only 模式和转发。`,"help.telegram.effect":`允许的 Telegram 聊天可以收发消息、文件、语音输入和任务结果。`,"help.telegram.use.1":`希望通过 Telegram 接收 cli-jaw 更新时`,"help.telegram.use.2":`希望把 Web 回复转发到 Telegram 时`,"help.telegram.link.botfather":`用 BotFather 创建 bot`,"help.telegram.link.docs":`Telegram Bot API 指南`,"help.telegram.howTo.1":`Telegram 应用中搜索 @BotFather 并开始对话。`,"help.telegram.howTo.2":`发送 /newbot,它会询问显示名称。输入一个名字(例如 "Jaw Bot")。`,"help.telegram.howTo.3":`接着输入用户名,必须以 _bot 结尾(例如 jaw_helper_bot)。`,"help.telegram.howTo.4":`成功后 BotFather 会发送 HTTP API token(格式: 1234567890:ABCdef...)。复制它。`,"help.telegram.howTo.5":`打开 ~/.cli-jaw/settings.json,将 token 粘贴到 telegram.token 中。`,"help.telegram.howTo.6":`在 Telegram 中搜索刚创建的 bot → 点击「开始」或发送任意消息(例如 "hello")。`,"help.telegram.howTo.7":`在终端运行 jaw doctor,会显示刚才发送消息的 chat ID(数字)。`,"help.telegram.howTo.8":`将该 chat ID 添加到 settings.json 的 telegram.allowedChatIds 数组中,设置完成!`,"help.telegram.example.1":`离开网页时,也可以通过 Telegram 接收长任务完成后的文件。`,"help.telegram.avoid.1":`Discord 才是当前运营频道时`,"help.telegram.related.1":`/forward 命令`,"help.telegram.related.2":`允许的 chat ID`,"help.discord.title":`Discord 设置`,"help.discord.aria":`Discord 帮助`,"help.discord.intro":`管理 Discord guild 和 channel 路由以及 mention 行为。`,"help.discord.effect":`命令、文件和员工结果会限制在配置的 guild 和 channel 内。`,"help.discord.use.1":`通过服务器频道和斜杠命令运营时`,"help.discord.use.2":`需要将输出限制到特定 guild 或 channel 时`,"help.discord.link.portal":`打开 Discord Developer Portal`,"help.discord.link.docs":`Discord bot 入门指南`,"help.discord.howTo.1":`访问 discord.com/developers/applications 并用 Discord 账号登录。`,"help.discord.howTo.2":`点击右上角「New Application」→ 输入应用名(例如 "Jaw Bot")→ Create。`,"help.discord.howTo.3":`左侧菜单「Bot」标签 → 点击「Reset Token」→ 复制 bot token。(只显示一次,请立即保存!)`,"help.discord.howTo.4":`同一 Bot 页面底部「Privileged Gateway Intents」→ 开启 MESSAGE CONTENT INTENT。(不开的话 bot 无法读取消息!)`,"help.discord.howTo.5":`左侧菜单「OAuth2」→「URL Generator」。`,"help.discord.howTo.6":`SCOPES 勾选 bot 和 applications.commands。下方 BOT PERMISSIONS 选择 Send Messages、Read Message History 等权限。`,"help.discord.howTo.7":`复制页面底部生成的邀请 URL → 粘贴到浏览器 → 选择要添加 bot 的服务器。`,"help.discord.howTo.8":`打开 ~/.cli-jaw/settings.json,填写 discord.token、guildId(服务器 ID)、channelId(频道 ID)。`,"help.discord.howTo.9":`在终端运行 jaw doctor 确认 bot 连接和权限正常,设置完成!`,"help.discord.example.1":`把员工验证结果集中到一个项目频道。`,"help.discord.avoid.1":`你期待通过私信投递时`,"help.discord.related.1":`jaw doctor 命令`,"help.discord.related.2":`Discord 降级模式`,"help.slack.title":`Slack`,"help.slack.aria":`Slack 帮助`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`点击下方指南卡中的“复制清单”,然后在 api.slack.com/apps → Create New App → From a manifest 粘贴以创建应用。`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback 设置`,"help.fallbackOrder.aria":`Fallback 帮助`,"help.fallbackOrder.intro":`设置当前 CLI 失败或不可用时尝试其他 CLI 的顺序。`,"help.fallbackOrder.effect":`系统会按顺序尝试其他 CLI,减少供应商故障或额度问题造成的中断。`,"help.fallbackOrder.use.1":`某个 provider 过载,需要自动备用方案时`,"help.fallbackOrder.use.2":`长任务需要降低中途停止概率时`,"help.fallbackOrder.howTo.1":`在 Fallback 设置中配置重试顺序。`,"help.fallbackOrder.howTo.2":`排查根因时可停用或简化 fallback。`,"help.fallbackOrder.example.1":`Claude 过载时,可按顺序继续尝试 Codex 或 Gemini。`,"help.fallbackOrder.avoid.1":`失败时需要立即停下来调试时`,"help.fallbackOrder.related.1":`/fallback 命令`,"help.mcp.title":`MCP 服务器`,"help.mcp.aria":`MCP 帮助`,"help.mcp.intro":`MCP 服务器把 Agent 连接到外部工具和资源。`,"help.mcp.effect":`已安装的服务器会同步到 Claude、Codex、Gemini 等 CLI 的工具列表。`,"help.mcp.use.1":`任务需要访问外部应用、数据或工具时`,"help.mcp.use.2":`需要在多个 CLI 间同步同一套工具配置时`,"help.mcp.howTo.1":`/mcp — 显示已连接的MCP服务器和工具列表。`,"help.mcp.howTo.2":`/mcp sync — 将MCP服务器与活动CLI重新同步。`,"help.mcp.howTo.3":`/mcp install — 从注册表安装新的MCP服务器。`,"help.mcp.howTo.4":`使用MCP设置面板(⚙️)添加、编辑或删除服务器。`,"help.mcp.example.1":`添加 filesystem MCP 后,Agent 可以更可靠地检查允许的文件夹。`,"help.mcp.avoid.1":`本地文件和内置工具已经足够时`,"help.mcp.related.1":`/mcp 命令`,"help.memory.title":`记忆`,"help.memory.aria":`记忆帮助`,"help.memory.intro":`保存长期项目事实、用户偏好和上下文。`,"help.memory.effect":`保存的决策和偏好可在后续会话或 compact 后再次搜索并注入。`,"help.memory.use.1":`决策或偏好需要跨会话保留时`,"help.memory.use.2":`长项目需要稳定的上下文连续性时`,"help.memory.howTo.1":`/memory — 列出所有已保存的记忆条目。`,"help.memory.howTo.2":`/memory <关键词> — 搜索匹配的记忆条目。`,"help.memory.howTo.3":`记忆存储在 memory/ 目录下的结构化文件中。`,"help.memory.howTo.4":`保存长期决策和偏好,不要保存临时清单或原始日志。`,"help.memory.example.1":`保存“这个项目保持 vanilla JS”;不要保存“今天还剩三个测试”。`,"help.memory.avoid.1":`只是保存临时清单或原始日志时`,"help.memory.related.1":`/memory 命令`,"help.memory.related.2":`flush / bootstrap 流程`,"help.stt.title":`语音识别`,"help.stt.aria":`语音识别帮助`,"help.stt.intro":`配置浏览器语音输入的 speech-to-text。`,"help.stt.effect":`语音按钮录下的内容会由所选 STT 引擎转写为聊天文本。`,"help.stt.use.1":`想用语音输入较长指示时`,"help.stt.use.2":`需要选择 Gemini、OpenAI 或 Whisper STT 时`,"help.stt.howTo.1":`选择 STT provider,并配置所需 API key。`,"help.stt.howTo.2":`按下语音按钮录音,然后检查转写文本。`,"help.stt.example.1":`口述较长会议记录,再让 Agent 总结。`,"help.stt.avoid.1":`文本输入足够,或尚未配置 API key 时`,"help.stt.related.1":`语音按钮`,"help.promptTemplates.title":`提示模板`,"help.promptTemplates.aria":`提示模板帮助`,"help.promptTemplates.intro":`保存常用工作流的可复用提示块。`,"help.promptTemplates.effect":`选中的模板会作为可重复指令插入到新请求中。`,"help.promptTemplates.use.1":`需要让重复指令保持一致时`,"help.promptTemplates.use.2":`不想每次重写很长的准备说明时`,"help.promptTemplates.howTo.1":`在提示模板弹窗中创建并保存模板。`,"help.promptTemplates.howTo.2":`重复工作流开始前选择相应模板。`,"help.promptTemplates.example.1":`把同一套代码审查清单保存下来,避免每次重打。`,"help.promptTemplates.avoid.1":`一次性的短指令直接写在聊天里更清楚时`,"help.promptTemplates.related.1":`提示模板弹窗`,"help.chatInput.title":`聊天输入`,"help.chatInput.aria":`聊天输入帮助`,"help.chatComposer.aria":`聊天输入和键盘快捷键帮助`,"help.chatInput.intro":`用于发送任务指令、斜杠命令和附件的主要输入框。`,"help.chatInput.effect":`消息会按当前 CLI 和设置发送,附件也会随请求一起处理。`,"help.chatInput.use.1":`开始新任务或继续当前工作时`,"help.chatInput.use.2":`运行 /help 或 /pabcd 等斜杠命令时`,"help.chatInput.use.3":`需要同时发送文本和文件时`,"help.chatInput.howTo.1":`输入消息后点击 Send,或使用支持的发送快捷键。`,"help.chatInput.howTo.2":`用附件按钮或拖放添加文件后再发送。`,"help.chatInput.example.1":`输入“review this diff”,并附上相关文件。`,"help.chatInput.avoid.1":`只执行命令时,使用斜杠命令比模糊文字更安全。`,"help.chatInput.avoid.2":`不要把原始密钥或 token 直接粘贴到聊天里。`,"help.chatInput.related.1":`附件`,"help.chatInput.related.2":`键盘快捷键`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD 帮助`,"help.orchestration.intro":`PABCD 是把规划、审计、构建、检查和完成分开的工作流。`,"help.orchestration.effect":`每个阶段只做一件事,让大范围修改更安全、更容易审查。`,"help.orchestration.use.1":`任务会涉及多个文件或功能时`,"help.orchestration.use.2":`需要员工审计或实现验证时`,"help.orchestration.use.3":`希望先确认计划再改代码时`,"help.orchestration.howTo.1":`/orchestrate I — 进入访谈模式,梳理需求。`,"help.orchestration.howTo.2":`/orchestrate P — 进入规划模式,编写计划。`,"help.orchestration.howTo.3":`/orchestrate A — 进入审计模式,审查计划。`,"help.orchestration.howTo.4":`/orchestrate B — 进入构建模式,执行实现。`,"help.orchestration.howTo.5":`/orchestrate C — 进入检查模式,最终验证。`,"help.orchestration.howTo.6":`/orchestrate D — 进入完成模式,返回空闲。`,"help.orchestration.howTo.7":`/orchestrate status — 显示当前 PABCD 阶段。`,"help.orchestration.howTo.8":`/orchestrate reset — 从任意阶段返回空闲。`,"help.orchestration.example.1":`先在 P 阶段规划,在 A 阶段审计,再在 B 阶段实现。`,"help.orchestration.avoid.1":`只需要一句回答或简单状态检查时`,"help.orchestration.avoid.2":`紧急任务应先缩小范围。`,"help.orchestration.related.1":`员工`,"help.orchestration.related.2":`键盘快捷键`,"help.attachments.title":`附件`,"help.attachments.aria":`附件帮助`,"help.attachments.intro":`把图片、文档、日志或代码文件随当前消息一起发送的区域。`,"help.attachments.effect":`附件会进入请求上下文,Agent 可以读取或分析它们。`,"help.attachments.use.1":`需要用截图或错误日志说明问题时`,"help.attachments.use.2":`需要直接审查文档或代码文件时`,"help.attachments.use.3":`多个相关文件需要一起发送时`,"help.attachments.howTo.1":`使用附件按钮,或把文件拖到聊天区域。`,"help.attachments.howTo.2":`发送前在预览中移除错误文件。`,"help.attachments.example.1":`把错误截图和日志文件一起发送,询问根因。`,"help.attachments.avoid.1":`不要附加凭证文件或包含 token 的文件。`,"help.attachments.avoid.2":`无关的大文件会降低分析质量。`,"help.attachments.related.1":`聊天输入`,"help.attachments.related.2":`记忆`,"help.diagrams.title":`图表`,"help.diagrams.aria":`图表帮助`,"help.diagrams.intro":`在回答中直接渲染 SVG、Mermaid 和交互式图表。`,"help.diagrams.effect":`复杂流程、结构和比较比纯文字更容易快速浏览。`,"help.diagrams.use.1":`需要文件变更地图或系统流程时`,"help.diagrams.use.2":`需要快速概览 PABCD 计划或审计结果时`,"help.diagrams.use.3":`需要放大或复制已渲染图表时`,"help.diagrams.howTo.1":`可用时使用图表按钮进行放大、复制或保存。`,"help.diagrams.howTo.2":`如果文字偏移或线条不可见,请报告渲染问题。`,"help.diagrams.example.1":`要求用方框和箭头展示工作范围。`,"help.diagrams.avoid.1":`精确原文或长代码用文本更清楚。`,"help.diagrams.avoid.2":`不要把包含秘密信息的屏幕直接可视化。`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`附件`,"help.keyboardShortcuts.title":`键盘快捷键`,"help.keyboardShortcuts.aria":`键盘快捷键帮助`,"help.keyboardShortcuts.intro":`Jaw UI 和浏览器快捷键说明,用来减少重复点击。`,"help.keyboardShortcuts.effect":`输入、语音、帮助和仪表盘导航都可以用键盘更快完成。`,"help.keyboardShortcuts.use.1":`希望不用鼠标执行常用操作时`,"help.keyboardShortcuts.use.2":`需要确认快捷键是否会打断输入时`,"help.keyboardShortcuts.use.3":`寻找 Manager dashboard 快捷键设置时`,"help.keyboardShortcuts.howTo.1":`Classic Web:在聊天输入框中按 Enter 发送,Shift+Enter 换行,斜杠命令从同一个输入框里的 / 开始;STT 录音可用 Ctrl+Shift+Space 或 Alt/Option+M 切换。`,"help.keyboardShortcuts.howTo.2":`Manager:不在编辑器中时,? 打开快捷键帮助;Alt+I、Alt+P、Alt+N 跳到 Instances、active Preview 和 Notes;Alt+K 与 Alt+J 选择上一个或下一个实例。`,"help.keyboardShortcuts.howTo.3":`Manager Notes:Cmd/Ctrl+S 保存,Cmd/Ctrl+E 在 Raw/Preview/WYSIWYG 间切换,Cmd/Ctrl+Shift+F 打开笔记搜索,Cmd/Ctrl+P 切换 quick switcher,Cmd/Ctrl+Delete 或 Cmd/Ctrl+Backspace 将选中的笔记或文件夹移到废纸篓。`,"help.keyboardShortcuts.example.1":`在聊天输入框按 Enter 发送;需要换行时使用 Shift+Enter。`,"help.keyboardShortcuts.example.2":`在 Manager 中,当焦点不在输入框或编辑器里时,按 ? 打开这个快捷键帮助。`,"help.keyboardShortcuts.avoid.1":`与浏览器默认快捷键冲突时,请换用其他组合。`,"help.keyboardShortcuts.avoid.2":`全局快捷键不应覆盖正在编辑的文本。`,"help.keyboardShortcuts.related.1":`聊天输入`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`会话帮助`,"help.session.title":`会话`,"help.session.intro":`管理聊天会话 — 创建新会话、切换会话、清除对话、重置工作区等。`,"help.session.effect":`会话命令仅操作当前对话状态,不影响AI代理配置。`,"help.session.use.1":`使用/new开始新对话`,"help.session.use.2":`在多个聊天会话间切换`,"help.session.use.3":`使用/clear或/compact整理对话记录`,"help.session.howTo.1":`/new [标签] — 创建新聊天会话,可附加标签。`,"help.session.howTo.2":`/switch <序号> — 按序号切换会话。别名:/sw`,"help.session.howTo.3":`/sessions — 列出所有可用会话。别名:/ss`,"help.session.howTo.4":`/clear — 清除当前聊天屏幕。`,"help.session.howTo.5":`/clear all — 清除屏幕并删除所有对话历史。`,"help.session.howTo.6":`/compact [指令] — 压缩对话上下文以节省 token。`,"help.session.howTo.7":`/purge — 清除对话和所有结构化记忆。`,"help.session.howTo.8":`/reset confirm — 完全重置工作区(保留设置)。`,"help.session.example.1":`/new code-review — 创建一个带标签的代码审查会话。`,"help.session.avoid.1":`仅清除聊天用/clear,需要完全重置时才用/reset。`,"help.session.related.1":`聊天输入`,"help.session.related.2":`键盘快捷键`,"help.cliTools.aria":`CLI工具帮助`,"help.cliTools.title":`CLI工具`,"help.cliTools.intro":`版本检查、项目管理、查看系统提示词、IDE集成等实用命令。`,"help.cliTools.effect":`显示信息或配置开发工具集成。`,"help.cliTools.use.1":`使用/version检查当前jaw版本`,"help.cliTools.use.2":`使用/project设置工作目录`,"help.cliTools.use.3":`使用/prompt查看完整系统提示词`,"help.cliTools.howTo.1":`/version — 显示 jaw 版本和活动 CLI 状态。`,"help.cliTools.howTo.2":`/project set <路径...> — 设置项目工作目录。`,"help.cliTools.howTo.3":`/project list — 显示当前配置的项目路径。`,"help.cliTools.howTo.4":`/project reset — 将项目目录重置为默认。`,"help.cliTools.howTo.5":`/prompt — 查看发送给 AI 的完整系统提示词。`,"help.cliTools.howTo.6":`/ide [pop|on|off] — 切换 IDE diff 视图(仅 CLI)。`,"help.cliTools.example.1":`/project set ~/my-repo — 设置活动项目目录。`,"help.cliTools.avoid.1":`IDE命令仅在CLI模式下工作,Web UI中不可用。`,"help.cliTools.related.1":`活动CLI`,"help.cliTools.related.2":`模型`,"help.agentControl.aria":`代理控制帮助`,"help.agentControl.title":`代理控制`,"help.agentControl.intro":`控制AI代理行为 — 消息转发、思考显示、刷新模型设置等。`,"help.agentControl.effect":`更改当前会话的代理运行时行为。`,"help.agentControl.use.1":`使用/forward切换频道间消息转发`,"help.agentControl.use.2":`使用/thought显示或隐藏Gemini思考过程`,"help.agentControl.use.3":`使用/flush设置上下文管理的刷新模型`,"help.agentControl.howTo.1":`/forward [on|off] — 切换向活动频道的消息转发。`,"help.agentControl.howTo.2":`/thought [on|off] — 显示或隐藏 Gemini 思考过程。`,"help.agentControl.howTo.3":`/flush <cli> <model> — 设置上下文压缩的刷新模型。`,"help.agentControl.howTo.4":`/flush off — 禁用刷新模型。`,"help.agentControl.howTo.5":`/steer <提示> — 中断运行中的代理并重新引导。`,"help.agentControl.howTo.6":`/status — 显示 CLI、模型、频道和代理的当前状态。`,"help.agentControl.example.1":`/forward on — 启用向活动频道的消息转发。`,"help.agentControl.avoid.1":`代理工作期间不要切换转发。`,"help.agentControl.related.1":`模型`,"help.agentControl.related.2":`刷新代理`,"help.goals.aria":`目标帮助`,"help.goals.title":`目标与规划`,"help.goals.intro":`持久目标和结构化规划工作流 — 设定目标、运行PABCD编排、需求访谈、多会话工作管理。`,"help.goals.effect":`目标和规划命令创建跨会话持久状态,引导AI通过结构化开发阶段。`,"help.goals.use.1":`使用/goal设定持久开发目标`,"help.goals.use.2":`使用/plan或/orchestrate运行PABCD结构化规划`,"help.goals.use.3":`使用/interview整理不明确的需求`,"help.goals.howTo.1":`/goal <目标> — 设定新的持久开发目标。`,"help.goals.howTo.2":`/goal status — 显示当前目标和进度检查点。`,"help.goals.howTo.3":`/goal run — 继续执行活动目标。`,"help.goals.howTo.4":`/goal plan [提示] — AI驱动目标规划。别名:/goalplan`,"help.goals.howTo.5":`/goal done — 将当前目标标记为完成。`,"help.goals.howTo.6":`/goal cancel — 取消活动目标。`,"help.goals.howTo.7":`/goal pause / resume — 手动暂停或恢复目标。`,"help.goals.howTo.8":`/goal history — 显示已完成和已取消的目标。`,"help.goals.howTo.9":`/plan [request|status|copy] — 说明或启动 PABCD 规划。`,"help.goals.howTo.10":`/interview <请求> — 在规划前梳理需求。`,"help.goals.example.1":`/goal 实现用户认证 — 设定AI跨会话持续工作的目标。`,"help.goals.avoid.1":`避免模糊目标 — 具体说明要构建什么。`,"help.goals.related.1":`编排`,"help.goals.related.2":`员工`,"help.section.commands":`命令参考`,"help.session.subcmd.1":`/new [标签] — 创建带可选标签的新聊天会话`,"help.session.subcmd.2":`/switch <编号> — 按会话编号切换(别名: /sw, /<编号>)`,"help.session.subcmd.3":`/sessions — 显示所有会话列表(别名: /ss)`,"help.session.subcmd.4":`/clear — 清除当前聊天屏幕`,"help.session.subcmd.5":`/clear all — 清除屏幕并删除所有对话记录`,"help.session.subcmd.6":`/compact [指令] — 压缩对话上下文以节省令牌`,"help.session.subcmd.7":`/purge — 删除对话和结构化记忆`,"help.session.subcmd.8":`/reset confirm — 全面重置工作空间(保留设置)`,"help.session.subcmd.9":`/quit — 退出进程(别名: /q, /exit; 仅CLI)`,"help.orchestration.subcmd.1":`/orchestrate I — 进入访谈模式以整理需求`,"help.orchestration.subcmd.2":`/orchestrate P — 进入计划模式以编写方案`,"help.orchestration.subcmd.3":`/orchestrate A — 进入审计模式以审查方案`,"help.orchestration.subcmd.4":`/orchestrate B — 进入构建模式以实施`,"help.orchestration.subcmd.5":`/orchestrate C — 进入检查模式以最终验证`,"help.orchestration.subcmd.6":`/orchestrate D — 进入完成模式并返回IDLE`,"help.orchestration.subcmd.7":`/orchestrate status — 显示当前PABCD阶段`,"help.orchestration.subcmd.8":`/orchestrate reset — 从任何阶段返回IDLE(别名: /pabcd)`,"help.goals.subcmd.1":`/goal <目标> — 设置新的持久目标`,"help.goals.subcmd.2":`/goal plan [提示] — AI驱动的目标规划`,"help.goals.subcmd.3":`/goal status — 显示活动目标状态`,"help.goals.subcmd.4":`/goal run — 继续目标执行`,"help.goals.subcmd.5":`/goal done [备注] — 将目标标记为完成`,"help.goals.subcmd.6":`/goal cancel [原因] — 取消活动目标`,"help.goals.subcmd.7":`/goal pause — 暂停活动目标`,"help.goals.subcmd.8":`/goal resume — 恢复已暂停的目标`,"help.goals.subcmd.9":`/goal clear — 清除目标数据`,"help.goals.subcmd.10":`/goal reset — 重置目标状态`,"help.goals.subcmd.11":`/goal history — 显示已完成目标历史`,"help.goals.subcmd.12":`/goalplan [提示] — /goal plan的别名`,"help.goals.subcmd.13":`/plan [请求] — 创建结构化PABCD计划`,"help.goals.subcmd.14":`/plan status — 显示当前计划状态`,"help.goals.subcmd.15":`/plan copy — 复制计划内容到剪贴板`,"help.goals.subcmd.16":`/interview <请求> — 结构化需求整理`,"help.goals.subcmd.17":`/deliberate <请求> — 多角色审议(规划者、架构师、评论家)`,"help.goals.subcmd.18":`/planaudit [计划] — 创建只读员工审计任务`,"help.goals.subcmd.19":`/team plan <目标> — 开始并行团队计划`,"help.goals.subcmd.20":`/team audit — 运行团队审计`,"help.goals.subcmd.21":`/team status — 显示团队执行状态`,"help.goals.subcmd.22":`/team collect — 收集团队结果`,"help.goals.subcmd.23":`/team stop — 停止团队执行`,"help.goals.subcmd.24":`/goal refine <目标> — 确定AI选择的plan-mode目标`,"help.goals.subcmd.25":`/gd [备注] — 强制完成当前目标;/goal done --force的别名`,"help.activeCli.subcmd.1":`/cli — 显示当前活动CLI`,"help.activeCli.subcmd.2":`/cli <名称> — 切换CLI引擎(claude, codex, gemini等)`,"help.activeCli.subcmd.3":`/status — 显示完整系统状态`,"help.model.subcmd.1":`/model — 显示当前模型`,"help.model.subcmd.2":`/model <名称> — 更改活动CLI的模型`,"help.skills.subcmd.1":`/skill — 列出已安装的活动技能`,"help.skills.subcmd.2":`/skill list — 列出所有活动和参考技能`,"help.skills.subcmd.3":`/skill reset — 从磁盘重新加载所有技能`,"help.employees.subcmd.1":`/employee — 显示注册员工列表`,"help.employees.subcmd.2":`/employee sessions-reset — 仅清除已保存的员工 resume 会话`,"help.mcp.subcmd.1":`/mcp — 显示MCP服务器列表`,"help.mcp.subcmd.2":`/mcp sync — 同步MCP工具`,"help.mcp.subcmd.3":`/mcp install — 安装MCP服务器`,"help.mcp.subcmd.4":`/browser status — 显示浏览器连接状态`,"help.mcp.subcmd.5":`/browser tabs — 显示已打开标签页列表`,"help.memory.subcmd.1":`/memory — 显示记忆概览`,"help.memory.subcmd.2":`/memory <关键词> — 搜索已保存的记忆`,"help.flushAgent.subcmd.1":`/flush — 显示当前刷新设置`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 设置指定CLI的刷新模型`,"help.flushAgent.subcmd.3":`/flush off — 禁用刷新模型`,"help.fallbackOrder.subcmd.1":`/fallback — 显示当前回退顺序`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — 设置回退CLI顺序`,"help.fallbackOrder.subcmd.3":`/fallback off — 禁用回退`,"help.agentControl.subcmd.1":`/forward on — 启用向活动频道的消息转发`,"help.agentControl.subcmd.2":`/forward off — 禁用消息转发`,"help.agentControl.subcmd.3":`/thought on — 显示Gemini思考过程`,"help.agentControl.subcmd.4":`/thought off — 隐藏Gemini思考过程`,"help.agentControl.subcmd.5":`/steer <提示> — 中断运行中的代理并重定向`,"help.agentControl.subcmd.6":`/status — 显示CLI、模型、频道和代理状态`,"help.cliTools.subcmd.1":`/version — 显示jaw版本和活动CLI状态`,"help.cliTools.subcmd.2":`/project set <路径...> — 设置项目工作空间目录`,"help.cliTools.subcmd.3":`/project list — 显示当前项目路径`,"help.cliTools.subcmd.4":`/project reset — 将项目目录重置为默认值`,"help.cliTools.subcmd.5":`/project clear — 清除项目目录设置`,"help.cliTools.subcmd.6":`/prompt — 显示发送给AI的完整系统提示`,"help.cliTools.subcmd.7":`/ide pop — 以弹窗打开IDE diff视图(仅CLI)`,"help.cliTools.subcmd.8":`/ide on — 启用IDE diff视图(仅CLI)`,"help.cliTools.subcmd.9":`/ide off — 禁用IDE diff视图(仅CLI)`,"help.keyboardShortcuts.subcmd.1":`/help — 显示完整命令列表`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 显示特定命令的详细帮助`,"help.keyboardShortcuts.subcmd.3":`/commands — 打开命令面板(别名: /cmd)`,"bgtask.title":`后台任务`,"tg.elicitationExpired":`选择会话已过期,请用文字回复。`,"settings.slack.guide.step1Title":`创建 Slack 应用`,"settings.slack.guide.openApps":`打开应用页面`,"settings.slack.guide.step2Title":`粘贴机器人令牌`,"settings.slack.guide.step3Title":`接收用应用令牌(可选)`,"settings.slack.guide.step3Desc":`留空则仅可发送(outbound-only)`,"settings.slack.guide.botTokenError":`需要以 xoxb- 开头的机器人令牌 — 是否与应用令牌填反了?`,"settings.slack.guide.appTokenError":`需要以 xapp- 开头的应用级令牌 — 是否与机器人令牌填反了?`,"settings.slack.advanced":`高级设置`,"settings.slack.resetConnection":`重置连接`,"settings.slack.resetConfirm":`Slack 应用连接将被重置。是否继续?`,"settings.slack.resetEmpty":`当前没有已连接的 Slack 应用。`,"settings.slack.resetFailed":`无法重置 Slack 应用连接,请重试。`,"settings.slack.resetManagedByEnvironment":`此 Slack 连接由环境变量({variables})管理。请删除这些环境变量并重启 cli-jaw,然后再重置连接。`,"settings.slack.managedByEnvironment":`连接设置由环境变量({variables})管理,因此为只读。若要在此编辑,请删除这些变量并重启 cli-jaw。`,"settings.slack.attachPort":`连接实例端口`,"settings.channel.notAttachInstanceHint":`另一个实例拥有此 Slack 连接(请检查连接实例端口)`,"settings.slack.guide.step2Desc":`应用设置 → OAuth & Permissions → 确认 files:read → Reinstall to Workspace → 复制 Bot User OAuth Token`,"settings.slack.guide.step3Location":`应用设置 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`正在收集信息...`,"slack.progress.working":`处理中`,"slack.files.partialFailure":`⚠️ 已跳过部分附件:`,"slack.files.allFailure":`⚠️ 无法处理附件,因此未运行请求:`,"slack.files.limit":`每个文件上限为 50 MiB,每条消息最多 10 个文件或 100 MiB。`,"slack.files.error.external_file_unsupported":`不支持 Slack 外部文件`,"slack.files.error.private_network":`下载位置不安全`,"slack.files.error.redirect_limit":`超过重定向次数限制`,"slack.files.error.size_exceeded":`超过文件大小限制`,"slack.files.error.message_budget_exceeded":`超过消息附件容量限制`,"slack.files.error.missing_scope":`请添加 files:read 并重新安装应用`,"slack.files.error.ingress_cancelled":`处理已取消`,"slack.files.error.download_failed":`无法下载文件`,"onboarding.open":`设置向导`,"onboarding.optional":`可选`,"onboarding.validate":`验证`,"onboarding.save":`保存`,"onboarding.close":`关闭`,"onboarding.valid":`已验证:{identity}`,"onboarding.title.telegram":`连接 Telegram`,"onboarding.title.discord":`连接 Discord`,"onboarding.title.slack":`连接 Slack`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`在 api.slack.com/apps 中选择 Create New App → From a manifest,将复制的清单粘贴到 JSON 标签页,选择要添加应用的工作区,然后创建应用。`,"onboarding.slackAppName":`应用名称`,"onboarding.slackAppNameHint":`请输入最多35个字符的应用名称。机器人名称由此生成;若名称中没有可用的半角字符,则回退为 cli-jaw。`,"onboarding.slackGenerateManifest":`生成清单`,"onboarding.slackManifestGenerating":`正在生成...`,"onboarding.slackManifestReady":`已复制`,"onboarding.slackManifestCopiedWithBot":`已复制清单。机器人名称:{bot}`,"onboarding.slackManifestError":`无法生成或复制清单,请重试。`,"onboarding.slackAppNameError":`请输入1到35个字符的应用名称。`,"onboarding.warning.missingCapabilities":`缺少可选权限 {capabilities},相应功能已关闭。请添加权限并重新安装应用。文本消息仍可使用。`,"onboarding.token.botToken":`机器人令牌`,"onboarding.token.appToken":`应用级令牌`,"onboarding.token.guildId":`服务器 ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`下一步`,"onboarding.back":`上一步`,"onboarding.step.1":`1. 确认获取位置`,"onboarding.step.2":`2. 粘贴获取的值`,"onboarding.step.3":`3. 验证连接`,"onboarding.step.4":`4. 保存`,"onboarding.validating":`正在检查...`,"onboarding.validateHint":`点击验证以检查实际连接。通过后才能保存。`,"onboarding.saveHint":`验证通过。保存后将写入设置并立即连接该渠道。`,"onboarding.error.validation_required":`需要先通过验证。`,"onboarding.error.slack_setup_required":`请先生成清单并打开发放页面,然后再继续。`,"onboarding.openIssuer":`打开签发页面`,"onboarding.error.missing_scopes":`令牌有效,但应用缺少 OAuth 权限(scope)。请在 OAuth & Permissions 中添加下列项并重新安装应用。`,"onboarding.hint.telegram.botToken":`@BotFather 在 /newbot 之后返回的值。`,"onboarding.hint.discord.botToken":`在 Bot 标签页用 Reset Token 生成的值。`,"onboarding.hint.discord.guildId":`启用开发者模式后右键服务器并复制 ID。`,"onboarding.hint.slack.botToken":`OAuth & Permissions 中的 Bot User OAuth Token(以 xoxb- 开头)。`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens(xapp-, connections:write)。`,"cmd.memory.embed.estimate":`嵌入估算`,"cmd.memory.embed.status":`嵌入状态`,"settings.channel.activeInbound":`接收渠道`,"settings.channel.configured":`已配置`,"settings.channel.notConfigured":`未配置`,"settings.channel.sendCapable":`可发送`,"settings.channel.sendOnlyHint":`虽不是接收渠道,但已配置时仍可发送。`,"settings.channel.statusTitle":`传输状态`,"settings.channel.testSend":`测试发送`,"settings.channel.testSendFail":`发送失败:{error}`,"settings.channel.testSendOk":`发送成功`,"onboarding.progressLabel":`第 {step} 步,共 {total} 步`,"slack.progress.title":`请求进度`,"slack.progress.activityTitle":`最近的工作`,"slack.progress.deliveryTitle":`答复发送`,"slack.progress.queued":`排队中`,"slack.progress.running":`正在观察活动`,"slack.progress.waiting":`等待下一次更新`,"slack.progress.delivering":`正在发送答复`,"slack.progress.complete":`工作观察已结束`,"slack.progress.workflowComplete":`工作流回复已结束,实际制作结果需另行核实。`,"slack.progress.unavailable":`活动更新不可用,执行可能仍在继续。`,"slack.progress.error":`请求失败`,"slack.progress.cancelled":`请求已取消`,"slack.progress.expired":`进度显示已结束,执行可能仍在继续。`,"slack.progress.merged":`已合并至其他请求`,"slack.progress.removed":`请求已移除`,"slack.progress.restored":`之前的进度显示已结束,执行结果尚未确认。`,"slack.progress.failure":`未能完成回复。`,"slack.progress.elapsed":`已用时:{seconds}秒`,"slack.progress.lastActivity":`上次活动:{seconds}秒前`,"slack.progress.longRunning":`已运行 {minutes} 分钟 — 仍在进行中`,"slack.progress.category.read":`读取文件`,"slack.progress.category.write":`编辑文件`,"slack.progress.category.search":`搜索`,"slack.progress.category.web":`读取网页`,"slack.progress.category.command":`执行命令`,"slack.progress.category.external":`外部工具`,"slack.progress.category.tool":`工具活动`,"slack.progress.status.observed":`已观察`,"slack.progress.status.in_progress":`运行中`,"slack.progress.status.complete":`完成`,"slack.progress.status.error":`错误`,"slack.progress.status.stopped":`已停止`,"slack.progress.status.unconfirmed":`完成未确认`,"slack.progress.deliveryComplete":`答复已发送`,"slack.progress.deliveryFailed":`无法确认答复已发送`,"slack.progress.deliveryUnconfirmed":`答复发送情况未确认`,"slack.workflow.unavailable":`由于无法确认该自动化的发送者/请求信息或指定的已启用技能,未予执行。请检查配置。`,"slack.workflow.unconfirmed":`已注册的工作流未返回实质结果。相关操作可能已经开始,重试前请先检查其记录。`},j=D,M=O,N=k,P=A;function F(e){let t={ko:j,en:M,ja:N,zh:P}[e]??j;return(e,n={})=>Object.entries(n).reduce((e,[t,n])=>e.replaceAll(`{${t}}`,String(n)),t[e]??j[e]??e)}function I(e){return(0,x.jsx)(L,{...e,channel:`slack`})}function L({channel:e,client:_,t:v,initialDraft:y,returnFocus:S,onBeforeSave:C,onClose:w}){let[T,E]=(0,b.useState)(()=>d(e,y)),[D,O]=(0,b.useState)(`cli-jaw`),[k,A]=(0,b.useState)(!1),[j,M]=(0,b.useState)(null),[N,P]=(0,b.useState)(``),F=(0,b.useRef)(null),I=(0,b.useRef)(!1),L=(0,b.useRef)(!1);(0,b.useLayoutEffect)(()=>(I.current=!0,()=>{I.current=!1}),[]),(0,b.useEffect)(()=>{let e=F.current;return e?.showModal(),()=>{e?.close(),queueMicrotask(()=>{S?.isConnected&&S.focus()})}},[S]);function R(){e!==`slack`&&L.current||(T.saved||window.confirm(`Discard unsaved changes?`))&&w()}async function z(e,t=`onboarding.error.network`){if(!L.current){L.current=!0,A(!0),M(null);try{await e()}catch{I.current&&M(v(t))}finally{L.current=!1,I.current&&A(!1)}}}async function B(){let e=D.trim();if(!e||Array.from(e).length>35){M(v(`onboarding.slackAppNameError`));return}await z(async()=>{let n=await _.get(`/api/slack/manifest?name=${encodeURIComponent(e)}`);if(!I.current)return;let r=n.data??n;if(!r.json)throw Error(`manifest`);if(!(await t(r.json)).ok)throw Error(`clipboard`);I.current&&(E(i),P(r.botDisplayName&&r.botDisplayName!==e?v(`onboarding.slackManifestCopiedWithBot`,{bot:r.botDisplayName}):v(`onboarding.slackManifestReady`)))},`onboarding.slackManifestError`)}async function V(){await z(async()=>{let e=await _.post(`/api/channels/validate`,o(T));I.current&&E(t=>p(t,e.data??e))})}async function H(){T.validatedIdentity&&!T.saved&&await z(async()=>{let e=C();await _.put(`/api/settings`,l(T)),I.current&&(await e(),I.current&&E(c))})}function U(){if(!(k||L.current||T.saved)){if(T.step===1&&e===`slack`){B();return}if(T.step===3){V();return}if(T.step===4){H();return}E(u)}}return(0,x.jsxs)(`dialog`,{ref:F,className:`settings-slack-setup`,"aria-labelledby":`sl-setup-title`,onCancel:e=>{e.preventDefault(),R()},onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&e.target instanceof HTMLInputElement&&(e.preventDefault(),U())},children:[(0,x.jsx)(`h2`,{id:`sl-setup-title`,children:v(`onboarding.title.${e}`)}),(0,x.jsx)(`p`,{role:`status`,children:v(`onboarding.progressLabel`,{step:T.step,total:4})}),(0,x.jsxs)(`fieldset`,{disabled:k||T.saved,children:[T.step===1&&e===`slack`&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`label`,{htmlFor:`sl-setup-name`,children:v(`onboarding.slackAppName`)}),(0,x.jsx)(`input`,{id:`sl-setup-name`,value:D,onChange:e=>{O(e.target.value),E(a),P(``)}}),(0,x.jsx)(`p`,{children:v(`onboarding.guide.slack`)}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>void B(),children:v(`onboarding.slackGenerateManifest`)}),(0,x.jsx)(`p`,{role:`status`,children:N}),(0,x.jsx)(`button`,{type:`button`,disabled:T.slackSetupStage===`manifest`,onClick:()=>{window.open(h.slack,`_blank`,`noopener`),E(g)},children:v(`onboarding.openIssuer`)})]}),T.step===1&&e!==`slack`&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`p`,{children:v(`onboarding.guide.${e}`)}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>window.open(h[e],`_blank`,`noopener`),children:v(`onboarding.openIssuer`)})]}),T.step===2&&m(e).map(t=>(0,x.jsxs)(`label`,{children:[v(`onboarding.token.${t.key}`),t.optional?` (${v(`onboarding.optional`)})`:``,(0,x.jsx)(`input`,{type:t.secret?`password`:`text`,autoComplete:`off`,placeholder:t.example,value:T.draft[t.key]??``,onChange:e=>E(n=>f(n,t.key,e.target.value))}),(0,x.jsx)(`span`,{children:v(`onboarding.hint.${e}.${t.key}`)})]},t.key)),T.step===3&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{type:`button`,onClick:()=>void V(),children:v(`onboarding.validate`)}),T.validatedIdentity&&(0,x.jsx)(`p`,{children:v(`onboarding.valid`,{identity:T.validatedIdentity})})]}),T.step===4&&(0,x.jsx)(`p`,{children:v(T.saved?`onboarding.next.${e}`:`onboarding.saveHint`)}),T.step>1&&(0,x.jsx)(`button`,{type:`button`,onClick:()=>E(r),children:v(`onboarding.back`)}),T.step<4?(0,x.jsx)(`button`,{type:`button`,disabled:!n(T),onClick:()=>E(u),children:v(`onboarding.next`)}):(0,x.jsx)(`button`,{type:`button`,disabled:!T.validatedIdentity,onClick:()=>void H(),children:v(`onboarding.save`)})]}),(j||T.error||T.step===2&&s(T))&&(0,x.jsx)(`p`,{role:`alert`,children:j??v(`onboarding.error.${T.error??s(T)}`)}),!!T.missingScopes.length&&(0,x.jsx)(`p`,{role:`alert`,children:T.missingScopes.join(`, `)}),!!T.missingCapabilities.length&&(0,x.jsx)(`p`,{role:`status`,children:v(`onboarding.warning.missingCapabilities`,{capabilities:T.missingCapabilities.join(`, `)})}),(0,x.jsx)(`button`,{type:`button`,disabled:e!==`slack`&&k,onClick:R,children:v(`onboarding.close`)})]})}function R({pageChannel:e,snapshot:t,enabledChannels:n,homeChannel:r,setEnabledChannels:i,setHomeChannel:a,dirty:o,idPrefix:s=`channel`}){let c=t.messaging||{},l=Array.isArray(c.enabledChannels)?c.enabledChannels:[],u=c.homeChannel||`telegram`,d=(0,b.useCallback)(e=>{o.set(`messaging.enabledChannels`,{value:e,original:l,valid:!0})},[o,l]),f=(0,b.useCallback)(e=>{o.set(`messaging.homeChannel`,{value:e,original:u,valid:!0})},[o,u]),p=n.includes(e);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(y,{id:`${s}-enabled`,label:`Receive inbound messages on ${z(e)}`,value:p,onChange:t=>{let r=t?[...new Set([...n,e])]:n.filter(t=>t!==e);i(r),d(r),t&&n.length===0&&(a(e),f(e))}}),(0,x.jsxs)(`fieldset`,{className:`settings-field`,children:[(0,x.jsx)(`legend`,{className:`settings-field-label`,children:`Home channel (fallback for proactive sends)`}),(0,x.jsx)(`div`,{className:`settings-active-channel-options`,role:`radiogroup`,"aria-label":`Home channel`,children:[`telegram`,`discord`,`slack`].map(e=>(0,x.jsxs)(`label`,{className:`settings-radio`,children:[(0,x.jsx)(`input`,{type:`radio`,name:`${s}-homeChannel`,checked:r===e,onChange:()=>{a(e),f(e)}}),(0,x.jsx)(`span`,{children:z(e)})]},e))})]})]})}function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}export{E as a,F as i,L as n,I as r,R as t};
|
|
85
|
+
用户消息:{text}`,"chat.file.uploadFail":`文件上传失败:{msg}`,"chat.requestFail":`请求失败({status})`,"chat.continue":`正在继续当前任务。`,"chat.noPendingContinue":`没有可继续的待处理工作。`,"chat.voice.label":`🎤 [语音消息]`,"sessionHub.title":`会话`,"sessionHub.description":`按会话查看本地和频道对话。`,"sessionHub.defaultSession":`默认会话`,"sessionHub.sessionLabel":`会话 {seq}`,"sessionHub.source.local":`本地`,"sessionHub.source.slack":`Slack`,"sessionHub.source.telegram":`Telegram`,"sessionHub.source.discord":`Discord`,"sessionHub.messages":`消息`,"sessionHub.lastActivity":`最后活动`,"sessionHub.noActivity":`暂无活动`,"sessionHub.empty.title":`尚无频道会话`,"sessionHub.empty.description":`连接频道后,每个对话会作为会话显示在这里。`,"sessionHub.empty.action":`在设置中连接频道`,"sessionHub.listAria":`会话列表`,"sessionHub.delete":`删除`,"sessionHub.deleteConfirm":`要删除此会话吗?对话记录也会一并删除。`,"sessionHub.deleteRemoteDisabled":`无法删除已连接到频道的会话。`,"sessionHub.deleteFailed":`无法删除会话。请确认该会话是否仍有正在进行的任务。`,"sessionReadonly.message":`当前为只读。发送前请先切换到此会话。`,"sessionReadonly.remote":`连接到频道的会话在网页端为只读。`,"sessionReadonly.switch":`切换到 /{seq}`,"sessionReadonly.openSessions":`打开会话列表`,"sessionReadonly.composeRejected":`此会话为只读。请使用上方的切换操作。`,"sessionReadonly.elicitationRejected":`无法从只读会话发送回复。请切换会话后重试。`,"skill.loadFail":`无法加载技能`,"skill.count":`{active} 个启用 / 共 {total} 个`,"skill.countFiltered":`显示 {shown} 个 / 启用 {active} 个 / 共 {total} 个`,"skill.search.placeholder":`搜索技能...`,"skill.search.aria":`搜索技能`,"skill.search.empty":`没有匹配的技能。`,"skill.filter.all":`全部`,"skill.filter.installed":`已安装`,"skill.filter.productivity":`生产力`,"skill.filter.communication":`通信`,"skill.filter.devtools":`开发`,"skill.filter.utility":`工具`,"skill.filter.smarthome":`家庭`,"skill.filter.other":`其他`,"skill.filter.ai":`人工智能`,"lang.ko":`韩语`,"lang.en":`英语`,"lang.ja":`日语`,"lang.zh":`中文(简体)`,"emp.addPrompt":`添加 Agent`,"emp.delete":`删除`,"emp.customRole":`自定义角色...`,"emp.customModel":`手动输入...`,"role.label.frontend":`前端`,"role.label.backend":`后端`,"role.label.data":`数据`,"role.label.docs":`文档`,"role.label.security":`安全`,"role.label.testing":`测试`,"role.label.custom":`自定义...`,"hb.empty":`暂无 heartbeat`,"hb.name":`名称`,"hb.prompt":`提示...`,"hb.add":`+ 新增 heartbeat`,"hb.kindEvery":`每隔`,"hb.kindCron":`Cron 计划`,"hb.minutesLabel":`分钟`,"hb.cronLabel":`表达式`,"hb.timezoneAuto":`留空 = 系统/浏览器时区`,"hb.cronPlaceholder":`例如 0 9 * * *`,"hb.invalidCron":`Cron 表达式无效。请使用 5 个字段。`,"hb.invalidTimeZone":`时区无效。例如:Asia/Seoul`,"hb.invalidMinutes":`分钟数必须是大于等于 1 的整数。`,"hb.invalidSchedule":`Heartbeat 计划无效。`,"hb.scheduleHintCron":`示例:{cron} · 时区:{timeZone}`,"hb.scheduleHintEvery":`示例:每 {minutes} 分钟 · 时区:{timeZone}`,"cmd.noMatch":`没有匹配的命令`,"mem.noFiles":`还没有记忆文件`,"mem.empty":`还没有记忆`,"memory.banner.bootstrapRerun":`正在重新运行记忆 bootstrap...`,"memory.banner.reindexing":`正在重建记忆索引...`,"memory.banner.soulOptimize":`优化 Soul`,"memory.banner.soulOptimizing":`正在优化 Soul...(当前 CLI 正在处理)`,"memory.banner.soulPromptSent":`✓ Soul 优化提示已发送。请查看聊天窗口。`,"model.promptInput":`输入模型 ID:`,"model.customOption":`手动输入...`,"model.placeholder":`输入模型 ID`,"mcp.syncing":`正在同步...`,"mcp.installing":`正在通过 npm 安装...(最多 2 分钟)`,"settings.none":`(无)`,"cli.gemini.auth":`首次运行时通过浏览器认证`,"cli.copilot.authHint":`copilot login 或 gh auth login`,"cli.showMore":`更多 ▸`,"cli.authRequired":`需要安装/认证`,"cli.notAuthenticated":`需要认证 — 请运行下面的命令`,"drag.drop":`将文件拖到这里`,"status.responding":`正在回复`,"aria.cmdList":`命令列表`,"btn.attach":`附加文件`,"input.placeholder":`输入消息...`,"queue.pendingTitle":`待处理`,"queue.copy":`复制`,"queue.delete":`移除`,"queue.steer":`立即运行(steer)`,"queue.cancelArm":`再次点击取消`,loading:`加载中...`,"btn.editPrompt":`编辑系统提示`,"tg.chatIds.placeholder":`用逗号分隔(留空则允许全部)`,"fallback.desc":`CLI 失败时的自动重试顺序`,"btn.cancel":`取消`,"btn.save":`保存`,"btn.stop":`停止`,"msg.you":`你`,"stat.messages":`消息数:{count}`,"ui.offline.banner":`离线模式 — 正在显示缓存消息`,"time.10m":`10 分钟`,"time.30m":`30 分钟`,"time.manual":`手动`,"phase.plan":`规划`,"phase.verify":`计划评审`,"phase.dev":`开发`,"phase.debug":`调试`,"phase.integrate":`集成`,"orchestrator.allDone":`所有任务已完成`,"orchestrator.continueHint":`输入“continue”继续。`,"orchestrator.noWorklog":`没有可继续的 worklog。`,"orchestrator.alreadyDone":`所有任务都已完成。`,"sidebar.status":`状态`,"sidebar.memory":`记忆`,"sidebar.stats":`统计`,"sidebar.cliStatus":`CLI 状态`,"sidebar.agentName":`Agent 名称`,"sidebar.avatar":`头像`,"sidebar.employees":`员工`,"sidebar.promptTemplates":`提示模板`,"templates.title":`提示结构`,"templates.back":`返回`,"templates.devMode":`开发者模式`,"templates.hint.click":`点击查看模板内容`,"templates.hint.devEdit":`在开发者模式下编辑`,"tab.agents":`Agent`,"tab.skills":`技能`,"tab.settings":`设置`,"btn.saveSettings":`保存`,"btn.addEmployee":`+ 添加`,"btn.off":`关`,"btn.on":`开`,"label.activeCli":`当前 CLI`,"label.model":`模型`,"label.effort":`推理强度`,"label.permissions":`权限`,"label.workingDir":`工作目录`,"label.enabled":`启用`,"label.botToken":`Bot Token(机器人令牌)`,"label.chatIds":`允许的 Chat ID`,"label.forwardAll":`自动转发`,"label.flushEvery":`整理周期`,"emp.empty":`暂无员工`,"modal.promptTitle":`系统提示(A-2)`,"modal.heartbeatTitle":`Heartbeat 任务`,"modal.memoryTitle":`记忆`,"code.copy":`复制`,"code.copied":`已复制 ✓`,"mcp.noServers":`(未配置服务器)`,"mermaid.renderFail":`Mermaid 渲染失败`,"orchestrator.dispatching":`处理中…`,"cmd.ide.desc":`IDE diff 视图`,"cmd.ide.toggled":`IDE diff 模式已切换`,"cmd.ide.popToggled":`IDE 弹窗已切换`,"cmd.ide.usage":`用法:/ide [pop|on|off]`,"label.mentionOnly":`仅 mention 时响应`,"help.section.what":`这是什么`,"help.section.effect":`会改变什么`,"help.section.useWhen":`适用场景`,"help.section.howTo":`使用方法`,"help.section.example":`示例`,"help.section.avoidWhen":`不适用场景`,"help.section.related":`相关项`,"help.close":`关闭`,"help.activeCli.title":`当前 CLI`,"help.activeCli.aria":`当前 CLI 帮助`,"help.activeCli.intro":`选择由哪个 CLI 引擎处理下一次请求。`,"help.activeCli.effect":`下一次运行会使用所选 CLI 的会话、模型设置和工具行为。`,"help.activeCli.use.1":`需要在 Claude、Codex、Gemini、OpenCode 或 Copilot 之间切换时`,"help.activeCli.use.2":`需要比较不同 CLI 引擎行为时`,"help.activeCli.howTo.1":`在当前 CLI 选择器中选择想用的 CLI。`,"help.activeCli.howTo.2":`也可以在聊天中输入 /cli <name>。`,"help.activeCli.example.1":`如果 Claude 受阻,可以切到 Codex 继续同一项工作。`,"help.activeCli.avoid.1":`只需要更换同一 CLI 内的模型时`,"help.activeCli.related.1":`/cli 命令`,"help.activeCli.related.2":`模型选择器`,"help.model.title":`模型`,"help.model.aria":`模型帮助`,"help.model.intro":`选择当前 CLI 使用的模型。`,"help.model.effect":`同一 CLI 后续请求会使用选中的模型名称运行。`,"help.model.use.1":`需要切换到更快或更强的模型时`,"help.model.use.2":`需要按模型能力或成本调节时`,"help.model.howTo.1":`在当前 CLI 旁边的模型选择器中选择模型。`,"help.model.howTo.2":`也可以在聊天中输入 /model <model-name>。`,"help.model.example.1":`普通编码用 Sonnet;需要更深入审查时用 Opus 系列。`,"help.model.avoid.1":`需要更换的是 CLI 引擎本身时`,"help.model.related.1":`/model 命令`,"help.effort.title":`推理强度`,"help.effort.aria":`推理强度帮助`,"help.effort.intro":`在所选模型支持时控制推理深度和速度。`,"help.effort.effect":`支持的模型会在响应速度和推理深度之间重新平衡。`,"help.effort.use.1":`深入代码分析或设计评审需要更多推理时`,"help.effort.use.2":`小任务需要更快完成时`,"help.effort.howTo.1":`从 effort 选择器中选择 low、medium、high 或其他可用值。`,"help.effort.howTo.2":`快速检查用较低 effort,复杂实现前用较高 effort。`,"help.effort.example.1":`错别字修复用 low,大型重构计划用 high。`,"help.effort.avoid.1":`当前模型忽略 effort 设置时`,"help.effort.related.1":`模型支持说明`,"help.permissions.title":`权限`,"help.permissions.aria":`权限帮助`,"help.permissions.intro":`Auto (YOLO) 请求自动批准或跳过权限检查。在此选择器中,YOLO 是 Auto 的显示名称。`,"help.permissions.effect":`自动批准方式、文件访问范围和 Safe 支持情况因 CLI 和传输方式而异。`,"help.permissions.use.1":`本地自动化需要避免反复确认时`,"help.permissions.use.2":`在可信工作目录中运行长任务时`,"help.permissions.howTo.1":`选择 Auto (YOLO) 或 Safe,然后确认已保存的策略。`,"help.permissions.howTo.2":`如果需要审批,请先确认所用运行时是否支持 Safe。`,"help.permissions.example.1":`重复任务需要自动批准时,选择 Auto (YOLO)。明确要求回答的问题仍可能出现。`,"help.permissions.avoid.1":`目录或任务不熟悉、有风险时`,"help.permissions.related.1":`Auto (YOLO) / Safe — 运行时支持情况`,"help.flushAgent.title":`Flush Agent 设置`,"help.flushAgent.aria":`Flush Agent 帮助`,"help.flushAgent.intro":`选择用于总结或 flush 上下文的 CLI 和模型。`,"help.flushAgent.effect":`压缩和 flush 会使用配置的摘要 Agent,而不是当前活动模型。`,"help.flushAgent.use.1":`摘要工作适合交给更快或更稳定的模型时`,"help.flushAgent.use.2":`希望主模型和摘要模型分开时`,"help.flushAgent.howTo.1":`在 Flush Agent 设置中选择负责摘要的 CLI 和模型。`,"help.flushAgent.howTo.2":`长会话前让它和 /flush 流程保持一致。`,"help.flushAgent.example.1":`主工作用 Opus,同时让更快的 Sonnet 整理上下文。`,"help.flushAgent.avoid.1":`当前 CLI 和模型已经足够时`,"help.flushAgent.related.1":`/flush 命令`,"help.employees.title":`员工`,"help.employees.aria":`员工帮助`,"help.employees.intro":`员工是 Boss 可按角色派发的独立 AI 工作者,用于验证或分析。`,"help.employees.effect":`Boss 会从独立 CLI 会话接收审计或验证结果。`,"help.employees.use.1":`需要独立进行前端、后端或文档评审时`,"help.employees.use.2":`PABCD A/B 需要只读验证时`,"help.employees.use.3":`需要把长时间评审从主线程分离出去时`,"help.employees.howTo.1":`/employee reset — 从磁盘重新加载员工配置。`,"help.employees.howTo.2":`员工派发: cli-jaw dispatch --agent "Name" --task "..."。`,"help.employees.howTo.3":`在PABCD A/B中,员工默认仅执行只读审计/验证。`,"help.employees.howTo.4":`使用--mutable标志允许员工修改文件。`,"help.employees.example.1":`Boss 实现时,可以让 Backend 只审计 import 和测试风险。`,"help.employees.avoid.1":`简单查文件`,"help.employees.avoid.2":`小型单文件修改`,"help.employees.avoid.3":`可以直接回答的问题`,"help.employees.related.1":`cli-jaw dispatch 命令`,"help.employees.related.2":`PABCD A/B 阶段`,"help.skills.title":`技能`,"help.skills.aria":`技能帮助`,"help.skills.intro":`技能是面向特定工作流的指令包。`,"help.skills.effect":`Agent 会获得对应工作流的流程、工具和验证规则。`,"help.skills.use.1":`任务需要浏览器控制、GitHub、PDF、文档或测试工作流时`,"help.skills.use.2":`需要稳定执行可重复工作流时`,"help.skills.howTo.1":`/skill — 显示已安装的活跃技能列表。`,"help.skills.howTo.2":`/skill list — 显示活跃技能和可用参考技能。`,"help.skills.howTo.3":`/skill reset — 从磁盘重新加载所有技能。`,"help.skills.howTo.4":`描述任务后,代理会自动选择匹配的技能。`,"help.skills.example.1":`PDF 分析使用 jaw-pdf 技能;前端实现使用 jaw-dev-frontend 指南。`,"help.skills.avoid.1":`普通聊天回复已经足够时`,"help.skills.related.1":`/skill 命令`,"help.activeChannel.title":`当前频道`,"help.activeChannel.aria":`当前频道帮助`,"help.activeChannel.intro":`选择哪个服务接收频道输出。`,"help.activeChannel.effect":`文件发送、通知和定时任务结果会投递到所选频道。`,"help.activeChannel.use.1":`需要在 Telegram 和 Discord 之间切换运营输出时`,"help.activeChannel.use.2":`外部通知目标发生变化时`,"help.activeChannel.howTo.1":`在频道设置中选择 Telegram 或 Discord。`,"help.activeChannel.howTo.2":`发送文件或通知前检查当前频道。`,"help.activeChannel.example.1":`文档文件发到 Telegram,团队提醒发到 Discord。`,"help.activeChannel.avoid.1":`只需要切换转发开关时`,"help.activeChannel.related.1":`Telegram / Discord 设置`,"help.telegram.title":`Telegram 设置`,"help.telegram.aria":`Telegram 帮助`,"help.telegram.intro":`管理 Telegram bot 连接、允许的聊天、mention-only 模式和转发。`,"help.telegram.effect":`允许的 Telegram 聊天可以收发消息、文件、语音输入和任务结果。`,"help.telegram.use.1":`希望通过 Telegram 接收 cli-jaw 更新时`,"help.telegram.use.2":`希望把 Web 回复转发到 Telegram 时`,"help.telegram.link.botfather":`用 BotFather 创建 bot`,"help.telegram.link.docs":`Telegram Bot API 指南`,"help.telegram.howTo.1":`Telegram 应用中搜索 @BotFather 并开始对话。`,"help.telegram.howTo.2":`发送 /newbot,它会询问显示名称。输入一个名字(例如 "Jaw Bot")。`,"help.telegram.howTo.3":`接着输入用户名,必须以 _bot 结尾(例如 jaw_helper_bot)。`,"help.telegram.howTo.4":`成功后 BotFather 会发送 HTTP API token(格式: 1234567890:ABCdef...)。复制它。`,"help.telegram.howTo.5":`打开 ~/.cli-jaw/settings.json,将 token 粘贴到 telegram.token 中。`,"help.telegram.howTo.6":`在 Telegram 中搜索刚创建的 bot → 点击「开始」或发送任意消息(例如 "hello")。`,"help.telegram.howTo.7":`在终端运行 jaw doctor,会显示刚才发送消息的 chat ID(数字)。`,"help.telegram.howTo.8":`将该 chat ID 添加到 settings.json 的 telegram.allowedChatIds 数组中,设置完成!`,"help.telegram.example.1":`离开网页时,也可以通过 Telegram 接收长任务完成后的文件。`,"help.telegram.avoid.1":`Discord 才是当前运营频道时`,"help.telegram.related.1":`/forward 命令`,"help.telegram.related.2":`允许的 chat ID`,"help.discord.title":`Discord 设置`,"help.discord.aria":`Discord 帮助`,"help.discord.intro":`管理 Discord guild 和 channel 路由以及 mention 行为。`,"help.discord.effect":`命令、文件和员工结果会限制在配置的 guild 和 channel 内。`,"help.discord.use.1":`通过服务器频道和斜杠命令运营时`,"help.discord.use.2":`需要将输出限制到特定 guild 或 channel 时`,"help.discord.link.portal":`打开 Discord Developer Portal`,"help.discord.link.docs":`Discord bot 入门指南`,"help.discord.howTo.1":`访问 discord.com/developers/applications 并用 Discord 账号登录。`,"help.discord.howTo.2":`点击右上角「New Application」→ 输入应用名(例如 "Jaw Bot")→ Create。`,"help.discord.howTo.3":`左侧菜单「Bot」标签 → 点击「Reset Token」→ 复制 bot token。(只显示一次,请立即保存!)`,"help.discord.howTo.4":`同一 Bot 页面底部「Privileged Gateway Intents」→ 开启 MESSAGE CONTENT INTENT。(不开的话 bot 无法读取消息!)`,"help.discord.howTo.5":`左侧菜单「OAuth2」→「URL Generator」。`,"help.discord.howTo.6":`SCOPES 勾选 bot 和 applications.commands。下方 BOT PERMISSIONS 选择 Send Messages、Read Message History 等权限。`,"help.discord.howTo.7":`复制页面底部生成的邀请 URL → 粘贴到浏览器 → 选择要添加 bot 的服务器。`,"help.discord.howTo.8":`打开 ~/.cli-jaw/settings.json,填写 discord.token、guildId(服务器 ID)、channelId(频道 ID)。`,"help.discord.howTo.9":`在终端运行 jaw doctor 确认 bot 连接和权限正常,设置完成!`,"help.discord.example.1":`把员工验证结果集中到一个项目频道。`,"help.discord.avoid.1":`你期待通过私信投递时`,"help.discord.related.1":`jaw doctor 命令`,"help.discord.related.2":`Discord 降级模式`,"help.slack.title":`Slack`,"help.slack.aria":`Slack 帮助`,"help.slack.intro":`Attach a bot to your Slack workspace and drive agents from channels, DMs, and threads.`,"help.slack.effect":`Mentions, DMs, and slash commands in allowed conversations reach the agent, and replies come back in-thread.`,"help.slack.use.1":`Calling the agent by mention in a team channel`,"help.slack.use.2":`Running private work over DM`,"help.slack.avoid.1":`When you only have one token — a bot token alone cannot receive events`,"help.slack.related.1":`Telegram settings`,"help.slack.related.2":`Discord settings`,"help.slack.link.portal":`Open the Slack app dashboard`,"help.slack.link.docs":`Socket Mode documentation`,"help.slack.example.1":`@cli-jaw run the tests for this repo`,"help.slack.howTo.1":`点击下方指南卡中的“复制清单”,然后在 api.slack.com/apps → Create New App → From a manifest 粘贴以创建应用。`,"help.slack.howTo.2":`Enable Socket Mode and generate an app-level token (xapp-) with connections:write.`,"help.slack.howTo.3":`Install to the workspace to obtain the bot token (xoxb-).`,"help.slack.howTo.4":`Paste each token into its own field below — do not swap them.`,"help.slack.howTo.5":`List the conversation IDs the bot may act in. Empty means all are allowed.`,"help.slack.howTo.6":`Invite the bot in each channel with /invite @yourbot.`,"help.slack.howTo.7":`With Mention Only on, the bot answers channels only when mentioned. DMs always work.`,"help.slack.howTo.8":`With Reply in Thread on, answers land in the originating message thread.`,"help.slack.howTo.9":`Run cli-jaw doctor to verify the tokens and connection state.`,"help.fallbackOrder.title":`Fallback 设置`,"help.fallbackOrder.aria":`Fallback 帮助`,"help.fallbackOrder.intro":`设置当前 CLI 失败或不可用时尝试其他 CLI 的顺序。`,"help.fallbackOrder.effect":`系统会按顺序尝试其他 CLI,减少供应商故障或额度问题造成的中断。`,"help.fallbackOrder.use.1":`某个 provider 过载,需要自动备用方案时`,"help.fallbackOrder.use.2":`长任务需要降低中途停止概率时`,"help.fallbackOrder.howTo.1":`在 Fallback 设置中配置重试顺序。`,"help.fallbackOrder.howTo.2":`排查根因时可停用或简化 fallback。`,"help.fallbackOrder.example.1":`Claude 过载时,可按顺序继续尝试 Codex 或 Gemini。`,"help.fallbackOrder.avoid.1":`失败时需要立即停下来调试时`,"help.fallbackOrder.related.1":`/fallback 命令`,"help.mcp.title":`MCP 服务器`,"help.mcp.aria":`MCP 帮助`,"help.mcp.intro":`MCP 服务器把 Agent 连接到外部工具和资源。`,"help.mcp.effect":`已安装的服务器会同步到 Claude、Codex、Gemini 等 CLI 的工具列表。`,"help.mcp.use.1":`任务需要访问外部应用、数据或工具时`,"help.mcp.use.2":`需要在多个 CLI 间同步同一套工具配置时`,"help.mcp.howTo.1":`/mcp — 显示已连接的MCP服务器和工具列表。`,"help.mcp.howTo.2":`/mcp sync — 将MCP服务器与活动CLI重新同步。`,"help.mcp.howTo.3":`/mcp install — 从注册表安装新的MCP服务器。`,"help.mcp.howTo.4":`使用MCP设置面板(⚙️)添加、编辑或删除服务器。`,"help.mcp.example.1":`添加 filesystem MCP 后,Agent 可以更可靠地检查允许的文件夹。`,"help.mcp.avoid.1":`本地文件和内置工具已经足够时`,"help.mcp.related.1":`/mcp 命令`,"help.memory.title":`记忆`,"help.memory.aria":`记忆帮助`,"help.memory.intro":`保存长期项目事实、用户偏好和上下文。`,"help.memory.effect":`保存的决策和偏好可在后续会话或 compact 后再次搜索并注入。`,"help.memory.use.1":`决策或偏好需要跨会话保留时`,"help.memory.use.2":`长项目需要稳定的上下文连续性时`,"help.memory.howTo.1":`/memory — 列出所有已保存的记忆条目。`,"help.memory.howTo.2":`/memory <关键词> — 搜索匹配的记忆条目。`,"help.memory.howTo.3":`记忆存储在 memory/ 目录下的结构化文件中。`,"help.memory.howTo.4":`保存长期决策和偏好,不要保存临时清单或原始日志。`,"help.memory.example.1":`保存“这个项目保持 vanilla JS”;不要保存“今天还剩三个测试”。`,"help.memory.avoid.1":`只是保存临时清单或原始日志时`,"help.memory.related.1":`/memory 命令`,"help.memory.related.2":`flush / bootstrap 流程`,"help.stt.title":`语音识别`,"help.stt.aria":`语音识别帮助`,"help.stt.intro":`配置浏览器语音输入的 speech-to-text。`,"help.stt.effect":`语音按钮录下的内容会由所选 STT 引擎转写为聊天文本。`,"help.stt.use.1":`想用语音输入较长指示时`,"help.stt.use.2":`需要选择 Gemini、OpenAI 或 Whisper STT 时`,"help.stt.howTo.1":`选择 STT provider,并配置所需 API key。`,"help.stt.howTo.2":`按下语音按钮录音,然后检查转写文本。`,"help.stt.example.1":`口述较长会议记录,再让 Agent 总结。`,"help.stt.avoid.1":`文本输入足够,或尚未配置 API key 时`,"help.stt.related.1":`语音按钮`,"help.promptTemplates.title":`提示模板`,"help.promptTemplates.aria":`提示模板帮助`,"help.promptTemplates.intro":`保存常用工作流的可复用提示块。`,"help.promptTemplates.effect":`选中的模板会作为可重复指令插入到新请求中。`,"help.promptTemplates.use.1":`需要让重复指令保持一致时`,"help.promptTemplates.use.2":`不想每次重写很长的准备说明时`,"help.promptTemplates.howTo.1":`在提示模板弹窗中创建并保存模板。`,"help.promptTemplates.howTo.2":`重复工作流开始前选择相应模板。`,"help.promptTemplates.example.1":`把同一套代码审查清单保存下来,避免每次重打。`,"help.promptTemplates.avoid.1":`一次性的短指令直接写在聊天里更清楚时`,"help.promptTemplates.related.1":`提示模板弹窗`,"help.chatInput.title":`聊天输入`,"help.chatInput.aria":`聊天输入帮助`,"help.chatComposer.aria":`聊天输入和键盘快捷键帮助`,"help.chatInput.intro":`用于发送任务指令、斜杠命令和附件的主要输入框。`,"help.chatInput.effect":`消息会按当前 CLI 和设置发送,附件也会随请求一起处理。`,"help.chatInput.use.1":`开始新任务或继续当前工作时`,"help.chatInput.use.2":`运行 /help 或 /pabcd 等斜杠命令时`,"help.chatInput.use.3":`需要同时发送文本和文件时`,"help.chatInput.howTo.1":`输入消息后点击 Send,或使用支持的发送快捷键。`,"help.chatInput.howTo.2":`用附件按钮或拖放添加文件后再发送。`,"help.chatInput.example.1":`输入“review this diff”,并附上相关文件。`,"help.chatInput.avoid.1":`只执行命令时,使用斜杠命令比模糊文字更安全。`,"help.chatInput.avoid.2":`不要把原始密钥或 token 直接粘贴到聊天里。`,"help.chatInput.related.1":`附件`,"help.chatInput.related.2":`键盘快捷键`,"help.orchestration.title":`PABCD`,"help.orchestration.aria":`PABCD 帮助`,"help.orchestration.intro":`PABCD 是把规划、审计、构建、检查和完成分开的工作流。`,"help.orchestration.effect":`每个阶段只做一件事,让大范围修改更安全、更容易审查。`,"help.orchestration.use.1":`任务会涉及多个文件或功能时`,"help.orchestration.use.2":`需要员工审计或实现验证时`,"help.orchestration.use.3":`希望先确认计划再改代码时`,"help.orchestration.howTo.1":`/orchestrate I — 进入访谈模式,梳理需求。`,"help.orchestration.howTo.2":`/orchestrate P — 进入规划模式,编写计划。`,"help.orchestration.howTo.3":`/orchestrate A — 进入审计模式,审查计划。`,"help.orchestration.howTo.4":`/orchestrate B — 进入构建模式,执行实现。`,"help.orchestration.howTo.5":`/orchestrate C — 进入检查模式,最终验证。`,"help.orchestration.howTo.6":`/orchestrate D — 进入完成模式,返回空闲。`,"help.orchestration.howTo.7":`/orchestrate status — 显示当前 PABCD 阶段。`,"help.orchestration.howTo.8":`/orchestrate reset — 从任意阶段返回空闲。`,"help.orchestration.example.1":`先在 P 阶段规划,在 A 阶段审计,再在 B 阶段实现。`,"help.orchestration.avoid.1":`只需要一句回答或简单状态检查时`,"help.orchestration.avoid.2":`紧急任务应先缩小范围。`,"help.orchestration.related.1":`员工`,"help.orchestration.related.2":`键盘快捷键`,"help.attachments.title":`附件`,"help.attachments.aria":`附件帮助`,"help.attachments.intro":`把图片、文档、日志或代码文件随当前消息一起发送的区域。`,"help.attachments.effect":`附件会进入请求上下文,Agent 可以读取或分析它们。`,"help.attachments.use.1":`需要用截图或错误日志说明问题时`,"help.attachments.use.2":`需要直接审查文档或代码文件时`,"help.attachments.use.3":`多个相关文件需要一起发送时`,"help.attachments.howTo.1":`使用附件按钮,或把文件拖到聊天区域。`,"help.attachments.howTo.2":`发送前在预览中移除错误文件。`,"help.attachments.example.1":`把错误截图和日志文件一起发送,询问根因。`,"help.attachments.avoid.1":`不要附加凭证文件或包含 token 的文件。`,"help.attachments.avoid.2":`无关的大文件会降低分析质量。`,"help.attachments.related.1":`聊天输入`,"help.attachments.related.2":`记忆`,"help.diagrams.title":`图表`,"help.diagrams.aria":`图表帮助`,"help.diagrams.intro":`在回答中直接渲染 SVG、Mermaid 和交互式图表。`,"help.diagrams.effect":`复杂流程、结构和比较比纯文字更容易快速浏览。`,"help.diagrams.use.1":`需要文件变更地图或系统流程时`,"help.diagrams.use.2":`需要快速概览 PABCD 计划或审计结果时`,"help.diagrams.use.3":`需要放大或复制已渲染图表时`,"help.diagrams.howTo.1":`可用时使用图表按钮进行放大、复制或保存。`,"help.diagrams.howTo.2":`如果文字偏移或线条不可见,请报告渲染问题。`,"help.diagrams.example.1":`要求用方框和箭头展示工作范围。`,"help.diagrams.avoid.1":`精确原文或长代码用文本更清楚。`,"help.diagrams.avoid.2":`不要把包含秘密信息的屏幕直接可视化。`,"help.diagrams.related.1":`PABCD`,"help.diagrams.related.2":`附件`,"help.keyboardShortcuts.title":`键盘快捷键`,"help.keyboardShortcuts.aria":`键盘快捷键帮助`,"help.keyboardShortcuts.intro":`Jaw UI 和浏览器快捷键说明,用来减少重复点击。`,"help.keyboardShortcuts.effect":`输入、语音、帮助和仪表盘导航都可以用键盘更快完成。`,"help.keyboardShortcuts.use.1":`希望不用鼠标执行常用操作时`,"help.keyboardShortcuts.use.2":`需要确认快捷键是否会打断输入时`,"help.keyboardShortcuts.use.3":`寻找 Manager dashboard 快捷键设置时`,"help.keyboardShortcuts.howTo.1":`Classic Web:在聊天输入框中按 Enter 发送,Shift+Enter 换行,斜杠命令从同一个输入框里的 / 开始;STT 录音可用 Ctrl+Shift+Space 或 Alt/Option+M 切换。`,"help.keyboardShortcuts.howTo.2":`Manager:不在编辑器中时,? 打开快捷键帮助;Alt+I、Alt+P、Alt+N 跳到 Instances、active Preview 和 Notes;Alt+K 与 Alt+J 选择上一个或下一个实例。`,"help.keyboardShortcuts.howTo.3":`Manager Notes:Cmd/Ctrl+S 保存,Cmd/Ctrl+E 在 Raw/Preview/WYSIWYG 间切换,Cmd/Ctrl+Shift+F 打开笔记搜索,Cmd/Ctrl+P 切换 quick switcher,Cmd/Ctrl+Delete 或 Cmd/Ctrl+Backspace 将选中的笔记或文件夹移到废纸篓。`,"help.keyboardShortcuts.example.1":`在聊天输入框按 Enter 发送;需要换行时使用 Shift+Enter。`,"help.keyboardShortcuts.example.2":`在 Manager 中,当焦点不在输入框或编辑器里时,按 ? 打开这个快捷键帮助。`,"help.keyboardShortcuts.avoid.1":`与浏览器默认快捷键冲突时,请换用其他组合。`,"help.keyboardShortcuts.avoid.2":`全局快捷键不应覆盖正在编辑的文本。`,"help.keyboardShortcuts.related.1":`聊天输入`,"help.keyboardShortcuts.related.2":`PABCD`,"help.session.aria":`会话帮助`,"help.session.title":`会话`,"help.session.intro":`管理聊天会话 — 创建新会话、切换会话、清除对话、重置工作区等。`,"help.session.effect":`会话命令仅操作当前对话状态,不影响AI代理配置。`,"help.session.use.1":`使用/new开始新对话`,"help.session.use.2":`在多个聊天会话间切换`,"help.session.use.3":`使用/clear或/compact整理对话记录`,"help.session.howTo.1":`/new [标签] — 创建新聊天会话,可附加标签。`,"help.session.howTo.2":`/switch <序号> — 按序号切换会话。别名:/sw`,"help.session.howTo.3":`/sessions — 列出所有可用会话。别名:/ss`,"help.session.howTo.4":`/clear — 清除当前聊天屏幕。`,"help.session.howTo.5":`/clear all — 清除屏幕并删除所有对话历史。`,"help.session.howTo.6":`/compact [指令] — 压缩对话上下文以节省 token。`,"help.session.howTo.7":`/purge — 清除对话和所有结构化记忆。`,"help.session.howTo.8":`/reset confirm — 完全重置工作区(保留设置)。`,"help.session.example.1":`/new code-review — 创建一个带标签的代码审查会话。`,"help.session.avoid.1":`仅清除聊天用/clear,需要完全重置时才用/reset。`,"help.session.related.1":`聊天输入`,"help.session.related.2":`键盘快捷键`,"help.cliTools.aria":`CLI工具帮助`,"help.cliTools.title":`CLI工具`,"help.cliTools.intro":`版本检查、项目管理、查看系统提示词、IDE集成等实用命令。`,"help.cliTools.effect":`显示信息或配置开发工具集成。`,"help.cliTools.use.1":`使用/version检查当前jaw版本`,"help.cliTools.use.2":`使用/project设置工作目录`,"help.cliTools.use.3":`使用/prompt查看完整系统提示词`,"help.cliTools.howTo.1":`/version — 显示 jaw 版本和活动 CLI 状态。`,"help.cliTools.howTo.2":`/project set <路径...> — 设置项目工作目录。`,"help.cliTools.howTo.3":`/project list — 显示当前配置的项目路径。`,"help.cliTools.howTo.4":`/project reset — 将项目目录重置为默认。`,"help.cliTools.howTo.5":`/prompt — 查看发送给 AI 的完整系统提示词。`,"help.cliTools.howTo.6":`/ide [pop|on|off] — 切换 IDE diff 视图(仅 CLI)。`,"help.cliTools.example.1":`/project set ~/my-repo — 设置活动项目目录。`,"help.cliTools.avoid.1":`IDE命令仅在CLI模式下工作,Web UI中不可用。`,"help.cliTools.related.1":`活动CLI`,"help.cliTools.related.2":`模型`,"help.agentControl.aria":`代理控制帮助`,"help.agentControl.title":`代理控制`,"help.agentControl.intro":`控制AI代理行为 — 消息转发、思考显示、刷新模型设置等。`,"help.agentControl.effect":`更改当前会话的代理运行时行为。`,"help.agentControl.use.1":`使用/forward切换频道间消息转发`,"help.agentControl.use.2":`使用/thought显示或隐藏Gemini思考过程`,"help.agentControl.use.3":`使用/flush设置上下文管理的刷新模型`,"help.agentControl.howTo.1":`/forward [on|off] — 切换向活动频道的消息转发。`,"help.agentControl.howTo.2":`/thought [on|off] — 显示或隐藏 Gemini 思考过程。`,"help.agentControl.howTo.3":`/flush <cli> <model> — 设置上下文压缩的刷新模型。`,"help.agentControl.howTo.4":`/flush off — 禁用刷新模型。`,"help.agentControl.howTo.5":`/steer <提示> — 中断运行中的代理并重新引导。`,"help.agentControl.howTo.6":`/status — 显示 CLI、模型、频道和代理的当前状态。`,"help.agentControl.example.1":`/forward on — 启用向活动频道的消息转发。`,"help.agentControl.avoid.1":`代理工作期间不要切换转发。`,"help.agentControl.related.1":`模型`,"help.agentControl.related.2":`刷新代理`,"help.goals.aria":`目标帮助`,"help.goals.title":`目标与规划`,"help.goals.intro":`持久目标和结构化规划工作流 — 设定目标、运行PABCD编排、需求访谈、多会话工作管理。`,"help.goals.effect":`目标和规划命令创建跨会话持久状态,引导AI通过结构化开发阶段。`,"help.goals.use.1":`使用/goal设定持久开发目标`,"help.goals.use.2":`使用/plan或/orchestrate运行PABCD结构化规划`,"help.goals.use.3":`使用/interview整理不明确的需求`,"help.goals.howTo.1":`/goal <目标> — 设定新的持久开发目标。`,"help.goals.howTo.2":`/goal status — 显示当前目标和进度检查点。`,"help.goals.howTo.3":`/goal run — 继续执行活动目标。`,"help.goals.howTo.4":`/goal plan [提示] — AI驱动目标规划。别名:/goalplan`,"help.goals.howTo.5":`/goal done — 将当前目标标记为完成。`,"help.goals.howTo.6":`/goal cancel — 取消活动目标。`,"help.goals.howTo.7":`/goal pause / resume — 手动暂停或恢复目标。`,"help.goals.howTo.8":`/goal history — 显示已完成和已取消的目标。`,"help.goals.howTo.9":`/plan [request|status|copy] — 说明或启动 PABCD 规划。`,"help.goals.howTo.10":`/interview <请求> — 在规划前梳理需求。`,"help.goals.example.1":`/goal 实现用户认证 — 设定AI跨会话持续工作的目标。`,"help.goals.avoid.1":`避免模糊目标 — 具体说明要构建什么。`,"help.goals.related.1":`编排`,"help.goals.related.2":`员工`,"help.section.commands":`命令参考`,"help.session.subcmd.1":`/new [标签] — 创建带可选标签的新聊天会话`,"help.session.subcmd.2":`/switch <编号> — 按会话编号切换(别名: /sw, /<编号>)`,"help.session.subcmd.3":`/sessions — 显示所有会话列表(别名: /ss)`,"help.session.subcmd.4":`/clear — 清除当前聊天屏幕`,"help.session.subcmd.5":`/clear all — 清除屏幕并删除所有对话记录`,"help.session.subcmd.6":`/compact [指令] — 压缩对话上下文以节省令牌`,"help.session.subcmd.7":`/purge — 删除对话和结构化记忆`,"help.session.subcmd.8":`/reset confirm — 全面重置工作空间(保留设置)`,"help.session.subcmd.9":`/quit — 退出进程(别名: /q, /exit; 仅CLI)`,"help.orchestration.subcmd.1":`/orchestrate I — 进入访谈模式以整理需求`,"help.orchestration.subcmd.2":`/orchestrate P — 进入计划模式以编写方案`,"help.orchestration.subcmd.3":`/orchestrate A — 进入审计模式以审查方案`,"help.orchestration.subcmd.4":`/orchestrate B — 进入构建模式以实施`,"help.orchestration.subcmd.5":`/orchestrate C — 进入检查模式以最终验证`,"help.orchestration.subcmd.6":`/orchestrate D — 进入完成模式并返回IDLE`,"help.orchestration.subcmd.7":`/orchestrate status — 显示当前PABCD阶段`,"help.orchestration.subcmd.8":`/orchestrate reset — 从任何阶段返回IDLE(别名: /pabcd)`,"help.goals.subcmd.1":`/goal <目标> — 设置新的持久目标`,"help.goals.subcmd.2":`/goal plan [提示] — AI驱动的目标规划`,"help.goals.subcmd.3":`/goal status — 显示活动目标状态`,"help.goals.subcmd.4":`/goal run — 继续目标执行`,"help.goals.subcmd.5":`/goal done [备注] — 将目标标记为完成`,"help.goals.subcmd.6":`/goal cancel [原因] — 取消活动目标`,"help.goals.subcmd.7":`/goal pause — 暂停活动目标`,"help.goals.subcmd.8":`/goal resume — 恢复已暂停的目标`,"help.goals.subcmd.9":`/goal clear — 清除目标数据`,"help.goals.subcmd.10":`/goal reset — 重置目标状态`,"help.goals.subcmd.11":`/goal history — 显示已完成目标历史`,"help.goals.subcmd.12":`/goalplan [提示] — /goal plan的别名`,"help.goals.subcmd.13":`/plan [请求] — 创建结构化PABCD计划`,"help.goals.subcmd.14":`/plan status — 显示当前计划状态`,"help.goals.subcmd.15":`/plan copy — 复制计划内容到剪贴板`,"help.goals.subcmd.16":`/interview <请求> — 结构化需求整理`,"help.goals.subcmd.17":`/deliberate <请求> — 多角色审议(规划者、架构师、评论家)`,"help.goals.subcmd.18":`/planaudit [计划] — 创建只读员工审计任务`,"help.goals.subcmd.19":`/team plan <目标> — 开始并行团队计划`,"help.goals.subcmd.20":`/team audit — 运行团队审计`,"help.goals.subcmd.21":`/team status — 显示团队执行状态`,"help.goals.subcmd.22":`/team collect — 收集团队结果`,"help.goals.subcmd.23":`/team stop — 停止团队执行`,"help.goals.subcmd.24":`/goal refine <目标> — 确定AI选择的plan-mode目标`,"help.goals.subcmd.25":`/gd [备注] — 强制完成当前目标;/goal done --force的别名`,"help.activeCli.subcmd.1":`/cli — 显示当前活动CLI`,"help.activeCli.subcmd.2":`/cli <名称> — 切换CLI引擎(claude, codex, gemini等)`,"help.activeCli.subcmd.3":`/status — 显示完整系统状态`,"help.model.subcmd.1":`/model — 显示当前模型`,"help.model.subcmd.2":`/model <名称> — 更改活动CLI的模型`,"help.skills.subcmd.1":`/skill — 列出已安装的活动技能`,"help.skills.subcmd.2":`/skill list — 列出所有活动和参考技能`,"help.skills.subcmd.3":`/skill reset — 从磁盘重新加载所有技能`,"help.employees.subcmd.1":`/employee — 显示注册员工列表`,"help.employees.subcmd.2":`/employee sessions-reset — 仅清除已保存的员工 resume 会话`,"help.mcp.subcmd.1":`/mcp — 显示MCP服务器列表`,"help.mcp.subcmd.2":`/mcp sync — 同步MCP工具`,"help.mcp.subcmd.3":`/mcp install — 安装MCP服务器`,"help.mcp.subcmd.4":`/browser status — 显示浏览器连接状态`,"help.mcp.subcmd.5":`/browser tabs — 显示已打开标签页列表`,"help.memory.subcmd.1":`/memory — 显示记忆概览`,"help.memory.subcmd.2":`/memory <关键词> — 搜索已保存的记忆`,"help.flushAgent.subcmd.1":`/flush — 显示当前刷新设置`,"help.flushAgent.subcmd.2":`/flush <cli> <model> — 设置指定CLI的刷新模型`,"help.flushAgent.subcmd.3":`/flush off — 禁用刷新模型`,"help.fallbackOrder.subcmd.1":`/fallback — 显示当前回退顺序`,"help.fallbackOrder.subcmd.2":`/fallback <cli1 cli2...> — 设置回退CLI顺序`,"help.fallbackOrder.subcmd.3":`/fallback off — 禁用回退`,"help.agentControl.subcmd.1":`/forward on — 启用向活动频道的消息转发`,"help.agentControl.subcmd.2":`/forward off — 禁用消息转发`,"help.agentControl.subcmd.3":`/thought on — 显示Gemini思考过程`,"help.agentControl.subcmd.4":`/thought off — 隐藏Gemini思考过程`,"help.agentControl.subcmd.5":`/steer <提示> — 中断运行中的代理并重定向`,"help.agentControl.subcmd.6":`/status — 显示CLI、模型、频道和代理状态`,"help.cliTools.subcmd.1":`/version — 显示jaw版本和活动CLI状态`,"help.cliTools.subcmd.2":`/project set <路径...> — 设置项目工作空间目录`,"help.cliTools.subcmd.3":`/project list — 显示当前项目路径`,"help.cliTools.subcmd.4":`/project reset — 将项目目录重置为默认值`,"help.cliTools.subcmd.5":`/project clear — 清除项目目录设置`,"help.cliTools.subcmd.6":`/prompt — 显示发送给AI的完整系统提示`,"help.cliTools.subcmd.7":`/ide pop — 以弹窗打开IDE diff视图(仅CLI)`,"help.cliTools.subcmd.8":`/ide on — 启用IDE diff视图(仅CLI)`,"help.cliTools.subcmd.9":`/ide off — 禁用IDE diff视图(仅CLI)`,"help.keyboardShortcuts.subcmd.1":`/help — 显示完整命令列表`,"help.keyboardShortcuts.subcmd.2":`/help <command> — 显示特定命令的详细帮助`,"help.keyboardShortcuts.subcmd.3":`/commands — 打开命令面板(别名: /cmd)`,"bgtask.title":`后台任务`,"tg.elicitationExpired":`选择会话已过期,请用文字回复。`,"settings.slack.guide.step1Title":`创建 Slack 应用`,"settings.slack.guide.openApps":`打开应用页面`,"settings.slack.guide.step2Title":`粘贴机器人令牌`,"settings.slack.guide.step3Title":`接收用应用令牌(可选)`,"settings.slack.guide.step3Desc":`留空则仅可发送(outbound-only)`,"settings.slack.guide.botTokenError":`需要以 xoxb- 开头的机器人令牌 — 是否与应用令牌填反了?`,"settings.slack.guide.appTokenError":`需要以 xapp- 开头的应用级令牌 — 是否与机器人令牌填反了?`,"settings.slack.advanced":`高级设置`,"settings.slack.resetConnection":`重置连接`,"settings.slack.resetConfirm":`Slack 应用连接将被重置。是否继续?`,"settings.slack.resetEmpty":`当前没有已连接的 Slack 应用。`,"settings.slack.resetFailed":`无法重置 Slack 应用连接,请重试。`,"settings.slack.resetManagedByEnvironment":`此 Slack 连接由环境变量({variables})管理。请删除这些环境变量并重启 cli-jaw,然后再重置连接。`,"settings.slack.managedByEnvironment":`连接设置由环境变量({variables})管理,因此为只读。若要在此编辑,请删除这些变量并重启 cli-jaw。`,"settings.slack.attachPort":`连接实例端口`,"settings.channel.notAttachInstanceHint":`另一个实例拥有此 Slack 连接(请检查连接实例端口)`,"settings.slack.guide.step2Desc":`应用设置 → OAuth & Permissions → 确认 files:read → Reinstall to Workspace → 复制 Bot User OAuth Token`,"settings.slack.guide.step3Location":`应用设置 → Basic Information → App-Level Tokens → Generate Token (connections:write)`,"slack.progress.start":`正在收集信息...`,"slack.progress.working":`处理中`,"slack.files.partialFailure":`⚠️ 已跳过部分附件:`,"slack.files.allFailure":`⚠️ 无法处理附件,因此未运行请求:`,"slack.files.limit":`每个文件上限为 50 MiB,每条消息最多 10 个文件或 100 MiB。`,"slack.files.error.external_file_unsupported":`不支持 Slack 外部文件`,"slack.files.error.private_network":`下载位置不安全`,"slack.files.error.redirect_limit":`超过重定向次数限制`,"slack.files.error.size_exceeded":`超过文件大小限制`,"slack.files.error.message_budget_exceeded":`超过消息附件容量限制`,"slack.files.error.missing_scope":`请添加 files:read 并重新安装应用`,"slack.files.error.ingress_cancelled":`处理已取消`,"slack.files.error.download_failed":`无法下载文件`,"onboarding.open":`设置向导`,"onboarding.optional":`可选`,"onboarding.validate":`验证`,"onboarding.save":`保存`,"onboarding.close":`关闭`,"onboarding.valid":`已验证:{identity}`,"onboarding.title.telegram":`连接 Telegram`,"onboarding.title.discord":`连接 Discord`,"onboarding.title.slack":`连接 Slack`,"onboarding.guide.telegram":`Open @BotFather in Telegram, send /newbot, pick a name and username, and copy the bot token it returns. Paste it below and press Validate.`,"onboarding.guide.discord":`At discord.com/developers/applications choose New Application, then Bot, then Reset Token. Enable MESSAGE CONTENT INTENT under Privileged Gateway Intents. Get the server ID by enabling Developer Mode in Discord, then right-click the server and copy its ID.`,"onboarding.guide.slack":`在 api.slack.com/apps 中选择 Create New App → From a manifest,将复制的清单粘贴到 JSON 标签页,选择要添加应用的工作区,然后创建应用。`,"onboarding.slackAppName":`应用名称`,"onboarding.slackAppNameHint":`请输入最多35个字符的应用名称。机器人名称由此生成;若名称中没有可用的半角字符,则回退为 cli-jaw。`,"onboarding.slackGenerateManifest":`生成清单`,"onboarding.slackManifestGenerating":`正在生成...`,"onboarding.slackManifestReady":`已复制`,"onboarding.slackManifestCopiedWithBot":`已复制清单。机器人名称:{bot}`,"onboarding.slackManifestError":`无法生成或复制清单,请重试。`,"onboarding.slackAppNameError":`请输入1到35个字符的应用名称。`,"onboarding.warning.missingCapabilities":`缺少可选权限 {capabilities},相应功能已关闭。请添加权限并重新安装应用。文本消息仍可使用。`,"onboarding.token.botToken":`机器人令牌`,"onboarding.token.appToken":`应用级令牌`,"onboarding.token.guildId":`服务器 ID`,"onboarding.next.telegram":`Saved. Send any message to your bot in Telegram and the chat ID is stored automatically.`,"onboarding.next.discord":`Saved. Invite the bot to your server and confirm MESSAGE CONTENT INTENT is enabled.`,"onboarding.next.slack":`Saved. Run /invite @cli-jaw in each channel the bot should read.`,"onboarding.error.token_required":`Enter a token.`,"onboarding.error.invalid_token":`That token was rejected. Check it and try again.`,"onboarding.error.invalid_app_token":`The app-level token was rejected (check the connections:write scope).`,"onboarding.error.guild_required":`Enter the server ID.`,"onboarding.error.bot_prefix":`The bot token must start with xoxb-.`,"onboarding.error.app_prefix":`The app-level token must start with xapp-.`,"onboarding.error.unknown_channel":`Unsupported channel.`,"onboarding.error.network":`Validation failed because of a network error.`,"onboarding.next":`下一步`,"onboarding.back":`上一步`,"onboarding.step.1":`1. 确认获取位置`,"onboarding.step.2":`2. 粘贴获取的值`,"onboarding.step.3":`3. 验证连接`,"onboarding.step.4":`4. 保存`,"onboarding.validating":`正在检查...`,"onboarding.validateHint":`点击验证以检查实际连接。通过后才能保存。`,"onboarding.saveHint":`验证通过。保存后将写入设置并立即连接该渠道。`,"onboarding.error.validation_required":`需要先通过验证。`,"onboarding.error.slack_setup_required":`请先生成清单并打开发放页面,然后再继续。`,"onboarding.openIssuer":`打开签发页面`,"onboarding.error.missing_scopes":`令牌有效,但应用缺少 OAuth 权限(scope)。请在 OAuth & Permissions 中添加下列项并重新安装应用。`,"onboarding.hint.telegram.botToken":`@BotFather 在 /newbot 之后返回的值。`,"onboarding.hint.discord.botToken":`在 Bot 标签页用 Reset Token 生成的值。`,"onboarding.hint.discord.guildId":`启用开发者模式后右键服务器并复制 ID。`,"onboarding.hint.slack.botToken":`OAuth & Permissions 中的 Bot User OAuth Token(以 xoxb- 开头)。`,"onboarding.hint.slack.appToken":`Basic Information → App-Level Tokens(xapp-, connections:write)。`,"cmd.memory.embed.estimate":`嵌入估算`,"cmd.memory.embed.status":`嵌入状态`,"settings.channel.activeInbound":`接收渠道`,"settings.channel.configured":`已配置`,"settings.channel.notConfigured":`未配置`,"settings.channel.sendCapable":`可发送`,"settings.channel.sendOnlyHint":`虽不是接收渠道,但已配置时仍可发送。`,"settings.channel.statusTitle":`传输状态`,"settings.channel.testSend":`测试发送`,"settings.channel.testSendFail":`发送失败:{error}`,"settings.channel.testSendOk":`发送成功`,"onboarding.progressLabel":`第 {step} 步,共 {total} 步`,"slack.progress.title":`请求进度`,"slack.progress.activityTitle":`最近的工作`,"slack.progress.deliveryTitle":`答复发送`,"slack.progress.queued":`排队中`,"slack.progress.running":`正在观察活动`,"slack.progress.waiting":`等待下一次更新`,"slack.progress.delivering":`正在发送答复`,"slack.progress.complete":`工作观察已结束`,"slack.progress.workflowComplete":`工作流回复已结束,实际制作结果需另行核实。`,"slack.progress.unavailable":`活动更新不可用,执行可能仍在继续。`,"slack.progress.lastRuntime":`最近运行信号:{seconds}秒前`,"slack.progress.error":`请求失败`,"slack.progress.cancelled":`请求已取消`,"slack.progress.expired":`进度显示已结束,执行可能仍在继续。`,"slack.progress.merged":`已合并至其他请求`,"slack.progress.removed":`请求已移除`,"slack.progress.restored":`之前的进度显示已结束,执行结果尚未确认。`,"slack.progress.failure":`未能完成回复。`,"slack.progress.elapsed":`已用时:{seconds}秒`,"slack.progress.lastActivity":`上次活动:{seconds}秒前`,"slack.progress.longRunning":`已运行 {minutes} 分钟 — 仍在进行中`,"slack.progress.category.read":`读取文件`,"slack.progress.category.write":`编辑文件`,"slack.progress.category.search":`搜索`,"slack.progress.category.web":`读取网页`,"slack.progress.category.command":`执行命令`,"slack.progress.category.external":`外部工具`,"slack.progress.category.tool":`工具活动`,"slack.progress.status.observed":`已观察`,"slack.progress.status.in_progress":`运行中`,"slack.progress.status.complete":`完成`,"slack.progress.status.error":`错误`,"slack.progress.status.stopped":`已停止`,"slack.progress.status.unconfirmed":`完成未确认`,"slack.progress.deliveryComplete":`答复已发送`,"slack.progress.deliveryFailed":`无法确认答复已发送`,"slack.progress.deliveryUnconfirmed":`答复发送情况未确认`,"slack.workflow.unavailable":`由于无法确认该自动化的发送者/请求信息或指定的已启用技能,未予执行。请检查配置。`,"slack.workflow.unconfirmed":`已注册的工作流未返回实质结果。相关操作可能已经开始,重试前请先检查其记录。`},j=D,M=O,N=k,P=A;function F(e){let t={ko:j,en:M,ja:N,zh:P}[e]??j;return(e,n={})=>Object.entries(n).reduce((e,[t,n])=>e.replaceAll(`{${t}}`,String(n)),t[e]??j[e]??e)}function I(e){return(0,x.jsx)(L,{...e,channel:`slack`})}function L({channel:e,client:_,t:v,initialDraft:y,returnFocus:S,onBeforeSave:C,onClose:w}){let[T,E]=(0,b.useState)(()=>d(e,y)),[D,O]=(0,b.useState)(`cli-jaw`),[k,A]=(0,b.useState)(!1),[j,M]=(0,b.useState)(null),[N,P]=(0,b.useState)(``),F=(0,b.useRef)(null),I=(0,b.useRef)(!1),L=(0,b.useRef)(!1);(0,b.useLayoutEffect)(()=>(I.current=!0,()=>{I.current=!1}),[]),(0,b.useEffect)(()=>{let e=F.current;return e?.showModal(),()=>{e?.close(),queueMicrotask(()=>{S?.isConnected&&S.focus()})}},[S]);function R(){e!==`slack`&&L.current||(T.saved||window.confirm(`Discard unsaved changes?`))&&w()}async function z(e,t=`onboarding.error.network`){if(!L.current){L.current=!0,A(!0),M(null);try{await e()}catch{I.current&&M(v(t))}finally{L.current=!1,I.current&&A(!1)}}}async function B(){let e=D.trim();if(!e||Array.from(e).length>35){M(v(`onboarding.slackAppNameError`));return}await z(async()=>{let n=await _.get(`/api/slack/manifest?name=${encodeURIComponent(e)}`);if(!I.current)return;let r=n.data??n;if(!r.json)throw Error(`manifest`);if(!(await t(r.json)).ok)throw Error(`clipboard`);I.current&&(E(i),P(r.botDisplayName&&r.botDisplayName!==e?v(`onboarding.slackManifestCopiedWithBot`,{bot:r.botDisplayName}):v(`onboarding.slackManifestReady`)))},`onboarding.slackManifestError`)}async function V(){await z(async()=>{let e=await _.post(`/api/channels/validate`,o(T));I.current&&E(t=>p(t,e.data??e))})}async function H(){T.validatedIdentity&&!T.saved&&await z(async()=>{let e=C();await _.put(`/api/settings`,l(T)),I.current&&(await e(),I.current&&E(c))})}function U(){if(!(k||L.current||T.saved)){if(T.step===1&&e===`slack`){B();return}if(T.step===3){V();return}if(T.step===4){H();return}E(u)}}return(0,x.jsxs)(`dialog`,{ref:F,className:`settings-slack-setup`,"aria-labelledby":`sl-setup-title`,onCancel:e=>{e.preventDefault(),R()},onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&e.target instanceof HTMLInputElement&&(e.preventDefault(),U())},children:[(0,x.jsx)(`h2`,{id:`sl-setup-title`,children:v(`onboarding.title.${e}`)}),(0,x.jsx)(`p`,{role:`status`,children:v(`onboarding.progressLabel`,{step:T.step,total:4})}),(0,x.jsxs)(`fieldset`,{disabled:k||T.saved,children:[T.step===1&&e===`slack`&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`label`,{htmlFor:`sl-setup-name`,children:v(`onboarding.slackAppName`)}),(0,x.jsx)(`input`,{id:`sl-setup-name`,value:D,onChange:e=>{O(e.target.value),E(a),P(``)}}),(0,x.jsx)(`p`,{children:v(`onboarding.guide.slack`)}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>void B(),children:v(`onboarding.slackGenerateManifest`)}),(0,x.jsx)(`p`,{role:`status`,children:N}),(0,x.jsx)(`button`,{type:`button`,disabled:T.slackSetupStage===`manifest`,onClick:()=>{window.open(h.slack,`_blank`,`noopener`),E(g)},children:v(`onboarding.openIssuer`)})]}),T.step===1&&e!==`slack`&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`p`,{children:v(`onboarding.guide.${e}`)}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>window.open(h[e],`_blank`,`noopener`),children:v(`onboarding.openIssuer`)})]}),T.step===2&&m(e).map(t=>(0,x.jsxs)(`label`,{children:[v(`onboarding.token.${t.key}`),t.optional?` (${v(`onboarding.optional`)})`:``,(0,x.jsx)(`input`,{type:t.secret?`password`:`text`,autoComplete:`off`,placeholder:t.example,value:T.draft[t.key]??``,onChange:e=>E(n=>f(n,t.key,e.target.value))}),(0,x.jsx)(`span`,{children:v(`onboarding.hint.${e}.${t.key}`)})]},t.key)),T.step===3&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{type:`button`,onClick:()=>void V(),children:v(`onboarding.validate`)}),T.validatedIdentity&&(0,x.jsx)(`p`,{children:v(`onboarding.valid`,{identity:T.validatedIdentity})})]}),T.step===4&&(0,x.jsx)(`p`,{children:v(T.saved?`onboarding.next.${e}`:`onboarding.saveHint`)}),T.step>1&&(0,x.jsx)(`button`,{type:`button`,onClick:()=>E(r),children:v(`onboarding.back`)}),T.step<4?(0,x.jsx)(`button`,{type:`button`,disabled:!n(T),onClick:()=>E(u),children:v(`onboarding.next`)}):(0,x.jsx)(`button`,{type:`button`,disabled:!T.validatedIdentity,onClick:()=>void H(),children:v(`onboarding.save`)})]}),(j||T.error||T.step===2&&s(T))&&(0,x.jsx)(`p`,{role:`alert`,children:j??v(`onboarding.error.${T.error??s(T)}`)}),!!T.missingScopes.length&&(0,x.jsx)(`p`,{role:`alert`,children:T.missingScopes.join(`, `)}),!!T.missingCapabilities.length&&(0,x.jsx)(`p`,{role:`status`,children:v(`onboarding.warning.missingCapabilities`,{capabilities:T.missingCapabilities.join(`, `)})}),(0,x.jsx)(`button`,{type:`button`,disabled:e!==`slack`&&k,onClick:R,children:v(`onboarding.close`)})]})}function R({pageChannel:e,snapshot:t,enabledChannels:n,homeChannel:r,setEnabledChannels:i,setHomeChannel:a,dirty:o,idPrefix:s=`channel`}){let c=t.messaging||{},l=Array.isArray(c.enabledChannels)?c.enabledChannels:[],u=c.homeChannel||`telegram`,d=(0,b.useCallback)(e=>{o.set(`messaging.enabledChannels`,{value:e,original:l,valid:!0})},[o,l]),f=(0,b.useCallback)(e=>{o.set(`messaging.homeChannel`,{value:e,original:u,valid:!0})},[o,u]),p=n.includes(e);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(y,{id:`${s}-enabled`,label:`Receive inbound messages on ${z(e)}`,value:p,onChange:t=>{let r=t?[...new Set([...n,e])]:n.filter(t=>t!==e);i(r),d(r),t&&n.length===0&&(a(e),f(e))}}),(0,x.jsxs)(`fieldset`,{className:`settings-field`,children:[(0,x.jsx)(`legend`,{className:`settings-field-label`,children:`Home channel (fallback for proactive sends)`}),(0,x.jsx)(`div`,{className:`settings-active-channel-options`,role:`radiogroup`,"aria-label":`Home channel`,children:[`telegram`,`discord`,`slack`].map(e=>(0,x.jsxs)(`label`,{className:`settings-radio`,children:[(0,x.jsx)(`input`,{type:`radio`,name:`${s}-homeChannel`,checked:r===e,onChange:()=>{a(e),f(e)}}),(0,x.jsx)(`span`,{children:z(e)})]},e))})]})]})}function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}export{E as a,F as i,L as n,I as r,R as t};
|