@pheem49/mint 1.5.0 → 1.5.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 (78) hide show
  1. package/README.md +27 -1
  2. package/main.js +28 -14
  3. package/mint-cli-logic.js +3 -119
  4. package/mint-cli.js +497 -23
  5. package/models/Shiroko_Model/Shiroko/Shiroko_Core/72d86db84cfa9730b894c241fd24c0db.png +0 -0
  6. package/models/Shiroko_Model/Shiroko/Shiroko_Core/items_pinned_to_model.json +14 -0
  7. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253.exp3.json +10 -0
  8. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253/347/234/274/347/217/240/346/221/207/346/231/203.exp3.json +15 -0
  9. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/233/264/350/243/231.exp3.json +10 -0
  10. package/models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/215/347/205/247.exp3.json +50 -0
  11. package/models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/277/347/254/224.exp3.json +10 -0
  12. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/202/271/344/270/200/344/270/213.exp3.json +10 -0
  13. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/214/253/345/222/252/346/273/244/351/225/234.exp3.json +10 -0
  14. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/234/274/351/225/234.exp3.json +10 -0
  15. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_00.png +0 -0
  16. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_01.png +0 -0
  17. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_02.png +0 -0
  18. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_03.png +0 -0
  19. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.cdi3.json +1498 -0
  20. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.moc3 +0 -0
  21. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.model3.json +47 -0
  22. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.physics3.json +6658 -0
  23. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.vtube.json +1299 -0
  24. package/models/Shiroko_Model/Shiroko//342/232/241/351/253/230/344/272/256/342/232/241/344/275/277/347/224/250/346/225/231/347/250/213/344/270/216/346/263/250/346/204/217/344/272/213/351/241/271.txt +23 -0
  25. package/package.json +26 -1
  26. package/src/AI_Brain/Gemini_API.js +147 -46
  27. package/src/AI_Brain/autonomous_brain.js +2 -1
  28. package/src/AI_Brain/memory_store.js +299 -3
  29. package/src/CLI/chat_router.js +18 -6
  30. package/src/CLI/chat_ui.js +396 -50
  31. package/src/CLI/code_agent.js +203 -14
  32. package/src/CLI/image_input.js +90 -0
  33. package/src/CLI/onboarding.js +72 -15
  34. package/src/CLI/updater.js +6 -4
  35. package/src/System/action_executor.js +59 -10
  36. package/src/System/config_manager.js +31 -1
  37. package/src/System/granular_automation.js +122 -53
  38. package/src/System/proactive_loop.js +19 -3
  39. package/src/System/safety_manager.js +108 -0
  40. package/src/System/sandbox_runner.js +182 -0
  41. package/src/System/system_automation.js +127 -81
  42. package/src/System/system_info.js +70 -0
  43. package/src/System/tool_registry.js +280 -0
  44. package/src/System/window_manager.js +4 -2
  45. package/src/UI/live2d_manager.js +368 -0
  46. package/src/UI/renderer.js +176 -18
  47. package/src/UI/styles.css +452 -31
  48. package/.codex +0 -0
  49. package/docs/assets/Agent_Mint.png +0 -0
  50. package/docs/assets/CLI_Screen.png +0 -0
  51. package/docs/assets/Settings.png +0 -0
  52. package/docs/assets/icon.png +0 -0
  53. package/docs/guide.html +0 -632
  54. package/docs/index.html +0 -133
  55. package/docs/style.css +0 -579
  56. package/index.html +0 -16
  57. package/src/UI/index.html +0 -126
  58. package/tech_news.txt +0 -3
  59. package/test_knowledge.txt +0 -3
  60. package/tests/action_executor_safety.test.js +0 -67
  61. package/tests/agent_orchestrator.test.js +0 -41
  62. package/tests/chat_router.test.js +0 -42
  63. package/tests/code_agent.test.js +0 -69
  64. package/tests/config_manager.test.js +0 -141
  65. package/tests/docker.test.js +0 -46
  66. package/tests/file_operations.test.js +0 -57
  67. package/tests/gmail.test.js +0 -135
  68. package/tests/gmail_auth.test.js +0 -129
  69. package/tests/google_calendar.test.js +0 -113
  70. package/tests/google_tts_urls.test.js +0 -24
  71. package/tests/memory_store.test.js +0 -185
  72. package/tests/notion.test.js +0 -121
  73. package/tests/provider_routing.test.js +0 -83
  74. package/tests/safety_manager.test.js +0 -40
  75. package/tests/spotify.test.js +0 -201
  76. package/tests/system_monitor.test.js +0 -37
  77. package/tests/updater.test.js +0 -32
  78. package/tests/workspace_manager.test.js +0 -56
package/src/UI/styles.css CHANGED
@@ -77,11 +77,13 @@ body {
77
77
  /* Header - Drag Region */
78
78
  .drag-region {
79
79
  -webkit-app-region: drag;
80
- padding: 16px 20px;
81
- display: flex;
82
- justify-content: space-between;
80
+ min-height: 66px;
81
+ padding: 10px 14px 10px 18px;
82
+ display: grid;
83
+ grid-template-columns: minmax(150px, 1fr) auto minmax(220px, 1fr) auto;
84
+ gap: 14px;
83
85
  align-items: center;
84
- background: rgba(15, 23, 42, 0.3);
86
+ background: rgba(9, 14, 28, 0.76);
85
87
  backdrop-filter: var(--glass-blur);
86
88
  -webkit-backdrop-filter: var(--glass-blur);
87
89
  border-bottom: 1px solid var(--border);
@@ -93,6 +95,7 @@ body {
93
95
  display: flex;
94
96
  align-items: center;
95
97
  gap: 12px;
98
+ min-width: 0;
96
99
  }
97
100
 
98
101
  .status-indicator {
@@ -128,14 +131,77 @@ h1 {
128
131
  -webkit-text-fill-color: transparent;
129
132
  }
130
133
 
131
- .close-btn, .maximize-btn, .minimize-btn {
134
+ .header-actions,
135
+ .header-utility,
136
+ .window-controls {
137
+ -webkit-app-region: no-drag;
138
+ display: flex;
139
+ align-items: center;
140
+ gap: 8px;
141
+ }
142
+
143
+ .header-actions {
144
+ justify-content: center;
145
+ padding: 4px;
146
+ border: 1px solid rgba(255, 255, 255, 0.08);
147
+ border-radius: 14px;
148
+ background: rgba(255, 255, 255, 0.035);
149
+ }
150
+
151
+ .header-utility {
152
+ justify-content: flex-end;
153
+ }
154
+
155
+ .window-controls {
156
+ justify-content: flex-end;
157
+ gap: 4px;
158
+ }
159
+
160
+ .toggle-model-btn,
161
+ .change-expression-btn,
162
+ .interaction-guide-btn,
163
+ .clear-btn,
164
+ .settings-btn {
165
+ -webkit-app-region: no-drag;
166
+ min-width: 0;
167
+ height: 36px;
168
+ border: 1px solid transparent;
169
+ background: transparent;
170
+ color: var(--text-muted);
171
+ cursor: pointer;
172
+ border-radius: 10px;
173
+ display: inline-flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ gap: 7px;
177
+ padding: 0 11px;
178
+ font-size: 0.78rem;
179
+ font-weight: 600;
180
+ line-height: 1;
181
+ white-space: nowrap;
182
+ transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
183
+ }
184
+
185
+ .toggle-model-btn svg,
186
+ .change-expression-btn svg,
187
+ .interaction-guide-btn svg,
188
+ .clear-btn svg,
189
+ .settings-btn svg {
190
+ flex: 0 0 auto;
191
+ }
192
+
193
+ .close-btn,
194
+ .maximize-btn,
195
+ .minimize-btn {
132
196
  -webkit-app-region: no-drag;
133
197
  background: transparent;
134
198
  border: none;
135
199
  color: var(--text-muted);
136
200
  cursor: pointer;
137
- padding: 4px;
138
- border-radius: 6px;
201
+ width: 34px;
202
+ height: 34px;
203
+ padding: 0;
204
+ border-radius: 9px;
139
205
  display: flex;
140
206
  align-items: center;
141
207
  justify-content: center;
@@ -152,50 +218,357 @@ h1 {
152
218
  color: #ef4444;
153
219
  }
154
220
 
221
+ .toggle-model-btn:hover {
222
+ background: rgba(139, 92, 246, 0.15);
223
+ border-color: rgba(139, 92, 246, 0.2);
224
+ color: var(--accent);
225
+ }
226
+
227
+ .toggle-model-btn.active {
228
+ background: rgba(139, 92, 246, 0.26);
229
+ border-color: rgba(139, 92, 246, 0.42);
230
+ color: white;
231
+ }
232
+
233
+ .change-expression-btn:hover {
234
+ background: rgba(251, 191, 36, 0.15);
235
+ border-color: rgba(251, 191, 36, 0.2);
236
+ color: #fbbf24;
237
+ }
238
+
239
+ .interaction-guide-btn:hover {
240
+ background: rgba(34, 211, 238, 0.14);
241
+ border-color: rgba(34, 211, 238, 0.2);
242
+ color: #67e8f9;
243
+ }
244
+
245
+ .interaction-guide-btn.active {
246
+ background: rgba(34, 211, 238, 0.22);
247
+ border-color: rgba(34, 211, 238, 0.34);
248
+ color: #67e8f9;
249
+ }
250
+
155
251
  .maximize-btn:hover {
156
252
  background: rgba(255, 255, 255, 0.1);
157
253
  color: var(--text-color);
158
254
  }
159
255
 
160
- .clear-btn {
161
- -webkit-app-region: no-drag;
162
- background: transparent;
163
- border: none;
164
- color: var(--text-muted);
165
- cursor: pointer;
166
- padding: 4px;
167
- border-radius: 6px;
256
+ .clear-btn:hover {
257
+ background: rgba(251, 191, 36, 0.15);
258
+ border-color: rgba(251, 191, 36, 0.2);
259
+ color: #fbbf24;
260
+ }
261
+
262
+ .settings-btn:hover {
263
+ background: rgba(139, 92, 246, 0.15);
264
+ border-color: rgba(139, 92, 246, 0.2);
265
+ color: var(--accent);
266
+ }
267
+
268
+ /* Chat Area */
269
+ .assistant-workspace {
270
+ flex: 1;
271
+ min-height: 0;
272
+ display: flex;
273
+ gap: 22px;
274
+ padding: 22px;
275
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
276
+ }
277
+
278
+ .assistant-workspace.model-hidden {
279
+ padding: 22px 120px;
280
+ }
281
+
282
+ .model-stage {
283
+ flex: 1 1 54%;
284
+ min-width: 420px;
168
285
  display: flex;
169
286
  align-items: center;
170
287
  justify-content: center;
171
- transition: all 0.2s ease;
288
+ position: relative;
289
+ overflow: hidden;
290
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
291
+ opacity: 1;
292
+ transform: scale(1);
172
293
  }
173
294
 
174
- .clear-btn:hover {
175
- background: rgba(251, 191, 36, 0.15);
176
- color: #fbbf24;
295
+ .assistant-workspace.model-hidden .model-stage {
296
+ flex: 0 0 0;
297
+ min-width: 0;
298
+ opacity: 0;
299
+ pointer-events: none;
300
+ transform: scale(0.9);
301
+ margin-right: -22px;
302
+ }
303
+
304
+ .model-shell {
305
+ width: 100%;
306
+ height: 100%;
307
+ max-width: 620px;
308
+ max-height: 720px;
309
+ min-height: 480px;
310
+ display: grid;
311
+ place-items: center;
312
+ position: relative;
313
+ background: rgba(0, 0, 0, 0.2);
314
+ border-radius: 24px;
315
+ border: 1px solid rgba(255, 255, 255, 0.06);
316
+ box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.2);
317
+ overflow: hidden;
177
318
  }
178
319
 
179
- .settings-btn {
180
- -webkit-app-region: no-drag;
181
- background: transparent;
182
- border: none;
320
+ .model-glow {
321
+ position: absolute;
322
+ width: 85%;
323
+ aspect-ratio: 1;
324
+ border-radius: 50%;
325
+ background: radial-gradient(circle, rgba(139, 92, 246, 0.12), rgba(139, 92, 246, 0.02) 48%, transparent 72%);
326
+ filter: blur(20px);
327
+ transform: translateY(2%);
328
+ }
329
+
330
+ .model-mount {
331
+ width: 100%;
332
+ height: 100%;
333
+ position: relative;
334
+ z-index: 1;
335
+ }
336
+
337
+ .model-mount canvas {
338
+ position: absolute;
339
+ inset: 0;
340
+ width: 100%;
341
+ height: 100%;
342
+ }
343
+
344
+ .expression-toast {
345
+ position: absolute;
346
+ left: 50%;
347
+ top: 18px;
348
+ z-index: 4;
349
+ transform: translate(-50%, -8px);
350
+ opacity: 0;
351
+ pointer-events: none;
352
+ padding: 7px 12px;
353
+ border-radius: 999px;
354
+ background: rgba(15, 23, 42, 0.72);
355
+ border: 1px solid rgba(255, 255, 255, 0.12);
356
+ color: #f8fafc;
357
+ font-size: 0.76rem;
358
+ font-weight: 600;
359
+ line-height: 1;
360
+ white-space: nowrap;
361
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
362
+ backdrop-filter: blur(10px);
363
+ transition: opacity 0.18s ease, transform 0.18s ease;
364
+ }
365
+
366
+ .expression-toast.is-visible {
367
+ opacity: 1;
368
+ transform: translate(-50%, 0);
369
+ }
370
+
371
+ .interaction-guide {
372
+ position: absolute;
373
+ inset: 0;
374
+ z-index: 3;
375
+ pointer-events: none;
376
+ opacity: 0;
377
+ transition: opacity 0.2s ease;
378
+ }
379
+
380
+ .model-shell.show-interaction-guide .interaction-guide {
381
+ opacity: 1;
382
+ }
383
+
384
+ .interaction-zone {
385
+ position: absolute;
386
+ border: 1px solid rgba(103, 232, 249, 0.46);
387
+ background: rgba(14, 165, 233, 0.08);
388
+ box-shadow: 0 0 18px rgba(34, 211, 238, 0.12), inset 0 0 18px rgba(255, 255, 255, 0.04);
389
+ }
390
+
391
+ .interaction-zone span {
392
+ position: absolute;
393
+ left: 50%;
394
+ top: 50%;
395
+ transform: translate(-50%, -50%);
396
+ padding: 4px 8px;
397
+ border-radius: 999px;
398
+ background: rgba(3, 7, 18, 0.72);
399
+ border: 1px solid rgba(255, 255, 255, 0.12);
400
+ color: #e0f2fe;
401
+ font-size: 0.68rem;
402
+ font-weight: 600;
403
+ line-height: 1;
404
+ white-space: nowrap;
405
+ text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
406
+ }
407
+
408
+ .zone-head {
409
+ left: 35%;
410
+ top: 30%;
411
+ width: 29%;
412
+ height: 9%;
413
+ border-radius: 48% 48% 42% 42%;
414
+ }
415
+
416
+ .zone-face {
417
+ left: 37%;
418
+ top: 39.5%;
419
+ width: 25%;
420
+ height: 13%;
421
+ border-radius: 50%;
422
+ background: rgba(244, 114, 182, 0.1);
423
+ border-color: rgba(244, 114, 182, 0.5);
424
+ }
425
+
426
+ .zone-left-hand {
427
+ left: 17%;
428
+ top: 65%;
429
+ width: 19%;
430
+ height: 17%;
431
+ border-radius: 48% 42% 56% 44%;
432
+ }
433
+
434
+ .zone-right-hand {
435
+ left: 70%;
436
+ top: 67%;
437
+ width: 17%;
438
+ height: 17%;
439
+ border-radius: 42% 54% 44% 56%;
440
+ }
441
+
442
+ .zone-body {
443
+ left: 36%;
444
+ top: 55%;
445
+ width: 29%;
446
+ height: 15%;
447
+ border-radius: 38% 38% 48% 48%;
448
+ }
449
+
450
+ .zone-lower {
451
+ left: 31%;
452
+ top: 76%;
453
+ width: 38%;
454
+ height: 24%;
455
+ border-radius: 46% 46% 24% 24%;
456
+ background: rgba(251, 191, 36, 0.08);
457
+ border-color: rgba(251, 191, 36, 0.45);
458
+ }
459
+
460
+ .model-placeholder {
461
+ width: 100%;
462
+ max-height: 100%;
463
+ object-fit: contain;
464
+ filter: drop-shadow(0 22px 34px rgba(0, 0, 0, 0.26));
465
+ animation: modelFloat 4.5s ease-in-out infinite;
466
+ transition: opacity 0.6s ease-out;
467
+ }
468
+
469
+ .model-shell.is-live2d-ready .model-placeholder {
470
+ opacity: 0 !important;
471
+ pointer-events: none;
472
+ }
473
+
474
+ .model-status {
475
+ position: absolute;
476
+ left: 50%;
477
+ bottom: 24px;
478
+ max-width: min(88%, 460px);
479
+ transform: translateX(-50%);
183
480
  color: var(--text-muted);
184
- cursor: pointer;
185
- padding: 4px;
186
- border-radius: 6px;
481
+ font-size: 0.78rem;
482
+ line-height: 1.35;
483
+ text-align: center;
484
+ user-select: text;
485
+ z-index: 2;
187
486
  display: flex;
487
+ flex-direction: column;
188
488
  align-items: center;
489
+ gap: 8px;
490
+ }
491
+
492
+ .model-status.is-error {
493
+ color: #fca5a5;
494
+ display: block;
495
+ }
496
+
497
+ .loader-dots {
498
+ display: flex;
499
+ gap: 6px;
189
500
  justify-content: center;
190
- transition: all 0.2s ease;
501
+ align-items: center;
502
+ margin-bottom: 4px;
191
503
  }
192
504
 
193
- .settings-btn:hover {
194
- background: rgba(139, 92, 246, 0.15);
195
- color: var(--accent);
505
+ .loader-dots span {
506
+ width: 8px;
507
+ height: 8px;
508
+ background-color: var(--accent);
509
+ border-radius: 50%;
510
+ display: inline-block;
511
+ animation: dot-pulse 1.4s infinite ease-in-out both;
512
+ }
513
+
514
+ .loader-dots span:nth-child(1) { animation-delay: -0.32s; }
515
+ .loader-dots span:nth-child(2) { animation-delay: -0.16s; }
516
+
517
+ @keyframes dot-pulse {
518
+ 0%, 80%, 100% { transform: scale(0); opacity: 0.3; }
519
+ 40% { transform: scale(1.0); opacity: 1; }
520
+ }
521
+
522
+ .model-shell.is-live2d-ready .model-status {
523
+ display: none;
524
+ }
525
+
526
+ .model-shadow {
527
+ position: absolute;
528
+ bottom: 12%;
529
+ width: 44%;
530
+ height: 22px;
531
+ border-radius: 50%;
532
+ background: rgba(0, 0, 0, 0.24);
533
+ filter: blur(10px);
534
+ transform: scaleX(1.2);
535
+ }
536
+
537
+ @keyframes modelFloat {
538
+ 0%,
539
+ 100% {
540
+ transform: translateY(0);
541
+ }
542
+
543
+ 50% {
544
+ transform: translateY(-10px);
545
+ }
546
+ }
547
+
548
+ .conversation-panel {
549
+ flex: 0 1 460px;
550
+ min-width: 400px;
551
+ display: flex;
552
+ flex-direction: column;
553
+ min-height: 0;
554
+ overflow: hidden;
555
+ background: var(--panel-bg);
556
+ backdrop-filter: var(--glass-blur);
557
+ -webkit-backdrop-filter: var(--glass-blur);
558
+ border: 1px solid var(--border);
559
+ border-top-color: var(--border-light);
560
+ border-left-color: var(--border-light);
561
+ border-radius: 16px;
562
+ box-shadow: 0 20px 52px rgba(0, 0, 0, 0.24);
563
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
564
+ }
565
+
566
+ .assistant-workspace.model-hidden .conversation-panel {
567
+ flex: 1;
568
+ max-width: 900px;
569
+ margin: 0 auto;
196
570
  }
197
571
 
198
- /* Chat Area */
199
572
  .chat-container {
200
573
  flex: 1;
201
574
  padding: 20px;
@@ -662,3 +1035,51 @@ input:checked + .slider:before {
662
1035
  .suggestion-chip:active {
663
1036
  transform: scale(0.97);
664
1037
  }
1038
+
1039
+ @media (max-width: 760px) {
1040
+ .drag-region {
1041
+ grid-template-columns: auto 1fr auto;
1042
+ gap: 8px;
1043
+ padding: 9px 10px 9px 12px;
1044
+ }
1045
+
1046
+ .header-content h1 {
1047
+ display: none;
1048
+ }
1049
+
1050
+ .header-actions {
1051
+ justify-content: flex-start;
1052
+ overflow: hidden;
1053
+ }
1054
+
1055
+ .header-utility {
1056
+ display: none;
1057
+ }
1058
+
1059
+ .toggle-model-btn,
1060
+ .change-expression-btn,
1061
+ .interaction-guide-btn {
1062
+ width: 34px;
1063
+ padding: 0;
1064
+ }
1065
+
1066
+ .toggle-model-btn span,
1067
+ .change-expression-btn span,
1068
+ .interaction-guide-btn span {
1069
+ display: none;
1070
+ }
1071
+
1072
+ .assistant-workspace {
1073
+ padding: 12px;
1074
+ gap: 12px;
1075
+ }
1076
+
1077
+ .model-stage {
1078
+ display: none;
1079
+ }
1080
+
1081
+ .conversation-panel {
1082
+ flex: 1;
1083
+ min-width: 0;
1084
+ }
1085
+ }
package/.codex DELETED
File without changes
Binary file
Binary file
Binary file
Binary file