@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.
Files changed (74) hide show
  1. package/.github/workflows/ci.yml +14 -0
  2. package/Cargo.lock +3 -3
  3. package/Cargo.toml +1 -1
  4. package/README.md +82 -21
  5. package/assets/Mint_CLI.png +0 -0
  6. package/assets/Mint_Desktop.png +0 -0
  7. package/assets/Mint_Web.png +0 -0
  8. package/assets/Mint_WorkSpace.png +0 -0
  9. package/assets/Setting.png +0 -0
  10. package/assets/bridges.svg +4 -0
  11. package/assets/chat.svg +3 -0
  12. package/assets/code.svg +4 -0
  13. package/assets/features.svg +3 -0
  14. package/assets/imagegen.svg +5 -0
  15. package/assets/live2d.svg +6 -0
  16. package/assets/memory.svg +5 -0
  17. package/assets/screencapture.svg +4 -0
  18. package/assets/setup.svg +3 -0
  19. package/assets/tools.svg +4 -0
  20. package/bin/mint +0 -0
  21. package/crates/mint-cli/src/agent.rs +6 -2
  22. package/crates/mint-cli/src/main.rs +145 -5
  23. package/crates/mint-cli/src/onboard.rs +134 -1
  24. package/crates/mint-core/src/api_server.rs +108 -3
  25. package/crates/mint-core/src/config.rs +20 -1
  26. package/crates/mint-core/src/image_gen.rs +895 -0
  27. package/crates/mint-core/src/lib.rs +4 -0
  28. package/package.json +3 -3
  29. package/src/bin/index.js +0 -0
  30. package/src/renderer/index-web.html +1 -1
  31. package/src/renderer/index.html +1 -1
  32. package/src/renderer/src/components/ChatPanel.tsx +252 -26
  33. package/src/renderer/src/components/DashboardSidebar.tsx +11 -3
  34. package/src/renderer/src/components/ImageStudioPanel.tsx +638 -0
  35. package/src/renderer/src/components/MintDashboard.tsx +14 -5
  36. package/src/renderer/src/components/SettingsWindow.tsx +29 -20
  37. package/src/renderer/src/css/image-studio.css +722 -0
  38. package/src/renderer/src/css/settings.css +13 -3
  39. package/src/renderer/src/css/styles.css +50 -26
  40. package/src/renderer/src/index.css +106 -0
  41. package/src/renderer/src/tauri.ts +123 -0
  42. package/src/renderer/src-web/components/ChatPanel.tsx +273 -25
  43. package/src/renderer/src-web/components/DashboardSidebar.tsx +11 -3
  44. package/src/renderer/src-web/components/ImageStudioPanel.tsx +638 -0
  45. package/src/renderer/src-web/components/MintDashboard.tsx +13 -4
  46. package/src/renderer/src-web/components/SettingsWindow.tsx +29 -20
  47. package/src/renderer/src-web/css/image-studio.css +722 -0
  48. package/src/renderer/src-web/css/settings.css +14 -4
  49. package/src/renderer/src-web/css/styles.css +50 -26
  50. package/src/renderer/src-web/index.css +106 -0
  51. package/src/renderer/src-web/tauri.ts +124 -0
  52. package/src-tauri/Cargo.toml +29 -0
  53. package/src-tauri/build.rs +3 -0
  54. package/src-tauri/capabilities/main.json +7 -0
  55. package/src-tauri/gen/schemas/acl-manifests.json +1 -0
  56. package/src-tauri/gen/schemas/capabilities.json +1 -0
  57. package/src-tauri/gen/schemas/desktop-schema.json +2412 -0
  58. package/src-tauri/gen/schemas/linux-schema.json +2412 -0
  59. package/src-tauri/src/browser.rs +141 -0
  60. package/src-tauri/src/desktop.rs +392 -0
  61. package/src-tauri/src/discord_rpc.rs +99 -0
  62. package/src-tauri/src/events.rs +70 -0
  63. package/src-tauri/src/headless.rs +222 -0
  64. package/src-tauri/src/integrations.rs +126 -0
  65. package/src-tauri/src/lib.rs +1076 -0
  66. package/src-tauri/src/main.rs +3 -0
  67. package/src-tauri/src/plugins.rs +16 -0
  68. package/src-tauri/src/proactive.rs +254 -0
  69. package/src-tauri/src/system.rs +250 -0
  70. package/src-tauri/src/updater.rs +148 -0
  71. package/src-tauri/src/webhooks.rs +255 -0
  72. package/src-tauri/src/workflows.rs +70 -0
  73. package/src-tauri/tauri.conf.json +48 -0
  74. 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: '#4f83e6',
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: '15px',
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 || '15px'
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 Mint</div>
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: '#4f83e6',
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: '15px',
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
- <input
974
- type="text"
975
- value={userName}
976
- onChange={(e) => setUserName(e.target.value)}
977
- placeholder="e.g. Pheem, Jane"
978
- />
979
- <p className="hint">Used by the assistant to address you in conversation.</p>
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
- <textarea
985
- value={userPreferences}
986
- onChange={(e) => setUserPreferences(e.target.value)}
987
- placeholder="e.g. Explain coding concepts step-by-step. Prefer TypeScript. Talk in Thai. Keep explanations concise."
988
- style={{ minHeight: '150px', resize: 'vertical' }}
989
- />
990
- <p className="hint">Preferences, guidelines, or persona instructions for the assistant.</p>
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="14px">Small</option>
1375
- <option value="15px">Medium (Default)</option>
1376
- <option value="16px">Large</option>
1377
- <option value="17px">Extra Large</option>
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>