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,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
+ });