@tunnelbox/core 0.1.10 → 0.1.11

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.
@@ -1,165 +1,166 @@
1
- {
2
- "agent.err.createSession": "セッションの作成に失敗しました",
3
- "agent.err.httpClient": "opencode HTTP client にアクセスできません",
4
- "agent.err.unknownPerm": "不明な権限リクエスト: {id}",
5
- "agent.err.unknownQuestion": "不明な質問リクエスト: {id}",
6
- "agent.log.fallback404": "優先エンドポイントが 404 を返したため、別のエンドポイントへフォールバック: {message}",
7
- "agent.log.gotPermReply": "携帯から権限の返信を受信 (id={id} {reply} {version})",
8
- "agent.log.gotQuestionReply": "携帯から質問の返信を受信 (id={id} {status} {version})",
9
- "agent.log.handleFailed": "{type} の処理に失敗: {message}",
10
- "agent.log.msgOk": "セッションメッセージ取得成功 session={session} data={count} 方式={limited} win={win} ms={ms}",
11
- "agent.log.msgFailed": "セッションメッセージ取得失敗 session={session} err={err} ms={ms}",
12
- "agent.log.msgLimitFallback": "この opencode は limit 非対応のため全量取得にフォールバック(session={session})",
13
- "agent.log.httpOk": "opencode HTTP {status} {path}",
14
- "agent.log.pendingResent": "session.pending: {session} の保留リクエスト {count} 件を再送",
15
- "agent.log.unhandledType": "未処理のメッセージタイプ: {type}",
16
- "events.log.fwdPermission": "権限リクエストを携帯へ転送 (id={id} tool={tool} {version})",
17
- "events.log.permissionReplied": "opencode 応答 permission.replied (id={id} {response})",
18
- "events.log.questionRejected": "opencode 応答 question.rejected (id={id})",
19
- "events.log.questionReplied": "opencode 応答 question.replied (id={id})",
20
- "index.error.connectRelay": "リレーに接続できません。リレーアドレスを確認して再試行してください",
21
- "index.error.pairTimeout": "ペアリングコードの取得がタイムアウトしました(リレーが応答しません)",
22
- "index.log.claimed": "スマホのアカウントに紐付けました。以降は「マイ PC」から直接接続されるため、再スキャンは不要です",
23
- "index.log.connectedRelay": "リレーに接続しました {url}",
24
- "index.log.loaded": "tunnelbox opencode プラグインを起動しました(v{version}",
25
- "index.log.disconnected": "リレーから切断、自動的に再接続しています…",
26
- "index.log.exit": "終了しました",
27
- "index.log.pairCode": "ペアリングコードを生成: {code}",
28
- "index.log.pairingStillClaimed": "このペアリングコードは同一アカウントの新しいスマートフォンとの再ペアリング専用です。この PC は既に連携済みで、スマートフォンの「マイ コンピューター」から引き続き接続できます。",
29
- "index.log.pairingPreparing": "リレーへ接続してペアリングコードを生成しています…",
30
- "index.log.permissionToPhone": "権限リクエスト → スマホで承認 (id={id} tool={tool})",
31
- "index.log.permissionTuiFallback": "App がオフラインのため、権限リクエストは opencode TUI で対応 (id={id} tool={tool})",
32
- "index.log.relayError": "リレーエラー: {msg}",
33
- "index.log.resetIdentity": "アカウントから解除されました。ID をリセットして新しいペアリングコードを生成します…",
34
- "index.log.unknown": "不明",
35
- "install.codeLine": "ペアリングコード: {code}",
36
- "install.commandInstalled": "コマンドをインストール: {path}",
37
- "install.done": "完了。リレーに接続して本機のペアリング情報を出力しました:",
38
- "install.failConnect": "(ペアリング情報を出力するためリレーに接続できませんでした — リレーに到達できないか Node が古すぎる可能性があります。",
39
- "install.failConnectHint": "opencode を再起動後、--print-logs でターミナルの QR コードを確認するか、opencode 内で「ペアリングコードを表示」または /pair と入力してください。)",
40
- "install.hintFresh": "注意:ペアリングコードは一度きりで、約 10 分間有効です。後から opencode を起動する場合は、起動時に表示されるか /pair で取得した最新情報を使用してください。",
41
- "install.pluginInstalled": "プラグインをインストール: {path}",
42
- "install.qrUnavailable": "(QR コードを表示できません — 上記のペアリングコードを使用してください)",
43
- "install.qrcodeEnsure": "qrcode opencode 設定ディレクトリにインストールしています…",
44
- "install.qrcodeFail": "qrcode のインストールに失敗しました(使用には影響せず、ペアリングコードのみ表示されます): {err}",
45
- "install.relayError": "リレーがエラーを返しました: {msg}",
46
- "install.scanHint": "スマホで tunnelbox App「スキャンしてペアリング」を開き、上の QR コードをスキャンして接続:",
47
- "pair.heading": "tunnelbox スマホペアリング",
48
- "pair.howTo": "スマホで tunnelbox App を開き、「スキャンしてペアリング」で上の QR コードをスキャンするか、ペアリングコードを手動入力してください。",
49
- "pair.oneTime": "ペアリングコードは一度きりで、使用後は無効になります。新しいコードが必要な場合は「ペアリングコードを更新」と依頼してください。",
50
- "pair.promptBody": "この PC のスマホ遠隔ペアリング情報を表示してください:ペアリングコードと、スキャンできる QR コード。QR コードは等幅コードブロックに入れ、1 文字も変えずそのまま出力してください。スマホでスキャンできるようにするためです。",
51
- "pair.promptDescription": "スマホ遠隔ペアリングのペアリングコード・スキャン用 QR コードを表示",
52
- "pair.scanIntro": "**スキャンでペアリング**:スマホで tunnelbox App「スキャンしてペアリング」を開き、下の QR コードをスキャンすると自動的に接続されます。",
53
- "perm.promptAuthorize": "opencode が認可を要求しています",
54
- "perm.promptPatterns": "opencode がアクセスを要求: {list}",
55
- "perm.promptResource": "opencode がリソースへのアクセスを要求: {list}",
56
- "perm.promptTool": "opencode {tool} の実行を要求",
57
- "qr.codeLabel": "ペアリングコード",
58
- "qr.fileWritten": "ペアリング情報を書き込みました: {path}",
59
- "qr.openHint": "tunnelbox App を開き、上の QR コードをスキャンするか、App でペアリングコードを手動入力してください。",
60
- "qr.titleNoType": "tunnelbox スマホペアリング",
61
- "qr.titleWithType": "tunnelbox {type} スマホペアリング",
62
- "qr.unavailable": "(qrcode が未インストール — 上記のペアリングコードを使用してください)",
63
- "claude.errBusy": "このセッションは実行中です。完了するまでお待ちいただくか、先に停止してください",
64
- "claude.errTurn": "生成エラー",
65
- "claude.pairingStillClaimed": "すでにアカウントに紐付け済みです。このコードは同じアカウントの新しい端末のペアリング専用です。現在の端末は「マイコンピュータ」から直接接続できます",
66
- "claude.pairForced": "--pair:ペアリングコードを強制リクエストしました(今回のみ)",
67
- "claude.pairUnclaimed": "紐付け済みアカウントを検出できませんでした。ペアリング案内を開始します:",
68
- "claude.claimedHint": "携帯アカウントに紐付け済みです:携帯の「マイコンピュータ」から直接接続してください",
69
- "claude.errStartFailed": "起動に失敗しました:",
70
- "claude.msgStarted": "Claude Code アダプターを起動しました(Ctrl+C で終了)",
71
- "claude.warnInvalidMode": "無効な TUNNELBOX_CLAUDE_MODE を無視: {raw}(許可 {list})",
72
- "claude.warnInvalidThinking": "無効な TUNNELBOX_CLAUDE_THINKING を無視: {raw}(off|adaptive|enabled[:budget])",
73
- "claude.cmdNew": "新しいセッション",
74
- "claude.cmdHelp": "ヘルプを表示",
75
- "claude.errNoRelay": "中継 URL が設定されていません: ビルド時は --env でデフォルトを注入し、実行時は TUNNELBOX_RELAY_URL で上書きできます",
76
- "claude.logConnected": "中継 {url} に接続しました",
77
- "claude.logMsgUncaught": "メッセージ処理中に未捕捉の例外: {message}",
78
- "claude.reasonDisconnect": "中継が切断されました(fail-closed 自動拒否)",
79
- "claude.reasonUnbind": "アカウント連携解除(fail-closed 自動拒否)",
80
- "claude.logDisconnected": "中継から切断、自動で再接続中…",
81
- "claude.logPairCode": "ペアリングコードを生成: {code}",
82
- "claude.logUnhandledType": "未処理のメッセージタイプ: {type}",
83
- "claude.logHandleFailed": "{type} の処理に失敗: {message}",
84
- "claude.newSessionTitle": "新しいセッション",
85
- "claude.helpText": "使用可能なコマンド:\n- /new 新しいセッション\n- /help ヘルプを表示",
86
- "claude.logPromptFailed": "session.prompt に失敗: {message}",
87
- "claude.logAbortSent": "中止を送信しました (session={session})",
88
- "claude.logAbortFailed": "中止に失敗 (session={session}): {message}",
89
- "claude.errBadWorkspaceEmpty": "ワークスペースのパスがありません",
90
- "claude.errBadWorkspaceNotDir": "ディレクトリが存在しないか利用できません",
91
- "claude.logWorkspaceSwitched": "ワークスペースを切替: {path}",
92
- "claude.logUnknownQuestionReply": "一致しない構造化質問の応答 (id={id})",
93
- "claude.logFlushedQuestions": "未回答の質問 {count} 件をキャンセル: {reason}",
94
- "claude.logFlushedApprovals": "未回答のリクエスト {count} 件を拒否: {reason}",
95
- "claude.logPendingResent": "session.pending: {session} の保留項目 {count} 件を再送信",
96
- "claude.logSetModeFailed": "setPermissionMode に失敗 (session={session}): {message}",
97
- "claude.errWorkspaceMissing": "ワークスペースが存在しません: {dir}",
98
- "claude.logSessionError": "セッションエラー (session={session}): {message}",
99
- "claude.logOfflineDenyTool": "中継オフライン、ツール {tool} を自動拒否",
100
- "claude.errOfflineDeny": "中継オフライン、自動拒否(fail-closed)",
101
- "claude.logAuqDisabled": "AskUserQuestion は無効です(TUNNELBOX_CLAUDE_ASK_USER_QUESTION=0)、自動拒否",
102
- "claude.errAuqDisabled": "AskUserQuestion は有効になっていません",
103
- "claude.logAuqParseFailed": "AskUserQuestion 入力の解析に失敗、自動拒否(fail-closed)",
104
- "claude.errAuqParse": "質問を解析できません",
105
- "claude.logAuqSkipped": "AskUserQuestion 未回答/キャンセル (session={session})",
106
- "claude.errAuqCancelled": "ユーザーが選択しませんでした(キャンセル)",
107
- "claude.logAuqDone": "AskUserQuestion に回答しました (session={session})",
108
- "claude.promptRunTool": "Claude Code {tool} の実行を要求",
109
- "claude.errApprovalTimeout": "承認がタイムアウト、自動拒否(fail-closed)",
110
- "claude.errUserDenied": "ユーザーが拒否",
111
- "claude.errAborted": "リクエストは中止されました",
112
- "claude.logPermToPhone": "権限リクエスト(tool={tool}) → スマホへ送信 permissionID={id}",
113
- "claude.errRelayUnreachable": "中継に到達できず、自動拒否(fail-closed)",
114
- "claude.logQuestionOffline": "中継オフライン、構造化質問を自動キャンセル",
115
- "claude.logQuestionToPhone": "構造化質問({count} 問)→ スマホへ送信 questionID={id}",
116
- "claude.logDialogOffline": "中継オフライン、ダイアログを自動キャンセル({tool}",
117
- "claude.logDialogToPhone": "ダイアログ要求(kind={kind} tool={tool}) → スマホへ送信 permissionID={id}",
118
- "claude.logAuqDialogParse": "AskUserQuestion ペイロードの解析に失敗、既定の動作を維持(session={session}",
119
- "claude.logDialogUnmapped": "request_user_dialog(kind={kind}) のマッピングがなく、既定の動作を維持(session={session})",
120
- "claude.promptMcpAuth": "MCP「{server}」が認可を要求",
121
- "claude.logElicitUnmapped": "MCP elicitation(server={server}, mode={mode})は未対応、自動拒否(session={session})",
122
- "claude.logResetIdentity": "アカウント連携が解除されました。ID をリセットし、新しいペアリングコードを生成しています…",
123
- "claude.dialogConfirm": "Claude Code が確認を要求({kind})",
124
- "claude.resultTruncated": "…(結果が長すぎるため省略)",
125
- "claude.streamError": "claude ストリーミングエラー",
126
- "claude.errListSessions": "Claude セッション一覧の読み取りに失敗",
127
- "claude.errReadHistory": "セッション履歴の読み取りに失敗({id})",
128
- "setup.langSet": "実行言語を設定しました",
129
- "setup.langHint": "再起動後にこの言語で出力します(実行時は TUNNELBOX_LANG で上書き可能)。状態ファイル:",
130
- "setup.langCurrent": "現在の実行言語",
131
- "hermes.errNoRelay": "リレーURLが設定されていません:--env でデフォルトを注入、実行時は TUNNELBOX_RELAY_URL で上書きしてください",
132
- "hermes.logConnected": "リレーに接続しました {url}",
133
- "hermes.logMsgUncaught": "メッセージ処理中の未捕捉例外: {message}",
134
- "hermes.logDisconnected": "リレーから切断、自動再接続中…",
135
- "hermes.logPairCode": "ペアリングコードを生成: {code}",
136
- "hermes.logUnhandledType": "未処理のメッセージタイプ: {type}",
137
- "hermes.logHandleFailed": "{type} の処理に失敗: {message}",
138
- "hermes.logClaimed": "スマホのアカウントにバインドしました。以後はスマホの「マイコンピュータ」から直接接続します",
139
- "hermes.logResetIdentity": "アカウントからバインド解除、IDをリセットして新しいペアリングコードを生成中…",
140
- "hermes.cmdNew": "新規セッション",
141
- "hermes.cmdHelp": "ヘルプを表示",
142
- "hermes.newSessionTitle": "新規セッション",
143
- "hermes.helpText": "サポートコマンド:\n- /new 新規セッション\n- /help ヘルプを表示",
144
- "hermes.errBusy": "このセッションは生成中です。完了を待つか、先に停止してください",
145
- "hermes.errBadWorkspace": "このディレクトリは存在しないか使用できません",
146
- "hermes.logWorkspaceSwitched": "ワークスペースを切替: {path}",
147
- "hermes.errWorkspaceMissing": "ワークスペースが存在しません: {dir}",
148
- "hermes.errStartFailed": "起動に失敗: {message}",
149
- "hermes.msgStarted": "Hermes アダプタを起動しました(Ctrl+C で終了)",
150
- "hermes.logAbortSent": "中止を送信 (session={session})",
151
- "hermes.logPromptFailed": "session.prompt に失敗: {message}",
152
- "hermes.logTurnError": "ターンエラー (session={session}): {message}",
153
- "hermes.logPairForced": "--pair:ペアリングコードを強制取得(今回のみ)",
154
- "hermes.pairingStillClaimed": "スマホアカウントにバインド済み:このコードは同アカウントの新デバイス再ペアリング用です。現在のデバイスはスマホの「マイコンピュータ」から直接接続できます",
155
- "hermes.logPairNoRelay": "リレーURLが未設定のためペアリングコードを取得できません",
156
- "hermes.errSpawnHermes": "Hermes({bin})を起動できません:インストールを確認してください({err})",
157
- "hermes.errHermesExit": "hermes 終了({code}): {err}",
158
- "hermes.logSessionUpdated": "セッションを更新 (session={session})",
159
- "hermes.errNoInject": "スマホからのメッセージ挿入が利用できません(非対話セッションまたはプロセス未準備)",
160
- "hermes.pairNoRelay": "リレーに接続できません(リレー到達不能または websockets 欠落)",
161
- "hermes.pairTimeout": "ペアリングコード要求がタイムアウト(リレー未応答)",
162
- "hermes.errToolPair": "tunnelbox_pair 失敗: {err}",
163
- "hermes.errToolStatus": "tunnelbox_status 失敗: {err}",
164
- "hermes.cliUsage": "使用方法: /tunnelbox <pair|status>\n pair ペアリングコードを取得して表示\n status リレー/バインド/接続状態を表示"
165
- }
1
+ {
2
+ "agent.err.createSession": "セッションの作成に失敗しました",
3
+ "agent.err.httpClient": "opencode HTTP client にアクセスできません",
4
+ "agent.err.unknownPerm": "不明な権限リクエスト: {id}",
5
+ "agent.err.unknownQuestion": "不明な質問リクエスト: {id}",
6
+ "agent.log.fallback404": "優先エンドポイントが 404 を返したため、別のエンドポイントへフォールバック: {message}",
7
+ "agent.log.gotPermReply": "携帯から権限の返信を受信 (id={id} {reply} {version})",
8
+ "agent.log.gotQuestionReply": "携帯から質問の返信を受信 (id={id} {status} {version})",
9
+ "agent.log.handleFailed": "{type} の処理に失敗: {message}",
10
+ "agent.log.msgOk": "セッションメッセージ取得成功 session={session} data={count} 方式={limited} win={win} ms={ms}",
11
+ "agent.log.msgFailed": "セッションメッセージ取得失敗 session={session} err={err} ms={ms}",
12
+ "agent.log.msgLimitFallback": "この opencode は limit 非対応のため全量取得にフォールバック(session={session})",
13
+ "agent.log.httpOk": "opencode HTTP {status} {path}",
14
+ "agent.log.pendingResent": "session.pending: {session} の保留リクエスト {count} 件を再送",
15
+ "agent.log.unhandledType": "未処理のメッセージタイプ: {type}",
16
+ "events.log.fwdPermission": "権限リクエストを携帯へ転送 (id={id} tool={tool} {version})",
17
+ "events.log.sessionDeleted": "session.deleted を携帯へ転送 (session={session})",
18
+ "events.log.permissionReplied": "opencode 応答 permission.replied (id={id} {response})",
19
+ "events.log.questionRejected": "opencode 応答 question.rejected (id={id})",
20
+ "events.log.questionReplied": "opencode 応答 question.replied (id={id})",
21
+ "index.error.connectRelay": "リレーに接続できません。リレーアドレスを確認して再試行してください",
22
+ "index.error.pairTimeout": "ペアリングコードの取得がタイムアウトしました(リレーが応答しません)",
23
+ "index.log.claimed": "スマホのアカウントに紐付けました。以降は「マイ PC」から直接接続されるため、再スキャンは不要です",
24
+ "index.log.connectedRelay": "リレーに接続しました {url}",
25
+ "index.log.loaded": "tunnelbox opencode プラグインを起動しました(v{version})",
26
+ "index.log.disconnected": "リレーから切断、自動的に再接続しています…",
27
+ "index.log.exit": "終了しました",
28
+ "index.log.pairCode": "ペアリングコードを生成: {code}",
29
+ "index.log.pairingStillClaimed": "このペアリングコードは同一アカウントの新しいスマートフォンとの再ペアリング専用です。この PC は既に連携済みで、スマートフォンの「マイ コンピューター」から引き続き接続できます。",
30
+ "index.log.pairingPreparing": "リレーへ接続してペアリングコードを生成しています…",
31
+ "index.log.permissionToPhone": "権限リクエスト スマホで承認 (id={id} tool={tool})",
32
+ "index.log.permissionTuiFallback": "App がオフラインのため、権限リクエストは opencode TUI で対応 (id={id} tool={tool})",
33
+ "index.log.relayError": "リレーエラー: {msg}",
34
+ "index.log.resetIdentity": "アカウントから解除されました。ID をリセットして新しいペアリングコードを生成します…",
35
+ "index.log.unknown": "不明",
36
+ "install.codeLine": "ペアリングコード: {code}",
37
+ "install.commandInstalled": "コマンドをインストール: {path}",
38
+ "install.done": "完了。リレーに接続して本機のペアリング情報を出力しました:",
39
+ "install.failConnect": "(ペアリング情報を出力するためリレーに接続できませんでした リレーに到達できないか Node が古すぎる可能性があります。",
40
+ "install.failConnectHint": "opencode を再起動後、--print-logs でターミナルの QR コードを確認するか、opencode 内で「ペアリングコードを表示」または /pair と入力してください。)",
41
+ "install.hintFresh": "注意:ペアリングコードは一度きりで、約 10 分間有効です。後から opencode を起動する場合は、起動時に表示されるか /pair で取得した最新情報を使用してください。",
42
+ "install.pluginInstalled": "プラグインをインストール: {path}",
43
+ "install.qrUnavailable": "(QR コードを表示できません 上記のペアリングコードを使用してください)",
44
+ "install.qrcodeEnsure": "qrcode opencode 設定ディレクトリにインストールしています…",
45
+ "install.qrcodeFail": "qrcode のインストールに失敗しました(使用には影響せず、ペアリングコードのみ表示されます): {err}",
46
+ "install.relayError": "リレーがエラーを返しました: {msg}",
47
+ "install.scanHint": "スマホで tunnelbox App「スキャンしてペアリング」を開き、上の QR コードをスキャンして接続:",
48
+ "pair.heading": "tunnelbox スマホペアリング",
49
+ "pair.howTo": "スマホで tunnelbox App を開き、「スキャンしてペアリング」で上の QR コードをスキャンするか、ペアリングコードを手動入力してください。",
50
+ "pair.oneTime": "ペアリングコードは一度きりで、使用後は無効になります。新しいコードが必要な場合は「ペアリングコードを更新」と依頼してください。",
51
+ "pair.promptBody": "この PC のスマホ遠隔ペアリング情報を表示してください:ペアリングコードと、スキャンできる QR コード。QR コードは等幅コードブロックに入れ、1 文字も変えずそのまま出力してください。スマホでスキャンできるようにするためです。",
52
+ "pair.promptDescription": "スマホ遠隔ペアリングのペアリングコード・スキャン用 QR コードを表示",
53
+ "pair.scanIntro": "**スキャンでペアリング**:スマホで tunnelbox App「スキャンしてペアリング」を開き、下の QR コードをスキャンすると自動的に接続されます。",
54
+ "perm.promptAuthorize": "opencode が認可を要求しています",
55
+ "perm.promptPatterns": "opencode がアクセスを要求: {list}",
56
+ "perm.promptResource": "opencode がリソースへのアクセスを要求: {list}",
57
+ "perm.promptTool": "opencode が {tool} の実行を要求",
58
+ "qr.codeLabel": "ペアリングコード",
59
+ "qr.fileWritten": "ペアリング情報を書き込みました: {path}",
60
+ "qr.openHint": "tunnelbox App を開き、上の QR コードをスキャンするか、App でペアリングコードを手動入力してください。",
61
+ "qr.titleNoType": "tunnelbox スマホペアリング",
62
+ "qr.titleWithType": "tunnelbox {type} スマホペアリング",
63
+ "qr.unavailable": "(qrcode が未インストール — 上記のペアリングコードを使用してください)",
64
+ "claude.errBusy": "このセッションは実行中です。完了するまでお待ちいただくか、先に停止してください",
65
+ "claude.errTurn": "生成エラー",
66
+ "claude.pairingStillClaimed": "すでにアカウントに紐付け済みです。このコードは同じアカウントの新しい端末のペアリング専用です。現在の端末は「マイコンピュータ」から直接接続できます",
67
+ "claude.pairForced": "--pair:ペアリングコードを強制リクエストしました(今回のみ)",
68
+ "claude.pairUnclaimed": "紐付け済みアカウントを検出できませんでした。ペアリング案内を開始します:",
69
+ "claude.claimedHint": "携帯アカウントに紐付け済みです:携帯の「マイコンピュータ」から直接接続してください",
70
+ "claude.errStartFailed": "起動に失敗しました:",
71
+ "claude.msgStarted": "Claude Code アダプターを起動しました(Ctrl+C で終了)",
72
+ "claude.warnInvalidMode": "無効な TUNNELBOX_CLAUDE_MODE を無視: {raw}(許可 {list})",
73
+ "claude.warnInvalidThinking": "無効な TUNNELBOX_CLAUDE_THINKING を無視: {raw}(off|adaptive|enabled[:budget])",
74
+ "claude.cmdNew": "新しいセッション",
75
+ "claude.cmdHelp": "ヘルプを表示",
76
+ "claude.errNoRelay": "中継 URL が設定されていません: ビルド時は --env でデフォルトを注入し、実行時は TUNNELBOX_RELAY_URL で上書きできます",
77
+ "claude.logConnected": "中継 {url} に接続しました",
78
+ "claude.logMsgUncaught": "メッセージ処理中に未捕捉の例外: {message}",
79
+ "claude.reasonDisconnect": "中継が切断されました(fail-closed 自動拒否)",
80
+ "claude.reasonUnbind": "アカウント連携解除(fail-closed 自動拒否)",
81
+ "claude.logDisconnected": "中継から切断、自動で再接続中…",
82
+ "claude.logPairCode": "ペアリングコードを生成: {code}",
83
+ "claude.logUnhandledType": "未処理のメッセージタイプ: {type}",
84
+ "claude.logHandleFailed": "{type} の処理に失敗: {message}",
85
+ "claude.newSessionTitle": "新しいセッション",
86
+ "claude.helpText": "使用可能なコマンド:\n- /new 新しいセッション\n- /help ヘルプを表示",
87
+ "claude.logPromptFailed": "session.prompt に失敗: {message}",
88
+ "claude.logAbortSent": "中止を送信しました (session={session})",
89
+ "claude.logAbortFailed": "中止に失敗 (session={session}): {message}",
90
+ "claude.errBadWorkspaceEmpty": "ワークスペースのパスがありません",
91
+ "claude.errBadWorkspaceNotDir": "ディレクトリが存在しないか利用できません",
92
+ "claude.logWorkspaceSwitched": "ワークスペースを切替: {path}",
93
+ "claude.logUnknownQuestionReply": "一致しない構造化質問の応答 (id={id})",
94
+ "claude.logFlushedQuestions": "未回答の質問 {count} 件をキャンセル: {reason}",
95
+ "claude.logFlushedApprovals": "未回答のリクエスト {count} 件を拒否: {reason}",
96
+ "claude.logPendingResent": "session.pending: {session} の保留項目 {count} 件を再送信",
97
+ "claude.logSetModeFailed": "setPermissionMode に失敗 (session={session}): {message}",
98
+ "claude.errWorkspaceMissing": "ワークスペースが存在しません: {dir}",
99
+ "claude.logSessionError": "セッションエラー (session={session}): {message}",
100
+ "claude.logOfflineDenyTool": "中継オフライン、ツール {tool} を自動拒否",
101
+ "claude.errOfflineDeny": "中継オフライン、自動拒否(fail-closed)",
102
+ "claude.logAuqDisabled": "AskUserQuestion は無効です(TUNNELBOX_CLAUDE_ASK_USER_QUESTION=0)、自動拒否",
103
+ "claude.errAuqDisabled": "AskUserQuestion は有効になっていません",
104
+ "claude.logAuqParseFailed": "AskUserQuestion 入力の解析に失敗、自動拒否(fail-closed)",
105
+ "claude.errAuqParse": "質問を解析できません",
106
+ "claude.logAuqSkipped": "AskUserQuestion 未回答/キャンセル (session={session})",
107
+ "claude.errAuqCancelled": "ユーザーが選択しませんでした(キャンセル)",
108
+ "claude.logAuqDone": "AskUserQuestion に回答しました (session={session})",
109
+ "claude.promptRunTool": "Claude Code が {tool} の実行を要求",
110
+ "claude.errApprovalTimeout": "承認がタイムアウト、自動拒否(fail-closed)",
111
+ "claude.errUserDenied": "ユーザーが拒否",
112
+ "claude.errAborted": "リクエストは中止されました",
113
+ "claude.logPermToPhone": "権限リクエスト(tool={tool}) → スマホへ送信 permissionID={id}",
114
+ "claude.errRelayUnreachable": "中継に到達できず、自動拒否(fail-closed)",
115
+ "claude.logQuestionOffline": "中継オフライン、構造化質問を自動キャンセル",
116
+ "claude.logQuestionToPhone": "構造化質問({count} 問)→ スマホへ送信 questionID={id}",
117
+ "claude.logDialogOffline": "中継オフライン、ダイアログを自動キャンセル({tool}",
118
+ "claude.logDialogToPhone": "ダイアログ要求(kind={kind} tool={tool}) → スマホへ送信 permissionID={id}",
119
+ "claude.logAuqDialogParse": "AskUserQuestion ペイロードの解析に失敗、既定の動作を維持(session={session})",
120
+ "claude.logDialogUnmapped": "request_user_dialog(kind={kind}) のマッピングがなく、既定の動作を維持(session={session})",
121
+ "claude.promptMcpAuth": "MCP{server}」が認可を要求",
122
+ "claude.logElicitUnmapped": "MCP elicitation(server={server}, mode={mode})は未対応、自動拒否(session={session})",
123
+ "claude.logResetIdentity": "アカウント連携が解除されました。ID をリセットし、新しいペアリングコードを生成しています…",
124
+ "claude.dialogConfirm": "Claude Code が確認を要求({kind})",
125
+ "claude.resultTruncated": "…(結果が長すぎるため省略)",
126
+ "claude.streamError": "claude ストリーミングエラー",
127
+ "claude.errListSessions": "Claude セッション一覧の読み取りに失敗",
128
+ "claude.errReadHistory": "セッション履歴の読み取りに失敗({id})",
129
+ "setup.langSet": "実行言語を設定しました",
130
+ "setup.langHint": "再起動後にこの言語で出力します(実行時は TUNNELBOX_LANG で上書き可能)。状態ファイル:",
131
+ "setup.langCurrent": "現在の実行言語",
132
+ "hermes.errNoRelay": "リレーURLが設定されていません:--env でデフォルトを注入、実行時は TUNNELBOX_RELAY_URL で上書きしてください",
133
+ "hermes.logConnected": "リレーに接続しました {url}",
134
+ "hermes.logMsgUncaught": "メッセージ処理中の未捕捉例外: {message}",
135
+ "hermes.logDisconnected": "リレーから切断、自動再接続中…",
136
+ "hermes.logPairCode": "ペアリングコードを生成: {code}",
137
+ "hermes.logUnhandledType": "未処理のメッセージタイプ: {type}",
138
+ "hermes.logHandleFailed": "{type} の処理に失敗: {message}",
139
+ "hermes.logClaimed": "スマホのアカウントにバインドしました。以後はスマホの「マイコンピュータ」から直接接続します",
140
+ "hermes.logResetIdentity": "アカウントからバインド解除、IDをリセットして新しいペアリングコードを生成中…",
141
+ "hermes.cmdNew": "新規セッション",
142
+ "hermes.cmdHelp": "ヘルプを表示",
143
+ "hermes.newSessionTitle": "新規セッション",
144
+ "hermes.helpText": "サポートコマンド:\n- /new 新規セッション\n- /help ヘルプを表示",
145
+ "hermes.errBusy": "このセッションは生成中です。完了を待つか、先に停止してください",
146
+ "hermes.errBadWorkspace": "このディレクトリは存在しないか使用できません",
147
+ "hermes.logWorkspaceSwitched": "ワークスペースを切替: {path}",
148
+ "hermes.errWorkspaceMissing": "ワークスペースが存在しません: {dir}",
149
+ "hermes.errStartFailed": "起動に失敗: {message}",
150
+ "hermes.msgStarted": "Hermes アダプタを起動しました(Ctrl+C で終了)",
151
+ "hermes.logAbortSent": "中止を送信 (session={session})",
152
+ "hermes.logPromptFailed": "session.prompt に失敗: {message}",
153
+ "hermes.logTurnError": "ターンエラー (session={session}): {message}",
154
+ "hermes.logPairForced": "--pair:ペアリングコードを強制取得(今回のみ)",
155
+ "hermes.pairingStillClaimed": "スマホアカウントにバインド済み:このコードは同アカウントの新デバイス再ペアリング用です。現在のデバイスはスマホの「マイコンピュータ」から直接接続できます",
156
+ "hermes.logPairNoRelay": "リレーURLが未設定のためペアリングコードを取得できません",
157
+ "hermes.errSpawnHermes": "Hermes({bin})を起動できません:インストールを確認してください({err}",
158
+ "hermes.errHermesExit": "hermes 終了({code}): {err}",
159
+ "hermes.logSessionUpdated": "セッションを更新 (session={session})",
160
+ "hermes.errNoInject": "スマホからのメッセージ挿入が利用できません(非対話セッションまたはプロセス未準備)",
161
+ "hermes.pairNoRelay": "リレーに接続できません(リレー到達不能または websockets 欠落)",
162
+ "hermes.pairTimeout": "ペアリングコード要求がタイムアウト(リレー未応答)",
163
+ "hermes.errToolPair": "tunnelbox_pair 失敗: {err}",
164
+ "hermes.errToolStatus": "tunnelbox_status 失敗: {err}",
165
+ "hermes.cliUsage": "使用方法: /tunnelbox <pair|status>\n pair ペアリングコードを取得して表示\n status リレー/バインド/接続状態を表示"
166
+ }