dtSpark 1.1.0a7__py3-none-any.whl → 1.1.0a9__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.
- dtSpark/_version.txt +1 -1
- dtSpark/mcp_integration/tool_selector.py +3 -3
- dtSpark/tools/builtin.py +11 -1
- dtSpark/web/static/css/dark-theme.css +55 -3
- dtSpark/web/static/js/chat.js +118 -15
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/METADATA +1 -1
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/RECORD +11 -11
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/WHEEL +0 -0
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/entry_points.txt +0 -0
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/licenses/LICENSE +0 -0
- {dtspark-1.1.0a7.dist-info → dtspark-1.1.0a9.dist-info}/top_level.txt +0 -0
dtSpark/_version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.0a9
|
|
@@ -21,7 +21,7 @@ class ToolSelector:
|
|
|
21
21
|
'aws_infrastructure': ['ec2', 's3', 'lambda', 'cloudwatch', 'iam', 'vpc', 'rds', 'dynamodb', 'diagram'],
|
|
22
22
|
'elasticsearch': ['elasticsearch', 'search', 'index', 'query', 'aggregation'],
|
|
23
23
|
'ragstore': ['ragstore', 'rag', 'embedding', 'vector', 'semantic'],
|
|
24
|
-
'documents': ['word', 'excel', 'powerpoint', 'pdf', '
|
|
24
|
+
'documents': ['word', 'excel', 'powerpoint', 'pdf', 'docx', 'xlsx', 'pptx', 'spreadsheet'],
|
|
25
25
|
'archives': ['archive', 'zip', 'tar', 'extract', 'compress', 'tgz'],
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -38,8 +38,8 @@ class ToolSelector:
|
|
|
38
38
|
'vpc', 'subnet', 'instance', 'bucket', 'function', 'diagram'],
|
|
39
39
|
'elasticsearch': ['elasticsearch', 'search', 'query', 'index', 'log', 'aggregate'],
|
|
40
40
|
'ragstore': ['ragstore', 'rag', 'embedding', 'semantic', 'vector', 'similarity'],
|
|
41
|
-
'documents': ['
|
|
42
|
-
'spreadsheet', 'presentation', '
|
|
41
|
+
'documents': ['word doc', 'excel', 'powerpoint', 'pdf', 'docx', 'xlsx', 'pptx',
|
|
42
|
+
'spreadsheet', 'presentation', 'office'],
|
|
43
43
|
'archives': ['archive', 'zip', 'tar', 'extract', 'unzip', 'compressed', 'tgz'],
|
|
44
44
|
}
|
|
45
45
|
|
dtSpark/tools/builtin.py
CHANGED
|
@@ -361,7 +361,11 @@ def _get_filesystem_tools(fs_config: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
|
361
361
|
tools.extend([
|
|
362
362
|
{
|
|
363
363
|
"name": "write_file",
|
|
364
|
-
"description": f"Write content to a file within the allowed path ({allowed_path}). "
|
|
364
|
+
"description": f"Write text content to a file within the allowed path ({allowed_path}). "
|
|
365
|
+
"Use this tool for creating or updating ANY text-based file including HTML, CSS, JavaScript, "
|
|
366
|
+
"JSON, YAML, XML, Python, Markdown, plain text, config files, and all other non-binary formats. "
|
|
367
|
+
"Do NOT use the Microsoft Office tools (create_word_document, create_excel_document, "
|
|
368
|
+
"create_powerpoint_document) for text-based file formats. "
|
|
365
369
|
"Creates the file if it doesn't exist, or overwrites if it exists. "
|
|
366
370
|
"Parent directories must already exist (use create_directories first if needed).",
|
|
367
371
|
"input_schema": {
|
|
@@ -1037,6 +1041,8 @@ def _get_document_tools(doc_config: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
|
1037
1041
|
{
|
|
1038
1042
|
"name": "create_word_document",
|
|
1039
1043
|
"description": f"Create a Microsoft Word document (.docx) within the allowed path ({allowed_path}). "
|
|
1044
|
+
"ONLY use this tool when the user specifically requests a Word/.docx file. "
|
|
1045
|
+
"Do NOT use this for HTML, plain text, Markdown, or other text-based formats — use write_file instead. "
|
|
1040
1046
|
"Supports creating from scratch with structured content, or using a template with placeholder replacement. "
|
|
1041
1047
|
"When using a template, placeholders in the format {{{{placeholder_name}}}} will be replaced with provided values.",
|
|
1042
1048
|
"input_schema": {
|
|
@@ -1080,6 +1086,8 @@ def _get_document_tools(doc_config: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
|
1080
1086
|
{
|
|
1081
1087
|
"name": "create_excel_document",
|
|
1082
1088
|
"description": f"Create a Microsoft Excel document (.xlsx) within the allowed path ({allowed_path}). "
|
|
1089
|
+
"ONLY use this tool when the user specifically requests an Excel/.xlsx spreadsheet. "
|
|
1090
|
+
"Do NOT use this for CSV or other text-based tabular formats — use write_file instead. "
|
|
1083
1091
|
"Creates spreadsheets from structured data. Supports multiple sheets.",
|
|
1084
1092
|
"input_schema": {
|
|
1085
1093
|
"type": "object",
|
|
@@ -1112,6 +1120,8 @@ def _get_document_tools(doc_config: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
|
1112
1120
|
{
|
|
1113
1121
|
"name": "create_powerpoint_document",
|
|
1114
1122
|
"description": f"Create a Microsoft PowerPoint document (.pptx) within the allowed path ({allowed_path}). "
|
|
1123
|
+
"ONLY use this tool when the user specifically requests a PowerPoint/.pptx presentation. "
|
|
1124
|
+
"Do NOT use this for HTML presentations or other text-based formats — use write_file instead. "
|
|
1115
1125
|
"Creates presentations with title and content slides. Supports templates with placeholder replacement.",
|
|
1116
1126
|
"input_schema": {
|
|
1117
1127
|
"type": "object",
|
|
@@ -101,19 +101,71 @@ body {
|
|
|
101
101
|
overflow-x: auto;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
/* Tool calls */
|
|
104
|
+
/* Tool calls - aligned left like assistant messages */
|
|
105
105
|
.tool-call {
|
|
106
106
|
background-color: #2a3a4a;
|
|
107
107
|
padding: 0.75rem;
|
|
108
108
|
margin: 0.5rem 0;
|
|
109
|
-
|
|
109
|
+
margin-right: 20%;
|
|
110
|
+
border-radius: 0.5rem;
|
|
110
111
|
}
|
|
111
112
|
|
|
113
|
+
/* Tool results - aligned right like user messages */
|
|
112
114
|
.tool-result {
|
|
113
115
|
background-color: #3a3a2a;
|
|
114
116
|
padding: 0.75rem;
|
|
115
117
|
margin: 0.5rem 0;
|
|
116
|
-
|
|
118
|
+
margin-left: 20%;
|
|
119
|
+
border-radius: 0.5rem;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Tool message header with icons */
|
|
123
|
+
.tool-header {
|
|
124
|
+
display: flex;
|
|
125
|
+
justify-content: space-between;
|
|
126
|
+
align-items: center;
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.tool-header-left {
|
|
131
|
+
display: flex;
|
|
132
|
+
align-items: center;
|
|
133
|
+
gap: 0.5rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.tool-header-icons {
|
|
137
|
+
display: flex;
|
|
138
|
+
gap: 0.25rem;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.tool-header-icons button {
|
|
142
|
+
background: none;
|
|
143
|
+
border: none;
|
|
144
|
+
color: #aaa;
|
|
145
|
+
padding: 0.25rem;
|
|
146
|
+
cursor: pointer;
|
|
147
|
+
font-size: 0.9rem;
|
|
148
|
+
transition: color 0.2s;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.tool-header-icons button:hover {
|
|
152
|
+
color: #fff;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Tool content - collapsible */
|
|
156
|
+
.tool-content {
|
|
157
|
+
display: none;
|
|
158
|
+
margin-top: 0.5rem;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.tool-content.expanded {
|
|
162
|
+
display: block;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.tool-content pre {
|
|
166
|
+
margin: 0;
|
|
167
|
+
white-space: pre-wrap;
|
|
168
|
+
word-wrap: break-word;
|
|
117
169
|
}
|
|
118
170
|
|
|
119
171
|
/* Rollup summary */
|
dtSpark/web/static/js/chat.js
CHANGED
|
@@ -167,19 +167,34 @@ function appendToolResults(content, timestamp = null) {
|
|
|
167
167
|
|
|
168
168
|
if (Array.isArray(results)) {
|
|
169
169
|
results.forEach((result, index) => {
|
|
170
|
+
const toolId = generateToolId();
|
|
170
171
|
const resultDiv = document.createElement('div');
|
|
171
172
|
resultDiv.className = 'tool-result';
|
|
173
|
+
resultDiv.id = toolId;
|
|
172
174
|
|
|
173
|
-
const
|
|
175
|
+
const toolUseId = result.tool_use_id || 'unknown';
|
|
174
176
|
const resultContent = result.content || JSON.stringify(result);
|
|
177
|
+
const formattedContent = typeof resultContent === 'string' ? resultContent : JSON.stringify(resultContent, null, 2);
|
|
175
178
|
|
|
176
179
|
resultDiv.innerHTML = `
|
|
177
|
-
<div class="small">
|
|
178
|
-
<
|
|
179
|
-
|
|
180
|
-
|
|
180
|
+
<div class="tool-header small" onclick="toggleToolContent('${toolId}')">
|
|
181
|
+
<div class="tool-header-left">
|
|
182
|
+
<strong><i class="bi bi-check-circle-fill"></i> Tool Result ${index + 1}:</strong>
|
|
183
|
+
<code>${escapeHtml(toolUseId)}</code>
|
|
184
|
+
${timestamp ? `<span class="ms-2">${formatTimestamp(timestamp)}</span>` : ''}
|
|
185
|
+
</div>
|
|
186
|
+
<div class="tool-header-icons">
|
|
187
|
+
<button class="tool-copy-btn" onclick="event.stopPropagation(); copyToolContent('${toolId}')" title="Copy to clipboard">
|
|
188
|
+
<i class="bi bi-clipboard"></i>
|
|
189
|
+
</button>
|
|
190
|
+
<button onclick="event.stopPropagation(); toggleToolContent('${toolId}')" title="Expand/Collapse">
|
|
191
|
+
<i class="bi bi-chevron-down" id="${toolId}-toggle-icon"></i>
|
|
192
|
+
</button>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="tool-content" id="${toolId}-content">
|
|
196
|
+
<pre class="small mb-0">${escapeHtml(formattedContent)}</pre>
|
|
181
197
|
</div>
|
|
182
|
-
<pre class="small mb-0 mt-1">${escapeHtml(typeof resultContent === 'string' ? resultContent : JSON.stringify(resultContent, null, 2))}</pre>
|
|
183
198
|
`;
|
|
184
199
|
|
|
185
200
|
messagesContainer.appendChild(resultDiv);
|
|
@@ -188,11 +203,27 @@ function appendToolResults(content, timestamp = null) {
|
|
|
188
203
|
} catch (e) {
|
|
189
204
|
console.error('Error parsing tool results:', e);
|
|
190
205
|
// Fall back to displaying the raw content
|
|
206
|
+
const toolId = generateToolId();
|
|
191
207
|
const resultDiv = document.createElement('div');
|
|
192
208
|
resultDiv.className = 'tool-result';
|
|
209
|
+
resultDiv.id = toolId;
|
|
193
210
|
resultDiv.innerHTML = `
|
|
194
|
-
<div class="small"
|
|
195
|
-
|
|
211
|
+
<div class="tool-header small" onclick="toggleToolContent('${toolId}')">
|
|
212
|
+
<div class="tool-header-left">
|
|
213
|
+
<strong><i class="bi bi-check-circle-fill"></i> Tool Results</strong>
|
|
214
|
+
</div>
|
|
215
|
+
<div class="tool-header-icons">
|
|
216
|
+
<button class="tool-copy-btn" onclick="event.stopPropagation(); copyToolContent('${toolId}')" title="Copy to clipboard">
|
|
217
|
+
<i class="bi bi-clipboard"></i>
|
|
218
|
+
</button>
|
|
219
|
+
<button onclick="event.stopPropagation(); toggleToolContent('${toolId}')" title="Expand/Collapse">
|
|
220
|
+
<i class="bi bi-chevron-down" id="${toolId}-toggle-icon"></i>
|
|
221
|
+
</button>
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="tool-content" id="${toolId}-content">
|
|
225
|
+
<pre class="small mb-0">${escapeHtml(content)}</pre>
|
|
226
|
+
</div>
|
|
196
227
|
`;
|
|
197
228
|
messagesContainer.appendChild(resultDiv);
|
|
198
229
|
}
|
|
@@ -225,6 +256,50 @@ function appendRollupSummary(content, timestamp = null) {
|
|
|
225
256
|
scrollToBottom();
|
|
226
257
|
}
|
|
227
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Generate a unique ID for tool elements
|
|
261
|
+
* @returns {string} Unique ID
|
|
262
|
+
*/
|
|
263
|
+
function generateToolId() {
|
|
264
|
+
return 'tool-' + Date.now() + '-' + Math.random().toString(36).substr(2, 9);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Toggle tool content visibility
|
|
269
|
+
* @param {string} toolId - ID of the tool element
|
|
270
|
+
*/
|
|
271
|
+
function toggleToolContent(toolId) {
|
|
272
|
+
const content = document.getElementById(toolId + '-content');
|
|
273
|
+
const icon = document.getElementById(toolId + '-toggle-icon');
|
|
274
|
+
if (content && icon) {
|
|
275
|
+
content.classList.toggle('expanded');
|
|
276
|
+
icon.className = content.classList.contains('expanded')
|
|
277
|
+
? 'bi bi-chevron-up'
|
|
278
|
+
: 'bi bi-chevron-down';
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Copy tool content to clipboard
|
|
284
|
+
* @param {string} toolId - ID of the tool element
|
|
285
|
+
*/
|
|
286
|
+
function copyToolContent(toolId) {
|
|
287
|
+
const content = document.getElementById(toolId + '-content');
|
|
288
|
+
if (content) {
|
|
289
|
+
const pre = content.querySelector('pre');
|
|
290
|
+
if (pre) {
|
|
291
|
+
navigator.clipboard.writeText(pre.textContent).then(() => {
|
|
292
|
+
const btn = document.querySelector(`#${toolId} .tool-copy-btn`);
|
|
293
|
+
if (btn) {
|
|
294
|
+
const originalIcon = btn.innerHTML;
|
|
295
|
+
btn.innerHTML = '<i class="bi bi-check"></i>';
|
|
296
|
+
setTimeout(() => { btn.innerHTML = originalIcon; }, 1500);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
228
303
|
/**
|
|
229
304
|
* Append a tool call message
|
|
230
305
|
* @param {string} toolName - Tool name
|
|
@@ -232,14 +307,28 @@ function appendRollupSummary(content, timestamp = null) {
|
|
|
232
307
|
*/
|
|
233
308
|
function appendToolCall(toolName, toolInput) {
|
|
234
309
|
const messagesContainer = document.getElementById('chat-messages');
|
|
310
|
+
const toolId = generateToolId();
|
|
235
311
|
|
|
236
312
|
const toolDiv = document.createElement('div');
|
|
237
313
|
toolDiv.className = 'tool-call';
|
|
314
|
+
toolDiv.id = toolId;
|
|
238
315
|
toolDiv.innerHTML = `
|
|
239
|
-
<div class="small">
|
|
240
|
-
<
|
|
316
|
+
<div class="tool-header small" onclick="toggleToolContent('${toolId}')">
|
|
317
|
+
<div class="tool-header-left">
|
|
318
|
+
<strong><i class="bi bi-tools"></i> Tool Call:</strong> <code>${escapeHtml(toolName)}</code>
|
|
319
|
+
</div>
|
|
320
|
+
<div class="tool-header-icons">
|
|
321
|
+
<button class="tool-copy-btn" onclick="event.stopPropagation(); copyToolContent('${toolId}')" title="Copy to clipboard">
|
|
322
|
+
<i class="bi bi-clipboard"></i>
|
|
323
|
+
</button>
|
|
324
|
+
<button onclick="event.stopPropagation(); toggleToolContent('${toolId}')" title="Expand/Collapse">
|
|
325
|
+
<i class="bi bi-chevron-down" id="${toolId}-toggle-icon"></i>
|
|
326
|
+
</button>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
<div class="tool-content" id="${toolId}-content">
|
|
330
|
+
<pre class="small mb-0">${escapeHtml(JSON.stringify(toolInput, null, 2))}</pre>
|
|
241
331
|
</div>
|
|
242
|
-
<pre class="small mb-0 mt-1">${escapeHtml(JSON.stringify(toolInput, null, 2))}</pre>
|
|
243
332
|
`;
|
|
244
333
|
|
|
245
334
|
messagesContainer.appendChild(toolDiv);
|
|
@@ -248,19 +337,33 @@ function appendToolCall(toolName, toolInput) {
|
|
|
248
337
|
|
|
249
338
|
/**
|
|
250
339
|
* Append a tool result message
|
|
251
|
-
* @param {string} toolName - Tool name
|
|
340
|
+
* @param {string} toolName - Tool name or tool_use_id
|
|
252
341
|
* @param {object} toolResult - Tool result data
|
|
253
342
|
*/
|
|
254
343
|
function appendToolResult(toolName, toolResult) {
|
|
255
344
|
const messagesContainer = document.getElementById('chat-messages');
|
|
345
|
+
const toolId = generateToolId();
|
|
256
346
|
|
|
257
347
|
const resultDiv = document.createElement('div');
|
|
258
348
|
resultDiv.className = 'tool-result';
|
|
349
|
+
resultDiv.id = toolId;
|
|
259
350
|
resultDiv.innerHTML = `
|
|
260
|
-
<div class="small">
|
|
261
|
-
<
|
|
351
|
+
<div class="tool-header small" onclick="toggleToolContent('${toolId}')">
|
|
352
|
+
<div class="tool-header-left">
|
|
353
|
+
<strong><i class="bi bi-check-circle-fill"></i> Tool Result:</strong> <code>${escapeHtml(toolName)}</code>
|
|
354
|
+
</div>
|
|
355
|
+
<div class="tool-header-icons">
|
|
356
|
+
<button class="tool-copy-btn" onclick="event.stopPropagation(); copyToolContent('${toolId}')" title="Copy to clipboard">
|
|
357
|
+
<i class="bi bi-clipboard"></i>
|
|
358
|
+
</button>
|
|
359
|
+
<button onclick="event.stopPropagation(); toggleToolContent('${toolId}')" title="Expand/Collapse">
|
|
360
|
+
<i class="bi bi-chevron-down" id="${toolId}-toggle-icon"></i>
|
|
361
|
+
</button>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
<div class="tool-content" id="${toolId}-content">
|
|
365
|
+
<pre class="small mb-0">${escapeHtml(JSON.stringify(toolResult, null, 2))}</pre>
|
|
262
366
|
</div>
|
|
263
|
-
<pre class="small mb-0 mt-1">${escapeHtml(JSON.stringify(toolResult, null, 2))}</pre>
|
|
264
367
|
`;
|
|
265
368
|
|
|
266
369
|
messagesContainer.appendChild(resultDiv);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dtSpark
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.0a9
|
|
4
4
|
Summary: Secure Personal AI Research Kit - Multi-provider LLM CLI/Web interface with MCP tool integration
|
|
5
5
|
Home-page: https://github.com/digital-thought/dtSpark
|
|
6
6
|
Author: Matthew Westwood-Hill
|
|
@@ -4,7 +4,7 @@ dtSpark/_full_name.txt,sha256=wsMYXtT12WMrY9gT1JHiKdE4k7H59psECS6cSD07giQ,31
|
|
|
4
4
|
dtSpark/_licence.txt,sha256=Mvt5wkOkst8VGlk48vwN3CgHwMHLfmplKSPOUEbTfOw,1071
|
|
5
5
|
dtSpark/_metadata.yaml,sha256=h3PQd2QsY5yUBzS2b6EueTwkmd57svsbAKcwDVVEfIo,188
|
|
6
6
|
dtSpark/_name.txt,sha256=kDZC5_a3iMKIPOUvtLXl0C9N5DiOfgUCsecwTUnkJhs,7
|
|
7
|
-
dtSpark/_version.txt,sha256=
|
|
7
|
+
dtSpark/_version.txt,sha256=BL95x5tKVY_IYvsQIBZbtkltbDakQ6h9_tBz4n7OFT8,7
|
|
8
8
|
dtSpark/cli_interface.py,sha256=uNcD8s_h65EJA9xXB_waMfiugwmNYVLdntB2qNn8-Rc,97635
|
|
9
9
|
dtSpark/conversation_manager.py,sha256=VcfZSwrRuuUbVZa8kQVJjHwG4un5HA0nqYuajsUovoI,132593
|
|
10
10
|
dtSpark/launch.py,sha256=j8XYpmDswWUIzhpMc32E0Fhbhk_qhOQUAwJSpqh37f0,892
|
|
@@ -48,7 +48,7 @@ dtSpark/llm/manager.py,sha256=Qg9glX5ZhepWaRnb8ILZiPoiwqzC8Y318JgwuJf9m58,5837
|
|
|
48
48
|
dtSpark/llm/ollama.py,sha256=BQOS6j8nRipoHzPv6gxwzpjucdJ-HLQ3ixNvTEPROKM,20897
|
|
49
49
|
dtSpark/mcp_integration/__init__.py,sha256=pFw-yTSSJ1yx_ksTe94eq8pBrwDD-5Z-UqSM3VO4deQ,157
|
|
50
50
|
dtSpark/mcp_integration/manager.py,sha256=yfSymFPXAN-80Rl0M5D-Upb3vIvRq_tvGAI5wVR-IdQ,25241
|
|
51
|
-
dtSpark/mcp_integration/tool_selector.py,sha256=
|
|
51
|
+
dtSpark/mcp_integration/tool_selector.py,sha256=15l2Abr1ouuk0GUoysetnW-e7z-x1MRU1LpYsYJ2xrA,10997
|
|
52
52
|
dtSpark/resources/config.yaml.template,sha256=e_GNNZ2FAVDcx1dQ-Mc41SMEPE9M0JrRWdFyRYqstMA,27454
|
|
53
53
|
dtSpark/safety/__init__.py,sha256=fdcZ4qNbYhH7Un9iKLwNe2GDr_doUmpSgtv-oNS8qPE,460
|
|
54
54
|
dtSpark/safety/llm_service.py,sha256=N2J9_Od-fGGvk9BkddD6CFd81PrJ03sMjSz6egBDYr4,3820
|
|
@@ -61,7 +61,7 @@ dtSpark/scheduler/execution_queue.py,sha256=7_yXnGxO-arZTl0qPbyE-kDhZDVXQKT2z9zI
|
|
|
61
61
|
dtSpark/scheduler/executor.py,sha256=s_-6WKdTYEK1-xjYJNXGcAj6vdN27Cf6TI9zNYPSsk0,51371
|
|
62
62
|
dtSpark/scheduler/manager.py,sha256=vwtmQadqf3cv1QzdZJzFqC0l3bBzIplGZ79BUjfsh4o,12846
|
|
63
63
|
dtSpark/tools/__init__.py,sha256=TPK-c8CmXheEkoiFzL9PMP8ve0hTpw9iIV2xlGLTsMc,147
|
|
64
|
-
dtSpark/tools/builtin.py,sha256=
|
|
64
|
+
dtSpark/tools/builtin.py,sha256=NpplsVH0eUVF3b1FevrFe0qVwQJkpfXNghLW4SuNh44,90136
|
|
65
65
|
dtSpark/web/__init__.py,sha256=5OrzA2yIR9NBf9mlTPnrQ0afMJTBuEgnzxq4QmIYe54,428
|
|
66
66
|
dtSpark/web/auth.py,sha256=uSIHwJOiklkjZSpLcznwOL1pVQktKeWifZygt068M9Y,4384
|
|
67
67
|
dtSpark/web/dependencies.py,sha256=ku54-Vb8wYvGVQ8Kluzxj8zm2Re3wDgU5LzFJ0NVIsI,874
|
|
@@ -75,9 +75,9 @@ dtSpark/web/endpoints/chat.py,sha256=c5MWZE-SY26Hr0X3DIFU_LQ15m1E-fFZ7hnQbmzXd1w
|
|
|
75
75
|
dtSpark/web/endpoints/conversations.py,sha256=bIt10Laq1JaFBqB_3E1b3dTdSBxPyKvzgmi_f9QaDc8,13537
|
|
76
76
|
dtSpark/web/endpoints/main_menu.py,sha256=shAP7F5zREbs2A7BmZAIzt5LpR83tZHrNXiFdWgsmFg,20621
|
|
77
77
|
dtSpark/web/endpoints/streaming.py,sha256=qo0ugUWYvJJF5QvvLpuIvFIlVWgOpfPyUK59HeoRgdY,14603
|
|
78
|
-
dtSpark/web/static/css/dark-theme.css,sha256=
|
|
78
|
+
dtSpark/web/static/css/dark-theme.css,sha256=K3RwCR3oRU7Iuzrjaa3oRjECCnvzhnJHexw2LDWXyQE,8581
|
|
79
79
|
dtSpark/web/static/js/actions.js,sha256=EI-ur3eNV97flgpUcM4M5YOQtn_VPS1o4aFiPvthx3U,37463
|
|
80
|
-
dtSpark/web/static/js/chat.js,sha256=
|
|
80
|
+
dtSpark/web/static/js/chat.js,sha256=UY28X8is2lrteQhnWePKTSu0KoReZU_M--S1BIfsjXQ,26489
|
|
81
81
|
dtSpark/web/static/js/main.js,sha256=0JUuRtVlWxpRgCZoHwM4_tRxyBrNKwTPQmN_meKEI4M,16133
|
|
82
82
|
dtSpark/web/static/js/sse-client.js,sha256=JZnLDar6j8m7TxuHJ9JQDl7E3LqUiWSbQHt6yMaskPI,9104
|
|
83
83
|
dtSpark/web/templates/actions.html,sha256=08Pk8aqmNEr3uEQTzmnFklETqd1hUcE8PCtUZVMZJso,18875
|
|
@@ -88,9 +88,9 @@ dtSpark/web/templates/goodbye.html,sha256=ZdEzgP9MD4kMPrLHkg_3wAod2Hfr9hSTRyBq9f
|
|
|
88
88
|
dtSpark/web/templates/login.html,sha256=OkLf_uzMYhl_o9ER1RQZc8ch6-bCaiOokEhKbeEl8E8,3274
|
|
89
89
|
dtSpark/web/templates/main_menu.html,sha256=pEJTq642BZ8LeeI5jyuJEU3mfGmGiHlMuMMq2XrBu78,39207
|
|
90
90
|
dtSpark/web/templates/new_conversation.html,sha256=wL9ZZbn3M8ktEoX7H5n4r6XKSEImtO2aXnuNKsB-pEw,8047
|
|
91
|
-
dtspark-1.1.
|
|
92
|
-
dtspark-1.1.
|
|
93
|
-
dtspark-1.1.
|
|
94
|
-
dtspark-1.1.
|
|
95
|
-
dtspark-1.1.
|
|
96
|
-
dtspark-1.1.
|
|
91
|
+
dtspark-1.1.0a9.dist-info/licenses/LICENSE,sha256=jIuWlmbirwQabTwxfzE7SXT1LpCG-y_GRQ3VnoRTKgo,1101
|
|
92
|
+
dtspark-1.1.0a9.dist-info/METADATA,sha256=fHTAEt_e5D4AggJvDhcDKsjqALfpYby7IRgAp7J0uDo,7410
|
|
93
|
+
dtspark-1.1.0a9.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
94
|
+
dtspark-1.1.0a9.dist-info/entry_points.txt,sha256=IpIwa_a6XY8Z2w7DtgYAhpFHHEbha-zhLkyttWd3zpw,76
|
|
95
|
+
dtspark-1.1.0a9.dist-info/top_level.txt,sha256=x-6lMA6vNuxyDNJGNOKI4dyy7L0kOb9V98I5z46bJVY,8
|
|
96
|
+
dtspark-1.1.0a9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|