feat: add credential priority controls and OAuth defaults
This commit is contained in:
1 parent
0f3e5093e8
commit
bbe22a96eb
13 files changed
+582
-416
No files matched your search
+18
-17
@@ -60,6 +60,7 @@ export const jaOverrides = {
|
||||
'quota.confirm.warning': '「確認」を押した場合のみ実行されます。「キャンセル」ではリセット回数を消費しません。',
|
||||
'oauth.title': 'OAuth ログイン',
|
||||
'oauth.loginSuccess': '{provider} へのログインに成功しました',
|
||||
'oauth.priorityApplyFailed': 'OAuth ログインは成功しましたが、新しい認証情報の優先度を 0 に設定できませんでした:{error}',
|
||||
'oauth.authFailed': '認証に失敗しました',
|
||||
'oauth.loginFailed': '{provider} へのログインに失敗しました{detail}',
|
||||
'oauth.missingState': 'コアから OAuth state が返されませんでした',
|
||||
@@ -204,18 +205,10 @@ export const jaOverrides = {
|
||||
'aliases.created': '{alias} を作成し、推論レベルを {effort} に固定しました',
|
||||
'aliases.deleteConfirm': 'エイリアスモデル「{alias}」を削除しますか?\n対応する推論レベルの上書きルールも削除されます。',
|
||||
'aliases.deleted': '{alias} を削除しました',
|
||||
'aliases.title': '推論エイリアス',
|
||||
'aliases.intro.title': '元のモデルに固定推論レベルのカスタムエイリアスを追加',
|
||||
'aliases.intro.description': 'エイリアス名は自由に指定できます。クライアントがエイリアスを使用した場合のみ CPA が選択した推論レベルを注入し、元のモデルを直接使用した場合は名前、設定、動作を変更しません。',
|
||||
'aliases.intro.badge': '元のモデルには影響しません',
|
||||
'aliases.flow.aria': '推論エイリアスのワークフロー',
|
||||
'aliases.flow.original': '元のモデル',
|
||||
'aliases.flow.direct': '直接呼び出し',
|
||||
'aliases.flow.directValue': 'deepseek-v4-pro · 変更なし',
|
||||
'aliases.flow.alias': 'エイリアス呼び出し',
|
||||
'aliases.flow.aliasValue': 'deepseek-v4-pro-max · max に固定',
|
||||
'aliases.create.title': '推論エイリアスを作成',
|
||||
'aliases.create.description': 'Codex OAuth、Codex API、OpenAI 互換接続に対応',
|
||||
'aliases.modelAlias.title': 'モデルエイリアス',
|
||||
'aliases.modelAlias.description': 'クライアントが使用する名前を入力し、最終マッピングを確認します',
|
||||
'aliases.originalModel': '元のモデル',
|
||||
'aliases.loadingModels': 'モデルを読み込んでいます',
|
||||
'aliases.searchModel': '元のモデルを検索して選択',
|
||||
@@ -336,6 +329,13 @@ export const jaOverrides = {
|
||||
'authFiles.quota.expiry': '最も早い有効期限 {time}',
|
||||
'authFiles.models.noneForProvider': 'このプロバイダーには設定可能なモデル定義がありません',
|
||||
'authFiles.models.updated': '{provider} の公開モデルを更新しました',
|
||||
'authFiles.priority.button': '優先度 {priority}',
|
||||
'authFiles.priority.title': '認証情報の優先度を変更',
|
||||
'authFiles.priority.label': '優先度',
|
||||
'authFiles.priority.placeholder': '例:10 または -1',
|
||||
'authFiles.priority.hint': '整数のみ指定できます。値が大きいほど優先度が高くなります。空欄または 0 で既定値に戻ります。',
|
||||
'authFiles.priority.invalid': '有効な整数の優先度を入力してください',
|
||||
'authFiles.priority.updated': '{name} の優先度を更新しました',
|
||||
'authFiles.uploaded': '認証ファイルを {count} 件アップロードしました',
|
||||
'authFiles.uploadFailed': '{count} 件のファイルをアップロードできませんでした:{errors}',
|
||||
'authFiles.notice.enabled': '認証ファイルを有効にしました',
|
||||
@@ -345,8 +345,6 @@ export const jaOverrides = {
|
||||
'authFiles.deleted': '認証ファイルを削除しました',
|
||||
'authFiles.deleteAllConfirm': 'ディスク上の認証ファイルをすべて削除しますか?実行時認証は削除されません。',
|
||||
'authFiles.deletedAll': 'ディスク上の認証ファイルをすべて削除しました',
|
||||
'authFiles.runtimeDownloadError': '実行時認証ファイルにはダウンロード可能なディスクファイルがありません',
|
||||
'authFiles.downloaded': '認証ファイルをダウンロードしました',
|
||||
'common.copyFailed': 'コピーに失敗しました',
|
||||
'authFiles.title': '認証ファイル',
|
||||
'authFiles.summary': 'ファイル {files} 件 · 無効 {disabled} 件',
|
||||
@@ -372,7 +370,7 @@ export const jaOverrides = {
|
||||
'authFiles.models.settings': '公開モデルを設定',
|
||||
'authFiles.models.button': 'モデル',
|
||||
'authFiles.copyName': 'ファイル名をコピー',
|
||||
'common.download': 'ダウンロード',
|
||||
'authFiles.openDirectory': '認証情報フォルダーを開く',
|
||||
'common.enable': '有効化',
|
||||
'common.disable': '無効化',
|
||||
'authFiles.runtimeFootnote': '{count} 件の認証情報は実行時ストレージ由来です。対応するプロバイダーまたは認証元でのみ管理できます。',
|
||||
@@ -409,10 +407,6 @@ export const jaOverrides = {
|
||||
'agents.model.search': 'モデル名またはエイリアスを検索',
|
||||
'agents.model.clearSearch': '検索を消去',
|
||||
'agents.model.refresh': 'モデルを更新',
|
||||
'agents.catalog.update': 'モデル設定情報を更新',
|
||||
'agents.catalog.updating': 'モデル設定を更新しています',
|
||||
'agents.catalog.updated': 'GitHub からモデル設定を更新しました',
|
||||
'agents.catalog.unchanged': 'モデル設定は最新です',
|
||||
'agents.model.fetching': 'モデルを取得しています',
|
||||
'agents.model.noMatch': '一致するモデルがありません',
|
||||
'agents.model.unavailable': '現在利用可能なモデルはありません',
|
||||
@@ -710,6 +704,13 @@ export const jaOverrides = {
|
||||
'appUpdate.available': 'バージョン {version} を利用できます',
|
||||
'appUpdate.check': '更新を確認',
|
||||
'appUpdate.checking': '確認中',
|
||||
'appUpdate.catalog.label': 'Codex モデルカタログ',
|
||||
'appUpdate.catalog.description': '起動時に GitHub から通知なしで自動同期します',
|
||||
'appUpdate.catalog.update': 'モデルカタログを同期',
|
||||
'appUpdate.catalog.updateHint': 'GitHub を確認して Codex モデルカタログを更新します',
|
||||
'appUpdate.catalog.updating': 'モデルカタログを同期しています',
|
||||
'appUpdate.catalog.updated': 'GitHub からモデルカタログを同期しました',
|
||||
'appUpdate.catalog.unchanged': 'モデルカタログは最新です',
|
||||
'appUpdate.installNow': '今すぐ更新',
|
||||
'appUpdate.openRelease': 'ダウンロードページを開く',
|
||||
'appUpdate.confirmTitle': 'アプリ更新をインストール',
|
||||
|
||||
+36
-34
@@ -63,6 +63,7 @@ export const zhCN = {
|
||||
'quota.confirm.warning': '只有点击“确定”后才会执行;点击“取消”不会消耗重置机会。',
|
||||
'oauth.title': 'OAuth 登录',
|
||||
'oauth.loginSuccess': '{provider} 登录成功',
|
||||
'oauth.priorityApplyFailed': 'OAuth 登录成功,但无法将新凭证的优先级设为 0:{error}',
|
||||
'oauth.authFailed': '认证失败',
|
||||
'oauth.loginFailed': '{provider} 登录失败{detail}',
|
||||
'oauth.missingState': '内核未返回 OAuth state',
|
||||
@@ -207,18 +208,10 @@ export const zhCN = {
|
||||
'aliases.created': '已创建 {alias},思考强度固定为 {effort}',
|
||||
'aliases.deleteConfirm': '确定删除别名模型“{alias}”吗?\n将同时移除对应的思考强度覆盖规则。',
|
||||
'aliases.deleted': '已删除 {alias}',
|
||||
'aliases.title': '思考别名',
|
||||
'aliases.intro.title': '为原模型新增一个固定思考强度的自定义别名',
|
||||
'aliases.intro.description': '别名名称由你填写,客户端调用它时 CPA 才会注入所选思考强度;直接调用原模型时,原有名称、配置和行为全部保持不变。',
|
||||
'aliases.intro.badge': '原模型不受影响',
|
||||
'aliases.flow.aria': '思考别名工作流程',
|
||||
'aliases.flow.original': '原模型',
|
||||
'aliases.flow.direct': '直接调用',
|
||||
'aliases.flow.directValue': 'deepseek-v4-pro · 保持不变',
|
||||
'aliases.flow.alias': '别名调用',
|
||||
'aliases.flow.aliasValue': 'deepseek-v4-pro-max · 固定 max 强度',
|
||||
'aliases.create.title': '创建思考别名',
|
||||
'aliases.create.description': '支持 Codex OAuth、Codex API 和 OpenAI 兼容接入',
|
||||
'aliases.modelAlias.title': '模型别名',
|
||||
'aliases.modelAlias.description': '填写客户端调用名称并确认最终映射',
|
||||
'aliases.originalModel': '原模型',
|
||||
'aliases.loadingModels': '正在读取模型',
|
||||
'aliases.searchModel': '搜索并选择原模型',
|
||||
@@ -339,6 +332,13 @@ export const zhCN = {
|
||||
'authFiles.quota.expiry': '最早过期 {time}',
|
||||
'authFiles.models.noneForProvider': '该提供商没有可配置的模型定义',
|
||||
'authFiles.models.updated': '{provider} 开放模型已更新',
|
||||
'authFiles.priority.button': '优先级 {priority}',
|
||||
'authFiles.priority.title': '修改凭证优先级',
|
||||
'authFiles.priority.label': '优先级',
|
||||
'authFiles.priority.placeholder': '例如 10 或 -1',
|
||||
'authFiles.priority.hint': '仅支持整数;数值越大优先级越高。留空或填写 0 恢复默认。',
|
||||
'authFiles.priority.invalid': '请输入有效的整数优先级',
|
||||
'authFiles.priority.updated': '{name} 的优先级已更新',
|
||||
'authFiles.uploaded': '已上传 {count} 个认证文件',
|
||||
'authFiles.uploadFailed': '{count} 个文件上传失败:{errors}',
|
||||
'authFiles.notice.enabled': '认证文件已启用',
|
||||
@@ -348,8 +348,6 @@ export const zhCN = {
|
||||
'authFiles.deleted': '认证文件已删除',
|
||||
'authFiles.deleteAllConfirm': '确定删除所有磁盘认证文件吗?运行时认证不会被删除。',
|
||||
'authFiles.deletedAll': '磁盘认证文件已全部删除',
|
||||
'authFiles.runtimeDownloadError': '运行时认证文件没有可下载的磁盘文件',
|
||||
'authFiles.downloaded': '认证文件已下载',
|
||||
'common.copyFailed': '复制失败',
|
||||
'authFiles.title': '认证文件',
|
||||
'authFiles.summary': '{files} 个文件 · {disabled} 个停用',
|
||||
@@ -375,7 +373,7 @@ export const zhCN = {
|
||||
'authFiles.models.settings': '设置开放模型',
|
||||
'authFiles.models.button': '模型',
|
||||
'authFiles.copyName': '复制文件名',
|
||||
'common.download': '下载',
|
||||
'authFiles.openDirectory': '打开凭证所在文件夹',
|
||||
'common.enable': '启用',
|
||||
'common.disable': '停用',
|
||||
'authFiles.runtimeFootnote': '{count} 个凭据来自运行时存储,只能在对应提供商或认证源中管理。',
|
||||
@@ -412,10 +410,6 @@ export const zhCN = {
|
||||
'agents.model.search': '搜索模型名称或别名',
|
||||
'agents.model.clearSearch': '清空搜索',
|
||||
'agents.model.refresh': '刷新模型',
|
||||
'agents.catalog.update': '更新模型配置信息',
|
||||
'agents.catalog.updating': '正在更新模型配置',
|
||||
'agents.catalog.updated': '模型配置已从 GitHub 更新',
|
||||
'agents.catalog.unchanged': '模型配置已是最新版本',
|
||||
'agents.model.fetching': '正在获取模型',
|
||||
'agents.model.noMatch': '没有匹配的模型',
|
||||
'agents.model.unavailable': '暂时没有可用模型',
|
||||
@@ -713,6 +707,13 @@ export const zhCN = {
|
||||
'appUpdate.available': '发现新版本 {version}',
|
||||
'appUpdate.check': '检查更新',
|
||||
'appUpdate.checking': '正在检查',
|
||||
'appUpdate.catalog.label': 'Codex 模型目录',
|
||||
'appUpdate.catalog.description': '启动时自动从 GitHub 静默同步',
|
||||
'appUpdate.catalog.update': '同步模型目录',
|
||||
'appUpdate.catalog.updateHint': '从 GitHub 检查并更新 Codex 模型目录',
|
||||
'appUpdate.catalog.updating': '正在同步模型目录',
|
||||
'appUpdate.catalog.updated': '模型目录已从 GitHub 同步',
|
||||
'appUpdate.catalog.unchanged': '模型目录已是最新版本',
|
||||
'appUpdate.installNow': '立即升级',
|
||||
'appUpdate.openRelease': '打开下载页面',
|
||||
'appUpdate.confirmTitle': '安装软件更新',
|
||||
@@ -911,6 +912,7 @@ export const en: Record<MessageKey, string> = {
|
||||
'quota.confirm.warning': 'The reset runs only after you confirm. Canceling will not consume a reset credit.',
|
||||
'oauth.title': 'OAuth Sign-In',
|
||||
'oauth.loginSuccess': '{provider} sign-in succeeded',
|
||||
'oauth.priorityApplyFailed': 'OAuth sign-in succeeded, but the new credential priority could not be set to 0: {error}',
|
||||
'oauth.authFailed': 'Authentication failed',
|
||||
'oauth.loginFailed': '{provider} sign-in failed{detail}',
|
||||
'oauth.missingState': 'The core did not return an OAuth state',
|
||||
@@ -1055,18 +1057,10 @@ export const en: Record<MessageKey, string> = {
|
||||
'aliases.created': 'Created {alias} with reasoning effort fixed to {effort}',
|
||||
'aliases.deleteConfirm': 'Delete the model alias “{alias}”?\nIts reasoning-effort override will also be removed.',
|
||||
'aliases.deleted': 'Deleted {alias}',
|
||||
'aliases.title': 'Reasoning Aliases',
|
||||
'aliases.intro.title': 'Add a custom alias with a fixed reasoning effort to an original model',
|
||||
'aliases.intro.description': 'Choose the alias name. CPA injects the selected reasoning effort only when a client calls that alias. Calls to the original model keep their existing name, configuration, and behavior.',
|
||||
'aliases.intro.badge': 'Original model is unchanged',
|
||||
'aliases.flow.aria': 'Reasoning alias workflow',
|
||||
'aliases.flow.original': 'Original model',
|
||||
'aliases.flow.direct': 'Direct call',
|
||||
'aliases.flow.directValue': 'deepseek-v4-pro · unchanged',
|
||||
'aliases.flow.alias': 'Alias call',
|
||||
'aliases.flow.aliasValue': 'deepseek-v4-pro-max · fixed max effort',
|
||||
'aliases.create.title': 'Create Reasoning Alias',
|
||||
'aliases.create.description': 'Supports Codex OAuth, Codex API, and OpenAI-compatible connections',
|
||||
'aliases.modelAlias.title': 'Model Alias',
|
||||
'aliases.modelAlias.description': 'Enter the client-facing name and confirm the final mapping',
|
||||
'aliases.originalModel': 'Original Model',
|
||||
'aliases.loadingModels': 'Loading models',
|
||||
'aliases.searchModel': 'Search and select an original model',
|
||||
@@ -1187,6 +1181,13 @@ export const en: Record<MessageKey, string> = {
|
||||
'authFiles.quota.expiry': 'Earliest expiry {time}',
|
||||
'authFiles.models.noneForProvider': 'This provider has no configurable model definitions',
|
||||
'authFiles.models.updated': 'Open models updated for {provider}',
|
||||
'authFiles.priority.button': 'Priority {priority}',
|
||||
'authFiles.priority.title': 'Edit Credential Priority',
|
||||
'authFiles.priority.label': 'Priority',
|
||||
'authFiles.priority.placeholder': 'For example, 10 or -1',
|
||||
'authFiles.priority.hint': 'Integers only. Larger values have higher priority. Leave blank or enter 0 to restore the default.',
|
||||
'authFiles.priority.invalid': 'Enter a valid integer priority',
|
||||
'authFiles.priority.updated': 'Priority updated for {name}',
|
||||
'authFiles.uploaded': 'Uploaded {count} authentication files',
|
||||
'authFiles.uploadFailed': '{count} files failed to upload: {errors}',
|
||||
'authFiles.notice.enabled': 'Authentication file enabled',
|
||||
@@ -1196,8 +1197,6 @@ export const en: Record<MessageKey, string> = {
|
||||
'authFiles.deleted': 'Authentication file deleted',
|
||||
'authFiles.deleteAllConfirm': 'Delete all on-disk authentication files? Runtime credentials will not be deleted.',
|
||||
'authFiles.deletedAll': 'All on-disk authentication files deleted',
|
||||
'authFiles.runtimeDownloadError': 'This runtime authentication file has no downloadable disk file',
|
||||
'authFiles.downloaded': 'Authentication file downloaded',
|
||||
'common.copyFailed': 'Copy failed',
|
||||
'authFiles.title': 'Authentication Files',
|
||||
'authFiles.summary': '{files} files · {disabled} disabled',
|
||||
@@ -1223,7 +1222,7 @@ export const en: Record<MessageKey, string> = {
|
||||
'authFiles.models.settings': 'Configure open models',
|
||||
'authFiles.models.button': 'Models',
|
||||
'authFiles.copyName': 'Copy file name',
|
||||
'common.download': 'Download',
|
||||
'authFiles.openDirectory': 'Open credential folder',
|
||||
'common.enable': 'Enable',
|
||||
'common.disable': 'Disable',
|
||||
'authFiles.runtimeFootnote': '{count} credentials come from runtime storage and can only be managed through their provider or authentication source.',
|
||||
@@ -1260,10 +1259,6 @@ export const en: Record<MessageKey, string> = {
|
||||
'agents.model.search': 'Search model names or aliases',
|
||||
'agents.model.clearSearch': 'Clear search',
|
||||
'agents.model.refresh': 'Refresh models',
|
||||
'agents.catalog.update': 'Update model configuration',
|
||||
'agents.catalog.updating': 'Updating model configuration',
|
||||
'agents.catalog.updated': 'Model configuration updated from GitHub',
|
||||
'agents.catalog.unchanged': 'Model configuration is already up to date',
|
||||
'agents.model.fetching': 'Fetching models',
|
||||
'agents.model.noMatch': 'No matching models',
|
||||
'agents.model.unavailable': 'No models are currently available',
|
||||
@@ -1561,6 +1556,13 @@ export const en: Record<MessageKey, string> = {
|
||||
'appUpdate.available': 'Version {version} is available',
|
||||
'appUpdate.check': 'Check for Updates',
|
||||
'appUpdate.checking': 'Checking',
|
||||
'appUpdate.catalog.label': 'Codex Model Catalog',
|
||||
'appUpdate.catalog.description': 'Silently syncs from GitHub when the app starts',
|
||||
'appUpdate.catalog.update': 'Sync Model Catalog',
|
||||
'appUpdate.catalog.updateHint': 'Check GitHub and update the Codex model catalog',
|
||||
'appUpdate.catalog.updating': 'Syncing Model Catalog',
|
||||
'appUpdate.catalog.updated': 'Model catalog synced from GitHub',
|
||||
'appUpdate.catalog.unchanged': 'Model catalog is already up to date',
|
||||
'appUpdate.installNow': 'Update Now',
|
||||
'appUpdate.openRelease': 'Open Download Page',
|
||||
'appUpdate.confirmTitle': 'Install Application Update',
|
||||
|
||||
Reference in new issue
Block a user