@pheem49/mint 1.2.1

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 (69) hide show
  1. package/BUILD_AND_RELEASE.md +75 -0
  2. package/LICENSE +654 -0
  3. package/README.md +165 -0
  4. package/assets/Agent_Mint.png +0 -0
  5. package/assets/CLI_Screen.png +0 -0
  6. package/assets/Settings.png +0 -0
  7. package/assets/icon.png +0 -0
  8. package/benchmark_ai.js +71 -0
  9. package/main.js +968 -0
  10. package/mint-cli-logic.js +71 -0
  11. package/mint-cli.js +239 -0
  12. package/package.json +60 -0
  13. package/preload-picker.js +11 -0
  14. package/preload-settings.js +11 -0
  15. package/preload.js +37 -0
  16. package/privacy.txt +1 -0
  17. package/src/AI_Brain/Gemini_API.js +419 -0
  18. package/src/AI_Brain/autonomous_brain.js +139 -0
  19. package/src/AI_Brain/behavior_memory.js +114 -0
  20. package/src/AI_Brain/headless_agent.js +120 -0
  21. package/src/AI_Brain/knowledge_base.js +222 -0
  22. package/src/AI_Brain/proactive_engine.js +168 -0
  23. package/src/Automation_Layer/browser_automation.js +147 -0
  24. package/src/Automation_Layer/file_operations.js +80 -0
  25. package/src/Automation_Layer/open_app.js +56 -0
  26. package/src/Automation_Layer/open_website.js +38 -0
  27. package/src/CLI/chat_ui.js +468 -0
  28. package/src/CLI/list_features.js +56 -0
  29. package/src/CLI/onboarding.js +60 -0
  30. package/src/Command_Parser/parser.js +34 -0
  31. package/src/Plugins/dev_tools.js +41 -0
  32. package/src/Plugins/discord.js +20 -0
  33. package/src/Plugins/docker.js +45 -0
  34. package/src/Plugins/google_calendar.js +26 -0
  35. package/src/Plugins/obsidian.js +54 -0
  36. package/src/Plugins/plugin_manager.js +81 -0
  37. package/src/Plugins/spotify.js +45 -0
  38. package/src/Plugins/system_metrics.js +31 -0
  39. package/src/System/chat_history_manager.js +57 -0
  40. package/src/System/config_manager.js +73 -0
  41. package/src/System/custom_workflows.js +127 -0
  42. package/src/System/daemon_manager.js +67 -0
  43. package/src/System/system_automation.js +88 -0
  44. package/src/System/system_events.js +79 -0
  45. package/src/System/system_info.js +55 -0
  46. package/src/System/task_manager.js +85 -0
  47. package/src/UI/floating.css +80 -0
  48. package/src/UI/floating.html +17 -0
  49. package/src/UI/floating.js +67 -0
  50. package/src/UI/index.html +126 -0
  51. package/src/UI/preload-floating.js +7 -0
  52. package/src/UI/preload-spotlight.js +10 -0
  53. package/src/UI/preload-widget.js +5 -0
  54. package/src/UI/proactive-glow.html +42 -0
  55. package/src/UI/renderer.js +978 -0
  56. package/src/UI/screenPicker.html +214 -0
  57. package/src/UI/screenPicker.js +262 -0
  58. package/src/UI/settings.css +705 -0
  59. package/src/UI/settings.html +396 -0
  60. package/src/UI/settings.js +514 -0
  61. package/src/UI/spotlight.css +119 -0
  62. package/src/UI/spotlight.html +23 -0
  63. package/src/UI/spotlight.js +181 -0
  64. package/src/UI/styles.css +627 -0
  65. package/src/UI/widget.css +218 -0
  66. package/src/UI/widget.html +29 -0
  67. package/src/UI/widget.js +10 -0
  68. package/tech_news.txt +3 -0
  69. package/test_knowledge.txt +3 -0
@@ -0,0 +1,126 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Agent Mint</title>
8
+ <link rel="stylesheet" href="styles.css">
9
+ <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&family=Mali:wght@400;500;600&family=Prompt:wght@400;500&family=Sarabun:wght@400;500&display=swap" rel="stylesheet">
10
+ </head>
11
+
12
+ <body>
13
+ <div class="app-container">
14
+ <header class="drag-region">
15
+ <div class="header-content">
16
+ <div class="status-indicator"></div>
17
+ <h1>Agent Mint</h1>
18
+ </div>
19
+ <button class="clear-btn" id="clear-btn" aria-label="Clear chat" title="Clear chat history">
20
+ <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none"
21
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
22
+ <polyline points="3 6 5 6 21 6"></polyline>
23
+ <path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path>
24
+ <path d="M10 11v6"></path>
25
+ <path d="M14 11v6"></path>
26
+ <path d="M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"></path>
27
+ </svg>
28
+ </button>
29
+ <button class="settings-btn" id="settings-btn" aria-label="Settings" title="Settings">
30
+ <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none"
31
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
32
+ <circle cx="12" cy="12" r="3"></circle>
33
+ <path
34
+ d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z">
35
+ </path>
36
+ </svg>
37
+ </button>
38
+ <button class="minimize-btn" id="minimize-btn" aria-label="Minimize" title="Minimize to Tray">
39
+ <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none"
40
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
41
+ <line x1="5" y1="12" x2="19" y2="12"></line>
42
+ </svg>
43
+ </button>
44
+ <button class="maximize-btn" id="maximize-btn" aria-label="Maximize">
45
+ <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none"
46
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
47
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
48
+ </svg>
49
+ </button>
50
+ <button class="close-btn" id="close-btn" aria-label="Close">
51
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none"
52
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
53
+ <line x1="18" y1="6" x2="6" y2="18"></line>
54
+ <line x1="6" y1="6" x2="18" y2="18"></line>
55
+ </svg>
56
+ </button>
57
+ </header>
58
+
59
+ <!-- Proactive Suggestion Bar (Smart Suggestion Engine) -->
60
+ <div id="proactive-bar" class="proactive-bar" style="display: none;">
61
+ <div class="proactive-header">
62
+ <span class="proactive-icon">✨</span>
63
+ <span class="proactive-message" id="proactive-message"></span>
64
+ <button class="proactive-dismiss-btn" id="proactive-dismiss-btn" title="Dismiss">✕</button>
65
+ </div>
66
+ <div class="proactive-chips" id="proactive-chips">
67
+ <!-- Chips injected by JS -->
68
+ </div>
69
+ </div>
70
+
71
+ <main class="chat-container" id="chat-container">
72
+ <div class="message ai-message initial">
73
+ <div class="message-bubble">
74
+ Hello! I'm Mint, your personal AI assistant ✨ <br>
75
+ Is there anything I can help you with, Master? You can ask me to "open YouTube", "create a folder", or just chat with me! 💖
76
+ </div>
77
+ </div>
78
+ </main>
79
+
80
+ <footer class="input-area">
81
+ <div id="image-preview-container" style="display: none; padding: 10px; background: rgba(0,0,0,0.2); border-radius: 8px 8px 0 0; position: relative;">
82
+ <img id="image-preview" src="" style="max-height: 80px; max-width: 100%; border-radius: 4px;">
83
+ <button id="remove-image-btn" type="button" style="position: absolute; top: 5px; right: 10px; background: red; color: white; border: none; border-radius: 50%; width: 20px; height: 20px; cursor: pointer;">&times;</button>
84
+ </div>
85
+
86
+ <!-- Smart Context Toggle -->
87
+ <div class="smart-context-bar">
88
+ <label class="toggle-switch">
89
+ <input type="checkbox" id="smart-context-toggle">
90
+ <span class="slider round"></span>
91
+ </label>
92
+ <span class="smart-context-label">🧠 Smart Context <span style="font-size: 10px; opacity: 0.7;">(Auto-Screen)</span></span>
93
+ </div>
94
+
95
+ <form id="chat-form">
96
+ <button type="button" id="vision-btn" aria-label="Screen Vision" title="Screen Vision">
97
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
98
+ <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
99
+ <circle cx="12" cy="12" r="3"></circle>
100
+ </svg>
101
+ </button>
102
+ <input type="text" id="chat-input" placeholder="Type or speak a command..." autocomplete="off">
103
+ <button type="button" id="mic-btn" aria-label="Microphone">
104
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
105
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
106
+ <path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3z"></path>
107
+ <path d="M19 10v2a7 7 0 0 1-14 0v-2"></path>
108
+ <line x1="12" y1="19" x2="12" y2="23"></line>
109
+ <line x1="8" y1="23" x2="16" y2="23"></line>
110
+ </svg>
111
+ </button>
112
+ <button type="submit" id="send-btn">
113
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
114
+ stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
115
+ <line x1="22" y1="2" x2="11" y2="13"></line>
116
+ <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
117
+ </svg>
118
+ </button>
119
+ </form>
120
+ </footer>
121
+ </div>
122
+
123
+ <script src="renderer.js"></script>
124
+ </body>
125
+
126
+ </html>
@@ -0,0 +1,7 @@
1
+ const { contextBridge, ipcRenderer } = require('electron');
2
+
3
+ contextBridge.exposeInMainWorld('floating', {
4
+ onNotify: (callback) => ipcRenderer.on('floating-notify', (_event, count) => callback(count)),
5
+ openMain: () => ipcRenderer.send('floating-click'),
6
+ dragMove: (x, y) => ipcRenderer.send('floating-drag-move', x, y)
7
+ });
@@ -0,0 +1,10 @@
1
+ const { contextBridge, ipcRenderer } = require('electron');
2
+
3
+ contextBridge.exposeInMainWorld('spotlightAPI', {
4
+ submit: (query) => ipcRenderer.send('spotlight-submit', query),
5
+ close: () => ipcRenderer.send('spotlight-close'),
6
+ hide: () => ipcRenderer.send('spotlight-hide'),
7
+ resize: (width, height) => ipcRenderer.send('spotlight-resize', width, height),
8
+ getSettings: () => ipcRenderer.invoke('get-settings'),
9
+ onSettingsChanged: (callback) => ipcRenderer.on('settings-changed', (event, config) => callback(config))
10
+ });
@@ -0,0 +1,5 @@
1
+ const { contextBridge, ipcRenderer } = require('electron');
2
+
3
+ contextBridge.exposeInMainWorld('widgetAPI', {
4
+ onStateChange: (callback) => ipcRenderer.on('widget-state', (event, state) => callback(state))
5
+ });
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Proactive Glow</title>
7
+ <style>
8
+ body, html {
9
+ margin: 0;
10
+ padding: 0;
11
+ width: 100vw;
12
+ height: 100vh;
13
+ overflow: hidden;
14
+ background: transparent;
15
+ pointer-events: none;
16
+ }
17
+
18
+ .vision-glow {
19
+ position: absolute;
20
+ inset: 0;
21
+ pointer-events: none;
22
+ box-shadow: inset 0 0 120px rgba(139, 92, 246, 0.35);
23
+ z-index: 100;
24
+ animation: vision-pulse 3s ease-in-out infinite alternate;
25
+ }
26
+
27
+ @keyframes vision-pulse {
28
+ from {
29
+ box-shadow: inset 0 0 60px rgba(139, 92, 246, 0.15);
30
+ opacity: 0.4;
31
+ }
32
+ to {
33
+ box-shadow: inset 0 0 180px rgba(139, 92, 246, 0.45);
34
+ opacity: 1;
35
+ }
36
+ }
37
+ </style>
38
+ </head>
39
+ <body>
40
+ <div class="vision-glow"></div>
41
+ </body>
42
+ </html>