-
Notifications
You must be signed in to change notification settings - Fork 244
Expand file tree
/
Copy pathen.json
More file actions
954 lines (954 loc) · 47.6 KB
/
Copy pathen.json
File metadata and controls
954 lines (954 loc) · 47.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
{
"common": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"close": "Close",
"loading": "Loading...",
"error": "Error",
"success": "Success",
"saving": "Saving...",
"saved": "Saved successfully!",
"sure": "Are you sure?",
"yes": "Yes",
"no": "No",
"enable": "Enable",
"disable": "Disable",
"install": "Install",
"optional": "optional",
"appLogoAlt": "Open Cowork logo",
"pastedImageAlt": "Pasted {{index}}"
},
"welcome": {
"title": "How can I help you today?",
"placeholder": "Describe what you'd like to do...",
"createFile": "Create a file",
"crunchData": "Crunch data",
"organizeFiles": "Organize files",
"checkEmails": "Check emails",
"searchPapers": "Search & summarize papers",
"summarizePapersToNotion": "Summarize papers to Notion",
"selectWorkingFolder": "Select Working Folder (required)",
"selectWorkingFolderFailed": "Failed to select working folder",
"attachFiles": "Attach Files",
"letsGo": "Let's go",
"starting": "Starting...",
"chromeRequired": "Chrome",
"notionRequired": "Notion",
"logoAlt": "Open Cowork logo",
"pastedImageAlt": "Pasted {{index}}",
"quickPromptCreate": "Create a new file for me",
"quickPromptCrunch": "Help me analyze and process data",
"quickPromptOrganize": "Help me organize my files and folders",
"quickPromptEmail": "Help me use Chrome to summarize the new emails from the past three days in my Gmail and NetEase Mail. Note that the saved accounts already include the full email suffix. Therefore, if the email suffix is already pre-filled on the webpage or in a screenshot, do not enter it again, to avoid login failure. Also, first check whether the corresponding account credentials are saved. If the username or password for a given email service is not saved, you can skip that email account.",
"quickPromptPapers": "Please help me use Chrome to search for and summarize papers related to [Agent] within two days.\nSource websites:\n1. HuggingFace Daily Papers. Please include the vote information and a brief summary. Note that it may not include papers in the weekend, so you may need to check the papers in previous days. But make sure that there is a total of two days.",
"quickPromptNotion": "Help me research three representative survey papers related to agents, and add them under a Notion page titled \"Agent Survey\". For each paper, include the title, authors, publication venue/year, and a brief summary of the main contributions.",
"apiNotConfigured": "API not configured yet. Please go to Settings to set up your API provider and key.",
"goToSettings": "Go to Settings"
},
"settings": {
"title": "Settings",
"apiSettings": "API Settings",
"apiSettingsDesc": "Configure API provider and key",
"sandbox": "Sandbox",
"sandboxDesc": "Isolated execution environment",
"connectors": "MCP Connectors",
"connectorsDesc": "Browser & tool integrations",
"skills": "Skills",
"skillsDesc": "Manage custom skills",
"memory": "Memory",
"memoryDesc": "Manage long-term memory and workspace experience",
"schedule": "Schedules",
"scheduleDesc": "Alarm-style prompt automation",
"remote": "Remote Control",
"remoteDesc": "Use Open Cowork from Feishu and other channels",
"logs": "Logs",
"logsDesc": "View and export application logs",
"panelDesc": "Configure your workspace, tools, and account behavior.",
"general": "General",
"generalDesc": "Appearance, language & preferences"
},
"general": {
"appearance": "Appearance",
"theme": "Theme",
"themeLight": "Light",
"themeDark": "Dark",
"themeSystem": "System",
"language": "Language"
},
"memory": {
"title": "Memory",
"description": "Global core memory stores stable preferences, while workspace experience memory stores project-specific multi-turn knowledge.",
"enabled": "Enabled",
"disabled": "Disabled",
"toggleHint": "Turning this off stops future ingestion and auto-recall, but keeps existing records.",
"enableAction": "Enable Memory",
"disableAction": "Disable Memory",
"enabledStatus": "Memory is enabled",
"disabledStatus": "Memory is disabled",
"coreCount": "Core entries",
"sessionCount": "Session summaries",
"chunkCount": "Experience chunks",
"workspaceCount": "Workspaces",
"latestIngestion": "Latest ingestion",
"noIngestionYet": "No ingestion recorded yet",
"health": "Health",
"healthy": "Healthy, with no recent failures",
"failedSessions": "{{count}} session(s) failed their latest ingestion",
"searchTitle": "Search & Inspect",
"searchDescription": "Search memory by current workspace or globally, then inspect summaries and raw excerpts.",
"searchPlaceholder": "Search preferences, previous implementations, decisions...",
"searchAction": "Search",
"scopeWorkspace": "Current workspace",
"scopeAll": "All memory",
"scopeGlobal": "Core memory only",
"currentWorkspace": "Current workspace",
"groupCore": "Core Memory",
"groupSessions": "Session summaries",
"groupChunks": "Chunk hits",
"detailTitle": "Detail",
"noSelection": "Select a result to inspect the full summary and source excerpt.",
"noResults": "No results",
"maintenanceTitle": "Maintenance",
"maintenanceDescription": "Rebuild experience memory for the current workspace or clear saved data.",
"rebuildWorkspace": "Rebuild current workspace",
"clearWorkspace": "Clear current workspace",
"clearCore": "Clear core memory",
"rebuildConfirm": "Rebuild experience memory for the current workspace? This rescans historical sessions in that workspace.",
"clearWorkspaceConfirm": "Clear experience memory for the current workspace? This cannot be undone.",
"clearCoreConfirm": "Clear all global core memory? This cannot be undone.",
"rebuildSuccess": "Workspace memory rebuilt",
"clearWorkspaceSuccess": "Workspace memory cleared",
"clearCoreSuccess": "Core memory cleared",
"runtimeTitle": "Runtime configuration",
"runtimeDescription": "By default this inherits the currently active API configuration. Here you mainly tune navigation depth, embedding, and the on-disk directory.",
"runtimeSaved": "Memory runtime configuration saved",
"saveRuntime": "Save runtime configuration",
"storageRoot": "Storage root",
"noWorkspace": "No workspace yet",
"maxNavSteps": "Navigation steps",
"ingestionConcurrency": "Rebuild concurrency",
"useEmbedding": "Enable embedding retrieval",
"evalEnabled": "Enable real-model evaluation",
"evalArtifactsRoot": "Evaluation artifacts directory",
"evalMaxRounds": "Evaluation rounds",
"promptIterationRounds": "Prompt iteration rounds",
"llmConfig": "Memory LLM",
"embeddingConfig": "Embedding",
"inheritActive": "Inherit active API",
"modelOverride": "Model override",
"baseUrlOverride": "Base URL override",
"apiKeyOverride": "API Key override",
"allSources": "All sources",
"groupRawSessions": "Raw sessions",
"sourceFile": "Source file",
"inspectSession": "Inspect session memory",
"inspectSessionHint": "Select a session or chunk from the results above to inspect it.",
"revealInFinder": "Reveal in Finder",
"rebuildAll": "Rebuild all memory",
"rebuildAllConfirm": "This will clear and rebuild all memory. Continue?",
"rebuildAllSuccess": "Rebuilt all memory: {{sessionCount}} session(s), {{workspaceCount}} source workspace(s)",
"filesTitle": "Raw file viewer",
"filesDescription": "View the core / unified experience / session_state / eval artifacts exactly as they are written to disk.",
"fileList": "File list",
"refreshFiles": "Refresh",
"noFiles": "No memory files yet",
"fileContent": "File content",
"emptyFile": "File is empty",
"selectFileHint": "Select a file on the left to view its raw JSON."
},
"language": {
"english": "English",
"chinese": "Chinese",
"selectLanguage": "Select Language",
"currentLanguage": "Current language"
},
"api": {
"firstRunTitle": "Set Up API",
"firstRunSubtitle": "Configure a provider to start using Open Cowork",
"settingsTitle": "API Settings",
"settingsSubtitle": "Manage provider, key, and model settings",
"configSet": "Config Set",
"defaultSetTag": "Default",
"saveAs": "Save As",
"renameSet": "Rename",
"deleteSet": "Delete Set",
"saveAndSwitch": "Save & Switch",
"discardAndSwitch": "Discard & Switch",
"currentSetSavingHint": "\"Save Settings\" updates only the currently selected config set.",
"unsavedCurrentSetHint": "Current config set has unsaved changes.",
"unsavedSwitchPrompt": "Current config set has unsaved changes. Choose an action before switching to \"{{name}}\".",
"configSetSaveAsPrompt": "Enter a name for the new config set",
"configSetRenamePrompt": "Enter a new name for this config set",
"configSetDeleteConfirm": "Delete config set \"{{name}}\"?",
"configSetNameRequired": "Config set name is required",
"configSetLimitReached": "You can save up to {{count}} config sets",
"configSetCreated": "Config set created",
"configSetRenamed": "Config set renamed",
"configSetDeleted": "Config set deleted",
"configSetSwitched": "Config set switched",
"defaultConfigSetName": "Default",
"configSetFallbackName": "Config set {{index}}",
"provider": "API Provider",
"providerDescription": "Choose the provider family and the broad protocol style for this workspace.",
"apiKey": "API Key",
"enterApiKey": "Enter your API Key",
"apiKeyDescription": "Saved locally and scoped to the active configuration set.",
"protocol": "Protocol",
"baseUrl": "Base URL",
"model": "Model",
"usePreset": "Use Preset",
"custom": "Custom",
"moreModels": "More Models",
"noModelsAvailable": "No models available",
"selectProtocol": "Select the compatible protocol for the service",
"enterOllamaUrl": "Enter the Ollama OpenAI-compatible service URL",
"enterOpenAIUrl": "Enter OpenAI-compatible service URL",
"enterAnthropicUrl": "Enter Anthropic-compatible service URL",
"enterGeminiUrl": "Enter a Gemini-compatible base URL",
"enterModelId": "Enter model ID, e.g., deepseek-chat, kimi-k2-thinking, gpt-5.4",
"selectModelRequired": "Please select a model",
"contextWindow": "Context Window",
"contextWindowPlaceholder": "Auto-detect",
"maxOutputTokens": "Max Output Tokens",
"maxOutputTokensPlaceholder": "Auto-detect",
"contextWindowHint": "Leave empty for auto-detection. Override only if the model reports incorrect limits.",
"saveFailed": "Failed to save settings. Please try again.",
"getStarted": "Get Started",
"saveSettings": "Save Settings",
"openSettingsAction": "Open API Settings",
"configRequiredActiveSet": "The current config set does not have usable credentials. Finish setup in API Settings first.",
"testConnection": "Test Connection",
"testingConnection": "Testing...",
"refreshModels": "Refresh Models",
"refreshingModels": "Refreshing...",
"refreshModelsFailed": "Failed to refresh models. Check the URL or service status.",
"manualModel": "Manual Model",
"useDetectedModels": "Use Detected Models",
"discoverLocalOllama": "Find Local Ollama",
"discoveringLocalOllama": "Finding...",
"discoverLocalOllamaHint": "Enter your Ollama endpoint first. Models will be fetched automatically, and manual entry is only needed if discovery fails.",
"localOllamaDiscovered": "Found local Ollama with {{count}} available model(s).",
"localOllamaNotFound": "No local Ollama service was found. Start it with `ollama serve` and try again.",
"localOllamaNoModels": "Found a local Ollama service, but it does not currently expose any models.",
"localOllamaModelUnavailable": "Found local Ollama, but model {{model}} could not complete a minimal inference request.",
"localOllamaModelLoading": "Found local Ollama, but the model is still loading into memory. Large models may take up to a minute.",
"enableThinking": "Enable Thinking Mode",
"enableThinkingHint": "Show Claude's thinking process step by step. This provides more transparency but may increase token usage.",
"enableThinkingOllamaHint": "Most Ollama models do not support thinking mode. Enable only if your model explicitly supports it.",
"testSuccess": "Connection successful ({{ms}}ms)",
"testSuccessNeedSave": "Connection test passed. Save settings before starting a session.",
"testError": {
"missing_key": "API Key is required",
"missing_base_url": "Base URL is required for this provider",
"unauthorized": "Invalid API Key or unauthorized",
"not_found": "Endpoint not found. Check the Base URL",
"rate_limited": "Rate limited or quota exceeded",
"server_error": "Service error. Please try again later",
"network_error": "Network error. Check your connection",
"ollama_not_running": "Cannot connect to Ollama. Please make sure Ollama is running (ollama serve).",
"ollama_loading": "Ollama is loading the model into memory. Large models may take 30–120 seconds. Please wait and try again.",
"unknown": "Connection failed"
},
"guidance": {
"commonSetupsTitle": "Common provider setups",
"commonSetupsHint": "Review or apply a recommended setup",
"apply": "Apply",
"detectedBadge": "Detected",
"preferProviderTab": "Detected {{service}}. This service is usually easier to configure from the dedicated {{provider}} tab.",
"protocolMismatch": "Detected {{service}}. Recommended protocol: {{recommendedProtocol}}.",
"protocolLooksGood": "Detected {{service}}. Your current protocol already matches the recommended {{recommendedProtocol}} setup.",
"baseUrlHint": "Detected {{service}}. Recommended {{recommendedProtocol}} setup: {{baseUrl}}. Example model: {{model}}.",
"genericBaseUrlHint": "This looks like a custom {{recommendedProtocol}}-compatible endpoint. Recommended base URL format: {{baseUrl}}. Example model: {{model}}.",
"protocolLabels": {
"anthropic": "Anthropic",
"openai": "OpenAI",
"gemini": "Gemini"
},
"columns": {
"service": "Service",
"protocol": "Protocol",
"baseUrl": "Base URL",
"model": "Example model",
"notes": "Notes",
"action": "Action"
},
"errorHints": {
"emptyProbeGeneric": "The endpoint returned an empty probe response. This usually means the selected protocol or model is incompatible with the service.",
"emptyProbeDetected": "{{service}} returned an empty probe response. Try the recommended {{recommendedProtocol}} setup and verify the model ID for that endpoint.",
"emptyProbePreferProvider": "{{service}} returned an empty probe response. Try the dedicated {{provider}} tab instead of configuring it as a generic custom endpoint.",
"probeMismatchGeneric": "The endpoint responded, but not in the format expected by this probe. This usually points to a protocol or model compatibility mismatch.",
"probeMismatchDetected": "{{service}} responded with an unexpected probe format. Try the recommended {{recommendedProtocol}} setup and verify the model ID for that endpoint."
},
"setups": {
"openrouter": {
"name": "OpenRouter",
"note": "Prefer the dedicated OpenRouter provider tab unless you are debugging a custom relay."
},
"deepseek": {
"name": "DeepSeek API",
"note": "Use OpenAI-compatible mode and copy the exact model ID from DeepSeek docs."
},
"kimi": {
"name": "Kimi Coding",
"note": "Use the coding endpoint with Anthropic-compatible mode. Double-check the exact coding model ID from Moonshot docs."
},
"glm": {
"name": "GLM / BigModel (Anthropic route)",
"note": "Use the Anthropic-compatible route when the endpoint path includes /api/anthropic."
},
"ollama": {
"name": "Ollama",
"note": "Prefer the dedicated Ollama provider tab for local model discovery and refresh."
},
"gemini": {
"name": "Gemini custom endpoint",
"note": "Use Gemini-compatible mode and the exact model ID exposed by the endpoint."
},
"minimax": {
"name": "MiniMax",
"note": "Use OpenAI-compatible mode unless your MiniMax gateway documents another protocol."
},
"genericOpenAI": {
"name": "Generic OpenAI-compatible",
"note": "Use this for custom relays, gateways, or inference servers that mimic the OpenAI API."
}
}
},
"newSet": "New Set",
"createSetTitle": "Create Config Set",
"saveAsTitle": "Save As Config Set",
"createSetNamePlaceholder": "Enter config set name",
"renameSetTitle": "Rename Config Set",
"unsavedBeforeActionPrompt": "Current config set has unsaved changes. Choose an action before \"{{action}}\".",
"newSetDefaultName": "New Config Set",
"copyNameSuffix": "Copy",
"currentSetLabel": "Current set: ",
"unsavedBadge": "Unsaved",
"saveAndContinue": "Save & Continue",
"discardAndContinue": "Discard & Continue",
"currentSetName": "Set name",
"renameInlineHint": "Edit directly. Press Enter or blur to save automatically",
"switchSetLabel": "Switch to another set",
"switchSetPlaceholder": "Select a set to switch",
"noOtherSetHint": "No other set available",
"configSetMissing": "Config set not found",
"configSetCloneSourceMissing": "Could not find a config set to clone",
"configSetSystemDeleteForbidden": "The default config set cannot be deleted",
"configSetKeepOne": "Keep at least one config set",
"diagnostic": {
"runDiagnostics": "Diagnose Connection",
"runQuickDiagnostics": "Quick Diagnose",
"runDeepDiagnostics": "Deep Inference Check",
"running": "Diagnosing...",
"step": {
"dns": "DNS Resolution",
"tcp": "TCP Connection",
"tls": "TLS Handshake",
"auth": "API Authentication",
"model": "Model Verification"
},
"status": {
"pending": "Pending",
"running": "Checking...",
"ok": "OK",
"fail": "Failed",
"skip": "Skipped"
},
"overallSuccess": "All checks passed ({{ms}}ms)",
"overallFail": "Diagnosis failed at {{step}}",
"advisory": {
"not_deep_verified": "The endpoint is reachable and the selected model is listed, but no live inference was performed yet.",
"model_loading": "The endpoint is reachable, but the model may still be loading into memory."
},
"latency": "{{ms}}ms",
"fix": {
"dns_resolve_failed": "Cannot resolve hostname {{host}}. Please check if the URL is correct.",
"tcp_connect_failed": "Cannot connect to {{host}}. Please check your network or firewall settings.",
"tls_handshake_failed": "TLS handshake failed. This may be caused by a certificate issue or proxy interference.",
"missing_api_key": "API Key is missing or invalid. Please check your key.",
"auth_invalid_key": "API Key is invalid or expired. Please check if the key is correct.",
"auth_endpoint_not_found": "API endpoint not found. Please check if the Base URL is correct.",
"auth_request_failed": "Authentication request failed. Please check your configuration.",
"model_network_error": "Could not reach model {{model}}. Check your network, VPN, or proxy settings.",
"model_rate_limited": "Model {{model}} is currently rate limited or out of quota. Please try again later.",
"model_request_failed": "Model {{model}} request failed on the provider side. Please try again later.",
"model_unavailable": "Model {{model}} is not available. Please verify the model name.",
"ollama_no_models_loaded": "The endpoint is reachable, but it did not return any models. Pull a model in Ollama first.",
"ollama_model_not_listed": "Model {{model}} is not in the endpoint model list. Pick a detected model or switch to manual entry.",
"ollama_model_loading": "Model {{model}} may still be loading. Try the deep check again in a moment.",
"model_cold_start": "The model may still be loading into GPU/CPU memory. Large models (7B+) can take 30–120 seconds on first use. Try again shortly."
}
}
},
"window": {
"minimize": "Minimize",
"maximize": "Maximize",
"restore": "Restore",
"close": "Close"
},
"sandbox": {
"title": "Sandbox Environment",
"wslDesc": "Run commands in WSL2 Linux environment for better isolation and security on Windows.",
"limaDesc": "Run commands in Lima VM for better isolation and security on macOS.",
"nativeDesc": "Commands run directly on your system (Linux native mode).",
"enableSandbox": "Enable Sandbox Mode",
"comingSoon": "Coming soon — under development",
"readyStatus": "Sandbox ready and running",
"notReadyStatus": "Sandbox enabled but not fully configured",
"disabledStatus": "Sandbox disabled - commands run directly on system",
"enabledWillSetup": "Sandbox enabled. Setting up environment...",
"disabled": "Sandbox mode disabled",
"failedToLoad": "Failed to load sandbox status",
"failedToSave": "Failed to save sandbox settings",
"statusRefreshed": "Status refreshed",
"checkFailed": "Failed to check sandbox status",
"environmentStatus": "Environment Status",
"checkStatus": "Check Status",
"platform": "Platform",
"mode": "Mode",
"status": "Status",
"native": "Native",
"wslAvailable": "WSL2 Available",
"limaAvailable": "Lima Available",
"vmCreated": "VM Instance Created",
"vmRunning": "VM Running",
"wslNotInstalled": "WSL2 is not installed",
"wslInstallHint": "Install WSL2 for better isolation. Run this command in PowerShell as Administrator:",
"limaNotInstalled": "Lima is not installed",
"limaInstallHint": "Install Lima for better isolation. Run this command in Terminal:",
"linuxNative": "Linux runs commands natively without additional sandboxing.",
"nodeInstalled": "Node.js installed successfully",
"nodeInstallFailed": "Failed to install Node.js",
"pythonInstalled": "Python installed successfully",
"pythonInstallFailed": "Failed to install Python",
"start": "Start",
"stop": "Stop",
"limaStarted": "Lima VM started",
"limaStartFailed": "Failed to start Lima VM",
"limaStopped": "Lima VM stopped",
"limaStopFailed": "Failed to stop Lima VM",
"settingUp": "Setting up...",
"retrySetup": "Retry Setup",
"setupComplete": "Sandbox setup complete",
"setupFailed": "Sandbox setup failed",
"helpText1": "Sandbox provides an isolated environment for running commands safely.",
"helpText2": "WSL2 (Windows) or Lima VM (macOS) is required for full sandbox support.",
"setupTitle": "Setting Up Sandbox",
"setupSubtitle": "First run requires configuring a secure execution environment.",
"progressLabel": "Progress",
"continuingNative": "Continuing with native execution mode.",
"retryLima": "Try Restarting Lima",
"retryingLima": "Restarting Lima...",
"continueNative": "Continue with Native Mode",
"configuredSuccess": "Sandbox configured. Code can now be executed safely.",
"nativeFallbackSuccess": "Using the native system environment for command execution.",
"footerWsl": "WSL2 Sandbox",
"footerLima": "Lima Sandbox",
"footerNative": "Native Mode",
"configuring": "Configuring...",
"syncFiles_one": "{{count}} file",
"syncFiles_other": "{{count}} files",
"syncExplanation": "Syncing project files to the isolated sandbox for secure code execution.",
"syncFirst": "First sync is slower,",
"syncFollowup": "incremental syncs will be faster.",
"checkingWsl": "Checking WSL2 environment...",
"checkingLima": "Checking Lima environment...",
"creatingLima": "Creating Lima VM...",
"startingLima": "Starting Lima VM...",
"installingNode": "Installing Node.js...",
"installingPython": "Installing Python...",
"installingPip": "Installing pip...",
"installingDeps": "Installing skill dependencies...",
"setupFailedMessage": "Sandbox setup failed",
"sandboxDisabledMessage": "Sandbox disabled",
"nativeModeMessage": "Using native execution mode",
"wslNotDetectedMessage": "WSL2 not detected, using native mode",
"limaNotDetectedMessage": "Lima not detected, using native mode",
"nodeInstallFailedMessage": "Node.js installation failed",
"wslReadyMessage": "WSL2 sandbox ready",
"limaReadyMessage": "Lima sandbox ready",
"limaCreateFailedMessage": "Lima VM creation failed",
"limaStartFailedMessage": "Lima VM startup failed",
"setupDetailSandboxDisabled": "Using native execution mode (sandbox disabled in settings)",
"setupDetailLinuxNative": "Linux runs commands directly",
"setupDetailInstallWsl": "Install WSL2 for better sandbox isolation",
"setupDetailInstallNodeWsl": "Please install Node.js manually in WSL",
"setupDetailInstallNodeWslRuntime": "Installing Node.js runtime in {{distro}}",
"setupDetailInstallPythonWslRuntime": "Installing Python runtime in {{distro}}",
"setupDetailInstallPipWslRuntime": "Installing Python package manager in {{distro}}",
"setupDetailInstallDeps": "Installing markitdown, pypdf, pdfplumber for PDF/PPTX skills",
"setupDetailInstallLima": "Install Lima for better sandbox isolation (brew install lima)",
"setupDetailCreateLima": "First run requires image download and may take a few minutes",
"setupDetailStartLima": "VM startup may take a few minutes",
"setupDetailInstallNodeLima": "Installing Node.js runtime in Lima VM",
"setupDetailInstallPythonLima": "Installing Python runtime in Lima VM",
"syncingFilesMessage": "Syncing files to sandbox...",
"syncingSkillsMessage": "Configuring skills...",
"syncReadyMessage": "Sandbox ready",
"syncFailedMessage": "Sandbox sync failed",
"syncDetailWsl": "Copying project files to isolated WSL environment",
"syncDetailLima": "Copying project files to isolated Lima environment",
"syncDetailSkills": "Copying built-in skills to sandbox",
"syncDetailFallback": "Falling back to direct access mode (less secure)",
"syncDetailCompleted": "Synced {{count}} files"
},
"mcp": {
"noConnectors": "No connectors configured",
"addConnector": "Add a connector to enable MCP tools",
"toolsAvailable": "{{count}} tool available",
"toolsAvailable_plural": "{{count}} tools available",
"connected": "Connected",
"notConnected": "Not connected",
"connecting": "Connecting...",
"failed": "Connection failed",
"chromeHint": "A new Chrome debug window will open automatically if port is unavailable",
"quickAddPresets": "Quick Add Presets",
"show": "Show",
"hide": "Hide",
"addCustomConnector": "Add Custom Connector",
"configure": "Configure",
"added": "Added",
"requiresToken": "Requires Token",
"editConnector": "Edit Connector",
"addConnectorTitle": "Add Custom Connector",
"name": "Name",
"namePlaceholder": "Chrome MCP Server",
"type": "Type",
"typeStdioLocal": "STDIO (Local)",
"typeSseRemote": "SSE (Remote)",
"typeStreamableHttp": "HTTP (Streamable)",
"command": "Command",
"commandPlaceholder": "npx",
"arguments": "Arguments",
"argumentsPlaceholder": "-y chrome-devtools-mcp@latest --browser-url http://localhost:9222",
"spaceSeparated": "Space-separated arguments",
"url": "URL",
"enableConnector": "Enable this connector",
"presetAlreadyConfigured": "Connector \"{{name}}\" is already configured",
"envValuePlaceholder": "Enter value",
"removeVar": "Remove",
"loadServersFailed": "Failed to load connectors",
"saveServerFailed": "Failed to save connector",
"deleteServerFailed": "Failed to delete connector",
"deleteConnectorConfirm": "Delete this connector?",
"commandRequired": "Command is required",
"urlRequired": "URL is required",
"toolCount": "{{count}} tools",
"callCount": "{{count}} calls"
},
"credentials": {
"envVars": "Environment Variables",
"enterEnvVar": "Enter environment variable name (e.g., NOTION_TOKEN):",
"usedForTokens": "Used for tokens and secrets (e.g., NOTION_TOKEN)",
"noEnvVars": "No environment variables configured"
},
"skills": {
"storagePathHint": "Choose where custom skills live and how the app refreshes them.",
"builtinSkillsDesc": "Built-in skills ship with the app and can be toggled when needed.",
"pluginsTitle": "Plugins & Imports",
"pluginsDesc": "Browse marketplace plugins or import custom skills from a local folder.",
"title": "📦 Skills",
"description": "Skills extend Claude's capabilities with specialized knowledge and tools.",
"builtinSkills": "Built-in Skills",
"customSkills": "Custom Skills",
"noCustomSkills": "No custom skills installed",
"installSkillsDesc": "Install skills to extend Claude's capabilities",
"browsePlugins": "Browse Plugins",
"pluginListTitle": "Browse Claude Plugin Marketplace",
"pluginSkillCount": "Installable skills: {{count}}",
"pluginComponents": "Components: skills {{skills}} · commands {{commands}} · agents {{agents}} · hooks {{hooks}} · mcp {{mcp}}",
"pluginComponentsAvailableAfterInstall": "Component details will be available after installation.",
"pluginInstall": "Install",
"pluginInstalled": "Installed",
"pluginInstallSuccess": "Plugin \"{{name}}\" installed successfully",
"pluginInstallFailed": "Failed to install plugin",
"pluginNoSkills": "This plugin has no installable skills in V1",
"pluginNoComponents": "This plugin has no loadable components",
"pluginManage": "Manage",
"pluginEnable": "Enable",
"pluginDisable": "Disable",
"pluginUninstall": "Uninstall plugin \"{{name}}\"?",
"pluginManageUninstall": "Uninstall",
"pluginUninstalled": "Plugin \"{{name}}\" was uninstalled",
"pluginComponentHooksDisabledByDefault": "This plugin includes hooks. Hooks are disabled by default and can be enabled in manage settings after install.",
"pluginComponentMcpDisabledByDefault": "This plugin includes MCP. MCP is disabled by default and can be enabled in manage settings after install.",
"pluginAppliedInRuntime": "Plugin settings are currently applied at runtime",
"pluginDisabled": "Plugin is currently disabled",
"noPluginsFound": "No plugins available",
"storagePathTitle": "Skills Storage Directory",
"storagePathUnavailable": "Storage path unavailable",
"selectStoragePath": "Select Directory",
"openStoragePath": "Open Directory",
"refreshSkills": "Refresh Skills",
"storagePathUpdated": "Storage updated. Migrated {{migrated}} skills, skipped {{skipped}}",
"storagePathUpdateFailed": "Failed to update skills storage path",
"storagePathOpenFailed": "Failed to open skills storage path",
"storagePathFallback": "Fell back to the default skills directory. Please verify your configured path.",
"storageWatcherError": "Skills directory watcher error: {{message}} (polling fallback enabled).",
"installSkillFromFolder": "Install Skill from Folder",
"deleteSkill": "Delete skill \"{{name}}\"?",
"failedToLoad": "Failed to load skills",
"failedToInstall": "Failed to install skill",
"failedToDelete": "Failed to delete skill",
"failedToToggle": "Failed to toggle skill"
},
"logs": {
"actionsTitle": "Log Actions",
"title": "Application Logs",
"description": "View and export diagnostic bundles for debugging. Logs rotate automatically after 10MB, and exports also include recent session and error summaries.",
"inventoryDescription": "Current log inventory and storage footprint.",
"recentDescription": "Recent application logs available for inspection. You can still export a diagnostics bundle even when no log file exists yet.",
"directoryDescription": "Current on-disk location for application logs.",
"actionsDescription": "Export a diagnostics bundle, reveal the log directory, or clear log files.",
"enableDevLogs": "Enable Developer Logs",
"enableDevLogsDesc": "Record detailed logs for debugging. Disable to reduce disk usage.",
"devLogsEnabled": "Developer logs enabled",
"devLogsDisabled": "Developer logs disabled",
"toggleFailed": "Failed to toggle developer logs",
"logFiles": "Log Files",
"totalSize": "Total Size",
"noLogFiles": "No log files found",
"logsDirectory": "Logs Directory:",
"exportZip": "Export Diagnostics",
"openFolder": "Open Folder",
"clearAll": "Clear All",
"clearConfirm": "Are you sure you want to clear all log files? This action cannot be undone.",
"exportSuccess": "Diagnostics exported successfully to {{path}}",
"clearSuccess": "Cleared {{count}} log file(s)",
"exportFailed": "Failed to export logs",
"clearFailed": "Failed to clear logs",
"helpText1": "The exported diagnostics bundle includes app logs, a redacted runtime snapshot, and metadata-only session/error summaries without message bodies by default.",
"helpText2": "Sharing that bundle usually lets us narrow issues down much faster, whether they come from the UI, tool execution, or local environment."
},
"sidebar": {
"recents": "Recents",
"expandToView": "Expand to view tasks",
"noTasks": "No tasks yet",
"noTasksHint": "Start a new chat to begin building, researching, or editing files.",
"search": "Search conversations...",
"deleteAll": "Delete all conversations",
"localTasks": "These tasks run locally and aren't synced across devices.",
"apiConfigured": "API Configured",
"apiNotConfigured": "API Not Configured",
"user": "User",
"newTask": "New chat",
"newTaskHint": "Start a fresh conversation",
"today": "Today",
"yesterday": "Yesterday",
"previousWeek": "Previous 7 Days",
"older": "Older",
"settings": "Settings",
"themeToggle": "Toggle theme",
"manage": "Manage",
"selectAll": "Select All",
"deselectAll": "Deselect All",
"nSelected": "{{count}} selected",
"batchDeleteConfirm": "Delete {{count}} conversations? This cannot be undone.",
"cancel": "Cancel",
"confirmDelete": "Delete"
},
"chat": {
"sendMessage": "Send message",
"stop": "Stop",
"processing": "Processing...",
"typeMessage": "Type a message...",
"loadingConversation": "Loading conversation...",
"startConversation": "Start the conversation",
"startFailed": "Failed to start session. Please try again.",
"disclaimer": "Open Cowork is AI-powered and may make mistakes. Please double-check responses.",
"noModel": "No model",
"connectorCount_one": "{{count}} connector",
"connectorCount_other": "{{count}} connectors"
},
"context": {
"progress": "Progress",
"artifacts": "Artifacts",
"context": "Context",
"workingDirectory": "Working Directory",
"toolsUsed": "Tools Used",
"mcpConnectors": "MCP Connectors",
"copied": "Copied!",
"noToolsUsedYet": "No tools used yet",
"toolsUsedLabel": "Tools used:",
"noFolderSelected": "No folder selected",
"expandPanel": "Expand panel",
"collapsePanel": "Collapse panel",
"queuedMessages": "Queued messages: {{count}}",
"stepsWillShow": "Steps will show as the task unfolds.",
"noArtifactsYet": "No artifacts yet",
"revealFailed": "Unable to locate the file. Please check whether the path exists.",
"fileCreated": "File created",
"callNumber": "Call #{{number}}",
"input": "Input:",
"output": "Output:",
"tokenUsage": "Token Usage",
"inputTokens": "Input",
"outputTokens": "Output",
"totalTokens": "Total",
"changeDir": "Change directory",
"changeDirFailed": "Failed to change directory",
"copyPath": "Copy path",
"openInFileManager": "Open in file manager",
"contextUsage": "Context Usage",
"contextUsageLabel": "{{used}} / {{total}}"
},
"messageCard": {
"request": "Request",
"queued": "Queued",
"cancelled": "Cancelled",
"emptyMessage": "Empty message",
"emptyText": "(empty text)",
"copyMessage": "Copy message",
"revealInFolder": "Reveal in folder",
"pastedContentAlt": "Pasted content",
"taskProgress": "Task Progress",
"noQuestions": "No questions",
"question": "Question",
"thinking": "Thinking",
"executionTime": "Execution time: {{time}}"
},
"schedule": {
"createTitle": "Create Schedule",
"editTitle": "Edit Schedule",
"autoTitleLabel": "Auto title (used to identify sessions)",
"autoTitleChangedHint": "Prompt changed. The title will be regenerated after saving.",
"autoTitleUnchangedHint": "If the prompt stays the same, the existing title will be kept.",
"autoTitleEditingChanged": "After saving, the title will be regenerated from the prompt with a [Scheduled Task] prefix.",
"autoTitleEditingUnchanged": "After saving, the title will be generated with a [Scheduled Task] prefix.",
"autoTitleCreating": "After saving, the title will be generated with a [Scheduled Task] prefix and a model summary.",
"promptPlaceholder": "Prompt to run automatically at the scheduled time",
"cwdPlaceholder": "Working directory (defaults to the current workspace)",
"executionTime": "Run timing",
"executionTimeHint": "New schedules prefer multi-slot timing; legacy interval rules can still be edited.",
"enabled": "Enabled",
"mode": "Run mode",
"weekday": "Weekdays",
"weekdayPlaceholder": "Select weekdays",
"times": "Time slots",
"timePlaceholder": "Select times",
"legacyIntervalNotice": "This task comes from a legacy fixed-interval rule and will keep that mode when saved.",
"onceTimeLabel": "Choose the one-time execution time",
"legacyStartTimeLabel": "Choose the start time for the legacy interval rule",
"dailyHint": "Run automatically at these times every day.",
"weeklyHint": "Run automatically on the selected weekdays and time slots.",
"saveChanges": "Save changes",
"createTask": "Create task",
"cancelEdit": "Cancel editing",
"listHint": "Disabling only blocks future automatic runs. Already started sessions must be stopped manually from the session list.",
"empty": "No schedules yet",
"loadFailed": "Failed to load schedules",
"promptRequired": "Enter the prompt to run",
"dailyTimesRequired": "Select at least one daily time slot",
"weeklyTimesRequired": "Select at least one weekly time slot",
"weekdayRequired": "Select at least one weekday",
"invalidTime": "Enter a valid execution time",
"nextRunCalculationFailed": "The current rule cannot calculate the next run time",
"futureTimeRequired": "Execution time must be later than now. Use Run now if you want to trigger it immediately.",
"taskMissing": "Task no longer exists or was deleted",
"updated": "Schedule updated",
"created": "Schedule created",
"saveFailed": "Failed to save schedule",
"toggleFailed": "Failed to toggle schedule state",
"runNowSuccess": "Triggered an immediate run",
"runNowFailed": "Failed to run immediately",
"noSessionToStop": "This task has no execution session to stop",
"sessionNotRunning": "This task does not currently have a running session",
"stopSent": "Stop command sent",
"stopFailed": "Failed to stop execution",
"deleteConfirm": "Delete schedule \"{{title}}\"?",
"deleted": "Schedule deleted",
"deleteFailed": "Failed to delete schedule",
"statusRunning": "Running",
"statusFinished": "Finished",
"statusUnknown": "Unknown",
"statusNone": "None",
"taskEnabled": "Enabled",
"taskDisabled": "Disabled",
"nextRun": "Next run: {{value}}",
"nextRunNone": "Next run: None",
"strategy": "Schedule rule: {{value}}",
"lastRun": "Last run: {{value}}",
"lastRunNever": "Last run: Not yet run",
"recentSession": "Latest session: {{value}}",
"sessionStatus": "Session status: {{value}}",
"cwd": "Directory: {{value}}",
"lastError": "Latest error: {{value}}",
"disable": "Disable",
"enable": "Enable",
"runNow": "Run now",
"stopExecution": "Stop run",
"edit": "Edit",
"delete": "Delete",
"stopRunTitleActive": "Stop the latest execution session for this task",
"stopRunTitleIdle": "This task does not currently have a running session",
"repeatEveryMinute_one": "Every {{count}} minute",
"repeatEveryMinute_other": "Every {{count}} minutes",
"repeatEveryHour_one": "Every {{count}} hour",
"repeatEveryHour_other": "Every {{count}} hours",
"repeatEveryDay_one": "Every {{count}} day",
"repeatEveryDay_other": "Every {{count}} days",
"ruleDaily": "Every day at {{times}}",
"ruleWeekly": "Every week on {{weekdays}} at {{times}}",
"ruleOnce": "One-time",
"previewNextRun": "Next expected run: {{value}}",
"previewSelectValidTime": "Choose a valid execution time",
"previewSelectAtLeastOne": "Choose at least one valid time slot",
"previewAutoFind": "The system will automatically choose the next run time: {{value}}",
"weekdayMonday": "Mon",
"weekdayTuesday": "Tue",
"weekdayWednesday": "Wed",
"weekdayThursday": "Thu",
"weekdayFriday": "Fri",
"weekdaySaturday": "Sat",
"weekdaySunday": "Sun",
"modeOnce": "One-time",
"modeDaily": "Daily",
"modeWeekly": "Weekly",
"repeatUnitMinute": "Minute",
"repeatUnitHour": "Hour",
"repeatUnitDay": "Day",
"unknownWeekday": "Unknown",
"pickerEditTimes": "Edit time slots",
"pickerAnyHHmm": "You can enter any `HH:mm` value",
"pickerSelectedCount_one": "{{count}} selected",
"pickerSelectedCount_other": "{{count}} selected",
"pickerAdd": "Add",
"pickerSelectedTimes": "Selected times",
"pickerNone": "No time slots selected yet",
"pickerSuggestions": "Suggestions"
},
"remote": {
"title": "Remote Control",
"statusRunning": "Running. Available through Feishu.",
"statusStopped": "Stopped",
"startService": "Start service",
"stopService": "Stop service",
"activeSessions": "Active sessions",
"authorizedUsers": "Authorized users",
"pendingApprovals": "Pending approvals",
"pairingRequests": "Pairing requests awaiting approval",
"unknownUser": "Unknown user",
"pairingCode": "Pairing code",
"approve": "Approve",
"stepFeishu": "Feishu setup",
"stepConnection": "Connection",
"stepAdvanced": "Advanced",
"feishuTitle": "Feishu bot setup",
"feishuDesc": "Create an app in Feishu Open Platform, then fill in the credentials here.",
"dmPolicy": "DM authorization policy",
"policyPairing": "Pairing verification",
"policyPairingDesc": "Users must enter a pairing code.",
"policyAllowlist": "Allowlist",
"policyAllowlistDesc": "Only specific users are allowed.",
"policyOpen": "Open access",
"policyOpenDesc": "Anyone can use the bot.",
"openFeishu": "Open Feishu Open Platform",
"slackTitle": "Slack bot setup",
"slackDesc": "Create a Slack app, install it to your workspace, then fill in the credentials here.",
"slackBotToken": "Bot User OAuth Token",
"slackAppToken": "App-Level Token (for Socket Mode)",
"slackSocketMode": "Socket Mode",
"slackSocketModeDesc": "Connect outward to Slack. No public IP required.",
"openSlack": "Open Slack API",
"connectionTitle": "Connection mode",
"connectionDesc": "Choose how Feishu servers communicate with your computer.",
"longConnection": "Long connection mode",
"recommended": "Recommended",
"longConnectionDesc": "The app connects outward to Feishu servers. No public IP or ngrok required.",
"noPublicInternet": "No public internet exposure",
"outOfBox": "Works out of the box",
"stableReliable": "Stable and reliable",
"webhookMode": "Webhook mode",
"webhookDesc": "Feishu pushes messages to your server. A publicly reachable address is required.",
"localWebhookUrl": "Local webhook URL",
"useBuiltInNgrok": "Use built-in ngrok",
"ngrokHelpPrefix": "Get one for free from",
"ngrokHelpSuffix": "",
"tunnelConnected": "Tunnel connected",
"longConnectionHint": "In Feishu Open Platform, go to Events & Callbacks > Event Configuration and switch the subscription mode to long connection.",
"advancedTitle": "Advanced settings",
"advancedDesc": "Customize remote control behavior.",
"defaultWorkingDirectory": "Default working directory",
"defaultWorkingDirectoryPlaceholder": "For example: C:\\Users\\your-name\\Projects",
"defaultWorkingDirectoryHint": "This is the default directory for AI commands. You can also override it in a message with `[cwd:path]`.",
"gatewayPort": "Service port",
"autoApproveSafeTools": "Auto-approve safe tools",
"autoApproveSafeToolsDesc": "Automatically allow safe tools such as file reads and browser operations.",
"saveConfig": "Save configuration",
"authorizedUsersTitle": "Authorized users ({{count}})",
"revokeAccess": "Revoke access",
"quickStart": "Quick start",
"quickStartStep1": "Create an app in Feishu Open Platform and add the Bot capability.",
"quickStartStep2": "Copy the App ID and App Secret into the fields above.",
"quickStartStep3": "Enable these permissions in the permission settings:",
"quickStartStep4": "In Feishu's Event Configuration, choose the long connection event mode.",
"quickStartStep5Prefix": "Subscribe to the",
"quickStartStep5Suffix": "event.",
"quickStartStep6": "Publish the app, then click Start service.",
"started": "Remote control started",
"stopped": "Remote control stopped",
"actionFailed": "Operation failed",
"configSaved": "Configuration saved",
"saveFailed": "Failed to save configuration",
"pairingApproved": "Pairing approved",
"approveFailed": "Failed to approve pairing",
"reject": "Reject",
"pairingRejected": "Pairing rejected",
"rejectFailed": "Failed to reject pairing",
"pairingGuideTitle": "Pairing guide",
"pairingGuideStep1": "Open Feishu and find the bot",
"pairingGuideStep2": "Send any message to initiate pairing",
"pairingGuideStep3": "Approve the pairing request below",
"pairingGuideStep4": "Done — the user can now chat with the bot",
"waitingForPairing": "Waiting for users to initiate pairing...",
"expiresIn": "Expires in {{time}}",
"userRemoved": "User removed",
"revokeFailed": "Failed to remove user",
"copied": "Copied"
},
"time": {
"now": "now"
},
"permission": {
"permissionRequired": "Permission Required",
"tool": "Tool:",
"input": "Input:",
"warning": "This action may modify your system. Review carefully.",
"deny": "Deny",
"allow": "Allow",
"alwaysAllow": "Always allow this tool",
"useTool": "Use the {{toolName}} tool",
"toolDescriptions": {
"write": "Write to files on your system",
"edit": "Edit existing files on your system",
"bash": "Execute shell commands",
"webFetch": "Fetch data from the web",
"webSearch": "Search the web",
"read_file": "Read files in the workspace",
"write_file": "Write files in the workspace",
"edit_file": "Edit files in the workspace",
"list_directory": "List directory contents in the workspace",
"execute_command": "Execute shell commands in the workspace",
"glob": "Search files by pattern",
"grep": "Search file contents"
}
},
"sudo": {
"title": "Administrator Permission Required",
"description": "The following command requires administrator privileges:",
"passwordLabel": "Password",
"passwordPlaceholder": "Enter your password",
"cancel": "Cancel",
"execute": "Execute",
"warning": "Your password will only be used for this command and will not be stored."
},
"errorBoundary": {
"title": "Something went wrong",
"description": "An unexpected error occurred in the application. You can try to recover by clicking the button below.",
"details": "Error details",
"retry": "Try again"
}
}