@oh-my-pi/pi-web-ui 1.337.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +96 -0
- package/README.md +609 -0
- package/example/README.md +61 -0
- package/example/index.html +13 -0
- package/example/package.json +24 -0
- package/example/src/app.css +1 -0
- package/example/src/custom-messages.ts +99 -0
- package/example/src/main.ts +420 -0
- package/example/tsconfig.json +23 -0
- package/example/vite.config.ts +6 -0
- package/package.json +57 -0
- package/scripts/count-prompt-tokens.ts +88 -0
- package/src/ChatPanel.ts +218 -0
- package/src/app.css +68 -0
- package/src/components/AgentInterface.ts +390 -0
- package/src/components/AttachmentTile.ts +107 -0
- package/src/components/ConsoleBlock.ts +74 -0
- package/src/components/CustomProviderCard.ts +96 -0
- package/src/components/ExpandableSection.ts +46 -0
- package/src/components/Input.ts +113 -0
- package/src/components/MessageEditor.ts +404 -0
- package/src/components/MessageList.ts +97 -0
- package/src/components/Messages.ts +384 -0
- package/src/components/ProviderKeyInput.ts +152 -0
- package/src/components/SandboxedIframe.ts +626 -0
- package/src/components/StreamingMessageContainer.ts +107 -0
- package/src/components/ThinkingBlock.ts +45 -0
- package/src/components/message-renderer-registry.ts +28 -0
- package/src/components/sandbox/ArtifactsRuntimeProvider.ts +219 -0
- package/src/components/sandbox/AttachmentsRuntimeProvider.ts +66 -0
- package/src/components/sandbox/ConsoleRuntimeProvider.ts +186 -0
- package/src/components/sandbox/FileDownloadRuntimeProvider.ts +110 -0
- package/src/components/sandbox/RuntimeMessageBridge.ts +82 -0
- package/src/components/sandbox/RuntimeMessageRouter.ts +216 -0
- package/src/components/sandbox/SandboxRuntimeProvider.ts +52 -0
- package/src/dialogs/ApiKeyPromptDialog.ts +75 -0
- package/src/dialogs/AttachmentOverlay.ts +640 -0
- package/src/dialogs/CustomProviderDialog.ts +274 -0
- package/src/dialogs/ModelSelector.ts +314 -0
- package/src/dialogs/PersistentStorageDialog.ts +146 -0
- package/src/dialogs/ProvidersModelsTab.ts +212 -0
- package/src/dialogs/SessionListDialog.ts +157 -0
- package/src/dialogs/SettingsDialog.ts +216 -0
- package/src/index.ts +115 -0
- package/src/prompts/prompts.ts +282 -0
- package/src/storage/app-storage.ts +60 -0
- package/src/storage/backends/indexeddb-storage-backend.ts +193 -0
- package/src/storage/store.ts +33 -0
- package/src/storage/stores/custom-providers-store.ts +62 -0
- package/src/storage/stores/provider-keys-store.ts +33 -0
- package/src/storage/stores/sessions-store.ts +136 -0
- package/src/storage/stores/settings-store.ts +34 -0
- package/src/storage/types.ts +206 -0
- package/src/tools/artifacts/ArtifactElement.ts +14 -0
- package/src/tools/artifacts/ArtifactPill.ts +26 -0
- package/src/tools/artifacts/Console.ts +102 -0
- package/src/tools/artifacts/DocxArtifact.ts +213 -0
- package/src/tools/artifacts/ExcelArtifact.ts +231 -0
- package/src/tools/artifacts/GenericArtifact.ts +118 -0
- package/src/tools/artifacts/HtmlArtifact.ts +203 -0
- package/src/tools/artifacts/ImageArtifact.ts +116 -0
- package/src/tools/artifacts/MarkdownArtifact.ts +83 -0
- package/src/tools/artifacts/PdfArtifact.ts +201 -0
- package/src/tools/artifacts/SvgArtifact.ts +82 -0
- package/src/tools/artifacts/TextArtifact.ts +148 -0
- package/src/tools/artifacts/artifacts-tool-renderer.ts +371 -0
- package/src/tools/artifacts/artifacts.ts +713 -0
- package/src/tools/artifacts/index.ts +7 -0
- package/src/tools/extract-document.ts +271 -0
- package/src/tools/index.ts +46 -0
- package/src/tools/javascript-repl.ts +316 -0
- package/src/tools/renderer-registry.ts +127 -0
- package/src/tools/renderers/BashRenderer.ts +52 -0
- package/src/tools/renderers/CalculateRenderer.ts +58 -0
- package/src/tools/renderers/DefaultRenderer.ts +95 -0
- package/src/tools/renderers/GetCurrentTimeRenderer.ts +92 -0
- package/src/tools/types.ts +15 -0
- package/src/utils/attachment-utils.ts +472 -0
- package/src/utils/auth-token.ts +22 -0
- package/src/utils/format.ts +42 -0
- package/src/utils/i18n.ts +653 -0
- package/src/utils/model-discovery.ts +277 -0
- package/src/utils/proxy-utils.ts +134 -0
- package/src/utils/test-sessions.ts +2357 -0
- package/tsconfig.build.json +20 -0
- package/tsconfig.json +7 -0
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
import { defaultEnglish, defaultGerman, type MiniLitRequiredMessages, setTranslations } from "@mariozechner/mini-lit";
|
|
2
|
+
|
|
3
|
+
declare module "@mariozechner/mini-lit" {
|
|
4
|
+
interface i18nMessages extends MiniLitRequiredMessages {
|
|
5
|
+
Free: string;
|
|
6
|
+
"Input Required": string;
|
|
7
|
+
Cancel: string;
|
|
8
|
+
Confirm: string;
|
|
9
|
+
"Select Model": string;
|
|
10
|
+
"Search models...": string;
|
|
11
|
+
Format: string;
|
|
12
|
+
Thinking: string;
|
|
13
|
+
Vision: string;
|
|
14
|
+
You: string;
|
|
15
|
+
Assistant: string;
|
|
16
|
+
"Thinking...": string;
|
|
17
|
+
"Type your message...": string;
|
|
18
|
+
"API Keys Configuration": string;
|
|
19
|
+
"Configure API keys for LLM providers. Keys are stored locally in your browser.": string;
|
|
20
|
+
Configured: string;
|
|
21
|
+
"Not configured": string;
|
|
22
|
+
"✓ Valid": string;
|
|
23
|
+
"✗ Invalid": string;
|
|
24
|
+
"Testing...": string;
|
|
25
|
+
Update: string;
|
|
26
|
+
Test: string;
|
|
27
|
+
Remove: string;
|
|
28
|
+
Save: string;
|
|
29
|
+
"Update API key": string;
|
|
30
|
+
"Enter API key": string;
|
|
31
|
+
"Type a message...": string;
|
|
32
|
+
"Failed to fetch file": string;
|
|
33
|
+
"Invalid source type": string;
|
|
34
|
+
PDF: string;
|
|
35
|
+
Document: string;
|
|
36
|
+
Presentation: string;
|
|
37
|
+
Spreadsheet: string;
|
|
38
|
+
Text: string;
|
|
39
|
+
"Error loading file": string;
|
|
40
|
+
"No text content available": string;
|
|
41
|
+
"Failed to load PDF": string;
|
|
42
|
+
"Failed to load document": string;
|
|
43
|
+
"Failed to load spreadsheet": string;
|
|
44
|
+
"Error loading PDF": string;
|
|
45
|
+
"Error loading document": string;
|
|
46
|
+
"Error loading spreadsheet": string;
|
|
47
|
+
"Preview not available for this file type.": string;
|
|
48
|
+
"Click the download button above to view it on your computer.": string;
|
|
49
|
+
"No content available": string;
|
|
50
|
+
"Failed to display text content": string;
|
|
51
|
+
"API keys are required to use AI models. Get your keys from the provider's website.": string;
|
|
52
|
+
console: string;
|
|
53
|
+
"Copy output": string;
|
|
54
|
+
"Copied!": string;
|
|
55
|
+
"Error:": string;
|
|
56
|
+
"Request aborted": string;
|
|
57
|
+
Call: string;
|
|
58
|
+
Result: string;
|
|
59
|
+
"(no result)": string;
|
|
60
|
+
"Waiting for tool result…": string;
|
|
61
|
+
"Call was aborted; no result.": string;
|
|
62
|
+
"No session available": string;
|
|
63
|
+
"No session set": string;
|
|
64
|
+
"Preparing tool parameters...": string;
|
|
65
|
+
"(no output)": string;
|
|
66
|
+
Input: string;
|
|
67
|
+
Output: string;
|
|
68
|
+
"Writing expression...": string;
|
|
69
|
+
"Waiting for expression...": string;
|
|
70
|
+
Calculating: string;
|
|
71
|
+
"Getting current time in": string;
|
|
72
|
+
"Getting current date and time": string;
|
|
73
|
+
"Waiting for command...": string;
|
|
74
|
+
"Writing command...": string;
|
|
75
|
+
"Running command...": string;
|
|
76
|
+
"Command failed:": string;
|
|
77
|
+
"Enter Auth Token": string;
|
|
78
|
+
"Please enter your auth token.": string;
|
|
79
|
+
"Auth token is required for proxy transport": string;
|
|
80
|
+
// JavaScript REPL strings
|
|
81
|
+
"Execution aborted": string;
|
|
82
|
+
"Code parameter is required": string;
|
|
83
|
+
"Unknown error": string;
|
|
84
|
+
"Code executed successfully (no output)": string;
|
|
85
|
+
"Execution failed": string;
|
|
86
|
+
"JavaScript REPL": string;
|
|
87
|
+
"JavaScript code to execute": string;
|
|
88
|
+
"Writing JavaScript code...": string;
|
|
89
|
+
"Executing JavaScript": string;
|
|
90
|
+
"Preparing JavaScript...": string;
|
|
91
|
+
"Preparing command...": string;
|
|
92
|
+
"Preparing calculation...": string;
|
|
93
|
+
"Preparing tool...": string;
|
|
94
|
+
"Getting time...": string;
|
|
95
|
+
// Artifacts strings
|
|
96
|
+
"Processing artifact...": string;
|
|
97
|
+
"Preparing artifact...": string;
|
|
98
|
+
"Processing artifact": string;
|
|
99
|
+
"Processed artifact": string;
|
|
100
|
+
"Creating artifact": string;
|
|
101
|
+
"Created artifact": string;
|
|
102
|
+
"Updating artifact": string;
|
|
103
|
+
"Updated artifact": string;
|
|
104
|
+
"Rewriting artifact": string;
|
|
105
|
+
"Rewrote artifact": string;
|
|
106
|
+
"Getting artifact": string;
|
|
107
|
+
"Got artifact": string;
|
|
108
|
+
"Deleting artifact": string;
|
|
109
|
+
"Deleted artifact": string;
|
|
110
|
+
"Getting logs": string;
|
|
111
|
+
"Got logs": string;
|
|
112
|
+
"An error occurred": string;
|
|
113
|
+
"Copy logs": string;
|
|
114
|
+
"Autoscroll enabled": string;
|
|
115
|
+
"Autoscroll disabled": string;
|
|
116
|
+
Processing: string;
|
|
117
|
+
Create: string;
|
|
118
|
+
Rewrite: string;
|
|
119
|
+
Get: string;
|
|
120
|
+
Delete: string;
|
|
121
|
+
"Get logs": string;
|
|
122
|
+
"Show artifacts": string;
|
|
123
|
+
"Close artifacts": string;
|
|
124
|
+
Artifacts: string;
|
|
125
|
+
"Copy HTML": string;
|
|
126
|
+
"Download HTML": string;
|
|
127
|
+
"Reload HTML": string;
|
|
128
|
+
"Copy SVG": string;
|
|
129
|
+
"Download SVG": string;
|
|
130
|
+
"Copy Markdown": string;
|
|
131
|
+
"Download Markdown": string;
|
|
132
|
+
Download: string;
|
|
133
|
+
"No logs for {filename}": string;
|
|
134
|
+
"API Keys Settings": string;
|
|
135
|
+
Settings: string;
|
|
136
|
+
"API Keys": string;
|
|
137
|
+
Proxy: string;
|
|
138
|
+
"Use CORS Proxy": string;
|
|
139
|
+
"Proxy URL": string;
|
|
140
|
+
"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>": string;
|
|
141
|
+
"Settings are stored locally in your browser": string;
|
|
142
|
+
Clear: string;
|
|
143
|
+
"API Key Required": string;
|
|
144
|
+
"Enter your API key for {provider}": string;
|
|
145
|
+
"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.": string;
|
|
146
|
+
Off: string;
|
|
147
|
+
Minimal: string;
|
|
148
|
+
Low: string;
|
|
149
|
+
Medium: string;
|
|
150
|
+
High: string;
|
|
151
|
+
"Storage Permission Required": string;
|
|
152
|
+
"This app needs persistent storage to save your conversations": string;
|
|
153
|
+
"Why is this needed?": string;
|
|
154
|
+
"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.": string;
|
|
155
|
+
"What this means:": string;
|
|
156
|
+
"Your conversations will be saved locally in your browser": string;
|
|
157
|
+
"Data will not be deleted automatically to free up space": string;
|
|
158
|
+
"You can still manually clear data at any time": string;
|
|
159
|
+
"No data is sent to external servers": string;
|
|
160
|
+
"Continue Anyway": string;
|
|
161
|
+
"Requesting...": string;
|
|
162
|
+
"Grant Permission": string;
|
|
163
|
+
Sessions: string;
|
|
164
|
+
"Load a previous conversation": string;
|
|
165
|
+
"No sessions yet": string;
|
|
166
|
+
"Delete this session?": string;
|
|
167
|
+
Today: string;
|
|
168
|
+
Yesterday: string;
|
|
169
|
+
"{days} days ago": string;
|
|
170
|
+
messages: string;
|
|
171
|
+
tokens: string;
|
|
172
|
+
"Drop files here": string;
|
|
173
|
+
// Providers & Models
|
|
174
|
+
"Providers & Models": string;
|
|
175
|
+
"Cloud Providers": string;
|
|
176
|
+
"Cloud LLM providers with predefined models. API keys are stored locally in your browser.": string;
|
|
177
|
+
"Custom Providers": string;
|
|
178
|
+
"User-configured servers with auto-discovered or manually defined models.": string;
|
|
179
|
+
"Add Provider": string;
|
|
180
|
+
"No custom providers configured. Click 'Add Provider' to get started.": string;
|
|
181
|
+
Models: string;
|
|
182
|
+
"auto-discovered": string;
|
|
183
|
+
Refresh: string;
|
|
184
|
+
Edit: string;
|
|
185
|
+
"Are you sure you want to delete this provider?": string;
|
|
186
|
+
"Edit Provider": string;
|
|
187
|
+
"Provider Name": string;
|
|
188
|
+
"e.g., My Ollama Server": string;
|
|
189
|
+
"Provider Type": string;
|
|
190
|
+
"Base URL": string;
|
|
191
|
+
"e.g., http://localhost:11434": string;
|
|
192
|
+
"API Key (Optional)": string;
|
|
193
|
+
"Leave empty if not required": string;
|
|
194
|
+
"Test Connection": string;
|
|
195
|
+
Discovered: string;
|
|
196
|
+
models: string;
|
|
197
|
+
and: string;
|
|
198
|
+
more: string;
|
|
199
|
+
"For manual provider types, add models after saving the provider.": string;
|
|
200
|
+
"Please fill in all required fields": string;
|
|
201
|
+
"Failed to save provider": string;
|
|
202
|
+
"OpenAI Completions Compatible": string;
|
|
203
|
+
"OpenAI Responses Compatible": string;
|
|
204
|
+
"Anthropic Messages Compatible": string;
|
|
205
|
+
"Checking...": string;
|
|
206
|
+
Disconnected: string;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export const translations = {
|
|
211
|
+
en: {
|
|
212
|
+
...defaultEnglish,
|
|
213
|
+
Free: "Free",
|
|
214
|
+
"Input Required": "Input Required",
|
|
215
|
+
Cancel: "Cancel",
|
|
216
|
+
Confirm: "Confirm",
|
|
217
|
+
"Select Model": "Select Model",
|
|
218
|
+
"Search models...": "Search models...",
|
|
219
|
+
Format: "Format",
|
|
220
|
+
Thinking: "Thinking",
|
|
221
|
+
Vision: "Vision",
|
|
222
|
+
You: "You",
|
|
223
|
+
Assistant: "Assistant",
|
|
224
|
+
"Thinking...": "Thinking...",
|
|
225
|
+
"Type your message...": "Type your message...",
|
|
226
|
+
"API Keys Configuration": "API Keys Configuration",
|
|
227
|
+
"Configure API keys for LLM providers. Keys are stored locally in your browser.":
|
|
228
|
+
"Configure API keys for LLM providers. Keys are stored locally in your browser.",
|
|
229
|
+
Configured: "Configured",
|
|
230
|
+
"Not configured": "Not configured",
|
|
231
|
+
"✓ Valid": "✓ Valid",
|
|
232
|
+
"✗ Invalid": "✗ Invalid",
|
|
233
|
+
"Testing...": "Testing...",
|
|
234
|
+
Update: "Update",
|
|
235
|
+
Test: "Test",
|
|
236
|
+
Remove: "Remove",
|
|
237
|
+
Save: "Save",
|
|
238
|
+
"Update API key": "Update API key",
|
|
239
|
+
"Enter API key": "Enter API key",
|
|
240
|
+
"Type a message...": "Type a message...",
|
|
241
|
+
"Failed to fetch file": "Failed to fetch file",
|
|
242
|
+
"Invalid source type": "Invalid source type",
|
|
243
|
+
PDF: "PDF",
|
|
244
|
+
Document: "Document",
|
|
245
|
+
Presentation: "Presentation",
|
|
246
|
+
Spreadsheet: "Spreadsheet",
|
|
247
|
+
Text: "Text",
|
|
248
|
+
"Error loading file": "Error loading file",
|
|
249
|
+
"No text content available": "No text content available",
|
|
250
|
+
"Failed to load PDF": "Failed to load PDF",
|
|
251
|
+
"Failed to load document": "Failed to load document",
|
|
252
|
+
"Failed to load spreadsheet": "Failed to load spreadsheet",
|
|
253
|
+
"Error loading PDF": "Error loading PDF",
|
|
254
|
+
"Error loading document": "Error loading document",
|
|
255
|
+
"Error loading spreadsheet": "Error loading spreadsheet",
|
|
256
|
+
"Preview not available for this file type.": "Preview not available for this file type.",
|
|
257
|
+
"Click the download button above to view it on your computer.":
|
|
258
|
+
"Click the download button above to view it on your computer.",
|
|
259
|
+
"No content available": "No content available",
|
|
260
|
+
"Failed to display text content": "Failed to display text content",
|
|
261
|
+
"API keys are required to use AI models. Get your keys from the provider's website.":
|
|
262
|
+
"API keys are required to use AI models. Get your keys from the provider's website.",
|
|
263
|
+
console: "console",
|
|
264
|
+
"Copy output": "Copy output",
|
|
265
|
+
"Copied!": "Copied!",
|
|
266
|
+
"Error:": "Error:",
|
|
267
|
+
"Request aborted": "Request aborted",
|
|
268
|
+
Call: "Call",
|
|
269
|
+
Result: "Result",
|
|
270
|
+
"(no result)": "(no result)",
|
|
271
|
+
"Waiting for tool result…": "Waiting for tool result…",
|
|
272
|
+
"Call was aborted; no result.": "Call was aborted; no result.",
|
|
273
|
+
"No session available": "No session available",
|
|
274
|
+
"No session set": "No session set",
|
|
275
|
+
"Preparing tool parameters...": "Preparing tool parameters...",
|
|
276
|
+
"(no output)": "(no output)",
|
|
277
|
+
Input: "Input",
|
|
278
|
+
Output: "Output",
|
|
279
|
+
"Waiting for expression...": "Waiting for expression...",
|
|
280
|
+
"Writing expression...": "Writing expression...",
|
|
281
|
+
Calculating: "Calculating",
|
|
282
|
+
"Getting current time in": "Getting current time in",
|
|
283
|
+
"Getting current date and time": "Getting current date and time",
|
|
284
|
+
"Waiting for command...": "Waiting for command...",
|
|
285
|
+
"Writing command...": "Writing command...",
|
|
286
|
+
"Running command...": "Running command...",
|
|
287
|
+
"Command failed": "Command failed",
|
|
288
|
+
"Enter Auth Token": "Enter Auth Token",
|
|
289
|
+
"Please enter your auth token.": "Please enter your auth token.",
|
|
290
|
+
"Auth token is required for proxy transport": "Auth token is required for proxy transport",
|
|
291
|
+
// JavaScript REPL strings
|
|
292
|
+
"Execution aborted": "Execution aborted",
|
|
293
|
+
"Code parameter is required": "Code parameter is required",
|
|
294
|
+
"Unknown error": "Unknown error",
|
|
295
|
+
"Code executed successfully (no output)": "Code executed successfully (no output)",
|
|
296
|
+
"Execution failed": "Execution failed",
|
|
297
|
+
"JavaScript REPL": "JavaScript REPL",
|
|
298
|
+
"JavaScript code to execute": "JavaScript code to execute",
|
|
299
|
+
"Writing JavaScript code...": "Writing JavaScript code...",
|
|
300
|
+
"Executing JavaScript": "Executing JavaScript",
|
|
301
|
+
"Preparing JavaScript...": "Preparing JavaScript...",
|
|
302
|
+
"Preparing command...": "Preparing command...",
|
|
303
|
+
"Preparing calculation...": "Preparing calculation...",
|
|
304
|
+
"Preparing tool...": "Preparing tool...",
|
|
305
|
+
"Getting time...": "Getting time...",
|
|
306
|
+
// Artifacts strings
|
|
307
|
+
"Processing artifact...": "Processing artifact...",
|
|
308
|
+
"Preparing artifact...": "Preparing artifact...",
|
|
309
|
+
"Processing artifact": "Processing artifact",
|
|
310
|
+
"Processed artifact": "Processed artifact",
|
|
311
|
+
"Creating artifact": "Creating artifact",
|
|
312
|
+
"Created artifact": "Created artifact",
|
|
313
|
+
"Updating artifact": "Updating artifact",
|
|
314
|
+
"Updated artifact": "Updated artifact",
|
|
315
|
+
"Rewriting artifact": "Rewriting artifact",
|
|
316
|
+
"Rewrote artifact": "Rewrote artifact",
|
|
317
|
+
"Getting artifact": "Getting artifact",
|
|
318
|
+
"Got artifact": "Got artifact",
|
|
319
|
+
"Deleting artifact": "Deleting artifact",
|
|
320
|
+
"Deleted artifact": "Deleted artifact",
|
|
321
|
+
"Getting logs": "Getting logs",
|
|
322
|
+
"Got logs": "Got logs",
|
|
323
|
+
"An error occurred": "An error occurred",
|
|
324
|
+
"Copy logs": "Copy logs",
|
|
325
|
+
"Autoscroll enabled": "Autoscroll enabled",
|
|
326
|
+
"Autoscroll disabled": "Autoscroll disabled",
|
|
327
|
+
Processing: "Processing",
|
|
328
|
+
Create: "Create",
|
|
329
|
+
Rewrite: "Rewrite",
|
|
330
|
+
Get: "Get",
|
|
331
|
+
"Get logs": "Get logs",
|
|
332
|
+
"Show artifacts": "Show artifacts",
|
|
333
|
+
"Close artifacts": "Close artifacts",
|
|
334
|
+
Artifacts: "Artifacts",
|
|
335
|
+
"Copy HTML": "Copy HTML",
|
|
336
|
+
"Download HTML": "Download HTML",
|
|
337
|
+
"Reload HTML": "Reload HTML",
|
|
338
|
+
"Copy SVG": "Copy SVG",
|
|
339
|
+
"Download SVG": "Download SVG",
|
|
340
|
+
"Copy Markdown": "Copy Markdown",
|
|
341
|
+
"Download Markdown": "Download Markdown",
|
|
342
|
+
Download: "Download",
|
|
343
|
+
"No logs for {filename}": "No logs for {filename}",
|
|
344
|
+
"API Keys Settings": "API Keys Settings",
|
|
345
|
+
Settings: "Settings",
|
|
346
|
+
"API Keys": "API Keys",
|
|
347
|
+
Proxy: "Proxy",
|
|
348
|
+
"Use CORS Proxy": "Use CORS Proxy",
|
|
349
|
+
"Proxy URL": "Proxy URL",
|
|
350
|
+
"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>":
|
|
351
|
+
"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>",
|
|
352
|
+
"Settings are stored locally in your browser": "Settings are stored locally in your browser",
|
|
353
|
+
Clear: "Clear",
|
|
354
|
+
"API Key Required": "API Key Required",
|
|
355
|
+
"Enter your API key for {provider}": "Enter your API key for {provider}",
|
|
356
|
+
"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.":
|
|
357
|
+
"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.",
|
|
358
|
+
Off: "Off",
|
|
359
|
+
Minimal: "Minimal",
|
|
360
|
+
Low: "Low",
|
|
361
|
+
Medium: "Medium",
|
|
362
|
+
High: "High",
|
|
363
|
+
"Storage Permission Required": "Storage Permission Required",
|
|
364
|
+
"This app needs persistent storage to save your conversations":
|
|
365
|
+
"This app needs persistent storage to save your conversations",
|
|
366
|
+
"Why is this needed?": "Why is this needed?",
|
|
367
|
+
"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.":
|
|
368
|
+
"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.",
|
|
369
|
+
"What this means:": "What this means:",
|
|
370
|
+
"Your conversations will be saved locally in your browser":
|
|
371
|
+
"Your conversations will be saved locally in your browser",
|
|
372
|
+
"Data will not be deleted automatically to free up space":
|
|
373
|
+
"Data will not be deleted automatically to free up space",
|
|
374
|
+
"You can still manually clear data at any time": "You can still manually clear data at any time",
|
|
375
|
+
"No data is sent to external servers": "No data is sent to external servers",
|
|
376
|
+
"Continue Anyway": "Continue Anyway",
|
|
377
|
+
"Requesting...": "Requesting...",
|
|
378
|
+
"Grant Permission": "Grant Permission",
|
|
379
|
+
Sessions: "Sessions",
|
|
380
|
+
"Load a previous conversation": "Load a previous conversation",
|
|
381
|
+
"No sessions yet": "No sessions yet",
|
|
382
|
+
"Delete this session?": "Delete this session?",
|
|
383
|
+
Today: "Today",
|
|
384
|
+
Yesterday: "Yesterday",
|
|
385
|
+
"{days} days ago": "{days} days ago",
|
|
386
|
+
messages: "messages",
|
|
387
|
+
tokens: "tokens",
|
|
388
|
+
Delete: "Delete",
|
|
389
|
+
"Drop files here": "Drop files here",
|
|
390
|
+
"Command failed:": "Command failed:",
|
|
391
|
+
// Providers & Models
|
|
392
|
+
"Providers & Models": "Providers & Models",
|
|
393
|
+
"Cloud Providers": "Cloud Providers",
|
|
394
|
+
"Cloud LLM providers with predefined models. API keys are stored locally in your browser.":
|
|
395
|
+
"Cloud LLM providers with predefined models. API keys are stored locally in your browser.",
|
|
396
|
+
"Custom Providers": "Custom Providers",
|
|
397
|
+
"User-configured servers with auto-discovered or manually defined models.":
|
|
398
|
+
"User-configured servers with auto-discovered or manually defined models.",
|
|
399
|
+
"Add Provider": "Add Provider",
|
|
400
|
+
"No custom providers configured. Click 'Add Provider' to get started.":
|
|
401
|
+
"No custom providers configured. Click 'Add Provider' to get started.",
|
|
402
|
+
"auto-discovered": "auto-discovered",
|
|
403
|
+
Refresh: "Refresh",
|
|
404
|
+
Edit: "Edit",
|
|
405
|
+
"Are you sure you want to delete this provider?": "Are you sure you want to delete this provider?",
|
|
406
|
+
"Edit Provider": "Edit Provider",
|
|
407
|
+
"Provider Name": "Provider Name",
|
|
408
|
+
"e.g., My Ollama Server": "e.g., My Ollama Server",
|
|
409
|
+
"Provider Type": "Provider Type",
|
|
410
|
+
"Base URL": "Base URL",
|
|
411
|
+
"e.g., http://localhost:11434": "e.g., http://localhost:11434",
|
|
412
|
+
"API Key (Optional)": "API Key (Optional)",
|
|
413
|
+
"Leave empty if not required": "Leave empty if not required",
|
|
414
|
+
"Test Connection": "Test Connection",
|
|
415
|
+
Discovered: "Discovered",
|
|
416
|
+
Models: "Models",
|
|
417
|
+
models: "models",
|
|
418
|
+
and: "and",
|
|
419
|
+
more: "more",
|
|
420
|
+
"For manual provider types, add models after saving the provider.":
|
|
421
|
+
"For manual provider types, add models after saving the provider.",
|
|
422
|
+
"Please fill in all required fields": "Please fill in all required fields",
|
|
423
|
+
"Failed to save provider": "Failed to save provider",
|
|
424
|
+
"OpenAI Completions Compatible": "OpenAI Completions Compatible",
|
|
425
|
+
"OpenAI Responses Compatible": "OpenAI Responses Compatible",
|
|
426
|
+
"Anthropic Messages Compatible": "Anthropic Messages Compatible",
|
|
427
|
+
"Checking...": "Checking...",
|
|
428
|
+
Disconnected: "Disconnected",
|
|
429
|
+
},
|
|
430
|
+
de: {
|
|
431
|
+
...defaultGerman,
|
|
432
|
+
Free: "Kostenlos",
|
|
433
|
+
"Input Required": "Eingabe erforderlich",
|
|
434
|
+
Cancel: "Abbrechen",
|
|
435
|
+
Confirm: "Bestätigen",
|
|
436
|
+
"Select Model": "Modell auswählen",
|
|
437
|
+
"Search models...": "Modelle suchen...",
|
|
438
|
+
Format: "Formatieren",
|
|
439
|
+
Thinking: "Thinking",
|
|
440
|
+
Vision: "Vision",
|
|
441
|
+
You: "Sie",
|
|
442
|
+
Assistant: "Assistent",
|
|
443
|
+
"Thinking...": "Denkt nach...",
|
|
444
|
+
"Type your message...": "Geben Sie Ihre Nachricht ein...",
|
|
445
|
+
"API Keys Configuration": "API-Schlüssel-Konfiguration",
|
|
446
|
+
"Configure API keys for LLM providers. Keys are stored locally in your browser.":
|
|
447
|
+
"Konfigurieren Sie API-Schlüssel für LLM-Anbieter. Schlüssel werden lokal in Ihrem Browser gespeichert.",
|
|
448
|
+
Configured: "Konfiguriert",
|
|
449
|
+
"Not configured": "Nicht konfiguriert",
|
|
450
|
+
"✓ Valid": "✓ Gültig",
|
|
451
|
+
"✗ Invalid": "✗ Ungültig",
|
|
452
|
+
"Testing...": "Teste...",
|
|
453
|
+
Update: "Aktualisieren",
|
|
454
|
+
Test: "Testen",
|
|
455
|
+
Remove: "Entfernen",
|
|
456
|
+
Save: "Speichern",
|
|
457
|
+
"Update API key": "API-Schlüssel aktualisieren",
|
|
458
|
+
"Enter API key": "API-Schlüssel eingeben",
|
|
459
|
+
"Type a message...": "Nachricht eingeben...",
|
|
460
|
+
"Failed to fetch file": "Datei konnte nicht abgerufen werden",
|
|
461
|
+
"Invalid source type": "Ungültiger Quellentyp",
|
|
462
|
+
PDF: "PDF",
|
|
463
|
+
Document: "Dokument",
|
|
464
|
+
Presentation: "Präsentation",
|
|
465
|
+
Spreadsheet: "Tabelle",
|
|
466
|
+
Text: "Text",
|
|
467
|
+
"Error loading file": "Fehler beim Laden der Datei",
|
|
468
|
+
"No text content available": "Kein Textinhalt verfügbar",
|
|
469
|
+
"Failed to load PDF": "PDF konnte nicht geladen werden",
|
|
470
|
+
"Failed to load document": "Dokument konnte nicht geladen werden",
|
|
471
|
+
"Failed to load spreadsheet": "Tabelle konnte nicht geladen werden",
|
|
472
|
+
"Error loading PDF": "Fehler beim Laden des PDFs",
|
|
473
|
+
"Error loading document": "Fehler beim Laden des Dokuments",
|
|
474
|
+
"Error loading spreadsheet": "Fehler beim Laden der Tabelle",
|
|
475
|
+
"Preview not available for this file type.": "Vorschau für diesen Dateityp nicht verfügbar.",
|
|
476
|
+
"Click the download button above to view it on your computer.":
|
|
477
|
+
"Klicken Sie oben auf die Download-Schaltfläche, um die Datei auf Ihrem Computer anzuzeigen.",
|
|
478
|
+
"No content available": "Kein Inhalt verfügbar",
|
|
479
|
+
"Failed to display text content": "Textinhalt konnte nicht angezeigt werden",
|
|
480
|
+
"API keys are required to use AI models. Get your keys from the provider's website.":
|
|
481
|
+
"API-Schlüssel sind erforderlich, um KI-Modelle zu verwenden. Holen Sie sich Ihre Schlüssel von der Website des Anbieters.",
|
|
482
|
+
console: "Konsole",
|
|
483
|
+
"Copy output": "Ausgabe kopieren",
|
|
484
|
+
"Copied!": "Kopiert!",
|
|
485
|
+
"Error:": "Fehler:",
|
|
486
|
+
"Request aborted": "Anfrage abgebrochen",
|
|
487
|
+
Call: "Aufruf",
|
|
488
|
+
Result: "Ergebnis",
|
|
489
|
+
"(no result)": "(kein Ergebnis)",
|
|
490
|
+
"Waiting for tool result…": "Warte auf Tool-Ergebnis…",
|
|
491
|
+
"Call was aborted; no result.": "Aufruf wurde abgebrochen; kein Ergebnis.",
|
|
492
|
+
"No session available": "Keine Sitzung verfügbar",
|
|
493
|
+
"No session set": "Keine Sitzung gesetzt",
|
|
494
|
+
"Preparing tool parameters...": "Bereite Tool-Parameter vor...",
|
|
495
|
+
"(no output)": "(keine Ausgabe)",
|
|
496
|
+
Input: "Eingabe",
|
|
497
|
+
Output: "Ausgabe",
|
|
498
|
+
"Waiting for expression...": "Warte auf Ausdruck",
|
|
499
|
+
"Writing expression...": "Schreibe Ausdruck...",
|
|
500
|
+
Calculating: "Berechne",
|
|
501
|
+
"Getting current time in": "Hole aktuelle Zeit in",
|
|
502
|
+
"Getting current date and time": "Hole aktuelles Datum und Uhrzeit",
|
|
503
|
+
"Waiting for command...": "Warte auf Befehl...",
|
|
504
|
+
"Writing command...": "Schreibe Befehl...",
|
|
505
|
+
"Running command...": "Führe Befehl aus...",
|
|
506
|
+
"Command failed": "Befehl fehlgeschlagen",
|
|
507
|
+
"Enter Auth Token": "Auth-Token eingeben",
|
|
508
|
+
"Please enter your auth token.": "Bitte geben Sie Ihr Auth-Token ein.",
|
|
509
|
+
"Auth token is required for proxy transport": "Auth-Token ist für Proxy-Transport erforderlich",
|
|
510
|
+
// JavaScript REPL strings
|
|
511
|
+
"Execution aborted": "Ausführung abgebrochen",
|
|
512
|
+
"Code parameter is required": "Code-Parameter ist erforderlich",
|
|
513
|
+
"Unknown error": "Unbekannter Fehler",
|
|
514
|
+
"Code executed successfully (no output)": "Code erfolgreich ausgeführt (keine Ausgabe)",
|
|
515
|
+
"Execution failed": "Ausführung fehlgeschlagen",
|
|
516
|
+
"JavaScript REPL": "JavaScript REPL",
|
|
517
|
+
"JavaScript code to execute": "Auszuführender JavaScript-Code",
|
|
518
|
+
"Writing JavaScript code...": "Schreibe JavaScript-Code...",
|
|
519
|
+
"Executing JavaScript": "Führe JavaScript aus",
|
|
520
|
+
"Preparing JavaScript...": "Bereite JavaScript vor...",
|
|
521
|
+
"Preparing command...": "Bereite Befehl vor...",
|
|
522
|
+
"Preparing calculation...": "Bereite Berechnung vor...",
|
|
523
|
+
"Preparing tool...": "Bereite Tool vor...",
|
|
524
|
+
"Getting time...": "Hole Zeit...",
|
|
525
|
+
// Artifacts strings
|
|
526
|
+
"Processing artifact...": "Verarbeite Artefakt...",
|
|
527
|
+
"Preparing artifact...": "Bereite Artefakt vor...",
|
|
528
|
+
"Processing artifact": "Verarbeite Artefakt",
|
|
529
|
+
"Processed artifact": "Artefakt verarbeitet",
|
|
530
|
+
"Creating artifact": "Erstelle Artefakt",
|
|
531
|
+
"Created artifact": "Artefakt erstellt",
|
|
532
|
+
"Updating artifact": "Aktualisiere Artefakt",
|
|
533
|
+
"Updated artifact": "Artefakt aktualisiert",
|
|
534
|
+
"Rewriting artifact": "Überschreibe Artefakt",
|
|
535
|
+
"Rewrote artifact": "Artefakt überschrieben",
|
|
536
|
+
"Getting artifact": "Hole Artefakt",
|
|
537
|
+
"Got artifact": "Artefakt geholt",
|
|
538
|
+
"Deleting artifact": "Lösche Artefakt",
|
|
539
|
+
"Deleted artifact": "Artefakt gelöscht",
|
|
540
|
+
"Getting logs": "Hole Logs",
|
|
541
|
+
"Got logs": "Logs geholt",
|
|
542
|
+
"An error occurred": "Ein Fehler ist aufgetreten",
|
|
543
|
+
"Copy logs": "Logs kopieren",
|
|
544
|
+
"Autoscroll enabled": "Automatisches Scrollen aktiviert",
|
|
545
|
+
"Autoscroll disabled": "Automatisches Scrollen deaktiviert",
|
|
546
|
+
Processing: "Verarbeitung",
|
|
547
|
+
Create: "Erstellen",
|
|
548
|
+
Rewrite: "Überschreiben",
|
|
549
|
+
Get: "Abrufen",
|
|
550
|
+
"Get logs": "Logs abrufen",
|
|
551
|
+
"Show artifacts": "Artefakte anzeigen",
|
|
552
|
+
"Close artifacts": "Artefakte schließen",
|
|
553
|
+
Artifacts: "Artefakte",
|
|
554
|
+
"Copy HTML": "HTML kopieren",
|
|
555
|
+
"Download HTML": "HTML herunterladen",
|
|
556
|
+
"Reload HTML": "HTML neu laden",
|
|
557
|
+
"Copy SVG": "SVG kopieren",
|
|
558
|
+
"Download SVG": "SVG herunterladen",
|
|
559
|
+
"Copy Markdown": "Markdown kopieren",
|
|
560
|
+
"Download Markdown": "Markdown herunterladen",
|
|
561
|
+
Download: "Herunterladen",
|
|
562
|
+
"No logs for {filename}": "Keine Logs für {filename}",
|
|
563
|
+
"API Keys Settings": "API-Schlüssel Einstellungen",
|
|
564
|
+
Settings: "Einstellungen",
|
|
565
|
+
"API Keys": "API-Schlüssel",
|
|
566
|
+
Proxy: "Proxy",
|
|
567
|
+
"Use CORS Proxy": "CORS-Proxy verwenden",
|
|
568
|
+
"Proxy URL": "Proxy-URL",
|
|
569
|
+
"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>":
|
|
570
|
+
"Format: Der Proxy muss Anfragen als <proxy-url>/?url=<ziel-url> akzeptieren",
|
|
571
|
+
"Settings are stored locally in your browser": "Einstellungen werden lokal in Ihrem Browser gespeichert",
|
|
572
|
+
Clear: "Löschen",
|
|
573
|
+
"API Key Required": "API-Schlüssel erforderlich",
|
|
574
|
+
"Enter your API key for {provider}": "Geben Sie Ihren API-Schlüssel für {provider} ein",
|
|
575
|
+
"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.":
|
|
576
|
+
"Ermöglicht browserbasierten Anwendungen, CORS-Einschränkungen beim Aufruf von LLM-Anbietern zu umgehen. Erforderlich für Z-AI und Anthropic mit OAuth-Token.",
|
|
577
|
+
Off: "Aus",
|
|
578
|
+
Minimal: "Minimal",
|
|
579
|
+
Low: "Niedrig",
|
|
580
|
+
Medium: "Mittel",
|
|
581
|
+
High: "Hoch",
|
|
582
|
+
"Storage Permission Required": "Speicherberechtigung erforderlich",
|
|
583
|
+
"This app needs persistent storage to save your conversations":
|
|
584
|
+
"Diese App benötigt dauerhaften Speicher, um Ihre Konversationen zu speichern",
|
|
585
|
+
"Why is this needed?": "Warum wird das benötigt?",
|
|
586
|
+
"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.":
|
|
587
|
+
"Ohne dauerhaften Speicher kann Ihr Browser gespeicherte Konversationen löschen, wenn Speicherplatz benötigt wird. Diese Berechtigung stellt sicher, dass Ihr Chatverlauf erhalten bleibt.",
|
|
588
|
+
"What this means:": "Was das bedeutet:",
|
|
589
|
+
"Your conversations will be saved locally in your browser":
|
|
590
|
+
"Ihre Konversationen werden lokal in Ihrem Browser gespeichert",
|
|
591
|
+
"Data will not be deleted automatically to free up space":
|
|
592
|
+
"Daten werden nicht automatisch gelöscht, um Speicherplatz freizugeben",
|
|
593
|
+
"You can still manually clear data at any time": "Sie können Daten jederzeit manuell löschen",
|
|
594
|
+
"No data is sent to external servers": "Keine Daten werden an externe Server gesendet",
|
|
595
|
+
"Continue Anyway": "Trotzdem fortfahren",
|
|
596
|
+
"Requesting...": "Anfrage läuft...",
|
|
597
|
+
"Grant Permission": "Berechtigung erteilen",
|
|
598
|
+
Sessions: "Sitzungen",
|
|
599
|
+
"Load a previous conversation": "Frühere Konversation laden",
|
|
600
|
+
"No sessions yet": "Noch keine Sitzungen",
|
|
601
|
+
"Delete this session?": "Diese Sitzung löschen?",
|
|
602
|
+
Today: "Heute",
|
|
603
|
+
Yesterday: "Gestern",
|
|
604
|
+
"{days} days ago": "vor {days} Tagen",
|
|
605
|
+
messages: "Nachrichten",
|
|
606
|
+
tokens: "Tokens",
|
|
607
|
+
Delete: "Löschen",
|
|
608
|
+
"Drop files here": "Dateien hier ablegen",
|
|
609
|
+
"Command failed:": "Befehl fehlgeschlagen:",
|
|
610
|
+
// Providers & Models
|
|
611
|
+
"Providers & Models": "Anbieter & Modelle",
|
|
612
|
+
"Cloud Providers": "Cloud-Anbieter",
|
|
613
|
+
"Cloud LLM providers with predefined models. API keys are stored locally in your browser.":
|
|
614
|
+
"Cloud-LLM-Anbieter mit vordefinierten Modellen. API-Schlüssel werden lokal in Ihrem Browser gespeichert.",
|
|
615
|
+
"Custom Providers": "Benutzerdefinierte Anbieter",
|
|
616
|
+
"User-configured servers with auto-discovered or manually defined models.":
|
|
617
|
+
"Benutzerkonfigurierte Server mit automatisch erkannten oder manuell definierten Modellen.",
|
|
618
|
+
"Add Provider": "Anbieter hinzufügen",
|
|
619
|
+
"No custom providers configured. Click 'Add Provider' to get started.":
|
|
620
|
+
"Keine benutzerdefinierten Anbieter konfiguriert. Klicken Sie auf 'Anbieter hinzufügen', um zu beginnen.",
|
|
621
|
+
"auto-discovered": "automatisch erkannt",
|
|
622
|
+
Refresh: "Aktualisieren",
|
|
623
|
+
Edit: "Bearbeiten",
|
|
624
|
+
"Are you sure you want to delete this provider?": "Sind Sie sicher, dass Sie diesen Anbieter löschen möchten?",
|
|
625
|
+
"Edit Provider": "Anbieter bearbeiten",
|
|
626
|
+
"Provider Name": "Anbietername",
|
|
627
|
+
"e.g., My Ollama Server": "z.B. Mein Ollama Server",
|
|
628
|
+
"Provider Type": "Anbietertyp",
|
|
629
|
+
"Base URL": "Basis-URL",
|
|
630
|
+
"e.g., http://localhost:11434": "z.B. http://localhost:11434",
|
|
631
|
+
"API Key (Optional)": "API-Schlüssel (Optional)",
|
|
632
|
+
"Leave empty if not required": "Leer lassen, falls nicht erforderlich",
|
|
633
|
+
"Test Connection": "Verbindung testen",
|
|
634
|
+
Discovered: "Erkannt",
|
|
635
|
+
Models: "Modelle",
|
|
636
|
+
models: "Modelle",
|
|
637
|
+
and: "und",
|
|
638
|
+
more: "mehr",
|
|
639
|
+
"For manual provider types, add models after saving the provider.":
|
|
640
|
+
"Für manuelle Anbietertypen fügen Sie Modelle nach dem Speichern des Anbieters hinzu.",
|
|
641
|
+
"Please fill in all required fields": "Bitte füllen Sie alle erforderlichen Felder aus",
|
|
642
|
+
"Failed to save provider": "Fehler beim Speichern des Anbieters",
|
|
643
|
+
"OpenAI Completions Compatible": "OpenAI Completions Kompatibel",
|
|
644
|
+
"OpenAI Responses Compatible": "OpenAI Responses Kompatibel",
|
|
645
|
+
"Anthropic Messages Compatible": "Anthropic Messages Kompatibel",
|
|
646
|
+
"Checking...": "Überprüfe...",
|
|
647
|
+
Disconnected: "Getrennt",
|
|
648
|
+
},
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
setTranslations(translations);
|
|
652
|
+
|
|
653
|
+
export * from "@mariozechner/mini-lit/dist/i18n.js";
|