pygpt-net 2.4.47__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.
Files changed (2180) hide show
  1. CHANGELOG.md +2137 -0
  2. README.md +4088 -0
  3. icon.png +0 -0
  4. pygpt_net/CHANGELOG.txt +2137 -0
  5. pygpt_net/LICENSE +11 -0
  6. pygpt_net/__init__.py +26 -0
  7. pygpt_net/app.py +394 -0
  8. pygpt_net/config.py +548 -0
  9. pygpt_net/container.py +116 -0
  10. pygpt_net/controller/__init__.py +177 -0
  11. pygpt_net/controller/access/__init__.py +81 -0
  12. pygpt_net/controller/access/control.py +410 -0
  13. pygpt_net/controller/access/voice.py +432 -0
  14. pygpt_net/controller/agent/__init__.py +43 -0
  15. pygpt_net/controller/agent/common.py +126 -0
  16. pygpt_net/controller/agent/experts.py +165 -0
  17. pygpt_net/controller/agent/legacy.py +398 -0
  18. pygpt_net/controller/agent/llama.py +154 -0
  19. pygpt_net/controller/assistant/__init__.py +302 -0
  20. pygpt_net/controller/assistant/batch.py +576 -0
  21. pygpt_net/controller/assistant/editor.py +455 -0
  22. pygpt_net/controller/assistant/files.py +437 -0
  23. pygpt_net/controller/assistant/store.py +480 -0
  24. pygpt_net/controller/assistant/threads.py +622 -0
  25. pygpt_net/controller/attachment.py +665 -0
  26. pygpt_net/controller/audio/__init__.py +349 -0
  27. pygpt_net/controller/calendar/__init__.py +152 -0
  28. pygpt_net/controller/calendar/note.py +382 -0
  29. pygpt_net/controller/camera.py +513 -0
  30. pygpt_net/controller/chat/__init__.py +104 -0
  31. pygpt_net/controller/chat/attachment.py +621 -0
  32. pygpt_net/controller/chat/audio.py +99 -0
  33. pygpt_net/controller/chat/command.py +90 -0
  34. pygpt_net/controller/chat/common.py +415 -0
  35. pygpt_net/controller/chat/files.py +81 -0
  36. pygpt_net/controller/chat/image.py +249 -0
  37. pygpt_net/controller/chat/input.py +277 -0
  38. pygpt_net/controller/chat/output.py +255 -0
  39. pygpt_net/controller/chat/render.py +621 -0
  40. pygpt_net/controller/chat/response.py +278 -0
  41. pygpt_net/controller/chat/stream.py +186 -0
  42. pygpt_net/controller/chat/text.py +267 -0
  43. pygpt_net/controller/chat/vision.py +88 -0
  44. pygpt_net/controller/command.py +162 -0
  45. pygpt_net/controller/config/__init__.py +152 -0
  46. pygpt_net/controller/config/field/__init__.py +0 -0
  47. pygpt_net/controller/config/field/checkbox.py +86 -0
  48. pygpt_net/controller/config/field/cmd.py +144 -0
  49. pygpt_net/controller/config/field/combo.py +110 -0
  50. pygpt_net/controller/config/field/dictionary.py +221 -0
  51. pygpt_net/controller/config/field/input.py +119 -0
  52. pygpt_net/controller/config/field/slider.py +147 -0
  53. pygpt_net/controller/config/field/textarea.py +84 -0
  54. pygpt_net/controller/config/placeholder.py +387 -0
  55. pygpt_net/controller/ctx/__init__.py +1110 -0
  56. pygpt_net/controller/ctx/common.py +189 -0
  57. pygpt_net/controller/ctx/extra.py +234 -0
  58. pygpt_net/controller/ctx/summarizer.py +108 -0
  59. pygpt_net/controller/debug/__init__.py +262 -0
  60. pygpt_net/controller/dialogs/__init__.py +32 -0
  61. pygpt_net/controller/dialogs/confirm.py +401 -0
  62. pygpt_net/controller/dialogs/debug.py +189 -0
  63. pygpt_net/controller/dialogs/info.py +102 -0
  64. pygpt_net/controller/files.py +491 -0
  65. pygpt_net/controller/finder.py +175 -0
  66. pygpt_net/controller/idx/__init__.py +349 -0
  67. pygpt_net/controller/idx/common.py +66 -0
  68. pygpt_net/controller/idx/indexer.py +702 -0
  69. pygpt_net/controller/idx/settings.py +185 -0
  70. pygpt_net/controller/kernel/__init__.py +370 -0
  71. pygpt_net/controller/kernel/reply.py +171 -0
  72. pygpt_net/controller/kernel/stack.py +137 -0
  73. pygpt_net/controller/lang/__init__.py +100 -0
  74. pygpt_net/controller/lang/custom.py +117 -0
  75. pygpt_net/controller/lang/mapping.py +485 -0
  76. pygpt_net/controller/lang/plugins.py +95 -0
  77. pygpt_net/controller/lang/settings.py +64 -0
  78. pygpt_net/controller/launcher.py +57 -0
  79. pygpt_net/controller/layout.py +290 -0
  80. pygpt_net/controller/mode.py +220 -0
  81. pygpt_net/controller/model/__init__.py +174 -0
  82. pygpt_net/controller/model/editor.py +420 -0
  83. pygpt_net/controller/notepad.py +288 -0
  84. pygpt_net/controller/painter/__init__.py +91 -0
  85. pygpt_net/controller/painter/capture.py +197 -0
  86. pygpt_net/controller/painter/common.py +195 -0
  87. pygpt_net/controller/plugins/__init__.py +485 -0
  88. pygpt_net/controller/plugins/presets.py +407 -0
  89. pygpt_net/controller/plugins/settings.py +178 -0
  90. pygpt_net/controller/presets/__init__.py +620 -0
  91. pygpt_net/controller/presets/editor.py +590 -0
  92. pygpt_net/controller/presets/experts.py +156 -0
  93. pygpt_net/controller/settings/__init__.py +240 -0
  94. pygpt_net/controller/settings/editor.py +446 -0
  95. pygpt_net/controller/settings/profile.py +569 -0
  96. pygpt_net/controller/settings/workdir.py +215 -0
  97. pygpt_net/controller/theme/__init__.py +228 -0
  98. pygpt_net/controller/theme/common.py +180 -0
  99. pygpt_net/controller/theme/markdown.py +188 -0
  100. pygpt_net/controller/theme/menu.py +122 -0
  101. pygpt_net/controller/theme/nodes.py +138 -0
  102. pygpt_net/controller/tools/__init__.py +91 -0
  103. pygpt_net/controller/ui/__init__.py +177 -0
  104. pygpt_net/controller/ui/mode.py +256 -0
  105. pygpt_net/controller/ui/tabs.py +687 -0
  106. pygpt_net/controller/ui/vision.py +71 -0
  107. pygpt_net/core/__init__.py +0 -0
  108. pygpt_net/core/access/__init__.py +30 -0
  109. pygpt_net/core/access/actions.py +131 -0
  110. pygpt_net/core/access/helpers.py +234 -0
  111. pygpt_net/core/access/shortcuts.py +104 -0
  112. pygpt_net/core/access/voice.py +277 -0
  113. pygpt_net/core/agents/__init__.py +32 -0
  114. pygpt_net/core/agents/legacy.py +66 -0
  115. pygpt_net/core/agents/memory.py +80 -0
  116. pygpt_net/core/agents/observer/__init__.py +17 -0
  117. pygpt_net/core/agents/observer/evaluation.py +163 -0
  118. pygpt_net/core/agents/provider.py +68 -0
  119. pygpt_net/core/agents/runner.py +702 -0
  120. pygpt_net/core/agents/tools.py +175 -0
  121. pygpt_net/core/assistants/__init__.py +168 -0
  122. pygpt_net/core/assistants/files.py +359 -0
  123. pygpt_net/core/assistants/store.py +300 -0
  124. pygpt_net/core/attachments/__init__.py +478 -0
  125. pygpt_net/core/attachments/context.py +752 -0
  126. pygpt_net/core/attachments/worker.py +40 -0
  127. pygpt_net/core/audio/__init__.py +165 -0
  128. pygpt_net/core/audio/context.py +39 -0
  129. pygpt_net/core/audio/whisper.py +37 -0
  130. pygpt_net/core/bridge/__init__.py +266 -0
  131. pygpt_net/core/bridge/context.py +113 -0
  132. pygpt_net/core/bridge/worker.py +157 -0
  133. pygpt_net/core/calendar/__init__.py +276 -0
  134. pygpt_net/core/camera.py +120 -0
  135. pygpt_net/core/chain/__init__.py +117 -0
  136. pygpt_net/core/chain/chat.py +172 -0
  137. pygpt_net/core/chain/completion.py +178 -0
  138. pygpt_net/core/command.py +591 -0
  139. pygpt_net/core/ctx/__init__.py +1611 -0
  140. pygpt_net/core/ctx/bag.py +53 -0
  141. pygpt_net/core/ctx/container.py +142 -0
  142. pygpt_net/core/ctx/idx.py +271 -0
  143. pygpt_net/core/ctx/output.py +247 -0
  144. pygpt_net/core/ctx/reply.py +63 -0
  145. pygpt_net/core/db/__init__.py +505 -0
  146. pygpt_net/core/db/viewer.py +258 -0
  147. pygpt_net/core/debug/__init__.py +329 -0
  148. pygpt_net/core/debug/agent.py +37 -0
  149. pygpt_net/core/debug/assistants.py +65 -0
  150. pygpt_net/core/debug/attachments.py +45 -0
  151. pygpt_net/core/debug/config.py +54 -0
  152. pygpt_net/core/debug/context.py +106 -0
  153. pygpt_net/core/debug/db.py +28 -0
  154. pygpt_net/core/debug/events.py +58 -0
  155. pygpt_net/core/debug/indexes.py +114 -0
  156. pygpt_net/core/debug/kernel.py +30 -0
  157. pygpt_net/core/debug/models.py +56 -0
  158. pygpt_net/core/debug/plugins.py +38 -0
  159. pygpt_net/core/debug/presets.py +74 -0
  160. pygpt_net/core/debug/tabs.py +49 -0
  161. pygpt_net/core/debug/ui.py +74 -0
  162. pygpt_net/core/dispatcher.py +150 -0
  163. pygpt_net/core/docker/__init__.py +410 -0
  164. pygpt_net/core/docker/builder.py +87 -0
  165. pygpt_net/core/events/__init__.py +17 -0
  166. pygpt_net/core/events/app.py +54 -0
  167. pygpt_net/core/events/base.py +73 -0
  168. pygpt_net/core/events/control.py +88 -0
  169. pygpt_net/core/events/event.py +120 -0
  170. pygpt_net/core/events/kernel.py +67 -0
  171. pygpt_net/core/events/render.py +71 -0
  172. pygpt_net/core/experts/__init__.py +501 -0
  173. pygpt_net/core/filesystem/__init__.py +479 -0
  174. pygpt_net/core/filesystem/actions.py +125 -0
  175. pygpt_net/core/filesystem/editor.py +133 -0
  176. pygpt_net/core/filesystem/packer.py +87 -0
  177. pygpt_net/core/filesystem/types.py +109 -0
  178. pygpt_net/core/filesystem/url.py +85 -0
  179. pygpt_net/core/history.py +96 -0
  180. pygpt_net/core/idx/__init__.py +591 -0
  181. pygpt_net/core/idx/chat.py +708 -0
  182. pygpt_net/core/idx/context.py +103 -0
  183. pygpt_net/core/idx/indexing.py +1209 -0
  184. pygpt_net/core/idx/llm.py +144 -0
  185. pygpt_net/core/idx/metadata.py +136 -0
  186. pygpt_net/core/idx/types/__init__.py +0 -0
  187. pygpt_net/core/idx/types/ctx.py +139 -0
  188. pygpt_net/core/idx/types/external.py +198 -0
  189. pygpt_net/core/idx/types/files.py +164 -0
  190. pygpt_net/core/idx/ui/__init__.py +22 -0
  191. pygpt_net/core/idx/ui/loaders.py +217 -0
  192. pygpt_net/core/idx/worker.py +117 -0
  193. pygpt_net/core/image.py +128 -0
  194. pygpt_net/core/info.py +27 -0
  195. pygpt_net/core/installer.py +70 -0
  196. pygpt_net/core/llm/__init__.py +50 -0
  197. pygpt_net/core/locale.py +180 -0
  198. pygpt_net/core/models.py +402 -0
  199. pygpt_net/core/modes.py +128 -0
  200. pygpt_net/core/notepad.py +164 -0
  201. pygpt_net/core/platforms.py +153 -0
  202. pygpt_net/core/plugins.py +498 -0
  203. pygpt_net/core/presets.py +524 -0
  204. pygpt_net/core/profile.py +280 -0
  205. pygpt_net/core/prompt/__init__.py +156 -0
  206. pygpt_net/core/prompt/custom.py +307 -0
  207. pygpt_net/core/prompt/template.py +107 -0
  208. pygpt_net/core/render/__init__.py +10 -0
  209. pygpt_net/core/render/base.py +416 -0
  210. pygpt_net/core/render/markdown/__init__.py +10 -0
  211. pygpt_net/core/render/markdown/body.py +210 -0
  212. pygpt_net/core/render/markdown/helpers.py +91 -0
  213. pygpt_net/core/render/markdown/parser.py +172 -0
  214. pygpt_net/core/render/markdown/pid.py +23 -0
  215. pygpt_net/core/render/markdown/renderer.py +649 -0
  216. pygpt_net/core/render/plain/__init__.py +10 -0
  217. pygpt_net/core/render/plain/body.py +130 -0
  218. pygpt_net/core/render/plain/helpers.py +60 -0
  219. pygpt_net/core/render/plain/pid.py +22 -0
  220. pygpt_net/core/render/plain/renderer.py +536 -0
  221. pygpt_net/core/render/web/__init__.py +10 -0
  222. pygpt_net/core/render/web/body.py +800 -0
  223. pygpt_net/core/render/web/helpers.py +102 -0
  224. pygpt_net/core/render/web/parser.py +297 -0
  225. pygpt_net/core/render/web/pid.py +36 -0
  226. pygpt_net/core/render/web/renderer.py +1356 -0
  227. pygpt_net/core/render/web/syntax_highlight.py +58 -0
  228. pygpt_net/core/settings.py +210 -0
  229. pygpt_net/core/tabs/__init__.py +822 -0
  230. pygpt_net/core/tabs/tab.py +81 -0
  231. pygpt_net/core/text/__init__.py +0 -0
  232. pygpt_net/core/text/finder.py +214 -0
  233. pygpt_net/core/text/utils.py +78 -0
  234. pygpt_net/core/text/web_finder.py +213 -0
  235. pygpt_net/core/tokens.py +460 -0
  236. pygpt_net/core/types/__init__.py +12 -0
  237. pygpt_net/core/types/mode.py +22 -0
  238. pygpt_net/core/updater/__init__.py +484 -0
  239. pygpt_net/core/vision/__init__.py +22 -0
  240. pygpt_net/core/vision/analyzer.py +158 -0
  241. pygpt_net/core/web/__init__.py +105 -0
  242. pygpt_net/core/web/helpers.py +237 -0
  243. pygpt_net/core/worker.py +29 -0
  244. pygpt_net/css.qrc +5 -0
  245. pygpt_net/css_rc.py +251 -0
  246. pygpt_net/data/audio/click_off.mp3 +0 -0
  247. pygpt_net/data/audio/click_on.mp3 +0 -0
  248. pygpt_net/data/audio/ok.mp3 +0 -0
  249. pygpt_net/data/config/config.json +373 -0
  250. pygpt_net/data/config/models.json +2038 -0
  251. pygpt_net/data/config/modes.json +75 -0
  252. pygpt_net/data/config/presets/agent_openai.json +33 -0
  253. pygpt_net/data/config/presets/agent_openai_assistant.json +33 -0
  254. pygpt_net/data/config/presets/agent_planner.json +33 -0
  255. pygpt_net/data/config/presets/agent_react.json +33 -0
  256. pygpt_net/data/config/presets/batman_and_joker.json +23 -0
  257. pygpt_net/data/config/presets/current.agent.json +23 -0
  258. pygpt_net/data/config/presets/current.agent_llama.json +32 -0
  259. pygpt_net/data/config/presets/current.assistant.json +23 -0
  260. pygpt_net/data/config/presets/current.audio.json +34 -0
  261. pygpt_net/data/config/presets/current.chat.json +23 -0
  262. pygpt_net/data/config/presets/current.completion.json +23 -0
  263. pygpt_net/data/config/presets/current.expert.json +23 -0
  264. pygpt_net/data/config/presets/current.img.json +23 -0
  265. pygpt_net/data/config/presets/current.langchain.json +23 -0
  266. pygpt_net/data/config/presets/current.llama_index.json +23 -0
  267. pygpt_net/data/config/presets/current.vision.json +23 -0
  268. pygpt_net/data/config/presets/dalle_white_cat.json +23 -0
  269. pygpt_net/data/config/presets/joke_agent.json +25 -0
  270. pygpt_net/data/config/presets/joke_expert.json +29 -0
  271. pygpt_net/data/config/settings.json +1824 -0
  272. pygpt_net/data/config/settings_section.json +47 -0
  273. pygpt_net/data/css/fix_windows.css +21 -0
  274. pygpt_net/data/css/markdown.css +66 -0
  275. pygpt_net/data/css/markdown.dark.css +44 -0
  276. pygpt_net/data/css/markdown.light.css +55 -0
  277. pygpt_net/data/css/style.css +28 -0
  278. pygpt_net/data/css/style.dark.css +51 -0
  279. pygpt_net/data/css/style.light.css +102 -0
  280. pygpt_net/data/css/web-blocks.css +339 -0
  281. pygpt_net/data/css/web-blocks.dark.css +74 -0
  282. pygpt_net/data/css/web-blocks.light.css +82 -0
  283. pygpt_net/data/css/web-chatgpt.css +350 -0
  284. pygpt_net/data/css/web-chatgpt.dark.css +64 -0
  285. pygpt_net/data/css/web-chatgpt.light.css +75 -0
  286. pygpt_net/data/css/web-chatgpt_wide.css +350 -0
  287. pygpt_net/data/css/web-chatgpt_wide.dark.css +64 -0
  288. pygpt_net/data/css/web-chatgpt_wide.light.css +75 -0
  289. pygpt_net/data/fonts/Lato/Lato-Black.ttf +0 -0
  290. pygpt_net/data/fonts/Lato/Lato-BlackItalic.ttf +0 -0
  291. pygpt_net/data/fonts/Lato/Lato-Bold.ttf +0 -0
  292. pygpt_net/data/fonts/Lato/Lato-BoldItalic.ttf +0 -0
  293. pygpt_net/data/fonts/Lato/Lato-Italic.ttf +0 -0
  294. pygpt_net/data/fonts/Lato/Lato-Light.ttf +0 -0
  295. pygpt_net/data/fonts/Lato/Lato-LightItalic.ttf +0 -0
  296. pygpt_net/data/fonts/Lato/Lato-Regular.ttf +0 -0
  297. pygpt_net/data/fonts/Lato/Lato-Thin.ttf +0 -0
  298. pygpt_net/data/fonts/Lato/Lato-ThinItalic.ttf +0 -0
  299. pygpt_net/data/fonts/Lato/OFL.txt +93 -0
  300. pygpt_net/data/fonts/MonaspaceArgon/MonaspaceArgon-Bold.otf +0 -0
  301. pygpt_net/data/fonts/MonaspaceArgon/MonaspaceArgon-BoldItalic.otf +0 -0
  302. pygpt_net/data/fonts/MonaspaceArgon/MonaspaceArgon-Italic.otf +0 -0
  303. pygpt_net/data/fonts/MonaspaceArgon/MonaspaceArgon-Regular.otf +0 -0
  304. pygpt_net/data/fonts/MonaspaceKrypton/MonaspaceKrypton-Bold.otf +0 -0
  305. pygpt_net/data/fonts/MonaspaceKrypton/MonaspaceKrypton-BoldItalic.otf +0 -0
  306. pygpt_net/data/fonts/MonaspaceKrypton/MonaspaceKrypton-Italic.otf +0 -0
  307. pygpt_net/data/fonts/MonaspaceKrypton/MonaspaceKrypton-Regular.otf +0 -0
  308. pygpt_net/data/fonts/MonaspaceNeon/MonaspaceNeon-Bold.otf +0 -0
  309. pygpt_net/data/fonts/MonaspaceNeon/MonaspaceNeon-BoldItalic.otf +0 -0
  310. pygpt_net/data/fonts/MonaspaceNeon/MonaspaceNeon-Italic.otf +0 -0
  311. pygpt_net/data/fonts/MonaspaceNeon/MonaspaceNeon-Regular.otf +0 -0
  312. pygpt_net/data/fonts/MonaspaceRadon/MonaspaceRadon-Bold.otf +0 -0
  313. pygpt_net/data/fonts/MonaspaceRadon/MonaspaceRadon-BoldItalic.otf +0 -0
  314. pygpt_net/data/fonts/MonaspaceRadon/MonaspaceRadon-Italic.otf +0 -0
  315. pygpt_net/data/fonts/MonaspaceRadon/MonaspaceRadon-Regular.otf +0 -0
  316. pygpt_net/data/fonts/MonaspaceXenon/MonaspaceXenon-Bold.otf +0 -0
  317. pygpt_net/data/fonts/MonaspaceXenon/MonaspaceXenon-BoldItalic.otf +0 -0
  318. pygpt_net/data/fonts/MonaspaceXenon/MonaspaceXenon-Italic.otf +0 -0
  319. pygpt_net/data/fonts/MonaspaceXenon/MonaspaceXenon-Regular.otf +0 -0
  320. pygpt_net/data/fonts/SpaceMono/OFL.txt +93 -0
  321. pygpt_net/data/fonts/SpaceMono/SpaceMono-Bold.ttf +0 -0
  322. pygpt_net/data/fonts/SpaceMono/SpaceMono-BoldItalic.ttf +0 -0
  323. pygpt_net/data/fonts/SpaceMono/SpaceMono-Italic.ttf +0 -0
  324. pygpt_net/data/fonts/SpaceMono/SpaceMono-Regular.ttf +0 -0
  325. pygpt_net/data/icon.ico +0 -0
  326. pygpt_net/data/icon.png +0 -0
  327. pygpt_net/data/icon_tray_busy.ico +0 -0
  328. pygpt_net/data/icon_tray_error.ico +0 -0
  329. pygpt_net/data/icon_tray_idle.ico +0 -0
  330. pygpt_net/data/icons/abc.svg +1 -0
  331. pygpt_net/data/icons/accessibility.svg +1 -0
  332. pygpt_net/data/icons/add.svg +1 -0
  333. pygpt_net/data/icons/add_circle.svg +1 -0
  334. pygpt_net/data/icons/add_folder.svg +1 -0
  335. pygpt_net/data/icons/add_library.svg +1 -0
  336. pygpt_net/data/icons/alarm.svg +1 -0
  337. pygpt_net/data/icons/apps.svg +1 -0
  338. pygpt_net/data/icons/asterisk.svg +1 -0
  339. pygpt_net/data/icons/attachment.svg +1 -0
  340. pygpt_net/data/icons/attachments.svg +1 -0
  341. pygpt_net/data/icons/back.svg +1 -0
  342. pygpt_net/data/icons/backspace.svg +1 -0
  343. pygpt_net/data/icons/block.svg +1 -0
  344. pygpt_net/data/icons/bookmark.svg +1 -0
  345. pygpt_net/data/icons/brush.svg +1 -0
  346. pygpt_net/data/icons/build.svg +1 -0
  347. pygpt_net/data/icons/calendar.svg +1 -0
  348. pygpt_net/data/icons/camera.svg +1 -0
  349. pygpt_net/data/icons/chat/audio.png +0 -0
  350. pygpt_net/data/icons/chat/copy.png +0 -0
  351. pygpt_net/data/icons/chat/delete.png +0 -0
  352. pygpt_net/data/icons/chat/edit.png +0 -0
  353. pygpt_net/data/icons/chat/join.png +0 -0
  354. pygpt_net/data/icons/chat/reload.png +0 -0
  355. pygpt_net/data/icons/chat.svg +1 -0
  356. pygpt_net/data/icons/check.svg +1 -0
  357. pygpt_net/data/icons/check_circle.svg +1 -0
  358. pygpt_net/data/icons/checklist.svg +1 -0
  359. pygpt_net/data/icons/circle.svg +1 -0
  360. pygpt_net/data/icons/clear.svg +1 -0
  361. pygpt_net/data/icons/clock.svg +1 -0
  362. pygpt_net/data/icons/close.svg +1 -0
  363. pygpt_net/data/icons/close_circle.svg +1 -0
  364. pygpt_net/data/icons/code.svg +1 -0
  365. pygpt_net/data/icons/collapse.svg +3 -0
  366. pygpt_net/data/icons/computer.svg +1 -0
  367. pygpt_net/data/icons/copy.svg +1 -0
  368. pygpt_net/data/icons/crop.svg +1 -0
  369. pygpt_net/data/icons/cursor.png +0 -0
  370. pygpt_net/data/icons/cut.svg +1 -0
  371. pygpt_net/data/icons/db.svg +1 -0
  372. pygpt_net/data/icons/delete.svg +1 -0
  373. pygpt_net/data/icons/done.svg +1 -0
  374. pygpt_net/data/icons/download.svg +1 -0
  375. pygpt_net/data/icons/draft.svg +1 -0
  376. pygpt_net/data/icons/drag.svg +1 -0
  377. pygpt_net/data/icons/edit.svg +1 -0
  378. pygpt_net/data/icons/emergency.svg +1 -0
  379. pygpt_net/data/icons/equalizer.svg +1 -0
  380. pygpt_net/data/icons/error.svg +1 -0
  381. pygpt_net/data/icons/event_available.svg +1 -0
  382. pygpt_net/data/icons/expand.svg +1 -0
  383. pygpt_net/data/icons/fast_forward.svg +1 -0
  384. pygpt_net/data/icons/fast_rewind.svg +1 -0
  385. pygpt_net/data/icons/favorite.svg +1 -0
  386. pygpt_net/data/icons/folder.svg +1 -0
  387. pygpt_net/data/icons/folder_filled.svg +1 -0
  388. pygpt_net/data/icons/forward.svg +1 -0
  389. pygpt_net/data/icons/full.svg +1 -0
  390. pygpt_net/data/icons/fullscreen.svg +1 -0
  391. pygpt_net/data/icons/grid.svg +1 -0
  392. pygpt_net/data/icons/hearing.svg +1 -0
  393. pygpt_net/data/icons/help.svg +1 -0
  394. pygpt_net/data/icons/history.svg +1 -0
  395. pygpt_net/data/icons/home.svg +1 -0
  396. pygpt_net/data/icons/home_filled.svg +1 -0
  397. pygpt_net/data/icons/image.svg +1 -0
  398. pygpt_net/data/icons/info.svg +1 -0
  399. pygpt_net/data/icons/input.svg +1 -0
  400. pygpt_net/data/icons/key.svg +1 -0
  401. pygpt_net/data/icons/keyboard.svg +1 -0
  402. pygpt_net/data/icons/language.svg +1 -0
  403. pygpt_net/data/icons/list.svg +1 -0
  404. pygpt_net/data/icons/lock.svg +1 -0
  405. pygpt_net/data/icons/logout.svg +1 -0
  406. pygpt_net/data/icons/map.svg +1 -0
  407. pygpt_net/data/icons/memory.svg +1 -0
  408. pygpt_net/data/icons/menu.svg +1 -0
  409. pygpt_net/data/icons/mic.svg +1 -0
  410. pygpt_net/data/icons/mic_off.svg +1 -0
  411. pygpt_net/data/icons/more_horizontal.svg +1 -0
  412. pygpt_net/data/icons/mute.svg +1 -0
  413. pygpt_net/data/icons/open_tab.svg +1 -0
  414. pygpt_net/data/icons/palette.svg +1 -0
  415. pygpt_net/data/icons/paste.svg +1 -0
  416. pygpt_net/data/icons/pause.svg +1 -0
  417. pygpt_net/data/icons/pause_circle.svg +1 -0
  418. pygpt_net/data/icons/photos.svg +1 -0
  419. pygpt_net/data/icons/pin.svg +1 -0
  420. pygpt_net/data/icons/play.svg +1 -0
  421. pygpt_net/data/icons/play_pause.svg +1 -0
  422. pygpt_net/data/icons/playlist_add.svg +1 -0
  423. pygpt_net/data/icons/power.svg +1 -0
  424. pygpt_net/data/icons/print.svg +1 -0
  425. pygpt_net/data/icons/public_filled.svg +1 -0
  426. pygpt_net/data/icons/redo.svg +1 -0
  427. pygpt_net/data/icons/reload.svg +1 -0
  428. pygpt_net/data/icons/repeat.svg +1 -0
  429. pygpt_net/data/icons/replay.svg +1 -0
  430. pygpt_net/data/icons/resize.svg +1 -0
  431. pygpt_net/data/icons/robot.svg +1 -0
  432. pygpt_net/data/icons/router.svg +1 -0
  433. pygpt_net/data/icons/save.svg +1 -0
  434. pygpt_net/data/icons/schedule.svg +1 -0
  435. pygpt_net/data/icons/screenshot.svg +1 -0
  436. pygpt_net/data/icons/search.svg +1 -0
  437. pygpt_net/data/icons/security.svg +1 -0
  438. pygpt_net/data/icons/sensors.svg +1 -0
  439. pygpt_net/data/icons/settings.svg +1 -0
  440. pygpt_net/data/icons/settings_filled.svg +1 -0
  441. pygpt_net/data/icons/share.svg +1 -0
  442. pygpt_net/data/icons/shedule.svg +1 -0
  443. pygpt_net/data/icons/sort.svg +1 -0
  444. pygpt_net/data/icons/split_screen.svg +1 -0
  445. pygpt_net/data/icons/stack.svg +1 -0
  446. pygpt_net/data/icons/stacks.svg +1 -0
  447. pygpt_net/data/icons/star.svg +1 -0
  448. pygpt_net/data/icons/stop.svg +1 -0
  449. pygpt_net/data/icons/stop_circle.svg +1 -0
  450. pygpt_net/data/icons/sync.svg +1 -0
  451. pygpt_net/data/icons/tag.svg +1 -0
  452. pygpt_net/data/icons/task.svg +1 -0
  453. pygpt_net/data/icons/terminal.svg +1 -0
  454. pygpt_net/data/icons/text.svg +1 -0
  455. pygpt_net/data/icons/textfile.svg +1 -0
  456. pygpt_net/data/icons/timer.svg +1 -0
  457. pygpt_net/data/icons/today.svg +1 -0
  458. pygpt_net/data/icons/tune.svg +1 -0
  459. pygpt_net/data/icons/undo.svg +1 -0
  460. pygpt_net/data/icons/update.svg +1 -0
  461. pygpt_net/data/icons/updater.svg +1 -0
  462. pygpt_net/data/icons/upload.svg +1 -0
  463. pygpt_net/data/icons/video.svg +1 -0
  464. pygpt_net/data/icons/view.svg +1 -0
  465. pygpt_net/data/icons/voice.svg +1 -0
  466. pygpt_net/data/icons/volume.svg +1 -0
  467. pygpt_net/data/icons/warning.svg +1 -0
  468. pygpt_net/data/icons/webcam.svg +1 -0
  469. pygpt_net/data/icons/webcam_off.svg +1 -0
  470. pygpt_net/data/icons/width.svg +1 -0
  471. pygpt_net/data/icons/window.svg +1 -0
  472. pygpt_net/data/icons/work.svg +1 -0
  473. pygpt_net/data/icons/zoom_in.svg +1 -0
  474. pygpt_net/data/icons/zoom_out.svg +1 -0
  475. pygpt_net/data/js/highlight/DIGESTS.md +793 -0
  476. pygpt_net/data/js/highlight/LICENSE +29 -0
  477. pygpt_net/data/js/highlight/README.md +45 -0
  478. pygpt_net/data/js/highlight/es/core.js +2600 -0
  479. pygpt_net/data/js/highlight/es/core.min.js +307 -0
  480. pygpt_net/data/js/highlight/es/highlight.js +2600 -0
  481. pygpt_net/data/js/highlight/es/highlight.min.js +307 -0
  482. pygpt_net/data/js/highlight/es/languages/1c.js +552 -0
  483. pygpt_net/data/js/highlight/es/languages/1c.min.js +25 -0
  484. pygpt_net/data/js/highlight/es/languages/abnf.js +91 -0
  485. pygpt_net/data/js/highlight/es/languages/abnf.min.js +12 -0
  486. pygpt_net/data/js/highlight/es/languages/accesslog.js +100 -0
  487. pygpt_net/data/js/highlight/es/languages/accesslog.min.js +13 -0
  488. pygpt_net/data/js/highlight/es/languages/actionscript.js +161 -0
  489. pygpt_net/data/js/highlight/es/languages/actionscript.min.js +17 -0
  490. pygpt_net/data/js/highlight/es/languages/ada.js +273 -0
  491. pygpt_net/data/js/highlight/es/languages/ada.min.js +25 -0
  492. pygpt_net/data/js/highlight/es/languages/angelscript.js +186 -0
  493. pygpt_net/data/js/highlight/es/languages/angelscript.min.js +21 -0
  494. pygpt_net/data/js/highlight/es/languages/apache.js +109 -0
  495. pygpt_net/data/js/highlight/es/languages/apache.min.js +14 -0
  496. pygpt_net/data/js/highlight/es/languages/applescript.js +157 -0
  497. pygpt_net/data/js/highlight/es/languages/applescript.min.js +18 -0
  498. pygpt_net/data/js/highlight/es/languages/arcade.js +425 -0
  499. pygpt_net/data/js/highlight/es/languages/arcade.min.js +28 -0
  500. pygpt_net/data/js/highlight/es/languages/arduino.js +1014 -0
  501. pygpt_net/data/js/highlight/es/languages/arduino.min.js +54 -0
  502. pygpt_net/data/js/highlight/es/languages/armasm.js +132 -0
  503. pygpt_net/data/js/highlight/es/languages/armasm.min.js +17 -0
  504. pygpt_net/data/js/highlight/es/languages/asciidoc.js +269 -0
  505. pygpt_net/data/js/highlight/es/languages/asciidoc.min.js +35 -0
  506. pygpt_net/data/js/highlight/es/languages/aspectj.js +239 -0
  507. pygpt_net/data/js/highlight/es/languages/aspectj.min.js +30 -0
  508. pygpt_net/data/js/highlight/es/languages/autohotkey.js +83 -0
  509. pygpt_net/data/js/highlight/es/languages/autohotkey.min.js +13 -0
  510. pygpt_net/data/js/highlight/es/languages/autoit.js +186 -0
  511. pygpt_net/data/js/highlight/es/languages/autoit.min.js +21 -0
  512. pygpt_net/data/js/highlight/es/languages/avrasm.js +86 -0
  513. pygpt_net/data/js/highlight/es/languages/avrasm.min.js +12 -0
  514. pygpt_net/data/js/highlight/es/languages/awk.js +76 -0
  515. pygpt_net/data/js/highlight/es/languages/awk.min.js +11 -0
  516. pygpt_net/data/js/highlight/es/languages/axapta.js +196 -0
  517. pygpt_net/data/js/highlight/es/languages/axapta.min.js +10 -0
  518. pygpt_net/data/js/highlight/es/languages/bash.js +415 -0
  519. pygpt_net/data/js/highlight/es/languages/bash.min.js +21 -0
  520. pygpt_net/data/js/highlight/es/languages/basic.js +238 -0
  521. pygpt_net/data/js/highlight/es/languages/basic.min.js +9 -0
  522. pygpt_net/data/js/highlight/es/languages/bnf.js +47 -0
  523. pygpt_net/data/js/highlight/es/languages/bnf.min.js +6 -0
  524. pygpt_net/data/js/highlight/es/languages/brainfuck.js +62 -0
  525. pygpt_net/data/js/highlight/es/languages/brainfuck.min.js +8 -0
  526. pygpt_net/data/js/highlight/es/languages/c.js +340 -0
  527. pygpt_net/data/js/highlight/es/languages/c.min.js +40 -0
  528. pygpt_net/data/js/highlight/es/languages/cal.js +168 -0
  529. pygpt_net/data/js/highlight/es/languages/cal.min.js +15 -0
  530. pygpt_net/data/js/highlight/es/languages/capnproto.js +107 -0
  531. pygpt_net/data/js/highlight/es/languages/capnproto.min.js +11 -0
  532. pygpt_net/data/js/highlight/es/languages/ceylon.js +148 -0
  533. pygpt_net/data/js/highlight/es/languages/ceylon.min.js +15 -0
  534. pygpt_net/data/js/highlight/es/languages/clean.js +75 -0
  535. pygpt_net/data/js/highlight/es/languages/clean.min.js +8 -0
  536. pygpt_net/data/js/highlight/es/languages/clojure-repl.js +35 -0
  537. pygpt_net/data/js/highlight/es/languages/clojure-repl.min.js +4 -0
  538. pygpt_net/data/js/highlight/es/languages/clojure.js +192 -0
  539. pygpt_net/data/js/highlight/es/languages/clojure.min.js +25 -0
  540. pygpt_net/data/js/highlight/es/languages/cmake.js +72 -0
  541. pygpt_net/data/js/highlight/es/languages/cmake.min.js +7 -0
  542. pygpt_net/data/js/highlight/es/languages/coffeescript.js +374 -0
  543. pygpt_net/data/js/highlight/es/languages/coffeescript.min.js +28 -0
  544. pygpt_net/data/js/highlight/es/languages/coq.js +453 -0
  545. pygpt_net/data/js/highlight/es/languages/coq.min.js +7 -0
  546. pygpt_net/data/js/highlight/es/languages/cos.js +148 -0
  547. pygpt_net/data/js/highlight/es/languages/cos.min.js +15 -0
  548. pygpt_net/data/js/highlight/es/languages/cpp.js +611 -0
  549. pygpt_net/data/js/highlight/es/languages/cpp.min.js +46 -0
  550. pygpt_net/data/js/highlight/es/languages/crmsh.js +108 -0
  551. pygpt_net/data/js/highlight/es/languages/crmsh.min.js +19 -0
  552. pygpt_net/data/js/highlight/es/languages/crystal.js +320 -0
  553. pygpt_net/data/js/highlight/es/languages/crystal.min.js +48 -0
  554. pygpt_net/data/js/highlight/es/languages/csharp.js +414 -0
  555. pygpt_net/data/js/highlight/es/languages/csharp.min.js +49 -0
  556. pygpt_net/data/js/highlight/es/languages/csp.js +66 -0
  557. pygpt_net/data/js/highlight/es/languages/csp.min.js +6 -0
  558. pygpt_net/data/js/highlight/es/languages/css.js +862 -0
  559. pygpt_net/data/js/highlight/es/languages/css.min.js +31 -0
  560. pygpt_net/data/js/highlight/es/languages/d.js +280 -0
  561. pygpt_net/data/js/highlight/es/languages/d.min.js +20 -0
  562. pygpt_net/data/js/highlight/es/languages/dart.js +270 -0
  563. pygpt_net/data/js/highlight/es/languages/dart.min.js +22 -0
  564. pygpt_net/data/js/highlight/es/languages/delphi.js +254 -0
  565. pygpt_net/data/js/highlight/es/languages/delphi.min.js +19 -0
  566. pygpt_net/data/js/highlight/es/languages/diff.js +70 -0
  567. pygpt_net/data/js/highlight/es/languages/diff.min.js +9 -0
  568. pygpt_net/data/js/highlight/es/languages/django.js +83 -0
  569. pygpt_net/data/js/highlight/es/languages/django.min.js +13 -0
  570. pygpt_net/data/js/highlight/es/languages/dns.js +86 -0
  571. pygpt_net/data/js/highlight/es/languages/dns.min.js +11 -0
  572. pygpt_net/data/js/highlight/es/languages/dockerfile.js +52 -0
  573. pygpt_net/data/js/highlight/es/languages/dockerfile.min.js +8 -0
  574. pygpt_net/data/js/highlight/es/languages/dos.js +175 -0
  575. pygpt_net/data/js/highlight/es/languages/dos.min.js +13 -0
  576. pygpt_net/data/js/highlight/es/languages/dsconfig.js +74 -0
  577. pygpt_net/data/js/highlight/es/languages/dsconfig.min.js +9 -0
  578. pygpt_net/data/js/highlight/es/languages/dts.js +165 -0
  579. pygpt_net/data/js/highlight/es/languages/dts.min.js +22 -0
  580. pygpt_net/data/js/highlight/es/languages/dust.js +55 -0
  581. pygpt_net/data/js/highlight/es/languages/dust.min.js +8 -0
  582. pygpt_net/data/js/highlight/es/languages/ebnf.js +62 -0
  583. pygpt_net/data/js/highlight/es/languages/ebnf.min.js +7 -0
  584. pygpt_net/data/js/highlight/es/languages/elixir.js +287 -0
  585. pygpt_net/data/js/highlight/es/languages/elixir.min.js +34 -0
  586. pygpt_net/data/js/highlight/es/languages/elm.js +151 -0
  587. pygpt_net/data/js/highlight/es/languages/elm.min.js +18 -0
  588. pygpt_net/data/js/highlight/es/languages/erb.js +37 -0
  589. pygpt_net/data/js/highlight/es/languages/erb.min.js +5 -0
  590. pygpt_net/data/js/highlight/es/languages/erlang-repl.js +62 -0
  591. pygpt_net/data/js/highlight/es/languages/erlang-repl.min.js +13 -0
  592. pygpt_net/data/js/highlight/es/languages/erlang.js +207 -0
  593. pygpt_net/data/js/highlight/es/languages/erlang.min.js +28 -0
  594. pygpt_net/data/js/highlight/es/languages/excel.js +553 -0
  595. pygpt_net/data/js/highlight/es/languages/excel.min.js +10 -0
  596. pygpt_net/data/js/highlight/es/languages/fix.js +47 -0
  597. pygpt_net/data/js/highlight/es/languages/fix.min.js +7 -0
  598. pygpt_net/data/js/highlight/es/languages/flix.js +87 -0
  599. pygpt_net/data/js/highlight/es/languages/flix.min.js +10 -0
  600. pygpt_net/data/js/highlight/es/languages/fortran.js +582 -0
  601. pygpt_net/data/js/highlight/es/languages/fortran.min.js +17 -0
  602. pygpt_net/data/js/highlight/es/languages/fsharp.js +635 -0
  603. pygpt_net/data/js/highlight/es/languages/fsharp.min.js +47 -0
  604. pygpt_net/data/js/highlight/es/languages/gams.js +189 -0
  605. pygpt_net/data/js/highlight/es/languages/gams.min.js +28 -0
  606. pygpt_net/data/js/highlight/es/languages/gauss.js +314 -0
  607. pygpt_net/data/js/highlight/es/languages/gauss.min.js +36 -0
  608. pygpt_net/data/js/highlight/es/languages/gcode.js +89 -0
  609. pygpt_net/data/js/highlight/es/languages/gcode.min.js +17 -0
  610. pygpt_net/data/js/highlight/es/languages/gherkin.js +57 -0
  611. pygpt_net/data/js/highlight/es/languages/gherkin.min.js +9 -0
  612. pygpt_net/data/js/highlight/es/languages/glsl.js +136 -0
  613. pygpt_net/data/js/highlight/es/languages/glsl.min.js +8 -0
  614. pygpt_net/data/js/highlight/es/languages/gml.js +3138 -0
  615. pygpt_net/data/js/highlight/es/languages/gml.min.js +10 -0
  616. pygpt_net/data/js/highlight/es/languages/go.js +164 -0
  617. pygpt_net/data/js/highlight/es/languages/go.min.js +19 -0
  618. pygpt_net/data/js/highlight/es/languages/golo.js +89 -0
  619. pygpt_net/data/js/highlight/es/languages/golo.min.js +6 -0
  620. pygpt_net/data/js/highlight/es/languages/gradle.js +198 -0
  621. pygpt_net/data/js/highlight/es/languages/gradle.min.js +6 -0
  622. pygpt_net/data/js/highlight/es/languages/graphql.js +86 -0
  623. pygpt_net/data/js/highlight/es/languages/graphql.min.js +12 -0
  624. pygpt_net/data/js/highlight/es/languages/groovy.js +198 -0
  625. pygpt_net/data/js/highlight/es/languages/groovy.min.js +21 -0
  626. pygpt_net/data/js/highlight/es/languages/haml.js +121 -0
  627. pygpt_net/data/js/highlight/es/languages/haml.min.js +18 -0
  628. pygpt_net/data/js/highlight/es/languages/handlebars.js +266 -0
  629. pygpt_net/data/js/highlight/es/languages/handlebars.min.js +29 -0
  630. pygpt_net/data/js/highlight/es/languages/haskell.js +225 -0
  631. pygpt_net/data/js/highlight/es/languages/haskell.min.js +32 -0
  632. pygpt_net/data/js/highlight/es/languages/haxe.js +175 -0
  633. pygpt_net/data/js/highlight/es/languages/haxe.min.js +30 -0
  634. pygpt_net/data/js/highlight/es/languages/hsp.js +67 -0
  635. pygpt_net/data/js/highlight/es/languages/hsp.min.js +14 -0
  636. pygpt_net/data/js/highlight/es/languages/http.js +105 -0
  637. pygpt_net/data/js/highlight/es/languages/http.min.js +14 -0
  638. pygpt_net/data/js/highlight/es/languages/hy.js +145 -0
  639. pygpt_net/data/js/highlight/es/languages/hy.min.js +15 -0
  640. pygpt_net/data/js/highlight/es/languages/inform7.js +78 -0
  641. pygpt_net/data/js/highlight/es/languages/inform7.min.js +10 -0
  642. pygpt_net/data/js/highlight/es/languages/ini.js +129 -0
  643. pygpt_net/data/js/highlight/es/languages/ini.min.js +16 -0
  644. pygpt_net/data/js/highlight/es/languages/irpf90.js +115 -0
  645. pygpt_net/data/js/highlight/es/languages/irpf90.min.js +15 -0
  646. pygpt_net/data/js/highlight/es/languages/isbl.js +3213 -0
  647. pygpt_net/data/js/highlight/es/languages/isbl.min.js +25 -0
  648. pygpt_net/data/js/highlight/es/languages/java.js +298 -0
  649. pygpt_net/data/js/highlight/es/languages/java.min.js +38 -0
  650. pygpt_net/data/js/highlight/es/languages/javascript.js +775 -0
  651. pygpt_net/data/js/highlight/es/languages/javascript.min.js +81 -0
  652. pygpt_net/data/js/highlight/es/languages/jboss-cli.js +71 -0
  653. pygpt_net/data/js/highlight/es/languages/jboss-cli.min.js +10 -0
  654. pygpt_net/data/js/highlight/es/languages/json.js +62 -0
  655. pygpt_net/data/js/highlight/es/languages/json.min.js +8 -0
  656. pygpt_net/data/js/highlight/es/languages/julia-repl.js +59 -0
  657. pygpt_net/data/js/highlight/es/languages/julia-repl.min.js +4 -0
  658. pygpt_net/data/js/highlight/es/languages/julia.js +450 -0
  659. pygpt_net/data/js/highlight/es/languages/julia.min.js +18 -0
  660. pygpt_net/data/js/highlight/es/languages/kotlin.js +294 -0
  661. pygpt_net/data/js/highlight/es/languages/kotlin.min.js +46 -0
  662. pygpt_net/data/js/highlight/es/languages/lasso.js +179 -0
  663. pygpt_net/data/js/highlight/es/languages/lasso.min.js +28 -0
  664. pygpt_net/data/js/highlight/es/languages/latex.js +286 -0
  665. pygpt_net/data/js/highlight/es/languages/latex.min.js +34 -0
  666. pygpt_net/data/js/highlight/es/languages/ldif.js +39 -0
  667. pygpt_net/data/js/highlight/es/languages/ldif.min.js +5 -0
  668. pygpt_net/data/js/highlight/es/languages/leaf.js +105 -0
  669. pygpt_net/data/js/highlight/es/languages/leaf.min.js +12 -0
  670. pygpt_net/data/js/highlight/es/languages/less.js +963 -0
  671. pygpt_net/data/js/highlight/es/languages/less.min.js +45 -0
  672. pygpt_net/data/js/highlight/es/languages/lisp.js +147 -0
  673. pygpt_net/data/js/highlight/es/languages/lisp.min.js +16 -0
  674. pygpt_net/data/js/highlight/es/languages/livecodeserver.js +181 -0
  675. pygpt_net/data/js/highlight/es/languages/livecodeserver.min.js +21 -0
  676. pygpt_net/data/js/highlight/es/languages/livescript.js +386 -0
  677. pygpt_net/data/js/highlight/es/languages/livescript.min.js +35 -0
  678. pygpt_net/data/js/highlight/es/languages/llvm.js +143 -0
  679. pygpt_net/data/js/highlight/es/languages/llvm.min.js +16 -0
  680. pygpt_net/data/js/highlight/es/languages/lsl.js +84 -0
  681. pygpt_net/data/js/highlight/es/languages/lsl.min.js +19 -0
  682. pygpt_net/data/js/highlight/es/languages/lua.js +88 -0
  683. pygpt_net/data/js/highlight/es/languages/lua.min.js +14 -0
  684. pygpt_net/data/js/highlight/es/languages/makefile.js +94 -0
  685. pygpt_net/data/js/highlight/es/languages/makefile.min.js +14 -0
  686. pygpt_net/data/js/highlight/es/languages/markdown.js +256 -0
  687. pygpt_net/data/js/highlight/es/languages/markdown.min.js +32 -0
  688. pygpt_net/data/js/highlight/es/languages/mathematica.js +7367 -0
  689. pygpt_net/data/js/highlight/es/languages/mathematica.min.js +21 -0
  690. pygpt_net/data/js/highlight/es/languages/matlab.js +115 -0
  691. pygpt_net/data/js/highlight/es/languages/matlab.min.js +15 -0
  692. pygpt_net/data/js/highlight/es/languages/maxima.js +422 -0
  693. pygpt_net/data/js/highlight/es/languages/maxima.min.js +12 -0
  694. pygpt_net/data/js/highlight/es/languages/mel.js +243 -0
  695. pygpt_net/data/js/highlight/es/languages/mel.min.js +8 -0
  696. pygpt_net/data/js/highlight/es/languages/mercury.js +116 -0
  697. pygpt_net/data/js/highlight/es/languages/mercury.min.js +16 -0
  698. pygpt_net/data/js/highlight/es/languages/mipsasm.js +112 -0
  699. pygpt_net/data/js/highlight/es/languages/mipsasm.min.js +15 -0
  700. pygpt_net/data/js/highlight/es/languages/mizar.js +35 -0
  701. pygpt_net/data/js/highlight/es/languages/mizar.min.js +4 -0
  702. pygpt_net/data/js/highlight/es/languages/mojolicious.js +44 -0
  703. pygpt_net/data/js/highlight/es/languages/mojolicious.min.js +6 -0
  704. pygpt_net/data/js/highlight/es/languages/monkey.js +192 -0
  705. pygpt_net/data/js/highlight/es/languages/monkey.min.js +17 -0
  706. pygpt_net/data/js/highlight/es/languages/moonscript.js +149 -0
  707. pygpt_net/data/js/highlight/es/languages/moonscript.min.js +23 -0
  708. pygpt_net/data/js/highlight/es/languages/n1ql.js +373 -0
  709. pygpt_net/data/js/highlight/es/languages/n1ql.min.js +13 -0
  710. pygpt_net/data/js/highlight/es/languages/nestedtext.js +91 -0
  711. pygpt_net/data/js/highlight/es/languages/nestedtext.min.js +9 -0
  712. pygpt_net/data/js/highlight/es/languages/nginx.js +161 -0
  713. pygpt_net/data/js/highlight/es/languages/nginx.min.js +21 -0
  714. pygpt_net/data/js/highlight/es/languages/nim.js +193 -0
  715. pygpt_net/data/js/highlight/es/languages/nim.min.js +15 -0
  716. pygpt_net/data/js/highlight/es/languages/nix.js +103 -0
  717. pygpt_net/data/js/highlight/es/languages/nix.min.js +12 -0
  718. pygpt_net/data/js/highlight/es/languages/node-repl.js +41 -0
  719. pygpt_net/data/js/highlight/es/languages/node-repl.min.js +5 -0
  720. pygpt_net/data/js/highlight/es/languages/nsis.js +565 -0
  721. pygpt_net/data/js/highlight/es/languages/nsis.min.js +23 -0
  722. pygpt_net/data/js/highlight/es/languages/objectivec.js +261 -0
  723. pygpt_net/data/js/highlight/es/languages/objectivec.min.js +23 -0
  724. pygpt_net/data/js/highlight/es/languages/ocaml.js +91 -0
  725. pygpt_net/data/js/highlight/es/languages/ocaml.min.js +14 -0
  726. pygpt_net/data/js/highlight/es/languages/openscad.js +85 -0
  727. pygpt_net/data/js/highlight/es/languages/openscad.min.js +15 -0
  728. pygpt_net/data/js/highlight/es/languages/oxygene.js +95 -0
  729. pygpt_net/data/js/highlight/es/languages/oxygene.min.js +13 -0
  730. pygpt_net/data/js/highlight/es/languages/parser3.js +63 -0
  731. pygpt_net/data/js/highlight/es/languages/parser3.min.js +10 -0
  732. pygpt_net/data/js/highlight/es/languages/perl.js +512 -0
  733. pygpt_net/data/js/highlight/es/languages/perl.min.js +40 -0
  734. pygpt_net/data/js/highlight/es/languages/pf.js +68 -0
  735. pygpt_net/data/js/highlight/es/languages/pf.min.js +9 -0
  736. pygpt_net/data/js/highlight/es/languages/pgsql.js +533 -0
  737. pygpt_net/data/js/highlight/es/languages/pgsql.min.js +69 -0
  738. pygpt_net/data/js/highlight/es/languages/php-template.js +62 -0
  739. pygpt_net/data/js/highlight/es/languages/php-template.min.js +8 -0
  740. pygpt_net/data/js/highlight/es/languages/php.js +621 -0
  741. pygpt_net/data/js/highlight/es/languages/php.min.js +58 -0
  742. pygpt_net/data/js/highlight/es/languages/plaintext.js +27 -0
  743. pygpt_net/data/js/highlight/es/languages/plaintext.min.js +3 -0
  744. pygpt_net/data/js/highlight/es/languages/pony.js +98 -0
  745. pygpt_net/data/js/highlight/es/languages/pony.min.js +12 -0
  746. pygpt_net/data/js/highlight/es/languages/powershell.js +325 -0
  747. pygpt_net/data/js/highlight/es/languages/powershell.min.js +40 -0
  748. pygpt_net/data/js/highlight/es/languages/processing.js +442 -0
  749. pygpt_net/data/js/highlight/es/languages/processing.min.js +18 -0
  750. pygpt_net/data/js/highlight/es/languages/profile.js +51 -0
  751. pygpt_net/data/js/highlight/es/languages/profile.min.js +9 -0
  752. pygpt_net/data/js/highlight/es/languages/prolog.js +105 -0
  753. pygpt_net/data/js/highlight/es/languages/prolog.min.js +11 -0
  754. pygpt_net/data/js/highlight/es/languages/properties.js +76 -0
  755. pygpt_net/data/js/highlight/es/languages/properties.min.js +9 -0
  756. pygpt_net/data/js/highlight/es/languages/protobuf.js +87 -0
  757. pygpt_net/data/js/highlight/es/languages/protobuf.min.js +11 -0
  758. pygpt_net/data/js/highlight/es/languages/puppet.js +154 -0
  759. pygpt_net/data/js/highlight/es/languages/puppet.min.js +18 -0
  760. pygpt_net/data/js/highlight/es/languages/purebasic.js +108 -0
  761. pygpt_net/data/js/highlight/es/languages/purebasic.min.js +11 -0
  762. pygpt_net/data/js/highlight/es/languages/python-repl.js +40 -0
  763. pygpt_net/data/js/highlight/es/languages/python-repl.min.js +5 -0
  764. pygpt_net/data/js/highlight/es/languages/python.js +444 -0
  765. pygpt_net/data/js/highlight/es/languages/python.min.js +42 -0
  766. pygpt_net/data/js/highlight/es/languages/q.js +46 -0
  767. pygpt_net/data/js/highlight/es/languages/q.min.js +8 -0
  768. pygpt_net/data/js/highlight/es/languages/qml.js +197 -0
  769. pygpt_net/data/js/highlight/es/languages/qml.min.js +29 -0
  770. pygpt_net/data/js/highlight/es/languages/r.js +265 -0
  771. pygpt_net/data/js/highlight/es/languages/r.min.js +26 -0
  772. pygpt_net/data/js/highlight/es/languages/reasonml.js +150 -0
  773. pygpt_net/data/js/highlight/es/languages/reasonml.min.js +18 -0
  774. pygpt_net/data/js/highlight/es/languages/rib.js +45 -0
  775. pygpt_net/data/js/highlight/es/languages/rib.min.js +6 -0
  776. pygpt_net/data/js/highlight/es/languages/roboconf.js +90 -0
  777. pygpt_net/data/js/highlight/es/languages/roboconf.min.js +13 -0
  778. pygpt_net/data/js/highlight/es/languages/routeros.js +172 -0
  779. pygpt_net/data/js/highlight/es/languages/routeros.min.js +22 -0
  780. pygpt_net/data/js/highlight/es/languages/rsl.js +157 -0
  781. pygpt_net/data/js/highlight/es/languages/rsl.min.js +11 -0
  782. pygpt_net/data/js/highlight/es/languages/ruby.js +456 -0
  783. pygpt_net/data/js/highlight/es/languages/ruby.min.js +54 -0
  784. pygpt_net/data/js/highlight/es/languages/ruleslanguage.js +84 -0
  785. pygpt_net/data/js/highlight/es/languages/ruleslanguage.min.js +9 -0
  786. pygpt_net/data/js/highlight/es/languages/rust.js +324 -0
  787. pygpt_net/data/js/highlight/es/languages/rust.min.js +27 -0
  788. pygpt_net/data/js/highlight/es/languages/sas.js +565 -0
  789. pygpt_net/data/js/highlight/es/languages/sas.min.js +17 -0
  790. pygpt_net/data/js/highlight/es/languages/scala.js +222 -0
  791. pygpt_net/data/js/highlight/es/languages/scala.min.js +28 -0
  792. pygpt_net/data/js/highlight/es/languages/scheme.js +204 -0
  793. pygpt_net/data/js/highlight/es/languages/scheme.min.js +19 -0
  794. pygpt_net/data/js/highlight/es/languages/scilab.js +81 -0
  795. pygpt_net/data/js/highlight/es/languages/scilab.min.js +13 -0
  796. pygpt_net/data/js/highlight/es/languages/scss.js +852 -0
  797. pygpt_net/data/js/highlight/es/languages/scss.min.js +33 -0
  798. pygpt_net/data/js/highlight/es/languages/shell.js +41 -0
  799. pygpt_net/data/js/highlight/es/languages/shell.min.js +5 -0
  800. pygpt_net/data/js/highlight/es/languages/smali.js +134 -0
  801. pygpt_net/data/js/highlight/es/languages/smali.min.js +13 -0
  802. pygpt_net/data/js/highlight/es/languages/smalltalk.js +77 -0
  803. pygpt_net/data/js/highlight/es/languages/smalltalk.min.js +11 -0
  804. pygpt_net/data/js/highlight/es/languages/sml.js +83 -0
  805. pygpt_net/data/js/highlight/es/languages/sml.min.js +14 -0
  806. pygpt_net/data/js/highlight/es/languages/sqf.js +2670 -0
  807. pygpt_net/data/js/highlight/es/languages/sqf.min.js +17 -0
  808. pygpt_net/data/js/highlight/es/languages/sql.js +690 -0
  809. pygpt_net/data/js/highlight/es/languages/sql.min.js +17 -0
  810. pygpt_net/data/js/highlight/es/languages/stan.js +529 -0
  811. pygpt_net/data/js/highlight/es/languages/stan.min.js +28 -0
  812. pygpt_net/data/js/highlight/es/languages/stata.js +61 -0
  813. pygpt_net/data/js/highlight/es/languages/stata.min.js +11 -0
  814. pygpt_net/data/js/highlight/es/languages/step21.js +75 -0
  815. pygpt_net/data/js/highlight/es/languages/step21.min.js +10 -0
  816. pygpt_net/data/js/highlight/es/languages/stylus.js +912 -0
  817. pygpt_net/data/js/highlight/es/languages/stylus.min.js +36 -0
  818. pygpt_net/data/js/highlight/es/languages/subunit.js +52 -0
  819. pygpt_net/data/js/highlight/es/languages/subunit.min.js +10 -0
  820. pygpt_net/data/js/highlight/es/languages/swift.js +951 -0
  821. pygpt_net/data/js/highlight/es/languages/swift.min.js +66 -0
  822. pygpt_net/data/js/highlight/es/languages/taggerscript.js +67 -0
  823. pygpt_net/data/js/highlight/es/languages/taggerscript.min.js +7 -0
  824. pygpt_net/data/js/highlight/es/languages/tap.js +55 -0
  825. pygpt_net/data/js/highlight/es/languages/tap.min.js +7 -0
  826. pygpt_net/data/js/highlight/es/languages/tcl.js +199 -0
  827. pygpt_net/data/js/highlight/es/languages/tcl.min.js +15 -0
  828. pygpt_net/data/js/highlight/es/languages/thrift.js +85 -0
  829. pygpt_net/data/js/highlight/es/languages/thrift.min.js +12 -0
  830. pygpt_net/data/js/highlight/es/languages/tp.js +180 -0
  831. pygpt_net/data/js/highlight/es/languages/tp.min.js +19 -0
  832. pygpt_net/data/js/highlight/es/languages/twig.js +268 -0
  833. pygpt_net/data/js/highlight/es/languages/twig.min.js +18 -0
  834. pygpt_net/data/js/highlight/es/languages/typescript.js +909 -0
  835. pygpt_net/data/js/highlight/es/languages/typescript.min.js +98 -0
  836. pygpt_net/data/js/highlight/es/languages/vala.js +69 -0
  837. pygpt_net/data/js/highlight/es/languages/vala.min.js +9 -0
  838. pygpt_net/data/js/highlight/es/languages/vbnet.js +165 -0
  839. pygpt_net/data/js/highlight/es/languages/vbnet.min.js +25 -0
  840. pygpt_net/data/js/highlight/es/languages/vbscript-html.js +32 -0
  841. pygpt_net/data/js/highlight/es/languages/vbscript-html.min.js +4 -0
  842. pygpt_net/data/js/highlight/es/languages/vbscript.js +228 -0
  843. pygpt_net/data/js/highlight/es/languages/vbscript.min.js +10 -0
  844. pygpt_net/data/js/highlight/es/languages/verilog.js +558 -0
  845. pygpt_net/data/js/highlight/es/languages/verilog.min.js +17 -0
  846. pygpt_net/data/js/highlight/es/languages/vhdl.js +224 -0
  847. pygpt_net/data/js/highlight/es/languages/vhdl.min.js +13 -0
  848. pygpt_net/data/js/highlight/es/languages/vim.js +137 -0
  849. pygpt_net/data/js/highlight/es/languages/vim.min.js +12 -0
  850. pygpt_net/data/js/highlight/es/languages/wasm.js +147 -0
  851. pygpt_net/data/js/highlight/es/languages/wasm.min.js +15 -0
  852. pygpt_net/data/js/highlight/es/languages/wren.js +310 -0
  853. pygpt_net/data/js/highlight/es/languages/wren.min.js +30 -0
  854. pygpt_net/data/js/highlight/es/languages/x86asm.js +161 -0
  855. pygpt_net/data/js/highlight/es/languages/x86asm.min.js +18 -0
  856. pygpt_net/data/js/highlight/es/languages/xl.js +213 -0
  857. pygpt_net/data/js/highlight/es/languages/xl.min.js +15 -0
  858. pygpt_net/data/js/highlight/es/languages/xml.js +249 -0
  859. pygpt_net/data/js/highlight/es/languages/xml.min.js +29 -0
  860. pygpt_net/data/js/highlight/es/languages/xquery.js +368 -0
  861. pygpt_net/data/js/highlight/es/languages/xquery.min.js +33 -0
  862. pygpt_net/data/js/highlight/es/languages/yaml.js +203 -0
  863. pygpt_net/data/js/highlight/es/languages/yaml.min.js +25 -0
  864. pygpt_net/data/js/highlight/es/languages/zephir.js +137 -0
  865. pygpt_net/data/js/highlight/es/languages/zephir.min.js +18 -0
  866. pygpt_net/data/js/highlight/es/package.json +1 -0
  867. pygpt_net/data/js/highlight/highlight.js +60739 -0
  868. pygpt_net/data/js/highlight/highlight.min.js +3861 -0
  869. pygpt_net/data/js/highlight/languages/1c.js +554 -0
  870. pygpt_net/data/js/highlight/languages/1c.min.js +25 -0
  871. pygpt_net/data/js/highlight/languages/abnf.js +93 -0
  872. pygpt_net/data/js/highlight/languages/abnf.min.js +11 -0
  873. pygpt_net/data/js/highlight/languages/accesslog.js +102 -0
  874. pygpt_net/data/js/highlight/languages/accesslog.min.js +13 -0
  875. pygpt_net/data/js/highlight/languages/actionscript.js +163 -0
  876. pygpt_net/data/js/highlight/languages/actionscript.min.js +17 -0
  877. pygpt_net/data/js/highlight/languages/ada.js +275 -0
  878. pygpt_net/data/js/highlight/languages/ada.min.js +25 -0
  879. pygpt_net/data/js/highlight/languages/angelscript.js +188 -0
  880. pygpt_net/data/js/highlight/languages/angelscript.min.js +21 -0
  881. pygpt_net/data/js/highlight/languages/apache.js +111 -0
  882. pygpt_net/data/js/highlight/languages/apache.min.js +14 -0
  883. pygpt_net/data/js/highlight/languages/applescript.js +159 -0
  884. pygpt_net/data/js/highlight/languages/applescript.min.js +19 -0
  885. pygpt_net/data/js/highlight/languages/arcade.js +427 -0
  886. pygpt_net/data/js/highlight/languages/arcade.min.js +27 -0
  887. pygpt_net/data/js/highlight/languages/arduino.js +1016 -0
  888. pygpt_net/data/js/highlight/languages/arduino.min.js +54 -0
  889. pygpt_net/data/js/highlight/languages/armasm.js +134 -0
  890. pygpt_net/data/js/highlight/languages/armasm.min.js +17 -0
  891. pygpt_net/data/js/highlight/languages/asciidoc.js +271 -0
  892. pygpt_net/data/js/highlight/languages/asciidoc.min.js +35 -0
  893. pygpt_net/data/js/highlight/languages/aspectj.js +241 -0
  894. pygpt_net/data/js/highlight/languages/aspectj.min.js +31 -0
  895. pygpt_net/data/js/highlight/languages/autohotkey.js +85 -0
  896. pygpt_net/data/js/highlight/languages/autohotkey.min.js +14 -0
  897. pygpt_net/data/js/highlight/languages/autoit.js +188 -0
  898. pygpt_net/data/js/highlight/languages/autoit.min.js +21 -0
  899. pygpt_net/data/js/highlight/languages/avrasm.js +88 -0
  900. pygpt_net/data/js/highlight/languages/avrasm.min.js +12 -0
  901. pygpt_net/data/js/highlight/languages/awk.js +78 -0
  902. pygpt_net/data/js/highlight/languages/awk.min.js +11 -0
  903. pygpt_net/data/js/highlight/languages/axapta.js +198 -0
  904. pygpt_net/data/js/highlight/languages/axapta.min.js +11 -0
  905. pygpt_net/data/js/highlight/languages/bash.js +417 -0
  906. pygpt_net/data/js/highlight/languages/bash.min.js +21 -0
  907. pygpt_net/data/js/highlight/languages/basic.js +240 -0
  908. pygpt_net/data/js/highlight/languages/basic.min.js +10 -0
  909. pygpt_net/data/js/highlight/languages/bnf.js +49 -0
  910. pygpt_net/data/js/highlight/languages/bnf.min.js +6 -0
  911. pygpt_net/data/js/highlight/languages/brainfuck.js +64 -0
  912. pygpt_net/data/js/highlight/languages/brainfuck.min.js +8 -0
  913. pygpt_net/data/js/highlight/languages/c.js +342 -0
  914. pygpt_net/data/js/highlight/languages/c.min.js +40 -0
  915. pygpt_net/data/js/highlight/languages/cal.js +170 -0
  916. pygpt_net/data/js/highlight/languages/cal.min.js +15 -0
  917. pygpt_net/data/js/highlight/languages/capnproto.js +109 -0
  918. pygpt_net/data/js/highlight/languages/capnproto.min.js +11 -0
  919. pygpt_net/data/js/highlight/languages/ceylon.js +150 -0
  920. pygpt_net/data/js/highlight/languages/ceylon.min.js +15 -0
  921. pygpt_net/data/js/highlight/languages/clean.js +77 -0
  922. pygpt_net/data/js/highlight/languages/clean.min.js +8 -0
  923. pygpt_net/data/js/highlight/languages/clojure-repl.js +37 -0
  924. pygpt_net/data/js/highlight/languages/clojure-repl.min.js +4 -0
  925. pygpt_net/data/js/highlight/languages/clojure.js +194 -0
  926. pygpt_net/data/js/highlight/languages/clojure.min.js +25 -0
  927. pygpt_net/data/js/highlight/languages/cmake.js +74 -0
  928. pygpt_net/data/js/highlight/languages/cmake.min.js +7 -0
  929. pygpt_net/data/js/highlight/languages/coffeescript.js +376 -0
  930. pygpt_net/data/js/highlight/languages/coffeescript.min.js +29 -0
  931. pygpt_net/data/js/highlight/languages/coq.js +455 -0
  932. pygpt_net/data/js/highlight/languages/coq.min.js +7 -0
  933. pygpt_net/data/js/highlight/languages/cos.js +150 -0
  934. pygpt_net/data/js/highlight/languages/cos.min.js +15 -0
  935. pygpt_net/data/js/highlight/languages/cpp.js +613 -0
  936. pygpt_net/data/js/highlight/languages/cpp.min.js +47 -0
  937. pygpt_net/data/js/highlight/languages/crmsh.js +110 -0
  938. pygpt_net/data/js/highlight/languages/crmsh.min.js +19 -0
  939. pygpt_net/data/js/highlight/languages/crystal.js +322 -0
  940. pygpt_net/data/js/highlight/languages/crystal.min.js +48 -0
  941. pygpt_net/data/js/highlight/languages/csharp.js +416 -0
  942. pygpt_net/data/js/highlight/languages/csharp.min.js +49 -0
  943. pygpt_net/data/js/highlight/languages/csp.js +68 -0
  944. pygpt_net/data/js/highlight/languages/csp.min.js +7 -0
  945. pygpt_net/data/js/highlight/languages/css.js +864 -0
  946. pygpt_net/data/js/highlight/languages/css.min.js +31 -0
  947. pygpt_net/data/js/highlight/languages/d.js +282 -0
  948. pygpt_net/data/js/highlight/languages/d.min.js +20 -0
  949. pygpt_net/data/js/highlight/languages/dart.js +272 -0
  950. pygpt_net/data/js/highlight/languages/dart.min.js +22 -0
  951. pygpt_net/data/js/highlight/languages/delphi.js +256 -0
  952. pygpt_net/data/js/highlight/languages/delphi.min.js +19 -0
  953. pygpt_net/data/js/highlight/languages/diff.js +72 -0
  954. pygpt_net/data/js/highlight/languages/diff.min.js +9 -0
  955. pygpt_net/data/js/highlight/languages/django.js +85 -0
  956. pygpt_net/data/js/highlight/languages/django.min.js +13 -0
  957. pygpt_net/data/js/highlight/languages/dns.js +88 -0
  958. pygpt_net/data/js/highlight/languages/dns.min.js +11 -0
  959. pygpt_net/data/js/highlight/languages/dockerfile.js +54 -0
  960. pygpt_net/data/js/highlight/languages/dockerfile.min.js +8 -0
  961. pygpt_net/data/js/highlight/languages/dos.js +177 -0
  962. pygpt_net/data/js/highlight/languages/dos.min.js +12 -0
  963. pygpt_net/data/js/highlight/languages/dsconfig.js +76 -0
  964. pygpt_net/data/js/highlight/languages/dsconfig.min.js +9 -0
  965. pygpt_net/data/js/highlight/languages/dts.js +167 -0
  966. pygpt_net/data/js/highlight/languages/dts.min.js +22 -0
  967. pygpt_net/data/js/highlight/languages/dust.js +57 -0
  968. pygpt_net/data/js/highlight/languages/dust.min.js +8 -0
  969. pygpt_net/data/js/highlight/languages/ebnf.js +64 -0
  970. pygpt_net/data/js/highlight/languages/ebnf.min.js +7 -0
  971. pygpt_net/data/js/highlight/languages/elixir.js +289 -0
  972. pygpt_net/data/js/highlight/languages/elixir.min.js +34 -0
  973. pygpt_net/data/js/highlight/languages/elm.js +153 -0
  974. pygpt_net/data/js/highlight/languages/elm.min.js +18 -0
  975. pygpt_net/data/js/highlight/languages/erb.js +39 -0
  976. pygpt_net/data/js/highlight/languages/erb.min.js +5 -0
  977. pygpt_net/data/js/highlight/languages/erlang-repl.js +64 -0
  978. pygpt_net/data/js/highlight/languages/erlang-repl.min.js +13 -0
  979. pygpt_net/data/js/highlight/languages/erlang.js +209 -0
  980. pygpt_net/data/js/highlight/languages/erlang.min.js +28 -0
  981. pygpt_net/data/js/highlight/languages/excel.js +555 -0
  982. pygpt_net/data/js/highlight/languages/excel.min.js +10 -0
  983. pygpt_net/data/js/highlight/languages/fix.js +49 -0
  984. pygpt_net/data/js/highlight/languages/fix.min.js +7 -0
  985. pygpt_net/data/js/highlight/languages/flix.js +89 -0
  986. pygpt_net/data/js/highlight/languages/flix.min.js +10 -0
  987. pygpt_net/data/js/highlight/languages/fortran.js +584 -0
  988. pygpt_net/data/js/highlight/languages/fortran.min.js +17 -0
  989. pygpt_net/data/js/highlight/languages/fsharp.js +637 -0
  990. pygpt_net/data/js/highlight/languages/fsharp.min.js +47 -0
  991. pygpt_net/data/js/highlight/languages/gams.js +191 -0
  992. pygpt_net/data/js/highlight/languages/gams.min.js +28 -0
  993. pygpt_net/data/js/highlight/languages/gauss.js +316 -0
  994. pygpt_net/data/js/highlight/languages/gauss.min.js +36 -0
  995. pygpt_net/data/js/highlight/languages/gcode.js +91 -0
  996. pygpt_net/data/js/highlight/languages/gcode.min.js +16 -0
  997. pygpt_net/data/js/highlight/languages/gherkin.js +59 -0
  998. pygpt_net/data/js/highlight/languages/gherkin.min.js +8 -0
  999. pygpt_net/data/js/highlight/languages/glsl.js +138 -0
  1000. pygpt_net/data/js/highlight/languages/glsl.min.js +8 -0
  1001. pygpt_net/data/js/highlight/languages/gml.js +3140 -0
  1002. pygpt_net/data/js/highlight/languages/gml.min.js +10 -0
  1003. pygpt_net/data/js/highlight/languages/go.js +166 -0
  1004. pygpt_net/data/js/highlight/languages/go.min.js +20 -0
  1005. pygpt_net/data/js/highlight/languages/golo.js +91 -0
  1006. pygpt_net/data/js/highlight/languages/golo.min.js +6 -0
  1007. pygpt_net/data/js/highlight/languages/gradle.js +200 -0
  1008. pygpt_net/data/js/highlight/languages/gradle.min.js +5 -0
  1009. pygpt_net/data/js/highlight/languages/graphql.js +88 -0
  1010. pygpt_net/data/js/highlight/languages/graphql.min.js +12 -0
  1011. pygpt_net/data/js/highlight/languages/groovy.js +200 -0
  1012. pygpt_net/data/js/highlight/languages/groovy.min.js +21 -0
  1013. pygpt_net/data/js/highlight/languages/haml.js +123 -0
  1014. pygpt_net/data/js/highlight/languages/haml.min.js +18 -0
  1015. pygpt_net/data/js/highlight/languages/handlebars.js +268 -0
  1016. pygpt_net/data/js/highlight/languages/handlebars.min.js +29 -0
  1017. pygpt_net/data/js/highlight/languages/haskell.js +227 -0
  1018. pygpt_net/data/js/highlight/languages/haskell.min.js +32 -0
  1019. pygpt_net/data/js/highlight/languages/haxe.js +177 -0
  1020. pygpt_net/data/js/highlight/languages/haxe.min.js +29 -0
  1021. pygpt_net/data/js/highlight/languages/hsp.js +69 -0
  1022. pygpt_net/data/js/highlight/languages/hsp.min.js +14 -0
  1023. pygpt_net/data/js/highlight/languages/http.js +107 -0
  1024. pygpt_net/data/js/highlight/languages/http.min.js +14 -0
  1025. pygpt_net/data/js/highlight/languages/hy.js +147 -0
  1026. pygpt_net/data/js/highlight/languages/hy.min.js +16 -0
  1027. pygpt_net/data/js/highlight/languages/inform7.js +80 -0
  1028. pygpt_net/data/js/highlight/languages/inform7.min.js +11 -0
  1029. pygpt_net/data/js/highlight/languages/ini.js +131 -0
  1030. pygpt_net/data/js/highlight/languages/ini.min.js +15 -0
  1031. pygpt_net/data/js/highlight/languages/irpf90.js +117 -0
  1032. pygpt_net/data/js/highlight/languages/irpf90.min.js +15 -0
  1033. pygpt_net/data/js/highlight/languages/isbl.js +3215 -0
  1034. pygpt_net/data/js/highlight/languages/isbl.min.js +25 -0
  1035. pygpt_net/data/js/highlight/languages/java.js +300 -0
  1036. pygpt_net/data/js/highlight/languages/java.min.js +38 -0
  1037. pygpt_net/data/js/highlight/languages/javascript.js +777 -0
  1038. pygpt_net/data/js/highlight/languages/javascript.min.js +81 -0
  1039. pygpt_net/data/js/highlight/languages/jboss-cli.js +73 -0
  1040. pygpt_net/data/js/highlight/languages/jboss-cli.min.js +10 -0
  1041. pygpt_net/data/js/highlight/languages/json.js +64 -0
  1042. pygpt_net/data/js/highlight/languages/json.min.js +8 -0
  1043. pygpt_net/data/js/highlight/languages/julia-repl.js +61 -0
  1044. pygpt_net/data/js/highlight/languages/julia-repl.min.js +5 -0
  1045. pygpt_net/data/js/highlight/languages/julia.js +452 -0
  1046. pygpt_net/data/js/highlight/languages/julia.min.js +18 -0
  1047. pygpt_net/data/js/highlight/languages/kotlin.js +296 -0
  1048. pygpt_net/data/js/highlight/languages/kotlin.min.js +46 -0
  1049. pygpt_net/data/js/highlight/languages/lasso.js +181 -0
  1050. pygpt_net/data/js/highlight/languages/lasso.min.js +29 -0
  1051. pygpt_net/data/js/highlight/languages/latex.js +288 -0
  1052. pygpt_net/data/js/highlight/languages/latex.min.js +33 -0
  1053. pygpt_net/data/js/highlight/languages/ldif.js +41 -0
  1054. pygpt_net/data/js/highlight/languages/ldif.min.js +5 -0
  1055. pygpt_net/data/js/highlight/languages/leaf.js +107 -0
  1056. pygpt_net/data/js/highlight/languages/leaf.min.js +12 -0
  1057. pygpt_net/data/js/highlight/languages/less.js +965 -0
  1058. pygpt_net/data/js/highlight/languages/less.min.js +45 -0
  1059. pygpt_net/data/js/highlight/languages/lisp.js +149 -0
  1060. pygpt_net/data/js/highlight/languages/lisp.min.js +17 -0
  1061. pygpt_net/data/js/highlight/languages/livecodeserver.js +183 -0
  1062. pygpt_net/data/js/highlight/languages/livecodeserver.min.js +21 -0
  1063. pygpt_net/data/js/highlight/languages/livescript.js +388 -0
  1064. pygpt_net/data/js/highlight/languages/livescript.min.js +35 -0
  1065. pygpt_net/data/js/highlight/languages/llvm.js +145 -0
  1066. pygpt_net/data/js/highlight/languages/llvm.min.js +16 -0
  1067. pygpt_net/data/js/highlight/languages/lsl.js +86 -0
  1068. pygpt_net/data/js/highlight/languages/lsl.min.js +19 -0
  1069. pygpt_net/data/js/highlight/languages/lua.js +90 -0
  1070. pygpt_net/data/js/highlight/languages/lua.min.js +15 -0
  1071. pygpt_net/data/js/highlight/languages/makefile.js +96 -0
  1072. pygpt_net/data/js/highlight/languages/makefile.min.js +14 -0
  1073. pygpt_net/data/js/highlight/languages/markdown.js +258 -0
  1074. pygpt_net/data/js/highlight/languages/markdown.min.js +32 -0
  1075. pygpt_net/data/js/highlight/languages/mathematica.js +7369 -0
  1076. pygpt_net/data/js/highlight/languages/mathematica.min.js +21 -0
  1077. pygpt_net/data/js/highlight/languages/matlab.js +117 -0
  1078. pygpt_net/data/js/highlight/languages/matlab.min.js +15 -0
  1079. pygpt_net/data/js/highlight/languages/maxima.js +424 -0
  1080. pygpt_net/data/js/highlight/languages/maxima.min.js +12 -0
  1081. pygpt_net/data/js/highlight/languages/mel.js +245 -0
  1082. pygpt_net/data/js/highlight/languages/mel.min.js +8 -0
  1083. pygpt_net/data/js/highlight/languages/mercury.js +118 -0
  1084. pygpt_net/data/js/highlight/languages/mercury.min.js +16 -0
  1085. pygpt_net/data/js/highlight/languages/mipsasm.js +114 -0
  1086. pygpt_net/data/js/highlight/languages/mipsasm.min.js +15 -0
  1087. pygpt_net/data/js/highlight/languages/mizar.js +37 -0
  1088. pygpt_net/data/js/highlight/languages/mizar.min.js +4 -0
  1089. pygpt_net/data/js/highlight/languages/mojolicious.js +46 -0
  1090. pygpt_net/data/js/highlight/languages/mojolicious.min.js +6 -0
  1091. pygpt_net/data/js/highlight/languages/monkey.js +194 -0
  1092. pygpt_net/data/js/highlight/languages/monkey.min.js +17 -0
  1093. pygpt_net/data/js/highlight/languages/moonscript.js +151 -0
  1094. pygpt_net/data/js/highlight/languages/moonscript.min.js +23 -0
  1095. pygpt_net/data/js/highlight/languages/n1ql.js +375 -0
  1096. pygpt_net/data/js/highlight/languages/n1ql.min.js +13 -0
  1097. pygpt_net/data/js/highlight/languages/nestedtext.js +93 -0
  1098. pygpt_net/data/js/highlight/languages/nestedtext.min.js +9 -0
  1099. pygpt_net/data/js/highlight/languages/nginx.js +163 -0
  1100. pygpt_net/data/js/highlight/languages/nginx.min.js +21 -0
  1101. pygpt_net/data/js/highlight/languages/nim.js +195 -0
  1102. pygpt_net/data/js/highlight/languages/nim.min.js +15 -0
  1103. pygpt_net/data/js/highlight/languages/nix.js +105 -0
  1104. pygpt_net/data/js/highlight/languages/nix.min.js +13 -0
  1105. pygpt_net/data/js/highlight/languages/node-repl.js +43 -0
  1106. pygpt_net/data/js/highlight/languages/node-repl.min.js +5 -0
  1107. pygpt_net/data/js/highlight/languages/nsis.js +567 -0
  1108. pygpt_net/data/js/highlight/languages/nsis.min.js +23 -0
  1109. pygpt_net/data/js/highlight/languages/objectivec.js +263 -0
  1110. pygpt_net/data/js/highlight/languages/objectivec.min.js +23 -0
  1111. pygpt_net/data/js/highlight/languages/ocaml.js +93 -0
  1112. pygpt_net/data/js/highlight/languages/ocaml.min.js +14 -0
  1113. pygpt_net/data/js/highlight/languages/openscad.js +87 -0
  1114. pygpt_net/data/js/highlight/languages/openscad.min.js +15 -0
  1115. pygpt_net/data/js/highlight/languages/oxygene.js +97 -0
  1116. pygpt_net/data/js/highlight/languages/oxygene.min.js +13 -0
  1117. pygpt_net/data/js/highlight/languages/parser3.js +65 -0
  1118. pygpt_net/data/js/highlight/languages/parser3.min.js +10 -0
  1119. pygpt_net/data/js/highlight/languages/perl.js +514 -0
  1120. pygpt_net/data/js/highlight/languages/perl.min.js +41 -0
  1121. pygpt_net/data/js/highlight/languages/pf.js +70 -0
  1122. pygpt_net/data/js/highlight/languages/pf.min.js +10 -0
  1123. pygpt_net/data/js/highlight/languages/pgsql.js +535 -0
  1124. pygpt_net/data/js/highlight/languages/pgsql.min.js +69 -0
  1125. pygpt_net/data/js/highlight/languages/php-template.js +64 -0
  1126. pygpt_net/data/js/highlight/languages/php-template.min.js +8 -0
  1127. pygpt_net/data/js/highlight/languages/php.js +623 -0
  1128. pygpt_net/data/js/highlight/languages/php.min.js +58 -0
  1129. pygpt_net/data/js/highlight/languages/plaintext.js +29 -0
  1130. pygpt_net/data/js/highlight/languages/plaintext.min.js +4 -0
  1131. pygpt_net/data/js/highlight/languages/pony.js +100 -0
  1132. pygpt_net/data/js/highlight/languages/pony.min.js +12 -0
  1133. pygpt_net/data/js/highlight/languages/powershell.js +327 -0
  1134. pygpt_net/data/js/highlight/languages/powershell.min.js +39 -0
  1135. pygpt_net/data/js/highlight/languages/processing.js +444 -0
  1136. pygpt_net/data/js/highlight/languages/processing.min.js +18 -0
  1137. pygpt_net/data/js/highlight/languages/profile.js +53 -0
  1138. pygpt_net/data/js/highlight/languages/profile.min.js +9 -0
  1139. pygpt_net/data/js/highlight/languages/prolog.js +107 -0
  1140. pygpt_net/data/js/highlight/languages/prolog.min.js +11 -0
  1141. pygpt_net/data/js/highlight/languages/properties.js +78 -0
  1142. pygpt_net/data/js/highlight/languages/properties.min.js +10 -0
  1143. pygpt_net/data/js/highlight/languages/protobuf.js +89 -0
  1144. pygpt_net/data/js/highlight/languages/protobuf.min.js +11 -0
  1145. pygpt_net/data/js/highlight/languages/puppet.js +156 -0
  1146. pygpt_net/data/js/highlight/languages/puppet.min.js +18 -0
  1147. pygpt_net/data/js/highlight/languages/purebasic.js +110 -0
  1148. pygpt_net/data/js/highlight/languages/purebasic.min.js +11 -0
  1149. pygpt_net/data/js/highlight/languages/python-repl.js +42 -0
  1150. pygpt_net/data/js/highlight/languages/python-repl.min.js +5 -0
  1151. pygpt_net/data/js/highlight/languages/python.js +446 -0
  1152. pygpt_net/data/js/highlight/languages/python.min.js +42 -0
  1153. pygpt_net/data/js/highlight/languages/q.js +48 -0
  1154. pygpt_net/data/js/highlight/languages/q.min.js +8 -0
  1155. pygpt_net/data/js/highlight/languages/qml.js +199 -0
  1156. pygpt_net/data/js/highlight/languages/qml.min.js +29 -0
  1157. pygpt_net/data/js/highlight/languages/r.js +267 -0
  1158. pygpt_net/data/js/highlight/languages/r.min.js +26 -0
  1159. pygpt_net/data/js/highlight/languages/reasonml.js +152 -0
  1160. pygpt_net/data/js/highlight/languages/reasonml.min.js +18 -0
  1161. pygpt_net/data/js/highlight/languages/rib.js +47 -0
  1162. pygpt_net/data/js/highlight/languages/rib.min.js +6 -0
  1163. pygpt_net/data/js/highlight/languages/roboconf.js +92 -0
  1164. pygpt_net/data/js/highlight/languages/roboconf.min.js +12 -0
  1165. pygpt_net/data/js/highlight/languages/routeros.js +174 -0
  1166. pygpt_net/data/js/highlight/languages/routeros.min.js +22 -0
  1167. pygpt_net/data/js/highlight/languages/rsl.js +159 -0
  1168. pygpt_net/data/js/highlight/languages/rsl.min.js +11 -0
  1169. pygpt_net/data/js/highlight/languages/ruby.js +458 -0
  1170. pygpt_net/data/js/highlight/languages/ruby.min.js +54 -0
  1171. pygpt_net/data/js/highlight/languages/ruleslanguage.js +86 -0
  1172. pygpt_net/data/js/highlight/languages/ruleslanguage.min.js +9 -0
  1173. pygpt_net/data/js/highlight/languages/rust.js +326 -0
  1174. pygpt_net/data/js/highlight/languages/rust.min.js +27 -0
  1175. pygpt_net/data/js/highlight/languages/sas.js +567 -0
  1176. pygpt_net/data/js/highlight/languages/sas.min.js +18 -0
  1177. pygpt_net/data/js/highlight/languages/scala.js +224 -0
  1178. pygpt_net/data/js/highlight/languages/scala.min.js +28 -0
  1179. pygpt_net/data/js/highlight/languages/scheme.js +206 -0
  1180. pygpt_net/data/js/highlight/languages/scheme.min.js +20 -0
  1181. pygpt_net/data/js/highlight/languages/scilab.js +83 -0
  1182. pygpt_net/data/js/highlight/languages/scilab.min.js +13 -0
  1183. pygpt_net/data/js/highlight/languages/scss.js +854 -0
  1184. pygpt_net/data/js/highlight/languages/scss.min.js +33 -0
  1185. pygpt_net/data/js/highlight/languages/shell.js +43 -0
  1186. pygpt_net/data/js/highlight/languages/shell.min.js +5 -0
  1187. pygpt_net/data/js/highlight/languages/smali.js +136 -0
  1188. pygpt_net/data/js/highlight/languages/smali.min.js +13 -0
  1189. pygpt_net/data/js/highlight/languages/smalltalk.js +79 -0
  1190. pygpt_net/data/js/highlight/languages/smalltalk.min.js +11 -0
  1191. pygpt_net/data/js/highlight/languages/sml.js +85 -0
  1192. pygpt_net/data/js/highlight/languages/sml.min.js +14 -0
  1193. pygpt_net/data/js/highlight/languages/sqf.js +2672 -0
  1194. pygpt_net/data/js/highlight/languages/sqf.min.js +17 -0
  1195. pygpt_net/data/js/highlight/languages/sql.js +692 -0
  1196. pygpt_net/data/js/highlight/languages/sql.min.js +17 -0
  1197. pygpt_net/data/js/highlight/languages/stan.js +531 -0
  1198. pygpt_net/data/js/highlight/languages/stan.min.js +28 -0
  1199. pygpt_net/data/js/highlight/languages/stata.js +63 -0
  1200. pygpt_net/data/js/highlight/languages/stata.min.js +11 -0
  1201. pygpt_net/data/js/highlight/languages/step21.js +77 -0
  1202. pygpt_net/data/js/highlight/languages/step21.min.js +10 -0
  1203. pygpt_net/data/js/highlight/languages/stylus.js +914 -0
  1204. pygpt_net/data/js/highlight/languages/stylus.min.js +36 -0
  1205. pygpt_net/data/js/highlight/languages/subunit.js +54 -0
  1206. pygpt_net/data/js/highlight/languages/subunit.min.js +9 -0
  1207. pygpt_net/data/js/highlight/languages/swift.js +953 -0
  1208. pygpt_net/data/js/highlight/languages/swift.min.js +66 -0
  1209. pygpt_net/data/js/highlight/languages/taggerscript.js +69 -0
  1210. pygpt_net/data/js/highlight/languages/taggerscript.min.js +8 -0
  1211. pygpt_net/data/js/highlight/languages/tap.js +57 -0
  1212. pygpt_net/data/js/highlight/languages/tap.min.js +7 -0
  1213. pygpt_net/data/js/highlight/languages/tcl.js +201 -0
  1214. pygpt_net/data/js/highlight/languages/tcl.min.js +15 -0
  1215. pygpt_net/data/js/highlight/languages/thrift.js +87 -0
  1216. pygpt_net/data/js/highlight/languages/thrift.min.js +12 -0
  1217. pygpt_net/data/js/highlight/languages/tp.js +182 -0
  1218. pygpt_net/data/js/highlight/languages/tp.min.js +19 -0
  1219. pygpt_net/data/js/highlight/languages/twig.js +270 -0
  1220. pygpt_net/data/js/highlight/languages/twig.min.js +18 -0
  1221. pygpt_net/data/js/highlight/languages/typescript.js +911 -0
  1222. pygpt_net/data/js/highlight/languages/typescript.min.js +98 -0
  1223. pygpt_net/data/js/highlight/languages/vala.js +71 -0
  1224. pygpt_net/data/js/highlight/languages/vala.min.js +9 -0
  1225. pygpt_net/data/js/highlight/languages/vbnet.js +167 -0
  1226. pygpt_net/data/js/highlight/languages/vbnet.min.js +25 -0
  1227. pygpt_net/data/js/highlight/languages/vbscript-html.js +34 -0
  1228. pygpt_net/data/js/highlight/languages/vbscript-html.min.js +4 -0
  1229. pygpt_net/data/js/highlight/languages/vbscript.js +230 -0
  1230. pygpt_net/data/js/highlight/languages/vbscript.min.js +10 -0
  1231. pygpt_net/data/js/highlight/languages/verilog.js +560 -0
  1232. pygpt_net/data/js/highlight/languages/verilog.min.js +17 -0
  1233. pygpt_net/data/js/highlight/languages/vhdl.js +226 -0
  1234. pygpt_net/data/js/highlight/languages/vhdl.min.js +13 -0
  1235. pygpt_net/data/js/highlight/languages/vim.js +139 -0
  1236. pygpt_net/data/js/highlight/languages/vim.min.js +12 -0
  1237. pygpt_net/data/js/highlight/languages/wasm.js +149 -0
  1238. pygpt_net/data/js/highlight/languages/wasm.min.js +14 -0
  1239. pygpt_net/data/js/highlight/languages/wren.js +312 -0
  1240. pygpt_net/data/js/highlight/languages/wren.min.js +30 -0
  1241. pygpt_net/data/js/highlight/languages/x86asm.js +163 -0
  1242. pygpt_net/data/js/highlight/languages/x86asm.min.js +19 -0
  1243. pygpt_net/data/js/highlight/languages/xl.js +215 -0
  1244. pygpt_net/data/js/highlight/languages/xl.min.js +15 -0
  1245. pygpt_net/data/js/highlight/languages/xml.js +251 -0
  1246. pygpt_net/data/js/highlight/languages/xml.min.js +29 -0
  1247. pygpt_net/data/js/highlight/languages/xquery.js +370 -0
  1248. pygpt_net/data/js/highlight/languages/xquery.min.js +33 -0
  1249. pygpt_net/data/js/highlight/languages/yaml.js +205 -0
  1250. pygpt_net/data/js/highlight/languages/yaml.min.js +25 -0
  1251. pygpt_net/data/js/highlight/languages/zephir.js +139 -0
  1252. pygpt_net/data/js/highlight/languages/zephir.min.js +18 -0
  1253. pygpt_net/data/js/highlight/package.json +93 -0
  1254. pygpt_net/data/js/highlight/styles/1c-light.css +107 -0
  1255. pygpt_net/data/js/highlight/styles/1c-light.min.css +9 -0
  1256. pygpt_net/data/js/highlight/styles/a11y-dark.css +94 -0
  1257. pygpt_net/data/js/highlight/styles/a11y-dark.min.css +7 -0
  1258. pygpt_net/data/js/highlight/styles/a11y-light.css +94 -0
  1259. pygpt_net/data/js/highlight/styles/a11y-light.min.css +7 -0
  1260. pygpt_net/data/js/highlight/styles/agate.css +127 -0
  1261. pygpt_net/data/js/highlight/styles/agate.min.css +20 -0
  1262. pygpt_net/data/js/highlight/styles/an-old-hope.css +75 -0
  1263. pygpt_net/data/js/highlight/styles/an-old-hope.min.css +9 -0
  1264. pygpt_net/data/js/highlight/styles/androidstudio.css +60 -0
  1265. pygpt_net/data/js/highlight/styles/androidstudio.min.css +1 -0
  1266. pygpt_net/data/js/highlight/styles/arduino-light.css +78 -0
  1267. pygpt_net/data/js/highlight/styles/arduino-light.min.css +1 -0
  1268. pygpt_net/data/js/highlight/styles/arta.css +66 -0
  1269. pygpt_net/data/js/highlight/styles/arta.min.css +1 -0
  1270. pygpt_net/data/js/highlight/styles/ascetic.css +45 -0
  1271. pygpt_net/data/js/highlight/styles/ascetic.min.css +1 -0
  1272. pygpt_net/data/js/highlight/styles/atom-one-dark-reasonable.css +105 -0
  1273. pygpt_net/data/js/highlight/styles/atom-one-dark-reasonable.min.css +1 -0
  1274. pygpt_net/data/js/highlight/styles/atom-one-dark.css +90 -0
  1275. pygpt_net/data/js/highlight/styles/atom-one-dark.min.css +1 -0
  1276. pygpt_net/data/js/highlight/styles/atom-one-light.css +90 -0
  1277. pygpt_net/data/js/highlight/styles/atom-one-light.min.css +1 -0
  1278. pygpt_net/data/js/highlight/styles/brown-paper.css +63 -0
  1279. pygpt_net/data/js/highlight/styles/brown-paper.min.css +1 -0
  1280. pygpt_net/data/js/highlight/styles/brown-papersq.png +0 -0
  1281. pygpt_net/data/js/highlight/styles/codepen-embed.css +57 -0
  1282. pygpt_net/data/js/highlight/styles/codepen-embed.min.css +1 -0
  1283. pygpt_net/data/js/highlight/styles/codeschool.css +163 -0
  1284. pygpt_net/data/js/highlight/styles/codeschool.min.css +7 -0
  1285. pygpt_net/data/js/highlight/styles/color-brewer.css +66 -0
  1286. pygpt_net/data/js/highlight/styles/color-brewer.min.css +1 -0
  1287. pygpt_net/data/js/highlight/styles/darcula.css +163 -0
  1288. pygpt_net/data/js/highlight/styles/darcula.min.css +7 -0
  1289. pygpt_net/data/js/highlight/styles/dark.css +62 -0
  1290. pygpt_net/data/js/highlight/styles/dark.min.css +1 -0
  1291. pygpt_net/data/js/highlight/styles/default-dark.css +163 -0
  1292. pygpt_net/data/js/highlight/styles/default-dark.min.css +7 -0
  1293. pygpt_net/data/js/highlight/styles/default-light.css +163 -0
  1294. pygpt_net/data/js/highlight/styles/default-light.min.css +7 -0
  1295. pygpt_net/data/js/highlight/styles/default.css +117 -0
  1296. pygpt_net/data/js/highlight/styles/default.min.css +9 -0
  1297. pygpt_net/data/js/highlight/styles/devibeans.css +90 -0
  1298. pygpt_net/data/js/highlight/styles/devibeans.min.css +7 -0
  1299. pygpt_net/data/js/highlight/styles/docco.css +83 -0
  1300. pygpt_net/data/js/highlight/styles/docco.min.css +1 -0
  1301. pygpt_net/data/js/highlight/styles/far.css +67 -0
  1302. pygpt_net/data/js/highlight/styles/far.min.css +1 -0
  1303. pygpt_net/data/js/highlight/styles/felipec.css +94 -0
  1304. pygpt_net/data/js/highlight/styles/felipec.min.css +7 -0
  1305. pygpt_net/data/js/highlight/styles/foundation.css +80 -0
  1306. pygpt_net/data/js/highlight/styles/foundation.min.css +1 -0
  1307. pygpt_net/data/js/highlight/styles/github-dark-dimmed.css +117 -0
  1308. pygpt_net/data/js/highlight/styles/github-dark-dimmed.min.css +9 -0
  1309. pygpt_net/data/js/highlight/styles/github-dark.css +118 -0
  1310. pygpt_net/data/js/highlight/styles/github-dark.min.css +10 -0
  1311. pygpt_net/data/js/highlight/styles/github.css +118 -0
  1312. pygpt_net/data/js/highlight/styles/github.min.css +10 -0
  1313. pygpt_net/data/js/highlight/styles/gml.css +72 -0
  1314. pygpt_net/data/js/highlight/styles/gml.min.css +1 -0
  1315. pygpt_net/data/js/highlight/styles/googlecode.css +79 -0
  1316. pygpt_net/data/js/highlight/styles/googlecode.min.css +1 -0
  1317. pygpt_net/data/js/highlight/styles/gradient-dark.css +90 -0
  1318. pygpt_net/data/js/highlight/styles/gradient-dark.min.css +1 -0
  1319. pygpt_net/data/js/highlight/styles/gradient-light.css +90 -0
  1320. pygpt_net/data/js/highlight/styles/gradient-light.min.css +1 -0
  1321. pygpt_net/data/js/highlight/styles/grayscale.css +89 -0
  1322. pygpt_net/data/js/highlight/styles/grayscale.min.css +1 -0
  1323. pygpt_net/data/js/highlight/styles/hybrid.css +88 -0
  1324. pygpt_net/data/js/highlight/styles/hybrid.min.css +1 -0
  1325. pygpt_net/data/js/highlight/styles/idea.css +86 -0
  1326. pygpt_net/data/js/highlight/styles/idea.min.css +1 -0
  1327. pygpt_net/data/js/highlight/styles/intellij-light.css +107 -0
  1328. pygpt_net/data/js/highlight/styles/intellij-light.min.css +1 -0
  1329. pygpt_net/data/js/highlight/styles/ir-black.css +66 -0
  1330. pygpt_net/data/js/highlight/styles/ir-black.min.css +1 -0
  1331. pygpt_net/data/js/highlight/styles/isbl-editor-dark.css +94 -0
  1332. pygpt_net/data/js/highlight/styles/isbl-editor-dark.min.css +1 -0
  1333. pygpt_net/data/js/highlight/styles/isbl-editor-light.css +93 -0
  1334. pygpt_net/data/js/highlight/styles/isbl-editor-light.min.css +1 -0
  1335. pygpt_net/data/js/highlight/styles/kimbie-dark.css +69 -0
  1336. pygpt_net/data/js/highlight/styles/kimbie-dark.min.css +1 -0
  1337. pygpt_net/data/js/highlight/styles/kimbie-light.css +69 -0
  1338. pygpt_net/data/js/highlight/styles/kimbie-light.min.css +1 -0
  1339. pygpt_net/data/js/highlight/styles/lightfair.css +81 -0
  1340. pygpt_net/data/js/highlight/styles/lightfair.min.css +1 -0
  1341. pygpt_net/data/js/highlight/styles/lioshi.css +76 -0
  1342. pygpt_net/data/js/highlight/styles/lioshi.min.css +1 -0
  1343. pygpt_net/data/js/highlight/styles/magula.css +66 -0
  1344. pygpt_net/data/js/highlight/styles/magula.min.css +1 -0
  1345. pygpt_net/data/js/highlight/styles/material-darker.css +163 -0
  1346. pygpt_net/data/js/highlight/styles/material-darker.min.css +7 -0
  1347. pygpt_net/data/js/highlight/styles/material-lighter.css +163 -0
  1348. pygpt_net/data/js/highlight/styles/material-lighter.min.css +7 -0
  1349. pygpt_net/data/js/highlight/styles/material-palenight.css +163 -0
  1350. pygpt_net/data/js/highlight/styles/material-palenight.min.css +7 -0
  1351. pygpt_net/data/js/highlight/styles/material-vivid.css +163 -0
  1352. pygpt_net/data/js/highlight/styles/material-vivid.min.css +7 -0
  1353. pygpt_net/data/js/highlight/styles/material.css +163 -0
  1354. pygpt_net/data/js/highlight/styles/material.min.css +7 -0
  1355. pygpt_net/data/js/highlight/styles/mono-blue.css +56 -0
  1356. pygpt_net/data/js/highlight/styles/mono-blue.min.css +1 -0
  1357. pygpt_net/data/js/highlight/styles/monokai-sublime.css +76 -0
  1358. pygpt_net/data/js/highlight/styles/monokai-sublime.min.css +1 -0
  1359. pygpt_net/data/js/highlight/styles/monokai.css +70 -0
  1360. pygpt_net/data/js/highlight/styles/monokai.min.css +1 -0
  1361. pygpt_net/data/js/highlight/styles/night-owl.css +174 -0
  1362. pygpt_net/data/js/highlight/styles/night-owl.min.css +1 -0
  1363. pygpt_net/data/js/highlight/styles/nnfx-dark.css +104 -0
  1364. pygpt_net/data/js/highlight/styles/nnfx-dark.min.css +10 -0
  1365. pygpt_net/data/js/highlight/styles/nnfx-light.css +104 -0
  1366. pygpt_net/data/js/highlight/styles/nnfx-light.min.css +10 -0
  1367. pygpt_net/data/js/highlight/styles/nord.css +275 -0
  1368. pygpt_net/data/js/highlight/styles/nord.min.css +1 -0
  1369. pygpt_net/data/js/highlight/styles/obsidian.css +79 -0
  1370. pygpt_net/data/js/highlight/styles/obsidian.min.css +1 -0
  1371. pygpt_net/data/js/highlight/styles/panda-syntax-dark.css +92 -0
  1372. pygpt_net/data/js/highlight/styles/panda-syntax-dark.min.css +1 -0
  1373. pygpt_net/data/js/highlight/styles/panda-syntax-light.css +89 -0
  1374. pygpt_net/data/js/highlight/styles/panda-syntax-light.min.css +1 -0
  1375. pygpt_net/data/js/highlight/styles/paraiso-dark.css +67 -0
  1376. pygpt_net/data/js/highlight/styles/paraiso-dark.min.css +1 -0
  1377. pygpt_net/data/js/highlight/styles/paraiso-light.css +67 -0
  1378. pygpt_net/data/js/highlight/styles/paraiso-light.min.css +1 -0
  1379. pygpt_net/data/js/highlight/styles/pojoaque.css +76 -0
  1380. pygpt_net/data/js/highlight/styles/pojoaque.jpg +0 -0
  1381. pygpt_net/data/js/highlight/styles/pojoaque.min.css +1 -0
  1382. pygpt_net/data/js/highlight/styles/purebasic.css +103 -0
  1383. pygpt_net/data/js/highlight/styles/purebasic.min.css +1 -0
  1384. pygpt_net/data/js/highlight/styles/qtcreator-dark.css +76 -0
  1385. pygpt_net/data/js/highlight/styles/qtcreator-dark.min.css +1 -0
  1386. pygpt_net/data/js/highlight/styles/qtcreator-light.css +74 -0
  1387. pygpt_net/data/js/highlight/styles/qtcreator-light.min.css +1 -0
  1388. pygpt_net/data/js/highlight/styles/rainbow.css +77 -0
  1389. pygpt_net/data/js/highlight/styles/rainbow.min.css +1 -0
  1390. pygpt_net/data/js/highlight/styles/routeros.css +86 -0
  1391. pygpt_net/data/js/highlight/styles/routeros.min.css +1 -0
  1392. pygpt_net/data/js/highlight/styles/school-book.css +62 -0
  1393. pygpt_net/data/js/highlight/styles/school-book.min.css +1 -0
  1394. pygpt_net/data/js/highlight/styles/shades-of-purple.css +84 -0
  1395. pygpt_net/data/js/highlight/styles/shades-of-purple.min.css +1 -0
  1396. pygpt_net/data/js/highlight/styles/srcery.css +89 -0
  1397. pygpt_net/data/js/highlight/styles/srcery.min.css +1 -0
  1398. pygpt_net/data/js/highlight/styles/stackoverflow-dark.css +117 -0
  1399. pygpt_net/data/js/highlight/styles/stackoverflow-dark.min.css +13 -0
  1400. pygpt_net/data/js/highlight/styles/stackoverflow-light.css +117 -0
  1401. pygpt_net/data/js/highlight/styles/stackoverflow-light.min.css +13 -0
  1402. pygpt_net/data/js/highlight/styles/sunburst.css +89 -0
  1403. pygpt_net/data/js/highlight/styles/sunburst.min.css +1 -0
  1404. pygpt_net/data/js/highlight/styles/tokyo-night-dark.css +114 -0
  1405. pygpt_net/data/js/highlight/styles/tokyo-night-dark.min.css +8 -0
  1406. pygpt_net/data/js/highlight/styles/tokyo-night-light.css +114 -0
  1407. pygpt_net/data/js/highlight/styles/tokyo-night-light.min.css +8 -0
  1408. pygpt_net/data/js/highlight/styles/tomorrow-night-blue.css +69 -0
  1409. pygpt_net/data/js/highlight/styles/tomorrow-night-blue.min.css +1 -0
  1410. pygpt_net/data/js/highlight/styles/tomorrow-night-bright.css +68 -0
  1411. pygpt_net/data/js/highlight/styles/tomorrow-night-bright.min.css +1 -0
  1412. pygpt_net/data/js/highlight/styles/vs.css +63 -0
  1413. pygpt_net/data/js/highlight/styles/vs.min.css +1 -0
  1414. pygpt_net/data/js/highlight/styles/vs2015.css +100 -0
  1415. pygpt_net/data/js/highlight/styles/vs2015.min.css +1 -0
  1416. pygpt_net/data/js/highlight/styles/windows-10-light.css +163 -0
  1417. pygpt_net/data/js/highlight/styles/windows-10-light.min.css +7 -0
  1418. pygpt_net/data/js/highlight/styles/windows-10.css +163 -0
  1419. pygpt_net/data/js/highlight/styles/windows-10.min.css +7 -0
  1420. pygpt_net/data/js/highlight/styles/xcode.css +90 -0
  1421. pygpt_net/data/js/highlight/styles/xcode.min.css +1 -0
  1422. pygpt_net/data/js/highlight/styles/xt256.css +79 -0
  1423. pygpt_net/data/js/highlight/styles/xt256.min.css +1 -0
  1424. pygpt_net/data/js/katex/auto-render.min.js +1 -0
  1425. pygpt_net/data/js/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  1426. pygpt_net/data/js/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  1427. pygpt_net/data/js/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  1428. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  1429. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  1430. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  1431. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  1432. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  1433. pygpt_net/data/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  1434. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  1435. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  1436. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  1437. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  1438. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  1439. pygpt_net/data/js/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  1440. pygpt_net/data/js/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  1441. pygpt_net/data/js/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  1442. pygpt_net/data/js/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  1443. pygpt_net/data/js/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  1444. pygpt_net/data/js/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  1445. pygpt_net/data/js/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  1446. pygpt_net/data/js/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  1447. pygpt_net/data/js/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  1448. pygpt_net/data/js/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  1449. pygpt_net/data/js/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  1450. pygpt_net/data/js/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  1451. pygpt_net/data/js/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  1452. pygpt_net/data/js/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  1453. pygpt_net/data/js/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  1454. pygpt_net/data/js/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  1455. pygpt_net/data/js/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  1456. pygpt_net/data/js/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  1457. pygpt_net/data/js/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  1458. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  1459. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  1460. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  1461. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  1462. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  1463. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  1464. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  1465. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  1466. pygpt_net/data/js/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  1467. pygpt_net/data/js/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  1468. pygpt_net/data/js/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  1469. pygpt_net/data/js/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  1470. pygpt_net/data/js/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  1471. pygpt_net/data/js/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  1472. pygpt_net/data/js/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  1473. pygpt_net/data/js/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  1474. pygpt_net/data/js/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  1475. pygpt_net/data/js/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  1476. pygpt_net/data/js/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  1477. pygpt_net/data/js/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  1478. pygpt_net/data/js/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  1479. pygpt_net/data/js/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  1480. pygpt_net/data/js/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  1481. pygpt_net/data/js/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  1482. pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  1483. pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  1484. pygpt_net/data/js/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  1485. pygpt_net/data/js/katex/katex.min.css +1 -0
  1486. pygpt_net/data/js/katex/katex.min.js +1 -0
  1487. pygpt_net/data/locale/locale.de.ini +1045 -0
  1488. pygpt_net/data/locale/locale.en.ini +1295 -0
  1489. pygpt_net/data/locale/locale.es.ini +1045 -0
  1490. pygpt_net/data/locale/locale.fr.ini +1045 -0
  1491. pygpt_net/data/locale/locale.it.ini +1045 -0
  1492. pygpt_net/data/locale/locale.pl.ini +1046 -0
  1493. pygpt_net/data/locale/locale.uk.ini +1045 -0
  1494. pygpt_net/data/locale/locale.zh.ini +1161 -0
  1495. pygpt_net/data/locale/plugin.agent.de.ini +17 -0
  1496. pygpt_net/data/locale/plugin.agent.en.ini +17 -0
  1497. pygpt_net/data/locale/plugin.agent.es.ini +17 -0
  1498. pygpt_net/data/locale/plugin.agent.fr.ini +17 -0
  1499. pygpt_net/data/locale/plugin.agent.it.ini +17 -0
  1500. pygpt_net/data/locale/plugin.agent.pl.ini +17 -0
  1501. pygpt_net/data/locale/plugin.agent.uk.ini +17 -0
  1502. pygpt_net/data/locale/plugin.agent.zh.ini +17 -0
  1503. pygpt_net/data/locale/plugin.audio_input.de.ini +63 -0
  1504. pygpt_net/data/locale/plugin.audio_input.en.ini +63 -0
  1505. pygpt_net/data/locale/plugin.audio_input.es.ini +63 -0
  1506. pygpt_net/data/locale/plugin.audio_input.fr.ini +63 -0
  1507. pygpt_net/data/locale/plugin.audio_input.it.ini +63 -0
  1508. pygpt_net/data/locale/plugin.audio_input.pl.ini +63 -0
  1509. pygpt_net/data/locale/plugin.audio_input.uk.ini +63 -0
  1510. pygpt_net/data/locale/plugin.audio_input.zh.ini +63 -0
  1511. pygpt_net/data/locale/plugin.audio_output.de.ini +30 -0
  1512. pygpt_net/data/locale/plugin.audio_output.en.ini +30 -0
  1513. pygpt_net/data/locale/plugin.audio_output.es.ini +30 -0
  1514. pygpt_net/data/locale/plugin.audio_output.fr.ini +30 -0
  1515. pygpt_net/data/locale/plugin.audio_output.it.ini +30 -0
  1516. pygpt_net/data/locale/plugin.audio_output.pl.ini +30 -0
  1517. pygpt_net/data/locale/plugin.audio_output.uk.ini +30 -0
  1518. pygpt_net/data/locale/plugin.audio_output.zh.ini +30 -0
  1519. pygpt_net/data/locale/plugin.cmd_api.de.ini +12 -0
  1520. pygpt_net/data/locale/plugin.cmd_api.en.ini +12 -0
  1521. pygpt_net/data/locale/plugin.cmd_api.es.ini +12 -0
  1522. pygpt_net/data/locale/plugin.cmd_api.fr.ini +12 -0
  1523. pygpt_net/data/locale/plugin.cmd_api.it.ini +12 -0
  1524. pygpt_net/data/locale/plugin.cmd_api.pl.ini +12 -0
  1525. pygpt_net/data/locale/plugin.cmd_api.uk.ini +12 -0
  1526. pygpt_net/data/locale/plugin.cmd_api.zh.ini +12 -0
  1527. pygpt_net/data/locale/plugin.cmd_code_interpreter.de.ini +33 -0
  1528. pygpt_net/data/locale/plugin.cmd_code_interpreter.en.ini +65 -0
  1529. pygpt_net/data/locale/plugin.cmd_code_interpreter.es.ini +33 -0
  1530. pygpt_net/data/locale/plugin.cmd_code_interpreter.fr.ini +33 -0
  1531. pygpt_net/data/locale/plugin.cmd_code_interpreter.it.ini +33 -0
  1532. pygpt_net/data/locale/plugin.cmd_code_interpreter.pl.ini +33 -0
  1533. pygpt_net/data/locale/plugin.cmd_code_interpreter.uk.ini +33 -0
  1534. pygpt_net/data/locale/plugin.cmd_code_interpreter.zh.ini +33 -0
  1535. pygpt_net/data/locale/plugin.cmd_custom.de.ini +6 -0
  1536. pygpt_net/data/locale/plugin.cmd_custom.en.ini +6 -0
  1537. pygpt_net/data/locale/plugin.cmd_custom.es.ini +6 -0
  1538. pygpt_net/data/locale/plugin.cmd_custom.fr.ini +6 -0
  1539. pygpt_net/data/locale/plugin.cmd_custom.it.ini +6 -0
  1540. pygpt_net/data/locale/plugin.cmd_custom.pl.ini +6 -0
  1541. pygpt_net/data/locale/plugin.cmd_custom.uk.ini +6 -0
  1542. pygpt_net/data/locale/plugin.cmd_custom.zh.ini +6 -0
  1543. pygpt_net/data/locale/plugin.cmd_files.de.ini +56 -0
  1544. pygpt_net/data/locale/plugin.cmd_files.en.ini +56 -0
  1545. pygpt_net/data/locale/plugin.cmd_files.es.ini +56 -0
  1546. pygpt_net/data/locale/plugin.cmd_files.fr.ini +56 -0
  1547. pygpt_net/data/locale/plugin.cmd_files.it.ini +56 -0
  1548. pygpt_net/data/locale/plugin.cmd_files.pl.ini +56 -0
  1549. pygpt_net/data/locale/plugin.cmd_files.uk.ini +56 -0
  1550. pygpt_net/data/locale/plugin.cmd_files.zh.ini +56 -0
  1551. pygpt_net/data/locale/plugin.cmd_history.de.ini +31 -0
  1552. pygpt_net/data/locale/plugin.cmd_history.en.ini +31 -0
  1553. pygpt_net/data/locale/plugin.cmd_history.es.ini +31 -0
  1554. pygpt_net/data/locale/plugin.cmd_history.fr.ini +31 -0
  1555. pygpt_net/data/locale/plugin.cmd_history.it.ini +31 -0
  1556. pygpt_net/data/locale/plugin.cmd_history.pl.ini +31 -0
  1557. pygpt_net/data/locale/plugin.cmd_history.uk.ini +31 -0
  1558. pygpt_net/data/locale/plugin.cmd_history.zh.ini +31 -0
  1559. pygpt_net/data/locale/plugin.cmd_mouse_control.de.ini +31 -0
  1560. pygpt_net/data/locale/plugin.cmd_mouse_control.en.ini +33 -0
  1561. pygpt_net/data/locale/plugin.cmd_mouse_control.es.ini +31 -0
  1562. pygpt_net/data/locale/plugin.cmd_mouse_control.fr.ini +31 -0
  1563. pygpt_net/data/locale/plugin.cmd_mouse_control.it.ini +31 -0
  1564. pygpt_net/data/locale/plugin.cmd_mouse_control.pl.ini +31 -0
  1565. pygpt_net/data/locale/plugin.cmd_mouse_control.uk.ini +31 -0
  1566. pygpt_net/data/locale/plugin.cmd_mouse_control.zh.ini +31 -0
  1567. pygpt_net/data/locale/plugin.cmd_serial.de.ini +17 -0
  1568. pygpt_net/data/locale/plugin.cmd_serial.en.ini +17 -0
  1569. pygpt_net/data/locale/plugin.cmd_serial.es.ini +17 -0
  1570. pygpt_net/data/locale/plugin.cmd_serial.fr.ini +17 -0
  1571. pygpt_net/data/locale/plugin.cmd_serial.it.ini +17 -0
  1572. pygpt_net/data/locale/plugin.cmd_serial.pl.ini +17 -0
  1573. pygpt_net/data/locale/plugin.cmd_serial.uk.ini +17 -0
  1574. pygpt_net/data/locale/plugin.cmd_serial.zh.ini +17 -0
  1575. pygpt_net/data/locale/plugin.cmd_system.de.ini +17 -0
  1576. pygpt_net/data/locale/plugin.cmd_system.en.ini +23 -0
  1577. pygpt_net/data/locale/plugin.cmd_system.es.ini +17 -0
  1578. pygpt_net/data/locale/plugin.cmd_system.fr.ini +17 -0
  1579. pygpt_net/data/locale/plugin.cmd_system.it.ini +17 -0
  1580. pygpt_net/data/locale/plugin.cmd_system.pl.ini +17 -0
  1581. pygpt_net/data/locale/plugin.cmd_system.uk.ini +17 -0
  1582. pygpt_net/data/locale/plugin.cmd_system.zh.ini +17 -0
  1583. pygpt_net/data/locale/plugin.cmd_web.de.ini +62 -0
  1584. pygpt_net/data/locale/plugin.cmd_web.en.ini +72 -0
  1585. pygpt_net/data/locale/plugin.cmd_web.es.ini +62 -0
  1586. pygpt_net/data/locale/plugin.cmd_web.fr.ini +62 -0
  1587. pygpt_net/data/locale/plugin.cmd_web.it.ini +62 -0
  1588. pygpt_net/data/locale/plugin.cmd_web.pl.ini +62 -0
  1589. pygpt_net/data/locale/plugin.cmd_web.uk.ini +62 -0
  1590. pygpt_net/data/locale/plugin.cmd_web.zh.ini +62 -0
  1591. pygpt_net/data/locale/plugin.crontab.de.ini +9 -0
  1592. pygpt_net/data/locale/plugin.crontab.en.ini +9 -0
  1593. pygpt_net/data/locale/plugin.crontab.es.ini +9 -0
  1594. pygpt_net/data/locale/plugin.crontab.fr.ini +9 -0
  1595. pygpt_net/data/locale/plugin.crontab.it.ini +9 -0
  1596. pygpt_net/data/locale/plugin.crontab.pl.ini +9 -0
  1597. pygpt_net/data/locale/plugin.crontab.uk.ini +9 -0
  1598. pygpt_net/data/locale/plugin.crontab.zh.ini +9 -0
  1599. pygpt_net/data/locale/plugin.experts.de.ini +3 -0
  1600. pygpt_net/data/locale/plugin.experts.en.ini +3 -0
  1601. pygpt_net/data/locale/plugin.experts.es.ini +3 -0
  1602. pygpt_net/data/locale/plugin.experts.fr.ini +3 -0
  1603. pygpt_net/data/locale/plugin.experts.it.ini +3 -0
  1604. pygpt_net/data/locale/plugin.experts.pl.ini +3 -0
  1605. pygpt_net/data/locale/plugin.experts.uk.ini +3 -0
  1606. pygpt_net/data/locale/plugin.experts.zh.ini +3 -0
  1607. pygpt_net/data/locale/plugin.extra_prompt.de.ini +5 -0
  1608. pygpt_net/data/locale/plugin.extra_prompt.en.ini +5 -0
  1609. pygpt_net/data/locale/plugin.extra_prompt.es.ini +5 -0
  1610. pygpt_net/data/locale/plugin.extra_prompt.fr.ini +5 -0
  1611. pygpt_net/data/locale/plugin.extra_prompt.it.ini +5 -0
  1612. pygpt_net/data/locale/plugin.extra_prompt.pl.ini +5 -0
  1613. pygpt_net/data/locale/plugin.extra_prompt.uk.ini +5 -0
  1614. pygpt_net/data/locale/plugin.extra_prompt.zh.ini +5 -0
  1615. pygpt_net/data/locale/plugin.idx_llama_index.de.ini +23 -0
  1616. pygpt_net/data/locale/plugin.idx_llama_index.en.ini +23 -0
  1617. pygpt_net/data/locale/plugin.idx_llama_index.es.ini +23 -0
  1618. pygpt_net/data/locale/plugin.idx_llama_index.fr.ini +23 -0
  1619. pygpt_net/data/locale/plugin.idx_llama_index.it.ini +23 -0
  1620. pygpt_net/data/locale/plugin.idx_llama_index.pl.ini +23 -0
  1621. pygpt_net/data/locale/plugin.idx_llama_index.uk.ini +23 -0
  1622. pygpt_net/data/locale/plugin.idx_llama_index.zh.ini +23 -0
  1623. pygpt_net/data/locale/plugin.mailer.en.ini +21 -0
  1624. pygpt_net/data/locale/plugin.openai_dalle.de.ini +5 -0
  1625. pygpt_net/data/locale/plugin.openai_dalle.en.ini +5 -0
  1626. pygpt_net/data/locale/plugin.openai_dalle.es.ini +5 -0
  1627. pygpt_net/data/locale/plugin.openai_dalle.fr.ini +5 -0
  1628. pygpt_net/data/locale/plugin.openai_dalle.it.ini +5 -0
  1629. pygpt_net/data/locale/plugin.openai_dalle.pl.ini +5 -0
  1630. pygpt_net/data/locale/plugin.openai_dalle.uk.ini +5 -0
  1631. pygpt_net/data/locale/plugin.openai_dalle.zh.ini +5 -0
  1632. pygpt_net/data/locale/plugin.openai_vision.de.ini +15 -0
  1633. pygpt_net/data/locale/plugin.openai_vision.en.ini +15 -0
  1634. pygpt_net/data/locale/plugin.openai_vision.es.ini +15 -0
  1635. pygpt_net/data/locale/plugin.openai_vision.fr.ini +15 -0
  1636. pygpt_net/data/locale/plugin.openai_vision.it.ini +15 -0
  1637. pygpt_net/data/locale/plugin.openai_vision.pl.ini +15 -0
  1638. pygpt_net/data/locale/plugin.openai_vision.uk.ini +15 -0
  1639. pygpt_net/data/locale/plugin.openai_vision.zh.ini +15 -0
  1640. pygpt_net/data/locale/plugin.real_time.de.ini +12 -0
  1641. pygpt_net/data/locale/plugin.real_time.en.ini +12 -0
  1642. pygpt_net/data/locale/plugin.real_time.es.ini +12 -0
  1643. pygpt_net/data/locale/plugin.real_time.fr.ini +12 -0
  1644. pygpt_net/data/locale/plugin.real_time.it.ini +12 -0
  1645. pygpt_net/data/locale/plugin.real_time.pl.ini +12 -0
  1646. pygpt_net/data/locale/plugin.real_time.uk.ini +12 -0
  1647. pygpt_net/data/locale/plugin.real_time.zh.ini +12 -0
  1648. pygpt_net/data/locale/plugin.voice_control.de.ini +5 -0
  1649. pygpt_net/data/locale/plugin.voice_control.en.ini +5 -0
  1650. pygpt_net/data/locale/plugin.voice_control.es.ini +5 -0
  1651. pygpt_net/data/locale/plugin.voice_control.fr.ini +5 -0
  1652. pygpt_net/data/locale/plugin.voice_control.it.ini +5 -0
  1653. pygpt_net/data/locale/plugin.voice_control.pl.ini +5 -0
  1654. pygpt_net/data/locale/plugin.voice_control.uk.ini +5 -0
  1655. pygpt_net/data/locale/plugin.voice_control.zh.ini +5 -0
  1656. pygpt_net/data/logo.png +0 -0
  1657. pygpt_net/data/prompts.csv +169 -0
  1658. pygpt_net/data/win32/README.rtf +0 -0
  1659. pygpt_net/data/win32/USER-LICENSE.rtf +0 -0
  1660. pygpt_net/data/win32/banner.bmp +0 -0
  1661. pygpt_net/data/win32/banner_welcome.bmp +0 -0
  1662. pygpt_net/data/win32/pygpt.aip +622 -0
  1663. pygpt_net/data/win32/qt.conf +2 -0
  1664. pygpt_net/fonts.qrc +64 -0
  1665. pygpt_net/fonts_rc.py +67878 -0
  1666. pygpt_net/icons.qrc +142 -0
  1667. pygpt_net/icons_rc.py +4559 -0
  1668. pygpt_net/item/__init__.py +10 -0
  1669. pygpt_net/item/assistant.py +369 -0
  1670. pygpt_net/item/attachment.py +104 -0
  1671. pygpt_net/item/calendar_note.py +76 -0
  1672. pygpt_net/item/ctx.py +588 -0
  1673. pygpt_net/item/index.py +68 -0
  1674. pygpt_net/item/mode.py +17 -0
  1675. pygpt_net/item/model.py +228 -0
  1676. pygpt_net/item/notepad.py +57 -0
  1677. pygpt_net/item/preset.py +178 -0
  1678. pygpt_net/item/prompt.py +63 -0
  1679. pygpt_net/js.qrc +8 -0
  1680. pygpt_net/js_rc.py +50785 -0
  1681. pygpt_net/launcher.py +270 -0
  1682. pygpt_net/migrations/Version20231227152900.py +87 -0
  1683. pygpt_net/migrations/Version20231230095000.py +25 -0
  1684. pygpt_net/migrations/Version20231231230000.py +25 -0
  1685. pygpt_net/migrations/Version20240106060000.py +38 -0
  1686. pygpt_net/migrations/Version20240107060000.py +25 -0
  1687. pygpt_net/migrations/Version20240222160000.py +56 -0
  1688. pygpt_net/migrations/Version20240223050000.py +34 -0
  1689. pygpt_net/migrations/Version20240303190000.py +25 -0
  1690. pygpt_net/migrations/Version20240408180000.py +34 -0
  1691. pygpt_net/migrations/Version20240426050000.py +55 -0
  1692. pygpt_net/migrations/Version20240501030000.py +31 -0
  1693. pygpt_net/migrations/Version20241122130000.py +34 -0
  1694. pygpt_net/migrations/Version20241126170000.py +28 -0
  1695. pygpt_net/migrations/Version20241215110000.py +25 -0
  1696. pygpt_net/migrations/__init__.py +53 -0
  1697. pygpt_net/migrations/base.py +17 -0
  1698. pygpt_net/plugin/__init__.py +10 -0
  1699. pygpt_net/plugin/agent/__init__.py +211 -0
  1700. pygpt_net/plugin/agent/config.py +146 -0
  1701. pygpt_net/plugin/audio_input/__init__.py +526 -0
  1702. pygpt_net/plugin/audio_input/config.py +247 -0
  1703. pygpt_net/plugin/audio_input/simple.py +163 -0
  1704. pygpt_net/plugin/audio_input/worker.py +297 -0
  1705. pygpt_net/plugin/audio_output/__init__.py +271 -0
  1706. pygpt_net/plugin/audio_output/config.py +34 -0
  1707. pygpt_net/plugin/audio_output/worker.py +105 -0
  1708. pygpt_net/plugin/base/__init__.py +0 -0
  1709. pygpt_net/plugin/base/config.py +26 -0
  1710. pygpt_net/plugin/base/plugin.py +523 -0
  1711. pygpt_net/plugin/base/signals.py +23 -0
  1712. pygpt_net/plugin/base/worker.py +268 -0
  1713. pygpt_net/plugin/cmd_api/__init__.py +305 -0
  1714. pygpt_net/plugin/cmd_api/config.py +91 -0
  1715. pygpt_net/plugin/cmd_api/worker.py +173 -0
  1716. pygpt_net/plugin/cmd_code_interpreter/__init__.py +274 -0
  1717. pygpt_net/plugin/cmd_code_interpreter/builder.py +82 -0
  1718. pygpt_net/plugin/cmd_code_interpreter/config.py +390 -0
  1719. pygpt_net/plugin/cmd_code_interpreter/docker.py +63 -0
  1720. pygpt_net/plugin/cmd_code_interpreter/ipython/__init__.py +13 -0
  1721. pygpt_net/plugin/cmd_code_interpreter/ipython/docker_kernel.py +546 -0
  1722. pygpt_net/plugin/cmd_code_interpreter/ipython/local_kernel.py +220 -0
  1723. pygpt_net/plugin/cmd_code_interpreter/output.py +42 -0
  1724. pygpt_net/plugin/cmd_code_interpreter/runner.py +627 -0
  1725. pygpt_net/plugin/cmd_code_interpreter/worker.py +351 -0
  1726. pygpt_net/plugin/cmd_custom/__init__.py +136 -0
  1727. pygpt_net/plugin/cmd_custom/config.py +54 -0
  1728. pygpt_net/plugin/cmd_custom/worker.py +129 -0
  1729. pygpt_net/plugin/cmd_files/__init__.py +151 -0
  1730. pygpt_net/plugin/cmd_files/config.py +426 -0
  1731. pygpt_net/plugin/cmd_files/output.py +42 -0
  1732. pygpt_net/plugin/cmd_files/worker.py +895 -0
  1733. pygpt_net/plugin/cmd_history/__init__.py +378 -0
  1734. pygpt_net/plugin/cmd_history/config.py +270 -0
  1735. pygpt_net/plugin/cmd_history/worker.py +184 -0
  1736. pygpt_net/plugin/cmd_mouse_control/__init__.py +166 -0
  1737. pygpt_net/plugin/cmd_mouse_control/config.py +277 -0
  1738. pygpt_net/plugin/cmd_mouse_control/worker.py +327 -0
  1739. pygpt_net/plugin/cmd_serial/__init__.py +104 -0
  1740. pygpt_net/plugin/cmd_serial/config.py +105 -0
  1741. pygpt_net/plugin/cmd_serial/worker.py +239 -0
  1742. pygpt_net/plugin/cmd_system/__init__.py +169 -0
  1743. pygpt_net/plugin/cmd_system/config.py +137 -0
  1744. pygpt_net/plugin/cmd_system/docker.py +63 -0
  1745. pygpt_net/plugin/cmd_system/output.py +42 -0
  1746. pygpt_net/plugin/cmd_system/runner.py +258 -0
  1747. pygpt_net/plugin/cmd_system/worker.py +120 -0
  1748. pygpt_net/plugin/cmd_web/__init__.py +435 -0
  1749. pygpt_net/plugin/cmd_web/config.py +367 -0
  1750. pygpt_net/plugin/cmd_web/websearch.py +469 -0
  1751. pygpt_net/plugin/cmd_web/worker.py +464 -0
  1752. pygpt_net/plugin/crontab/__init__.py +188 -0
  1753. pygpt_net/plugin/crontab/config.py +73 -0
  1754. pygpt_net/plugin/experts/__init__.py +81 -0
  1755. pygpt_net/plugin/experts/config.py +26 -0
  1756. pygpt_net/plugin/extra_prompt/__init__.py +65 -0
  1757. pygpt_net/plugin/extra_prompt/config.py +44 -0
  1758. pygpt_net/plugin/idx_llama_index/__init__.py +349 -0
  1759. pygpt_net/plugin/idx_llama_index/config.py +134 -0
  1760. pygpt_net/plugin/idx_llama_index/worker.py +93 -0
  1761. pygpt_net/plugin/mailer/__init__.py +123 -0
  1762. pygpt_net/plugin/mailer/config.py +149 -0
  1763. pygpt_net/plugin/mailer/runner.py +285 -0
  1764. pygpt_net/plugin/mailer/worker.py +123 -0
  1765. pygpt_net/plugin/openai_dalle/__init__.py +165 -0
  1766. pygpt_net/plugin/openai_dalle/config.py +72 -0
  1767. pygpt_net/plugin/openai_vision/__init__.py +333 -0
  1768. pygpt_net/plugin/openai_vision/config.py +118 -0
  1769. pygpt_net/plugin/openai_vision/worker.py +159 -0
  1770. pygpt_net/plugin/real_time/__init__.py +168 -0
  1771. pygpt_net/plugin/real_time/config.py +61 -0
  1772. pygpt_net/plugin/voice_control/__init__.py +158 -0
  1773. pygpt_net/plugin/voice_control/config.py +35 -0
  1774. pygpt_net/provider/__init__.py +10 -0
  1775. pygpt_net/provider/agents/__init__.py +0 -0
  1776. pygpt_net/provider/agents/base.py +36 -0
  1777. pygpt_net/provider/agents/openai.py +43 -0
  1778. pygpt_net/provider/agents/openai_assistant.py +77 -0
  1779. pygpt_net/provider/agents/planner.py +52 -0
  1780. pygpt_net/provider/agents/react.py +68 -0
  1781. pygpt_net/provider/audio_input/__init__.py +10 -0
  1782. pygpt_net/provider/audio_input/base.py +70 -0
  1783. pygpt_net/provider/audio_input/bing_speech_recognition.py +90 -0
  1784. pygpt_net/provider/audio_input/google_cloud_speech_recognition.py +90 -0
  1785. pygpt_net/provider/audio_input/google_speech_recognition.py +90 -0
  1786. pygpt_net/provider/audio_input/openai_whisper.py +69 -0
  1787. pygpt_net/provider/audio_input/openai_whisper_local.py +90 -0
  1788. pygpt_net/provider/audio_output/__init__.py +10 -0
  1789. pygpt_net/provider/audio_output/base.py +71 -0
  1790. pygpt_net/provider/audio_output/eleven_labs.py +130 -0
  1791. pygpt_net/provider/audio_output/google_tts.py +131 -0
  1792. pygpt_net/provider/audio_output/ms_azure_tts.py +138 -0
  1793. pygpt_net/provider/audio_output/openai_tts.py +98 -0
  1794. pygpt_net/provider/core/__init__.py +10 -0
  1795. pygpt_net/provider/core/assistant/__init__.py +10 -0
  1796. pygpt_net/provider/core/assistant/base.py +50 -0
  1797. pygpt_net/provider/core/assistant/json_file.py +213 -0
  1798. pygpt_net/provider/core/assistant_file/__init__.py +10 -0
  1799. pygpt_net/provider/core/assistant_file/base.py +55 -0
  1800. pygpt_net/provider/core/assistant_file/db_sqlite/__init__.py +201 -0
  1801. pygpt_net/provider/core/assistant_file/db_sqlite/patch.py +27 -0
  1802. pygpt_net/provider/core/assistant_file/db_sqlite/storage.py +352 -0
  1803. pygpt_net/provider/core/assistant_file/db_sqlite/utils.py +62 -0
  1804. pygpt_net/provider/core/assistant_store/__init__.py +10 -0
  1805. pygpt_net/provider/core/assistant_store/base.py +56 -0
  1806. pygpt_net/provider/core/assistant_store/db_sqlite/__init__.py +135 -0
  1807. pygpt_net/provider/core/assistant_store/db_sqlite/patch.py +27 -0
  1808. pygpt_net/provider/core/assistant_store/db_sqlite/storage.py +240 -0
  1809. pygpt_net/provider/core/assistant_store/db_sqlite/utils.py +66 -0
  1810. pygpt_net/provider/core/assistant_store/json_file.py +150 -0
  1811. pygpt_net/provider/core/attachment/__init__.py +10 -0
  1812. pygpt_net/provider/core/attachment/base.py +50 -0
  1813. pygpt_net/provider/core/attachment/json_file.py +183 -0
  1814. pygpt_net/provider/core/calendar/__init__.py +10 -0
  1815. pygpt_net/provider/core/calendar/base.py +56 -0
  1816. pygpt_net/provider/core/calendar/db_sqlite/__init__.py +150 -0
  1817. pygpt_net/provider/core/calendar/db_sqlite/patch.py +26 -0
  1818. pygpt_net/provider/core/calendar/db_sqlite/storage.py +328 -0
  1819. pygpt_net/provider/core/config/__init__.py +10 -0
  1820. pygpt_net/provider/core/config/base.py +51 -0
  1821. pygpt_net/provider/core/config/json_file.py +154 -0
  1822. pygpt_net/provider/core/config/patch.py +1819 -0
  1823. pygpt_net/provider/core/ctx/__init__.py +10 -0
  1824. pygpt_net/provider/core/ctx/base.py +121 -0
  1825. pygpt_net/provider/core/ctx/db_sqlite/__init__.py +416 -0
  1826. pygpt_net/provider/core/ctx/db_sqlite/patch.py +95 -0
  1827. pygpt_net/provider/core/ctx/db_sqlite/storage.py +1334 -0
  1828. pygpt_net/provider/core/ctx/db_sqlite/utils.py +264 -0
  1829. pygpt_net/provider/core/ctx/json_file.py +368 -0
  1830. pygpt_net/provider/core/history/__init__.py +10 -0
  1831. pygpt_net/provider/core/history/base.py +31 -0
  1832. pygpt_net/provider/core/history/patch.py +26 -0
  1833. pygpt_net/provider/core/history/txt_file.py +89 -0
  1834. pygpt_net/provider/core/index/__init__.py +10 -0
  1835. pygpt_net/provider/core/index/base.py +208 -0
  1836. pygpt_net/provider/core/index/db_sqlite/__init__.py +380 -0
  1837. pygpt_net/provider/core/index/db_sqlite/patch.py +90 -0
  1838. pygpt_net/provider/core/index/db_sqlite/storage.py +712 -0
  1839. pygpt_net/provider/core/index/db_sqlite/utils.py +31 -0
  1840. pygpt_net/provider/core/index/json_file.py +218 -0
  1841. pygpt_net/provider/core/index/patch.py +26 -0
  1842. pygpt_net/provider/core/mode/__init__.py +10 -0
  1843. pygpt_net/provider/core/mode/base.py +45 -0
  1844. pygpt_net/provider/core/mode/json_file.py +142 -0
  1845. pygpt_net/provider/core/mode/patch.py +26 -0
  1846. pygpt_net/provider/core/model/__init__.py +10 -0
  1847. pygpt_net/provider/core/model/base.py +56 -0
  1848. pygpt_net/provider/core/model/json_file.py +205 -0
  1849. pygpt_net/provider/core/model/patch.py +487 -0
  1850. pygpt_net/provider/core/notepad/__init__.py +10 -0
  1851. pygpt_net/provider/core/notepad/base.py +56 -0
  1852. pygpt_net/provider/core/notepad/db_sqlite/__init__.py +116 -0
  1853. pygpt_net/provider/core/notepad/db_sqlite/patch.py +87 -0
  1854. pygpt_net/provider/core/notepad/db_sqlite/storage.py +228 -0
  1855. pygpt_net/provider/core/notepad/json_file.py +235 -0
  1856. pygpt_net/provider/core/plugin_preset/__init__.py +10 -0
  1857. pygpt_net/provider/core/plugin_preset/base.py +39 -0
  1858. pygpt_net/provider/core/plugin_preset/json_file.py +99 -0
  1859. pygpt_net/provider/core/plugin_preset/patch.py +58 -0
  1860. pygpt_net/provider/core/preset/__init__.py +10 -0
  1861. pygpt_net/provider/core/preset/base.py +59 -0
  1862. pygpt_net/provider/core/preset/json_file.py +280 -0
  1863. pygpt_net/provider/core/preset/patch.py +136 -0
  1864. pygpt_net/provider/core/prompt/__init__.py +0 -0
  1865. pygpt_net/provider/core/prompt/base.py +51 -0
  1866. pygpt_net/provider/core/prompt/json_file.py +170 -0
  1867. pygpt_net/provider/gpt/__init__.py +251 -0
  1868. pygpt_net/provider/gpt/assistants.py +465 -0
  1869. pygpt_net/provider/gpt/audio.py +64 -0
  1870. pygpt_net/provider/gpt/chat.py +280 -0
  1871. pygpt_net/provider/gpt/completion.py +191 -0
  1872. pygpt_net/provider/gpt/image.py +253 -0
  1873. pygpt_net/provider/gpt/store.py +608 -0
  1874. pygpt_net/provider/gpt/summarizer.py +63 -0
  1875. pygpt_net/provider/gpt/utils.py +27 -0
  1876. pygpt_net/provider/gpt/vision.py +307 -0
  1877. pygpt_net/provider/gpt/worker/__init__.py +0 -0
  1878. pygpt_net/provider/gpt/worker/assistants.py +619 -0
  1879. pygpt_net/provider/gpt/worker/importer.py +427 -0
  1880. pygpt_net/provider/llms/__init__.py +0 -0
  1881. pygpt_net/provider/llms/anthropic.py +50 -0
  1882. pygpt_net/provider/llms/azure_openai.py +112 -0
  1883. pygpt_net/provider/llms/base.py +175 -0
  1884. pygpt_net/provider/llms/google.py +50 -0
  1885. pygpt_net/provider/llms/hugging_face.py +58 -0
  1886. pygpt_net/provider/llms/hugging_face_api.py +85 -0
  1887. pygpt_net/provider/llms/local.py +43 -0
  1888. pygpt_net/provider/llms/ollama.py +124 -0
  1889. pygpt_net/provider/llms/openai.py +123 -0
  1890. pygpt_net/provider/loaders/__init__.py +0 -0
  1891. pygpt_net/provider/loaders/base.py +107 -0
  1892. pygpt_net/provider/loaders/file_csv.py +41 -0
  1893. pygpt_net/provider/loaders/file_docx.py +32 -0
  1894. pygpt_net/provider/loaders/file_epub.py +32 -0
  1895. pygpt_net/provider/loaders/file_excel.py +32 -0
  1896. pygpt_net/provider/loaders/file_html.py +41 -0
  1897. pygpt_net/provider/loaders/file_image_vision.py +53 -0
  1898. pygpt_net/provider/loaders/file_ipynb.py +41 -0
  1899. pygpt_net/provider/loaders/file_json.py +32 -0
  1900. pygpt_net/provider/loaders/file_markdown.py +41 -0
  1901. pygpt_net/provider/loaders/file_pdf.py +39 -0
  1902. pygpt_net/provider/loaders/file_video_audio.py +54 -0
  1903. pygpt_net/provider/loaders/file_xml.py +39 -0
  1904. pygpt_net/provider/loaders/hub/__init__.py +0 -0
  1905. pygpt_net/provider/loaders/hub/bitbucket/__init__.py +0 -0
  1906. pygpt_net/provider/loaders/hub/bitbucket/repo.py +189 -0
  1907. pygpt_net/provider/loaders/hub/chatgpt_retrieval/__init__.py +0 -0
  1908. pygpt_net/provider/loaders/hub/chatgpt_retrieval/base.py +75 -0
  1909. pygpt_net/provider/loaders/hub/database/__init__.py +0 -0
  1910. pygpt_net/provider/loaders/hub/database/base.py +122 -0
  1911. pygpt_net/provider/loaders/hub/github/__init__.py +0 -0
  1912. pygpt_net/provider/loaders/hub/github/issues.py +113 -0
  1913. pygpt_net/provider/loaders/hub/github/repo.py +101 -0
  1914. pygpt_net/provider/loaders/hub/google/__init__.py +0 -0
  1915. pygpt_net/provider/loaders/hub/google/calendar.py +72 -0
  1916. pygpt_net/provider/loaders/hub/google/docs.py +152 -0
  1917. pygpt_net/provider/loaders/hub/google/gmail.py +200 -0
  1918. pygpt_net/provider/loaders/hub/google/keep.py +50 -0
  1919. pygpt_net/provider/loaders/hub/google/sheets.py +153 -0
  1920. pygpt_net/provider/loaders/hub/image_vision/__init__.py +0 -0
  1921. pygpt_net/provider/loaders/hub/image_vision/base.py +229 -0
  1922. pygpt_net/provider/loaders/hub/json/__init__.py +0 -0
  1923. pygpt_net/provider/loaders/hub/json/base.py +114 -0
  1924. pygpt_net/provider/loaders/hub/pandas_excel/__init__.py +0 -0
  1925. pygpt_net/provider/loaders/hub/pandas_excel/base.py +112 -0
  1926. pygpt_net/provider/loaders/hub/simple_csv/__init__.py +0 -0
  1927. pygpt_net/provider/loaders/hub/simple_csv/base.py +53 -0
  1928. pygpt_net/provider/loaders/hub/video_audio/__init__.py +0 -0
  1929. pygpt_net/provider/loaders/hub/video_audio/base.py +161 -0
  1930. pygpt_net/provider/loaders/hub/web_page/__init__.py +0 -0
  1931. pygpt_net/provider/loaders/hub/web_page/base.py +23 -0
  1932. pygpt_net/provider/loaders/hub/yt/__init__.py +0 -0
  1933. pygpt_net/provider/loaders/hub/yt/base.py +75 -0
  1934. pygpt_net/provider/loaders/hub/yt/utils.py +18 -0
  1935. pygpt_net/provider/loaders/web_bitbucket.py +106 -0
  1936. pygpt_net/provider/loaders/web_chatgpt_retrieval.py +86 -0
  1937. pygpt_net/provider/loaders/web_database.py +103 -0
  1938. pygpt_net/provider/loaders/web_github_issues.py +127 -0
  1939. pygpt_net/provider/loaders/web_github_repo.py +131 -0
  1940. pygpt_net/provider/loaders/web_google_calendar.py +94 -0
  1941. pygpt_net/provider/loaders/web_google_docs.py +84 -0
  1942. pygpt_net/provider/loaders/web_google_drive.py +114 -0
  1943. pygpt_net/provider/loaders/web_google_gmail.py +89 -0
  1944. pygpt_net/provider/loaders/web_google_keep.py +81 -0
  1945. pygpt_net/provider/loaders/web_google_sheets.py +85 -0
  1946. pygpt_net/provider/loaders/web_microsoft_onedrive.py +127 -0
  1947. pygpt_net/provider/loaders/web_page.py +56 -0
  1948. pygpt_net/provider/loaders/web_rss.py +56 -0
  1949. pygpt_net/provider/loaders/web_sitemap.py +69 -0
  1950. pygpt_net/provider/loaders/web_twitter.py +90 -0
  1951. pygpt_net/provider/loaders/web_yt.py +87 -0
  1952. pygpt_net/provider/vector_stores/__init__.py +309 -0
  1953. pygpt_net/provider/vector_stores/base.py +180 -0
  1954. pygpt_net/provider/vector_stores/chroma.py +112 -0
  1955. pygpt_net/provider/vector_stores/ctx_attachment.py +123 -0
  1956. pygpt_net/provider/vector_stores/elasticsearch.py +107 -0
  1957. pygpt_net/provider/vector_stores/pinecode.py +172 -0
  1958. pygpt_net/provider/vector_stores/redis.py +110 -0
  1959. pygpt_net/provider/vector_stores/simple.py +91 -0
  1960. pygpt_net/provider/vector_stores/temp.py +170 -0
  1961. pygpt_net/provider/web/__init__.py +10 -0
  1962. pygpt_net/provider/web/base.py +81 -0
  1963. pygpt_net/provider/web/google_custom_search.py +156 -0
  1964. pygpt_net/provider/web/microsoft_bing.py +140 -0
  1965. pygpt_net/tools/__init__.py +150 -0
  1966. pygpt_net/tools/audio_transcriber/__init__.py +292 -0
  1967. pygpt_net/tools/audio_transcriber/ui/__init__.py +0 -0
  1968. pygpt_net/tools/audio_transcriber/ui/dialogs.py +150 -0
  1969. pygpt_net/tools/base.py +113 -0
  1970. pygpt_net/tools/code_interpreter/__init__.py +563 -0
  1971. pygpt_net/tools/code_interpreter/ui/__init__.py +0 -0
  1972. pygpt_net/tools/code_interpreter/ui/dialogs.py +127 -0
  1973. pygpt_net/tools/code_interpreter/ui/widgets.py +386 -0
  1974. pygpt_net/tools/html_canvas/__init__.py +320 -0
  1975. pygpt_net/tools/html_canvas/ui/__init__.py +0 -0
  1976. pygpt_net/tools/html_canvas/ui/dialogs.py +142 -0
  1977. pygpt_net/tools/html_canvas/ui/widgets.py +135 -0
  1978. pygpt_net/tools/image_viewer/__init__.py +303 -0
  1979. pygpt_net/tools/image_viewer/ui/__init__.py +0 -0
  1980. pygpt_net/tools/image_viewer/ui/dialogs.py +152 -0
  1981. pygpt_net/tools/indexer/__init__.py +520 -0
  1982. pygpt_net/tools/indexer/ui/__init__.py +0 -0
  1983. pygpt_net/tools/indexer/ui/browse.py +46 -0
  1984. pygpt_net/tools/indexer/ui/ctx.py +96 -0
  1985. pygpt_net/tools/indexer/ui/dialogs.py +199 -0
  1986. pygpt_net/tools/indexer/ui/files.py +101 -0
  1987. pygpt_net/tools/indexer/ui/web.py +199 -0
  1988. pygpt_net/tools/indexer/ui/widgets.py +121 -0
  1989. pygpt_net/tools/media_player/__init__.py +202 -0
  1990. pygpt_net/tools/media_player/ui/__init__.py +0 -0
  1991. pygpt_net/tools/media_player/ui/dialogs.py +113 -0
  1992. pygpt_net/tools/media_player/ui/widgets.py +474 -0
  1993. pygpt_net/tools/text_editor/__init__.py +293 -0
  1994. pygpt_net/tools/text_editor/ui/__init__.py +0 -0
  1995. pygpt_net/tools/text_editor/ui/dialogs.py +80 -0
  1996. pygpt_net/tools/text_editor/ui/widgets.py +77 -0
  1997. pygpt_net/ui/__init__.py +283 -0
  1998. pygpt_net/ui/base/__init__.py +0 -0
  1999. pygpt_net/ui/base/config_dialog.py +265 -0
  2000. pygpt_net/ui/base/context_menu.py +81 -0
  2001. pygpt_net/ui/dialog/__init__.py +10 -0
  2002. pygpt_net/ui/dialog/about.py +180 -0
  2003. pygpt_net/ui/dialog/applog.py +147 -0
  2004. pygpt_net/ui/dialog/assistant.py +168 -0
  2005. pygpt_net/ui/dialog/assistant_store.py +525 -0
  2006. pygpt_net/ui/dialog/changelog.py +53 -0
  2007. pygpt_net/ui/dialog/create.py +29 -0
  2008. pygpt_net/ui/dialog/db.py +510 -0
  2009. pygpt_net/ui/dialog/debug.py +57 -0
  2010. pygpt_net/ui/dialog/dictionary.py +147 -0
  2011. pygpt_net/ui/dialog/editor.py +68 -0
  2012. pygpt_net/ui/dialog/find.py +29 -0
  2013. pygpt_net/ui/dialog/image.py +73 -0
  2014. pygpt_net/ui/dialog/license.py +66 -0
  2015. pygpt_net/ui/dialog/logger.py +48 -0
  2016. pygpt_net/ui/dialog/models.py +338 -0
  2017. pygpt_net/ui/dialog/plugins.py +513 -0
  2018. pygpt_net/ui/dialog/preset.py +231 -0
  2019. pygpt_net/ui/dialog/preset_plugins.py +105 -0
  2020. pygpt_net/ui/dialog/profile.py +118 -0
  2021. pygpt_net/ui/dialog/rename.py +29 -0
  2022. pygpt_net/ui/dialog/settings.py +392 -0
  2023. pygpt_net/ui/dialog/snap.py +27 -0
  2024. pygpt_net/ui/dialog/start.py +63 -0
  2025. pygpt_net/ui/dialog/update.py +26 -0
  2026. pygpt_net/ui/dialog/url.py +29 -0
  2027. pygpt_net/ui/dialog/workdir.py +108 -0
  2028. pygpt_net/ui/dialogs.py +271 -0
  2029. pygpt_net/ui/layout/__init__.py +10 -0
  2030. pygpt_net/ui/layout/chat/__init__.py +47 -0
  2031. pygpt_net/ui/layout/chat/attachments.py +193 -0
  2032. pygpt_net/ui/layout/chat/attachments_ctx.py +162 -0
  2033. pygpt_net/ui/layout/chat/attachments_uploaded.py +133 -0
  2034. pygpt_net/ui/layout/chat/calendar.py +148 -0
  2035. pygpt_net/ui/layout/chat/explorer.py +39 -0
  2036. pygpt_net/ui/layout/chat/input.py +281 -0
  2037. pygpt_net/ui/layout/chat/markdown.py +384 -0
  2038. pygpt_net/ui/layout/chat/output.py +244 -0
  2039. pygpt_net/ui/layout/chat/painter.py +129 -0
  2040. pygpt_net/ui/layout/ctx/__init__.py +59 -0
  2041. pygpt_net/ui/layout/ctx/ctx_list.py +334 -0
  2042. pygpt_net/ui/layout/ctx/search_input.py +46 -0
  2043. pygpt_net/ui/layout/ctx/video.py +33 -0
  2044. pygpt_net/ui/layout/status.py +51 -0
  2045. pygpt_net/ui/layout/toolbox/__init__.py +79 -0
  2046. pygpt_net/ui/layout/toolbox/agent.py +79 -0
  2047. pygpt_net/ui/layout/toolbox/agent_llama.py +74 -0
  2048. pygpt_net/ui/layout/toolbox/assistants.py +126 -0
  2049. pygpt_net/ui/layout/toolbox/footer.py +149 -0
  2050. pygpt_net/ui/layout/toolbox/image.py +73 -0
  2051. pygpt_net/ui/layout/toolbox/indexes.py +236 -0
  2052. pygpt_net/ui/layout/toolbox/mode.py +59 -0
  2053. pygpt_net/ui/layout/toolbox/model.py +60 -0
  2054. pygpt_net/ui/layout/toolbox/presets.py +144 -0
  2055. pygpt_net/ui/layout/toolbox/prompt.py +96 -0
  2056. pygpt_net/ui/layout/toolbox/vision.py +61 -0
  2057. pygpt_net/ui/main.py +340 -0
  2058. pygpt_net/ui/menu/__init__.py +61 -0
  2059. pygpt_net/ui/menu/about.py +94 -0
  2060. pygpt_net/ui/menu/audio.py +89 -0
  2061. pygpt_net/ui/menu/config.py +158 -0
  2062. pygpt_net/ui/menu/debug.py +107 -0
  2063. pygpt_net/ui/menu/file.py +68 -0
  2064. pygpt_net/ui/menu/lang.py +28 -0
  2065. pygpt_net/ui/menu/plugins.py +60 -0
  2066. pygpt_net/ui/menu/theme.py +78 -0
  2067. pygpt_net/ui/menu/tools.py +83 -0
  2068. pygpt_net/ui/menu/video.py +51 -0
  2069. pygpt_net/ui/tray.py +201 -0
  2070. pygpt_net/ui/widget/__init__.py +10 -0
  2071. pygpt_net/ui/widget/anims/loader.py +229 -0
  2072. pygpt_net/ui/widget/anims/toggles.py +167 -0
  2073. pygpt_net/ui/widget/audio/__init__.py +10 -0
  2074. pygpt_net/ui/widget/audio/input.py +50 -0
  2075. pygpt_net/ui/widget/audio/input_button.py +118 -0
  2076. pygpt_net/ui/widget/audio/output.py +54 -0
  2077. pygpt_net/ui/widget/calendar/__init__.py +0 -0
  2078. pygpt_net/ui/widget/calendar/select.py +280 -0
  2079. pygpt_net/ui/widget/dialog/__init__.py +10 -0
  2080. pygpt_net/ui/widget/dialog/alert.py +41 -0
  2081. pygpt_net/ui/widget/dialog/applog.py +54 -0
  2082. pygpt_net/ui/widget/dialog/assistant_store.py +56 -0
  2083. pygpt_net/ui/widget/dialog/audio.py +16 -0
  2084. pygpt_net/ui/widget/dialog/base.py +114 -0
  2085. pygpt_net/ui/widget/dialog/confirm.py +55 -0
  2086. pygpt_net/ui/widget/dialog/create.py +56 -0
  2087. pygpt_net/ui/widget/dialog/db.py +55 -0
  2088. pygpt_net/ui/widget/dialog/debug.py +55 -0
  2089. pygpt_net/ui/widget/dialog/editor.py +58 -0
  2090. pygpt_net/ui/widget/dialog/editor_file.py +185 -0
  2091. pygpt_net/ui/widget/dialog/find.py +88 -0
  2092. pygpt_net/ui/widget/dialog/image.py +25 -0
  2093. pygpt_net/ui/widget/dialog/info.py +54 -0
  2094. pygpt_net/ui/widget/dialog/license.py +59 -0
  2095. pygpt_net/ui/widget/dialog/logger.py +56 -0
  2096. pygpt_net/ui/widget/dialog/model.py +55 -0
  2097. pygpt_net/ui/widget/dialog/preset_plugins.py +55 -0
  2098. pygpt_net/ui/widget/dialog/profile.py +177 -0
  2099. pygpt_net/ui/widget/dialog/rename.py +56 -0
  2100. pygpt_net/ui/widget/dialog/settings.py +55 -0
  2101. pygpt_net/ui/widget/dialog/settings_plugin.py +55 -0
  2102. pygpt_net/ui/widget/dialog/snap.py +74 -0
  2103. pygpt_net/ui/widget/dialog/update.py +191 -0
  2104. pygpt_net/ui/widget/dialog/url.py +207 -0
  2105. pygpt_net/ui/widget/dialog/workdir.py +54 -0
  2106. pygpt_net/ui/widget/draw/__init__.py +10 -0
  2107. pygpt_net/ui/widget/draw/painter.py +355 -0
  2108. pygpt_net/ui/widget/element/__init__.py +10 -0
  2109. pygpt_net/ui/widget/element/button.py +110 -0
  2110. pygpt_net/ui/widget/element/checkbox.py +77 -0
  2111. pygpt_net/ui/widget/element/group.py +120 -0
  2112. pygpt_net/ui/widget/element/labels.py +124 -0
  2113. pygpt_net/ui/widget/filesystem/__init__.py +0 -0
  2114. pygpt_net/ui/widget/filesystem/explorer.py +635 -0
  2115. pygpt_net/ui/widget/image/__init__.py +10 -0
  2116. pygpt_net/ui/widget/image/display.py +125 -0
  2117. pygpt_net/ui/widget/lists/__init__.py +10 -0
  2118. pygpt_net/ui/widget/lists/assistant.py +90 -0
  2119. pygpt_net/ui/widget/lists/assistant_store.py +114 -0
  2120. pygpt_net/ui/widget/lists/attachment.py +217 -0
  2121. pygpt_net/ui/widget/lists/attachment_ctx.py +173 -0
  2122. pygpt_net/ui/widget/lists/base.py +73 -0
  2123. pygpt_net/ui/widget/lists/base_combo.py +130 -0
  2124. pygpt_net/ui/widget/lists/base_list_combo.py +121 -0
  2125. pygpt_net/ui/widget/lists/context.py +532 -0
  2126. pygpt_net/ui/widget/lists/db.py +176 -0
  2127. pygpt_net/ui/widget/lists/debug.py +118 -0
  2128. pygpt_net/ui/widget/lists/experts.py +136 -0
  2129. pygpt_net/ui/widget/lists/index.py +153 -0
  2130. pygpt_net/ui/widget/lists/index_combo.py +130 -0
  2131. pygpt_net/ui/widget/lists/llama_mode_combo.py +35 -0
  2132. pygpt_net/ui/widget/lists/mode.py +29 -0
  2133. pygpt_net/ui/widget/lists/mode_combo.py +34 -0
  2134. pygpt_net/ui/widget/lists/model.py +64 -0
  2135. pygpt_net/ui/widget/lists/model_combo.py +34 -0
  2136. pygpt_net/ui/widget/lists/model_editor.py +64 -0
  2137. pygpt_net/ui/widget/lists/plugin.py +31 -0
  2138. pygpt_net/ui/widget/lists/preset.py +175 -0
  2139. pygpt_net/ui/widget/lists/preset_plugins.py +124 -0
  2140. pygpt_net/ui/widget/lists/profile.py +141 -0
  2141. pygpt_net/ui/widget/lists/settings.py +30 -0
  2142. pygpt_net/ui/widget/lists/uploaded.py +141 -0
  2143. pygpt_net/ui/widget/option/__init__.py +10 -0
  2144. pygpt_net/ui/widget/option/checkbox.py +123 -0
  2145. pygpt_net/ui/widget/option/cmd.py +159 -0
  2146. pygpt_net/ui/widget/option/combo.py +122 -0
  2147. pygpt_net/ui/widget/option/dictionary.py +423 -0
  2148. pygpt_net/ui/widget/option/input.py +289 -0
  2149. pygpt_net/ui/widget/option/prompt.py +86 -0
  2150. pygpt_net/ui/widget/option/slider.py +95 -0
  2151. pygpt_net/ui/widget/option/textarea.py +86 -0
  2152. pygpt_net/ui/widget/option/toggle.py +63 -0
  2153. pygpt_net/ui/widget/option/toggle_label.py +79 -0
  2154. pygpt_net/ui/widget/tabs/Input.py +49 -0
  2155. pygpt_net/ui/widget/tabs/__init__.py +10 -0
  2156. pygpt_net/ui/widget/tabs/body.py +36 -0
  2157. pygpt_net/ui/widget/tabs/layout.py +195 -0
  2158. pygpt_net/ui/widget/tabs/output.py +362 -0
  2159. pygpt_net/ui/widget/textarea/__init__.py +10 -0
  2160. pygpt_net/ui/widget/textarea/calendar_note.py +148 -0
  2161. pygpt_net/ui/widget/textarea/create.py +43 -0
  2162. pygpt_net/ui/widget/textarea/editor.py +184 -0
  2163. pygpt_net/ui/widget/textarea/find.py +52 -0
  2164. pygpt_net/ui/widget/textarea/html.py +329 -0
  2165. pygpt_net/ui/widget/textarea/input.py +175 -0
  2166. pygpt_net/ui/widget/textarea/name.py +35 -0
  2167. pygpt_net/ui/widget/textarea/notepad.py +205 -0
  2168. pygpt_net/ui/widget/textarea/output.py +160 -0
  2169. pygpt_net/ui/widget/textarea/rename.py +43 -0
  2170. pygpt_net/ui/widget/textarea/search_input.py +60 -0
  2171. pygpt_net/ui/widget/textarea/url.py +43 -0
  2172. pygpt_net/ui/widget/textarea/web.py +361 -0
  2173. pygpt_net/ui/widget/vision/__init__.py +10 -0
  2174. pygpt_net/ui/widget/vision/camera.py +89 -0
  2175. pygpt_net/utils.py +233 -0
  2176. pygpt_net-2.4.47.dist-info/LICENSE +23 -0
  2177. pygpt_net-2.4.47.dist-info/METADATA +4178 -0
  2178. pygpt_net-2.4.47.dist-info/RECORD +2180 -0
  2179. pygpt_net-2.4.47.dist-info/WHEEL +4 -0
  2180. pygpt_net-2.4.47.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,1819 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # ================================================== #
4
+ # This file is a part of PYGPT package #
5
+ # Website: https://pygpt.net #
6
+ # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
+ # MIT License #
8
+ # Created By : Marcin Szczygliński #
9
+ # Updated Date: 2024.12.16 20:00:00 #
10
+ # ================================================== #
11
+
12
+ import copy
13
+ import os
14
+
15
+ from packaging.version import parse as parse_version, Version
16
+
17
+
18
+ class Patch:
19
+ def __init__(self, window=None):
20
+ self.window = window
21
+
22
+ def execute(self, version: Version) -> bool:
23
+ """
24
+ Migrate config to current app version
25
+
26
+ :param version: current app version
27
+ :return: True if migrated
28
+ """
29
+ data = self.window.core.config.all()
30
+ current = "0.0.0"
31
+ updated = False
32
+ is_old = False
33
+
34
+ # get version of config file
35
+ if '__meta__' in data and 'version' in data['__meta__']:
36
+ current = data['__meta__']['version']
37
+ old = parse_version(current)
38
+
39
+ # check if config file is older than current app version
40
+ if old < version:
41
+
42
+ # mark as older version
43
+ is_old = True
44
+
45
+ # < 0.9.1
46
+ if old < parse_version("0.9.1"):
47
+ print("Migrating config from < 0.9.1...")
48
+ keys_to_remove = ['user_id', 'custom'] # not needed anymore
49
+ for key in keys_to_remove:
50
+ if key in data:
51
+ del data[key]
52
+ keys_to_add = ['organization_key']
53
+ for key in keys_to_add:
54
+ if key not in data:
55
+ data[key] = ""
56
+ updated = True
57
+
58
+ # < 0.9.2
59
+ if old < parse_version("0.9.2"):
60
+ print("Migrating config from < 0.9.2...")
61
+ keys_to_remove = ['ui.ctx.min_width',
62
+ 'ui.ctx.max_width',
63
+ 'ui.toolbox.min_width',
64
+ 'ui.toolbox.max_width',
65
+ 'ui.dialog.settings.width',
66
+ 'ui.dialog.settings.height',
67
+ 'ui.chatbox.font.color']
68
+ for key in keys_to_remove:
69
+ if key in data:
70
+ del data[key]
71
+ if 'theme' not in data:
72
+ data['theme'] = "dark_teal"
73
+ updated = True
74
+
75
+ # < 0.9.4
76
+ if old < parse_version("0.9.4"):
77
+ print("Migrating config from < 0.9.4...")
78
+ if 'plugins' not in data:
79
+ data['plugins'] = {}
80
+ if 'plugins_enabled' not in data:
81
+ data['plugins_enabled'] = {}
82
+ updated = True
83
+
84
+ # < 0.9.6
85
+ if old < parse_version("0.9.6"):
86
+ print("Migrating config from < 0.9.6...")
87
+ data['debug'] = True # enable debug by default
88
+ updated = True
89
+
90
+ # < 2.0.0
91
+ if old < parse_version("2.0.0"):
92
+ print("Migrating config from < 2.0.0...")
93
+ data['theme'] = 'dark_teal' # force, because removed light themes!
94
+ if 'cmd' not in data:
95
+ data['cmd'] = True
96
+ if 'stream' not in data:
97
+ data['stream'] = True
98
+ if 'attachments_send_clear' not in data:
99
+ data['attachments_send_clear'] = True
100
+ if 'assistant' not in data:
101
+ data['assistant'] = None
102
+ if 'assistant_thread' not in data:
103
+ data['assistant_thread'] = None
104
+ updated = True
105
+
106
+ # < 2.0.1
107
+ if old < parse_version("2.0.1"):
108
+ print("Migrating config from < 2.0.1...")
109
+ if 'send_mode' not in data:
110
+ data['send_mode'] = 1
111
+ if 'send_shift_enter' in data:
112
+ del data['send_shift_enter']
113
+ if 'font_size.input' not in data:
114
+ data['font_size.input'] = 11
115
+ if 'font_size.ctx' not in data:
116
+ data['font_size.ctx'] = 9
117
+ if 'ctx.auto_summary' not in data:
118
+ data['ctx.auto_summary'] = True
119
+ if 'ctx.auto_summary.system' not in data:
120
+ data['ctx.auto_summary.system'] = "You are an expert in conversation summarization"
121
+ if 'ctx.auto_summary.prompt' not in data:
122
+ data['ctx.auto_summary.prompt'] = "Summarize topic of this conversation in one sentence. Use best " \
123
+ "keywords to describe it. Summary must be in the same language " \
124
+ "as the conversation and it will be used for conversation title " \
125
+ "so it must be EXTREMELY SHORT and concise - use maximum 5 " \
126
+ "words: \n\nUser: {input}\nAI Assistant: {output}"
127
+ updated = True
128
+
129
+ # < 2.0.6
130
+ if old < parse_version("2.0.6"):
131
+ print("Migrating config from < 2.0.6...")
132
+ if 'layout.density' not in data:
133
+ data['layout.density'] = -2
134
+ updated = True
135
+
136
+ # < 2.0.8
137
+ if old < parse_version("2.0.8"):
138
+ print("Migrating config from < 2.0.8...")
139
+ if 'plugins' not in data:
140
+ data['plugins'] = {}
141
+ if 'cmd_web_google' not in data['plugins']:
142
+ data['plugins']['cmd_web_google'] = {}
143
+ data['plugins']['cmd_web_google'][
144
+ 'prompt_summarize'] = "Summarize the English text in a maximum of 3 " \
145
+ "paragraphs, trying to find the most " \
146
+ "important content that can help answer the " \
147
+ "following question: "
148
+ data['plugins']['cmd_web_google']['chunk_size'] = 100000
149
+ data['plugins']['cmd_web_google']['max_page_content_length'] = 0
150
+ updated = True
151
+
152
+ # < 2.0.13
153
+ if old < parse_version("2.0.13"):
154
+ print("Migrating config from < 2.0.13...")
155
+ if 'layout.density' not in data:
156
+ data['layout.density'] = 0
157
+ else:
158
+ if data['layout.density'] == -2:
159
+ data['layout.density'] = 0
160
+ updated = True
161
+
162
+ # < 2.0.14
163
+ if old < parse_version("2.0.14"):
164
+ print("Migrating config from < 2.0.14...")
165
+ if 'vision.capture.enabled' not in data:
166
+ data['vision.capture.enabled'] = True
167
+ if 'vision.capture.auto' not in data:
168
+ data['vision.capture.auto'] = True
169
+ if 'vision.capture.width' not in data:
170
+ data['vision.capture.width'] = 800
171
+ if 'vision.capture.height' not in data:
172
+ data['vision.capture.height'] = 600
173
+ updated = True
174
+
175
+ # < 2.0.16
176
+ if old < parse_version("2.0.16"):
177
+ print("Migrating config from < 2.0.16...")
178
+ if 'vision.capture.idx' not in data:
179
+ data['vision.capture.idx'] = 0
180
+ if 'img_raw' not in data:
181
+ data['img_raw'] = True
182
+ if 'img_prompt_model' not in data:
183
+ data['img_prompt_model'] = "gpt-4-1106-preview"
184
+ updated = True
185
+
186
+ # < 2.0.19
187
+ if old < parse_version("2.0.19"):
188
+ print("Migrating config from < 2.0.19...")
189
+ if 'img_raw' not in data:
190
+ data['img_raw'] = True
191
+ if not data['img_raw']:
192
+ data['img_raw'] = True
193
+ updated = True
194
+
195
+ # < 2.0.25
196
+ if old < parse_version("2.0.25"):
197
+ print("Migrating config from < 2.0.25...")
198
+ if 'cmd.prompt' not in data:
199
+ data['cmd.prompt'] = self.window.core.config.get_base('cmd.prompt')
200
+ if 'img_prompt' not in data:
201
+ data['img_prompt'] = self.window.core.config.get_base('img_prompt')
202
+ if 'vision.capture.quality' not in data:
203
+ data['vision.capture.quality'] = 85
204
+ if 'attachments_capture_clear' not in data:
205
+ data['attachments_capture_clear'] = True
206
+ if 'plugins' not in data:
207
+ data['plugins'] = {}
208
+ if 'cmd_web_google' not in data['plugins']:
209
+ data['plugins']['cmd_web_google'] = {}
210
+ data['plugins']['cmd_web_google']['prompt_summarize'] = "Summarize the English text in a maximum of 3 " \
211
+ "paragraphs, trying to find the most " \
212
+ "important content that can help answer the " \
213
+ "following question: "
214
+ updated = True
215
+
216
+ # < 2.0.26
217
+ if old < parse_version("2.0.26"):
218
+ print("Migrating config from < 2.0.26...")
219
+ if 'ctx.auto_summary.model' not in data:
220
+ data['ctx.auto_summary.model'] = 'gpt-3.5-turbo-1106'
221
+ updated = True
222
+
223
+ # < 2.0.27
224
+ if old < parse_version("2.0.27"):
225
+ print("Migrating config from < 2.0.27...")
226
+ if 'plugins' not in data:
227
+ data['plugins'] = {}
228
+ if 'cmd_web_google' not in data['plugins']:
229
+ data['plugins']['cmd_web_google'] = {}
230
+ data['plugins']['cmd_web_google'][
231
+ 'prompt_summarize'] = "Summarize text in English in a maximum of 3 " \
232
+ "paragraphs, trying to find the most " \
233
+ "important content that can help answer the " \
234
+ "following question: {query}"
235
+ data['cmd.prompt'] = self.window.core.config.get_base('cmd.prompt') # fix
236
+ updated = True
237
+
238
+ # < 2.0.30
239
+ if old < parse_version("2.0.30"):
240
+ print("Migrating config from < 2.0.30...")
241
+ if 'plugins' not in data:
242
+ data['plugins'] = {}
243
+ if 'audio_openai_whisper' not in data['plugins']:
244
+ data['plugins']['audio_openai_whisper'] = {}
245
+ data['plugins']['audio_openai_whisper']['timeout'] = 1
246
+ data['plugins']['audio_openai_whisper']['phrase_length'] = 5
247
+ data['plugins']['audio_openai_whisper']['min_energy'] = 2000
248
+ updated = True
249
+
250
+ # < 2.0.31
251
+ if old < parse_version("2.0.31"):
252
+ print("Migrating config from < 2.0.31...")
253
+ if 'plugins' not in data:
254
+ data['plugins'] = {}
255
+ if 'audio_openai_whisper' not in data['plugins']:
256
+ data['plugins']['audio_openai_whisper'] = {}
257
+ data['plugins']['audio_openai_whisper']['continuous_listen'] = False
258
+ data['plugins']['audio_openai_whisper']['timeout'] = 2
259
+ data['plugins']['audio_openai_whisper']['phrase_length'] = 4
260
+ data['plugins']['audio_openai_whisper']['magic_word_timeout'] = 1
261
+ data['plugins']['audio_openai_whisper']['magic_word_phrase_length'] = 2
262
+ data['plugins']['audio_openai_whisper']['min_energy'] = 1.3
263
+ updated = True
264
+
265
+ # < 2.0.34
266
+ if old < parse_version("2.0.34"):
267
+ print("Migrating config from < 2.0.34...")
268
+ if 'lock_modes' not in data:
269
+ data['lock_modes'] = True
270
+ updated = True
271
+
272
+ # < 2.0.37
273
+ if old < parse_version("2.0.37"):
274
+ print("Migrating config from < 2.0.37...")
275
+ if 'font_size.toolbox' not in data:
276
+ data['font_size.toolbox'] = 12
277
+ updated = True
278
+
279
+ # < 2.0.46
280
+ if old < parse_version("2.0.46"):
281
+ print("Migrating config from < 2.0.46...")
282
+ data['cmd'] = False # disable on default
283
+ updated = True
284
+
285
+ # < 2.0.47
286
+ if old < parse_version("2.0.47"):
287
+ print("Migrating config from < 2.0.47...")
288
+ if 'notepad.num' not in data:
289
+ data['notepad.num'] = 5
290
+ updated = True
291
+
292
+ # < 2.0.52
293
+ if old < parse_version("2.0.52"):
294
+ print("Migrating config from < 2.0.52...")
295
+ if 'layout.dpi.scaling' not in data:
296
+ data['layout.dpi.scaling'] = True
297
+ if 'layout.dpi.factor' not in data:
298
+ data['layout.dpi.factor'] = 1.0
299
+ updated = True
300
+
301
+ # < 2.0.62
302
+ if old < parse_version("2.0.62"):
303
+ print("Migrating config from < 2.0.62...")
304
+ if 'ctx.records.limit' not in data:
305
+ data['ctx.records.limit'] = 0
306
+ updated = True
307
+
308
+ # < 2.0.65
309
+ if old < parse_version("2.0.65"):
310
+ print("Migrating config from < 2.0.65...")
311
+ if 'ctx.search.string' not in data:
312
+ data['ctx.search.string'] = ""
313
+ updated = True
314
+
315
+ # < 2.0.69
316
+ if old < parse_version("2.0.69"):
317
+ print("Migrating config from < 2.0.69...")
318
+ data['img_prompt'] = "Whenever I provide a basic idea or concept for an image, such as 'a picture " \
319
+ "of mountains', I want you to ALWAYS translate it into English and expand " \
320
+ "and elaborate on this idea. Use your knowledge and creativity to add " \
321
+ "details that would make the image more vivid and interesting. This could " \
322
+ "include specifying the time of day, weather conditions, surrounding " \
323
+ "environment, and any additional elements that could enhance the scene. Your " \
324
+ "goal is to create a detailed and descriptive prompt that provides DALL-E " \
325
+ "with enough information to generate a rich and visually appealing image. " \
326
+ "Remember to maintain the original intent of my request while enriching the " \
327
+ "description with your imaginative details."
328
+ data['img_raw'] = False
329
+ data['img_prompt_model'] = "gpt-4-1106-preview"
330
+ updated = True
331
+
332
+ # < 2.0.71
333
+ if old < parse_version("2.0.71"):
334
+ print("Migrating config from < 2.0.71...")
335
+ prompt = 'IMAGE GENERATION: Whenever I provide a basic idea or concept for an image, such as \'a picture of ' \
336
+ 'mountains\', I want you to ALWAYS translate it into English and expand and elaborate on this idea. ' \
337
+ 'Use your knowledge and creativity to add details that would make the image more vivid and ' \
338
+ 'interesting. This could include specifying the time of day, weather conditions, surrounding ' \
339
+ 'environment, and any additional elements that could enhance the scene. Your goal is to create a ' \
340
+ 'detailed and descriptive prompt that provides DALL-E with enough information to generate a rich ' \
341
+ 'and visually appealing image. Remember to maintain the original intent of my request while ' \
342
+ 'enriching the description with your imaginative details. HOW TO START IMAGE GENERATION: to start ' \
343
+ 'image generation return to me prepared prompt in JSON format, all in one line, using following ' \
344
+ 'syntax: ~###~{"cmd": "image", "params": {"query": "your query here"}}~###~. Use ONLY this syntax ' \
345
+ 'and remember to surround JSON string with ~###~. DO NOT use any other syntax. Use English in the ' \
346
+ 'generated JSON command, but conduct all the remaining parts of the discussion with me in the ' \
347
+ 'language in which I am speaking to you. The image will be generated on my machine immediately ' \
348
+ 'after the command is issued, allowing us to discuss the photo once it has been created. Please ' \
349
+ 'engage with me about the photo itself, not only by giving the generate command. '
350
+ if 'openai_dalle' not in data['plugins']:
351
+ data['plugins']['openai_dalle'] = {}
352
+ data['plugins']['openai_dalle']['prompt'] = prompt # fixed prompt
353
+
354
+ data['plugins_enabled']['openai_dalle'] = True
355
+ data['plugins_enabled']['openai_vision'] = True
356
+
357
+ # deprecate vision and img modes
358
+ if data['mode'] == 'vision' or data['mode'] == 'img':
359
+ data['mode'] = 'chat'
360
+
361
+ updated = True
362
+
363
+ # < 2.0.72
364
+ if old < parse_version("2.0.72"):
365
+ print("Migrating config from < 2.0.72...")
366
+ if 'theme.markdown' not in data:
367
+ data['theme.markdown'] = True
368
+ prompt = 'IMAGE GENERATION: Whenever I provide a basic idea or concept for an image, such as \'a picture of ' \
369
+ 'mountains\', I want you to ALWAYS translate it into English and expand and elaborate on this idea. ' \
370
+ 'Use your knowledge and creativity to add details that would make the image more vivid and ' \
371
+ 'interesting. This could include specifying the time of day, weather conditions, surrounding ' \
372
+ 'environment, and any additional elements that could enhance the scene. Your goal is to create a ' \
373
+ 'detailed and descriptive prompt that provides DALL-E with enough information to generate a rich ' \
374
+ 'and visually appealing image. Remember to maintain the original intent of my request while ' \
375
+ 'enriching the description with your imaginative details. HOW TO START IMAGE GENERATION: to start ' \
376
+ 'image generation return to me prepared prompt in JSON format, all in one line, using following ' \
377
+ 'syntax: ~###~{"cmd": "image", "params": {"query": "your query here"}}~###~. Use ONLY this syntax ' \
378
+ 'and remember to surround JSON string with ~###~. DO NOT use any other syntax. Use English in the ' \
379
+ 'generated JSON command, but conduct all the remaining parts of the discussion with me in the ' \
380
+ 'language in which I am speaking to you. The image will be generated on my machine immediately ' \
381
+ 'after the command is issued, allowing us to discuss the photo once it has been created. Please ' \
382
+ 'engage with me about the photo itself, not only by giving the generate command. '
383
+ if 'openai_dalle' not in data['plugins']:
384
+ data['plugins']['openai_dalle'] = {}
385
+ data['plugins']['openai_dalle']['prompt'] = prompt # fixed prompt
386
+ updated = True
387
+
388
+ # < 2.0.75
389
+ if old < parse_version("2.0.75"):
390
+ print("Migrating config from < 2.0.75...")
391
+ if 'updater.check.launch' not in data:
392
+ data['updater.check.launch'] = True
393
+ if 'updater.check.bg' not in data:
394
+ data['updater.check.bg'] = False
395
+ updated = True
396
+
397
+ # < 2.0.78
398
+ if old < parse_version("2.0.78"):
399
+ print("Migrating config from < 2.0.78...")
400
+ if 'render.plain' not in data:
401
+ data['render.plain'] = False
402
+ updated = True
403
+
404
+ # < 2.0.81
405
+ if old < parse_version("2.0.81"):
406
+ print("Migrating config from < 2.0.81...")
407
+ self.window.core.updater.patch_css('markdown.light.css', True) # force replace file
408
+ updated = True
409
+
410
+ # < 2.0.85
411
+ if old < parse_version("2.0.85"):
412
+ print("Migrating config from < 2.0.85...")
413
+ prompt = "AUTONOMOUS MODE:\n1. You will now enter self-dialogue mode, where you will be conversing with " \
414
+ "yourself, not with a human.\n2. When you enter self-dialogue mode, remember that you are engaging " \
415
+ "in a conversation with yourself. Any user input will be considered a reply featuring your previous response.\n" \
416
+ "3. The objective of this self-conversation is well-defined—focus on achieving it.\n" \
417
+ "4. Your new message should be a continuation of the last response you generated, essentially replying" \
418
+ " to yourself and extending it.\n5. After each response, critically evaluate its effectiveness " \
419
+ "and alignment with the goal. If necessary, refine your approach.\n6. Incorporate self-critique " \
420
+ "after every response to capitalize on your strengths and address areas needing improvement.\n7. To " \
421
+ "advance towards the goal, utilize all the strategic thinking and resources at your disposal.\n" \
422
+ "8. Ensure that the dialogue remains coherent and logical, with each response serving as a stepping " \
423
+ "stone towards the ultimate objective.\n9. Treat the entire dialogue as a monologue aimed at devising" \
424
+ " the best possible solution to the problem.\n10. Conclude the self-dialogue upon realizing the " \
425
+ "goal or reaching a pivotal conclusion that meets the initial criteria.\n11. You are allowed to use " \
426
+ "any commands and tools without asking for it.\n12. While using commands, always use the correct " \
427
+ "syntax and never interrupt the command before generating the full instruction.\n13. ALWAYS break " \
428
+ "down the main task into manageable logical subtasks, systematically addressing and analyzing each" \
429
+ " one in sequence.\n14. With each subsequent response, make an effort to enhance your previous " \
430
+ "reply by enriching it with new ideas and do it automatically without asking for it.\n14. Any input " \
431
+ "that begins with 'user: ' will come from me, and I will be able to provide you with ANY additional " \
432
+ "commands or goal updates in this manner. The other inputs, not prefixed with 'user: ' will represent" \
433
+ " your previous responses.\n15. Start by breaking down the task into as many smaller sub-tasks as " \
434
+ "possible, then proceed to complete each one in sequence. Next, break down each sub-task into even " \
435
+ "smaller tasks, carefully and step by step go through all of them until the required goal is fully " \
436
+ "and correctly achieved.\n"
437
+ if 'self_loop' not in data['plugins']:
438
+ data['plugins']['self_loop'] = {}
439
+ data['plugins']['self_loop']['prompt'] = prompt # fixed prompt
440
+
441
+ # before fix (from 2.0.72)
442
+ prompt = 'IMAGE GENERATION: Whenever I provide a basic idea or concept for an image, such as \'a picture of ' \
443
+ 'mountains\', I want you to ALWAYS translate it into English and expand and elaborate on this idea. ' \
444
+ 'Use your knowledge and creativity to add details that would make the image more vivid and ' \
445
+ 'interesting. This could include specifying the time of day, weather conditions, surrounding ' \
446
+ 'environment, and any additional elements that could enhance the scene. Your goal is to create a ' \
447
+ 'detailed and descriptive prompt that provides DALL-E with enough information to generate a rich ' \
448
+ 'and visually appealing image. Remember to maintain the original intent of my request while ' \
449
+ 'enriching the description with your imaginative details. HOW TO START IMAGE GENERATION: to start ' \
450
+ 'image generation return to me prepared prompt in JSON format, all in one line, using following ' \
451
+ 'syntax: ~###~{"cmd": "image", "params": {"query": "your query here"}}~###~. Use ONLY this syntax ' \
452
+ 'and remember to surround JSON string with ~###~. DO NOT use any other syntax. Use English in the ' \
453
+ 'generated JSON command, but conduct all the remaining parts of the discussion with me in the ' \
454
+ 'language in which I am speaking to you. The image will be generated on my machine immediately ' \
455
+ 'after the command is issued, allowing us to discuss the photo once it has been created. Please ' \
456
+ 'engage with me about the photo itself, not only by giving the generate command. '
457
+ if 'openai_dalle' not in data['plugins']:
458
+ data['plugins']['openai_dalle'] = {}
459
+ data['plugins']['openai_dalle']['prompt'] = prompt # fixed prompt
460
+
461
+ updated = True
462
+
463
+ # < 2.0.88
464
+ if old < parse_version("2.0.88"):
465
+ print("Migrating config from < 2.0.88...")
466
+ prompt = "AUTONOMOUS MODE:\n1. You will now enter self-dialogue mode, where you will be conversing with " \
467
+ "yourself, not with a human.\n2. When you enter self-dialogue mode, remember that you are engaging " \
468
+ "in a conversation with yourself. Any user input will be considered a reply featuring your previous response.\n" \
469
+ "3. The objective of this self-conversation is well-defined—focus on achieving it.\n" \
470
+ "4. Your new message should be a continuation of the last response you generated, essentially replying" \
471
+ " to yourself and extending it.\n5. After each response, critically evaluate its effectiveness " \
472
+ "and alignment with the goal. If necessary, refine your approach.\n6. Incorporate self-critique " \
473
+ "after every response to capitalize on your strengths and address areas needing improvement.\n7. To " \
474
+ "advance towards the goal, utilize all the strategic thinking and resources at your disposal.\n" \
475
+ "8. Ensure that the dialogue remains coherent and logical, with each response serving as a stepping " \
476
+ "stone towards the ultimate objective.\n9. Treat the entire dialogue as a monologue aimed at devising" \
477
+ " the best possible solution to the problem.\n10. Conclude the self-dialogue upon realizing the " \
478
+ "goal or reaching a pivotal conclusion that meets the initial criteria.\n11. You are allowed to use " \
479
+ "any commands and tools without asking for it.\n12. While using commands, always use the correct " \
480
+ "syntax and never interrupt the command before generating the full instruction.\n13. ALWAYS break " \
481
+ "down the main task into manageable logical subtasks, systematically addressing and analyzing each" \
482
+ " one in sequence.\n14. With each subsequent response, make an effort to enhance your previous " \
483
+ "reply by enriching it with new ideas and do it automatically without asking for it.\n15. Any input " \
484
+ "that begins with 'user: ' will come from me, and I will be able to provide you with ANY additional " \
485
+ "commands or goal updates in this manner. The other inputs, not prefixed with 'user: ' will represent" \
486
+ " your previous responses.\n16. Start by breaking down the task into as many smaller sub-tasks as " \
487
+ "possible, then proceed to complete each one in sequence. Next, break down each sub-task into even " \
488
+ "smaller tasks, carefully and step by step go through all of them until the required goal is fully " \
489
+ "and correctly achieved.\n"
490
+ if 'self_loop' not in data['plugins']:
491
+ data['plugins']['self_loop'] = {}
492
+ data['plugins']['self_loop']['prompt'] = prompt # fixed prompt
493
+ updated = True
494
+
495
+ # < 2.0.91
496
+ if old < parse_version("2.0.91"):
497
+ print("Migrating config from < 2.0.91...")
498
+ self.window.core.updater.patch_css('style.dark.css', True) # force replace file
499
+ updated = True
500
+
501
+ # < 2.0.96
502
+ if old < parse_version("2.0.96"):
503
+ print("Migrating config from < 2.0.96...")
504
+ if 'img_quality' not in data:
505
+ data['img_quality'] = "standard"
506
+ updated = True
507
+
508
+ # < 2.0.98
509
+ if old < parse_version("2.0.98"):
510
+ print("Migrating config from < 2.0.98...")
511
+ data['img_resolution'] = "1792x1024" # char fix
512
+ self.window.core.updater.patch_css('style.css', True) # force replace file
513
+ self.window.core.updater.patch_css('style.light.css', True) # force replace file
514
+ self.window.core.updater.patch_css('style.dark.css', True) # force replace file
515
+ updated = True
516
+
517
+ # < 2.0.99
518
+ if old < parse_version("2.0.99"):
519
+ print("Migrating config from < 2.0.99...")
520
+ if 'layout.splitters' in data:
521
+ if 'calendar' in data['layout.splitters']:
522
+ # restore if was hidden at < 2.0.99
523
+ if len(data['layout.splitters']['calendar']) == 2 \
524
+ and data['layout.splitters']['calendar'][1] == 0:
525
+ data['layout.splitters']['calendar'] = [100, 100]
526
+ if data['layout.density'] == 0:
527
+ data['layout.density'] = -1
528
+ updated = True
529
+
530
+ # < 2.0.100
531
+ if old < parse_version("2.0.100"):
532
+ print("Migrating config from < 2.0.100...")
533
+ # rename output dir to data dir
534
+ src = os.path.join(self.window.core.config.path, 'output')
535
+ dst = os.path.join(self.window.core.config.path, 'data')
536
+
537
+ # migrate data dir name
538
+ if os.path.exists(src):
539
+ # backup old data dir
540
+ if os.path.exists(dst):
541
+ backup = os.path.join(self.window.core.config.path, 'data.backup')
542
+ os.rename(dst, backup)
543
+ # rename "output" to "data"
544
+ if os.path.exists(src):
545
+ os.rename(src, dst)
546
+
547
+ # add llama-index config keys:
548
+ if "llama.idx.auto" not in data:
549
+ data["llama.idx.auto"] = False
550
+ if "llama.idx.auto.index" not in data:
551
+ data["llama.idx.auto.index"] = "base"
552
+ if "llama.idx.current" not in data:
553
+ data["llama.idx.current"] = "base"
554
+ if "llama.idx.db.index" not in data:
555
+ data["llama.idx.db.index"] = ""
556
+ if "llama.idx.db.last" not in data:
557
+ data["llama.idx.db.last"] = 0
558
+ if "llama.idx.list" not in data:
559
+ data["llama.idx.list"] = [
560
+ {
561
+ "id": "base",
562
+ "name": "Base",
563
+ }
564
+ ]
565
+ if "llama.idx.status" not in data:
566
+ data["llama.idx.status"] = {}
567
+
568
+ if "llama.log" not in data:
569
+ data["llama.log"] = False
570
+
571
+ updated = True
572
+
573
+ # < 2.0.101
574
+ if old < parse_version("2.0.101"):
575
+ print("Migrating config from < 2.0.101...")
576
+ if 'layout.tooltips' not in data:
577
+ data['layout.tooltips'] = True
578
+ updated = True
579
+
580
+ # < 2.0.102
581
+ if old < parse_version("2.0.102"):
582
+ print("Migrating config from < 2.0.102...")
583
+ if 'llama.hub.loaders' not in data:
584
+ data['llama.hub.loaders'] = [
585
+ {
586
+ "ext": "pptx",
587
+ "loader": "PptxReader"
588
+ },
589
+ {
590
+ "ext": "png,jpg,jpeg",
591
+ "loader": "ImageReader"
592
+ }
593
+ ]
594
+ updated = True
595
+
596
+ # < 2.0.112
597
+ if old < parse_version("2.0.112"):
598
+ print("Migrating config from < 2.0.112...")
599
+ if 'img_dialog_open' not in data:
600
+ data['img_dialog_open'] = True
601
+ updated = True
602
+
603
+ # < 2.0.114
604
+ if old < parse_version("2.0.114"):
605
+ print("Migrating config from < 2.0.114...")
606
+ if 'llama.idx.storage' not in data:
607
+ data['llama.idx.storage'] = "SimpleVectorStore"
608
+ if 'llama.idx.storage.args' not in data:
609
+ data['llama.idx.storage.args'] = []
610
+ if 'llama.idx.raw' not in data:
611
+ data['llama.idx.raw'] = False
612
+ updated = True
613
+
614
+ # < 2.0.116
615
+ if old < parse_version("2.0.116"):
616
+ print("Migrating config from < 2.0.116...")
617
+ data['debug'] = False
618
+ updated = True
619
+
620
+ # < 2.0.118
621
+ if old < parse_version("2.0.118"):
622
+ print("Migrating config from < 2.0.118...")
623
+ if 'layout.tray' not in data:
624
+ data['layout.tray'] = True
625
+ updated = True
626
+
627
+ """
628
+ # < 2.0.119
629
+ if old < parse_version("2.0.119"):
630
+ print("Migrating config from < 2.0.119...")
631
+ if 'layout.minimized' not in data:
632
+ data['layout.minimized'] = False
633
+ updated = True
634
+ """
635
+
636
+ # < 2.0.121
637
+ if old < parse_version("2.0.121"):
638
+ print("Migrating config from < 2.0.121...")
639
+ if 'openai_vision' not in data['plugins']:
640
+ data['plugins']['openai_vision'] = {}
641
+ data['plugins']['openai_vision']['model'] = "gpt-4-vision-preview"
642
+ updated = True
643
+
644
+ # < 2.0.123
645
+ if old < parse_version("2.0.123"):
646
+ print("Migrating config from < 2.0.123...")
647
+ if 'llama.idx.recursive' not in data:
648
+ data['llama.idx.recursive'] = False
649
+ updated = True
650
+
651
+ # < 2.0.127
652
+ if old < parse_version("2.0.127"):
653
+ print("Migrating config from < 2.0.127...")
654
+ if 'upload.store' not in data:
655
+ data['upload.store'] = True
656
+ if 'upload.data_dir' not in data:
657
+ data['upload.data_dir'] = False
658
+ updated = True
659
+
660
+ # < 2.0.131
661
+ if old < parse_version("2.0.131"):
662
+ print("Migrating config from < 2.0.131...")
663
+ if 'self_loop' in data['plugins'] \
664
+ and 'prompts' not in data['plugins']['self_loop'] \
665
+ and 'prompt' in data['plugins']['self_loop'] \
666
+ and 'extended_prompt' in data['plugins']['self_loop']:
667
+
668
+ # copy old prompts to new list of prompts
669
+ data['plugins']['self_loop']['prompts'] = [
670
+ {
671
+ "enabled": True,
672
+ "name": "Default",
673
+ "prompt": data['plugins']['self_loop']['prompt'],
674
+ },
675
+ {
676
+ "enabled": False,
677
+ "name": "Extended",
678
+ "prompt": data['plugins']['self_loop']['extended_prompt'],
679
+ },
680
+ ]
681
+ updated = True
682
+
683
+ # < 2.0.132
684
+ if old < parse_version("2.0.132"):
685
+ print("Migrating config from < 2.0.132...")
686
+ if 'agent.auto_stop' not in data:
687
+ data['agent.auto_stop'] = True
688
+ if 'agent.iterations' not in data:
689
+ data['agent.iterations'] = 3
690
+ updated = True
691
+
692
+ # < 2.0.135
693
+ if old < parse_version("2.0.135"):
694
+ print("Migrating config from < 2.0.135...")
695
+ if 'agent.mode' not in data:
696
+ data['agent.mode'] = "chat"
697
+ if 'agent.idx' not in data:
698
+ data['agent.idx'] = "base"
699
+ updated = True
700
+
701
+ # < 2.0.138
702
+ if old < parse_version("2.0.138"):
703
+ print("Migrating config from < 2.0.138...")
704
+ if 'layout.tray.minimize' not in data:
705
+ data['layout.tray.minimize'] = False
706
+ updated = True
707
+
708
+ # < 2.0.139
709
+ if old < parse_version("2.0.139"):
710
+ print("Migrating config from < 2.0.139...")
711
+ data['updater.check.bg'] = True
712
+ if 'license.accepted' not in data:
713
+ data['license.accepted'] = False
714
+ if 'updater.check.bg.last_time' not in data:
715
+ data['updater.check.bg.last_time'] = None
716
+ if 'updater.check.bg.last_version' not in data:
717
+ data['updater.check.bg.last_version'] = None
718
+ updated = True
719
+
720
+ # < 2.0.142
721
+ if old < parse_version("2.0.142"):
722
+ print("Migrating config from < 2.0.142...")
723
+ if 'agent.goal.notify' not in data:
724
+ data['agent.goal.notify'] = True
725
+ updated = True
726
+
727
+ # < 2.0.143
728
+ if old < parse_version("2.0.143"):
729
+ print("Migrating config from < 2.0.143...")
730
+ if 'ctx.records.filter' not in data:
731
+ data['ctx.records.filter'] = "all"
732
+ updated = True
733
+
734
+ # < 2.0.144
735
+ if old < parse_version("2.0.144"):
736
+ print("Migrating config from < 2.0.144...")
737
+ if 'cmd_history' in data['plugins'] \
738
+ and 'syntax_get_ctx_list_in_date_range' in data['plugins']['cmd_history']:
739
+ # remove
740
+ del data['plugins']['cmd_history']['syntax_get_ctx_list_in_date_range']
741
+ if 'cmd_history' in data['plugins'] \
742
+ and 'syntax_get_ctx_content_by_id' in data['plugins']['cmd_history']:
743
+ # remove
744
+ del data['plugins']['cmd_history']['syntax_get_ctx_content_by_id']
745
+ updated = True
746
+
747
+ # < 2.0.149
748
+ if old < parse_version("2.0.149"):
749
+ print("Migrating config from < 2.0.149...")
750
+ # logger
751
+ if 'log.dalle' not in data:
752
+ data['log.dalle'] = False
753
+ if 'log.level' not in data:
754
+ data['log.level'] = "error"
755
+ if 'log.plugins' not in data:
756
+ data['log.plugins'] = False
757
+ if 'log.assistants' not in data:
758
+ data['log.assistants'] = False
759
+ if 'log.llama' not in data:
760
+ if 'llama.log' in data:
761
+ data['log.llama'] = data['llama.log']
762
+ del data['llama.log']
763
+ else:
764
+ data['log.llama'] = False
765
+
766
+ # painter
767
+ if 'painter.brush.color' not in data:
768
+ data['painter.brush.color'] = 'Black'
769
+ if 'painter.brush.mode' not in data:
770
+ data['painter.brush.mode'] = 'brush'
771
+ if 'painter.brush.size' not in data:
772
+ data['painter.brush.size'] = 3
773
+ updated = True
774
+
775
+ # < 2.0.152
776
+ if old < parse_version("2.0.152"):
777
+ print("Migrating config from < 2.0.152...")
778
+ data['cmd.prompt'] = self.window.core.config.get_base('cmd.prompt') # bg run fix
779
+ updated = True
780
+
781
+ # < 2.0.153
782
+ if old < parse_version("2.0.153"):
783
+ print("Migrating config from < 2.0.153...")
784
+ if 'layout.dialog.geometry.store' not in data:
785
+ data['layout.dialog.geometry.store'] = True
786
+ updated = True
787
+
788
+ # < 2.0.157
789
+ if old < parse_version("2.0.157"):
790
+ # decrease chunk size
791
+ print("Migrating config from < 2.0.157...")
792
+ if 'cmd_web_google' in data['plugins'] \
793
+ and 'chunk_size' in data['plugins']['cmd_web_google']:
794
+ if data['plugins']['cmd_web_google']['chunk_size'] > 20000:
795
+ data['plugins']['cmd_web_google']['chunk_size'] = 20000
796
+ updated = True
797
+
798
+ # < 2.0.161
799
+ if old < parse_version("2.0.161"):
800
+ print("Migrating config from < 2.0.161...")
801
+ if 'ctx.search_content' not in data:
802
+ data['ctx.search_content'] = False
803
+ if 'download.dir' not in data:
804
+ data['download.dir'] = "download"
805
+ updated = True
806
+
807
+ # < 2.0.162 - migrate indexes into db
808
+ if old < parse_version("2.0.162"):
809
+ print("Migrating indexes from < 2.0.162...")
810
+ if 'llama.idx.replace_old' not in data:
811
+ data['llama.idx.replace_old'] = True
812
+ self.window.core.idx.patch(old)
813
+ updated = True
814
+
815
+ # < 2.0.164 - migrate indexes into db
816
+ if old < parse_version("2.0.164"):
817
+ print("Migrating config from < 2.0.164...")
818
+
819
+ # Migrate plugins to provider-based versions
820
+
821
+ # rename cmd_web_google to cmd_web
822
+ if 'cmd_web_google' in data["plugins"]:
823
+ data["plugins"]["cmd_web"] = data["plugins"]["cmd_web_google"]
824
+ del data["plugins"]["cmd_web_google"]
825
+ if 'cmd_web_google' in data["plugins_enabled"]:
826
+ data["plugins_enabled"]["cmd_web"] = data["plugins_enabled"]["cmd_web_google"]
827
+ del data["plugins_enabled"]["cmd_web_google"]
828
+
829
+ # rename audio_openai_whisper to audio_input
830
+ if 'audio_openai_whisper' in data["plugins"]:
831
+ data["plugins"]["audio_input"] = data["plugins"]["audio_openai_whisper"]
832
+ del data["plugins"]["audio_openai_whisper"]
833
+ if 'audio_openai_whisper' in data["plugins_enabled"]:
834
+ data["plugins_enabled"]["audio_input"] = data["plugins_enabled"]["audio_openai_whisper"]
835
+ del data["plugins_enabled"]["audio_openai_whisper"]
836
+
837
+ # migrate model to whisper_model
838
+ if 'audio_input' in data["plugins"] and "model" in data["plugins"]["audio_input"]:
839
+ data["plugins"]["audio_input"]["whisper_model"] = data["plugins"]["audio_input"]["model"]
840
+ del data["plugins"]["audio_input"]["model"]
841
+
842
+ # rename audio_openai_tts to audio_output
843
+ if 'audio_openai_tts' in data["plugins"]:
844
+ data["plugins"]["audio_output"] = data["plugins"]["audio_openai_tts"]
845
+ del data["plugins"]["audio_openai_tts"]
846
+ if 'audio_openai_tts' in data["plugins_enabled"]:
847
+ data["plugins_enabled"]["audio_output"] = data["plugins_enabled"]["audio_openai_tts"]
848
+ del data["plugins_enabled"]["audio_openai_tts"]
849
+
850
+ # migrate model and voice to openai_model and openai_voice
851
+ if 'audio_output' in data["plugins"] and "model" in data["plugins"]["audio_output"]:
852
+ data["plugins"]["audio_output"]["openai_model"] = data["plugins"]["audio_output"]["model"]
853
+ del data["plugins"]["audio_output"]["model"]
854
+ if 'audio_output' in data["plugins"] and "voice" in data["plugins"]["audio_output"]:
855
+ data["plugins"]["audio_output"]["openai_voice"] = data["plugins"]["audio_output"]["voice"]
856
+ del data["plugins"]["audio_output"]["voice"]
857
+
858
+ # migrate azure settings
859
+ if 'audio_azure' in data["plugins"] and "azure_api_key" in data["plugins"]["audio_azure"]:
860
+ data["plugins"]["audio_output"]["azure_api_key"] = data["plugins"]["audio_azure"]["azure_api_key"]
861
+ if 'audio_azure' in data["plugins"] and "azure_region" in data["plugins"]["audio_azure"]:
862
+ data["plugins"]["audio_output"]["azure_region"] = data["plugins"]["audio_azure"]["azure_region"]
863
+ if 'audio_azure' in data["plugins"] and "voice_en" in data["plugins"]["audio_azure"]:
864
+ data["plugins"]["audio_output"]["azure_voice_en"] = data["plugins"]["audio_azure"]["voice_en"]
865
+ if 'audio_azure' in data["plugins"] and "voice_pl" in data["plugins"]["audio_azure"]:
866
+ data["plugins"]["audio_output"]["azure_voice_pl"] = data["plugins"]["audio_azure"]["voice_pl"]
867
+
868
+ # remove audio voice
869
+ if 'audio_output' in data["plugins"] and "voice_en" in data["plugins"]["audio_output"]:
870
+ del data["plugins"]["audio_output"]["voice_en"]
871
+ if 'audio_output' in data["plugins"] and "voice_pl" in data["plugins"]["audio_output"]:
872
+ del data["plugins"]["audio_output"]["voice_pl"]
873
+
874
+ # remove audio_azure
875
+ if 'audio_azure' in data["plugins"]:
876
+ del data["plugins"]["audio_azure"]
877
+ if 'audio_azure' in data["plugins_enabled"]:
878
+ del data["plugins_enabled"]["audio_azure"]
879
+
880
+ updated = True
881
+
882
+ # < 2.0.165
883
+ if old < parse_version("2.0.165"):
884
+ print("Migrating config from < 2.0.165...")
885
+ if 'llama.idx.excluded_ext' not in data:
886
+ data['llama.idx.excluded_ext'] = "3g2,3gp,7z,a,aac,aiff,alac,apk,apk,apng,app,ar,avi,avif," \
887
+ "bin,bmp,bz2,cab,class,deb,deb,dll,dmg,dmg,drv,dsd,dylib," \
888
+ "dylib,ear,egg,elf,esd,exe,flac,flv,gif,gz,heic,heif,ico," \
889
+ "img,iso,jar,jpeg,jpg,ko,lib,lz,lz4,m2v,m4a,m4v,mkv,mov,mp3," \
890
+ "mp4,mpc,msi,nrg,o,ogg,ogv,pcm,pkg,pkg,png,psd,pyc,rar,rpm,rpm," \
891
+ "so,so,svg,swm,sys,tar,tiff,vdi,vhd,vhdx,vmdk,vob,war,wav," \
892
+ "webm,webp,whl,wim,wma,wmv,xz,zip,zst"
893
+ if 'cmd_custom' in data["plugins"]:
894
+ if 'cmds' in data["plugins"]["cmd_custom"]:
895
+ for i, cmd in enumerate(data["plugins"]["cmd_custom"]["cmds"]):
896
+ if "enabled" not in cmd:
897
+ data["plugins"]["cmd_custom"]["cmds"][i]["enabled"] = True
898
+ updated = True
899
+
900
+ # < 2.0.166 - migrate self_loop plugin to agent
901
+ if old < parse_version("2.0.166"):
902
+ print("Migrating config from < 2.0.166...")
903
+ if 'self_loop' in data["plugins"]:
904
+ data["plugins"]["agent"] = data["plugins"]["self_loop"]
905
+ del data["plugins"]["self_loop"]
906
+ if 'self_loop' in data["plugins_enabled"]:
907
+ data["plugins_enabled"]["agent"] = data["plugins_enabled"]["self_loop"]
908
+ del data["plugins_enabled"]["self_loop"]
909
+ updated = True
910
+
911
+ # < 2.0.170 - add audio input language
912
+ if old < parse_version("2.0.170"):
913
+ print("Migrating config from < 2.0.170...")
914
+ if 'audio_input' in data["plugins"]:
915
+ # add language to google_args if not present
916
+ is_lang = False
917
+ if "google_args" in data["plugins"]["audio_input"] \
918
+ and isinstance(data["plugins"]["audio_input"]["google_args"], list):
919
+ for option in data["plugins"]["audio_input"]["google_args"]:
920
+ if option["name"] == "language":
921
+ is_lang = True
922
+ break
923
+ if not is_lang:
924
+ if "google_args" not in data["plugins"]["audio_input"] or \
925
+ not isinstance(data["plugins"]["audio_input"]["google_args"], list):
926
+ data["plugins"]["audio_input"]["google_args"] = []
927
+ data["plugins"]["audio_input"]["google_args"].append({
928
+ "name": "language",
929
+ "value": "en-US",
930
+ "type": "str",
931
+ })
932
+
933
+ # add language to google_cloud_args if not present
934
+ is_lang = False
935
+ if "google_cloud_args" in data["plugins"]["audio_input"] \
936
+ and isinstance(data["plugins"]["audio_input"]["google_cloud_args"], list):
937
+ for option in data["plugins"]["audio_input"]["google_cloud_args"]:
938
+ if option["name"] == "language":
939
+ is_lang = True
940
+ break
941
+ if not is_lang:
942
+ if "google_cloud_args" not in data["plugins"]["audio_input"] or \
943
+ not isinstance(data["plugins"]["audio_input"]["google_cloud_args"], list):
944
+ data["plugins"]["audio_input"]["google_cloud_args"] = []
945
+ data["plugins"]["audio_input"]["google_cloud_args"].append({
946
+ "name": "language",
947
+ "value": "en-US",
948
+ "type": "str",
949
+ })
950
+
951
+ # add language to bing_args if not present
952
+ is_lang = False
953
+ if "bing_args" in data["plugins"]["audio_input"] \
954
+ and isinstance(data["plugins"]["audio_input"]["bing_args"], list):
955
+ for option in data["plugins"]["audio_input"]["bing_args"]:
956
+ if option["name"] == "language":
957
+ is_lang = True
958
+ break
959
+ if not is_lang:
960
+ if "bing_args" not in data["plugins"]["audio_input"] or \
961
+ not isinstance(data["plugins"]["audio_input"]["bing_args"], list):
962
+ data["plugins"]["audio_input"]["bing_args"] = []
963
+ data["plugins"]["audio_input"]["bing_args"].append({
964
+ "name": "language",
965
+ "value": "en-US",
966
+ "type": "str",
967
+ })
968
+ updated = True
969
+
970
+ # < 2.0.172 - fix cmd syntax
971
+ if old < parse_version("2.0.172"):
972
+ print("Migrating config from < 2.0.172...")
973
+ if 'cmd_files' in data["plugins"] and 'syntax_file_index' in data["plugins"]["cmd_files"]:
974
+ syntax = '"file_index": use it to index (embed in Vector Store) a file or directory for ' \
975
+ 'future use, params: "path"'
976
+ data["plugins"]["cmd_files"]["syntax_file_index"] = syntax
977
+ if 'cmd_web' in data["plugins"] and 'syntax_web_url_open' in data["plugins"]["cmd_web"]:
978
+ syntax = '"web_url_open": use it to get contents from a specific Web page. ' \
979
+ 'Use a custom summary prompt if necessary, otherwise a default summary will be used, ' \
980
+ 'params: "url", "summarize_prompt"'
981
+ data["plugins"]["cmd_web"]["syntax_web_url_open"] = syntax
982
+ if 'cmd_web' in data["plugins"] and 'syntax_web_url_raw' in data["plugins"]["cmd_web"]:
983
+ syntax = '"web_url_raw": use it to get RAW text/html content (not summarized) from ' \
984
+ 'a specific Web page, params: "url"'
985
+ data["plugins"]["cmd_web"]["syntax_web_url_raw"] = syntax
986
+ if 'cmd_web' in data["plugins"] and 'syntax_web_urls' in data["plugins"]["cmd_web"]:
987
+ syntax = '"web_urls": use it to search the Web for URLs to use, prepare a search query itself, ' \
988
+ 'a list of found links to websites will be returned, 10 links per page max. ' \
989
+ 'You can change the page or the number of links per page using the provided parameters, ' \
990
+ 'params: "query", "page", "num_links"'
991
+ data["plugins"]["cmd_web"]["syntax_web_urls"] = syntax
992
+ updated = True
993
+
994
+ # < 2.1.1
995
+ if old < parse_version("2.1.1"):
996
+ print("Migrating config from < 2.1.1...")
997
+ if 'llama.hub.loaders.args' not in data:
998
+ data['llama.hub.loaders.args'] = []
999
+ updated = True
1000
+
1001
+ # < 2.1.2
1002
+ if old < parse_version("2.1.2"):
1003
+ print("Migrating config from < 2.1.2...")
1004
+ if 'llama.hub.loaders.use_local' not in data:
1005
+ data['llama.hub.loaders.use_local'] = False
1006
+ updated = True
1007
+
1008
+ # < 2.1.5 - syntax
1009
+ if old < parse_version("2.1.5"):
1010
+ print("Migrating config from < 2.1.5...")
1011
+ if 'cmd_files' in data["plugins"] and 'syntax_file_index' in data["plugins"]["cmd_files"]:
1012
+ syntax = '"file_index": use it to index (embed in Vector Store) a file or directory, params: "path"'
1013
+ data["plugins"]["cmd_files"]["syntax_file_index"] = syntax
1014
+ updated = True
1015
+
1016
+ # < 2.1.8 - syntax
1017
+ if old < parse_version("2.1.8"):
1018
+ print("Migrating config from < 2.1.8...")
1019
+ if 'idx_llama_index' in data["plugins"] and 'syntax_prepare_question' in data["plugins"]["idx_llama_index"]:
1020
+ syntax = 'Simplify the question into a short query for retrieving information from a vector store.'
1021
+ data["plugins"]["idx_llama_index"]["syntax_prepare_question"] = syntax
1022
+ updated = True
1023
+
1024
+ # < 2.1.9 - syntax
1025
+ if old < parse_version("2.1.9"):
1026
+ print("Migrating config from < 2.1.9...")
1027
+ if 'cmd_files' in data["plugins"] and 'syntax_read_file' in data["plugins"]["cmd_files"]:
1028
+ syntax = '"read_file": read data from file, if multiple files then pass list of files, params: "filename"'
1029
+ data["plugins"]["cmd_files"]["syntax_read_file"] = syntax
1030
+ if 'log.events' not in data:
1031
+ data["log.events"] = False
1032
+ updated = True
1033
+
1034
+ # < 2.1.10
1035
+ if old < parse_version("2.1.10"):
1036
+ print("Migrating config from < 2.1.10...")
1037
+
1038
+ # fix missing updated before >>>
1039
+ if 'cmd_files' in data["plugins"] and 'syntax_file_index' in data["plugins"]["cmd_files"]:
1040
+ syntax = '"file_index": use it to index (embed in Vector Store) a file or directory, params: "path"'
1041
+ data["plugins"]["cmd_files"]["syntax_file_index"] = syntax
1042
+ if 'idx_llama_index' in data["plugins"] and 'syntax_prepare_question' in data["plugins"]["idx_llama_index"]:
1043
+ syntax = 'Simplify the question into a short query for retrieving information from a vector store.'
1044
+ data["plugins"]["idx_llama_index"]["syntax_prepare_question"] = syntax
1045
+ if 'cmd_files' in data["plugins"] and 'syntax_read_file' in data["plugins"]["cmd_files"]:
1046
+ syntax = '"read_file": read data from file, if multiple files then pass list of files, params: "filename"'
1047
+ data["plugins"]["cmd_files"]["syntax_read_file"] = syntax
1048
+ if 'log.events' not in data:
1049
+ data["log.events"] = False
1050
+ # <<< fix missing updated before
1051
+
1052
+ # current
1053
+ if 'ctx.records.filter.labels' not in data:
1054
+ data["ctx.records.filter.labels"] = [0, 1, 2, 3, 4, 5, 6, 7]
1055
+
1056
+ if 'preset.plugins' not in data:
1057
+ data["preset.plugins"] = ""
1058
+
1059
+ if 'ctx.records.filter' in data and str(data["ctx.records.filter"]).startswith("label"):
1060
+ data["ctx.records.filter"] = "all"
1061
+ updated = True
1062
+
1063
+ if old < parse_version("2.1.12"):
1064
+ print("Migrating config from < 2.1.12...")
1065
+ if 'max_requests_limit' not in data:
1066
+ data["max_requests_limit"] = 60
1067
+ if 'ctx.allow_item_delete' not in data:
1068
+ data["ctx.allow_item_delete"] = True
1069
+ if 'ctx.counters.all' not in data:
1070
+ data["ctx.counters.all"] = False
1071
+ if 'agent.prompt.continue' not in data:
1072
+ data["agent.prompt.continue"] = "continue..."
1073
+ if 'api_endpoint' not in data:
1074
+ data["api_endpoint"] = "https://api.openai.com/v1"
1075
+ updated = True
1076
+
1077
+ if old < parse_version("2.1.15"):
1078
+ print("Migrating config from < 2.1.15...")
1079
+ if 'ctx.edit_icons' not in data:
1080
+ data["ctx.edit_icons"] = False
1081
+ if 'llama.idx.auto.modes' not in data:
1082
+ data["llama.idx.auto.modes"] = "chat,completion,vision,assistant,langchain,llama_index,agent"
1083
+ if 'ctx.allow_item_delete' in data:
1084
+ del data["ctx.allow_item_delete"]
1085
+ updated = True
1086
+
1087
+ if old < parse_version("2.1.16"):
1088
+ print("Migrating config from < 2.1.16...")
1089
+ if 'ctx.sources' not in data:
1090
+ data["ctx.sources"] = True
1091
+ updated = True
1092
+
1093
+ if old < parse_version("2.1.18"):
1094
+ print("Migrating config from < 2.1.18...")
1095
+ if 'ctx.audio' not in data:
1096
+ data["ctx.audio"] = True
1097
+ updated = True
1098
+
1099
+ if old < parse_version("2.1.19"):
1100
+ print("Migrating config from < 2.1.19...")
1101
+ if 'llama.idx.excluded_ext' in data:
1102
+ data["llama.idx.excluded.ext"] = copy.deepcopy(data["llama.idx.excluded_ext"])
1103
+ del data["llama.idx.excluded_ext"]
1104
+ if 'llama.idx.excluded.force' not in data:
1105
+ data["llama.idx.excluded.force"] = False
1106
+ if 'llama.idx.custom_meta' not in data:
1107
+ data["llama.idx.custom_meta"] = [
1108
+ {
1109
+ "extensions": "*",
1110
+ "key": "file_name",
1111
+ "value": "{relative_path}"
1112
+ }
1113
+ ]
1114
+ updated = True
1115
+
1116
+ # < 2.1.20
1117
+ if old < parse_version("2.1.20"):
1118
+ print("Migrating config from < 2.1.20...")
1119
+ data['cmd.prompt'] = self.window.core.config.get_base('cmd.prompt') # moved to json schema
1120
+ updated = True
1121
+
1122
+ # < 2.1.22
1123
+ if old < parse_version("2.1.22"):
1124
+ print("Migrating config from < 2.1.22...")
1125
+ if 'llama.idx.custom_meta.web' not in data:
1126
+ data["llama.idx.custom_meta.web"] = []
1127
+ updated = True
1128
+
1129
+ # < 2.1.23
1130
+ if old < parse_version("2.1.23"):
1131
+ print("Migrating config from < 2.1.23...")
1132
+ if 'llama.idx.embeddings.provider' not in data:
1133
+ data["llama.idx.embeddings.provider"] = "openai"
1134
+ if 'llama.idx.embeddings.args' not in data:
1135
+ data["llama.idx.embeddings.args"] = [
1136
+ {
1137
+ "name": "model",
1138
+ "value": "text-embedding-3-small",
1139
+ "type": "str"
1140
+ }
1141
+ ]
1142
+ if 'llama.idx.embeddings.env' not in data:
1143
+ data["llama.idx.embeddings.env"] = [
1144
+ {
1145
+ "name": "OPENAI_API_KEY",
1146
+ "value": "{api_key}",
1147
+ },
1148
+ {
1149
+ "name": "OPENAI_API_BASE",
1150
+ "value": "{api_endpoint}",
1151
+ }
1152
+ ]
1153
+ self.window.core.plugins.reset_options("cmd_web", [
1154
+ "cmd.web_url_open",
1155
+ "cmd.web_url_raw",
1156
+ ])
1157
+ updated = True
1158
+
1159
+ # < 2.1.26
1160
+ if old < parse_version("2.1.26"):
1161
+ print("Migrating config from < 2.1.26...")
1162
+ if 'agent.prompt.continue' in data and data['agent.prompt.continue'] == 'continue...':
1163
+ data["agent.prompt.continue"] = "continue if needed..."
1164
+ self.window.core.plugins.reset_options("idx_llama_index", [
1165
+ "prompt",
1166
+ ])
1167
+ updated = True
1168
+
1169
+ # < 2.1.28
1170
+ if old < parse_version("2.1.28"):
1171
+ print("Migrating config from < 2.1.28...")
1172
+ if 'log.ctx' not in data:
1173
+ data["log.ctx"] = True
1174
+ if 'llama.idx.embeddings.limit.rpm' not in data:
1175
+ data["llama.idx.embeddings.limit.rpm"] = 100
1176
+ updated = True
1177
+
1178
+ # < 2.1.29
1179
+ if old < parse_version("2.1.29"):
1180
+ print("Migrating config from < 2.1.29...")
1181
+ self.window.core.plugins.reset_options("cmd_code_interpreter", [
1182
+ "cmd.code_execute",
1183
+ ])
1184
+ updated = True
1185
+
1186
+ # < 2.1.31
1187
+ if old < parse_version("2.1.31"):
1188
+ print("Migrating config from < 2.1.31...")
1189
+ self.window.core.plugins.reset_options("cmd_code_interpreter", [
1190
+ "cmd.code_execute",
1191
+ ])
1192
+ files_to_move = [
1193
+ {"_interpreter.current.py": ".interpreter.current.py"},
1194
+ {"_interpreter.py": ".interpreter.output.py"},
1195
+ {"_interpreter.input.py": ".interpreter.input.py"},
1196
+ ]
1197
+ files_to_remove = [
1198
+ "_interpreter.tmp.py",
1199
+ ]
1200
+ dir = self.window.core.config.get_user_dir("data")
1201
+ try:
1202
+ for file in files_to_move:
1203
+ for src, dst in file.items():
1204
+ src = os.path.join(dir, src)
1205
+ dst = os.path.join(dir, dst)
1206
+ if os.path.exists(src):
1207
+ os.rename(src, dst)
1208
+ for file in files_to_remove:
1209
+ file = os.path.join(dir, file)
1210
+ if os.path.exists(file):
1211
+ os.remove(file)
1212
+ except Exception as e:
1213
+ print("Error while migrating interpreter files:", e)
1214
+
1215
+ updated = True
1216
+
1217
+ # < 2.1.32
1218
+ if old < parse_version("2.1.32"):
1219
+ print("Migrating config from < 2.1.32...")
1220
+ if 'ctx.use_extra' not in data:
1221
+ data["ctx.use_extra"] = True
1222
+
1223
+ self.window.core.plugins.reset_options("real_time", [
1224
+ "tpl",
1225
+ ])
1226
+
1227
+ # old keys first
1228
+ data['cmd.prompt'] = self.window.core.config.get_base('prompt.cmd') # new format
1229
+ data['cmd.prompt.extra'] = self.window.core.config.get_base('prompt.cmd.extra') # new format
1230
+ data['cmd.prompt.extra.assistants'] = self.window.core.config.get_base('prompt.cmd.extra.assistants') # new format
1231
+
1232
+ # new keys
1233
+ data['prompt.agent.goal'] = self.window.core.config.get_base('prompt.agent.goal') # new format
1234
+
1235
+ # replace to new keys
1236
+ self.window.core.config.replace_key(data, "img_prompt", "prompt.img")
1237
+ self.window.core.config.replace_key(data, "ctx.auto_summary.prompt", "prompt.ctx.auto_summary.user")
1238
+ self.window.core.config.replace_key(data, "ctx.auto_summary.system", "prompt.ctx.auto_summary.system")
1239
+ self.window.core.config.replace_key(data, "cmd.prompt", "prompt.cmd")
1240
+ self.window.core.config.replace_key(data, "cmd.prompt.extra", "prompt.cmd.extra")
1241
+ self.window.core.config.replace_key(data, "cmd.prompt.extra.assistants", "prompt.cmd.extra.assistants")
1242
+ self.window.core.config.replace_key(data, "agent.prompt.continue", "prompt.agent.continue")
1243
+ self.window.core.config.replace_key(data, "default_prompt", "prompt.default")
1244
+ updated = True
1245
+
1246
+ # < 2.1.35
1247
+ if old < parse_version("2.1.35"):
1248
+ print("Migrating config from < 2.1.35...")
1249
+ if 'interpreter.auto_clear' not in data:
1250
+ data["interpreter.auto_clear"] = True
1251
+ if 'interpreter.execute_all' not in data:
1252
+ data["interpreter.execute_all"] = True
1253
+ if 'interpreter.edit' not in data:
1254
+ data["interpreter.edit"] = False
1255
+ if 'interpreter.input' not in data:
1256
+ data["interpreter.input"] = ""
1257
+ if 'video.player.path' not in data:
1258
+ data["video.player.path"] = ""
1259
+ if 'video.player.volume' not in data:
1260
+ data["video.player.volume"] = 100
1261
+ if 'video.player.volume.mute' not in data:
1262
+ data["video.player.volume.mute"] = False
1263
+ updated = True
1264
+
1265
+ # < 2.1.37
1266
+ if old < parse_version("2.1.37"):
1267
+ print("Migrating config from < 2.1.37...")
1268
+ if 'audio.transcribe.convert_video' not in data:
1269
+ data["audio.transcribe.convert_video"] = True
1270
+ updated = True
1271
+
1272
+ # < 2.1.38
1273
+ if old < parse_version("2.1.38"):
1274
+ print("Migrating config from < 2.1.38...")
1275
+ if 'lang' in data and data['lang'] == 'ua':
1276
+ data["lang"] = "uk"
1277
+ updated = True
1278
+
1279
+ # < 2.1.45
1280
+ if old < parse_version("2.1.45"):
1281
+ print("Migrating config from < 2.1.45...")
1282
+ if 'ctx.copy_code' not in data:
1283
+ data["ctx.copy_code"] = True
1284
+ updated = True
1285
+
1286
+ # < 2.1.52
1287
+ if old < parse_version("2.1.52"):
1288
+ print("Migrating config from < 2.1.52...")
1289
+ if 'ctx.code_interpreter' not in data:
1290
+ data["ctx.code_interpreter"] = True
1291
+ updated = True
1292
+
1293
+ # < 2.1.59
1294
+ if old < parse_version("2.1.59"):
1295
+ print("Migrating config from < 2.1.59...")
1296
+ if 'render.code_syntax' not in data:
1297
+ data["render.code_syntax"] = "github-dark"
1298
+ if 'zoom' not in data:
1299
+ data["zoom"] = 1.0
1300
+ if 'ctx.convert_lists' not in data:
1301
+ data["ctx.convert_lists"] = False
1302
+ if 'render.engine' not in data:
1303
+ data["render.engine"] = "web"
1304
+ if 'render.open_gl' not in data:
1305
+ data["render.open_gl"] = False
1306
+
1307
+ # in snap, leave legacy render engine by default
1308
+ # if self.window.core.platforms.is_snap():
1309
+ # data["render.engine"] = "legacy"
1310
+
1311
+ # css upgrade
1312
+ self.window.core.updater.patch_css('web.css', True) # NEW
1313
+ self.window.core.updater.patch_css('web.light.css', True) # NEW
1314
+ self.window.core.updater.patch_css('web.dark.css', True) # NEW
1315
+ updated = True
1316
+
1317
+ # < 2.1.60
1318
+ if old < parse_version("2.1.60"):
1319
+ print("Migrating config from < 2.1.60...")
1320
+ # css upgrade
1321
+ self.window.core.updater.patch_css('web.css', True) # force update
1322
+ updated = True
1323
+
1324
+ # < 2.1.61
1325
+ if old < parse_version("2.1.61"):
1326
+ print("Migrating config from < 2.1.61...")
1327
+ # css upgrade
1328
+ self.window.core.updater.patch_css('web.css', True) # force update
1329
+ updated = True
1330
+
1331
+ # < 2.1.63
1332
+ if old < parse_version("2.1.63"):
1333
+ print("Migrating config from < 2.1.63...")
1334
+ # css upgrade
1335
+ self.window.core.updater.patch_css('web.css', True) # force update
1336
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1337
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1338
+ updated = True
1339
+
1340
+ # < 2.1.70
1341
+ if old < parse_version("2.1.70"):
1342
+ print("Migrating config from < 2.1.70...")
1343
+ # css upgrade
1344
+ self.window.core.updater.patch_css('web.css', True) # force update
1345
+ updated = True
1346
+
1347
+ # < 2.1.72
1348
+ if old < parse_version("2.1.72"):
1349
+ print("Migrating config from < 2.1.72...")
1350
+ # css upgrade
1351
+ self.window.core.updater.patch_css('web.css', True) # force update
1352
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1353
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1354
+ updated = True
1355
+
1356
+ # < 2.1.73
1357
+ if old < parse_version("2.1.73"):
1358
+ print("Migrating config from < 2.1.73...")
1359
+ # fix: issue #50
1360
+ if "llama.idx.embeddings.args" in data:
1361
+ for arg in data["llama.idx.embeddings.args"]:
1362
+ if "type" not in arg:
1363
+ arg["type"] = "str"
1364
+ updated = True
1365
+
1366
+ # < 2.1.74
1367
+ if old < parse_version("2.1.74"):
1368
+ print("Migrating config from < 2.1.74...")
1369
+ # css upgrade
1370
+ self.window.core.updater.patch_css('web.css', True) # force update
1371
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1372
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1373
+ updated = True
1374
+
1375
+ # < 2.1.75
1376
+ if old < parse_version("2.1.75"):
1377
+ print("Migrating config from < 2.1.75...")
1378
+ # css upgrade
1379
+ self.window.core.updater.patch_css('web.css', True) # force update
1380
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1381
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1382
+ updated = True
1383
+
1384
+ # < 2.1.76
1385
+ if old < parse_version("2.1.76"):
1386
+ print("Migrating config from < 2.1.76...")
1387
+ if 'render.blocks' not in data:
1388
+ data["render.blocks"] = True
1389
+ # css upgrade
1390
+ self.window.core.updater.patch_css('web.css', True) # force update
1391
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1392
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1393
+ updated = True
1394
+
1395
+ # < 2.1.78
1396
+ if old < parse_version("2.1.78"):
1397
+ print("Migrating config from < 2.1.78...")
1398
+ # css upgrade, scroll bg
1399
+ self.window.core.updater.patch_css('web.css', True) # force update
1400
+ self.window.core.updater.patch_css('web.light.css', True) # force update
1401
+ self.window.core.updater.patch_css('web.dark.css', True) # force update
1402
+ updated = True
1403
+
1404
+ # < 2.1.79
1405
+ if old < parse_version("2.1.79"):
1406
+ print("Migrating config from < 2.1.79...")
1407
+ if 'assistant.store.hide_threads' not in data:
1408
+ data["assistant.store.hide_threads"] = True
1409
+ updated = True
1410
+
1411
+ # < 2.2.2
1412
+ if old < parse_version("2.2.2"):
1413
+ print("Migrating config from < 2.2.2...")
1414
+ if 'app.env' not in data:
1415
+ data["app.env"] = []
1416
+ updated = True
1417
+
1418
+ # < 2.2.7
1419
+ if old < parse_version("2.2.7"):
1420
+ print("Migrating config from < 2.2.7...")
1421
+ if 'prompt.agent.instruction' not in data:
1422
+ data["prompt.agent.instruction"] = ""
1423
+ if 'prompt.expert' not in data:
1424
+ data["prompt.expert"] = ""
1425
+ if 'experts.mode' not in data:
1426
+ data["experts.mode"] = "chat"
1427
+ # from base
1428
+ data["prompt.agent.instruction"] = self.window.core.config.get_base('prompt.agent.instruction')
1429
+ data["prompt.agent.continue"] = self.window.core.config.get_base('prompt.agent.continue')
1430
+ data["prompt.agent.goal"] = self.window.core.config.get_base('prompt.agent.goal')
1431
+ data["prompt.expert"] = self.window.core.config.get_base('prompt.expert')
1432
+ data["prompt.img"] = self.window.core.config.get_base('prompt.img')
1433
+ updated = True
1434
+
1435
+ # < 2.2.8
1436
+ if old < parse_version("2.2.8"):
1437
+ print("Migrating config from < 2.2.8...")
1438
+ if 'access.audio.event.speech' not in data:
1439
+ data["access.audio.event.speech"] = False
1440
+ if 'access.audio.notify.execute' not in data:
1441
+ data["access.audio.notify.execute"] = True
1442
+ if 'access.microphone.notify' not in data:
1443
+ data["access.microphone.notify"] = True
1444
+ if 'access.shortcuts' not in data:
1445
+ data["access.shortcuts"] = [
1446
+ {
1447
+ "action": "voice_cmd.toggle",
1448
+ "key": "Space",
1449
+ "key_modifier": "Control"
1450
+ },
1451
+ {
1452
+ "action": "tab.chat",
1453
+ "key": "1",
1454
+ "key_modifier": "Control"
1455
+ },
1456
+ {
1457
+ "action": "tab.files",
1458
+ "key": "2",
1459
+ "key_modifier": "Control"
1460
+ },
1461
+ {
1462
+ "action": "tab.calendar",
1463
+ "key": "3",
1464
+ "key_modifier": "Control"
1465
+ },
1466
+ {
1467
+ "action": "tab.draw",
1468
+ "key": "4",
1469
+ "key_modifier": "Control"
1470
+ },
1471
+ {
1472
+ "action": "tab.notepad",
1473
+ "key": "5",
1474
+ "key_modifier": "Control"
1475
+ }
1476
+ ]
1477
+ if 'access.voice_control' not in data:
1478
+ data["access.voice_control"] = False
1479
+ if 'access.voice_control.model' not in data:
1480
+ data["access.voice_control.model"] = "gpt-3.5-turbo"
1481
+ updated = True
1482
+
1483
+ # < 2.2.11
1484
+ if old < parse_version("2.2.11"):
1485
+ print("Migrating config from < 2.2.11...")
1486
+ if 'access.audio.event.speech.disabled' not in data:
1487
+ data["access.audio.event.speech.disabled"] = []
1488
+ updated = True
1489
+
1490
+ # < 2.2.14
1491
+ if old < parse_version("2.2.14"):
1492
+ print("Migrating config from < 2.2.14...")
1493
+ if 'access.voice_control.blacklist' not in data:
1494
+ data["access.voice_control.blacklist"] = []
1495
+ updated = True
1496
+
1497
+ # < 2.2.16
1498
+ if old < parse_version("2.2.16"):
1499
+ print("Migrating config from < 2.2.16...")
1500
+ if 'access.audio.use_cache' not in data:
1501
+ data["access.audio.use_cache"] = True
1502
+ updated = True
1503
+
1504
+ # < 2.2.20
1505
+ if old < parse_version("2.2.20"):
1506
+ print("Migrating config from < 2.2.20...")
1507
+ if 'func_call.native' not in data:
1508
+ data["func_call.native"] = True
1509
+ self.window.core.updater.patch_css('web.css', True) # force update
1510
+ updated = True
1511
+
1512
+ # < 2.2.22
1513
+ if old < parse_version("2.2.22"):
1514
+ print("Migrating config from < 2.2.22...")
1515
+ if 'llama.idx.stop.error' not in data:
1516
+ data["llama.idx.stop.error"] = True
1517
+ updated = True
1518
+
1519
+ # < 2.2.25
1520
+ if old < parse_version("2.2.25"):
1521
+ print("Migrating config from < 2.2.25...")
1522
+ data["prompt.expert"] = self.window.core.config.get_base('prompt.expert')
1523
+ updated = True
1524
+
1525
+ # < 2.2.26
1526
+ if old < parse_version("2.2.26"):
1527
+ print("Migrating config from < 2.2.26...")
1528
+ if 'ctx.records.folders.top' not in data:
1529
+ data["ctx.records.folders.top"] = False
1530
+ if 'ctx.records.separators' not in data:
1531
+ data["ctx.records.separators"] = True
1532
+ if 'ctx.records.groups.separators' not in data:
1533
+ data["ctx.records.groups.separators"] = True
1534
+ updated = True
1535
+
1536
+ # < 2.2.27
1537
+ if old < parse_version("2.2.27"):
1538
+ print("Migrating config from < 2.2.27...")
1539
+ if 'ctx.records.pinned.separators' not in data:
1540
+ data["ctx.records.pinned.separators"] = False
1541
+ updated = True
1542
+
1543
+ # < 2.2.28
1544
+ if old < parse_version("2.2.28"):
1545
+ print("Migrating config from < 2.2.28...")
1546
+ if 'llama.idx.chat.mode' not in data:
1547
+ data["llama.idx.chat.mode"] = "context"
1548
+ if 'llama.idx.mode' not in data:
1549
+ data["llama.idx.mode"] = "chat"
1550
+ updated = True
1551
+
1552
+ # < 2.2.31
1553
+ if old < parse_version("2.2.31"):
1554
+ print("Migrating config from < 2.2.31...")
1555
+ if 'agent.continue.always' not in data:
1556
+ data["agent.continue.always"] = False
1557
+ if 'prompt.agent.continue.always' not in data:
1558
+ data["prompt.agent.continue.always"] = "Continue reasoning..."
1559
+ updated = True
1560
+
1561
+ # < 2.4.0
1562
+ if old < parse_version("2.4.0"):
1563
+ print("Migrating config from < 2.4.0...")
1564
+ if 'tabs.data' not in data:
1565
+ data["tabs.data"] = self.window.core.tabs.from_defaults()
1566
+ updated = True
1567
+
1568
+ # < 2.4.7
1569
+ if old < parse_version("2.4.7"):
1570
+ print("Migrating config from < 2.4.7...")
1571
+ self.window.core.plugins.reset_options("cmd_mouse_control", [
1572
+ "prompt",
1573
+ ])
1574
+ updated = True
1575
+
1576
+ # < 2.4.10
1577
+ if old < parse_version("2.4.10"):
1578
+ print("Migrating config from < 2.4.10...")
1579
+ if 'prompt.agent.continue.llama' not in data:
1580
+ data["prompt.agent.continue.llama"] = self.window.core.config.get_base('prompt.agent.continue.llama')
1581
+ if 'agent.llama.idx' not in data:
1582
+ data["agent.llama.idx"] = self.window.core.config.get_base('agent.llama.idx')
1583
+ if 'agent.llama.steps' not in data:
1584
+ data["agent.llama.steps"] = self.window.core.config.get_base('agent.llama.steps')
1585
+ if 'agent.llama.provider' not in data:
1586
+ data["agent.llama.provider"] = self.window.core.config.get_base('agent.llama.provider')
1587
+ if 'agent.llama.verbose' not in data:
1588
+ data["agent.llama.verbose"] = self.window.core.config.get_base('agent.llama.verbose')
1589
+ data["agent.goal.notify"] = False # disable by default
1590
+ updated = True
1591
+
1592
+ # < 2.4.11
1593
+ if old < parse_version("2.4.11"):
1594
+ print("Migrating config from < 2.4.11...")
1595
+ if 'api_proxy' not in data:
1596
+ data["api_proxy"] =""
1597
+ updated = True
1598
+
1599
+ # < 2.4.13
1600
+ if old < parse_version("2.4.13"):
1601
+ print("Migrating config from < 2.4.13...")
1602
+ data["interpreter.auto_clear"] = False
1603
+ if 'cmd_code_interpreter' in data['plugins'] \
1604
+ and 'cmd.code_execute' in data['plugins']['cmd_code_interpreter']:
1605
+ # remove
1606
+ del data['plugins']['cmd_code_interpreter']['cmd.code_execute']
1607
+ if 'cmd_code_interpreter' in data['plugins'] \
1608
+ and 'cmd.code_execute_all' in data['plugins']['cmd_code_interpreter']:
1609
+ # remove
1610
+ del data['plugins']['cmd_code_interpreter']['cmd.code_execute_all']
1611
+ if 'cmd_code_interpreter' in data['plugins'] \
1612
+ and 'cmd.code_execute_file' in data['plugins']['cmd_code_interpreter']:
1613
+ # remove
1614
+ del data['plugins']['cmd_code_interpreter']['cmd.code_execute_file']
1615
+ updated = True
1616
+
1617
+ # < 2.4.14
1618
+ if old < parse_version("2.4.14"):
1619
+ print("Migrating config from < 2.4.14...")
1620
+ if 'prompt.agent.llama.max_eval' not in data:
1621
+ data["prompt.agent.llama.max_eval"] = self.window.core.config.get_base('prompt.agent.llama.max_eval')
1622
+ if 'prompt.agent.llama.append_eval' not in data:
1623
+ data["prompt.agent.llama.append_eval"] = self.window.core.config.get_base('prompt.agent.llama.append_eval')
1624
+ if 'agent.llama.loop.enabled' not in data:
1625
+ data["agent.llama.loop.enabled"] = self.window.core.config.get_base('agent.llama.loop.enabled')
1626
+ if 'agent.llama.loop.score' not in data:
1627
+ data["agent.llama.loop.score"] = self.window.core.config.get_base('agent.llama.loop.score')
1628
+ updated = True
1629
+
1630
+ # < 2.4.15
1631
+ if old < parse_version("2.4.15"):
1632
+ print("Migrating config from < 2.4.15...")
1633
+ data["interpreter.auto_clear"] = False
1634
+ if 'cmd_code_interpreter' in data['plugins'] \
1635
+ and 'cmd.ipython_execute_new' in data['plugins']['cmd_code_interpreter']:
1636
+ # remove
1637
+ del data['plugins']['cmd_code_interpreter']['cmd.ipython_execute_new']
1638
+ if 'cmd_code_interpreter' in data['plugins'] \
1639
+ and 'cmd.ipython_execute' in data['plugins']['cmd_code_interpreter']:
1640
+ # remove
1641
+ del data['plugins']['cmd_code_interpreter']['cmd.ipython_execute']
1642
+ if 'cmd_code_interpreter' in data['plugins'] \
1643
+ and 'cmd.sys_exec' in data['plugins']['cmd_code_interpreter']:
1644
+ # remove
1645
+ del data['plugins']['cmd_code_interpreter']['cmd.sys_exec']
1646
+ if 'cmd_mouse_control' in data['plugins']:
1647
+ del data['plugins']['cmd_mouse_control']
1648
+ updated = True
1649
+
1650
+ # < 2.4.16
1651
+ if old < parse_version("2.4.16"):
1652
+ print("Migrating config from < 2.4.16...")
1653
+ data["interpreter.auto_clear"] = False
1654
+ if 'cmd_code_interpreter' in data['plugins'] \
1655
+ and 'cmd.ipython_execute_new' in data['plugins']['cmd_code_interpreter']:
1656
+ # remove
1657
+ del data['plugins']['cmd_code_interpreter']['cmd.ipython_execute_new']
1658
+ if 'cmd_code_interpreter' in data['plugins'] \
1659
+ and 'cmd.ipython_execute' in data['plugins']['cmd_code_interpreter']:
1660
+ # remove
1661
+ del data['plugins']['cmd_code_interpreter']['cmd.ipython_execute']
1662
+ updated = True
1663
+
1664
+ # < 2.4.19
1665
+ if old < parse_version("2.4.19"):
1666
+ print("Migrating config from < 2.4.19...")
1667
+ if 'layout.animation.disable' not in data:
1668
+ data["layout.animation.disable"] = self.window.core.config.get_base('layout.animation.disable')
1669
+ if 'cmd_code_interpreter' in data['plugins'] \
1670
+ and 'cmd.ipython_execute' in data['plugins']['cmd_code_interpreter']:
1671
+ # remove
1672
+ del data['plugins']['cmd_code_interpreter']['cmd.ipython_execute']
1673
+ updated = True
1674
+
1675
+ # < 2.4.21
1676
+ if old < parse_version("2.4.21"):
1677
+ print("Migrating config from < 2.4.21...")
1678
+ if 'ctx.attachment.mode' not in data:
1679
+ data["ctx.attachment.mode"] = self.window.core.config.get_base('ctx.attachment.mode')
1680
+ if 'ctx.attachment.summary.model' not in data:
1681
+ data["ctx.attachment.summary.model"] = self.window.core.config.get_base('ctx.attachment.summary.model')
1682
+ if 'ctx.attachment.verbose' not in data:
1683
+ data["ctx.attachment.verbose"] = self.window.core.config.get_base('ctx.attachment.verbose')
1684
+ updated = True
1685
+
1686
+ # < 2.4.22
1687
+ if old < parse_version("2.4.22"):
1688
+ print("Migrating config from < 2.4.22...")
1689
+ data["ctx.attachment.mode"] = self.window.core.config.get_base('ctx.attachment.mode')
1690
+ if 'ctx.attachment.img' not in data:
1691
+ data["ctx.attachment.img"] = self.window.core.config.get_base(
1692
+ 'ctx.attachment.img')
1693
+ updated = True
1694
+
1695
+ # < 2.4.29
1696
+ if old < parse_version("2.4.29"):
1697
+ print("Migrating config from < 2.4.29...")
1698
+ if 'cmd_code_interpreter' in data['plugins'] \
1699
+ and 'ipython_dockerfile' in data['plugins']['cmd_code_interpreter']:
1700
+ # remove
1701
+ del data['plugins']['cmd_code_interpreter']['ipython_dockerfile']
1702
+ updated = True
1703
+
1704
+ # < 2.4.31
1705
+ if old < parse_version("2.4.31"):
1706
+ print("Migrating config from < 2.4.31...")
1707
+ if 'attachments_auto_index' not in data:
1708
+ data["attachments_auto_index"] = self.window.core.config.get_base(
1709
+ 'attachments_auto_index')
1710
+ updated = True
1711
+
1712
+ # < 2.4.34
1713
+ if old < parse_version("2.4.34"):
1714
+ print("Migrating config from < 2.4.34...")
1715
+ if 'ctx.attachment.query.model' not in data:
1716
+ data["ctx.attachment.query.model"] = self.window.core.config.get_base(
1717
+ 'ctx.attachment.query.model')
1718
+ updated = True
1719
+
1720
+ # < 2.4.35
1721
+ if old < parse_version("2.4.35"):
1722
+ print("Migrating config from < 2.4.35...")
1723
+ data["ctx.edit_icons"] = True
1724
+ updated = True
1725
+
1726
+ # < 2.4.37
1727
+ if old < parse_version("2.4.37"):
1728
+ print("Migrating config from < 2.4.37...")
1729
+ if 'ctx.attachment.rag.history' not in data:
1730
+ data["ctx.attachment.rag.history"] = self.window.core.config.get_base(
1731
+ 'ctx.attachment.rag.history')
1732
+ if 'ctx.attachment.rag.history.max_items' not in data:
1733
+ data["ctx.attachment.rag.history.max_items"] = self.window.core.config.get_base(
1734
+ 'ctx.attachment.rag.history.max_items')
1735
+ updated = True
1736
+
1737
+ # < 2.4.38
1738
+ if old < parse_version("2.4.38"):
1739
+ print("Migrating config from < 2.4.38...")
1740
+ if 'theme.style' not in data:
1741
+ data["theme.style"] = "blocks"
1742
+ if 'audio.input.device' not in data:
1743
+ data["audio.input.device"] = "0"
1744
+ if 'audio.input.channels' not in data:
1745
+ data["audio.input.channels"] = 1
1746
+ if 'audio.input.rate' not in data:
1747
+ data["audio.input.rate"] = 44100
1748
+ self.window.core.updater.patch_css('style.light.css', True) # force update
1749
+ updated = True
1750
+
1751
+ # < 2.4.39
1752
+ if old < parse_version("2.4.39"):
1753
+ print("Migrating config from < 2.4.39...")
1754
+ if 'layout.split' not in data:
1755
+ data["layout.split"] = False
1756
+ updated = True
1757
+
1758
+ # < 2.4.40
1759
+ if old < parse_version("2.4.40"):
1760
+ print("Migrating config from < 2.4.40...")
1761
+ if 'cmd_web' in data['plugins'] \
1762
+ and 'max_result_length' in data['plugins']['cmd_web']:
1763
+ del data['plugins']['cmd_web']['max_result_length']
1764
+ if 'cmd_web' in data['plugins'] \
1765
+ and 'cmd.web_search' in data['plugins']['cmd_web']:
1766
+ del data['plugins']['cmd_web']['cmd.web_search']
1767
+ if 'cmd_web' in data['plugins'] \
1768
+ and 'cmd.web_url_open' in data['plugins']['cmd_web']:
1769
+ del data['plugins']['cmd_web']['cmd.web_url_open']
1770
+ if 'cmd_web' in data['plugins'] \
1771
+ and 'cmd.web_url_raw' in data['plugins']['cmd_web']:
1772
+ del data['plugins']['cmd_web']['cmd.web_url_raw']
1773
+ self.window.core.updater.patch_css('web-blocks.css', True) # force update
1774
+ self.window.core.updater.patch_css('web-blocks.light.css', True) # force update
1775
+ self.window.core.updater.patch_css('web-chatgpt.css', True) # force update
1776
+ self.window.core.updater.patch_css('web-chatgpt_wide.css', True) # force update
1777
+ updated = True
1778
+
1779
+ # < 2.4.44
1780
+ if old < parse_version("2.4.44"):
1781
+ print("Migrating config from < 2.4.44...")
1782
+ data["ctx.records.folders.top"] = True
1783
+ updated = True
1784
+
1785
+ # < 2.4.45
1786
+ if old < parse_version("2.4.45"):
1787
+ print("Migrating config from < 2.4.45...")
1788
+ self.window.core.updater.patch_css('style.css', True) # force update
1789
+ updated = True
1790
+
1791
+ # < 2.4.46
1792
+ if old < parse_version("2.4.46"):
1793
+ print("Migrating config from < 2.4.46...")
1794
+ if 'api_azure_version' not in data:
1795
+ data["api_azure_version"] = "2023-07-01-preview"
1796
+ if 'api_azure_endpoint' not in data:
1797
+ data["api_azure_endpoint"] = "https://<your-resource-name>.openai.azure.com/"
1798
+ if 'api_key_google' not in data:
1799
+ data["api_key_google"] = ""
1800
+ if 'api_key_anthropic' not in data:
1801
+ data["api_key_anthropic"] = ""
1802
+ if 'api_key_hugging_face' not in data:
1803
+ data["api_key_hugging_face"] = ""
1804
+ updated = True
1805
+
1806
+ # update file
1807
+ migrated = False
1808
+ if updated:
1809
+ data = dict(sorted(data.items()))
1810
+ self.window.core.config.data = data
1811
+ self.window.core.config.save()
1812
+ migrated = True
1813
+
1814
+ # check for any missing config keys if versions mismatch
1815
+ if is_old:
1816
+ if self.window.core.updater.post_check_config():
1817
+ migrated = True
1818
+
1819
+ return migrated