@pheem49/mint 1.5.1 → 1.5.3

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 (52) hide show
  1. package/GUIDE_TH.md +7 -7
  2. package/README.md +140 -66
  3. package/assets/Agent_Mint.png +0 -0
  4. package/assets/Settings.png +0 -0
  5. package/main.js +12 -0
  6. package/mint-cli.js +148 -921
  7. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253.exp3.json +31 -1
  8. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/202/271/344/270/200/344/270/213.exp3.json +6 -1
  9. package/package.json +20 -21
  10. package/preload.js +2 -0
  11. package/scripts/install_linux_desktop_entry.js +48 -0
  12. package/src/AI_Brain/Gemini_API.js +194 -491
  13. package/src/AI_Brain/autonomous_brain.js +46 -19
  14. package/src/AI_Brain/headless_agent.js +21 -2
  15. package/src/AI_Brain/proactive_engine.js +12 -2
  16. package/src/AI_Brain/provider_adapter.js +358 -0
  17. package/src/Automation_Layer/browser_automation.js +26 -24
  18. package/src/CLI/approval_handler.js +47 -0
  19. package/src/CLI/chat_router.js +7 -0
  20. package/src/CLI/chat_ui.js +586 -80
  21. package/src/CLI/cli_colors.js +115 -0
  22. package/src/CLI/cli_formatters.js +94 -0
  23. package/src/CLI/code_agent.js +825 -283
  24. package/src/CLI/intent_detectors.js +181 -0
  25. package/src/CLI/interactive_chat.js +641 -0
  26. package/src/CLI/list_features.js +3 -0
  27. package/src/CLI/repo_summarizer.js +282 -0
  28. package/src/CLI/semantic_code_search.js +312 -0
  29. package/src/CLI/skill_manager.js +41 -0
  30. package/src/CLI/slash_command_handler.js +418 -0
  31. package/src/CLI/symbol_indexer.js +231 -0
  32. package/src/CLI/updater.js +21 -1
  33. package/src/Channels/discord_bridge.js +11 -13
  34. package/src/Channels/line_bridge.js +10 -10
  35. package/src/Channels/slack_bridge.js +7 -12
  36. package/src/Channels/telegram_bridge.js +6 -14
  37. package/src/Channels/whatsapp_bridge.js +11 -9
  38. package/src/System/chat_history_manager.js +20 -12
  39. package/src/System/config_manager.js +4 -1
  40. package/src/System/ipc_handlers.js +10 -0
  41. package/src/System/optional_require.js +23 -0
  42. package/src/System/picture_store.js +109 -0
  43. package/src/System/task_manager.js +127 -0
  44. package/src/System/tool_registry.js +13 -0
  45. package/src/System/window_manager.js +16 -8
  46. package/src/UI/live2d_manager.js +246 -14
  47. package/src/UI/renderer.js +620 -45
  48. package/src/UI/settings.css +738 -439
  49. package/src/UI/settings.html +487 -432
  50. package/src/UI/settings.js +44 -10
  51. package/src/UI/styles.css +1403 -106
  52. package/privacy.txt +0 -1
@@ -12,6 +12,7 @@ const DEFAULT_CONFIG = {
12
12
  proactiveCooldown: 120,
13
13
  glassBlur: 'blur(16px)',
14
14
  fontFamily: "'Outfit', sans-serif",
15
+ fontSize: '15px',
15
16
  aiProvider: 'gemini',
16
17
  ollamaModel: 'llama3:latest',
17
18
  enableVoiceReply: true,
@@ -55,8 +56,15 @@ function applyConfig(config) {
55
56
  } else {
56
57
  document.getElementById('custom-theme-controls').style.display = 'none';
57
58
  // Reset dynamic style variables if not custom
58
- document.documentElement.style.removeProperty('--bg-gradient');
59
- document.documentElement.style.removeProperty('--panel-bg');
59
+ [
60
+ '--bg-gradient',
61
+ '--panel-bg',
62
+ '--sidebar-bg',
63
+ '--chrome-bg',
64
+ '--surface-bg',
65
+ '--surface-strong',
66
+ '--input-bg'
67
+ ].forEach(name => document.documentElement.style.removeProperty(name));
60
68
  }
61
69
 
62
70
  // Apply accent color
@@ -171,6 +179,9 @@ function applyConfig(config) {
171
179
  document.getElementById('font-family-select').value = config.fontFamily || "'Outfit', sans-serif";
172
180
  document.body.style.fontFamily = config.fontFamily || "'Outfit', sans-serif";
173
181
 
182
+ document.getElementById('font-size-select').value = config.fontSize || '15px';
183
+ document.documentElement.style.fontSize = config.fontSize || '15px';
184
+
174
185
  // Update active theme card
175
186
  document.querySelectorAll('.theme-card').forEach(card => {
176
187
  card.classList.toggle('active', card.dataset.theme === config.theme);
@@ -184,6 +195,10 @@ function applyConfig(config) {
184
195
  // Update color picker
185
196
  document.getElementById('custom-color').value = config.accentColor;
186
197
 
198
+ const defaultTextColor = config.theme === 'light' ? '#0f172a' : DEFAULT_CONFIG.systemTextColor;
199
+ const textColor = (!config.systemTextColor || (config.theme === 'light' && config.systemTextColor === DEFAULT_CONFIG.systemTextColor))
200
+ ? defaultTextColor
201
+ : config.systemTextColor;
187
202
  document.getElementById('system-text-color').value = textColor;
188
203
  document.documentElement.style.setProperty('--text-main', textColor);
189
204
 
@@ -419,6 +434,11 @@ function applyCustomThemeStyles(cfg) {
419
434
  // Convert hex to rgba for panel bg to keep transparency
420
435
  const panelRgb = hexToRgb(cfg.customPanelBg);
421
436
  document.documentElement.style.setProperty('--panel-bg', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.75)`);
437
+ document.documentElement.style.setProperty('--sidebar-bg', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.82)`);
438
+ document.documentElement.style.setProperty('--chrome-bg', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.78)`);
439
+ document.documentElement.style.setProperty('--surface-bg', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.42)`);
440
+ document.documentElement.style.setProperty('--surface-strong', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.62)`);
441
+ document.documentElement.style.setProperty('--input-bg', `rgba(${panelRgb.r}, ${panelRgb.g}, ${panelRgb.b}, 0.58)`);
422
442
  updateCustomPreviewBox(cfg);
423
443
  }
424
444
 
@@ -451,6 +471,21 @@ document.getElementById('custom-panel-bg').addEventListener('input', (e) => {
451
471
  if (currentConfig.theme === 'custom') applyCustomThemeStyles(currentConfig);
452
472
  });
453
473
 
474
+ document.getElementById('glass-blur-select').addEventListener('change', (e) => {
475
+ currentConfig.glassBlur = e.target.value;
476
+ document.documentElement.style.setProperty('--glass-blur', e.target.value);
477
+ });
478
+
479
+ document.getElementById('font-family-select').addEventListener('change', (e) => {
480
+ currentConfig.fontFamily = e.target.value;
481
+ document.body.style.fontFamily = e.target.value;
482
+ });
483
+
484
+ document.getElementById('font-size-select').addEventListener('change', (e) => {
485
+ currentConfig.fontSize = e.target.value;
486
+ document.documentElement.style.fontSize = e.target.value;
487
+ });
488
+
454
489
  // Proactive sliders
455
490
  function formatSeconds(s) {
456
491
  if (s < 60) return `${s} sec`;
@@ -556,6 +591,7 @@ document.getElementById('save-btn').addEventListener('click', async () => {
556
591
  currentConfig.systemTextColor = document.getElementById('system-text-color').value;
557
592
  currentConfig.glassBlur = document.getElementById('glass-blur-select').value;
558
593
  currentConfig.fontFamily = document.getElementById('font-family-select').value;
594
+ currentConfig.fontSize = document.getElementById('font-size-select').value;
559
595
 
560
596
  currentConfig.customBgStart = document.getElementById('custom-bg-start').value;
561
597
  currentConfig.customBgEnd = document.getElementById('custom-bg-end').value;
@@ -586,22 +622,20 @@ function renderMcpServers() {
586
622
  console.log(`[Settings] Found ${entries.length} servers in currentConfig.`);
587
623
 
588
624
  if (entries.length === 0) {
589
- list.innerHTML = '<p class="hint" style="text-align: center; padding: 10px;">No MCP servers connected.</p>';
625
+ list.innerHTML = '<p class="mcp-empty">No MCP servers connected.</p>';
590
626
  return;
591
627
  }
592
628
 
593
629
  for (const [name, cfg] of entries) {
594
630
  const item = document.createElement('div');
595
- item.style.cssText = 'display: flex; justify-content: space-between; align-items: center; padding: 12px; background: rgba(0,0,0,0.2); border-radius: 10px; border: 1px solid var(--border);';
631
+ item.className = 'mcp-item';
596
632
 
597
633
  item.innerHTML = `
598
- <div style="display: flex; flex-direction: column; gap: 4px;">
599
- <div style="font-weight: 600; color: var(--accent); display: flex; align-items: center; gap: 6px;">
600
- <span>🌐 ${name}</span>
601
- </div>
602
- <div style="font-size: 0.75rem; opacity: 0.7; font-family: monospace;">${cfg.command} ${cfg.args.join(' ')}</div>
634
+ <div class="mcp-info">
635
+ <div class="mcp-name">🌐 ${name}</div>
636
+ <div class="mcp-command">${cfg.command} ${(cfg.args || []).join(' ')}</div>
603
637
  </div>
604
- <button class="btn-danger" style="padding: 6px 12px; font-size: 0.8rem;" onclick="removeMcpServer('${name}')">Remove</button>
638
+ <button class="btn-danger btn-small" onclick="removeMcpServer('${name}')">Remove</button>
605
639
  `;
606
640
  list.appendChild(item);
607
641
  }