@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,6 +21,7 @@ import {
|
|
|
21
21
|
} from '../tauri'
|
|
22
22
|
import ChatPanel from './ChatPanel'
|
|
23
23
|
import DashboardSidebar, { type DashboardView } from './DashboardSidebar'
|
|
24
|
+
import ImageStudioPanel from './ImageStudioPanel'
|
|
24
25
|
import ModelPanel from './ModelPanel'
|
|
25
26
|
import type { ModelInteraction } from './ModelPanel'
|
|
26
27
|
import PicturesLibrary from './PicturesLibrary'
|
|
@@ -44,14 +45,14 @@ const ACCESSORIES = [
|
|
|
44
45
|
|
|
45
46
|
const DEFAULT_CONFIG = {
|
|
46
47
|
theme: 'dark',
|
|
47
|
-
accentColor: '#
|
|
48
|
+
accentColor: '#10b981',
|
|
48
49
|
systemTextColor: '#f8fafc',
|
|
49
50
|
customBgStart: '#0f172a',
|
|
50
51
|
customBgEnd: '#1e1b4b',
|
|
51
52
|
customPanelBg: '#1e293b',
|
|
52
53
|
glassBlur: 'blur(16px)',
|
|
53
54
|
fontFamily: "'Outfit', sans-serif",
|
|
54
|
-
fontSize: '
|
|
55
|
+
fontSize: '18px',
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
const LAST_WORKSPACE_PATH_KEY = 'mint:last-workspace-path'
|
|
@@ -187,7 +188,7 @@ const applyThemeStyles = (cfg: any) => {
|
|
|
187
188
|
document.documentElement.style.setProperty('--text-main', systemTextColor)
|
|
188
189
|
document.documentElement.style.setProperty('--glass-blur', cfg.glassBlur || 'blur(16px)')
|
|
189
190
|
document.body.style.fontFamily = cfg.fontFamily || "'Outfit', sans-serif"
|
|
190
|
-
document.documentElement.style.fontSize = cfg.fontSize || '
|
|
191
|
+
document.documentElement.style.fontSize = cfg.fontSize || '18px'
|
|
191
192
|
|
|
192
193
|
if (theme === 'custom') {
|
|
193
194
|
if (cfg.customBgStart && cfg.customBgEnd) {
|
|
@@ -342,7 +343,7 @@ export default function MintDashboard() {
|
|
|
342
343
|
}, [])
|
|
343
344
|
|
|
344
345
|
useEffect(() => {
|
|
345
|
-
if (view === 'pictures') refreshPictures().catch((reason: unknown) => setError(errorMessage(reason)))
|
|
346
|
+
if (view === 'pictures' || view === 'imagine') refreshPictures().catch((reason: unknown) => setError(errorMessage(reason)))
|
|
346
347
|
}, [view])
|
|
347
348
|
|
|
348
349
|
useEffect(() => {
|
|
@@ -927,11 +928,19 @@ export default function MintDashboard() {
|
|
|
927
928
|
/>
|
|
928
929
|
</main>
|
|
929
930
|
<PicturesLibrary view={view} pictures={pictures} onSetView={setView} />
|
|
931
|
+
<ImageStudioPanel
|
|
932
|
+
view={view}
|
|
933
|
+
onRefreshPictures={refreshPictures}
|
|
934
|
+
onSendToChat={(_url, imgPrompt) => {
|
|
935
|
+
setView('chat')
|
|
936
|
+
setMessage(imgPrompt)
|
|
937
|
+
}}
|
|
938
|
+
/>
|
|
930
939
|
</div>
|
|
931
940
|
<div className={`startup-loading ${startupReady ? 'is-hidden' : ''}`} aria-live="polite" aria-busy={!startupReady}>
|
|
932
941
|
<div className="startup-loading-content">
|
|
933
942
|
<div className="startup-loading-dots" aria-hidden="true"><span /><span /><span /></div>
|
|
934
|
-
<div className="startup-loading-text">Loading Agent
|
|
943
|
+
<div className="startup-loading-text">Loading Mint Agent</div>
|
|
935
944
|
</div>
|
|
936
945
|
</div>
|
|
937
946
|
{error && (
|
|
@@ -3,14 +3,14 @@ import { getProfileValue, setProfileValue } from '../tauri'
|
|
|
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 [activeTab, setActiveTab] = useState<TabType>('sect-general')
|
|
148
150
|
const [config, setConfig] = useState(DEFAULT_CONFIG)
|
|
@@ -169,6 +171,8 @@ export default function SettingsWindow() {
|
|
|
169
171
|
const [updateMessage, setUpdateMessage] = useState('')
|
|
170
172
|
const [updateAvailable, setUpdateAvailable] = useState(false)
|
|
171
173
|
|
|
174
|
+
|
|
175
|
+
|
|
172
176
|
// Load settings on mount
|
|
173
177
|
useEffect(() => {
|
|
174
178
|
async function loadSettings() {
|
|
@@ -942,24 +946,28 @@ export default function SettingsWindow() {
|
|
|
942
946
|
<div className="form-grid single">
|
|
943
947
|
<div className="setting-row">
|
|
944
948
|
<label>Your Name / Nickname</label>
|
|
945
|
-
<
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
949
|
+
<div className="memory-field-container">
|
|
950
|
+
<input
|
|
951
|
+
type="text"
|
|
952
|
+
value={userName}
|
|
953
|
+
onChange={(e) => setUserName(e.target.value)}
|
|
954
|
+
placeholder="e.g. Pheem, Jane"
|
|
955
|
+
/>
|
|
956
|
+
<p className="hint">Used by the assistant to address you in conversation.</p>
|
|
957
|
+
</div>
|
|
952
958
|
</div>
|
|
953
959
|
|
|
954
960
|
<div className="setting-row">
|
|
955
961
|
<label>Custom Instructions & Preferences</label>
|
|
956
|
-
<
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
962
|
+
<div className="memory-field-container">
|
|
963
|
+
<textarea
|
|
964
|
+
value={userPreferences}
|
|
965
|
+
onChange={(e) => setUserPreferences(e.target.value)}
|
|
966
|
+
placeholder="e.g. Explain coding concepts step-by-step. Prefer TypeScript. Talk in Thai. Keep explanations concise."
|
|
967
|
+
style={{ minHeight: '150px', resize: 'vertical' }}
|
|
968
|
+
/>
|
|
969
|
+
<p className="hint">Preferences, guidelines, or persona instructions for the assistant.</p>
|
|
970
|
+
</div>
|
|
963
971
|
</div>
|
|
964
972
|
</div>
|
|
965
973
|
</section>
|
|
@@ -1342,10 +1350,11 @@ export default function SettingsWindow() {
|
|
|
1342
1350
|
<div className="setting-row">
|
|
1343
1351
|
<label>Font Size</label>
|
|
1344
1352
|
<select value={config.fontSize} onChange={(e) => updateField('fontSize', e.target.value)}>
|
|
1345
|
-
<option value="
|
|
1346
|
-
<option value="
|
|
1347
|
-
<option value="
|
|
1348
|
-
<option value="
|
|
1353
|
+
<option value="16px">Small</option>
|
|
1354
|
+
<option value="18px">Medium (Default)</option>
|
|
1355
|
+
<option value="22px">Large</option>
|
|
1356
|
+
<option value="26px">Extra Large</option>
|
|
1357
|
+
<option value="30px">Extra Extra Large</option>
|
|
1349
1358
|
</select>
|
|
1350
1359
|
</div>
|
|
1351
1360
|
</div>
|