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.
- zerochat-7.3.0.dist-info/METADATA +70 -0
- zerochat-7.3.0.dist-info/RECORD +130 -0
- zerochat-7.3.0.dist-info/WHEEL +5 -0
- zerochat-7.3.0.dist-info/entry_points.txt +2 -0
- zerochat-7.3.0.dist-info/licenses/LICENSE +34 -0
- zerochat-7.3.0.dist-info/top_level.txt +2 -0
- zerochat.py +2004 -0
- zerochat_runtime/__init__.py +1 -0
- zerochat_runtime/assets/css/base.css +199 -0
- zerochat_runtime/assets/css/components/composer.css +1258 -0
- zerochat_runtime/assets/css/components/debug.css +777 -0
- zerochat_runtime/assets/css/components/header.css +97 -0
- zerochat_runtime/assets/css/components/icons.css +39 -0
- zerochat_runtime/assets/css/components/markdown.css +685 -0
- zerochat_runtime/assets/css/components/messages.css +473 -0
- zerochat_runtime/assets/css/components/modals.css +1319 -0
- zerochat_runtime/assets/css/components/sidebar.css +622 -0
- zerochat_runtime/assets/css/components/tools.css +1223 -0
- zerochat_runtime/assets/css/layout.css +171 -0
- zerochat_runtime/assets/css/print.css +120 -0
- zerochat_runtime/assets/css/styles.css +18 -0
- zerochat_runtime/assets/css/theme-overrides.css +555 -0
- zerochat_runtime/assets/css/tokens.css +165 -0
- zerochat_runtime/assets/help/architecture.html +247 -0
- zerochat_runtime/assets/help/composer.html +134 -0
- zerochat_runtime/assets/help/conversations.html +105 -0
- zerochat_runtime/assets/help/debug.html +108 -0
- zerochat_runtime/assets/help/en/architecture.html +247 -0
- zerochat_runtime/assets/help/en/composer.html +134 -0
- zerochat_runtime/assets/help/en/conversations.html +104 -0
- zerochat_runtime/assets/help/en/debug.html +105 -0
- zerochat_runtime/assets/help/en/gemini-free.html +39 -0
- zerochat_runtime/assets/help/en/index.html +191 -0
- zerochat_runtime/assets/help/en/learning.html +71 -0
- zerochat_runtime/assets/help/en/mcp.html +143 -0
- zerochat_runtime/assets/help/en/openrouter-free.html +39 -0
- zerochat_runtime/assets/help/en/profiles.html +173 -0
- zerochat_runtime/assets/help/en/rag.html +130 -0
- zerochat_runtime/assets/help/en/reasoning-telemetry.html +108 -0
- zerochat_runtime/assets/help/en/tools-agent.html +133 -0
- zerochat_runtime/assets/help/en/webllm.html +355 -0
- zerochat_runtime/assets/help/gemini-free.html +39 -0
- zerochat_runtime/assets/help/help.css +604 -0
- zerochat_runtime/assets/help/help.js +51 -0
- zerochat_runtime/assets/help/index.html +194 -0
- zerochat_runtime/assets/help/learning.html +71 -0
- zerochat_runtime/assets/help/mcp.html +143 -0
- zerochat_runtime/assets/help/openrouter-free.html +39 -0
- zerochat_runtime/assets/help/profiles.html +174 -0
- zerochat_runtime/assets/help/rag.html +130 -0
- zerochat_runtime/assets/help/reasoning-telemetry.html +111 -0
- zerochat_runtime/assets/help/tools-agent.html +133 -0
- zerochat_runtime/assets/help/webllm.html +359 -0
- zerochat_runtime/assets/js/agent-core.js +1553 -0
- zerochat_runtime/assets/js/api.js +844 -0
- zerochat_runtime/assets/js/app.js +2558 -0
- zerochat_runtime/assets/js/attachments.js +220 -0
- zerochat_runtime/assets/js/charts.js +338 -0
- zerochat_runtime/assets/js/chat-engine.js +566 -0
- zerochat_runtime/assets/js/config-store.js +207 -0
- zerochat_runtime/assets/js/context-manager.js +584 -0
- zerochat_runtime/assets/js/conversation-service.js +484 -0
- zerochat_runtime/assets/js/cookies.js +688 -0
- zerochat_runtime/assets/js/data-reset-service.js +136 -0
- zerochat_runtime/assets/js/debug.js +508 -0
- zerochat_runtime/assets/js/defaults.js +16 -0
- zerochat_runtime/assets/js/export.js +179 -0
- zerochat_runtime/assets/js/file-parser.js +2088 -0
- zerochat_runtime/assets/js/generation-controller.js +417 -0
- zerochat_runtime/assets/js/i18n.js +1483 -0
- zerochat_runtime/assets/js/icons.js +156 -0
- zerochat_runtime/assets/js/ingestionEngine.js +436 -0
- zerochat_runtime/assets/js/markdown.js +588 -0
- zerochat_runtime/assets/js/mcp.js +1271 -0
- zerochat_runtime/assets/js/message-turns.js +62 -0
- zerochat_runtime/assets/js/profile-backup.js +118 -0
- zerochat_runtime/assets/js/profile-export-bundle.js +481 -0
- zerochat_runtime/assets/js/profile-repository.js +213 -0
- zerochat_runtime/assets/js/providers-webllm.js +486 -0
- zerochat_runtime/assets/js/providers.js +1560 -0
- zerochat_runtime/assets/js/rag-index.js +295 -0
- zerochat_runtime/assets/js/rag-service.js +530 -0
- zerochat_runtime/assets/js/rag-ui.js +997 -0
- zerochat_runtime/assets/js/ragStorage.js +676 -0
- zerochat_runtime/assets/js/sandbox.js +449 -0
- zerochat_runtime/assets/js/state.js +704 -0
- zerochat_runtime/assets/js/storage-db.js +144 -0
- zerochat_runtime/assets/js/tool-cards.js +330 -0
- zerochat_runtime/assets/js/tool-security.js +653 -0
- zerochat_runtime/assets/js/tools/README.md +50 -0
- zerochat_runtime/assets/js/tools/builtin/agent-checkpoint.tool.js +212 -0
- zerochat_runtime/assets/js/tools/builtin/download-pdf.tool.js +111 -0
- zerochat_runtime/assets/js/tools/builtin/execute-javascript.tool.js +219 -0
- zerochat_runtime/assets/js/tools/builtin/fetch-web-page.tool.js +112 -0
- zerochat_runtime/assets/js/tools/builtin/list-documents.tool.js +117 -0
- zerochat_runtime/assets/js/tools/builtin/read-knowledge-chunk.tool.js +129 -0
- zerochat_runtime/assets/js/tools/builtin/read-knowledge-image.tool.js +95 -0
- zerochat_runtime/assets/js/tools/builtin/render-chart.tool.js +90 -0
- zerochat_runtime/assets/js/tools/builtin/search-knowledge-base.tool.js +124 -0
- zerochat_runtime/assets/js/tools/builtin/search-web.tool.js +125 -0
- zerochat_runtime/assets/js/tools/tool-manifest.js +53 -0
- zerochat_runtime/assets/js/tools/tool-runtime.js +77 -0
- zerochat_runtime/assets/js/ui-composer.js +319 -0
- zerochat_runtime/assets/js/ui-conversation.js +655 -0
- zerochat_runtime/assets/js/ui-dialogs.js +132 -0
- zerochat_runtime/assets/js/ui-generation-status.js +119 -0
- zerochat_runtime/assets/js/ui-inspector.js +804 -0
- zerochat_runtime/assets/js/ui-mcp.js +604 -0
- zerochat_runtime/assets/js/ui-profiles.js +824 -0
- zerochat_runtime/assets/js/ui-reasoning.js +146 -0
- zerochat_runtime/assets/js/ui-settings.js +825 -0
- zerochat_runtime/assets/js/ui-shell.js +215 -0
- zerochat_runtime/assets/js/ui-sidebar.js +429 -0
- zerochat_runtime/assets/js/ui-telemetry.js +404 -0
- zerochat_runtime/assets/js/ui-transfer.js +262 -0
- zerochat_runtime/assets/js/utils.js +216 -0
- zerochat_runtime/assets/js/vendor/orama.browser.js +11 -0
- zerochat_runtime/assets/js/web-browser.js +569 -0
- zerochat_runtime/assets/js/web-search.js +519 -0
- zerochat_runtime/assets/manifest.webmanifest +20 -0
- zerochat_runtime/assets/services/dummy_mcp/dummy_mcp_server.py +47 -0
- zerochat_runtime/assets/services/dummy_mcp/service.json +22 -0
- zerochat_runtime/assets/services/lsp/installer.json +9 -0
- zerochat_runtime/assets/services/lsp/service.json +22 -0
- zerochat_runtime/assets/services/memory/installer.json +9 -0
- zerochat_runtime/assets/services/memory/service.json +24 -0
- zerochat_runtime/assets/services/playwright/installer.json +10 -0
- zerochat_runtime/assets/services/playwright/service.json +39 -0
- zerochat_runtime/assets/sw.js +164 -0
- zerochat_runtime/assets/zerochat.html +671 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/** UI del selector compacto de intensidad de razonamiento. */
|
|
2
|
+
(function (root, factory) {
|
|
3
|
+
if (typeof exports === 'object' && typeof module !== 'undefined') module.exports = factory();
|
|
4
|
+
else root.ChatUIReasoning = factory();
|
|
5
|
+
})(typeof self !== 'undefined' ? self : this, function () {
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
const INTENSITY_LEVELS = Object.freeze(['none', 'low', 'medium', 'high', 'xhigh']);
|
|
9
|
+
|
|
10
|
+
function resolveDep(globalName, relPath) {
|
|
11
|
+
if (typeof window !== 'undefined' && window[globalName]) return window[globalName];
|
|
12
|
+
if (typeof require !== 'undefined') { try { return require(relPath); } catch (_) { return null; } }
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function t(key, params) {
|
|
17
|
+
const I18n = resolveDep('ChatI18n', './i18n.js');
|
|
18
|
+
return I18n?.t ? I18n.t(key, params) : key;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function getReasoningIntensity(level) {
|
|
22
|
+
const normalized = String(level || 'none').toLowerCase().trim();
|
|
23
|
+
const index = INTENSITY_LEVELS.indexOf(normalized === 'off' ? 'none' : normalized);
|
|
24
|
+
return index >= 0 ? index : 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function getReasoningLevelFromIntensity(intensity) {
|
|
28
|
+
const parsed = Number.parseInt(intensity, 10);
|
|
29
|
+
const index = Math.max(0, Math.min(INTENSITY_LEVELS.length - 1, Number.isFinite(parsed) ? parsed : 0));
|
|
30
|
+
return INTENSITY_LEVELS[index];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function getReasoningLevelLabel(level) {
|
|
34
|
+
const labels = { none: 'reasoning_intensity_none', low: 'reasoning_level_low', medium: 'reasoning_level_medium', high: 'reasoning_level_high', xhigh: 'reasoning_intensity_max' };
|
|
35
|
+
return t(labels[getReasoningLevelFromIntensity(getReasoningIntensity(level))]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function syncReasoningIntensity(elements, level) {
|
|
39
|
+
const intensity = getReasoningIntensity(level);
|
|
40
|
+
const label = getReasoningLevelLabel(level);
|
|
41
|
+
if (elements?.reasoningIntensity) {
|
|
42
|
+
elements.reasoningIntensity.value = String(intensity);
|
|
43
|
+
elements.reasoningIntensity.style?.setProperty?.('--reasoning-intensity', `${intensity * 25}%`);
|
|
44
|
+
elements.reasoningIntensity.setAttribute?.('aria-valuetext', label);
|
|
45
|
+
}
|
|
46
|
+
if (elements?.reasoningIntensityValue) elements.reasoningIntensityValue.textContent = label;
|
|
47
|
+
return intensity;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function syncReasoningGauge(elements, level) {
|
|
51
|
+
const needle = elements?.btnReasoning?.querySelector?.('#reasoning-gauge-needle');
|
|
52
|
+
if (needle) needle.setAttribute('transform', `rotate(${-60 + (getReasoningIntensity(level) * 30)} 12 15)`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function positionReasoningMenu(elements) {
|
|
56
|
+
if (!elements?.reasoningMenu || !elements?.btnReasoning || elements.reasoningMenu.style.display === 'none') return;
|
|
57
|
+
const rect = elements.btnReasoning.getBoundingClientRect?.() || { top: 0, left: 0 };
|
|
58
|
+
const win = elements.reasoningMenu.ownerDocument?.defaultView || window;
|
|
59
|
+
const width = Math.min(290, (win?.innerWidth || 1200) - 16);
|
|
60
|
+
const left = Math.max(8, Math.min(rect.left, (win?.innerWidth || 1200) - width - 8));
|
|
61
|
+
elements.reasoningMenu.style.position = 'fixed';
|
|
62
|
+
elements.reasoningMenu.style.left = `${Math.round(left)}px`;
|
|
63
|
+
elements.reasoningMenu.style.width = `${Math.round(width)}px`;
|
|
64
|
+
elements.reasoningMenu.style.bottom = `${Math.round(Math.max(8, (win?.visualViewport?.height || win?.innerHeight || 800) - rect.top + 8))}px`;
|
|
65
|
+
elements.reasoningMenu.style.top = 'auto';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function closeReasoningMenu(elements) {
|
|
69
|
+
if (!elements?.reasoningMenu) return;
|
|
70
|
+
elements.reasoningMenu.style.display = 'none';
|
|
71
|
+
elements.btnReasoning?.setAttribute?.('aria-expanded', 'false');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function syncCheckpointToggle(elements, enabled, onToggleCheckpoint) {
|
|
75
|
+
const checkbox = elements?.chkReasoningAgentCheckpoint;
|
|
76
|
+
if (!checkbox) return;
|
|
77
|
+
checkbox.checked = Boolean(enabled);
|
|
78
|
+
checkbox._onToggleCheckpoint = onToggleCheckpoint;
|
|
79
|
+
if (!checkbox._hasReasoningListener) {
|
|
80
|
+
checkbox._hasReasoningListener = true;
|
|
81
|
+
checkbox.addEventListener('change', event => checkbox._onToggleCheckpoint?.(event.target.checked));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function openReasoningMenu(elements, appConfig, onSelect, onToggleCheckpoint) {
|
|
86
|
+
if (!elements?.reasoningMenu) return;
|
|
87
|
+
elements.reasoningMenu.style.display = 'flex';
|
|
88
|
+
elements.btnReasoning?.setAttribute?.('aria-expanded', 'true');
|
|
89
|
+
syncReasoningIntensity(elements, appConfig?.reasoningEffort || 'medium');
|
|
90
|
+
syncCheckpointToggle(elements, Boolean(appConfig?.enabledTools?.agent_checkpoint), onToggleCheckpoint);
|
|
91
|
+
const slider = elements.reasoningIntensity;
|
|
92
|
+
if (slider) {
|
|
93
|
+
slider._onReasoningIntensityChange = onSelect;
|
|
94
|
+
if (!slider._hasReasoningListener) {
|
|
95
|
+
slider._hasReasoningListener = true;
|
|
96
|
+
slider.addEventListener('input', event => {
|
|
97
|
+
const level = getReasoningLevelFromIntensity(event.target.value);
|
|
98
|
+
syncReasoningIntensity(elements, level);
|
|
99
|
+
updateReasoningUI(elements, level);
|
|
100
|
+
event.target._onReasoningIntensityChange?.(level);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (elements.btnCloseReasoning && !elements.btnCloseReasoning._hasReasoningListener) {
|
|
105
|
+
elements.btnCloseReasoning._hasReasoningListener = true;
|
|
106
|
+
elements.btnCloseReasoning.addEventListener('click', () => closeReasoningMenu(elements));
|
|
107
|
+
}
|
|
108
|
+
if (!elements.reasoningMenu._hasEscapeListener) {
|
|
109
|
+
elements.reasoningMenu._hasEscapeListener = true;
|
|
110
|
+
elements.reasoningMenu.addEventListener('keydown', event => {
|
|
111
|
+
if (event.key !== 'Escape') return;
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
closeReasoningMenu(elements);
|
|
114
|
+
elements.btnReasoning?.focus?.();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
positionReasoningMenu(elements);
|
|
118
|
+
slider?.focus?.();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function toggleReasoningMenu(elements, appConfig, onSelect, onToggleCheckpoint) {
|
|
122
|
+
if (!elements?.reasoningMenu) return;
|
|
123
|
+
if (elements.reasoningMenu.style.display === 'flex') closeReasoningMenu(elements);
|
|
124
|
+
else openReasoningMenu(elements, appConfig, onSelect, onToggleCheckpoint);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function updateReasoningUI(elements, level) {
|
|
128
|
+
const normalized = getReasoningLevelFromIntensity(getReasoningIntensity(level));
|
|
129
|
+
if (elements?.reasoningLabel) elements.reasoningLabel.textContent = getReasoningLevelLabel(normalized);
|
|
130
|
+
if (elements?.btnReasoning?.classList) {
|
|
131
|
+
elements.btnReasoning.classList.toggle('active', normalized !== 'none');
|
|
132
|
+
INTENSITY_LEVELS.forEach(name => elements.btnReasoning.classList.toggle(`active-${name}`, normalized === name && name !== 'none'));
|
|
133
|
+
}
|
|
134
|
+
syncReasoningIntensity(elements, normalized);
|
|
135
|
+
syncReasoningGauge(elements, normalized);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function selectReasoningLevel(elements, _appConfig, level, onLevelChanged) {
|
|
139
|
+
const normalized = getReasoningLevelFromIntensity(getReasoningIntensity(level));
|
|
140
|
+
updateReasoningUI(elements, normalized);
|
|
141
|
+
closeReasoningMenu(elements);
|
|
142
|
+
onLevelChanged?.(normalized);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return { getReasoningIntensity, getReasoningLevelFromIntensity, getReasoningLevelLabel, syncReasoningIntensity, positionReasoningMenu, openReasoningMenu, closeReasoningMenu, toggleReasoningMenu, selectReasoningLevel, updateReasoningUI, syncCheckpointToggle };
|
|
146
|
+
});
|