@raingor/pi-web-switch 0.3.1 → 0.3.2
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/README.md +0 -1
- package/README.zh-CN.md +0 -1
- package/package.json +1 -1
- package/server/pi-reader.ts +403 -4
- package/src/App.tsx +3 -0
- package/src/components/dashboard/DashboardPage.tsx +275 -117
- package/src/components/layout/Sidebar.tsx +2 -0
- package/src/components/providers/ProvidersModelsPage.tsx +1387 -0
- package/src/components/sessions/MemoryPage.tsx +480 -85
- package/src/components/sessions/SessionsPage.tsx +473 -89
- package/src/components/settings/SettingsPage.tsx +555 -243
- package/src/data/builtin-providers.ts +0 -12
- package/src/data/mock-config.ts +1 -15
- package/src/data/mock-usage.ts +0 -2
- package/src/lib/translations/en.ts +114 -23
- package/src/lib/translations/ja.ts +114 -23
- package/src/lib/translations/zh-CN.ts +114 -23
- package/src/lib/translations/zh-TW.ts +114 -23
- package/src/main.tsx +9 -0
- package/src/store/config-store.ts +18 -12
- package/src/types/index.ts +14 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vite.config.ts +115 -3
- package/src/components/models/ModelsPage.tsx +0 -570
- package/src/components/providers/ProvidersPage.tsx +0 -466
|
@@ -72,18 +72,6 @@ export const BUILTIN_PROVIDERS: Provider[] = [
|
|
|
72
72
|
{ id: "mimo-v2.5", name: "MiMo V2.5", reasoning: true, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 1.2, output: 4.8, cacheRead: 0.6, cacheWrite: 1.2 }, enabled: true },
|
|
73
73
|
],
|
|
74
74
|
},
|
|
75
|
-
{
|
|
76
|
-
id: "sensenova",
|
|
77
|
-
name: "SenseNova",
|
|
78
|
-
type: "builtin",
|
|
79
|
-
api: "openai-completions",
|
|
80
|
-
hasAuth: true,
|
|
81
|
-
authMethod: "env",
|
|
82
|
-
models: [
|
|
83
|
-
{ id: "glm-5.2", name: "GLM 5.2", reasoning: false, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 0.8, output: 2.4, cacheRead: 0.4, cacheWrite: 0.8 }, enabled: true },
|
|
84
|
-
{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", reasoning: false, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 0.3, output: 0.6, cacheRead: 0.15, cacheWrite: 0.3 }, enabled: true },
|
|
85
|
-
],
|
|
86
|
-
},
|
|
87
75
|
{
|
|
88
76
|
id: "google",
|
|
89
77
|
name: "Google Gemini",
|
package/src/data/mock-config.ts
CHANGED
|
@@ -70,18 +70,6 @@ const BUILTIN_PROVIDERS: Provider[] = [
|
|
|
70
70
|
{ id: "mimo-v2.5", name: "MiMo V2.5", reasoning: true, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 1.2, output: 4.8, cacheRead: 0.6, cacheWrite: 1.2 }, enabled: true },
|
|
71
71
|
],
|
|
72
72
|
},
|
|
73
|
-
{
|
|
74
|
-
id: "sensenova",
|
|
75
|
-
name: "SenseNova",
|
|
76
|
-
type: "builtin",
|
|
77
|
-
api: "openai-completions",
|
|
78
|
-
hasAuth: true,
|
|
79
|
-
authMethod: "env",
|
|
80
|
-
models: [
|
|
81
|
-
{ id: "glm-5.2", name: "GLM 5.2", reasoning: false, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 0.8, output: 2.4, cacheRead: 0.4, cacheWrite: 0.8 }, enabled: true },
|
|
82
|
-
{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", reasoning: false, input: ["text"], contextWindow: 128000, maxTokens: 8192, cost: { input: 0.3, output: 0.6, cacheRead: 0.15, cacheWrite: 0.3 }, enabled: true },
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
73
|
{
|
|
86
74
|
id: "google",
|
|
87
75
|
name: "Google Gemini",
|
|
@@ -145,7 +133,7 @@ const BUILTIN_PROVIDERS: Provider[] = [
|
|
|
145
133
|
|
|
146
134
|
export const DEFAULT_SETTINGS: PiSettings = {
|
|
147
135
|
lastChangelogVersion: "0.80.3",
|
|
148
|
-
defaultProvider: "
|
|
136
|
+
defaultProvider: "opencode-go",
|
|
149
137
|
defaultModel: "deepseek-v4-flash",
|
|
150
138
|
defaultThinkingLevel: "high",
|
|
151
139
|
defaultProjectTrust: "always",
|
|
@@ -174,8 +162,6 @@ export const DEFAULT_SETTINGS: PiSettings = {
|
|
|
174
162
|
"opencode-go/glm-5.1",
|
|
175
163
|
"opencode-go/qwen3.7-max",
|
|
176
164
|
"opencode-go/mimo-v2.5",
|
|
177
|
-
"sensenova/glm-5.2",
|
|
178
|
-
"sensenova/deepseek-v4-flash",
|
|
179
165
|
],
|
|
180
166
|
};
|
|
181
167
|
|
package/src/data/mock-usage.ts
CHANGED
|
@@ -12,8 +12,6 @@ function generateMockUsage(): UsageRecord[] {
|
|
|
12
12
|
{ providerId: "opencode-go", modelId: "mimo-v2.5", baseTokens: 300_000, baseCost: 0.36 },
|
|
13
13
|
{ providerId: "opencode", modelId: "deepseek-v4-flash-free", baseTokens: 800_000, baseCost: 0 },
|
|
14
14
|
{ providerId: "opencode", modelId: "deepseek-v4-flash", baseTokens: 200_000, baseCost: 0.06 },
|
|
15
|
-
{ providerId: "sensenova", modelId: "glm-5.2", baseTokens: 350_000, baseCost: 0.28 },
|
|
16
|
-
{ providerId: "sensenova", modelId: "deepseek-v4-flash", baseTokens: 500_000, baseCost: 0.15 },
|
|
17
15
|
{ providerId: "anthropic", modelId: "claude-sonnet-4", baseTokens: 150_000, baseCost: 0.45 },
|
|
18
16
|
{ providerId: "anthropic", modelId: "claude-haiku-3-5", baseTokens: 90_000, baseCost: 0.036 },
|
|
19
17
|
{ providerId: "openai", modelId: "gpt-4o", baseTokens: 80_000, baseCost: 0.20 },
|
|
@@ -6,6 +6,34 @@ const en: Record<string, string> = {
|
|
|
6
6
|
"nav.dashboard": "Dashboard",
|
|
7
7
|
"nav.models": "Models",
|
|
8
8
|
"nav.providers": "Providers",
|
|
9
|
+
"nav.providers_models": "Providers & Models",
|
|
10
|
+
"providers_models.subtitle": "Manage model providers and models. Changes are written to ~/.pi/agent/.",
|
|
11
|
+
"providers_models.custom_providers": "Custom Providers",
|
|
12
|
+
"providers_models.model_list": "Model List",
|
|
13
|
+
"providers_models.add_provider_title": "Add Model Provider",
|
|
14
|
+
"providers_models.add_provider_desc": "Configure a fully custom API endpoint and initial models.",
|
|
15
|
+
"providers_models.name": "Name",
|
|
16
|
+
"providers_models.name_placeholder": "e.g. Zhipu GLM",
|
|
17
|
+
"providers_models.select_hint": "Select or add a provider",
|
|
18
|
+
"providers_models.delete_provider_note": "This will remove the provider and all its models from your configuration.",
|
|
19
|
+
"providers_models.saved": "Saved",
|
|
20
|
+
"providers_models.save_failed": "Save failed, please retry",
|
|
21
|
+
"providers_models.test_connection": "Test Connection",
|
|
22
|
+
"providers_models.testing": "Testing...",
|
|
23
|
+
"providers_models.test_ok": "Connected ({0} ms)",
|
|
24
|
+
"providers_models.test_fail": "Failed: {0}",
|
|
25
|
+
"providers_models.invalid_url": "Enter a valid http(s) URL",
|
|
26
|
+
"providers_models.enable_all": "Enable All",
|
|
27
|
+
"providers_models.disable_all": "Disable All",
|
|
28
|
+
"providers_models.id_exists": "ID “{0}” already exists, pick another name",
|
|
29
|
+
"providers_models.id_preview": "Will be saved as ID “{0}”",
|
|
30
|
+
"providers_models.import": "Import",
|
|
31
|
+
"providers_models.import_title": "Import Provider Config",
|
|
32
|
+
"providers_models.import_desc": "Paste text containing name, baseurl, key and modelid — the provider and models are detected automatically. Imported models are enabled by default.",
|
|
33
|
+
"providers_models.import_placeholder": "tokenrouter baseurl: https://api.example.com/v1 key: sk-xxxx\nmodelid: vendor/model-name",
|
|
34
|
+
"providers_models.import_empty": "No valid content detected in the text",
|
|
35
|
+
"providers_models.import_merge": "Provider “{0}” already exists — models will be merged into it",
|
|
36
|
+
"providers_models.import_builtin_conflict": "Conflicts with builtin provider “{0}” — please change the name",
|
|
9
37
|
"nav.sessions": "Sessions",
|
|
10
38
|
"nav.memory": "Memory",
|
|
11
39
|
"nav.settings": "Settings",
|
|
@@ -41,24 +69,35 @@ const en: Record<string, string> = {
|
|
|
41
69
|
"dashboard.model": "Model",
|
|
42
70
|
"dashboard.cost": "Cost",
|
|
43
71
|
"dashboard.requests": "Requests",
|
|
44
|
-
"dashboard.status": "Status",
|
|
45
72
|
"dashboard.no_data": "No request data in this time range",
|
|
46
73
|
"dashboard.provider_stats_desc": "Provider statistics aggregated by provider",
|
|
47
74
|
"dashboard.model_stats_desc": "Model statistics aggregated by model",
|
|
75
|
+
"dashboard.last_updated": "Last updated {0}",
|
|
76
|
+
"dashboard.refresh_now": "Refresh now",
|
|
77
|
+
"dashboard.refresh_interval": "Refresh interval",
|
|
78
|
+
"dashboard.switch_currency": "Switch currency",
|
|
79
|
+
"dashboard.off": "Off",
|
|
80
|
+
"dashboard.vs_prev": "vs previous period",
|
|
81
|
+
"dashboard.invalid_range": "Start date cannot be later than end date",
|
|
82
|
+
"dashboard.export_csv": "Export CSV",
|
|
83
|
+
"dashboard.total_items": "{0} items",
|
|
84
|
+
"dashboard.prev_page": "Prev",
|
|
85
|
+
"dashboard.next_page": "Next",
|
|
86
|
+
"dashboard.tokens": "Tokens",
|
|
87
|
+
"dashboard.models_count": "Models",
|
|
88
|
+
"dashboard.cost_share": "Cost share",
|
|
48
89
|
|
|
49
90
|
// Models
|
|
50
|
-
"models.title": "Models",
|
|
51
91
|
"models.search_placeholder": "Search models...",
|
|
52
|
-
"models.filter_all": "All Providers",
|
|
53
92
|
"models.add_model": "Add Model",
|
|
54
93
|
"models.edit_model": "Edit Model",
|
|
55
94
|
"models.delete_model": "Delete Model",
|
|
56
95
|
"models.no_models": "No models found",
|
|
57
96
|
"models.enabled": "Enabled",
|
|
58
97
|
"models.disabled": "Disabled",
|
|
59
|
-
"models.
|
|
60
|
-
"models.
|
|
61
|
-
"models.
|
|
98
|
+
"models.model_id": "Model ID",
|
|
99
|
+
"models.display_name": "Display Name",
|
|
100
|
+
"models.free": "Free",
|
|
62
101
|
"models.reasoning": "Reasoning",
|
|
63
102
|
"models.image_input": "Image Input",
|
|
64
103
|
"models.context_window": "Context Window",
|
|
@@ -72,57 +111,109 @@ const en: Record<string, string> = {
|
|
|
72
111
|
"models.delete_confirm": "Are you sure you want to delete this model?",
|
|
73
112
|
|
|
74
113
|
// Providers
|
|
75
|
-
"providers.title": "Providers",
|
|
76
114
|
"providers.add_provider": "Add Provider",
|
|
77
|
-
"providers.edit_provider": "Edit Provider",
|
|
78
115
|
"providers.delete_provider": "Delete Provider",
|
|
79
116
|
"providers.custom": "Custom",
|
|
80
117
|
"providers.builtin": "Built-in",
|
|
81
|
-
"providers.no_auth": "No Auth",
|
|
82
118
|
"providers.configured": "Configured",
|
|
83
119
|
"providers.api_key": "API Key",
|
|
84
120
|
"providers.base_url": "Base URL",
|
|
85
121
|
"providers.api_type": "API Type",
|
|
86
|
-
"providers.headers": "Headers",
|
|
87
|
-
"providers.auth_method": "Auth Method",
|
|
88
|
-
"providers.save": "Save",
|
|
89
|
-
"providers.cancel": "Cancel",
|
|
90
122
|
"providers.delete_confirm": "Are you sure you want to delete this provider?",
|
|
91
|
-
"providers.set_api_key": "Set API Key",
|
|
92
|
-
"providers.remove_api_key": "Remove API Key",
|
|
93
|
-
"providers.models_count": "{0} models",
|
|
94
123
|
|
|
95
124
|
// Sessions
|
|
96
125
|
"sessions.title": "Sessions",
|
|
97
126
|
"sessions.summary": "{0} sessions across {1} projects",
|
|
98
|
-
"sessions.filter_placeholder": "
|
|
127
|
+
"sessions.filter_placeholder": "Search projects or sessions...",
|
|
99
128
|
"sessions.no_sessions": "No sessions found",
|
|
100
129
|
"sessions.last_active": "Last active {0}",
|
|
101
130
|
"sessions.sessions_count": "{0} sessions",
|
|
102
131
|
"sessions.messages": "{0} messages",
|
|
103
|
-
"sessions.delete_title": "
|
|
104
|
-
"sessions.delete_confirm": "Are you sure you want to
|
|
105
|
-
"sessions.
|
|
132
|
+
"sessions.delete_title": "Move to Trash",
|
|
133
|
+
"sessions.delete_confirm": "Are you sure you want to move this session to the trash?",
|
|
134
|
+
"sessions.delete_to_trash_note": "The session will be moved to the trash (~/.pi/agent/.trash) and can be restored anytime.",
|
|
106
135
|
"sessions.cancel": "Cancel",
|
|
107
136
|
"sessions.delete": "Delete",
|
|
108
137
|
"sessions.deleting": "Deleting...",
|
|
109
138
|
"sessions.protected": "Updated in the last 3 days — cannot delete",
|
|
110
139
|
"sessions.delete_failed": "Failed to delete session file",
|
|
111
140
|
"sessions.delete_error": "Error deleting session",
|
|
141
|
+
"sessions.load_failed": "Failed to load sessions",
|
|
142
|
+
"sessions.refresh": "Refresh",
|
|
143
|
+
"sessions.more_count": "{0} more",
|
|
144
|
+
"sessions.tab_sessions": "Sessions",
|
|
145
|
+
"sessions.tab_trash": "Trash",
|
|
146
|
+
"sessions.trash_desc": "Deleted sessions are kept in ~/.pi/agent/.trash and can be restored or permanently deleted.",
|
|
147
|
+
"sessions.trash_empty": "Trash is empty",
|
|
148
|
+
"sessions.restore": "Restore",
|
|
149
|
+
"sessions.delete_forever": "Delete Forever",
|
|
150
|
+
"sessions.delete_forever_confirm": "Are you sure you want to permanently delete? This cannot be undone.",
|
|
151
|
+
"sessions.trashed_at": "Deleted {0}",
|
|
152
|
+
"sessions.select_all": "Select all",
|
|
153
|
+
"sessions.selected_count": "{0} selected",
|
|
154
|
+
"sessions.restore_selected": "Restore Selected",
|
|
155
|
+
"sessions.delete_selected": "Delete Selected",
|
|
156
|
+
"sessions.preview_title": "Session Preview",
|
|
157
|
+
"sessions.preview_total": "{0} messages total, showing first {1}",
|
|
158
|
+
"sessions.preview_empty": "No previewable messages in this session",
|
|
159
|
+
"sessions.preview_failed": "Failed to load preview",
|
|
112
160
|
|
|
113
161
|
// Memory
|
|
114
162
|
"memory.title": "Memory",
|
|
115
|
-
"memory.summary": "pi-hermes-memory · {0}
|
|
163
|
+
"memory.summary": "pi-hermes-memory · {0} memories · {1} files",
|
|
116
164
|
"memory.no_memory": "No memory files found",
|
|
117
165
|
"memory.no_memory_desc": "pi-hermes-memory extension is not installed",
|
|
118
166
|
"memory.project_memories": "Project Memories",
|
|
119
167
|
"memory.user_profile": "User Profile",
|
|
120
168
|
"memory.failure_records": "Failure Records",
|
|
121
|
-
"memory.
|
|
122
|
-
"memory.
|
|
169
|
+
"memory.entries_count": "{0} entries",
|
|
170
|
+
"memory.other": "Other",
|
|
171
|
+
"memory.empty_file": "No memory entries",
|
|
172
|
+
"memory.load_failed": "Failed to load memory",
|
|
173
|
+
"memory.refresh": "Refresh",
|
|
174
|
+
"memory.search_placeholder": "Search memory content...",
|
|
175
|
+
"memory.no_results": "No matching memory entries",
|
|
176
|
+
"memory.copy": "Copy",
|
|
177
|
+
"memory.copied": "Copied",
|
|
178
|
+
"memory.delete": "Delete",
|
|
179
|
+
"memory.delete_title": "Delete Memory Entry",
|
|
180
|
+
"memory.delete_confirm": "Are you sure you want to delete this memory entry?",
|
|
181
|
+
"memory.delete_note": "This will modify the memory file directly and cannot be undone.",
|
|
182
|
+
"memory.delete_failed": "Failed to delete memory entry",
|
|
183
|
+
"memory.deleting": "Deleting...",
|
|
184
|
+
"memory.cancel": "Cancel",
|
|
185
|
+
|
|
186
|
+
"common.today": "Today",
|
|
187
|
+
"common.yesterday": "Yesterday",
|
|
188
|
+
"common.days_ago": "{0} days ago",
|
|
123
189
|
|
|
124
190
|
// Settings
|
|
125
191
|
"settings.title": "Settings",
|
|
192
|
+
"settings.subtitle": "Manage the pi coding agent's appearance, default models and extensions",
|
|
193
|
+
"settings.stat_providers": "Providers",
|
|
194
|
+
"settings.stat_enabled": "Enabled Models",
|
|
195
|
+
"settings.stat_theme": "Active Theme",
|
|
196
|
+
"settings.tab_models": "Models",
|
|
197
|
+
"settings.tab_advanced": "Advanced",
|
|
198
|
+
"settings.theme": "Theme",
|
|
199
|
+
"settings.theme_desc": "Pick a color scheme for the interface",
|
|
200
|
+
"settings.font_size": "Font Size",
|
|
201
|
+
"settings.font_size_desc": "Adjust the overall interface font size",
|
|
202
|
+
"settings.enabled_models_desc": "Click a tag to enable or disable a model",
|
|
203
|
+
"settings.updates_title": "Update Check",
|
|
204
|
+
"settings.updates_desc": "Check npm for new versions of pi core and installed extensions.",
|
|
205
|
+
"settings.check_updates": "Check for Updates",
|
|
206
|
+
"settings.updates_summary": "{0} update(s) available",
|
|
207
|
+
"settings.updates_all_latest": "Everything is up to date",
|
|
208
|
+
"settings.update_available": "Update available",
|
|
209
|
+
"settings.updates_up_to_date": "Up to date",
|
|
210
|
+
"settings.updates_lookup_failed": "Lookup failed",
|
|
211
|
+
"settings.updates_failed": "Update check failed",
|
|
212
|
+
"settings.update_all": "Update All",
|
|
213
|
+
"settings.updating": "Updating…",
|
|
214
|
+
"settings.update_success": "Successfully updated {0} extension(s)",
|
|
215
|
+
"settings.update_failed_names": "{0} extension(s) failed to update: {1}",
|
|
216
|
+
"settings.updates_hint": "Extensions can be updated by reinstalling in pi (or running npm update in ~/.pi/agent/npm); update pi core via its installer.",
|
|
126
217
|
"settings.defaults": "Defaults",
|
|
127
218
|
"settings.default_provider": "Default Provider",
|
|
128
219
|
"settings.default_model": "Default Model",
|
|
@@ -4,6 +4,34 @@ const ja: Record<string, string> = {
|
|
|
4
4
|
"nav.dashboard": "ダッシュボード",
|
|
5
5
|
"nav.models": "モデル",
|
|
6
6
|
"nav.providers": "プロバイダー",
|
|
7
|
+
"nav.providers_models": "プロバイダーとモデル",
|
|
8
|
+
"providers_models.subtitle": "モデルプロバイダーとモデルを管理します。設定は ~/.pi/agent/ に保存されます。",
|
|
9
|
+
"providers_models.custom_providers": "カスタムプロバイダー",
|
|
10
|
+
"providers_models.model_list": "モデルリスト",
|
|
11
|
+
"providers_models.add_provider_title": "モデルプロバイダーを追加",
|
|
12
|
+
"providers_models.add_provider_desc": "完全にカスタムの API エンドポイントと初期モデルを設定します。",
|
|
13
|
+
"providers_models.name": "名前",
|
|
14
|
+
"providers_models.name_placeholder": "例:Zhipu GLM",
|
|
15
|
+
"providers_models.select_hint": "プロバイダーを選択または追加してください",
|
|
16
|
+
"providers_models.delete_provider_note": "この操作により、プロバイダーとその全モデルが設定から削除されます。",
|
|
17
|
+
"providers_models.saved": "保存しました",
|
|
18
|
+
"providers_models.save_failed": "保存に失敗しました。再試行してください",
|
|
19
|
+
"providers_models.test_connection": "接続テスト",
|
|
20
|
+
"providers_models.testing": "テスト中...",
|
|
21
|
+
"providers_models.test_ok": "接続成功 ({0} ms)",
|
|
22
|
+
"providers_models.test_fail": "接続失敗:{0}",
|
|
23
|
+
"providers_models.invalid_url": "有効な http(s) URL を入力してください",
|
|
24
|
+
"providers_models.enable_all": "すべて有効化",
|
|
25
|
+
"providers_models.disable_all": "すべて無効化",
|
|
26
|
+
"providers_models.id_exists": "ID “{0}” は既に存在します。別の名前を使用してください",
|
|
27
|
+
"providers_models.id_preview": "ID “{0}” として保存されます",
|
|
28
|
+
"providers_models.import": "インポート",
|
|
29
|
+
"providers_models.import_title": "プロバイダー設定をインポート",
|
|
30
|
+
"providers_models.import_desc": "名前、baseurl、key、modelid を含むテキストを貼り付けると、プロバイダーとモデルを自動認識します。インポートしたモデルは自動的に有効化されます。",
|
|
31
|
+
"providers_models.import_placeholder": "tokenrouter baseurl: https://api.example.com/v1 key: sk-xxxx\nmodelid: vendor/model-name",
|
|
32
|
+
"providers_models.import_empty": "テキストから有効な内容を認識できませんでした",
|
|
33
|
+
"providers_models.import_merge": "プロバイダー “{0}” は既に存在します。モデルをマージします",
|
|
34
|
+
"providers_models.import_builtin_conflict": "組み込みプロバイダー “{0}” と競合しています。名前を変更してください",
|
|
7
35
|
"nav.sessions": "セッション",
|
|
8
36
|
"nav.memory": "メモリ",
|
|
9
37
|
"nav.settings": "設定",
|
|
@@ -38,23 +66,34 @@ const ja: Record<string, string> = {
|
|
|
38
66
|
"dashboard.model": "モデル",
|
|
39
67
|
"dashboard.cost": "コスト",
|
|
40
68
|
"dashboard.requests": "リクエスト",
|
|
41
|
-
"dashboard.status": "ステータス",
|
|
42
69
|
"dashboard.no_data": "この期間にリクエストデータはありません",
|
|
43
70
|
"dashboard.provider_stats_desc": "プロバイダー別の集計統計",
|
|
44
71
|
"dashboard.model_stats_desc": "モデル別の集計統計",
|
|
72
|
+
"dashboard.last_updated": "最終更新 {0}",
|
|
73
|
+
"dashboard.refresh_now": "今すぐ更新",
|
|
74
|
+
"dashboard.refresh_interval": "更新間隔",
|
|
75
|
+
"dashboard.switch_currency": "通貨を切り替え",
|
|
76
|
+
"dashboard.off": "オフ",
|
|
77
|
+
"dashboard.vs_prev": "前期比",
|
|
78
|
+
"dashboard.invalid_range": "開始日は終了日より後にできません",
|
|
79
|
+
"dashboard.export_csv": "CSV エクスポート",
|
|
80
|
+
"dashboard.total_items": "全 {0} 件",
|
|
81
|
+
"dashboard.prev_page": "前へ",
|
|
82
|
+
"dashboard.next_page": "次へ",
|
|
83
|
+
"dashboard.tokens": "トークン",
|
|
84
|
+
"dashboard.models_count": "モデル数",
|
|
85
|
+
"dashboard.cost_share": "コスト割合",
|
|
45
86
|
|
|
46
|
-
"models.title": "モデル管理",
|
|
47
87
|
"models.search_placeholder": "モデルを検索...",
|
|
48
|
-
"models.filter_all": "全プロバイダー",
|
|
49
88
|
"models.add_model": "モデル追加",
|
|
50
89
|
"models.edit_model": "モデル編集",
|
|
51
90
|
"models.delete_model": "モデル削除",
|
|
52
91
|
"models.no_models": "モデルが見つかりません",
|
|
53
92
|
"models.enabled": "有効",
|
|
54
93
|
"models.disabled": "無効",
|
|
55
|
-
"models.
|
|
56
|
-
"models.
|
|
57
|
-
"models.
|
|
94
|
+
"models.model_id": "モデル ID",
|
|
95
|
+
"models.display_name": "表示名",
|
|
96
|
+
"models.free": "無料",
|
|
58
97
|
"models.reasoning": "推論",
|
|
59
98
|
"models.image_input": "画像入力",
|
|
60
99
|
"models.context_window": "コンテキストウィンドウ",
|
|
@@ -67,54 +106,106 @@ const ja: Record<string, string> = {
|
|
|
67
106
|
"models.cancel": "キャンセル",
|
|
68
107
|
"models.delete_confirm": "このモデルを削除してもよろしいですか?",
|
|
69
108
|
|
|
70
|
-
"providers.title": "プロバイダー管理",
|
|
71
109
|
"providers.add_provider": "プロバイダー追加",
|
|
72
|
-
"providers.edit_provider": "プロバイダー編集",
|
|
73
110
|
"providers.delete_provider": "プロバイダー削除",
|
|
74
111
|
"providers.custom": "カスタム",
|
|
75
112
|
"providers.builtin": "ビルトイン",
|
|
76
|
-
"providers.no_auth": "未設定",
|
|
77
113
|
"providers.configured": "設定済み",
|
|
78
114
|
"providers.api_key": "API Key",
|
|
79
115
|
"providers.base_url": "ベースURL",
|
|
80
116
|
"providers.api_type": "API タイプ",
|
|
81
|
-
"providers.headers": "ヘッダー",
|
|
82
|
-
"providers.auth_method": "認証方法",
|
|
83
|
-
"providers.save": "保存",
|
|
84
|
-
"providers.cancel": "キャンセル",
|
|
85
117
|
"providers.delete_confirm": "このプロバイダーを削除してもよろしいですか?",
|
|
86
|
-
"providers.set_api_key": "API Key 設定",
|
|
87
|
-
"providers.remove_api_key": "API Key 削除",
|
|
88
|
-
"providers.models_count": "{0} モデル",
|
|
89
118
|
|
|
90
119
|
"sessions.title": "セッション一覧",
|
|
91
120
|
"sessions.summary": "合計 {0} セッション、{1} プロジェクト",
|
|
92
|
-
"sessions.filter_placeholder": "
|
|
121
|
+
"sessions.filter_placeholder": "プロジェクトまたはセッションを検索...",
|
|
93
122
|
"sessions.no_sessions": "セッションが見つかりません",
|
|
94
123
|
"sessions.last_active": "最終アクティブ {0}",
|
|
95
124
|
"sessions.sessions_count": "{0} セッション",
|
|
96
125
|
"sessions.messages": "{0} メッセージ",
|
|
97
|
-
"sessions.delete_title": "
|
|
98
|
-
"sessions.delete_confirm": "
|
|
99
|
-
"sessions.
|
|
126
|
+
"sessions.delete_title": "ゴミ箱に移動",
|
|
127
|
+
"sessions.delete_confirm": "このセッションをゴミ箱に移動してもよろしいですか?",
|
|
128
|
+
"sessions.delete_to_trash_note": "セッションはゴミ箱(~/.pi/agent/.trash)に移動され、いつでも復元できます。",
|
|
100
129
|
"sessions.cancel": "キャンセル",
|
|
101
130
|
"sessions.delete": "削除",
|
|
102
131
|
"sessions.deleting": "削除中...",
|
|
103
132
|
"sessions.protected": "3日以内に更新されたため削除できません",
|
|
104
133
|
"sessions.delete_failed": "セッションファイルの削除に失敗しました",
|
|
105
134
|
"sessions.delete_error": "削除中にエラーが発生しました",
|
|
135
|
+
"sessions.load_failed": "セッションの読み込みに失敗しました",
|
|
136
|
+
"sessions.refresh": "更新",
|
|
137
|
+
"sessions.more_count": "あと {0} 件",
|
|
138
|
+
"sessions.tab_sessions": "セッション",
|
|
139
|
+
"sessions.tab_trash": "ゴミ箱",
|
|
140
|
+
"sessions.trash_desc": "削除されたセッションは ~/.pi/agent/.trash に保存され、復元または完全削除できます。",
|
|
141
|
+
"sessions.trash_empty": "ゴミ箱は空です",
|
|
142
|
+
"sessions.restore": "復元",
|
|
143
|
+
"sessions.delete_forever": "完全削除",
|
|
144
|
+
"sessions.delete_forever_confirm": "完全に削除してもよろしいですか?この操作は元に戻せません。",
|
|
145
|
+
"sessions.trashed_at": "削除日 {0}",
|
|
146
|
+
"sessions.select_all": "すべて選択",
|
|
147
|
+
"sessions.selected_count": "{0} 件選択中",
|
|
148
|
+
"sessions.restore_selected": "選択を復元",
|
|
149
|
+
"sessions.delete_selected": "選択を削除",
|
|
150
|
+
"sessions.preview_title": "セッションプレビュー",
|
|
151
|
+
"sessions.preview_total": "全 {0} メッセージ、先頭 {1} 件を表示",
|
|
152
|
+
"sessions.preview_empty": "このセッションにはプレビュー可能なメッセージがありません",
|
|
153
|
+
"sessions.preview_failed": "プレビューの読み込みに失敗しました",
|
|
106
154
|
|
|
107
155
|
"memory.title": "メモリ表示",
|
|
108
|
-
"memory.summary": "pi-hermes-memory ·
|
|
156
|
+
"memory.summary": "pi-hermes-memory · {0} 件のメモリ · {1} ファイル",
|
|
109
157
|
"memory.no_memory": "メモリファイルが見つかりません",
|
|
110
158
|
"memory.no_memory_desc": "pi-hermes-memory 拡張機能がインストールされていません",
|
|
111
159
|
"memory.project_memories": "プロジェクトメモリ",
|
|
112
160
|
"memory.user_profile": "ユーザープロファイル",
|
|
113
161
|
"memory.failure_records": "障害記録",
|
|
114
|
-
"memory.
|
|
115
|
-
"memory.
|
|
162
|
+
"memory.entries_count": "{0} 件",
|
|
163
|
+
"memory.other": "その他",
|
|
164
|
+
"memory.empty_file": "メモリエントリなし",
|
|
165
|
+
"memory.load_failed": "メモリの読み込みに失敗しました",
|
|
166
|
+
"memory.refresh": "更新",
|
|
167
|
+
"memory.search_placeholder": "メモリ内容を検索...",
|
|
168
|
+
"memory.no_results": "一致するメモリエントリがありません",
|
|
169
|
+
"memory.copy": "コピー",
|
|
170
|
+
"memory.copied": "コピーしました",
|
|
171
|
+
"memory.delete": "削除",
|
|
172
|
+
"memory.delete_title": "メモリエントリを削除",
|
|
173
|
+
"memory.delete_confirm": "このメモリを削除してもよろしいですか?",
|
|
174
|
+
"memory.delete_note": "この操作はメモリファイルを直接変更し、元に戻せません。",
|
|
175
|
+
"memory.delete_failed": "メモリエントリの削除に失敗しました",
|
|
176
|
+
"memory.deleting": "削除中...",
|
|
177
|
+
"memory.cancel": "キャンセル",
|
|
178
|
+
|
|
179
|
+
"common.today": "今日",
|
|
180
|
+
"common.yesterday": "昨日",
|
|
181
|
+
"common.days_ago": "{0} 日前",
|
|
116
182
|
|
|
117
183
|
"settings.title": "設定",
|
|
184
|
+
"settings.subtitle": "pi コーディングエージェントの外観・デフォルトモデル・拡張を管理",
|
|
185
|
+
"settings.stat_providers": "プロバイダー",
|
|
186
|
+
"settings.stat_enabled": "有効なモデル",
|
|
187
|
+
"settings.stat_theme": "現在のテーマ",
|
|
188
|
+
"settings.tab_models": "モデル",
|
|
189
|
+
"settings.tab_advanced": "詳細設定",
|
|
190
|
+
"settings.theme": "テーマ",
|
|
191
|
+
"settings.theme_desc": "インターフェースの配色を選択",
|
|
192
|
+
"settings.font_size": "フォントサイズ",
|
|
193
|
+
"settings.font_size_desc": "インターフェース全体のフォントサイズを調整",
|
|
194
|
+
"settings.enabled_models_desc": "タグをクリックしてモデルを切り替え",
|
|
195
|
+
"settings.updates_title": "アップデート確認",
|
|
196
|
+
"settings.updates_desc": "pi 本体と拡張に npm 上の新バージョンがあるか確認します。",
|
|
197
|
+
"settings.check_updates": "更新を確認",
|
|
198
|
+
"settings.updates_summary": "{0} 件の更新があります",
|
|
199
|
+
"settings.updates_all_latest": "すべて最新です",
|
|
200
|
+
"settings.update_available": "更新あり",
|
|
201
|
+
"settings.updates_up_to_date": "最新",
|
|
202
|
+
"settings.updates_lookup_failed": "取得失敗",
|
|
203
|
+
"settings.updates_failed": "アップデート確認に失敗しました",
|
|
204
|
+
"settings.update_all": "一括更新",
|
|
205
|
+
"settings.updating": "更新中…",
|
|
206
|
+
"settings.update_success": "{0} 件の拡張を更新しました",
|
|
207
|
+
"settings.update_failed_names": "{0} 件の拡張の更新に失敗:{1}",
|
|
208
|
+
"settings.updates_hint": "拡張は pi での再インストール(または ~/.pi/agent/npm で npm update)で更新できます。pi 本体はインストーラーから更新してください。",
|
|
118
209
|
"settings.defaults": "デフォルト",
|
|
119
210
|
"settings.default_provider": "デフォルトプロバイダー",
|
|
120
211
|
"settings.default_model": "デフォルトモデル",
|