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,1110 @@
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.14 08:00:00 #
10
+ # ================================================== #
11
+
12
+ from typing import Optional, List
13
+
14
+ from PySide6.QtCore import QModelIndex
15
+ from PySide6.QtGui import QStandardItem
16
+
17
+ from pygpt_net.core.events import Event, AppEvent, RenderEvent
18
+ from pygpt_net.item.ctx import CtxItem
19
+
20
+ from .common import Common
21
+ from .summarizer import Summarizer
22
+ from .extra import Extra
23
+
24
+ from pygpt_net.utils import trans
25
+ from pygpt_net.core.tabs.tab import Tab
26
+
27
+
28
+ class Ctx:
29
+ def __init__(self, window=None):
30
+ """
31
+ Context controller
32
+
33
+ :param window: Window instance
34
+ """
35
+ self.window = window
36
+ self.common = Common(window)
37
+ self.summarizer = Summarizer(window)
38
+ self.extra = Extra(window)
39
+
40
+ # current edit IDs
41
+ self.edit_meta_id = None
42
+ self.edit_item_id = None
43
+
44
+ # current group ID
45
+ self.group_id = None
46
+
47
+ def setup(self):
48
+ """Setup ctx"""
49
+ self.common.restore_display_filter() # load filters first
50
+
51
+ # load ctx list
52
+ self.window.core.ctx.load_meta()
53
+
54
+ # if no context yet then create one
55
+ if self.window.core.ctx.count_meta() == 0:
56
+ self.new()
57
+ else:
58
+ # get last ctx from config
59
+ id = self.window.core.config.get('ctx')
60
+ if id is not None and self.window.core.ctx.has(id):
61
+ self.window.core.ctx.set_current(id)
62
+ else:
63
+ # if no ctx then get first ctx
64
+ self.window.core.ctx.set_current(self.window.core.ctx.get_first())
65
+
66
+ # restore search string if exists
67
+ if self.window.core.config.has("ctx.search.string"):
68
+ string = self.window.core.config.get("ctx.search.string")
69
+ if string is not None and string != "":
70
+ self.window.ui.nodes['ctx.search'].setText(string)
71
+ self.search_string_change(string)
72
+ # check if current selected ctx is still valid
73
+ if self.window.core.ctx.get_current() is not None:
74
+ if not self.window.core.ctx.has(self.window.core.ctx.get_current()):
75
+ self.search_string_clear()
76
+ # ^ clear search and reload ctx list to prevent creating new ctx
77
+
78
+ self.window.ui.nodes['ctx.list'].collapseAll() # collapse all items at start
79
+ self.restore_expanded_groups() # restore expanded groups
80
+
81
+ def update(
82
+ self,
83
+ reload: bool = True,
84
+ all: bool = True,
85
+ select: bool = True
86
+ ):
87
+ """
88
+ Update ctx list
89
+
90
+ :param reload: reload ctx list items
91
+ :param all: update all
92
+ :param select: select current ctx
93
+ """
94
+ # reload ctx list items
95
+ if reload:
96
+ self.update_list(True)
97
+
98
+ # select current ctx on list
99
+ if select:
100
+ self.select_by_current()
101
+
102
+ # update all
103
+ if all:
104
+ self.window.controller.ui.update()
105
+
106
+ # append ctx and thread id (assistants API) to config
107
+ id = self.window.core.ctx.get_current()
108
+ if id is not None:
109
+ self.window.core.config.set('ctx', id)
110
+ self.window.core.config.set('assistant_thread', self.window.core.ctx.get_thread())
111
+ self.window.core.config.save()
112
+
113
+ # update calendar ctx list
114
+ self.window.controller.calendar.update(all=False)
115
+
116
+ # update additional context attachments
117
+ self.window.controller.chat.attachment.update()
118
+
119
+ def select(
120
+ self,
121
+ id: int,
122
+ force: bool = False
123
+ ):
124
+ """
125
+ Select ctx by id
126
+
127
+ :param id: context meta id
128
+ :param force: force select
129
+ """
130
+ prev_id = self.window.core.ctx.get_current()
131
+ self.window.core.ctx.set_current(id)
132
+ if prev_id != id or force:
133
+ self.load(id)
134
+ self.window.dispatch(AppEvent(AppEvent.CTX_SELECTED)) # app event
135
+ else:
136
+ # only update current group if defined
137
+ meta = self.window.core.ctx.get_meta_by_id(id)
138
+ if meta is not None:
139
+ self.set_group(meta.group_id)
140
+
141
+ self.common.focus_chat()
142
+ # update additional context attachments
143
+ self.window.controller.chat.attachment.update()
144
+
145
+ def select_on_list_only(self, id: int):
146
+ """
147
+ Select ctx by id only on list
148
+
149
+ :param id: context meta id
150
+ """
151
+ self.window.core.ctx.select(id, restore_model=True)
152
+ self.window.core.ctx.set_current(id)
153
+ self.update_list(True)
154
+ self.select_by_current()
155
+ self.reload_config(all=False)
156
+ self.update()
157
+
158
+ def select_by_idx(self, idx: int):
159
+ """
160
+ Select ctx by index
161
+
162
+ :param idx: context index
163
+ """
164
+ self.select_by_id(self.window.core.ctx.get_id_by_idx(idx))
165
+
166
+ def select_by_id(self, id: int):
167
+ """
168
+ Select ctx by index
169
+
170
+ :param id: context index
171
+ """
172
+ # lock if generating response is in progress
173
+ if self.context_change_locked():
174
+ return
175
+
176
+ self.select(id)
177
+ event = Event(Event.CTX_SELECT, {
178
+ 'value': id,
179
+ })
180
+ self.window.dispatch(event)
181
+
182
+ def select_by_current(self, focus: bool = False):
183
+ """
184
+ Select ctx by current
185
+
186
+ :param focus: focus chat
187
+ """
188
+ id = self.window.core.ctx.get_current()
189
+ meta = self.window.core.ctx.get_meta()
190
+ if id in meta:
191
+ self.select_index_by_id(id)
192
+ if focus:
193
+ self.update()
194
+ index = self.get_child_index_by_id(id)
195
+ if index.isValid():
196
+ self.window.ui.nodes['ctx.list'].scrollTo(index)
197
+
198
+ def unselect(self):
199
+ """Unselect ctx"""
200
+ self.set_group(None)
201
+ self.window.ui.nodes['ctx.list'].clearSelection()
202
+
203
+ def set_group(self, group_id: Optional[int] = None):
204
+ """
205
+ Set current selected group
206
+
207
+ :param group_id: group ID
208
+ """
209
+ self.group_id = group_id
210
+
211
+ def search_focus_in(self):
212
+ """Search focus handler"""
213
+ pass
214
+ # self.select_by_current()
215
+
216
+ def new_ungrouped(self):
217
+ """Create new ungrouped ctx"""
218
+ self.group_id = None
219
+ self.new()
220
+
221
+ def new(
222
+ self,
223
+ force: bool = False,
224
+ group_id: Optional[int] = None
225
+ ):
226
+ """
227
+ Create new ctx
228
+
229
+ :param force: force context creation
230
+ :param group_id: group ID
231
+ """
232
+ # lock if generating response is in progress
233
+ if not force and self.context_change_locked():
234
+ return
235
+
236
+ # use currently selected group if not defined
237
+ if group_id is None:
238
+ if self.group_id is not None and self.group_id > 0:
239
+ group_id = self.group_id
240
+ else:
241
+ self.group_id = group_id
242
+
243
+ # check if group exists
244
+ if group_id is not None and not self.window.core.ctx.has_group(group_id):
245
+ group_id = None
246
+ self.group_id = None
247
+
248
+ meta = self.window.core.ctx.new(group_id)
249
+ self.window.core.config.set('assistant_thread', None) # reset assistant thread id
250
+ self.update()
251
+
252
+ # render reset
253
+ data = {
254
+ "meta": meta,
255
+ }
256
+ event = RenderEvent(RenderEvent.CLEAR, data)
257
+ self.window.dispatch(event)
258
+
259
+ if not force: # only if real click on new context button
260
+ self.window.controller.chat.common.unlock_input()
261
+ self.window.controller.chat.common.focus_input()
262
+
263
+ # update context label
264
+ mode = self.window.core.ctx.get_mode()
265
+ assistant_id = None
266
+ if mode == 'assistant':
267
+ assistant_id = self.window.core.config.get('assistant')
268
+ self.window.controller.assistant.files.update() # always update assistant files
269
+
270
+ self.common.update_label(mode, assistant_id)
271
+ self.common.focus_chat()
272
+
273
+ # update tab title
274
+ if meta is not None:
275
+ self.window.controller.ui.tabs.update_title_current(meta.name)
276
+
277
+ # app event
278
+ self.window.dispatch(AppEvent(AppEvent.CTX_CREATED))
279
+
280
+ # switch to new context if non-chat tab
281
+ self.select(meta.id)
282
+ return meta
283
+
284
+ def add(self, ctx: CtxItem):
285
+ """
286
+ Add ctx item (CtxItem object)
287
+
288
+ :param ctx: CtxItem
289
+ """
290
+ self.window.core.ctx.add(ctx)
291
+ self.update()
292
+
293
+ def prev(self):
294
+ """Select previous ctx"""
295
+ id = self.window.core.ctx.get_prev()
296
+ if id is not None:
297
+ self.select(id)
298
+
299
+ def next(self):
300
+ """Select next ctx"""
301
+ id = self.window.core.ctx.get_next()
302
+ if id is not None:
303
+ self.select(id)
304
+
305
+ def last(self):
306
+ """Select last (newest) ctx"""
307
+ id = self.window.core.ctx.get_last_meta()
308
+ if id is not None:
309
+ self.select(id)
310
+
311
+ def update_list(self, reload: bool = False):
312
+ """
313
+ Reload current ctx list
314
+
315
+ :param reload: reload ctx list items
316
+ """
317
+ self.window.ui.contexts.ctx_list.update(
318
+ 'ctx.list',
319
+ self.window.core.ctx.get_meta(reload),
320
+ )
321
+
322
+ def refresh(self, restore_model: bool = True):
323
+ """
324
+ Refresh context
325
+
326
+ :param restore_model: restore model
327
+ """
328
+ self.load(
329
+ self.window.core.ctx.get_current(),
330
+ restore_model,
331
+ )
332
+
333
+ def refresh_output(self):
334
+ """Refresh output"""
335
+ # append ctx to output
336
+ data = {
337
+ "meta": self.window.core.ctx.get_current_meta(),
338
+ "items": self.window.core.ctx.get_items(),
339
+ "clear": True,
340
+ }
341
+ event = RenderEvent(RenderEvent.CTX_APPEND, data)
342
+ self.window.dispatch(event)
343
+
344
+ def load(
345
+ self,
346
+ id: int,
347
+ restore_model: bool = True
348
+ ):
349
+ """
350
+ Load ctx data
351
+
352
+ :param id: context ID
353
+ :param restore_model: restore model if defined in ctx
354
+ """
355
+ # select ctx by id
356
+ self.window.core.ctx.clear_thread() # reset thread id
357
+ self.window.core.ctx.select(id, restore_model=restore_model)
358
+ meta = self.window.core.ctx.get_meta_by_id(id)
359
+ if meta is not None:
360
+ self.set_group(meta.group_id) # set current group if defined
361
+
362
+ # reset appended data / prepare new ctx
363
+ if meta is not None:
364
+ data = {
365
+ "meta": meta,
366
+ }
367
+ event = RenderEvent(RenderEvent.ON_LOAD, data)
368
+ self.window.dispatch(event)
369
+
370
+ self.reload_config()
371
+
372
+ # reload ctx list and select current ctx on list, without reloading all
373
+ self.update(reload=False, all=True)
374
+
375
+ # update tab title
376
+ if meta is not None:
377
+ self.window.controller.ui.tabs.on_load_ctx(meta)
378
+
379
+ def reload_config(self, all: bool = True):
380
+ """
381
+ Reload config
382
+
383
+ :param all: reload all
384
+ """
385
+ # get current settings stored in ctx
386
+ thread = self.window.core.ctx.get_thread()
387
+ mode = self.window.core.ctx.get_mode()
388
+ model = self.window.core.ctx.get_model()
389
+ assistant_id = self.window.core.ctx.get_assistant()
390
+ preset = self.window.core.ctx.get_preset()
391
+
392
+ # restore thread from ctx
393
+ self.window.core.config.set('assistant_thread', thread)
394
+
395
+ if all:
396
+ # clear before output and append ctx to output
397
+ self.refresh_output()
398
+
399
+ # switch mode to ctx mode
400
+ if mode is not None:
401
+ self.window.controller.mode.set(mode) # preset reset here
402
+
403
+ # switch preset to ctx preset
404
+ if preset is not None:
405
+ self.window.controller.presets.set(mode, preset)
406
+ self.window.controller.presets.refresh() # update presets only
407
+
408
+ # if ctx mode == assistant then switch assistant to ctx assistant
409
+ if mode == 'assistant':
410
+ # if assistant defined then select it
411
+ if assistant_id is not None:
412
+ self.window.controller.assistant.select_by_id(assistant_id)
413
+ else:
414
+ # if empty ctx assistant then get assistant from current selected
415
+ assistant_id = self.window.core.config.get('assistant')
416
+ self.window.controller.assistant.files.update() # always update assistant files
417
+
418
+ # switch model to ctx model if model is defined in ctx and model is available for this mode
419
+ if model is not None and self.window.core.models.has_model(mode, model):
420
+ self.window.controller.model.set(mode, model)
421
+
422
+ # update current ctx label in UI
423
+ self.common.update_label(mode, assistant_id)
424
+
425
+ def update_ctx(self):
426
+ """Update current ctx mode if allowed"""
427
+ mode = self.window.core.config.get('mode')
428
+
429
+ id = None
430
+ # update ctx mode only if current ctx is allowed for this mode
431
+ if self.window.core.ctx.is_allowed_for_mode(mode, False): # do not check assistant match
432
+ self.window.core.ctx.update()
433
+
434
+ # update current context label
435
+ if mode == 'assistant':
436
+ if self.window.core.ctx.get_assistant() is not None:
437
+ # get assistant id from ctx if defined in ctx
438
+ id = self.window.core.ctx.get_assistant()
439
+ else:
440
+ # or get assistant id from current selected assistant
441
+ id = self.window.core.config.get('assistant')
442
+
443
+ # update ctx label
444
+ self.common.update_label(mode, id)
445
+
446
+ def delete(
447
+ self,
448
+ id: int,
449
+ force: bool = False
450
+ ):
451
+ """
452
+ Delete ctx by idx
453
+
454
+ :param id: context id
455
+ :param force: force delete
456
+ """
457
+ if not force:
458
+ self.window.ui.dialogs.confirm(
459
+ type='ctx.delete',
460
+ id=id,
461
+ msg=trans('ctx.delete.confirm'),
462
+ )
463
+ return
464
+
465
+ # delete data from indexes if exists
466
+ try:
467
+ self.delete_meta_from_idx(id)
468
+ except Exception as e:
469
+ self.window.core.debug.log(e)
470
+ print("Error deleting ctx data from indexes", e)
471
+
472
+ # delete ctx items from db
473
+ items = self.window.core.ctx.all()
474
+ self.window.core.history.remove_items(items) # remove txt history items
475
+ self.window.core.attachments.context.delete_by_meta_id(id)
476
+ self.window.core.ctx.remove(id) # remove ctx from db
477
+
478
+ # reset current if current ctx deleted
479
+ if self.window.core.ctx.get_current() == id:
480
+ self.window.core.ctx.clear_current()
481
+ event = RenderEvent(RenderEvent.CLEAR_OUTPUT)
482
+ self.window.dispatch(event)
483
+ self.update()
484
+
485
+ # update tab title
486
+ self.window.controller.ui.tabs.update_title_current("...")
487
+
488
+ def delete_meta_from_idx(self, id: int):
489
+ """
490
+ Delete meta from indexes
491
+
492
+ :param id: ctx meta id
493
+ """
494
+ meta = self.window.core.ctx.get_meta_by_id(id)
495
+ if meta is None:
496
+ return
497
+
498
+ # check if ctx is indexed
499
+ if meta.indexed is not None and meta.indexed > 0:
500
+ for store_id in list(meta.indexes):
501
+ for idx in list(meta.indexes[store_id]):
502
+ self.window.core.ctx.idx.remove_meta_from_indexed(store_id, id, idx)
503
+
504
+ def delete_item(
505
+ self,
506
+ id: int,
507
+ force: bool = False
508
+ ):
509
+ """
510
+ Delete ctx item by id
511
+
512
+ :param id: ctx item id
513
+ :param force: force delete
514
+ """
515
+ if not force:
516
+ self.window.ui.dialogs.confirm(
517
+ type='ctx.delete_item',
518
+ id=id,
519
+ msg=trans('ctx.delete.item.confirm'),
520
+ )
521
+ return
522
+ self.window.core.ctx.remove_item(id)
523
+ self.refresh()
524
+ self.update()
525
+
526
+ def delete_history(self, force: bool = False):
527
+ """
528
+ Delete all ctx / truncate
529
+
530
+ :param force: force delete
531
+ """
532
+ if not force:
533
+ self.window.ui.dialogs.confirm(
534
+ type='ctx.delete_all',
535
+ id='',
536
+ msg=trans('ctx.delete.all.confirm'),
537
+ )
538
+ return
539
+
540
+ # truncate index db if exists
541
+ try:
542
+ self.window.core.idx.ctx.truncate()
543
+ except Exception as e:
544
+ self.window.core.debug.log(e)
545
+ print("Error truncating ctx index db", e)
546
+
547
+ # truncate ctx and history
548
+ self.group_id = None
549
+ self.unselect()
550
+ self.window.core.ctx.truncate()
551
+ self.window.core.history.truncate()
552
+ self.window.core.attachments.context.truncate()
553
+ self.update()
554
+ self.new()
555
+
556
+ def delete_history_groups(self, force: bool = False):
557
+ """
558
+ Delete all ctx / truncate
559
+
560
+ :param force: force delete
561
+ """
562
+ if not force:
563
+ self.window.ui.dialogs.confirm(
564
+ type='ctx.delete_all_groups',
565
+ id='',
566
+ msg=trans('ctx.delete.all.confirm'),
567
+ )
568
+ return
569
+
570
+ # truncate index db if exists
571
+ try:
572
+ self.window.core.idx.ctx.truncate()
573
+ except Exception as e:
574
+ self.window.core.debug.log(e)
575
+ print("Error truncating ctx index db", e)
576
+
577
+ # truncate ctx and history
578
+ self.group_id = None
579
+ self.unselect()
580
+ self.window.core.ctx.truncate()
581
+ self.window.core.history.truncate()
582
+ self.window.core.ctx.truncate_groups()
583
+ self.window.core.attachments.context.truncate()
584
+ self.update()
585
+ self.new()
586
+
587
+ def new_if_empty(self):
588
+ """Create new context if empty"""
589
+ self.group_id = None
590
+ if self.window.core.ctx.count_meta() == 0:
591
+ self.new()
592
+
593
+ def rename(self, id: int):
594
+ """
595
+ Ctx name rename by id (show dialog)
596
+
597
+ :param id: context id
598
+ """
599
+ meta = self.window.core.ctx.get_meta_by_id(id)
600
+ self.window.ui.dialog['rename'].id = 'ctx'
601
+ self.window.ui.dialog['rename'].input.setText(meta.name)
602
+ self.window.ui.dialog['rename'].current = id
603
+ self.window.ui.dialog['rename'].show()
604
+ self.update()
605
+
606
+ def set_important(
607
+ self,
608
+ id: int,
609
+ value: bool = True
610
+ ):
611
+ """
612
+ Set as important
613
+
614
+ :param id: context idx
615
+ :param value: important value
616
+ """
617
+ meta = self.window.core.ctx.get_meta_by_id(id)
618
+ if meta is not None:
619
+ meta.important = value
620
+ self.window.core.ctx.save(id)
621
+ self.update()
622
+
623
+ def is_important(self, idx: int) -> bool:
624
+ """
625
+ Check if ctx is important
626
+
627
+ :param idx: context idx
628
+ :return: True if important
629
+ """
630
+ id = self.window.core.ctx.get_id_by_idx(idx)
631
+ meta = self.window.core.ctx.get_meta_by_id(id)
632
+ if meta is not None:
633
+ return meta.important
634
+ return False
635
+
636
+ def set_label(
637
+ self,
638
+ id: int,
639
+ label_id: int
640
+ ):
641
+ """
642
+ Set color label for ctx by idx
643
+
644
+ :param id: context idx
645
+ :param label_id: label id
646
+ """
647
+ meta = self.window.core.ctx.get_meta_by_id(id)
648
+ if meta is not None:
649
+ meta.label = label_id
650
+ self.window.core.ctx.save(id)
651
+ self.update()
652
+
653
+ def update_name(
654
+ self,
655
+ id: int,
656
+ name: str,
657
+ close: bool = True,
658
+ refresh: bool = True
659
+ ):
660
+ """
661
+ Update ctx name
662
+
663
+ :param id: context id
664
+ :param name: context name
665
+ :param close: close rename dialog
666
+ :param refresh: refresh ctx list
667
+ """
668
+ if id not in self.window.core.ctx.get_meta():
669
+ return
670
+ self.window.core.ctx.meta[id].name = name
671
+ self.window.core.ctx.set_initialized()
672
+ self.window.core.ctx.save(id)
673
+ if close:
674
+ self.window.ui.dialog['rename'].close()
675
+
676
+ if refresh:
677
+ self.update()
678
+ else:
679
+ self.update(True, False)
680
+
681
+ # update tab title
682
+ meta = self.window.core.ctx.get_meta_by_id(id)
683
+ if meta is not None:
684
+ self.window.controller.ui.tabs.update_title_current(meta.name)
685
+
686
+ def update_name_current(self, name: str):
687
+ """
688
+ Update current ctx name
689
+
690
+ :param name: context name
691
+ """
692
+ self.update_name(self.window.core.ctx.get_current(), name)
693
+
694
+ def handle_allowed(self, mode: str) -> bool:
695
+ """
696
+ Check if append to current ctx is allowed for this mode, if not then switch to new context
697
+
698
+ :param mode: mode name
699
+ :return: True if allowed
700
+ """
701
+ if not self.window.core.ctx.is_allowed_for_mode(mode):
702
+ self.new(True) # force new context
703
+ return False
704
+ return True
705
+
706
+ def selection_change(self):
707
+ """Select ctx on list change"""
708
+ # TODO: implement this
709
+ # idx = self.window.ui.nodes['ctx.list'].currentIndex().row()
710
+ # self.select(idx)
711
+ selected_idx = self.window.ui.nodes['ctx.list'].currentIndex()
712
+ if selected_idx.isValid():
713
+ id = self.window.core.ctx.get_id_by_idx(selected_idx.row())
714
+ self.window.ui.nodes['ctx.list'].lockSelection()
715
+
716
+ def search_string_change(self, text: str):
717
+ """
718
+ Search string changed handler
719
+
720
+ :param text: search string
721
+ """
722
+ self.window.core.ctx.clear_tmp_meta()
723
+ self.window.core.ctx.set_search_string(text)
724
+ self.window.core.config.set('ctx.search.string', text)
725
+ self.update(reload=True, all=False)
726
+
727
+ def search_string_clear(self):
728
+ """Search string clear"""
729
+ self.window.ui.nodes['ctx.search'].clear()
730
+ self.search_string_change("") # clear search
731
+
732
+ def append_search_string(self, text: str):
733
+ """
734
+ Append search string to input and make search
735
+
736
+ :param text: search string
737
+ """
738
+ self.window.ui.nodes['ctx.search'].setText(text)
739
+ self.search_string_change(text) # make search
740
+
741
+ def label_filters_changed(self, labels: List[int]):
742
+ """
743
+ Filters labels change
744
+
745
+ :param labels: list of labels
746
+ """
747
+ self.window.core.ctx.clear_tmp_meta()
748
+ self.window.core.ctx.filters_labels = labels
749
+ self.window.core.config.set('ctx.records.filter.labels', labels)
750
+ self.update(reload=True, all=False)
751
+
752
+ def prepare_name(self, ctx: CtxItem):
753
+ """
754
+ Handle context name (summarize first input and output)
755
+
756
+ :param ctx: CtxItem
757
+ """
758
+ # if ctx is not initialized yet then summarize
759
+ if not self.window.core.ctx.is_initialized():
760
+ self.summarizer.summarize(
761
+ self.window.core.ctx.get_current(),
762
+ ctx,
763
+ )
764
+
765
+ def context_change_locked(self) -> bool:
766
+ """
767
+ Check if ctx change is locked
768
+
769
+ :return: True if locked
770
+ """
771
+ return self.window.controller.chat.input.generating
772
+
773
+ def select_index_by_id(self, id: int):
774
+ """
775
+ Select item by ID on context list
776
+
777
+ :param id: ctx meta ID
778
+ """
779
+ index = self.get_child_index_by_id(id)
780
+ self.window.ui.nodes['ctx.list'].unlocked = True # tmp allow change if locked (enable)
781
+ self.window.ui.nodes['ctx.list'].setCurrentIndex(index)
782
+ self.window.ui.nodes['ctx.list'].unlocked = False # tmp allow change if locked (disable)
783
+
784
+ def find_index_by_id(
785
+ self,
786
+ item: QStandardItem,
787
+ id: int
788
+ ) -> QModelIndex:
789
+ """
790
+ Return index of item with given ID, searching recursively through the model.
791
+
792
+ :param item: QStandardItem
793
+ :param id: int
794
+ :return: QModelIndex
795
+ """
796
+ if hasattr(item, 'id') and item.id == id:
797
+ return item.index()
798
+ for row in range(item.rowCount()):
799
+ found_index = self.find_index_by_id(item.child(row), id)
800
+ if found_index.isValid():
801
+ return found_index
802
+ return QModelIndex()
803
+
804
+ def find_parent_index_by_id(
805
+ self,
806
+ item: QStandardItem,
807
+ id: int
808
+ ) -> QModelIndex:
809
+ """
810
+ Return index of item with given ID, searching recursively through the model.
811
+
812
+ :param item: QStandardItem
813
+ :param id: int
814
+ :return: QModelIndex
815
+ """
816
+ if hasattr(item, 'id') and hasattr(item, 'isFolder') and item.isFolder and item.id == id:
817
+ return item.index()
818
+ for row in range(item.rowCount()):
819
+ found_index = self.find_parent_index_by_id(item.child(row), id)
820
+ if found_index.isValid():
821
+ return found_index
822
+ return QModelIndex()
823
+
824
+ def get_parent_index_by_id(self, id: int) -> QModelIndex:
825
+ """
826
+ Return QModelIndex of parent item based on its ID.
827
+
828
+ :param id: int
829
+ :return: QModelIndex
830
+ """
831
+ model = self.window.ui.models['ctx.list']
832
+ root = model.invisibleRootItem()
833
+ return self.find_parent_index_by_id(root, id)
834
+
835
+ def get_children_index_by_id(
836
+ self,
837
+ parent_id: int,
838
+ child_id: int
839
+ ) -> QModelIndex:
840
+ """
841
+ Return QModelIndex of child item based on its ID and parent ID.
842
+
843
+ :param parent_id: int
844
+ :param child_id: int
845
+ :return: QModelIndex
846
+ """
847
+ model = self.window.ui.models['ctx.list']
848
+ parent_index = self.get_parent_index_by_id(parent_id)
849
+ if not parent_index.isValid():
850
+ # no parent found
851
+ return QModelIndex()
852
+
853
+ parent_item = model.itemFromIndex(parent_index)
854
+ return self.find_index_by_id(parent_item, child_id)
855
+
856
+ def find_child_index_by_id(
857
+ self,
858
+ root_item: QStandardItem,
859
+ child_id: int
860
+ ) -> QModelIndex:
861
+ """
862
+ Find and return QModelIndex of child based on its ID, recursively searching through the model.
863
+
864
+ :param root_item: QStandardItem
865
+ :param child_id: int
866
+ :return: QModelIndex
867
+ """
868
+ for row in range(root_item.rowCount()):
869
+ item = root_item.child(row)
870
+ if hasattr(item, 'id') and hasattr(item, 'isFolder') and not item.isFolder and item.id == child_id:
871
+ return item.index()
872
+ child_index = self.find_child_index_by_id(item, child_id)
873
+ if child_index.isValid():
874
+ return child_index
875
+ return QModelIndex()
876
+
877
+ def get_child_index_by_id(self, child_id: int) -> QModelIndex:
878
+ """
879
+ Return QModelIndex of child item based on its ID.
880
+
881
+ :param child_id: int
882
+ :return: QModelIndex
883
+ """
884
+ model = self.window.ui.models['ctx.list']
885
+ root_item = model.invisibleRootItem()
886
+ return self.find_child_index_by_id(root_item, child_id)
887
+
888
+ def store_expanded_groups(self):
889
+ """
890
+ Store expanded groups in ctx list
891
+ """
892
+ expanded = []
893
+ for group_id in self.window.ui.nodes['ctx.list'].expanded_items:
894
+ expanded.append(group_id)
895
+ self.window.core.config.set('ctx.list.expanded', expanded)
896
+ self.window.core.config.save()
897
+
898
+ def restore_expanded_groups(self):
899
+ """
900
+ Restore expanded groups in ctx list
901
+ """
902
+ expanded = self.window.core.config.get('ctx.list.expanded')
903
+ if expanded is not None:
904
+ for group_id in expanded:
905
+ self.window.ui.nodes['ctx.list'].expand_group(group_id)
906
+
907
+ def save_all(self):
908
+ """Save visible ctx list items"""
909
+ self.store_expanded_groups()
910
+
911
+ def move_to_group(
912
+ self,
913
+ meta_id: int,
914
+ group_id: int,
915
+ update: bool = True
916
+ ):
917
+ """
918
+ Move ctx to group
919
+
920
+ :param meta_id: int
921
+ :param group_id: int
922
+ :param update: update ctx list
923
+ """
924
+ self.window.core.ctx.update_meta_group_id(meta_id, group_id)
925
+ self.group_id = group_id
926
+ if update:
927
+ self.update()
928
+
929
+ def remove_from_group(self, meta_id):
930
+ """
931
+ Remove ctx from group
932
+
933
+ :param meta_id: int
934
+ """
935
+ self.window.core.ctx.update_meta_group_id(meta_id, None)
936
+ self.group_id = None
937
+ self.update()
938
+
939
+ def new_group(
940
+ self,
941
+ meta_id: Optional[int] = None
942
+ ):
943
+ """
944
+ Open new group dialog
945
+
946
+ :param meta_id: int
947
+ """
948
+ self.window.ui.dialog['create'].id = 'ctx.group'
949
+ self.window.ui.dialog['create'].input.setText("")
950
+ self.window.ui.dialog['create'].current = meta_id
951
+ self.window.ui.dialog['create'].show()
952
+ self.window.ui.dialog['create'].input.setFocus()
953
+
954
+ def create_group(
955
+ self,
956
+ name: Optional[str] = None,
957
+ meta_id: Optional[int] = None
958
+ ):
959
+ """
960
+ Make directory
961
+
962
+ :param name: name of directory
963
+ :param meta_id: int
964
+ """
965
+ if name is None:
966
+ self.window.update_status(
967
+ "[ERROR] Name is empty."
968
+ )
969
+ return
970
+ group = self.window.core.ctx.make_group(name)
971
+ id = self.window.core.ctx.insert_group(group)
972
+ if id is not None:
973
+ if meta_id is not None:
974
+ self.move_to_group(meta_id, id, update=False)
975
+ self.update()
976
+ self.window.update_status(
977
+ "Group '{}' created.".format(name)
978
+ )
979
+ self.window.ui.dialog['create'].close()
980
+
981
+ # select new group
982
+ self.select_group(id)
983
+ self.group_id = id
984
+
985
+ def rename_group(
986
+ self,
987
+ id: int,
988
+ force: bool = False
989
+ ):
990
+ """
991
+ Rename group
992
+
993
+ :param id: group ID
994
+ :param force: force rename
995
+ """
996
+ if not force:
997
+ group = self.window.core.ctx.get_group_by_id(id)
998
+ if group is None:
999
+ return
1000
+ self.window.ui.dialog['rename'].id = 'ctx.group'
1001
+ self.window.ui.dialog['rename'].input.setText(group.name)
1002
+ self.window.ui.dialog['rename'].current = id
1003
+ self.window.ui.dialog['rename'].show()
1004
+
1005
+ def update_group_name(
1006
+ self,
1007
+ id: int,
1008
+ name: str,
1009
+ close: bool = True
1010
+ ):
1011
+ """
1012
+ Update group name
1013
+
1014
+ :param id: group ID
1015
+ :param name: group name
1016
+ :param close: close rename dialog
1017
+ """
1018
+ group = self.window.core.ctx.get_group_by_id(id)
1019
+ if group is not None:
1020
+ group.name = name
1021
+ self.window.core.ctx.update_group(group)
1022
+ if close:
1023
+ self.window.ui.dialog['rename'].close()
1024
+ self.update(True, False, False)
1025
+ self.select_group(id)
1026
+
1027
+ def get_group_name(self, id: int) -> str:
1028
+ """
1029
+ Get group name by ID
1030
+
1031
+ :param id: group ID
1032
+ :return: group name
1033
+ """
1034
+ group = self.window.core.ctx.get_group_by_id(id)
1035
+ if group is not None:
1036
+ return group.name
1037
+ return ""
1038
+
1039
+ def select_group(self, id: int):
1040
+ """
1041
+ Select group
1042
+
1043
+ :param id: group ID
1044
+ """
1045
+ self.group_id = id
1046
+ index = self.get_parent_index_by_id(id)
1047
+ self.window.ui.nodes['ctx.list'].unlocked = True # tmp allow change if locked (enable)
1048
+ self.window.ui.nodes['ctx.list'].setCurrentIndex(index)
1049
+ self.window.ui.nodes['ctx.list'].unlocked = False # tmp allow change if locked (disable)
1050
+
1051
+ def delete_group(
1052
+ self,
1053
+ id: int,
1054
+ force: bool = False
1055
+ ):
1056
+ """
1057
+ Delete group only
1058
+
1059
+ :param id: group ID
1060
+ :param force: force delete
1061
+ """
1062
+ if not force:
1063
+ self.window.ui.dialogs.confirm(
1064
+ type='ctx.group.delete',
1065
+ id=id,
1066
+ msg=trans('confirm.ctx.delete')
1067
+ )
1068
+ return
1069
+ group = self.window.core.ctx.get_group_by_id(id)
1070
+ if group is not None:
1071
+ self.window.core.ctx.remove_group(group, all=False)
1072
+ if self.group_id == id:
1073
+ self.group_id = None
1074
+ self.update()
1075
+
1076
+ def delete_group_all(
1077
+ self,
1078
+ id: int,
1079
+ force: bool = False
1080
+ ):
1081
+ """
1082
+ Delete group with all items
1083
+
1084
+ :param id: group ID
1085
+ :param force: force delete
1086
+ """
1087
+ if not force:
1088
+ self.window.ui.dialogs.confirm(
1089
+ type='ctx.group.delete.all',
1090
+ id=id,
1091
+ msg=trans('confirm.ctx.delete.all')
1092
+ )
1093
+ return
1094
+ group = self.window.core.ctx.get_group_by_id(id)
1095
+ if group is not None:
1096
+ self.window.core.ctx.remove_group(group, all=True)
1097
+ if self.group_id == id:
1098
+ self.group_id = None
1099
+ self.update()
1100
+
1101
+ def reload(self):
1102
+ """Reload ctx"""
1103
+ self.window.core.ctx.reset()
1104
+ self.setup()
1105
+ self.update()
1106
+ self.refresh()
1107
+
1108
+ def reload_after(self):
1109
+ """After reload"""
1110
+ self.new_if_empty()