@pheem49/mint 1.6.2 → 1.6.4
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.
- package/.github/workflows/ci.yml +14 -0
- package/Cargo.lock +3 -3
- package/Cargo.toml +1 -1
- package/README.md +82 -21
- package/assets/Mint_CLI.png +0 -0
- package/assets/Mint_Desktop.png +0 -0
- package/assets/Mint_Web.png +0 -0
- package/assets/Mint_WorkSpace.png +0 -0
- package/assets/Setting.png +0 -0
- package/assets/bridges.svg +4 -0
- package/assets/chat.svg +3 -0
- package/assets/code.svg +4 -0
- package/assets/features.svg +3 -0
- package/assets/imagegen.svg +5 -0
- package/assets/live2d.svg +6 -0
- package/assets/memory.svg +5 -0
- package/assets/screencapture.svg +4 -0
- package/assets/setup.svg +3 -0
- package/assets/tools.svg +4 -0
- package/bin/mint +0 -0
- package/crates/mint-cli/src/agent.rs +6 -2
- package/crates/mint-cli/src/main.rs +145 -5
- package/crates/mint-cli/src/onboard.rs +134 -1
- package/crates/mint-core/src/api_server.rs +108 -3
- package/crates/mint-core/src/config.rs +20 -1
- package/crates/mint-core/src/image_gen.rs +895 -0
- package/crates/mint-core/src/lib.rs +4 -0
- package/package.json +3 -3
- package/src/bin/index.js +0 -0
- package/src/renderer/index-web.html +1 -1
- package/src/renderer/index.html +1 -1
- package/src/renderer/src/components/ChatPanel.tsx +252 -26
- package/src/renderer/src/components/DashboardSidebar.tsx +11 -3
- package/src/renderer/src/components/ImageStudioPanel.tsx +638 -0
- package/src/renderer/src/components/MintDashboard.tsx +14 -5
- package/src/renderer/src/components/SettingsWindow.tsx +29 -20
- package/src/renderer/src/css/image-studio.css +722 -0
- package/src/renderer/src/css/settings.css +13 -3
- package/src/renderer/src/css/styles.css +50 -26
- package/src/renderer/src/index.css +106 -0
- package/src/renderer/src/tauri.ts +123 -0
- package/src/renderer/src-web/components/ChatPanel.tsx +273 -25
- package/src/renderer/src-web/components/DashboardSidebar.tsx +11 -3
- package/src/renderer/src-web/components/ImageStudioPanel.tsx +638 -0
- package/src/renderer/src-web/components/MintDashboard.tsx +13 -4
- package/src/renderer/src-web/components/SettingsWindow.tsx +29 -20
- package/src/renderer/src-web/css/image-studio.css +722 -0
- package/src/renderer/src-web/css/settings.css +14 -4
- package/src/renderer/src-web/css/styles.css +50 -26
- package/src/renderer/src-web/index.css +106 -0
- package/src/renderer/src-web/tauri.ts +124 -0
- package/src-tauri/Cargo.toml +29 -0
- package/src-tauri/build.rs +3 -0
- package/src-tauri/capabilities/main.json +7 -0
- package/src-tauri/gen/schemas/acl-manifests.json +1 -0
- package/src-tauri/gen/schemas/capabilities.json +1 -0
- package/src-tauri/gen/schemas/desktop-schema.json +2412 -0
- package/src-tauri/gen/schemas/linux-schema.json +2412 -0
- package/src-tauri/src/browser.rs +141 -0
- package/src-tauri/src/desktop.rs +392 -0
- package/src-tauri/src/discord_rpc.rs +99 -0
- package/src-tauri/src/events.rs +70 -0
- package/src-tauri/src/headless.rs +222 -0
- package/src-tauri/src/integrations.rs +126 -0
- package/src-tauri/src/lib.rs +1076 -0
- package/src-tauri/src/main.rs +3 -0
- package/src-tauri/src/plugins.rs +16 -0
- package/src-tauri/src/proactive.rs +254 -0
- package/src-tauri/src/system.rs +250 -0
- package/src-tauri/src/updater.rs +148 -0
- package/src-tauri/src/webhooks.rs +255 -0
- package/src-tauri/src/workflows.rs +70 -0
- package/src-tauri/tauri.conf.json +48 -0
- package/tsconfig.json +1 -1
|
@@ -21,17 +21,18 @@ import {
|
|
|
21
21
|
import ChatPanel from './ChatPanel'
|
|
22
22
|
import DashboardSidebar, { type DashboardView } from './DashboardSidebar'
|
|
23
23
|
import PicturesLibrary from './PicturesLibrary'
|
|
24
|
+
import ImageStudioPanel from './ImageStudioPanel'
|
|
24
25
|
|
|
25
26
|
const DEFAULT_CONFIG = {
|
|
26
27
|
theme: 'dark',
|
|
27
|
-
accentColor: '#
|
|
28
|
+
accentColor: '#10b981',
|
|
28
29
|
systemTextColor: '#f8fafc',
|
|
29
30
|
customBgStart: '#0f172a',
|
|
30
31
|
customBgEnd: '#1e1b4b',
|
|
31
32
|
customPanelBg: '#1e293b',
|
|
32
33
|
glassBlur: 'blur(16px)',
|
|
33
34
|
fontFamily: "'Outfit', sans-serif",
|
|
34
|
-
fontSize: '
|
|
35
|
+
fontSize: '18px',
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
const ACTIVE_CONVERSATION_ID_KEY = 'mint:web-active-conversation-id'
|
|
@@ -166,7 +167,7 @@ const applyThemeStyles = (cfg: any) => {
|
|
|
166
167
|
document.documentElement.style.setProperty('--text-main', systemTextColor)
|
|
167
168
|
document.documentElement.style.setProperty('--glass-blur', cfg.glassBlur || 'blur(16px)')
|
|
168
169
|
document.body.style.fontFamily = cfg.fontFamily || "'Outfit', sans-serif"
|
|
169
|
-
document.documentElement.style.fontSize = cfg.fontSize || '
|
|
170
|
+
document.documentElement.style.fontSize = cfg.fontSize || '18px'
|
|
170
171
|
|
|
171
172
|
if (theme === 'custom') {
|
|
172
173
|
if (cfg.customBgStart && cfg.customBgEnd) {
|
|
@@ -745,11 +746,19 @@ export default function MintDashboard() {
|
|
|
745
746
|
/>
|
|
746
747
|
</main>
|
|
747
748
|
<PicturesLibrary view={view} pictures={pictures} onSetView={changeView} />
|
|
749
|
+
<ImageStudioPanel
|
|
750
|
+
view={view}
|
|
751
|
+
onRefreshPictures={refreshPictures}
|
|
752
|
+
onSendToChat={(_url, imgPrompt) => {
|
|
753
|
+
setView('chat')
|
|
754
|
+
setMessage(imgPrompt)
|
|
755
|
+
}}
|
|
756
|
+
/>
|
|
748
757
|
</div>
|
|
749
758
|
<div className={`startup-loading ${startupReady ? 'is-hidden' : ''}`} aria-live="polite" aria-busy={!startupReady}>
|
|
750
759
|
<div className="startup-loading-content">
|
|
751
760
|
<div className="startup-loading-dots" aria-hidden="true"><span /><span /><span /></div>
|
|
752
|
-
<div className="startup-loading-text">Loading Agent
|
|
761
|
+
<div className="startup-loading-text">Loading Mint Agent</div>
|
|
753
762
|
</div>
|
|
754
763
|
</div>
|
|
755
764
|
{error && (
|
|
@@ -3,14 +3,14 @@ import { getLocalApiBase, isTauriRuntime, getProfileValue, setProfileValue } fro
|
|
|
3
3
|
|
|
4
4
|
const DEFAULT_CONFIG = {
|
|
5
5
|
theme: 'dark',
|
|
6
|
-
accentColor: '#
|
|
6
|
+
accentColor: '#10b981',
|
|
7
7
|
systemTextColor: '#f8fafc',
|
|
8
8
|
customBgStart: '#0f172a',
|
|
9
9
|
customBgEnd: '#1e1b4b',
|
|
10
10
|
customPanelBg: '#1e293b',
|
|
11
11
|
glassBlur: 'blur(16px)',
|
|
12
12
|
fontFamily: "'Outfit', sans-serif",
|
|
13
|
-
fontSize: '
|
|
13
|
+
fontSize: '18px',
|
|
14
14
|
apiKey: '',
|
|
15
15
|
aiProvider: 'gemini',
|
|
16
16
|
geminiModel: 'gemini-2.5-flash',
|
|
@@ -143,6 +143,8 @@ const OLLAMA_MODELS = [
|
|
|
143
143
|
'qwen2.5:latest'
|
|
144
144
|
]
|
|
145
145
|
|
|
146
|
+
|
|
147
|
+
|
|
146
148
|
export default function SettingsWindow() {
|
|
147
149
|
const isDesktopApp = isTauriRuntime()
|
|
148
150
|
const [activeTab, setActiveTab] = useState<TabType>('sect-general')
|
|
@@ -170,6 +172,8 @@ export default function SettingsWindow() {
|
|
|
170
172
|
const [updateMessage, setUpdateMessage] = useState('')
|
|
171
173
|
const [updateAvailable, setUpdateAvailable] = useState(false)
|
|
172
174
|
|
|
175
|
+
|
|
176
|
+
|
|
173
177
|
// Load settings on mount
|
|
174
178
|
useEffect(() => {
|
|
175
179
|
async function loadSettings() {
|
|
@@ -970,24 +974,28 @@ export default function SettingsWindow() {
|
|
|
970
974
|
<div className="form-grid single">
|
|
971
975
|
<div className="setting-row">
|
|
972
976
|
<label>Your Name / Nickname</label>
|
|
973
|
-
<
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
977
|
+
<div className="memory-field-container">
|
|
978
|
+
<input
|
|
979
|
+
type="text"
|
|
980
|
+
value={userName}
|
|
981
|
+
onChange={(e) => setUserName(e.target.value)}
|
|
982
|
+
placeholder="e.g. Pheem, Jane"
|
|
983
|
+
/>
|
|
984
|
+
<p className="hint">Used by the assistant to address you in conversation.</p>
|
|
985
|
+
</div>
|
|
980
986
|
</div>
|
|
981
987
|
|
|
982
988
|
<div className="setting-row">
|
|
983
989
|
<label>Custom Instructions & Preferences</label>
|
|
984
|
-
<
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
990
|
+
<div className="memory-field-container">
|
|
991
|
+
<textarea
|
|
992
|
+
value={userPreferences}
|
|
993
|
+
onChange={(e) => setUserPreferences(e.target.value)}
|
|
994
|
+
placeholder="e.g. Explain coding concepts step-by-step. Prefer TypeScript. Talk in Thai. Keep explanations concise."
|
|
995
|
+
style={{ minHeight: '150px', resize: 'vertical' }}
|
|
996
|
+
/>
|
|
997
|
+
<p className="hint">Preferences, guidelines, or persona instructions for the assistant.</p>
|
|
998
|
+
</div>
|
|
991
999
|
</div>
|
|
992
1000
|
</div>
|
|
993
1001
|
</section>
|
|
@@ -1371,10 +1379,11 @@ export default function SettingsWindow() {
|
|
|
1371
1379
|
<div className="setting-row">
|
|
1372
1380
|
<label>Font Size</label>
|
|
1373
1381
|
<select value={config.fontSize} onChange={(e) => updateField('fontSize', e.target.value)}>
|
|
1374
|
-
<option value="
|
|
1375
|
-
<option value="
|
|
1376
|
-
<option value="
|
|
1377
|
-
<option value="
|
|
1382
|
+
<option value="16px">Small</option>
|
|
1383
|
+
<option value="18px">Medium (Default)</option>
|
|
1384
|
+
<option value="22px">Large</option>
|
|
1385
|
+
<option value="26px">Extra Large</option>
|
|
1386
|
+
<option value="30px">Extra Extra Large</option>
|
|
1378
1387
|
</select>
|
|
1379
1388
|
</div>
|
|
1380
1389
|
</div>
|