pygpt-net 2.5.3__py3-none-any.whl → 2.5.5__py3-none-any.whl

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.
CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.5.5 (2025-02-02)
4
+
5
+ - Fix: system prompt apply.
6
+ - Added calendar live update on tab change.
7
+ - Added API Key monit at launch displayed only once.
8
+
9
+ ## 2.5.4 (2025-02-02)
10
+
11
+ - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
12
+ - Enabled tool calls in Chat with Audio mode.
13
+ - Added a check to verify if Ollama is running and if the model is available.
14
+
3
15
  ## 2.5.3 (2025-02-01)
4
16
 
5
17
  - Fix: Snap permission denied bug.
README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
4
4
 
5
- Release: **2.5.3** | build: **2025.02.01** | Python: **>=3.10, <3.13**
5
+ Release: **2.5.5** | build: **2025.02.02** | Python: **>=3.10, <3.13**
6
6
 
7
7
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
8
8
  >
@@ -284,6 +284,10 @@ To use microphone in Snap version you must connect the microphone with:
284
284
  sudo snap connect pygpt:audio-record :audio-record
285
285
  ```
286
286
 
287
+ **Access to microphone and audio in Windows version:**
288
+
289
+ If you have a problems with audio or microphone in the non-binary PIP/Python version on Windows, check to see if FFmpeg is installed. If it's not, install it and add it to the PATH. You can find a tutorial on how to do this here: https://phoenixnap.com/kb/ffmpeg-windows. The binary version already includes FFmpeg.
290
+
287
291
  **Windows and VC++ Redistributable**
288
292
 
289
293
  On Windows, the proper functioning requires the installation of the `VC++ Redistributable`, which can be found on the Microsoft website:
@@ -3960,6 +3964,18 @@ may consume additional tokens that are not displayed in the main window.
3960
3964
 
3961
3965
  ## Recent changes:
3962
3966
 
3967
+ **2.5.5 (2025-02-02)**
3968
+
3969
+ - Fix: system prompt apply.
3970
+ - Added calendar live update on tab change.
3971
+ - Added API Key monit at launch displayed only once.
3972
+
3973
+ **2.5.4 (2025-02-02)**
3974
+
3975
+ - Added new models: `o3-mini` and `gpt-4o-mini-audio-preview`.
3976
+ - Enabled tool calls in Chat with Audio mode.
3977
+ - Added a check to verify if Ollama is running and if the model is available.
3978
+
3963
3979
  **2.5.3 (2025-02-01)**
3964
3980
 
3965
3981
  - Fix: Snap permission denied bug.
pygpt_net/CHANGELOG.txt CHANGED
@@ -1,3 +1,15 @@
1
+ 2.5.5 (2025-02-02)
2
+
3
+ - Fix: system prompt apply.
4
+ - Added calendar live update on tab change.
5
+ - Added API Key monit at launch displayed only once.
6
+
7
+ 2.5.4 (2025-02-02)
8
+
9
+ - Added new models: o3-mini and gpt-4o-mini-audio-preview.
10
+ - Enabled tool calls in Chat with Audio mode.
11
+ - Added a check to verify if Ollama is running and if the model is available.
12
+
1
13
  2.5.3 (2025-02-01)
2
14
 
3
15
  - Fix: Snap permission denied bug.
pygpt_net/__init__.py CHANGED
@@ -6,15 +6,15 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.02.01 02:00:00 #
9
+ # Updated Date: 2025.02.02 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  __author__ = "Marcin Szczygliński"
13
13
  __copyright__ = "Copyright 2025, Marcin Szczygliński"
14
14
  __credits__ = ["Marcin Szczygliński"]
15
15
  __license__ = "MIT"
16
- __version__ = "2.5.3"
17
- __build__ = "2025.02.01"
16
+ __version__ = "2.5.5"
17
+ __build__ = "2025.02.02"
18
18
  __maintainer__ = "Marcin Szczygliński"
19
19
  __github__ = "https://github.com/szczyglis-dev/py-gpt"
20
20
  __report__ = "https://github.com/szczyglis-dev/py-gpt/issues"
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.02.01 11:00:00 #
9
+ # Updated Date: 2025.02.02 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from typing import Optional, Any, Dict
@@ -74,12 +74,22 @@ class Input:
74
74
  self.window.controller.agent.common.display_infinity_loop_confirm()
75
75
  return
76
76
 
77
- # TODO: check ollama status
78
- """
79
- if mode == MODE_LLAMA_INDEX:
80
- status = self.window.core.models.ollama.get_status()
81
- print("Ollama status: {}".format(status))
82
- """
77
+ # check ollama model
78
+ model = self.window.core.config.get('model')
79
+ if mode == MODE_LLAMA_INDEX and model is not None:
80
+ model_data = self.window.core.models.get(model)
81
+ if model_data is not None and model_data.is_ollama():
82
+ model_id = model_data.get_ollama_model()
83
+ status = self.window.core.models.ollama.check_model(model_id)
84
+ is_installed = status.get('is_installed', False)
85
+ is_model = status.get('is_model', False)
86
+ if not is_installed:
87
+ self.window.ui.dialogs.alert(trans("dialog.ollama.not_installed"))
88
+ return
89
+ if not is_model:
90
+ self.window.ui.dialogs.alert(
91
+ trans("dialog.ollama.model_not_found").replace("{model}", model_id))
92
+ return
83
93
 
84
94
  # listen for stop command
85
95
  if self.generating \
@@ -37,7 +37,10 @@ class Launcher:
37
37
  # show welcome API KEY dialog (disable for langchain mode)
38
38
  if not self.window.core.config.get('mode') in self.no_api_key_allowed and \
39
39
  (self.window.core.config.get('api_key') is None or self.window.core.config.get('api_key') == ''):
40
- self.show_api_monit()
40
+
41
+ if not self.window.core.config.get('api_key.monit.displayed', False):
42
+ self.show_api_monit()
43
+ self.window.core.config.set('api_key.monit.displayed', True)
41
44
 
42
45
  # check for updates
43
46
  if self.window.core.config.get('updater.check.launch'):
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.02.01 11:00:00 #
9
+ # Updated Date: 2025.02.02 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from typing import Optional
@@ -161,6 +161,7 @@ class Model:
161
161
  if "provider" in data[k].llama_index and data[k].llama_index["provider"] == "ollama":
162
162
  suffix = " [Ollama]"
163
163
  items[k] = data[k].name + suffix
164
+ items = dict(sorted(items.items(), key=lambda item: item[1])) # sort items by name
164
165
  self.window.ui.nodes["prompt.model"].set_keys(items)
165
166
 
166
167
  def update(self):
@@ -176,6 +176,9 @@ class Tabs:
176
176
  elif tab.type == Tab.TAB_TOOL_PAINTER:
177
177
  if self.window.core.config.get('vision.capture.enabled'):
178
178
  self.window.controller.camera.enable_capture()
179
+ elif tab.type == Tab.TAB_TOOL_CALENDAR:
180
+ self.window.controller.calendar.update()
181
+ self.window.controller.calendar.update_ctx_counters()
179
182
 
180
183
  if prev_tab != idx or prev_column != column_idx:
181
184
  self.window.dispatch(AppEvent(AppEvent.TAB_SELECTED)) # app event
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.02.01 11:00:00 #
9
+ # Updated Date: 2025.02.02 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import copy
@@ -587,7 +587,6 @@ class Command:
587
587
  MODE_LLAMA_INDEX,
588
588
  MODE_LANGCHAIN,
589
589
  MODE_COMPLETION,
590
- MODE_AUDIO,
591
590
  ]
592
591
  mode = self.window.core.config.get('mode')
593
592
  if mode in disabled_modes:
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.02.01 11:00:00 #
9
+ # Updated Date: 2025.02.02 02:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import requests
@@ -19,6 +19,7 @@ class Ollama:
19
19
  :param window: Window instance
20
20
  """
21
21
  self.window = window
22
+ self.available_models = []
22
23
 
23
24
  def get_status(self) -> dict:
24
25
  """
@@ -44,4 +45,39 @@ class Ollama:
44
45
  return {
45
46
  'status': False,
46
47
  'models': []
47
- }
48
+ }
49
+
50
+ def check_model(self, model: str) -> dict:
51
+ """
52
+ Check if model is available
53
+
54
+ :param model: model ID
55
+ :return: dict
56
+ """
57
+ result = {
58
+ 'is_installed': False,
59
+ 'is_model': False,
60
+ }
61
+ if model in self.available_models:
62
+ return {
63
+ 'is_installed': True,
64
+ 'is_model': True,
65
+ }
66
+ status = self.get_status()
67
+ if not status.get('status'):
68
+ return result
69
+ if "models" not in status:
70
+ return result
71
+ for item in status.get('models', []):
72
+ model_id = item.get('name').replace(":latest", "")
73
+ if model_id not in self.available_models:
74
+ self.available_models.append(model_id)
75
+ if model_id == model:
76
+ return {
77
+ 'is_installed': True,
78
+ 'is_model': True,
79
+ }
80
+ return {
81
+ 'is_installed': True,
82
+ 'is_model': False,
83
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.3",
4
- "app.version": "2.5.3",
5
- "updated_at": "2025-02-01T00:00:00"
3
+ "version": "2.5.5",
4
+ "app.version": "2.5.5",
5
+ "updated_at": "2025-02-02T00:00:00"
6
6
  },
7
7
  "access.audio.event.speech": false,
8
8
  "access.audio.event.speech.disabled": [],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.3",
4
- "app.version": "2.5.3",
5
- "updated_at": "2025-02-01T00:00:00"
3
+ "version": "2.5.5",
4
+ "app.version": "2.5.5",
5
+ "updated_at": "2025-02-02T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "claude-3-5-sonnet-20240620": {
@@ -1708,6 +1708,79 @@
1708
1708
  "default": false,
1709
1709
  "multimodal": []
1710
1710
  },
1711
+ "gpt-4o-mini-audio-preview": {
1712
+ "id": "gpt-4o-mini-audio-preview",
1713
+ "name": "gpt-4o-mini-audio-preview",
1714
+ "mode": [
1715
+ "audio"
1716
+ ],
1717
+ "langchain": {
1718
+ "provider": "openai",
1719
+ "mode": [
1720
+ "chat"
1721
+ ],
1722
+ "args": [
1723
+ {
1724
+ "name": "model_name",
1725
+ "value": "gpt-4o-mini-audio-preview",
1726
+ "type": "str"
1727
+ }
1728
+ ],
1729
+ "env": [
1730
+ {
1731
+ "name": "OPENAI_API_KEY",
1732
+ "value": "{api_key}"
1733
+ },
1734
+ {
1735
+ "name": "OPENAI_API_BASE",
1736
+ "value": "{api_endpoint}"
1737
+ },
1738
+ {
1739
+ "name": "AZURE_OPENAI_ENDPOINT",
1740
+ "value": "{api_azure_endpoint}"
1741
+ },
1742
+ {
1743
+ "name": "OPENAI_API_VERSION",
1744
+ "value": "{api_azure_version}"
1745
+ }
1746
+ ]
1747
+ },
1748
+ "llama_index": {
1749
+ "provider": "openai",
1750
+ "mode": [
1751
+ "chat"
1752
+ ],
1753
+ "args": [
1754
+ {
1755
+ "name": "model",
1756
+ "value": "gpt-4o-mini-audio-preview",
1757
+ "type": "str"
1758
+ }
1759
+ ],
1760
+ "env": [
1761
+ {
1762
+ "name": "OPENAI_API_KEY",
1763
+ "value": "{api_key}"
1764
+ },
1765
+ {
1766
+ "name": "OPENAI_API_BASE",
1767
+ "value": "{api_endpoint}"
1768
+ },
1769
+ {
1770
+ "name": "AZURE_OPENAI_ENDPOINT",
1771
+ "value": "{api_azure_endpoint}"
1772
+ },
1773
+ {
1774
+ "name": "OPENAI_API_VERSION",
1775
+ "value": "{api_azure_version}"
1776
+ }
1777
+ ]
1778
+ },
1779
+ "ctx": 128000,
1780
+ "tokens": 16384,
1781
+ "default": false,
1782
+ "multimodal": []
1783
+ },
1711
1784
  "gpt-4o-2024-11-20": {
1712
1785
  "id": "gpt-4o-2024-11-20",
1713
1786
  "name": "gpt-4o-2024-11-20",
@@ -2426,7 +2499,7 @@
2426
2499
  ]
2427
2500
  },
2428
2501
  "ctx": 128000,
2429
- "tokens": 4096,
2502
+ "tokens": 65536,
2430
2503
  "default": false
2431
2504
  },
2432
2505
  "o1-mini": {
@@ -2500,7 +2573,7 @@
2500
2573
  ]
2501
2574
  },
2502
2575
  "ctx": 128000,
2503
- "tokens": 4096,
2576
+ "tokens": 65536,
2504
2577
  "default": false
2505
2578
  },
2506
2579
  "o1": {
@@ -2575,10 +2648,244 @@
2575
2648
  ]
2576
2649
  },
2577
2650
  "ctx": 128000,
2578
- "tokens": 4096,
2651
+ "tokens": 100000,
2579
2652
  "default": false,
2580
2653
  "multimodal": []
2581
2654
  },
2655
+ "o3-mini-low": {
2656
+ "id": "o3-mini",
2657
+ "name": "o3-mini (low)",
2658
+ "mode": [
2659
+ "chat",
2660
+ "agent",
2661
+ "expert"
2662
+ ],
2663
+ "langchain": {
2664
+ "provider": "openai",
2665
+ "mode": [
2666
+ "chat"
2667
+ ],
2668
+ "args": [
2669
+ {
2670
+ "name": "model_name",
2671
+ "value": "o3-mini",
2672
+ "type": "str"
2673
+ }
2674
+ ],
2675
+ "env": [
2676
+ {
2677
+ "name": "OPENAI_API_KEY",
2678
+ "value": "{api_key}"
2679
+ },
2680
+ {
2681
+ "name": "OPENAI_API_BASE",
2682
+ "value": "{api_endpoint}"
2683
+ },
2684
+ {
2685
+ "name": "AZURE_OPENAI_ENDPOINT",
2686
+ "value": "{api_azure_endpoint}"
2687
+ },
2688
+ {
2689
+ "name": "OPENAI_API_VERSION",
2690
+ "value": "{api_azure_version}"
2691
+ }
2692
+ ]
2693
+ },
2694
+ "llama_index": {
2695
+ "provider": "openai",
2696
+ "mode": [
2697
+ "chat"
2698
+ ],
2699
+ "args": [
2700
+ {
2701
+ "name": "model",
2702
+ "value": "o3-mini",
2703
+ "type": "str"
2704
+ }
2705
+ ],
2706
+ "env": [
2707
+ {
2708
+ "name": "OPENAI_API_KEY",
2709
+ "value": "{api_key}"
2710
+ },
2711
+ {
2712
+ "name": "OPENAI_API_BASE",
2713
+ "value": "{api_endpoint}"
2714
+ },
2715
+ {
2716
+ "name": "AZURE_OPENAI_ENDPOINT",
2717
+ "value": "{api_azure_endpoint}"
2718
+ },
2719
+ {
2720
+ "name": "OPENAI_API_VERSION",
2721
+ "value": "{api_azure_version}"
2722
+ }
2723
+ ]
2724
+ },
2725
+ "ctx": 200000,
2726
+ "tokens": 100000,
2727
+ "default": false,
2728
+ "multimodal": [],
2729
+ "extra": {
2730
+ "reasoning_effort": "low"
2731
+ }
2732
+ },
2733
+ "o3-mini-medium": {
2734
+ "id": "o3-mini",
2735
+ "name": "o3-mini (medium)",
2736
+ "mode": [
2737
+ "chat",
2738
+ "agent",
2739
+ "expert"
2740
+ ],
2741
+ "langchain": {
2742
+ "provider": "openai",
2743
+ "mode": [
2744
+ "chat"
2745
+ ],
2746
+ "args": [
2747
+ {
2748
+ "name": "model_name",
2749
+ "value": "o3-mini",
2750
+ "type": "str"
2751
+ }
2752
+ ],
2753
+ "env": [
2754
+ {
2755
+ "name": "OPENAI_API_KEY",
2756
+ "value": "{api_key}"
2757
+ },
2758
+ {
2759
+ "name": "OPENAI_API_BASE",
2760
+ "value": "{api_endpoint}"
2761
+ },
2762
+ {
2763
+ "name": "AZURE_OPENAI_ENDPOINT",
2764
+ "value": "{api_azure_endpoint}"
2765
+ },
2766
+ {
2767
+ "name": "OPENAI_API_VERSION",
2768
+ "value": "{api_azure_version}"
2769
+ }
2770
+ ]
2771
+ },
2772
+ "llama_index": {
2773
+ "provider": "openai",
2774
+ "mode": [
2775
+ "chat"
2776
+ ],
2777
+ "args": [
2778
+ {
2779
+ "name": "model",
2780
+ "value": "o3-mini",
2781
+ "type": "str"
2782
+ }
2783
+ ],
2784
+ "env": [
2785
+ {
2786
+ "name": "OPENAI_API_KEY",
2787
+ "value": "{api_key}"
2788
+ },
2789
+ {
2790
+ "name": "OPENAI_API_BASE",
2791
+ "value": "{api_endpoint}"
2792
+ },
2793
+ {
2794
+ "name": "AZURE_OPENAI_ENDPOINT",
2795
+ "value": "{api_azure_endpoint}"
2796
+ },
2797
+ {
2798
+ "name": "OPENAI_API_VERSION",
2799
+ "value": "{api_azure_version}"
2800
+ }
2801
+ ]
2802
+ },
2803
+ "ctx": 200000,
2804
+ "tokens": 100000,
2805
+ "default": false,
2806
+ "multimodal": [],
2807
+ "extra": {
2808
+ "reasoning_effort": "medium"
2809
+ }
2810
+ },
2811
+ "o3-mini-high": {
2812
+ "id": "o3-mini",
2813
+ "name": "o3-mini (high)",
2814
+ "mode": [
2815
+ "chat",
2816
+ "agent",
2817
+ "expert"
2818
+ ],
2819
+ "langchain": {
2820
+ "provider": "openai",
2821
+ "mode": [
2822
+ "chat"
2823
+ ],
2824
+ "args": [
2825
+ {
2826
+ "name": "model_name",
2827
+ "value": "o3-mini",
2828
+ "type": "str"
2829
+ }
2830
+ ],
2831
+ "env": [
2832
+ {
2833
+ "name": "OPENAI_API_KEY",
2834
+ "value": "{api_key}"
2835
+ },
2836
+ {
2837
+ "name": "OPENAI_API_BASE",
2838
+ "value": "{api_endpoint}"
2839
+ },
2840
+ {
2841
+ "name": "AZURE_OPENAI_ENDPOINT",
2842
+ "value": "{api_azure_endpoint}"
2843
+ },
2844
+ {
2845
+ "name": "OPENAI_API_VERSION",
2846
+ "value": "{api_azure_version}"
2847
+ }
2848
+ ]
2849
+ },
2850
+ "llama_index": {
2851
+ "provider": "openai",
2852
+ "mode": [
2853
+ "chat"
2854
+ ],
2855
+ "args": [
2856
+ {
2857
+ "name": "model",
2858
+ "value": "o3-mini",
2859
+ "type": "str"
2860
+ }
2861
+ ],
2862
+ "env": [
2863
+ {
2864
+ "name": "OPENAI_API_KEY",
2865
+ "value": "{api_key}"
2866
+ },
2867
+ {
2868
+ "name": "OPENAI_API_BASE",
2869
+ "value": "{api_endpoint}"
2870
+ },
2871
+ {
2872
+ "name": "AZURE_OPENAI_ENDPOINT",
2873
+ "value": "{api_azure_endpoint}"
2874
+ },
2875
+ {
2876
+ "name": "OPENAI_API_VERSION",
2877
+ "value": "{api_azure_version}"
2878
+ }
2879
+ ]
2880
+ },
2881
+ "ctx": 200000,
2882
+ "tokens": 100000,
2883
+ "default": false,
2884
+ "multimodal": [],
2885
+ "extra": {
2886
+ "reasoning_effort": "high"
2887
+ }
2888
+ },
2582
2889
  "bielik-11b-v2.2-instruct:Q4_K_M": {
2583
2890
  "id": "SpeakLeash/bielik-11b-v2.2-instruct:Q4_K_M",
2584
2891
  "name": "bielik-11b-v2.2",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.5.3",
4
- "app.version": "2.5.3",
5
- "updated_at": "2025-02-01T00:00:00"
3
+ "version": "2.5.5",
4
+ "app.version": "2.5.5",
5
+ "updated_at": "2025-02-02T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "chat": {
@@ -293,6 +293,8 @@ dialog.license.label = Durch die Verwendung dieser Software akzeptieren Sie die
293
293
  dialog.license.title = Lizenz
294
294
  dialog.logger.btn.clear = Löschen
295
295
  dialog.logger.title = Protokollierung
296
+ dialog.ollama.model_not_found = Das angeforderte Modell ({model}) ist in deinem Ollama nicht verfügbar.\nBitte lade das Modell herunter, indem du den Befehl ausführst:\nollama pull {model}
297
+ dialog.ollama.not_installed = Ollama ist nicht installiert oder läuft nicht.\nBitte installiere zuerst Ollama, indem du die folgende Seite besuchst:\nhttps://ollama.com/download
296
298
  dialog.plugin_settings = Plugin-Einstellungen
297
299
  dialog.plugin.settings.btn.defaults.app = Standardwerte laden
298
300
  dialog.plugin.settings.btn.defaults.user = Änderungen rückgängig machen
@@ -778,8 +780,8 @@ settings.audio.input.rate.desc = Abtastrate, Standard: 44100
778
780
  settings.audio.input.stop_interval = Intervall für kontinuierliche automatische Transkription
779
781
  settings.audio.input.stop_interval.desc = Intervall in Sekunden für automatisches Transkribieren eines Audioabschnitts, Standard: 10
780
782
  settings.audio.input.timeout = Aufnahme-Zeitüberschreitung
781
- settings.audio.input.timeout.desc = Zeitüberschreitung (Sekunden) für automatische Stop-Aufzeichnung, 0 zum Deaktivieren, Standard: 120
782
783
  settings.audio.input.timeout.continuous = Zeitüberschreitung im Dauerbetrieb aktivieren
784
+ settings.audio.input.timeout.desc = Zeitüberschreitung (Sekunden) für automatische Stop-Aufzeichnung, 0 zum Deaktivieren, Standard: 120
783
785
  settings.check_updates = Beim Start nach Updates suchen
784
786
  settings.check_updates.bg = Im Hintergrund nach Updates suchen
785
787
  settings.cmd.field.desc = Aktivieren Sie das `{cmd}`-Werkzeug.