zerochat 7.3.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.
Files changed (130) hide show
  1. zerochat-7.3.0.dist-info/METADATA +70 -0
  2. zerochat-7.3.0.dist-info/RECORD +130 -0
  3. zerochat-7.3.0.dist-info/WHEEL +5 -0
  4. zerochat-7.3.0.dist-info/entry_points.txt +2 -0
  5. zerochat-7.3.0.dist-info/licenses/LICENSE +34 -0
  6. zerochat-7.3.0.dist-info/top_level.txt +2 -0
  7. zerochat.py +2004 -0
  8. zerochat_runtime/__init__.py +1 -0
  9. zerochat_runtime/assets/css/base.css +199 -0
  10. zerochat_runtime/assets/css/components/composer.css +1258 -0
  11. zerochat_runtime/assets/css/components/debug.css +777 -0
  12. zerochat_runtime/assets/css/components/header.css +97 -0
  13. zerochat_runtime/assets/css/components/icons.css +39 -0
  14. zerochat_runtime/assets/css/components/markdown.css +685 -0
  15. zerochat_runtime/assets/css/components/messages.css +473 -0
  16. zerochat_runtime/assets/css/components/modals.css +1319 -0
  17. zerochat_runtime/assets/css/components/sidebar.css +622 -0
  18. zerochat_runtime/assets/css/components/tools.css +1223 -0
  19. zerochat_runtime/assets/css/layout.css +171 -0
  20. zerochat_runtime/assets/css/print.css +120 -0
  21. zerochat_runtime/assets/css/styles.css +18 -0
  22. zerochat_runtime/assets/css/theme-overrides.css +555 -0
  23. zerochat_runtime/assets/css/tokens.css +165 -0
  24. zerochat_runtime/assets/help/architecture.html +247 -0
  25. zerochat_runtime/assets/help/composer.html +134 -0
  26. zerochat_runtime/assets/help/conversations.html +105 -0
  27. zerochat_runtime/assets/help/debug.html +108 -0
  28. zerochat_runtime/assets/help/en/architecture.html +247 -0
  29. zerochat_runtime/assets/help/en/composer.html +134 -0
  30. zerochat_runtime/assets/help/en/conversations.html +104 -0
  31. zerochat_runtime/assets/help/en/debug.html +105 -0
  32. zerochat_runtime/assets/help/en/gemini-free.html +39 -0
  33. zerochat_runtime/assets/help/en/index.html +191 -0
  34. zerochat_runtime/assets/help/en/learning.html +71 -0
  35. zerochat_runtime/assets/help/en/mcp.html +143 -0
  36. zerochat_runtime/assets/help/en/openrouter-free.html +39 -0
  37. zerochat_runtime/assets/help/en/profiles.html +173 -0
  38. zerochat_runtime/assets/help/en/rag.html +130 -0
  39. zerochat_runtime/assets/help/en/reasoning-telemetry.html +108 -0
  40. zerochat_runtime/assets/help/en/tools-agent.html +133 -0
  41. zerochat_runtime/assets/help/en/webllm.html +355 -0
  42. zerochat_runtime/assets/help/gemini-free.html +39 -0
  43. zerochat_runtime/assets/help/help.css +604 -0
  44. zerochat_runtime/assets/help/help.js +51 -0
  45. zerochat_runtime/assets/help/index.html +194 -0
  46. zerochat_runtime/assets/help/learning.html +71 -0
  47. zerochat_runtime/assets/help/mcp.html +143 -0
  48. zerochat_runtime/assets/help/openrouter-free.html +39 -0
  49. zerochat_runtime/assets/help/profiles.html +174 -0
  50. zerochat_runtime/assets/help/rag.html +130 -0
  51. zerochat_runtime/assets/help/reasoning-telemetry.html +111 -0
  52. zerochat_runtime/assets/help/tools-agent.html +133 -0
  53. zerochat_runtime/assets/help/webllm.html +359 -0
  54. zerochat_runtime/assets/js/agent-core.js +1553 -0
  55. zerochat_runtime/assets/js/api.js +844 -0
  56. zerochat_runtime/assets/js/app.js +2558 -0
  57. zerochat_runtime/assets/js/attachments.js +220 -0
  58. zerochat_runtime/assets/js/charts.js +338 -0
  59. zerochat_runtime/assets/js/chat-engine.js +566 -0
  60. zerochat_runtime/assets/js/config-store.js +207 -0
  61. zerochat_runtime/assets/js/context-manager.js +584 -0
  62. zerochat_runtime/assets/js/conversation-service.js +484 -0
  63. zerochat_runtime/assets/js/cookies.js +688 -0
  64. zerochat_runtime/assets/js/data-reset-service.js +136 -0
  65. zerochat_runtime/assets/js/debug.js +508 -0
  66. zerochat_runtime/assets/js/defaults.js +16 -0
  67. zerochat_runtime/assets/js/export.js +179 -0
  68. zerochat_runtime/assets/js/file-parser.js +2088 -0
  69. zerochat_runtime/assets/js/generation-controller.js +417 -0
  70. zerochat_runtime/assets/js/i18n.js +1483 -0
  71. zerochat_runtime/assets/js/icons.js +156 -0
  72. zerochat_runtime/assets/js/ingestionEngine.js +436 -0
  73. zerochat_runtime/assets/js/markdown.js +588 -0
  74. zerochat_runtime/assets/js/mcp.js +1271 -0
  75. zerochat_runtime/assets/js/message-turns.js +62 -0
  76. zerochat_runtime/assets/js/profile-backup.js +118 -0
  77. zerochat_runtime/assets/js/profile-export-bundle.js +481 -0
  78. zerochat_runtime/assets/js/profile-repository.js +213 -0
  79. zerochat_runtime/assets/js/providers-webllm.js +486 -0
  80. zerochat_runtime/assets/js/providers.js +1560 -0
  81. zerochat_runtime/assets/js/rag-index.js +295 -0
  82. zerochat_runtime/assets/js/rag-service.js +530 -0
  83. zerochat_runtime/assets/js/rag-ui.js +997 -0
  84. zerochat_runtime/assets/js/ragStorage.js +676 -0
  85. zerochat_runtime/assets/js/sandbox.js +449 -0
  86. zerochat_runtime/assets/js/state.js +704 -0
  87. zerochat_runtime/assets/js/storage-db.js +144 -0
  88. zerochat_runtime/assets/js/tool-cards.js +330 -0
  89. zerochat_runtime/assets/js/tool-security.js +653 -0
  90. zerochat_runtime/assets/js/tools/README.md +50 -0
  91. zerochat_runtime/assets/js/tools/builtin/agent-checkpoint.tool.js +212 -0
  92. zerochat_runtime/assets/js/tools/builtin/download-pdf.tool.js +111 -0
  93. zerochat_runtime/assets/js/tools/builtin/execute-javascript.tool.js +219 -0
  94. zerochat_runtime/assets/js/tools/builtin/fetch-web-page.tool.js +112 -0
  95. zerochat_runtime/assets/js/tools/builtin/list-documents.tool.js +117 -0
  96. zerochat_runtime/assets/js/tools/builtin/read-knowledge-chunk.tool.js +129 -0
  97. zerochat_runtime/assets/js/tools/builtin/read-knowledge-image.tool.js +95 -0
  98. zerochat_runtime/assets/js/tools/builtin/render-chart.tool.js +90 -0
  99. zerochat_runtime/assets/js/tools/builtin/search-knowledge-base.tool.js +124 -0
  100. zerochat_runtime/assets/js/tools/builtin/search-web.tool.js +125 -0
  101. zerochat_runtime/assets/js/tools/tool-manifest.js +53 -0
  102. zerochat_runtime/assets/js/tools/tool-runtime.js +77 -0
  103. zerochat_runtime/assets/js/ui-composer.js +319 -0
  104. zerochat_runtime/assets/js/ui-conversation.js +655 -0
  105. zerochat_runtime/assets/js/ui-dialogs.js +132 -0
  106. zerochat_runtime/assets/js/ui-generation-status.js +119 -0
  107. zerochat_runtime/assets/js/ui-inspector.js +804 -0
  108. zerochat_runtime/assets/js/ui-mcp.js +604 -0
  109. zerochat_runtime/assets/js/ui-profiles.js +824 -0
  110. zerochat_runtime/assets/js/ui-reasoning.js +146 -0
  111. zerochat_runtime/assets/js/ui-settings.js +825 -0
  112. zerochat_runtime/assets/js/ui-shell.js +215 -0
  113. zerochat_runtime/assets/js/ui-sidebar.js +429 -0
  114. zerochat_runtime/assets/js/ui-telemetry.js +404 -0
  115. zerochat_runtime/assets/js/ui-transfer.js +262 -0
  116. zerochat_runtime/assets/js/utils.js +216 -0
  117. zerochat_runtime/assets/js/vendor/orama.browser.js +11 -0
  118. zerochat_runtime/assets/js/web-browser.js +569 -0
  119. zerochat_runtime/assets/js/web-search.js +519 -0
  120. zerochat_runtime/assets/manifest.webmanifest +20 -0
  121. zerochat_runtime/assets/services/dummy_mcp/dummy_mcp_server.py +47 -0
  122. zerochat_runtime/assets/services/dummy_mcp/service.json +22 -0
  123. zerochat_runtime/assets/services/lsp/installer.json +9 -0
  124. zerochat_runtime/assets/services/lsp/service.json +22 -0
  125. zerochat_runtime/assets/services/memory/installer.json +9 -0
  126. zerochat_runtime/assets/services/memory/service.json +24 -0
  127. zerochat_runtime/assets/services/playwright/installer.json +10 -0
  128. zerochat_runtime/assets/services/playwright/service.json +39 -0
  129. zerochat_runtime/assets/sw.js +164 -0
  130. zerochat_runtime/assets/zerochat.html +671 -0
@@ -0,0 +1,685 @@
1
+ /* ==========================================================================
2
+ Tablas Markdown (GFM Tables)
3
+ ========================================================================== */
4
+ .table-container {
5
+ width: 100%;
6
+ max-width: 100%;
7
+ margin: 0.85rem 0;
8
+ overflow-x: auto;
9
+ -webkit-overflow-scrolling: touch;
10
+ border-radius: var(--radius-md);
11
+ border: 1px solid var(--border-color);
12
+ background-color: var(--bg-surface);
13
+ box-shadow: var(--shadow-sm);
14
+ }
15
+
16
+ .markdown-table {
17
+ width: 100%;
18
+ border-collapse: collapse;
19
+ text-align: left;
20
+ font-size: 0.85rem;
21
+ line-height: 1.5;
22
+ }
23
+
24
+ .markdown-table thead {
25
+ background-color: var(--bg-hover);
26
+ border-bottom: 2px solid var(--border-color);
27
+ }
28
+
29
+ .markdown-table th {
30
+ padding: 0.6rem 0.85rem;
31
+ font-weight: 600;
32
+ color: var(--text-main);
33
+ border-right: 1px solid var(--border-color);
34
+ white-space: nowrap;
35
+ }
36
+
37
+ .markdown-table th:last-child {
38
+ border-right: none;
39
+ }
40
+
41
+ .markdown-table td {
42
+ padding: 0.55rem 0.85rem;
43
+ border-top: 1px solid var(--border-color);
44
+ border-right: 1px solid var(--border-color);
45
+ color: var(--text-main);
46
+ vertical-align: top;
47
+ }
48
+
49
+ .markdown-table td:last-child {
50
+ border-right: none;
51
+ }
52
+
53
+ .markdown-table tbody tr:nth-child(even) {
54
+ background-color: rgba(0, 0, 0, 0.02);
55
+ }
56
+
57
+ [data-theme="dark"] .markdown-table tbody tr:nth-child(even) {
58
+ background-color: rgba(255, 255, 255, 0.02);
59
+ }
60
+
61
+ .markdown-table tbody tr:hover {
62
+ background-color: rgba(99, 102, 241, 0.06);
63
+ }
64
+
65
+
66
+
67
+ /* ==========================================================================
68
+ Imágenes Integradas en el Chat y RAG (Markdown Images)
69
+ ========================================================================== */
70
+ .chat-image-figure {
71
+ margin: 0.75rem auto;
72
+ padding: 0;
73
+ background: transparent;
74
+ border: none;
75
+ border-radius: 0;
76
+ text-align: center;
77
+ display: block;
78
+ box-shadow: none;
79
+ overflow: hidden;
80
+ max-width: 100%;
81
+ width: 100%;
82
+ box-sizing: border-box;
83
+ }
84
+
85
+ .chat-embedded-image {
86
+ max-width: 100%;
87
+ width: auto;
88
+ height: auto;
89
+ max-height: min(75vh, 600px);
90
+ object-fit: contain;
91
+ border-radius: var(--radius-md);
92
+ border: 1px solid var(--border-color);
93
+ box-shadow: var(--shadow-sm);
94
+ display: block;
95
+ margin: 0 auto;
96
+ cursor: default;
97
+ background-color: transparent;
98
+ box-sizing: border-box;
99
+ }
100
+
101
+ .chat-embedded-image.inline-image {
102
+ display: inline-block;
103
+ vertical-align: middle;
104
+ max-width: 100%;
105
+ max-height: 120px;
106
+ height: auto;
107
+ margin: 0.25rem;
108
+ box-sizing: border-box;
109
+ }
110
+
111
+ .chat-image-caption {
112
+ margin-top: 0.35rem;
113
+ font-size: 0.8rem;
114
+ color: var(--text-muted);
115
+ font-style: italic;
116
+ line-height: 1.4;
117
+ word-break: break-word;
118
+ text-align: center;
119
+ }
120
+
121
+ /* Bloques de código con cabecera y botón de copiar */
122
+ .code-block-container {
123
+ margin: 0.85rem 0;
124
+ border-radius: var(--radius-md);
125
+ overflow: hidden;
126
+ background-color: var(--code-bg);
127
+ border: 1px solid #334155;
128
+ box-shadow: var(--shadow-sm);
129
+ width: 100%;
130
+ max-width: 100%;
131
+ min-width: 0;
132
+ box-sizing: border-box;
133
+ }
134
+
135
+ .code-block-header {
136
+ display: flex;
137
+ justify-content: space-between;
138
+ align-items: center;
139
+ background-color: #0f172a;
140
+ padding: 0.45rem 1rem;
141
+ font-size: 0.8rem;
142
+ color: #94a3b8;
143
+ border-bottom: 1px solid #334155;
144
+ font-family: var(--font-mono);
145
+ max-width: 100%;
146
+ min-width: 0;
147
+ box-sizing: border-box;
148
+ }
149
+
150
+ .code-lang {
151
+ font-weight: 600;
152
+ text-transform: lowercase;
153
+ color: #38bdf8;
154
+ }
155
+
156
+ .code-block-actions {
157
+ display: flex;
158
+ align-items: center;
159
+ gap: 0.4rem;
160
+ }
161
+
162
+ .btn-copy-code,
163
+ .btn-run-code {
164
+ display: inline-flex;
165
+ align-items: center;
166
+ gap: 0.35rem;
167
+ background-color: rgba(255, 255, 255, 0.08);
168
+ color: #cbd5e1;
169
+ border: 1px solid rgba(255, 255, 255, 0.12);
170
+ font-size: 0.775rem;
171
+ padding: 0.25rem 0.6rem;
172
+ border-radius: var(--radius-sm);
173
+ cursor: pointer;
174
+ transition: all 0.15s ease;
175
+ }
176
+
177
+ .btn-run-code {
178
+ color: #86efac;
179
+ border-color: rgba(134, 239, 172, 0.3);
180
+ background-color: rgba(34, 197, 94, 0.12);
181
+ }
182
+
183
+ .btn-run-code:hover {
184
+ background-color: rgba(34, 197, 94, 0.25);
185
+ color: #bbf7d0;
186
+ border-color: #86efac;
187
+ }
188
+
189
+ .btn-copy-code:hover {
190
+ background-color: rgba(255, 255, 255, 0.18);
191
+ color: #f8fafc;
192
+ }
193
+
194
+ .btn-copy-code.copied {
195
+ color: var(--success);
196
+ border-color: var(--success);
197
+ }
198
+
199
+ .code-block-container pre {
200
+ padding: 1.1rem 1.25rem;
201
+ overflow-x: auto;
202
+ white-space: pre;
203
+ tab-size: 2;
204
+ max-width: 100%;
205
+ min-width: 0;
206
+ box-sizing: border-box;
207
+ }
208
+
209
+ .code-block-container code {
210
+ color: var(--code-text);
211
+ font-family: var(--font-mono);
212
+ font-size: 0.9rem;
213
+ line-height: 1.55;
214
+ display: block;
215
+ max-width: 100%;
216
+ }
217
+
218
+ /* Salida de Ejecución en Sandbox Local */
219
+ .code-output-container {
220
+ border-top: 1px solid #334155;
221
+ background-color: #0b1120;
222
+ padding: 0.6rem 1rem;
223
+ font-family: var(--font-mono);
224
+ font-size: 0.825rem;
225
+ animation: fadeIn 0.15s ease-out;
226
+ }
227
+
228
+ .output-header {
229
+ display: flex;
230
+ justify-content: space-between;
231
+ align-items: center;
232
+ font-size: 0.75rem;
233
+ font-weight: 600;
234
+ color: #38bdf8;
235
+ margin-bottom: 0.4rem;
236
+ }
237
+
238
+ .output-header.success {
239
+ color: #4ade80;
240
+ }
241
+
242
+ .output-header.error {
243
+ color: #f87171;
244
+ }
245
+
246
+ .btn-close-output {
247
+ background: transparent;
248
+ border: none;
249
+ color: #94a3b8;
250
+ cursor: pointer;
251
+ font-size: 1rem;
252
+ line-height: 1;
253
+ padding: 0.1rem 0.3rem;
254
+ border-radius: var(--radius-sm);
255
+ }
256
+
257
+ .btn-close-output:hover {
258
+ color: #f8fafc;
259
+ background-color: rgba(255, 255, 255, 0.1);
260
+ }
261
+
262
+ .output-body {
263
+ margin: 0;
264
+ padding: 0.4rem 0.6rem;
265
+ background-color: #020617;
266
+ border-radius: var(--radius-sm);
267
+ color: #e2e8f0;
268
+ white-space: pre-wrap;
269
+ word-break: break-word;
270
+ line-height: 1.45;
271
+ }
272
+
273
+ .output-logs {
274
+ color: #cbd5e1;
275
+ }
276
+
277
+ .output-return {
278
+ color: #38bdf8;
279
+ margin-top: 0.25rem;
280
+ }
281
+
282
+ .output-error {
283
+ color: #f87171;
284
+ }
285
+
286
+ /* Tarjeta Agentica de Ejecución de Herramienta */
287
+ .tool-card-wrapper {
288
+ width: 100%;
289
+ box-sizing: border-box;
290
+ margin: 0.5rem 0;
291
+ text-align: left;
292
+ }
293
+
294
+ .tool-execution-card {
295
+ margin: 0.75rem 0;
296
+ border: 1px solid var(--border-color);
297
+ background-color: var(--bg-surface);
298
+ border-radius: var(--radius-lg);
299
+ overflow: hidden;
300
+ box-shadow: var(--shadow-xs);
301
+ width: 100%;
302
+ box-sizing: border-box;
303
+ text-align: left;
304
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
305
+ }
306
+
307
+ .tool-execution-card:hover {
308
+ border-color: var(--primary);
309
+ box-shadow: var(--shadow-sm);
310
+ }
311
+
312
+ .tool-card-header,
313
+ .web-card-header,
314
+ .search-card-header,
315
+ .chat-chart-header {
316
+ cursor: pointer;
317
+ user-select: none;
318
+ }
319
+
320
+ .tool-card-header {
321
+ background-color: var(--bg-surface-subtle);
322
+ color: var(--text-main);
323
+ padding: 0.5rem 0.85rem;
324
+ font-size: 0.8rem;
325
+ font-weight: 600;
326
+ display: flex;
327
+ justify-content: space-between;
328
+ align-items: center;
329
+ gap: 0.4rem;
330
+ border-bottom: 1px solid var(--border-subtle);
331
+ transition: background-color 0.15s ease;
332
+ }
333
+
334
+ .tool-card-header:hover {
335
+ background-color: var(--bg-hover);
336
+ }
337
+
338
+ .tool-card-title {
339
+ display: flex;
340
+ align-items: center;
341
+ gap: 0.45rem;
342
+ }
343
+
344
+ .tool-card-header-actions {
345
+ display: flex;
346
+ align-items: center;
347
+ gap: 0.45rem;
348
+ }
349
+
350
+ .tool-card-badge {
351
+ font-size: 0.7rem;
352
+ font-weight: 600;
353
+ padding: 0.15rem 0.5rem;
354
+ border-radius: var(--radius-full);
355
+ display: inline-flex;
356
+ align-items: center;
357
+ gap: 0.25rem;
358
+ border: 1px solid transparent;
359
+ }
360
+
361
+ .tool-card-badge.status-success {
362
+ background-color: #f0fdf4;
363
+ color: #166534;
364
+ border-color: #bbf7d0;
365
+ }
366
+
367
+ .tool-card-badge.status-loading {
368
+ background-color: #eff6ff;
369
+ color: #1d4ed8;
370
+ border-color: #bfdbfe;
371
+ animation: pulse-tool-badge 1.4s infinite ease-in-out;
372
+ }
373
+
374
+ .tool-card-badge.status-error {
375
+ background-color: #fef2f2;
376
+ color: #991b1b;
377
+ border-color: #fecaca;
378
+ }
379
+
380
+ .btn-tool-collapse {
381
+ background: transparent;
382
+ border: 1px solid var(--border-color);
383
+ color: var(--text-muted);
384
+ border-radius: var(--radius-sm);
385
+ width: 24px;
386
+ height: 24px;
387
+ display: inline-flex;
388
+ align-items: center;
389
+ justify-content: center;
390
+ cursor: pointer;
391
+ font-size: 0.75rem;
392
+ padding: 0;
393
+ line-height: 1;
394
+ transition: all 0.15s ease;
395
+ flex-shrink: 0;
396
+ }
397
+
398
+ .btn-tool-collapse:hover {
399
+ background-color: var(--bg-hover);
400
+ color: var(--text-main);
401
+ border-color: var(--border-focus);
402
+ }
403
+
404
+ .btn-tool-collapse svg {
405
+ transition: transform 0.15s ease;
406
+ }
407
+
408
+ .tool-execution-card.collapsed .btn-tool-collapse svg,
409
+ .web-request-card.collapsed .btn-tool-collapse svg,
410
+ .web-search-card.collapsed .btn-tool-collapse svg,
411
+ .chat-chart-card.collapsed .btn-tool-collapse svg {
412
+ transform: rotate(-90deg);
413
+ }
414
+
415
+ .tool-card-collapsible-body {
416
+ transition: opacity 0.2s ease;
417
+ }
418
+
419
+ .tool-execution-card.collapsed .tool-card-collapsible-body,
420
+ .web-request-card.collapsed .tool-card-collapsible-body,
421
+ .web-search-card.collapsed .tool-card-collapsible-body,
422
+ .chat-chart-card.collapsed .tool-card-collapsible-body {
423
+ display: none;
424
+ }
425
+
426
+ @keyframes pulse-tool-badge {
427
+ 0%, 100% { opacity: 1; transform: scale(1); }
428
+ 50% { opacity: 0.65; transform: scale(0.98); }
429
+ }
430
+
431
+ .tool-loading-placeholder {
432
+ display: flex;
433
+ align-items: center;
434
+ gap: 0.5rem;
435
+ padding: 0.6rem 0.85rem;
436
+ font-style: italic;
437
+ color: var(--text-muted);
438
+ font-size: 0.825rem;
439
+ background: rgba(0, 0, 0, 0.03);
440
+ border-radius: var(--radius-sm);
441
+ }
442
+
443
+ [data-theme="dark"] .tool-loading-placeholder {
444
+ background: rgba(255, 255, 255, 0.04);
445
+ }
446
+
447
+ .tool-card-code {
448
+ padding: 0.6rem 0.85rem;
449
+ background: #1e293b;
450
+ color: #f8fafc;
451
+ margin: 0;
452
+ font-size: 0.85rem;
453
+ overflow-x: auto;
454
+ }
455
+
456
+ .tool-card-result {
457
+ padding: 0.5rem 0.85rem;
458
+ font-size: 0.825rem;
459
+ background: #f1f5f9;
460
+ border-top: 1px solid #e2e8f0;
461
+ color: #1e293b;
462
+ font-family: var(--font-mono);
463
+ }
464
+
465
+ .tool-result-label {
466
+ font-size: 0.725rem;
467
+ font-weight: 600;
468
+ color: #64748b;
469
+ margin: 0 0 0.25rem 0;
470
+ text-transform: uppercase;
471
+ letter-spacing: 0.03em;
472
+ }
473
+
474
+ .tool-result-pre {
475
+ margin: 0;
476
+ padding: 0;
477
+ background: transparent;
478
+ font-family: inherit;
479
+ font-size: inherit;
480
+ white-space: pre-wrap;
481
+ word-break: break-word;
482
+ }
483
+
484
+ hr {
485
+ border: none;
486
+ border-top: 1px solid var(--border-color, #e2e8f0);
487
+ margin: 1rem 0;
488
+ }
489
+
490
+ /* Subzona de Pantalla: Tarjeta de Consulta Web en Modo Agente */
491
+ .web-request-card {
492
+ margin: 0.75rem 0;
493
+ border: 1px solid #0284c7;
494
+ background: #f0f9ff;
495
+ border-radius: var(--radius-md);
496
+ overflow: hidden;
497
+ box-shadow: var(--shadow-sm);
498
+ }
499
+
500
+ .web-card-header {
501
+ background: linear-gradient(135deg, #0284c7, #0ea5e9);
502
+ color: white;
503
+ padding: 0.4rem 0.85rem;
504
+ font-size: 0.8rem;
505
+ font-weight: 600;
506
+ display: flex;
507
+ justify-content: space-between;
508
+ align-items: center;
509
+ gap: 0.4rem;
510
+ }
511
+
512
+ .web-card-title {
513
+ display: flex;
514
+ align-items: center;
515
+ gap: 0.4rem;
516
+ }
517
+
518
+ .web-card-badge {
519
+ font-size: 0.7rem;
520
+ background: rgba(255, 255, 255, 0.2);
521
+ padding: 0.15rem 0.45rem;
522
+ border-radius: var(--radius-full);
523
+ display: inline-flex;
524
+ align-items: center;
525
+ gap: 0.25rem;
526
+ }
527
+
528
+ .web-card-section {
529
+ padding: 0.5rem 0.85rem;
530
+ font-size: 0.825rem;
531
+ border-top: 1px solid #e0f2fe;
532
+ }
533
+
534
+ .web-card-section.web-request-section {
535
+ background: #ffffff;
536
+ }
537
+
538
+ .web-card-section.web-response-section {
539
+ background: #f8fafc;
540
+ }
541
+
542
+ .section-label {
543
+ font-size: 0.75rem;
544
+ font-weight: 600;
545
+ color: var(--text-muted);
546
+ margin-bottom: 0.25rem;
547
+ text-transform: uppercase;
548
+ letter-spacing: 0.03em;
549
+ }
550
+
551
+ .url-badge {
552
+ font-family: var(--font-mono);
553
+ font-size: 0.825rem;
554
+ word-break: break-all;
555
+ color: #0369a1;
556
+ }
557
+
558
+ .url-badge a {
559
+ color: #0284c7;
560
+ text-decoration: underline;
561
+ }
562
+
563
+ .web-response-body {
564
+ margin: 0;
565
+ max-height: 180px;
566
+ overflow-y: auto;
567
+ padding: 0.45rem 0.65rem;
568
+ background: #0f172a;
569
+ color: #e2e8f0;
570
+ border-radius: var(--radius-sm);
571
+ font-family: var(--font-mono);
572
+ font-size: 0.8rem;
573
+ line-height: 1.45;
574
+ white-space: pre-wrap;
575
+ word-break: break-word;
576
+ }
577
+
578
+ /* Subzona de Pantalla: Tarjeta de Búsqueda Web en Modo Agente */
579
+ .web-search-card {
580
+ margin: 0.75rem 0;
581
+ border: 1px solid #0d9488;
582
+ background: #f0fdfa;
583
+ border-radius: var(--radius-md);
584
+ overflow: hidden;
585
+ box-shadow: var(--shadow-sm);
586
+ width: 100%;
587
+ box-sizing: border-box;
588
+ text-align: left;
589
+ }
590
+
591
+ .search-card-header {
592
+ background: linear-gradient(135deg, #0d9488, #14b8a6);
593
+ color: white;
594
+ padding: 0.4rem 0.85rem;
595
+ font-size: 0.8rem;
596
+ font-weight: 600;
597
+ display: flex;
598
+ justify-content: space-between;
599
+ align-items: center;
600
+ gap: 0.4rem;
601
+ cursor: pointer;
602
+ user-select: none;
603
+ width: 100%;
604
+ box-sizing: border-box;
605
+ text-align: left;
606
+ }
607
+
608
+ .search-card-title {
609
+ display: flex;
610
+ align-items: center;
611
+ gap: 0.4rem;
612
+ text-align: left;
613
+ }
614
+
615
+ .search-card-badge {
616
+ font-size: 0.7rem;
617
+ background: rgba(255, 255, 255, 0.2);
618
+ padding: 0.15rem 0.45rem;
619
+ border-radius: var(--radius-full);
620
+ display: inline-flex;
621
+ align-items: center;
622
+ gap: 0.25rem;
623
+ }
624
+
625
+ .search-query-section,
626
+ .search-results-section {
627
+ padding: 0.5rem 0.85rem;
628
+ font-size: 0.825rem;
629
+ border-top: 1px solid #ccfbf1;
630
+ width: 100%;
631
+ box-sizing: border-box;
632
+ text-align: left;
633
+ }
634
+
635
+ .search-query-section {
636
+ background: #ffffff;
637
+ }
638
+
639
+ .search-results-section {
640
+ background: #f0fdfa;
641
+ }
642
+
643
+ .web-search-card .query-badge {
644
+ font-family: var(--font-sans);
645
+ font-size: 0.875rem;
646
+ font-weight: 600;
647
+ color: #0f766e;
648
+ text-align: left;
649
+ }
650
+
651
+ .search-results-list {
652
+ display: flex;
653
+ flex-direction: column;
654
+ gap: 0.35rem;
655
+ margin-top: 0.25rem;
656
+ width: 100%;
657
+ box-sizing: border-box;
658
+ text-align: left;
659
+ }
660
+
661
+ .search-result-item {
662
+ background: #ffffff;
663
+ border: 1px solid #e2e8f0;
664
+ border-radius: var(--radius-sm);
665
+ padding: 0.4rem 0.6rem;
666
+ font-size: 0.8rem;
667
+ width: 100%;
668
+ box-sizing: border-box;
669
+ text-align: left;
670
+ }
671
+
672
+ .search-result-item a {
673
+ color: #0d9488;
674
+ font-weight: 600;
675
+ text-decoration: underline;
676
+ }
677
+
678
+ .search-result-snippet {
679
+ color: var(--text-muted);
680
+ margin-top: 0.15rem;
681
+ font-size: 0.75rem;
682
+ line-height: 1.35;
683
+ text-align: left;
684
+ word-break: break-word;
685
+ }