mindroot 8.1.0__py3-none-any.whl → 8.2.0__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.

Potentially problematic release.


This version of mindroot might be problematic. Click here for more details.

@@ -1,7 +1,8 @@
1
- /* Enhanced styles for XinGen Agent Host */
1
+ /* Enhanced styles for MindRoot Agent Host */
2
2
 
3
3
  .agent-container {
4
- max-width: 1200px;
4
+ width: 90%; /* Use percentage instead of fixed width */
5
+ max-width: 2000px; /* Increased from 1200px for wider screens */
5
6
  margin: 0 auto;
6
7
  padding: 2rem;
7
8
  }
@@ -9,6 +10,7 @@
9
10
  .logo {
10
11
  transition: transform 0.3s ease;
11
12
  margin-bottom: 2rem;
13
+ max-width: 120px; /* Control logo size */
12
14
  }
13
15
 
14
16
  .logo:hover {
@@ -22,13 +24,15 @@ h1 {
22
24
  background: linear-gradient(45deg, #6e8efb, #a777e3);
23
25
  -webkit-background-clip: text;
24
26
  -webkit-text-fill-color: transparent;
27
+ text-align: center;
25
28
  }
26
29
 
27
30
  .agent-list {
28
31
  display: grid;
29
- grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
32
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
30
33
  gap: 1.5rem;
31
34
  margin-top: 2rem;
35
+ width: 100%;
32
36
  }
33
37
 
34
38
  .agent-link {
@@ -38,9 +42,12 @@ h1 {
38
42
  transition: all 0.3s ease;
39
43
  border: 1px solid rgba(255, 255, 255, 0.1);
40
44
  display: flex;
45
+ flex-direction: column;
41
46
  align-items: center;
47
+ text-align: center;
42
48
  text-decoration: none;
43
49
  color: inherit;
50
+ height: 100%;
44
51
  }
45
52
 
46
53
  .agent-link:hover {
@@ -54,13 +61,40 @@ h1 {
54
61
  height: 8px;
55
62
  border-radius: 50%;
56
63
  background: #4CAF50;
57
- margin-right: 12px;
64
+ margin-bottom: 8px;
65
+ }
66
+
67
+ .agent-avatar {
68
+ width: 160px;
69
+ height: 160px;
70
+ border-radius: 50%;
71
+ object-fit: cover;
72
+ margin-bottom: 16px;
73
+ border: 2px solid rgba(255, 255, 255, 0.2);
74
+ transition: all 0.3s ease;
75
+ }
76
+
77
+ .agent-link:hover .agent-avatar {
78
+ border-color: rgba(255, 255, 255, 0.5);
79
+ transform: scale(1.05);
80
+ }
81
+
82
+ .agent-info {
83
+ display: flex;
84
+ flex-direction: column;
85
+ align-items: center;
86
+ width: 100%;
58
87
  }
59
88
 
60
89
  .agent-name {
61
90
  font-size: 1.2rem;
62
91
  font-weight: 500;
63
92
  letter-spacing: 0.5px;
93
+ word-break: keep-all;
94
+ max-width: 100%;
95
+ overflow-wrap: break-word;
96
+ line-height: 1.3;
97
+ white-space: normal;
64
98
  }
65
99
 
66
100
  .admin-link {
@@ -79,7 +113,7 @@ h1 {
79
113
  }
80
114
 
81
115
  .admin-link:visited {
82
- color: #ddd;
116
+ color: #ddd;
83
117
  }
84
118
 
85
119
  h2 {
@@ -87,4 +121,76 @@ h2 {
87
121
  font-weight: 500;
88
122
  margin-bottom: 1.5rem;
89
123
  color: rgba(255, 255, 255, 0.9);
124
+ text-align: center;
125
+ }
126
+
127
+ /* Responsive breakpoints */
128
+
129
+ /* Extra large screens */
130
+ @media (min-width: 1800px) {
131
+ .agent-list {
132
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
133
+ }
134
+
135
+ .agent-container {
136
+ width: 85%;
137
+ max-width: 2400px;
138
+ }
139
+ }
140
+
141
+ /* Large screens */
142
+ @media (min-width: 1200px) and (max-width: 1799px) {
143
+ .agent-list {
144
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
145
+ }
146
+
147
+ .agent-container {
148
+ width: 90%;
149
+ }
150
+ }
151
+
152
+ /* Medium screens */
153
+ @media (min-width: 768px) and (max-width: 1199px) {
154
+ .agent-list {
155
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
156
+ }
157
+
158
+ .agent-avatar {
159
+ width: 140px;
160
+ height: 140px;
161
+ }
162
+
163
+ .agent-container {
164
+ width: 95%;
165
+ }
166
+ }
167
+
168
+ /* Small screens */
169
+ @media (max-width: 767px) {
170
+ .agent-list {
171
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
172
+ gap: 1rem;
173
+ }
174
+
175
+ .agent-avatar {
176
+ width: 120px;
177
+ height: 120px;
178
+ }
179
+
180
+ .agent-name {
181
+ font-size: 1rem;
182
+ }
183
+
184
+ .agent-container {
185
+ width: 100%;
186
+ padding: 1rem;
187
+ }
188
+
189
+ h1 {
190
+ font-size: 2rem;
191
+ }
192
+
193
+ h2 {
194
+ font-size: 1.3rem;
195
+ }
90
196
  }
@@ -10,6 +10,7 @@
10
10
  {% block head_title %}
11
11
  <title>MindRoot Agent Host</title>
12
12
  {% endblock %}
13
+
13
14
  {% block head_css %}
14
15
  <link rel="stylesheet" href="/home/static/css/reset.css">
15
16
  <link rel="stylesheet" href="/home/static/css/default.css">
@@ -51,9 +52,12 @@
51
52
 
52
53
  <div class="agent-list" role="list">
53
54
  {% for agent in agents %}
54
- <a href="/agent/{{ agent }}" class="agent-link" role="listitem" target="_blank" >
55
- <span class="agent-status" aria-hidden="true"></span>
56
- <span class="agent-name">{{ agent }}</span>
55
+ <a href="/agent/{{ agent }}" class="agent-link" role="listitem" target="_blank">
56
+ <img src="/chat/personas/{{ agent }}/avatar.png" alt="{{ agent }} avatar" class="agent-avatar" onerror="this.src='/chat/static/assistant.png'">
57
+ <div class="agent-info">
58
+ <span class="agent-status" aria-hidden="true"></span>
59
+ <span class="agent-name">{{ agent | replace('_', ' ') }}</span>
60
+ </div>
57
61
  </a>
58
62
  {% endfor %}
59
63
  </div>
@@ -74,4 +78,3 @@
74
78
  {% endblock %}
75
79
  </body>
76
80
  </html>
77
-
mindroot/lib/chatlog.py CHANGED
@@ -70,7 +70,11 @@ class ChatLog:
70
70
  except Exception as e:
71
71
  # assume previous mesage was not a command, was a string
72
72
  debug_box("4")
73
- new_msg_text = self.messages[-1]['content'][0]['text'] + message['content'][0]['text']
73
+ print("Could not combine commands, probably normal if user message and previous system output, assuming string", e)
74
+ if type(self.messages[-1]['content']) == str:
75
+ new_msg_text = self.messages[-1]['content'] + message['content'][0]['text']
76
+ else:
77
+ new_msg_text = self.messages[-1]['content'][0]['text'] + message['content'][0]['text']
74
78
  self.messages.append({'role': message['role'], 'content': [{'type': 'text', 'text': new_msg_text}]})
75
79
  #print('could not combine commands. probably normal if user message and previous system output', e)
76
80
  #print(self.messages[-1])
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env python3
2
+
3
+ import asyncio
4
+ import sys
5
+ from typing import Optional, Callable, Any, List, Dict, AsyncGenerator
6
+
7
+ # ANSI color codes for terminal output
8
+ COLORS = {
9
+ 'reset': '\033[0m',
10
+ 'green': '\033[32m', # stdout
11
+ 'yellow': '\033[33m', # stderr/warning
12
+ 'blue': '\033[34m', # info
13
+ 'red': '\033[31m' # error
14
+ }
15
+
16
+
17
+ async def read_stream(stream: asyncio.StreamReader, callback: Callable[[str], Any]):
18
+ """Read from stream line by line and call the callback for each line."""
19
+ while True:
20
+ line = await stream.readline()
21
+ if not line:
22
+ break
23
+ callback(line.decode('utf-8', errors='replace'))
24
+
25
+
26
+ async def run_command_with_streaming(
27
+ cmd: List[str],
28
+ stdout_callback: Callable[[str], Any],
29
+ stderr_callback: Callable[[str], Any],
30
+ cwd: Optional[str] = None,
31
+ env: Optional[dict] = None
32
+ ) -> int:
33
+ """Run a command asynchronously and stream its output.
34
+
35
+ Args:
36
+ cmd: Command to run as a list of strings
37
+ stdout_callback: Callback for stdout lines
38
+ stderr_callback: Callback for stderr lines
39
+ cwd: Working directory for the command
40
+ env: Environment variables for the command
41
+
42
+ Returns:
43
+ Exit code of the command
44
+ """
45
+ try:
46
+ process = await asyncio.create_subprocess_exec(
47
+ *cmd,
48
+ stdout=asyncio.subprocess.PIPE,
49
+ stderr=asyncio.subprocess.PIPE,
50
+ cwd=cwd,
51
+ env=env
52
+ )
53
+
54
+ # Create tasks to read from stdout and stderr
55
+ stdout_task = asyncio.create_task(
56
+ read_stream(process.stdout, stdout_callback)
57
+ )
58
+ stderr_task = asyncio.create_task(
59
+ read_stream(process.stderr, stderr_callback)
60
+ )
61
+
62
+ # Wait for the process to complete and streams to be fully read
63
+ await asyncio.gather(stdout_task, stderr_task)
64
+ exit_code = await process.wait()
65
+
66
+ return exit_code
67
+
68
+ except Exception as e:
69
+ print(f"Failed to run command: {e}")
70
+ return 1
71
+
72
+
73
+ async def stream_command_as_events(
74
+ cmd: List[str],
75
+ cwd: Optional[str] = None,
76
+ env: Optional[dict] = None
77
+ ) -> AsyncGenerator[Dict[str, str], None]:
78
+ """Run a command and yield its output as events.
79
+
80
+ Args:
81
+ cmd: Command to run as a list of strings
82
+ cwd: Working directory for the command
83
+ env: Environment variables for the command
84
+
85
+ Yields:
86
+ Events with type and data
87
+ """
88
+ # Debug output
89
+ print(f"{COLORS['blue']}[DEBUG] Running command: {' '.join(cmd)}{COLORS['reset']}")
90
+
91
+ # Send initial event
92
+ yield {"event": "message", "data": f"Running command: {' '.join(cmd)}"}
93
+
94
+ # Create queues for stdout and stderr
95
+ output_queue = asyncio.Queue()
96
+
97
+ # Define callbacks for stdout and stderr
98
+ def stdout_callback(line):
99
+ if line.strip():
100
+ print(f"{COLORS['green']}[STDOUT] {line.strip()}{COLORS['reset']}")
101
+ output_queue.put_nowait(("message", line.strip()))
102
+
103
+ def stderr_callback(line):
104
+ if line.strip():
105
+ # Determine if this is a warning or an error
106
+ if ("WARNING:" in line or
107
+ "DEPRECATION:" in line or
108
+ "A new release of pip is available" in line):
109
+ print(f"{COLORS['yellow']}[WARNING] {line.strip()}{COLORS['reset']}")
110
+ output_queue.put_nowait(("warning", line.strip()))
111
+ else:
112
+ print(f"{COLORS['red']}[ERROR] {line.strip()}{COLORS['reset']}")
113
+ output_queue.put_nowait(("warning", line.strip()))
114
+
115
+ # Run the command in a separate task
116
+ run_task = asyncio.create_task(
117
+ run_command_with_streaming(cmd, stdout_callback, stderr_callback, cwd, env)
118
+ )
119
+
120
+ # Stream events from the queue while the command is running
121
+ while not run_task.done() or not output_queue.empty():
122
+ try:
123
+ event_type, data = await asyncio.wait_for(output_queue.get(), timeout=0.1)
124
+ yield {"event": event_type, "data": data}
125
+ except asyncio.TimeoutError:
126
+ # No output available, just continue
127
+ await asyncio.sleep(0.01)
128
+
129
+ # Get the exit code
130
+ exit_code = await run_task
131
+
132
+ # Send completion event
133
+ print(f"{COLORS['blue']}[INFO] Command completed with exit code {exit_code}{COLORS['reset']}")
134
+ if exit_code == 0:
135
+ yield {"event": "complete", "data": "Command completed successfully"}
136
+ else:
137
+ print(f"{COLORS['red']}[ERROR] Command failed with exit code {exit_code}{COLORS['reset']}")
138
+ yield {"event": "error", "data": f"Command failed with exit code {exit_code}"}
139
+
mindroot/lib/templates.py CHANGED
@@ -3,7 +3,7 @@ import logging
3
3
  from jinja2 import Environment, FileSystemLoader, ChoiceLoader
4
4
  from .plugins import list_enabled, get_plugin_path
5
5
  from .parent_templates import get_parent_templates_env
6
-
6
+ import traceback
7
7
 
8
8
  # TODO: get_parent_templates_env(plugins):
9
9
  # jinja2 environment containing only 1 template per plugin file name,
@@ -243,8 +243,10 @@ async def render_combined_template(page_name, plugins, context):
243
243
  str: Rendered HTML
244
244
  """
245
245
  parent_template = parent_env.get_template(f"{page_name}.jinja2")
246
+ print(f"parent_template", parent_template)
246
247
  child_templates = await load_plugin_templates(page_name, plugins)
247
248
  parent_blocks = parent_template.blocks.keys()
249
+ print(f"parent_blocks", parent_blocks)
248
250
  all_content = {block: {'inject': [], 'override': None} for block in parent_blocks}
249
251
 
250
252
  # Ensure context is a dictionary
@@ -348,8 +350,9 @@ async def render(page_name, context):
348
350
  # First try to render with the combined template approach
349
351
  try:
350
352
  parent_env.get_template(f"{page_name}.jinja2")
351
- return await render_combined_template(page_name, plugins, context)
352
353
  except Exception as e:
354
+ trace = traceback.format_exc()
355
+ print(f"Error finding parent template for {page_name}: {e}\n\n{trace}")
353
356
  print(f"No parent template found for {page_name}, trying direct rendering: {e}")
354
357
 
355
358
  # Try to find and render a template directly from a plugin
@@ -358,3 +361,11 @@ async def render(page_name, context):
358
361
  return await render_direct_template(template_path, context)
359
362
 
360
363
  return f"<h1>Template Not Found</h1><p>No template found for '{page_name}'</p>"
364
+
365
+ try:
366
+ return await render_combined_template(page_name, plugins, context)
367
+ except Exception as e:
368
+ trace = traceback.format_exc()
369
+ print(f"Error rendering {page_name}: {e}\n\n{trace}")
370
+ return f"<h1>Error Rendering Page</h1><p>{str(e)}</p><pre>{trace}</pre>"
371
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mindroot
3
- Version: 8.1.0
3
+ Version: 8.2.0
4
4
  Summary: MindRoot AI Agent Framework
5
5
  Requires-Python: >=3.9
6
6
  License-File: LICENSE
@@ -6,10 +6,11 @@ mindroot/coreplugins/admin/agent_router.py,sha256=mstYUURNRb9MpfNwqMYC7WY3FOQJ-5
6
6
  mindroot/coreplugins/admin/command_router.py,sha256=nhNkurIb9w7itgQ5nBtDYM-W2q69cYpLAq9HLrK-0Bk,6567
7
7
  mindroot/coreplugins/admin/persona_handler.py,sha256=eRYmmOmupLJuiujWN35SS2nwRgo0lbbXug-chZ_WmjU,2862
8
8
  mindroot/coreplugins/admin/persona_router.py,sha256=tyPxBe-pRnntHo_xyazvnwKZxHmvEI5_Fsu0YkZbrXA,6036
9
- mindroot/coreplugins/admin/plugin_manager.py,sha256=Veu6LJKD9Q8w0nTO24svh1ODxBk71hmDVG8qR1vfEJM,8537
9
+ mindroot/coreplugins/admin/plugin_manager.py,sha256=k_buWtxh1JGb7j_NMILxJlZ_ZU5VVuXQpw4_Qp1Zjjo,14587
10
+ mindroot/coreplugins/admin/plugin_manager_backup.py,sha256=pUnh-EW4BMOrL2tYUq1X2BC65aoTBhDM-o2-mlDYXfU,24583
10
11
  mindroot/coreplugins/admin/plugin_router.py,sha256=EEDIM0MMPhqeej8Lu8cazYgzaXH1sKZLy_6kBOwrUgY,1020
11
12
  mindroot/coreplugins/admin/router.py,sha256=Wzeri92Rv39YKTYflMZ3E1pnYy959KHWRjS8D4Xgaao,1580
12
- mindroot/coreplugins/admin/server_router.py,sha256=ojVZPOomiadyw6rD8LQPaOw_d-hbbZn0u7t0z77Pk_M,4385
13
+ mindroot/coreplugins/admin/server_router.py,sha256=aZ5v7QBcK1LJ2yiciUA4elY26iSGl-8m03L1h3ogvP4,4533
13
14
  mindroot/coreplugins/admin/service_models.py,sha256=ccYdLjWlEbbkIq9y9T5TL8NGSO6m1LLiJb9J2wkbenY,3354
14
15
  mindroot/coreplugins/admin/settings_router.py,sha256=s5LWB6BiMXhnxduxwi6bQUVtYs3vrNCrUe0Qm8DOo6s,5451
15
16
  mindroot/coreplugins/admin/static/logo.png,sha256=ZfPlCqCjU0_TXte5gvEx81zRKge--l_z2y0AArKl0as,17823
@@ -50,13 +51,14 @@ mindroot/coreplugins/admin/static/js/missing-commands.js,sha256=adNF9GWN981_KX7H
50
51
  mindroot/coreplugins/admin/static/js/model-preferences.js,sha256=J0G7gcGACaPyslWJO42urf5wbZZsqO0LyPicAu-uV_Y,3365
51
52
  mindroot/coreplugins/admin/static/js/notification.js,sha256=296rVCr6MNtzvzdzW3bGiMa231-BnWJtwZZ_sDWX-3c,5633
52
53
  mindroot/coreplugins/admin/static/js/persona-editor.js,sha256=xO2jobJXwqGY7Uajj3vQxyERubsHZovIPF_8FHpvzFE,8604
53
- mindroot/coreplugins/admin/static/js/plugin-advanced-install.js,sha256=TiM3I50cZR4u0mB5Qaf_W_Oke4Xe31OVRXbfZwB0epI,4136
54
+ mindroot/coreplugins/admin/static/js/plugin-advanced-install.js,sha256=urj95n_Jcp_ZlSoLIwaw9dfA6SHCoosISbaP3-dxxHs,6950
54
55
  mindroot/coreplugins/admin/static/js/plugin-base.js,sha256=KWp5DqueHtyTxYKbuHMoFpoFXrfMbIjzK4M1ulAR9m8,5095
55
- mindroot/coreplugins/admin/static/js/plugin-index-browser.js,sha256=ljGmMLEl78BKPBkqjRRvK32GkRApSXmFSgGZkY3-aYY,4800
56
+ mindroot/coreplugins/admin/static/js/plugin-index-browser.js,sha256=P-V4wqlYGxjr7oF2LiD5ti8Is3wtSsKPwpRgRJpT0VI,10028
57
+ mindroot/coreplugins/admin/static/js/plugin-install-dialog.js,sha256=ty_dZ9dZcpp9El1j3eY4Z6Wp8iZ5WNkf_lHSV-W1IhA,8216
56
58
  mindroot/coreplugins/admin/static/js/plugin-list.js,sha256=6sUZMpyIAhZEkLcnUym0FwneZND08mcFii5dOlYvadw,5012
57
59
  mindroot/coreplugins/admin/static/js/plugin-manager.js,sha256=RDBCnYQxH7Xbftwgg3llJ5BCrEeG9qfHzb80UzZzhsk,3341
58
60
  mindroot/coreplugins/admin/static/js/plugin-toggle.js,sha256=9A4rM1lavLLUU8oaqPW8-K_JR8epgmPVBV-fjOabY7s,3862
59
- mindroot/coreplugins/admin/static/js/server-control.js,sha256=9tH9xRCyVt4s6xof7DKG-TLyweMAqJvnsa18KyYHnhw,5353
61
+ mindroot/coreplugins/admin/static/js/server-control.js,sha256=Bctd20gnf5rqwI7eqIR7GrXPpUbjxhk0jLi5sbS5a40,7097
60
62
  mindroot/coreplugins/admin/static/js/toggle-switch.js,sha256=wLmzsngpNCjtGvFZ-eUIUO4APHa_cplWvZ7uBUqqYRg,2312
61
63
  mindroot/coreplugins/admin/static/js/lit-html/LICENSE,sha256=K2b5OQr94p7f5DFNr_k_AfsYLhF4BT4igSAXiYfl23U,1518
62
64
  mindroot/coreplugins/admin/static/js/lit-html/README.md,sha256=w-8qs6ZWte8yzeZ3g2-LlFDRWQQMtrQFAVjRFvb7z-4,3225
@@ -422,7 +424,7 @@ mindroot/coreplugins/admin/static/js/lit-html/node/directives/until.js.map,sha25
422
424
  mindroot/coreplugins/admin/static/js/lit-html/node/directives/when.js,sha256=NLe0NJ-6jqjVDUrT_DzmSpREsRaLo1yarzdYcV_5xHY,181
423
425
  mindroot/coreplugins/admin/static/js/lit-html/node/directives/when.js.map,sha256=tOonih_-EaqrunhNGshA9xN--WIVdGikjg8MkVp0itQ,1534
424
426
  mindroot/coreplugins/admin/templates/admin.jinja2,sha256=WkzAZJhXFp6tmOCBPInJihPzNYzC7IjEw1jQz6cfleQ,7125
425
- mindroot/coreplugins/agent/agent.py,sha256=8AIa-O8xtOVFTJWS2WdpwID7mxiaY3vzyqI0pokVFMA,20540
427
+ mindroot/coreplugins/agent/agent.py,sha256=TDKnEI8xxeEzFzJcnOBEiTtozBaxXVrnnw8aTfx4nDE,20706
426
428
  mindroot/coreplugins/agent/cmd_start_example.py,sha256=Mdcd9st6viI6-M7a0-zqkw3IxR9FAxIiZ_8G-tLdIJk,1416
427
429
  mindroot/coreplugins/agent/command_parser.py,sha256=Ouzksb6Gq7O9d__mk1zeQon_ycZJnh0jb7U1vsyK1R0,12797
428
430
  mindroot/coreplugins/agent/ensure_msg_type.py,sha256=P2XSBs3gtjlDQLOF7808nm-Dl5jswyO6qgv0lNRyHXM,240
@@ -446,9 +448,9 @@ mindroot/coreplugins/chat/__init__.py,sha256=0Zs02XeMuTCBdKHvtpO-utxyWmFaQJpH-O1
446
448
  mindroot/coreplugins/chat/commands.py,sha256=QozVxkLqtP6rlK3tSVLThfZz6nE7G_YygcmDzZdgb7c,16773
447
449
  mindroot/coreplugins/chat/format_result_msgs.py,sha256=daEdpEyAJIa8b2VkCqSKcw8PaExcB6Qro80XNes_sHA,2
448
450
  mindroot/coreplugins/chat/mod.py,sha256=Xydjv3feKJJRbwdiB7raqiQnWtaS_2GcdC9bXYQX3nE,425
449
- mindroot/coreplugins/chat/models.py,sha256=CwXPj6S_7GBEBMjA9wQY_v5gfcoA4ACeC134MioIr2Y,693
450
- mindroot/coreplugins/chat/router.py,sha256=CafMjlY2AXAmSc4Ow5HYgfYAmaRmk7o_Z4ZPbc17Wsw,6824
451
- mindroot/coreplugins/chat/services.py,sha256=RKarPM4jZyRXW-FNcbQAGB80VPg9G0n0L6f4wQgMces,16509
451
+ mindroot/coreplugins/chat/models.py,sha256=GRcRuDUAJFpyWERPMxkxUaZ21igNlWeeamriruEKiEQ,692
452
+ mindroot/coreplugins/chat/router.py,sha256=Cx6cmdqt5itlcIhBwHmwauR4z5brFdJrCXWSPBVTQHI,7811
453
+ mindroot/coreplugins/chat/services.py,sha256=IiUBjsRzKQZ0xw6TV8-dj6mehzTlA5XxcPPQYFQH6Kk,17561
452
454
  mindroot/coreplugins/chat/utils.py,sha256=BiE14PpsAcQSO5vbU88klHGm8cAXJDXxgVgva-EXybU,155
453
455
  mindroot/coreplugins/chat/static/assistant.png,sha256=oAt1ctkFKLSPBoAZGNnSixooW9ANVIk1GwniauVWDXo,215190
454
456
  mindroot/coreplugins/chat/static/mindgen.png,sha256=fN3E3oOFvAGYjJq-Pvg2f75jIMv7kg5WRU0EeEbxCWg,235353
@@ -458,8 +460,8 @@ mindroot/coreplugins/chat/static/neon.css,sha256=OCfT6HmdptmBCI4Y4DkObMmX2a3bC4s
458
460
  mindroot/coreplugins/chat/static/site.webmanifest,sha256=xER-QHwaPRf4ahSn2kR8aW4SrMrAMr2bpRCPH6p7ako,294
459
461
  mindroot/coreplugins/chat/static/user.png,sha256=J1krBpv71HvrF6-b0gpm57zye_vNW4QyPuSaDCiXGhg,206392
460
462
  mindroot/coreplugins/chat/static/css/admin-custom.css,sha256=j3PPzo9kzDkYu-mE06vL98m8ha9fkL4xfzei98Yjrwc,2825
461
- mindroot/coreplugins/chat/static/css/dark.css,sha256=DTfKG_a3PAMRSrVFELpw8oWyr4AWZrlnxgKGDK0tuoA,16680
462
- mindroot/coreplugins/chat/static/css/default.css,sha256=DTfKG_a3PAMRSrVFELpw8oWyr4AWZrlnxgKGDK0tuoA,16680
463
+ mindroot/coreplugins/chat/static/css/dark.css,sha256=7kF5BLQSPyvC8f63OxNM-rVf0SKtIihWiqT6kYzkpsk,17281
464
+ mindroot/coreplugins/chat/static/css/default.css,sha256=7kF5BLQSPyvC8f63OxNM-rVf0SKtIihWiqT6kYzkpsk,17281
463
465
  mindroot/coreplugins/chat/static/css/main.css,sha256=1DkmgA4Z80gu-fUgP8RNkwAYbp47jM4zibvR1Ry_xdQ,106
464
466
  mindroot/coreplugins/chat/static/css/mobile.css,sha256=XP58NamsA-JfhvDTyLe4EmXeNAbLMSo9daSh2dlr8NQ,3028
465
467
  mindroot/coreplugins/chat/static/css/reset.css,sha256=pN9wuf7laZeIt-QjbxqJXDfu7yOTVy7fshf-VMeXPu0,696
@@ -486,7 +488,7 @@ mindroot/coreplugins/chat/static/js/authfetch.js,sha256=a05Vj4pt6Qnu4WdF7jsismVi
486
488
  mindroot/coreplugins/chat/static/js/base.js,sha256=AtaHATjxpQNQ7Lv8RUlV0n3icrpmC2dmnkAdSI_v714,1285
487
489
  mindroot/coreplugins/chat/static/js/chat-history.js,sha256=J-9Kv5pNW2HWQuPbgGiyMESOFnAOd25cSLK-CxIU1Mg,5912
488
490
  mindroot/coreplugins/chat/static/js/chat.js,sha256=u2GqdPI4WGYz0v4d1GH2QbK9wTzsJzV6zr0Xz0E1nmw,13147
489
- mindroot/coreplugins/chat/static/js/chatform.js,sha256=YAgwtBeFKCmRXhhZe1NEJwRTJ_lH6vhRvVMiZ8MYVDk,11275
491
+ mindroot/coreplugins/chat/static/js/chatform.js,sha256=hXluGkTIxCMzp_3v1IPBwcDvAdjQqcrP5ojJd95I1wA,17823
490
492
  mindroot/coreplugins/chat/static/js/chatmessage.js,sha256=qoRb6XWKzzbMOIowIt3admWO8FaT2VqWGhN_anQlGSQ,1272
491
493
  mindroot/coreplugins/chat/static/js/cmdprefixes.js,sha256=Gip5WQXYb_VFK51OYlNtxT1fKUATKLsuVUpaGBKBwig,1022
492
494
  mindroot/coreplugins/chat/static/js/code-copy-button.js,sha256=-owTkgvP9Ibdd12yyFJcvAeN2jfqf0ETUtXgNuHnWrg,5890
@@ -919,10 +921,10 @@ mindroot/coreplugins/events/router.py,sha256=a-77306_fQPNHPXP5aYtbpfC0gbqMBNRu04
919
921
  mindroot/coreplugins/events/backup/mod.py,sha256=9QeJpg6WKwxRdjiKVHD1froguTe86FS2-2wWm1B9xa8,1832
920
922
  mindroot/coreplugins/events/backup/router_backup.py,sha256=ImU8xoxdSd45V1yOFVqdtDQ614V6CMsDZQ1gtJj0Mnk,254
921
923
  mindroot/coreplugins/home/mod.py,sha256=MsSFjiLMLJZ7QhUPpVBWKiyDnCzryquRyr329NoCACI,2
922
- mindroot/coreplugins/home/router.py,sha256=phwg4Fi5_b3a8YI2lknTuDg5EaVrmaMmbUA5BBPO1HA,788
924
+ mindroot/coreplugins/home/router.py,sha256=kzPg2eIimG_2Qa1bZ0gKCmoo2uzd8GurrePODOO1How,1982
923
925
  mindroot/coreplugins/home/static/css/dark.css,sha256=Q9FHaEsf9xeJjtouyKgr1Su6vTzsN07NHxxqDrDfyx8,14259
924
926
  mindroot/coreplugins/home/static/css/default.css,sha256=zlQjpwNvuJP_zULCWkFycWudF1GRQz9Y5mvdKpzXXFc,13354
925
- mindroot/coreplugins/home/static/css/enhanced.css,sha256=RUikx2GjFBnJsV1_-BqbJ45wkFsRJatMm-D_3KI6QhA,1711
927
+ mindroot/coreplugins/home/static/css/enhanced.css,sha256=oYGR_abXN5-wTmabQ3_QfSOoZ8sDRajsJJAfBgk-voE,3800
926
928
  mindroot/coreplugins/home/static/css/home.css,sha256=SpelrHEHA04M5hK6Xijnc-ZyyROZehmOkKQFt4JkOQk,2950
927
929
  mindroot/coreplugins/home/static/css/reset.css,sha256=pN9wuf7laZeIt-QjbxqJXDfu7yOTVy7fshf-VMeXPu0,696
928
930
  mindroot/coreplugins/home/static/css/update.css,sha256=HWh01CnuKX_1rXQIwBQtc95wi6xBLnup29Gi5I-UOBg,3002
@@ -1294,7 +1296,7 @@ mindroot/coreplugins/home/static/js/lit-html/node/directives/until.js,sha256=j1W
1294
1296
  mindroot/coreplugins/home/static/js/lit-html/node/directives/until.js.map,sha256=7xiwSZ7_fGtr5XwW-10Dzs8n9QE2VUfXaZ0Sd6d82L0,6567
1295
1297
  mindroot/coreplugins/home/static/js/lit-html/node/directives/when.js,sha256=NLe0NJ-6jqjVDUrT_DzmSpREsRaLo1yarzdYcV_5xHY,181
1296
1298
  mindroot/coreplugins/home/static/js/lit-html/node/directives/when.js.map,sha256=tOonih_-EaqrunhNGshA9xN--WIVdGikjg8MkVp0itQ,1534
1297
- mindroot/coreplugins/home/templates/home.jinja2,sha256=RphAQQhEjyJwDhYfUhd3YS8vvHwIAG7KuyCiU-II6TU,1837
1299
+ mindroot/coreplugins/home/templates/home.jinja2,sha256=wVaXYgaNK3Kn7wmrKEyBT24Az2l4_o7ctVbDhHPXgEw,2088
1298
1300
  mindroot/coreplugins/index/.gitignore,sha256=r_urXBxUYZhSuWyYzpRcAz5rHR0gVTERMrTI_gbBmCM,9
1299
1301
  mindroot/coreplugins/index/__init__.py,sha256=WU5revQym2nu-vAV-o5cdAXpuRlb_Juu0lzc9s6lIFU,74
1300
1302
  mindroot/coreplugins/index/default.json,sha256=E3Rj8gCAcFeppbS4CtXoGwXL94E7jFJQcNflDp4xrJg,2030
@@ -1765,7 +1767,7 @@ mindroot/coreplugins/user_service/backup/admin_setup.py,sha256=JGszAw8nVtnNiisSU
1765
1767
  mindroot/lib/__init__.py,sha256=388n_hMskU0TnZ4xT10US_kFkya-EPBjWcv7AZf_HOk,74
1766
1768
  mindroot/lib/butemplates.py,sha256=gfHGPTOjvoEenXsR7xokNuqMjOAPuC2DawheH1Ae4bU,12196
1767
1769
  mindroot/lib/chatcontext.py,sha256=OR63K63NMjaV7kXDf0MIcvOXFZhdiqr7LKgbyfZzjkE,6211
1768
- mindroot/lib/chatlog.py,sha256=JXiVJP8x8GPdvIZMgwAUc4HnwcszaUV2So0YMAms0rw,5544
1770
+ mindroot/lib/chatlog.py,sha256=B5kLuwMHyEC_AmjNbXWal-tdXwVnOwcZ4PPUK7Vb7NQ,5860
1769
1771
  mindroot/lib/json_escape.py,sha256=5cAmAdNbnYX2uyfQcnse2fFtNI0CdB-AfZ23RwaDm-k,884
1770
1772
  mindroot/lib/model_selector.py,sha256=Wz-8NZoiclmnhLeCNnI3WCuKFmjsO5HE4bK5F8GpZzU,1397
1771
1773
  mindroot/lib/parent_templates.py,sha256=elcQFFwrFtfAYfQOSTs06aiDDigN1f1R2f8I1V-wj6Q,2731
@@ -1773,7 +1775,8 @@ mindroot/lib/plugins.py,sha256=96QElzJ6cuS9BpQJQZMJblDCF2toO14Z80D7DRAjMDc,1592
1773
1775
  mindroot/lib/plugins_install.py,sha256=CUDkdDhIKkwN3U1hfKaTq8QUwGApFrNKmt3iycZuTKs,2042
1774
1776
  mindroot/lib/route_decorators.py,sha256=L3E-bn48zhuxk6YPtyc2oP76-5WuV_SmjxtngJeYGmM,2153
1775
1777
  mindroot/lib/session_files.py,sha256=Vl50YfEnKt8ucGSDIavsAdbAcf8IbMG3Fdgm4pEh2Yg,1263
1776
- mindroot/lib/templates.py,sha256=p7L__gsRDvDEUM_Ezc_rU1POYQHgguG73RrcCvFjQd0,14709
1778
+ mindroot/lib/streamcmd.py,sha256=f9n3OtryEkMbNNuFr5BAZn1EpSLUKuDZw-zpo97XxJk,4714
1779
+ mindroot/lib/templates.py,sha256=5dODCS6UeC9Y_PdMWlUuQCCZUUt2ICR0S1YF6XrG3eM,15154
1777
1780
  mindroot/lib/auth/__init__.py,sha256=5EZbCTcdlnTHYE0JNk8znWNSO7mOsokMOvRBjb5Mq-M,49
1778
1781
  mindroot/lib/auth/auth.py,sha256=2vhF_LfZcTPt2N2VLWy1ZP7h2pKFv7XM3xW1iRVOTkU,3129
1779
1782
  mindroot/lib/db/organize_models.py,sha256=kiadXfhGjCY16c36l1JmxXcKSH4ShWWEUnHi7WRRn9c,5028
@@ -1811,9 +1814,9 @@ mindroot/protocols/services/stream_chat.py,sha256=fMnPfwaB5fdNMBLTEg8BXKAGvrELKH
1811
1814
  mindroot/registry/__init__.py,sha256=40Xy9bmPHsgdIrOzbtBGzf4XMqXVi9P8oZTJhn0r654,151
1812
1815
  mindroot/registry/component_manager.py,sha256=WZFNPg4SNvpqsM5NFiC2DpgmrJQCyR9cNhrCBpp30Qk,995
1813
1816
  mindroot/registry/data_access.py,sha256=NgNMamxIjaKeYxzxnVaQz1Y-Rm0AI51si3788_JHUTM,5316
1814
- mindroot-8.1.0.dist-info/licenses/LICENSE,sha256=8plAmZh8y9ccuuqFFz4kp7G-cO_qsPgAOoHNvabSB4U,1070
1815
- mindroot-8.1.0.dist-info/METADATA,sha256=UH2WFiqi8-vyY7bpDOU9JnM1bbqnjz3YKSdUD590vXU,356
1816
- mindroot-8.1.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
1817
- mindroot-8.1.0.dist-info/entry_points.txt,sha256=0bpyjMccLttx6VcjDp6zfJPN0Kk0rffor6IdIbP0j4c,50
1818
- mindroot-8.1.0.dist-info/top_level.txt,sha256=gwKm7DmNjhdrCJTYCrxa9Szne4lLpCtrEBltfsX-Mm8,9
1819
- mindroot-8.1.0.dist-info/RECORD,,
1817
+ mindroot-8.2.0.dist-info/licenses/LICENSE,sha256=8plAmZh8y9ccuuqFFz4kp7G-cO_qsPgAOoHNvabSB4U,1070
1818
+ mindroot-8.2.0.dist-info/METADATA,sha256=aNAkb4BPgjjdy_1OxxFYwxh0GdQPYtrL6pWlfLLotaY,356
1819
+ mindroot-8.2.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
1820
+ mindroot-8.2.0.dist-info/entry_points.txt,sha256=0bpyjMccLttx6VcjDp6zfJPN0Kk0rffor6IdIbP0j4c,50
1821
+ mindroot-8.2.0.dist-info/top_level.txt,sha256=gwKm7DmNjhdrCJTYCrxa9Szne4lLpCtrEBltfsX-Mm8,9
1822
+ mindroot-8.2.0.dist-info/RECORD,,