pygpt-net 2.4.37__py3-none-any.whl → 2.4.41__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 (255) hide show
  1. CHANGELOG.md +29 -0
  2. README.md +44 -115
  3. pygpt_net/CHANGELOG.txt +29 -0
  4. pygpt_net/__init__.py +3 -3
  5. pygpt_net/controller/__init__.py +7 -3
  6. pygpt_net/controller/access/control.py +1 -1
  7. pygpt_net/controller/access/voice.py +11 -5
  8. pygpt_net/controller/agent/experts.py +11 -6
  9. pygpt_net/controller/agent/legacy.py +8 -6
  10. pygpt_net/controller/agent/llama.py +4 -2
  11. pygpt_net/controller/assistant/__init__.py +9 -4
  12. pygpt_net/controller/assistant/batch.py +38 -21
  13. pygpt_net/controller/assistant/editor.py +7 -6
  14. pygpt_net/controller/assistant/files.py +23 -7
  15. pygpt_net/controller/assistant/store.py +20 -7
  16. pygpt_net/controller/assistant/threads.py +34 -8
  17. pygpt_net/controller/attachment.py +29 -10
  18. pygpt_net/controller/audio/__init__.py +25 -4
  19. pygpt_net/controller/calendar/__init__.py +23 -4
  20. pygpt_net/controller/calendar/note.py +57 -11
  21. pygpt_net/controller/camera.py +3 -2
  22. pygpt_net/controller/chat/__init__.py +5 -3
  23. pygpt_net/controller/chat/attachment.py +34 -7
  24. pygpt_net/controller/chat/command.py +4 -2
  25. pygpt_net/controller/chat/common.py +11 -4
  26. pygpt_net/controller/chat/files.py +10 -3
  27. pygpt_net/controller/chat/image.py +17 -5
  28. pygpt_net/controller/chat/input.py +10 -7
  29. pygpt_net/controller/chat/output.py +21 -6
  30. pygpt_net/controller/chat/render.py +100 -21
  31. pygpt_net/controller/chat/response.py +34 -7
  32. pygpt_net/controller/chat/stream.py +4 -2
  33. pygpt_net/controller/chat/text.py +6 -4
  34. pygpt_net/controller/command.py +11 -3
  35. pygpt_net/controller/config/__init__.py +34 -6
  36. pygpt_net/controller/config/field/checkbox.py +7 -4
  37. pygpt_net/controller/config/field/cmd.py +7 -5
  38. pygpt_net/controller/config/field/combo.py +14 -6
  39. pygpt_net/controller/config/field/dictionary.py +14 -11
  40. pygpt_net/controller/config/field/input.py +9 -6
  41. pygpt_net/controller/config/field/slider.py +11 -8
  42. pygpt_net/controller/config/field/textarea.py +8 -5
  43. pygpt_net/controller/config/placeholder.py +52 -21
  44. pygpt_net/controller/ctx/__init__.py +138 -49
  45. pygpt_net/controller/ctx/common.py +15 -4
  46. pygpt_net/controller/ctx/extra.py +11 -3
  47. pygpt_net/controller/ctx/summarizer.py +24 -5
  48. pygpt_net/controller/debug/__init__.py +27 -6
  49. pygpt_net/controller/dialogs/confirm.py +34 -7
  50. pygpt_net/controller/dialogs/debug.py +4 -2
  51. pygpt_net/controller/dialogs/info.py +7 -2
  52. pygpt_net/controller/files.py +48 -10
  53. pygpt_net/controller/finder.py +11 -5
  54. pygpt_net/controller/idx/__init__.py +10 -3
  55. pygpt_net/controller/idx/common.py +4 -2
  56. pygpt_net/controller/idx/indexer.py +25 -17
  57. pygpt_net/controller/idx/settings.py +9 -3
  58. pygpt_net/controller/kernel/__init__.py +34 -8
  59. pygpt_net/controller/kernel/reply.py +12 -3
  60. pygpt_net/controller/kernel/stack.py +5 -3
  61. pygpt_net/controller/lang/custom.py +2 -7
  62. pygpt_net/controller/lang/mapping.py +5 -3
  63. pygpt_net/controller/layout.py +2 -2
  64. pygpt_net/controller/mode.py +16 -4
  65. pygpt_net/controller/model/__init__.py +14 -3
  66. pygpt_net/controller/model/editor.py +8 -3
  67. pygpt_net/controller/notepad.py +26 -12
  68. pygpt_net/controller/painter/capture.py +23 -4
  69. pygpt_net/controller/painter/common.py +9 -7
  70. pygpt_net/controller/plugins/__init__.py +19 -5
  71. pygpt_net/controller/plugins/presets.py +15 -6
  72. pygpt_net/controller/plugins/settings.py +9 -3
  73. pygpt_net/controller/presets/__init__.py +55 -16
  74. pygpt_net/controller/presets/editor.py +26 -10
  75. pygpt_net/controller/settings/__init__.py +3 -2
  76. pygpt_net/controller/settings/editor.py +29 -7
  77. pygpt_net/controller/settings/profile.py +22 -5
  78. pygpt_net/controller/theme/__init__.py +54 -12
  79. pygpt_net/controller/theme/common.py +24 -2
  80. pygpt_net/controller/theme/markdown.py +32 -16
  81. pygpt_net/controller/theme/menu.py +26 -5
  82. pygpt_net/controller/theme/nodes.py +2 -5
  83. pygpt_net/controller/tools/__init__.py +40 -2
  84. pygpt_net/controller/ui/__init__.py +4 -6
  85. pygpt_net/controller/ui/tabs.py +363 -65
  86. pygpt_net/core/access/actions.py +6 -4
  87. pygpt_net/core/access/shortcuts.py +4 -3
  88. pygpt_net/core/access/voice.py +6 -5
  89. pygpt_net/core/agents/legacy.py +4 -2
  90. pygpt_net/core/agents/memory.py +7 -2
  91. pygpt_net/core/agents/observer/evaluation.py +15 -7
  92. pygpt_net/core/agents/provider.py +9 -4
  93. pygpt_net/core/agents/runner.py +61 -15
  94. pygpt_net/core/agents/tools.py +23 -5
  95. pygpt_net/core/assistants/__init__.py +6 -4
  96. pygpt_net/core/assistants/files.py +35 -12
  97. pygpt_net/core/assistants/store.py +20 -10
  98. pygpt_net/core/attachments/__init__.py +54 -15
  99. pygpt_net/core/attachments/context.py +92 -29
  100. pygpt_net/core/audio/__init__.py +71 -3
  101. pygpt_net/core/audio/context.py +7 -2
  102. pygpt_net/core/bridge/__init__.py +22 -6
  103. pygpt_net/core/bridge/context.py +5 -3
  104. pygpt_net/core/calendar/__init__.py +57 -11
  105. pygpt_net/core/chain/__init__.py +8 -2
  106. pygpt_net/core/chain/chat.py +10 -8
  107. pygpt_net/core/chain/completion.py +10 -7
  108. pygpt_net/core/command.py +62 -17
  109. pygpt_net/core/ctx/__init__.py +260 -58
  110. pygpt_net/core/ctx/bag.py +25 -4
  111. pygpt_net/core/ctx/container.py +28 -17
  112. pygpt_net/core/ctx/idx.py +45 -8
  113. pygpt_net/core/ctx/output.py +95 -74
  114. pygpt_net/core/ctx/reply.py +5 -2
  115. pygpt_net/core/db/__init__.py +8 -7
  116. pygpt_net/core/db/viewer.py +17 -11
  117. pygpt_net/core/debug/__init__.py +10 -9
  118. pygpt_net/core/debug/tabs.py +5 -2
  119. pygpt_net/core/docker/__init__.py +11 -5
  120. pygpt_net/core/docker/builder.py +11 -3
  121. pygpt_net/core/events/app.py +5 -3
  122. pygpt_net/core/events/base.py +11 -5
  123. pygpt_net/core/events/control.py +5 -3
  124. pygpt_net/core/events/event.py +17 -7
  125. pygpt_net/core/events/kernel.py +5 -3
  126. pygpt_net/core/events/render.py +5 -3
  127. pygpt_net/core/experts/__init__.py +5 -4
  128. pygpt_net/core/filesystem/__init__.py +52 -34
  129. pygpt_net/core/filesystem/actions.py +8 -5
  130. pygpt_net/core/filesystem/editor.py +13 -3
  131. pygpt_net/core/filesystem/types.py +12 -7
  132. pygpt_net/core/filesystem/url.py +7 -3
  133. pygpt_net/core/idx/__init__.py +34 -25
  134. pygpt_net/core/idx/chat.py +40 -16
  135. pygpt_net/core/idx/context.py +6 -2
  136. pygpt_net/core/idx/indexing.py +84 -35
  137. pygpt_net/core/idx/llm.py +11 -3
  138. pygpt_net/core/idx/metadata.py +13 -3
  139. pygpt_net/core/idx/types/ctx.py +32 -6
  140. pygpt_net/core/idx/types/external.py +41 -7
  141. pygpt_net/core/idx/types/files.py +31 -6
  142. pygpt_net/core/image.py +15 -4
  143. pygpt_net/core/llm/__init__.py +13 -3
  144. pygpt_net/core/locale.py +34 -8
  145. pygpt_net/core/models.py +4 -3
  146. pygpt_net/core/notepad.py +9 -4
  147. pygpt_net/core/plugins.py +7 -6
  148. pygpt_net/core/presets.py +19 -10
  149. pygpt_net/core/profile.py +12 -6
  150. pygpt_net/core/prompt/__init__.py +10 -3
  151. pygpt_net/core/prompt/custom.py +7 -6
  152. pygpt_net/core/prompt/template.py +9 -3
  153. pygpt_net/core/render/base.py +117 -22
  154. pygpt_net/core/render/markdown/body.py +27 -7
  155. pygpt_net/core/render/markdown/renderer.py +119 -22
  156. pygpt_net/core/render/plain/body.py +22 -5
  157. pygpt_net/core/render/plain/renderer.py +97 -21
  158. pygpt_net/core/render/web/body.py +75 -25
  159. pygpt_net/core/render/web/renderer.py +313 -63
  160. pygpt_net/core/settings.py +9 -4
  161. pygpt_net/core/tabs/__init__.py +290 -103
  162. pygpt_net/core/tabs/tab.py +17 -4
  163. pygpt_net/core/tokens.py +44 -11
  164. pygpt_net/core/updater/__init__.py +20 -7
  165. pygpt_net/core/vision/analyzer.py +29 -6
  166. pygpt_net/core/web.py +130 -2
  167. pygpt_net/data/config/config.json +15 -4
  168. pygpt_net/data/config/models.json +3 -3
  169. pygpt_net/data/config/modes.json +3 -3
  170. pygpt_net/data/config/settings.json +55 -10
  171. pygpt_net/data/config/settings_section.json +3 -0
  172. pygpt_net/data/css/style.light.css +1 -0
  173. pygpt_net/data/css/{web.css → web-blocks.css} +162 -133
  174. pygpt_net/data/css/{web.light.css → web-blocks.light.css} +7 -0
  175. pygpt_net/data/css/web-chatgpt.css +350 -0
  176. pygpt_net/data/css/web-chatgpt.dark.css +64 -0
  177. pygpt_net/data/css/web-chatgpt.light.css +75 -0
  178. pygpt_net/data/css/web-chatgpt_wide.css +350 -0
  179. pygpt_net/data/css/web-chatgpt_wide.dark.css +64 -0
  180. pygpt_net/data/css/web-chatgpt_wide.light.css +75 -0
  181. pygpt_net/data/icons/split_screen.svg +1 -0
  182. pygpt_net/data/locale/locale.de.ini +12 -0
  183. pygpt_net/data/locale/locale.en.ini +17 -2
  184. pygpt_net/data/locale/locale.es.ini +12 -0
  185. pygpt_net/data/locale/locale.fr.ini +12 -0
  186. pygpt_net/data/locale/locale.it.ini +12 -0
  187. pygpt_net/data/locale/locale.pl.ini +12 -0
  188. pygpt_net/data/locale/locale.uk.ini +12 -0
  189. pygpt_net/data/locale/locale.zh.ini +12 -0
  190. pygpt_net/data/locale/plugin.cmd_web.de.ini +2 -0
  191. pygpt_net/data/locale/plugin.cmd_web.en.ini +20 -10
  192. pygpt_net/data/locale/plugin.cmd_web.es.ini +2 -0
  193. pygpt_net/data/locale/plugin.cmd_web.fr.ini +2 -0
  194. pygpt_net/data/locale/plugin.cmd_web.it.ini +2 -0
  195. pygpt_net/data/locale/plugin.cmd_web.pl.ini +2 -0
  196. pygpt_net/data/locale/plugin.cmd_web.uk.ini +2 -0
  197. pygpt_net/data/locale/plugin.cmd_web.zh.ini +2 -0
  198. pygpt_net/icons.qrc +1 -0
  199. pygpt_net/icons_rc.py +165 -136
  200. pygpt_net/item/ctx.py +46 -24
  201. pygpt_net/plugin/audio_input/simple.py +21 -5
  202. pygpt_net/plugin/audio_output/__init__.py +4 -1
  203. pygpt_net/plugin/base/config.py +4 -2
  204. pygpt_net/plugin/base/plugin.py +26 -6
  205. pygpt_net/plugin/base/worker.py +37 -9
  206. pygpt_net/plugin/cmd_code_interpreter/__init__.py +39 -37
  207. pygpt_net/plugin/cmd_code_interpreter/runner.py +25 -12
  208. pygpt_net/plugin/cmd_web/__init__.py +46 -6
  209. pygpt_net/plugin/cmd_web/config.py +74 -48
  210. pygpt_net/plugin/cmd_web/websearch.py +61 -28
  211. pygpt_net/plugin/cmd_web/worker.py +79 -13
  212. pygpt_net/provider/core/config/patch.py +43 -1
  213. pygpt_net/provider/core/ctx/base.py +4 -1
  214. pygpt_net/provider/core/ctx/db_sqlite/__init__.py +10 -1
  215. pygpt_net/provider/core/ctx/db_sqlite/storage.py +22 -1
  216. pygpt_net/provider/gpt/assistants.py +10 -9
  217. pygpt_net/provider/gpt/audio.py +3 -2
  218. pygpt_net/provider/gpt/chat.py +8 -7
  219. pygpt_net/provider/gpt/completion.py +6 -4
  220. pygpt_net/provider/gpt/image.py +9 -2
  221. pygpt_net/provider/gpt/store.py +14 -13
  222. pygpt_net/provider/gpt/vision.py +6 -5
  223. pygpt_net/tools/__init__.py +9 -1
  224. pygpt_net/tools/base.py +15 -1
  225. pygpt_net/tools/code_interpreter/__init__.py +174 -75
  226. pygpt_net/tools/code_interpreter/ui/dialogs.py +21 -103
  227. pygpt_net/tools/code_interpreter/ui/widgets.py +284 -9
  228. pygpt_net/tools/html_canvas/__init__.py +78 -23
  229. pygpt_net/tools/html_canvas/ui/dialogs.py +46 -62
  230. pygpt_net/tools/html_canvas/ui/widgets.py +96 -3
  231. pygpt_net/ui/base/context_menu.py +2 -2
  232. pygpt_net/ui/layout/chat/input.py +10 -18
  233. pygpt_net/ui/layout/chat/output.py +26 -44
  234. pygpt_net/ui/layout/ctx/ctx_list.py +13 -4
  235. pygpt_net/ui/layout/toolbox/footer.py +18 -2
  236. pygpt_net/ui/main.py +2 -2
  237. pygpt_net/ui/menu/config.py +7 -11
  238. pygpt_net/ui/menu/debug.py +11 -1
  239. pygpt_net/ui/menu/theme.py +9 -2
  240. pygpt_net/ui/widget/filesystem/explorer.py +2 -2
  241. pygpt_net/ui/widget/lists/context.py +27 -5
  242. pygpt_net/ui/widget/tabs/Input.py +2 -2
  243. pygpt_net/ui/widget/tabs/body.py +2 -1
  244. pygpt_net/ui/widget/tabs/layout.py +195 -0
  245. pygpt_net/ui/widget/tabs/output.py +218 -55
  246. pygpt_net/ui/widget/textarea/html.py +11 -1
  247. pygpt_net/ui/widget/textarea/output.py +10 -1
  248. pygpt_net/ui/widget/textarea/search_input.py +4 -1
  249. pygpt_net/ui/widget/textarea/web.py +49 -9
  250. {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/METADATA +45 -116
  251. {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/RECORD +255 -247
  252. /pygpt_net/data/css/{web.dark.css → web-blocks.dark.css} +0 -0
  253. {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/LICENSE +0 -0
  254. {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/WHEEL +0 -0
  255. {pygpt_net-2.4.37.dist-info → pygpt_net-2.4.41.dist-info}/entry_points.txt +0 -0
@@ -26,6 +26,11 @@ body {{
26
26
  -webkit-border-radius: 1ex;
27
27
  -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
28
28
  }}
29
+ .ts {{
30
+ display: none;
31
+ }}
32
+
33
+ /* base */
29
34
  a {{
30
35
  text-decoration: none;
31
36
  color: #a1b5c4 !important;
@@ -38,129 +43,21 @@ p {{
38
43
  margin-top: 5px;
39
44
  margin-bottom: 5px;
40
45
  }}
41
- .extra-src-icon {{
42
- padding-right: 2px;
43
- }}
44
- .extra-src-img-box {{
45
- display: inline-block;
46
- text-align: center;
47
- padding: 5px;
48
- margin: 5px;
49
- max-width: 400px;
50
- height: auto;
51
- white-space: pre-wrap;
52
- word-break: break-all !important;
53
- }}
54
- .extra-src-img-box:hover {{
55
- cursor: pointer;
56
- }}
57
- .extra-src-img-box .title {{
58
- width: 400px;
59
- overflow: hidden;
60
- white-space: nowrap;
61
- text-overflow: ellipsis;
62
- display: block;
63
- text-align: center;
64
- padding: 0;
65
- margin: 0;
66
- padding-top: 10px;
67
- display: block;
68
- font-size: 0.95rem;
69
- }}
70
- .extra-src-img-box .img-outer {{
71
- display: flex;
72
- flex-direction: column;
73
- }}
74
- .extra-src-img-box .img-wrapper {{
75
- position: relative;
76
- overflow: hidden;
77
- border: 1px solid #000;
78
- background: #000;
79
- width: 400px;
80
- height: 280px;
81
- margin: 0;
82
- margin-bottom: 0px !important;
83
- border-radius: 5px;
84
- -webkit-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
85
- -moz-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
86
- box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
87
- }}
88
- .extra-src-img-box .img-wrapper:hover {{
89
- border: 1px solid gray;
90
- }}
91
- .extra-src-img-box img {{
92
- margin-bottom: 2px;
93
- padding-bottom: 0px;
94
- display: block;
95
- width: 100%;
96
- height: 100%;
97
- object-fit: cover;
98
- }}
99
- .msg-user {{
100
- white-space: pre-wrap;
101
- width: auto;
102
- max-width: 100%;
103
- padding-top: 5px;
104
- padding-bottom: 5px;
105
- padding-left: 10px;
106
- margin-top: 10px;
107
- margin-left: 0px;
108
- margin-bottom: 5px;
109
- }}
110
- .msg-bot {{
111
- white-space: pre-wrap;
112
- width: auto;
113
- max-width: 100%;
114
- margin-top: 10px;
115
- margin-bottom: 0px;
116
- padding-bottom: 0px;
117
- }}
118
- .msg-extra {{
119
- margin-top: 10px;
120
- margin-bottom: 0px;
121
- color: gray;
122
- }}
123
- .msg-extra a {{
124
- color: gray;
125
- }}
126
- .msg-user .msg-extra {{
127
- font-weight: bold;
128
- padding-top: 5px;
129
- }}
130
- .msg-box {{
131
- padding: 5px;
132
- max-width: 100%;
133
- }}
134
- .msg-box .msg {{
135
- margin: 0;
136
- padding: 15px;
137
- }}
138
- .msg-box:first-child {{
139
- margin-top: 0px;
140
- }}
141
- .msg-box:last-child {{
142
- border-bottom: none;
143
- }}
144
- .msg-box .name-header {{
145
- display: none;
146
- }}
46
+
47
+ /* images */
147
48
  .image {{
148
49
  max-width: 400px;
149
50
  }}
51
+
52
+ /* cmd */
150
53
  .cmd {{
151
54
  font-family: 'Lato';
152
55
  text-decoration: none;
153
56
  padding-bottom: 0px;
57
+ font-size: 0.9rem;
154
58
  }}
155
- .ts {{
156
- display: none;
157
- }}
158
- .tool-output-header {{
159
- margin-top: 15px;
160
- margin-bottom: 10px;
161
- font-weight: bold;
162
- color: gray;
163
- }}
59
+
60
+ /* lists, code */
164
61
  ul, ol, .list {{
165
62
  margin-top: 0px;
166
63
  margin-bottom: 0px;
@@ -192,6 +89,8 @@ code {{
192
89
  }}
193
90
  .code-header-lang {{
194
91
  float: left;
92
+ padding-left: .25rem;
93
+ padding-top: 4px;
195
94
  }}
196
95
  .code-header-copy {{
197
96
  text-align: right;
@@ -199,11 +98,19 @@ code {{
199
98
  font-weight: bold;
200
99
  display: inline-block;
201
100
  color: #6e6e6e;
101
+ padding-right: .25rem;
202
102
  }}
203
103
  .code-header-copy img {{
204
104
  vertical-align: middle;
205
105
  padding-right: 5px;
206
106
  }}
107
+ .code-header-copy:hover {{
108
+ text-decoration: none;
109
+ cursor: pointer;
110
+ }}
111
+ .code-header-copy:hover img {{
112
+ filter: brightness(130%);
113
+ }}
207
114
  .code-wrapper {{
208
115
  padding: 0px;
209
116
  margin: 0px;
@@ -217,43 +124,65 @@ code {{
217
124
  .highlight span {{
218
125
  font-family: 'Monaspace Neon';
219
126
  }}
127
+
128
+ /* action icons */
220
129
  .action-icons {{
221
- margin-top: 10px;
130
+ margin-top: 20px;
222
131
  }}
223
132
  .action-icons a {{
224
133
  text-decoration: none;
225
134
  }}
226
135
  .action-icons a:hover {{
227
- filter: brightness(60%);
136
+ filter: brightness(120%);
228
137
  }}
229
138
  .action-img {{
230
139
  width: 20px;
231
140
  height: 20px;
232
141
  }}
233
142
  .edit-icon {{
234
- display: none;
235
- }}
236
- .display-edit-icons .edit-icon {{
237
143
  display: inline;
238
144
  }}
239
- .display-timestamp .ts {{
145
+ .theme-blocks.display-timestamp .ts {{
240
146
  display: inline;
241
147
  }}
242
- .display-blocks {{
243
- }}
244
- .display-blocks .msg-box {{
148
+
149
+ /* message box */
150
+ .msg-box {{
151
+ max-width: 100%;
245
152
  border-radius: 10px;
246
153
  padding: 10px;
247
154
  margin-right: 10px;
248
155
  }}
249
- .display-blocks .msg-box:not(first-child) {{
156
+ .msg-user {{
157
+ white-space: pre-wrap;
158
+ width: auto;
159
+ max-width: 100%;
160
+ padding-top: 10px;
161
+ padding-bottom: 5px;
162
+ padding-left: 10px;
163
+ margin-top: 10px;
164
+ margin-left: 0px;
165
+ margin-bottom: 5px;
166
+ }}
167
+ .msg-bot {{
168
+ white-space: pre-wrap;
169
+ width: auto;
170
+ max-width: 100%;
171
+ margin-top: 10px;
172
+ margin-bottom: 0px;
173
+ padding-bottom: 0px;
174
+ }}
175
+ .msg-box:not(first-child) {{
250
176
  margin-top: 20px !important;
251
177
  }}
252
- .display-blocks .name-header {{
178
+ .msg-box:first-child {{
179
+ margin-top: 0px;
180
+ }}
181
+ .msg-box .name-header {{
253
182
  display: block;
254
183
  font-size: 0.8rem;
255
184
  }}
256
- .display-blocks .name-header::before {{
185
+ .msg-box .name-header::before {{
257
186
  content: '';
258
187
  display: inline-block;
259
188
  width: 10px;
@@ -262,19 +191,34 @@ code {{
262
191
  margin-right: 8px;
263
192
  vertical-align: middle;
264
193
  }}
265
- .append_input {{
266
- margin: 0;
267
- padding: 0;
194
+ .msg-extra {{
195
+ margin-top: 10px;
196
+ margin-bottom: 0px;
197
+ color: gray;
268
198
  }}
269
- .append_output {{
199
+ .msg-extra a {{
200
+ color: gray;
201
+ }}
202
+ .msg-user .msg-extra {{
203
+ font-weight: bold;
204
+ padding-top: 5px;
205
+ }}
206
+ .msg-box .msg {{
270
207
  margin: 0;
271
- padding: 0;
208
+ padding: 15px;
272
209
  }}
273
- .empty_list {{
210
+
211
+ /* tool output */
212
+ .tool-output-header {{
213
+ margin-top: 15px;
214
+ margin-bottom: 10px;
215
+ font-weight: bold;
216
+ color: gray;
274
217
  }}
275
218
  .tool-output .content {{
276
219
  padding: 10px;
277
220
  color: gray !important;
221
+ font-size: 0.9rem;
278
222
  }}
279
223
  .tool-output .toggle-cmd-output {{
280
224
  cursor: pointer;
@@ -282,9 +226,84 @@ code {{
282
226
  display: block;
283
227
  color: gray;
284
228
  }}
229
+
230
+ /* extra source */
231
+ .extra-src-icon {{
232
+ padding-right: 2px;
233
+ width: 25px;
234
+ height: 25px;
235
+ vertical-align: middle;
236
+ }}
237
+ .extra-src-img-box {{
238
+ display: inline-block;
239
+ text-align: center;
240
+ padding: 5px;
241
+ margin: 5px;
242
+ max-width: 400px;
243
+ height: auto;
244
+ white-space: pre-wrap;
245
+ word-break: break-all !important;
246
+ }}
247
+ .extra-src-img-box:hover {{
248
+ cursor: pointer;
249
+ }}
250
+ .extra-src-img-box .title {{
251
+ width: 400px;
252
+ overflow: hidden;
253
+ white-space: nowrap;
254
+ text-overflow: ellipsis;
255
+ display: block;
256
+ text-align: center;
257
+ padding: 0;
258
+ margin: 0;
259
+ padding-top: 10px;
260
+ display: block;
261
+ font-size: 0.95rem;
262
+ }}
263
+ .extra-src-img-box .img-outer {{
264
+ display: flex;
265
+ flex-direction: column;
266
+ }}
267
+ .extra-src-img-box .img-wrapper {{
268
+ position: relative;
269
+ overflow: hidden;
270
+ border: 1px solid #000;
271
+ background: #000;
272
+ width: 400px;
273
+ height: 280px;
274
+ margin: 0;
275
+ margin-bottom: 0px !important;
276
+ border-radius: 5px;
277
+ -webkit-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
278
+ -moz-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
279
+ box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
280
+ }}
281
+ .extra-src-img-box .img-wrapper:hover {{
282
+ border: 1px solid gray;
283
+ }}
284
+ .extra-src-img-box img {{
285
+ margin-bottom: 2px;
286
+ padding-bottom: 0px;
287
+ display: block;
288
+ width: 100%;
289
+ height: 100%;
290
+ object-fit: cover;
291
+ }}
292
+
293
+ /* common */
285
294
  .toggle-expanded {{
286
295
  transform: rotateX(180deg);
287
296
  }}
297
+ .append_input {{
298
+ margin: 0;
299
+ padding: 0;
300
+ }}
301
+ .append_output {{
302
+ margin: 0;
303
+ padding: 0;
304
+ }}
305
+ .empty_list {{
306
+ }}
288
307
  .spinner {{
289
308
  display: inline-block;
290
309
  animation: spin 2s linear infinite;
@@ -300,6 +319,8 @@ code {{
300
319
  width: 100% !important;
301
320
  height: 100% !important;
302
321
  }}
322
+
323
+ /* anims */
303
324
  @keyframes spin {{
304
325
  from {{
305
326
  transform: rotate(0deg);
@@ -307,4 +328,12 @@ code {{
307
328
  to {{
308
329
  transform: rotate(360deg);
309
330
  }}
331
+ }}
332
+
333
+ /* debug */
334
+ .debug {{
335
+ color: orange !important;
336
+ background: #0d1117;
337
+ padding: 10px;
338
+ font-size: 0.9rem;
310
339
  }}
@@ -72,4 +72,11 @@ code {{
72
72
  }}
73
73
  .display-blocks .name-user::before {{
74
74
  background-color: silver;
75
+ }}
76
+ .msg-extra a {{
77
+ color: #4d4d4d !important;
78
+ }}
79
+ .msg-extra a:hover {{
80
+ text-decoration: none;
81
+ color: #000 !important;
75
82
  }}