@pheem49/mint 1.15.0 → 1.17.0
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/Cargo.lock +1012 -69
- package/Cargo.toml +5 -2
- package/LICENSE +21 -654
- package/README.md +92 -817
- package/Release_Note.md +71 -579
- package/apps/mint-companion/src-tauri/Cargo.toml +20 -0
- package/apps/mint-companion/src-tauri/build.rs +3 -0
- package/apps/mint-companion/src-tauri/src/compact.rs +69 -0
- package/apps/mint-companion/src-tauri/src/main.rs +675 -0
- package/apps/mint-companion/tsconfig.json +20 -0
- package/apps/mint-companion/vite.config.ts +4 -0
- package/components.json +19 -0
- package/crates/mint-cli/Cargo.toml +6 -0
- package/crates/mint-cli/src/agent/live_status.rs +230 -41
- package/crates/mint-cli/src/agent.rs +476 -108
- package/crates/mint-cli/src/commands/agent.rs +294 -86
- package/crates/mint-cli/src/commands/browser.rs +127 -0
- package/crates/mint-cli/src/commands/config.rs +14 -1
- package/crates/mint-cli/src/commands/integrations.rs +7 -0
- package/crates/mint-cli/src/commands/knowledge.rs +28 -34
- package/crates/mint-cli/src/commands/mod.rs +59 -1
- package/crates/mint-cli/src/commands/tailnet_web.rs +2 -7
- package/crates/mint-cli/src/companion_navigation.rs +268 -0
- package/crates/mint-cli/src/image.rs +31 -33
- package/crates/mint-cli/src/interactive/chat_tui.rs +4977 -864
- package/crates/mint-cli/src/interactive/command_ui.rs +39 -0
- package/crates/mint-cli/src/interactive/input_box.rs +56 -6
- package/crates/mint-cli/src/interactive/slash_commands.rs +321 -61
- package/crates/mint-cli/src/interactive/tool_activity.rs +667 -0
- package/crates/mint-cli/src/interactive.rs +93 -37
- package/crates/mint-cli/src/main.rs +36 -9
- package/crates/mint-cli/src/mcp.rs +5 -0
- package/crates/mint-cli/src/mod_host.rs +6 -0
- package/crates/mint-cli/src/mods_cli.rs +62 -0
- package/crates/mint-cli/src/mods_ui.rs +187 -0
- package/crates/mint-cli/src/onboard.rs +3492 -1360
- package/crates/mint-cli/src/terminal_theme.rs +3 -1
- package/crates/mint-cli/src/updater.rs +56 -2
- package/crates/mint-cli/tests/library_intake.rs +77 -0
- package/crates/mint-cli/tests/mods_testing.rs +137 -0
- package/crates/mint-companion-protocol/Cargo.toml +10 -0
- package/crates/mint-companion-protocol/src/lib.rs +276 -0
- package/crates/mint-core/Cargo.toml +6 -3
- package/crates/mint-core/build.rs +26 -0
- package/crates/mint-core/src/agent/chat.rs +406 -39
- package/crates/mint-core/src/agent/code_tools.rs +15 -0
- package/crates/mint-core/src/agent/memory/sources.rs +240 -0
- package/crates/mint-core/src/agent/memory.rs +220 -19
- package/crates/mint-core/src/agent/safety.rs +56 -4
- package/crates/mint-core/src/agent/skill_inventory.rs +327 -0
- package/crates/mint-core/src/agent/skills.rs +438 -90
- package/crates/mint-core/src/agent.rs +1 -0
- package/crates/mint-core/src/api_server/routes/auth.rs +1 -4
- package/crates/mint-core/src/api_server/routes/background_jobs.rs +310 -0
- package/crates/mint-core/src/api_server/routes/chat.rs +245 -214
- package/crates/mint-core/src/api_server/routes/html_preview.rs +77 -0
- package/crates/mint-core/src/api_server/routes/library.rs +97 -0
- package/crates/mint-core/src/api_server/routes/media_gen.rs +10 -57
- package/crates/mint-core/src/api_server/routes/misc.rs +220 -107
- package/crates/mint-core/src/api_server/routes/mod.rs +6 -0
- package/crates/mint-core/src/api_server/routes/mods.rs +31 -0
- package/crates/mint-core/src/api_server/routes/profile_oauth.rs +43 -26
- package/crates/mint-core/src/api_server/routes/sessions.rs +127 -69
- package/crates/mint-core/src/api_server/routes/skills_subagents.rs +16 -42
- package/crates/mint-core/src/api_server/routes/slash.rs +50 -1
- package/crates/mint-core/src/api_server/routes/sources.rs +101 -0
- package/crates/mint-core/src/api_server/routes/status_health.rs +18 -8
- package/crates/mint-core/src/api_server.rs +327 -72
- package/crates/mint-core/src/avatar_bridge.rs +15 -3
- package/crates/mint-core/src/browser/cdp.rs +82 -26
- package/crates/mint-core/src/browser/lifecycle.rs +143 -43
- package/crates/mint-core/src/browser/mod.rs +5 -4
- package/crates/mint-core/src/browser/navigate.rs +82 -9
- package/crates/mint-core/src/browser/runtime.rs +284 -0
- package/crates/mint-core/src/browser/session.rs +315 -7
- package/crates/mint-core/src/browser/workflow.rs +386 -0
- package/crates/mint-core/src/companion/navigation.rs +115 -0
- package/crates/mint-core/src/companion.rs +824 -0
- package/crates/mint-core/src/cron/scheduler.rs +34 -2
- package/crates/mint-core/src/integrations/channels.rs +87 -345
- package/crates/mint-core/src/integrations/mcp.rs +397 -50
- package/crates/mint-core/src/integrations/mcp_calls.rs +823 -0
- package/crates/mint-core/src/integrations/mcp_catalog.rs +267 -0
- package/crates/mint-core/src/integrations/mcp_device.rs +319 -0
- package/crates/mint-core/src/integrations/mcp_result.rs +401 -0
- package/crates/mint-core/src/integrations/webhooks.rs +539 -0
- package/crates/mint-core/src/integrations.rs +2 -0
- package/crates/mint-core/src/lib.rs +95 -32
- package/crates/mint-core/src/media/gemini_live.rs +134 -14
- package/crates/mint-core/src/media/image_models.rs +3 -27
- package/crates/mint-core/src/media/image_proxy.rs +563 -0
- package/crates/mint-core/src/media/image_workflow.rs +216 -0
- package/crates/mint-core/src/media/library/intake.rs +144 -0
- package/crates/mint-core/src/media/library/migration.rs +56 -0
- package/crates/mint-core/src/media/library/removal.rs +55 -0
- package/crates/mint-core/src/media/library/tests.rs +730 -0
- package/crates/mint-core/src/media/library/thumbnails.rs +72 -0
- package/crates/mint-core/src/media/library.rs +545 -0
- package/crates/mint-core/src/media/model_catalog.rs +375 -0
- package/crates/mint-core/src/media/pictures.rs +79 -222
- package/crates/mint-core/src/media/tool_images.rs +196 -0
- package/crates/mint-core/src/media/tts/playback.rs +609 -0
- package/crates/mint-core/src/media/tts.rs +1 -0
- package/crates/mint-core/src/media/video_models.rs +3 -22
- package/crates/mint-core/src/media.rs +5 -0
- package/crates/mint-core/src/mods/manager.rs +1124 -0
- package/crates/mint-core/src/mods/mod.rs +569 -0
- package/crates/mint-core/src/mods/operations.rs +204 -0
- package/crates/mint-core/src/mods/session.rs +146 -0
- package/crates/mint-core/src/mods/slash.rs +59 -0
- package/crates/mint-core/src/mods/telemetry.rs +306 -0
- package/crates/mint-core/src/orchestration/approvals.rs +344 -0
- package/crates/mint-core/src/orchestration/context_render.rs +553 -32
- package/crates/mint-core/src/orchestration/decision_parsing.rs +5 -23
- package/crates/mint-core/src/orchestration/diagnostics.rs +307 -0
- package/crates/mint-core/src/orchestration/image_regressions.rs +379 -0
- package/crates/mint-core/src/orchestration/loop_guard.rs +334 -0
- package/crates/mint-core/src/orchestration/mcp_review.rs +153 -0
- package/crates/mint-core/src/orchestration/memory_skill.rs +104 -32
- package/crates/mint-core/src/orchestration/mod.rs +3194 -755
- package/crates/mint-core/src/orchestration/mod_authoring_regressions.rs +209 -0
- package/crates/mint-core/src/orchestration/progress_clock.rs +80 -0
- package/crates/mint-core/src/orchestration/reliability.rs +541 -0
- package/crates/mint-core/src/orchestration/repeated_failures.rs +124 -0
- package/crates/mint-core/src/orchestration/review_regressions.rs +595 -0
- package/crates/mint-core/src/orchestration/run_control.rs +196 -0
- package/crates/mint-core/src/orchestration/tools/files.rs +191 -16
- package/crates/mint-core/src/orchestration/tools/media.rs +37 -41
- package/crates/mint-core/src/orchestration/tools/misc.rs +3 -2
- package/crates/mint-core/src/orchestration/tools/mod.rs +2 -0
- package/crates/mint-core/src/orchestration/tools/mods.rs +161 -0
- package/crates/mint-core/src/orchestration/tools/plugins_mcp.rs +321 -74
- package/crates/mint-core/src/orchestration/tools/project.rs +1 -1
- package/crates/mint-core/src/orchestration/tools/shell.rs +124 -7
- package/crates/mint-core/src/orchestration/tools/web.rs +5 -1
- package/crates/mint-core/src/orchestration/trajectory_schema.rs +353 -0
- package/crates/mint-core/src/orchestration/truncation.rs +211 -0
- package/crates/mint-core/src/orchestration/verification.rs +36 -6
- package/crates/mint-core/src/orchestration/workspace_helpers.rs +57 -23
- package/crates/mint-core/src/prompts/agent.rs +47 -41
- package/crates/mint-core/src/prompts/tool_catalog.rs +158 -38
- package/crates/mint-core/src/search/knowledge.rs +7 -1
- package/crates/mint-core/src/search/linked_folders/index.rs +177 -13
- package/crates/mint-core/src/search/linked_folders.rs +83 -2
- package/crates/mint-core/src/search/web_search.rs +44 -3
- package/crates/mint-core/src/slash/catalog.rs +1 -1
- package/crates/mint-core/src/slash/mod.rs +638 -12
- package/crates/mint-core/src/slash/mods.rs +155 -0
- package/crates/mint-core/src/swarm/batch.rs +643 -0
- package/crates/mint-core/src/swarm/dossier.rs +152 -0
- package/crates/mint-core/src/swarm/labels.rs +100 -0
- package/crates/mint-core/src/swarm/mod.rs +158 -0
- package/crates/mint-core/src/swarm/permissions.rs +167 -0
- package/crates/mint-core/src/system/auth.rs +156 -7
- package/crates/mint-core/src/system/bg_shell.rs +1197 -95
- package/crates/mint-core/src/system/config.rs +97 -13
- package/crates/mint-core/src/system/html_preview.rs +398 -0
- package/crates/mint-core/src/system/mint_web.rs +185 -0
- package/crates/mint-core/src/system/release_notes.rs +18 -0
- package/crates/mint-core/src/system/shell.rs +200 -16
- package/crates/mint-core/src/system/workspace.rs +276 -8
- package/crates/mint-core/src/system/workspace_history.rs +604 -0
- package/crates/mint-core/src/system.rs +4 -0
- package/crates/mint-core/tests/background_retention.rs +34 -0
- package/crates/mint-core/tests/background_shutdown.rs +24 -0
- package/crates/mint-core/tests/library_http.rs +209 -0
- package/crates/mint-core/tests/mcp_contract.rs +283 -0
- package/crates/mint-core/tests/mcp_stdio.rs +11 -10
- package/crates/mint-core/tests/media_model_catalog_http.rs +403 -0
- package/crates/mint-core/tests/memory_persistence.rs +27 -0
- package/crates/mint-core/tests/mods_http.rs +215 -0
- package/crates/mint-core/tests/terminal_shutdown.rs +109 -0
- package/crates/mint-mod-runtime/Cargo.toml +18 -0
- package/crates/mint-mod-runtime/src/lib.rs +507 -0
- package/crates/mint-mod-runtime/src/sdk.js +56 -0
- package/crates/mint-mod-runtime/src/test_sdk.js +32 -0
- package/crates/mint-mod-runtime/src/testing.rs +94 -0
- package/crates/mint-mod-runtime/tests/runtime.rs +156 -0
- package/docs/mods/AUTHORING.md +61 -0
- package/docs/mods/README.md +139 -0
- package/docs/mods/TESTING.md +56 -0
- package/docs/mods/mint-mods.d.ts +66 -0
- package/examples/device-mcp/README.md +22 -0
- package/examples/device-mcp/contract.md +49 -0
- package/examples/device-mcp/mock-device.mjs +66 -0
- package/examples/device-mcp/server.mjs +48 -0
- package/examples/device-mcp/server.test.mjs +78 -0
- package/examples/mods/task-checklist/README.md +1 -0
- package/examples/mods/task-checklist/main.ts +17 -0
- package/examples/mods/task-checklist/manifest.json +1 -0
- package/examples/mods/task-checklist/tests/checklist.test.ts +15 -0
- package/examples/mods/token-meter/README.md +1 -0
- package/examples/mods/token-meter/main.ts +8 -0
- package/examples/mods/token-meter/manifest.json +1 -0
- package/examples/mods/tool-guard/README.md +1 -0
- package/examples/mods/tool-guard/main.ts +9 -0
- package/examples/mods/tool-guard/manifest.json +1 -0
- package/out/web/assets/ArtifactPreviewPanel-DAT_Y7i0.css +1 -0
- package/out/web/assets/ArtifactPreviewPanel-S0dPfYFx.js +2 -0
- package/out/web/assets/CalculationCard-CRjP3E1j.js +1 -0
- package/out/web/assets/CliSessionsView-C3Br2v5Y.css +1 -0
- package/out/web/assets/CliSessionsView-MI8kXMAb.js +1 -0
- package/out/web/assets/CodeReviewPage-CUJceQme.css +1 -0
- package/out/web/assets/CodeReviewPage-VCUgPla_.js +2 -0
- package/out/web/assets/CommandPalette-BD8SlTE5.js +1 -0
- package/out/web/assets/ImageGenCard-BCXxkVJX.js +1 -0
- package/out/web/assets/ImageSearchCard-N3yQOr8Z.js +1 -0
- package/out/web/assets/ImageStudioPanel-BP7N4rLr.js +1 -0
- package/out/web/assets/LibraryPage-DAxUTAg7.css +1 -0
- package/out/web/assets/LibraryPage-WlviRdR8.js +2 -0
- package/out/web/assets/LinkedFoldersView-CKRgroWK.js +1 -0
- package/out/web/assets/McpRegistryPicker-CoS83vtc.js +1 -0
- package/out/web/assets/McpServersView-D3wHnuHg.js +1 -0
- package/out/web/assets/MermaidCard-NqrHdyJW.js +2 -0
- package/out/web/assets/MintDashboard-B2DJsDDO.css +1 -0
- package/out/web/assets/MintDashboard-COw_xol7.js +63 -0
- package/out/web/assets/PluginsView-jBYmcKh4.js +1 -0
- package/out/web/assets/RewindModal-DempuDod.js +1 -0
- package/out/web/assets/ScheduledTasksView-5uw9-V9H.js +1 -0
- package/out/web/assets/SelectField-DXBQtrUK.js +1 -0
- package/out/web/assets/SelectField-lFEkkWCU.css +1 -0
- package/out/web/assets/SettingsWindow-2YP3yj7s.js +4 -0
- package/out/web/assets/SettingsWindow-Dz8LQVgD.css +1 -0
- package/out/web/assets/SkillsView-C-gp9J7m.js +2 -0
- package/out/web/assets/StockCard-BDMCe7mx.js +1 -0
- package/out/web/assets/ToolSurfacePage-B0J_q0Jl.js +38 -0
- package/out/web/assets/ToolSurfacePage-CRIQ1owD.css +1 -0
- package/out/web/assets/UiFeatureCard-6BwxTOCe.js +1 -0
- package/out/web/assets/UiGridCard-DvZcLNxb.js +1 -0
- package/out/web/assets/UiMockupWidget-DD73QWg1.js +1 -0
- package/out/web/assets/VeoStudioPanel-DfsOJKv0.js +4 -0
- package/out/web/assets/WeatherCard-CPucIfq8.js +1 -0
- package/out/web/assets/WorkspacePanel-BfHKkulU.js +1 -0
- package/out/web/assets/WorkspacePdfPreview-Dx_lkjNu.js +2 -0
- package/out/web/assets/abnfDiagram-VCTEODGH-BOo3Ckng.js +1 -0
- package/out/web/assets/architecture-7GRP2DOG-ZOwheW3n.js +1 -0
- package/out/web/assets/architectureDiagram-5GKGNRK7-DC2FDzVd.js +36 -0
- package/out/web/assets/blockDiagram-I7D4REHJ-BrKFWdAH.js +129 -0
- package/out/web/assets/c4Diagram-7LVT6UL2-BHTHK1Yd.js +38 -0
- package/out/web/assets/chunk-2Q5K7J3B-D2JLPQzF.js +1 -0
- package/out/web/assets/chunk-4HAMMTFA-BYFkZwNj.js +62 -0
- package/out/web/assets/chunk-5VM5RSS4-BZ2oBPYQ.js +15 -0
- package/out/web/assets/chunk-75Z2AOVW-BSKfSKSA.js +2 -0
- package/out/web/assets/chunk-DU6HZSFF-vIhsiW6n.js +128 -0
- package/out/web/assets/chunk-F27PBJKO-BlYpW9xq.js +1 -0
- package/out/web/assets/chunk-FOHPRMQF-JXEeeJ9r.js +161 -0
- package/out/web/assets/chunk-GMAD6QVW-BIBz_Ug5.js +72 -0
- package/out/web/assets/chunk-GVQU2GXP-NPSHxeqC.js +1 -0
- package/out/web/assets/chunk-IMKFNOWR-YlJK8_Fp.js +231 -0
- package/out/web/assets/chunk-JWPE2WC7-BeEMUFDw.js +1 -0
- package/out/web/assets/chunk-L3NEJ4N5-DMYi4-af.js +1 -0
- package/out/web/assets/chunk-OSK3NFVY-Begd3-jA.js +10 -0
- package/out/web/assets/chunk-P2QGCYS3-D1I4xFHN.js +1 -0
- package/out/web/assets/chunk-POPQ4Y6H-CafZZzNE.js +1 -0
- package/out/web/assets/chunk-PWAF6VOD-Dwh6_Lnt.js +1 -0
- package/out/web/assets/chunk-SHT3W25Y-B0XrCSEb.js +168 -0
- package/out/web/assets/chunk-SVP7TREG-CxLsddxC.js +88 -0
- package/out/web/assets/chunk-TICWLB2K-y156QInb.js +206 -0
- package/out/web/assets/chunk-XXDRQBXY-B9YlhOkE.js +1 -0
- package/out/web/assets/chunk-Y2CYZVJY-BxCWjNVG.js +1 -0
- package/out/web/assets/classDiagram-ZZMXUADV-BgJ5WtSp.js +1 -0
- package/out/web/assets/classDiagram-v2-VYDZK3BY-BgJ5WtSp.js +1 -0
- package/out/web/assets/config-CvIO5hkn.js +2 -0
- package/out/web/assets/config-DqXJXeZM.css +1 -0
- package/out/web/assets/core-Mi3s5D4_.js +1 -0
- package/out/web/assets/cose-bilkent-JH36ORCC-qlna31ty.js +1 -0
- package/out/web/assets/cynefin-OW5HDTMX-SMVvrLf-.js +1 -0
- package/out/web/assets/cynefinDiagram-5FMLGOSQ-rZznN24T.js +62 -0
- package/out/web/assets/cytoscape.esm-DWtAUG0r.js +321 -0
- package/out/web/assets/dagre-CnWJJM5f.js +1 -0
- package/out/web/assets/dagre-GXQ25YYZ-BOToydFu.js +4 -0
- package/out/web/assets/diagram-S7CK7UJ4-TMVaGQEJ.js +30 -0
- package/out/web/assets/diagram-UQ7AKVKN-C2JK-GP2.js +41 -0
- package/out/web/assets/diagram-VSXAHHWV-Cw8VSi2K.js +3 -0
- package/out/web/assets/diagram-VX7I27RA-DXp4fKk9.js +24 -0
- package/out/web/assets/diagram-Z3DM3KII-CzSicYiW.js +24 -0
- package/out/web/assets/dist-9ISJ7r-g.js +1 -0
- package/out/web/assets/dist-js-BV3mI7uw.js +1 -0
- package/out/web/assets/ebnfDiagram-PWID7BFC-Dqj-zqPu.js +1 -0
- package/out/web/assets/erDiagram-RLTQ6QDP-DZwFZAuD.js +99 -0
- package/out/web/assets/event-D7D-EBy9.js +1 -0
- package/out/web/assets/eventmodeling-NTZA5JFV-C0O-Lvgp.js +1 -0
- package/out/web/assets/flowDiagram-HODETNUW-uqCHJond.js +1 -0
- package/out/web/assets/ganttDiagram-EL5Y4UJY-Da4ULXTl.js +292 -0
- package/out/web/assets/gitGraph-4MIJSDKK-B9wNFZIP.js +1 -0
- package/out/web/assets/gitGraphDiagram-WWUBYQGX-RjrhB0MP.js +106 -0
- package/out/web/assets/graphlib-Bh9gHply.js +1 -0
- package/out/web/assets/index-BmpulIkg.js +168 -0
- package/out/web/assets/index-CkvBwhX_.css +1 -0
- package/out/web/assets/info-A6RAGUB7-B3dfCpeY.js +1 -0
- package/out/web/assets/infoDiagram-27XIBGKW-QVWkLVx7.js +2 -0
- package/out/web/assets/ishikawaDiagram-5VMMS53U-CLFNIRI9.js +70 -0
- package/out/web/assets/journeyDiagram-3NMN7TZE-fgOQadYF.js +139 -0
- package/out/web/assets/jsx-runtime-DmUwWVTj.js +1 -0
- package/out/web/assets/kanban-definition-UXKFOSKX-G3Q_9g9O.js +89 -0
- package/out/web/assets/katex-MCdQaEAD.js +257 -0
- package/out/web/assets/mermaid-parser.core-v3Jm7nco.js +7 -0
- package/out/web/assets/mermaid.core-DTEjLUA1.js +44 -0
- package/out/web/assets/mindmap-definition-YA3MSWOX-C_D42_fF.js +96 -0
- package/out/web/assets/modelManager-BPLycQrN.js +2 -0
- package/out/web/assets/oauthManager-BUK7ic7q.js +1 -0
- package/out/web/assets/packet-AYTQ26CC-B-R-SHlF.js +1 -0
- package/out/web/assets/pdf-Bcahc2yC.js +56 -0
- package/out/web/assets/pdf.worker.min-Dkey6ZUl.mjs +27 -0
- package/out/web/assets/pegDiagram-XKGWAZYB-Da2q_giz.js +1 -0
- package/out/web/assets/pie-WAS4IAKB-BC8F0N7-.js +1 -0
- package/out/web/assets/pieDiagram-E7YTZNPT-Iy9REJNC.js +39 -0
- package/out/web/assets/quadrantDiagram-AXDQQJYC-ztsiYw7h.js +7 -0
- package/out/web/assets/radar-RG4KPBEZ-B_1P8Z_z.js +1 -0
- package/out/web/assets/railroad-74A4TZTK-DuTqczSo.js +1 -0
- package/out/web/assets/railroad-abnf-HS5TGJTU-Df29WLmp.js +1 -0
- package/out/web/assets/railroad-ebnf-LZEXJU2U-ePFMo-qp.js +1 -0
- package/out/web/assets/railroad-peg-WCYAUIDC-DYXLW4_E.js +1 -0
- package/out/web/assets/railroadDiagram-O6MQD6OU-LStnZf2S.js +1 -0
- package/out/web/assets/requirementDiagram-BXWQKSXE-DmzonMH-.js +84 -0
- package/out/web/assets/rolldown-runtime-CNOWq4Kh.js +1 -0
- package/out/web/assets/rough.esm-CNnFptCR.js +1 -0
- package/out/web/assets/sankeyDiagram-P5KCCOFB-B8vjmUU1.js +40 -0
- package/out/web/assets/sequenceDiagram-WJ2MYXX4-CTnplOAX.js +162 -0
- package/out/web/assets/sizeCapture-INFHLROL-C8Q8DbV5.js +1 -0
- package/out/web/assets/src-CRDfRlHM.js +1 -0
- package/out/web/assets/stateDiagram-D77RDMKH-BFrIaLdI.js +1 -0
- package/out/web/assets/stateDiagram-v2-MP3YSRHH-uf3kdNW4.js +1 -0
- package/out/web/assets/studio-BBZQ_-QK.js +1 -0
- package/out/web/assets/swimlanes-42K2YHIH-BXGngUNU.js +1 -0
- package/out/web/assets/swimlanesDiagram-VR7AAH4N-Y8q5bQce.js +8 -0
- package/out/web/assets/timeline-definition-24CTP7MA-CegH7n43.js +120 -0
- package/out/web/assets/treeView-Q6P3EWNA-DTpJv2Tw.js +1 -0
- package/out/web/assets/treemap-WGGIJYW6-i8M9iJU6.js +1 -0
- package/out/web/assets/vennDiagram-4TSXK5OY-Dpzo1S8U.js +34 -0
- package/out/web/assets/wardley-WFR3VGLG-BrNsgtfw.js +1 -0
- package/out/web/assets/wardleyDiagram-VM6X3IG4-lQ92LFE1.js +78 -0
- package/out/web/assets/window-CkUOP7t0.js +1 -0
- package/out/web/assets/workspaces-SYPrmbgC.js +1 -0
- package/out/web/assets/xychartDiagram-S5SC5T6Z-BaOaEoBd.js +7 -0
- package/out/web/index-web.html +4 -3
- package/out/web/index.html +4 -3
- package/out/web/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Add-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Add-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/out/web/pdfjs/cmaps/B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/B5pc-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/B5pc-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS1-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS1-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS2-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/CNS2-V.bcmap +3 -0
- package/out/web/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
- package/out/web/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Ext-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Ext-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GB-H.bcmap +4 -0
- package/out/web/pdfjs/cmaps/GB-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBT-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBT-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Hankaku.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Hiragana.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Katakana.bcmap +0 -0
- package/out/web/pdfjs/cmaps/LICENSE +36 -0
- package/out/web/pdfjs/cmaps/NWP-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/NWP-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/Roman.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/out/web/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/V.bcmap +0 -0
- package/out/web/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
- package/out/web/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
- package/out/web/pdfjs/standard_fonts/LICENSE_LIBERATION +363 -0
- package/out/web/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
- package/out/web/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/out/web/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
- package/out/web/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
- package/out/web/pdfjs/wasm/LICENSE_JBIG2 +196 -0
- package/out/web/pdfjs/wasm/LICENSE_OPENJPEG +39 -0
- package/out/web/pdfjs/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/out/web/pdfjs/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
- package/out/web/pdfjs/wasm/LICENSE_PDFJS_QCMS +19 -0
- package/out/web/pdfjs/wasm/LICENSE_QCMS +21 -0
- package/out/web/pdfjs/wasm/jbig2.wasm +0 -0
- package/out/web/pdfjs/wasm/jbig2_nowasm_fallback.js +15 -0
- package/out/web/pdfjs/wasm/openjpeg.wasm +0 -0
- package/out/web/pdfjs/wasm/openjpeg_nowasm_fallback.js +17 -0
- package/out/web/pdfjs/wasm/qcms_bg.wasm +0 -0
- package/out/web/pdfjs/wasm/quickjs-eval.js +16 -0
- package/out/web/pdfjs/wasm/quickjs-eval.wasm +0 -0
- package/package.json +74 -23
- package/shared-modules/.github/workflows/ci.yml +120 -0
- package/shared-modules/.github/workflows/update.yaml +28 -0
- package/slash-commands.json +14 -3
- package/src/bin/auto-build.js +66 -0
- package/src/bin/desktop.js +113 -0
- package/src/bin/desktop.test.js +113 -0
- package/src/bin/index.js +21 -25
- package/src/bin/index.test.js +89 -0
- package/src/bin/measure-effects.mjs +53 -0
- package/src/bin/package.test.js +28 -0
- package/src/bin/pdfjs-assets.mjs +31 -0
- package/src/bin/release-notes.test.js +84 -0
- package/src/bin/styles.test.js +20 -0
- package/src/bin/web.js +5 -0
- package/src/bin/web.test.js +39 -0
- package/src/renderer/index.html +0 -2
- package/src/renderer/node_modules/.vite/vitest/CACHEDIR.TAG +3 -0
- package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/src/renderer/shared/agentProgress.ts +42 -0
- package/src/renderer/shared/components/Settings/AgentsTab.tsx +76 -11
- package/src/renderer/shared/components/Settings/AudioTab.tsx +8 -7
- package/src/renderer/shared/components/Settings/AutomationTab.tsx +59 -2
- package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +18 -12
- package/src/renderer/shared/components/Settings/CustomProviderLogoPicker.test.tsx +65 -0
- package/src/renderer/shared/components/Settings/CustomProviderLogoPicker.tsx +456 -0
- package/src/renderer/shared/components/Settings/GeneralTab.tsx +72 -113
- package/src/renderer/shared/components/Settings/MemoryTab.test.tsx +37 -0
- package/src/renderer/shared/components/Settings/MemoryTab.tsx +71 -31
- package/src/renderer/shared/components/Settings/NotificationsTab.test.tsx +15 -0
- package/src/renderer/shared/components/Settings/NotificationsTab.tsx +84 -0
- package/src/renderer/shared/components/Settings/PluginsTab.tsx +101 -24
- package/src/renderer/shared/components/Settings/ProfileTab.tsx +1 -1
- package/src/renderer/shared/components/Settings/SettingsWindow.tsx +796 -0
- package/src/renderer/shared/components/Settings/ThemeTab.tsx +31 -11
- package/src/renderer/shared/components/activity/AgentActivityDrawer.tsx +220 -0
- package/src/renderer/shared/components/activity/AgentActivityTable.tsx +340 -0
- package/src/renderer/shared/components/activity/McpToolResults.tsx +118 -0
- package/src/renderer/shared/components/activity/PlanChecklistWidget.tsx +77 -0
- package/src/renderer/shared/components/activity/RunSummaryDashboard.test.tsx +127 -0
- package/src/renderer/shared/components/activity/RunSummaryDashboard.tsx +222 -0
- package/src/renderer/shared/components/activity/SubagentDagView.test.ts +123 -0
- package/src/renderer/shared/components/activity/SubagentDagView.tsx +420 -0
- package/src/renderer/shared/components/activity/SubagentStatusStrip.test.tsx +82 -0
- package/src/renderer/shared/components/activity/SubagentStatusStrip.tsx +107 -0
- package/src/renderer/shared/components/activity/ViewedImages.tsx +140 -0
- package/src/renderer/shared/components/app/AuthGate.tsx +227 -0
- package/src/renderer/shared/components/app/ChunkErrorBoundary.tsx +186 -0
- package/src/renderer/shared/components/app/CommandPalette.tsx +593 -0
- package/src/renderer/shared/components/app/DashboardSidebar.tsx +1230 -0
- package/src/renderer/shared/components/app/DesktopTitlebar.tsx +354 -0
- package/src/renderer/shared/components/app/ErrorNotice.tsx +29 -0
- package/src/renderer/shared/components/app/MintDashboard.tsx +2182 -0
- package/src/renderer/shared/components/app/ModalErrorBoundary.tsx +127 -0
- package/src/renderer/shared/components/cards/CalculationCard.tsx +86 -0
- package/src/renderer/shared/components/cards/ImageGenCard.tsx +146 -0
- package/src/renderer/shared/components/cards/ImageSearchCard.tsx +145 -0
- package/src/renderer/shared/components/cards/MermaidCard.tsx +283 -0
- package/src/renderer/shared/components/cards/StockCard.tsx +152 -0
- package/src/renderer/shared/components/cards/ToolResultCards.tsx +86 -0
- package/src/renderer/shared/components/cards/UiFeatureCard.tsx +267 -0
- package/src/renderer/shared/components/cards/UiGridCard.tsx +188 -0
- package/src/renderer/shared/components/cards/WeatherCard.tsx +224 -0
- package/src/renderer/shared/components/chat/ApprovalCard.test.tsx +24 -0
- package/src/renderer/shared/components/chat/ApprovalCard.tsx +347 -0
- package/src/renderer/shared/components/chat/ChatCodeBlock.tsx +109 -0
- package/src/renderer/shared/components/chat/ChatMessageItem.test.tsx +145 -0
- package/src/renderer/shared/components/chat/ChatMessageItem.tsx +242 -0
- package/src/renderer/shared/components/chat/ChatPanel.test.tsx +31 -0
- package/src/renderer/shared/components/chat/ChatPanel.tsx +1999 -0
- package/src/renderer/shared/components/chat/CollapsiblePasteInput.tsx +90 -0
- package/src/renderer/shared/components/chat/ContextCompactionStatus.tsx +17 -0
- package/src/renderer/shared/components/chat/DiffReviewModal.tsx +565 -0
- package/src/renderer/shared/components/chat/GeminiLiveOverlay.css +86 -0
- package/src/renderer/shared/components/chat/GeminiLiveOverlay.test.tsx +24 -0
- package/src/renderer/shared/components/chat/GeminiLiveOverlay.tsx +112 -0
- package/src/renderer/shared/components/chat/ModelSelectorPopover.tsx +936 -0
- package/src/renderer/shared/components/chat/QueuedMessagesBanner.test.tsx +89 -0
- package/src/renderer/shared/components/chat/QueuedMessagesBanner.tsx +201 -0
- package/src/renderer/shared/components/chat/RewindModal.tsx +414 -0
- package/src/renderer/shared/components/chat/SlashChoicePanel.tsx +88 -0
- package/src/renderer/shared/components/chat/SlashSuggestions.test.tsx +33 -0
- package/src/renderer/shared/components/chat/SlashSuggestions.tsx +346 -0
- package/src/renderer/shared/components/chat/SourcesBlock.tsx +435 -0
- package/src/renderer/shared/components/chat/ThinkingBlock.tsx +102 -0
- package/src/renderer/shared/components/chat/TurnFileChanges.test.tsx +86 -0
- package/src/renderer/shared/components/chat/TurnFileChanges.tsx +430 -0
- package/src/renderer/shared/components/chat/VirtualChatHistory.tsx +82 -0
- package/src/renderer/shared/components/chat/VoicePill.css +85 -0
- package/src/renderer/shared/components/chat/VoicePill.d.ts +12 -0
- package/src/renderer/shared/components/chat/VoicePill.jsx +191 -0
- package/src/renderer/shared/components/chat/VoicePill.test.tsx +22 -0
- package/src/renderer/shared/components/extensions/CliSessionsView.test.tsx +125 -0
- package/src/renderer/shared/components/extensions/CliSessionsView.tsx +545 -0
- package/src/renderer/shared/components/extensions/LinkedFoldersView.tsx +614 -0
- package/src/renderer/shared/components/extensions/McpRegistryPicker.tsx +302 -0
- package/src/renderer/shared/components/extensions/McpServersView.tsx +1040 -0
- package/src/renderer/shared/components/extensions/McpToolAllowlist.tsx +182 -0
- package/src/renderer/shared/components/extensions/ModUi.test.tsx +70 -0
- package/src/renderer/shared/components/extensions/ModsPanel.tsx +208 -0
- package/src/renderer/shared/components/extensions/PluginsView.tsx +325 -0
- package/src/renderer/shared/components/extensions/ScheduledTasksView.tsx +614 -0
- package/src/renderer/shared/components/extensions/SkillsView.test.tsx +31 -0
- package/src/renderer/shared/components/extensions/SkillsView.tsx +363 -0
- package/src/renderer/shared/components/studio/ImageStudioPanel.tsx +740 -0
- package/src/renderer/shared/components/studio/LibraryItemCard.tsx +72 -0
- package/src/renderer/shared/components/studio/LibraryPage.tsx +165 -0
- package/src/renderer/shared/components/studio/LibraryPreview.tsx +59 -0
- package/src/renderer/shared/components/studio/VeoStudioPanel.tsx +708 -0
- package/src/renderer/shared/components/ui/GlideSelect.css +139 -0
- package/src/renderer/shared/components/ui/ProviderBrandIcon.test.tsx +67 -0
- package/src/renderer/shared/components/ui/ProviderBrandIcon.tsx +167 -0
- package/src/renderer/shared/components/ui/README.md +52 -0
- package/src/renderer/shared/components/ui/SelectField.test.tsx +27 -0
- package/src/renderer/shared/components/ui/SelectField.tsx +506 -0
- package/src/renderer/shared/components/ui/button.tsx +37 -0
- package/src/renderer/shared/components/ui/error-recovery.css +35 -0
- package/src/renderer/shared/components/ui/error-recovery.tsx +35 -0
- package/src/renderer/shared/components/ui/voice-powered-orb.css +6 -0
- package/src/renderer/shared/components/ui/voice-powered-orb.tsx +374 -0
- package/src/renderer/shared/components/workspace/ArtifactPreviewPanel.tsx +700 -0
- package/src/renderer/shared/components/workspace/BackgroundTerminals.test.tsx +63 -0
- package/src/renderer/shared/components/workspace/BackgroundTerminals.tsx +212 -0
- package/src/renderer/shared/components/workspace/CodeReviewPage.tsx +707 -0
- package/src/renderer/shared/components/workspace/GitBranchSelector.tsx +442 -0
- package/src/renderer/shared/components/workspace/SessionSources.tsx +113 -0
- package/src/renderer/shared/components/workspace/TerminalDock.tsx +244 -0
- package/src/renderer/shared/components/workspace/ToolSurfacePage.test.tsx +68 -0
- package/src/renderer/shared/components/workspace/ToolSurfacePage.tsx +819 -0
- package/src/renderer/shared/components/workspace/ToolsPanelToggle.tsx +13 -0
- package/src/renderer/shared/components/workspace/WorkspaceFileInfo.tsx +28 -0
- package/src/renderer/shared/components/workspace/WorkspaceMediaPreview.tsx +17 -0
- package/src/renderer/shared/components/workspace/WorkspacePaneResizer.tsx +92 -0
- package/src/renderer/shared/components/workspace/WorkspacePdfPreview.tsx +89 -0
- package/src/renderer/shared/components/workspace/WorkspacePreviewActions.test.tsx +89 -0
- package/src/renderer/shared/components/workspace/WorkspacePreviewActions.tsx +19 -0
- package/src/renderer/shared/components/workspace/WorkspaceSelector.tsx +246 -0
- package/src/renderer/shared/components/workspace/background-terminals.css +292 -0
- package/src/renderer/shared/components/workspace/workspace-selector.css +330 -0
- package/src/renderer/shared/constants/config.ts +37 -1
- package/src/renderer/shared/constants/slashCommands.ts +1 -1
- package/src/renderer/shared/conversation/coordinator.test.ts +46 -0
- package/src/renderer/shared/conversation/coordinator.ts +50 -2
- package/src/renderer/shared/conversation/lifecycle.test.ts +524 -0
- package/src/renderer/shared/conversation/lifecycle.ts +575 -0
- package/src/renderer/shared/conversation/projectNavigation.test.ts +123 -0
- package/src/renderer/shared/conversation/projectNavigation.ts +50 -0
- package/src/renderer/shared/conversation/sourcesTransport.ts +27 -0
- package/src/renderer/shared/conversation/syncView.test.ts +1 -34
- package/src/renderer/shared/conversation/syncView.ts +0 -37
- package/src/renderer/shared/conversation/transport.test.ts +183 -0
- package/src/renderer/shared/conversation/transport.ts +201 -0
- package/src/renderer/shared/conversation/useConversationCoordinator.ts +67 -79
- package/src/renderer/shared/css/agent-observability.css +90 -30
- package/src/renderer/shared/css/auth-gate.css +112 -13
- package/src/renderer/shared/css/chat-ui-cards.css +35 -35
- package/src/renderer/shared/css/code-review.css +119 -86
- package/src/renderer/shared/css/code-sessions.css +37 -10
- package/src/renderer/shared/css/collapsed-paste.css +35 -0
- package/src/renderer/shared/css/effects.css +15 -0
- package/src/renderer/shared/css/error-notice.css +60 -0
- package/src/renderer/shared/css/file-changes.css +167 -5
- package/src/renderer/shared/css/library.css +476 -0
- package/src/renderer/shared/css/management-views.css +216 -37
- package/src/renderer/shared/css/mcp-results.css +54 -0
- package/src/renderer/shared/css/model-selector.css +163 -105
- package/src/renderer/shared/css/mods.css +77 -0
- package/src/renderer/shared/css/notification-notice.css +28 -0
- package/src/renderer/shared/css/queued-messages.css +221 -0
- package/src/renderer/shared/css/session-sources.css +28 -0
- package/src/renderer/shared/css/settings/agents.css +2 -2
- package/src/renderer/shared/css/settings/base.css +1260 -0
- package/src/renderer/shared/css/settings/general.css +384 -92
- package/src/renderer/shared/css/settings/memory.css +154 -0
- package/src/renderer/shared/css/settings/notifications.css +11 -0
- package/src/renderer/shared/css/settings/plugins.css +8 -8
- package/src/renderer/shared/css/settings/theme.css +49 -32
- package/src/renderer/shared/css/slash-choice.css +95 -0
- package/src/renderer/shared/css/slash-suggestions.css +68 -0
- package/src/renderer/shared/css/sources-block.css +91 -0
- package/src/renderer/shared/css/thinking-status.css +46 -0
- package/src/renderer/shared/css/tools-panel.css +7 -0
- package/src/renderer/shared/css/ui-tailwind.css +19 -0
- package/src/renderer/shared/css/viewed-images.css +104 -0
- package/src/renderer/shared/css/workspace-file-info.css +12 -0
- package/src/renderer/shared/css/workspace-media-preview.css +13 -0
- package/src/renderer/shared/env.d.ts +9 -0
- package/src/renderer/shared/fonts.css +46 -0
- package/src/renderer/shared/fonts.ts +3 -12
- package/src/renderer/shared/lib/utils.ts +6 -0
- package/src/renderer/shared/library/controller.test.ts +61 -0
- package/src/renderer/shared/library/controller.ts +57 -0
- package/src/renderer/shared/library/transport.test.ts +26 -0
- package/src/renderer/shared/library/transport.ts +60 -0
- package/src/renderer/shared/library/useLibraryFile.ts +38 -0
- package/src/renderer/shared/mods.ts +58 -0
- package/src/renderer/shared/platform.test.ts +200 -1
- package/src/renderer/shared/platform.ts +55 -4
- package/src/renderer/shared/speech/player.ts +160 -0
- package/src/renderer/shared/speech/types.ts +11 -0
- package/src/renderer/shared/theme/themeManager.test.ts +63 -0
- package/src/renderer/shared/theme/themeManager.ts +20 -5
- package/src/renderer/shared/theme/themes.ts +17 -4
- package/src/renderer/shared/theme/tokens.css +448 -51
- package/src/renderer/shared/types.ts +111 -2
- package/src/renderer/shared/utils/agentActivity.test.ts +234 -0
- package/src/renderer/shared/utils/agentActivity.ts +221 -32
- package/src/renderer/shared/utils/approval.tsx +7 -0
- package/src/renderer/shared/utils/artifactBrowser.test.ts +80 -0
- package/src/renderer/shared/utils/artifactBrowser.ts +41 -0
- package/src/renderer/shared/utils/artifacts.ts +55 -0
- package/src/renderer/shared/utils/contextCompaction.test.tsx +48 -0
- package/src/renderer/shared/utils/contextCompaction.ts +21 -0
- package/src/renderer/shared/utils/effectVisibility.ts +9 -0
- package/src/renderer/shared/utils/externalLinks.ts +91 -0
- package/src/renderer/shared/utils/lazyWithRetry.ts +13 -0
- package/src/renderer/shared/utils/markdown.tsx +172 -38
- package/src/renderer/shared/utils/markdown.webImages.test.tsx +124 -2
- package/src/renderer/shared/utils/mcpResults.test.tsx +114 -0
- package/src/renderer/shared/utils/modViewport.ts +7 -0
- package/src/renderer/shared/utils/nativeRecordingSession.test.ts +61 -0
- package/src/renderer/shared/utils/nativeRecordingSession.ts +46 -0
- package/src/renderer/shared/utils/notificationSettings.test.ts +14 -0
- package/src/renderer/shared/utils/notificationSettings.ts +23 -0
- package/src/renderer/shared/utils/notifications.test.ts +51 -0
- package/src/renderer/shared/utils/notifications.ts +54 -0
- package/src/renderer/shared/utils/pastedText.test.ts +20 -0
- package/src/renderer/shared/utils/pastedText.ts +13 -0
- package/src/renderer/shared/utils/pdfRange.ts +16 -0
- package/src/renderer/shared/utils/previewObjectUrls.ts +20 -0
- package/src/renderer/shared/utils/progressCache.test.ts +32 -0
- package/src/renderer/shared/utils/sessionSources.test.ts +71 -0
- package/src/renderer/shared/utils/sessionSources.ts +36 -0
- package/src/renderer/shared/utils/slashCommandProcessor.ts +5 -2
- package/src/renderer/shared/utils/sourceAttachments.ts +28 -0
- package/src/renderer/shared/utils/speech.ts +65 -9
- package/src/renderer/shared/utils/syntaxHighlight.test.tsx +22 -0
- package/src/renderer/shared/utils/syntaxHighlight.tsx +26 -0
- package/src/renderer/shared/utils/useGeminiLiveVoice.ts +49 -5
- package/src/renderer/shared/utils/useLatestCallback.ts +9 -0
- package/src/renderer/shared/utils/useNativeVoiceInput.ts +95 -73
- package/src/renderer/shared/utils/useSessionSources.ts +37 -0
- package/src/renderer/shared/utils/viewedImages.test.ts +129 -0
- package/src/renderer/shared/utils/viewedImages.ts +97 -0
- package/src/renderer/shared/utils/workspaceDrag.ts +30 -0
- package/src/renderer/shared/utils/workspaceImage.ts +17 -0
- package/src/renderer/shared/utils/workspaceListPreferences.test.ts +64 -0
- package/src/renderer/shared/utils/workspaceListPreferences.ts +54 -0
- package/src/renderer/shared/utils/workspaceMedia.ts +41 -0
- package/src/renderer/shared/utils/workspacePane.test.ts +33 -0
- package/src/renderer/shared/utils/workspacePane.ts +20 -0
- package/src/renderer/shared/utils/workspacePreview.test.ts +169 -0
- package/src/renderer/shared/utils/workspacePreview.ts +47 -0
- package/src/renderer/shared/utils/workspaceSnapshot.test.ts +49 -0
- package/src/renderer/shared/utils/workspaceSnapshot.ts +26 -0
- package/src/renderer/shared/utils/workspaces.ts +11 -0
- package/src/renderer/shared/workspaceUndo.ts +88 -0
- package/src/renderer/src/App.tsx +15 -9
- package/src/renderer/src/components/ChatPanel.tsx +1 -1
- package/src/renderer/src/components/DashboardSidebar.tsx +2 -2
- package/src/renderer/src/components/ImageStudioPanel.tsx +1 -1
- package/src/renderer/src/components/LiveTranslateControls.tsx +65 -0
- package/src/renderer/src/components/MintDashboard.tsx +1 -1
- package/src/renderer/src/components/ProactiveGlow.tsx +1 -1
- package/src/renderer/src/components/ScreenPicker.css +67 -30
- package/src/renderer/src/components/ScreenPicker.tsx +201 -60
- package/src/renderer/src/components/SettingsWindow.tsx +6 -825
- package/src/renderer/src/components/SpotlightWindow.tsx +4 -32
- package/src/renderer/src/components/VeoStudioPanel.tsx +1 -1
- package/src/renderer/src/components/WorkspacePanel.tsx +261 -38
- package/src/renderer/src/components/browser-shell.css +27 -27
- package/src/renderer/src/components/browser-suggestions-popup.css +9 -9
- package/src/renderer/src/components/liveTranslateFrames.test.ts +26 -5
- package/src/renderer/src/components/liveTranslateFrames.ts +18 -7
- package/src/renderer/src/components/liveTranslateLanguage.ts +6 -0
- package/src/renderer/src/css/app-shell.css +69 -234
- package/src/renderer/src/css/chat.css +207 -494
- package/src/renderer/src/css/desktop-tools.css +6 -139
- package/src/renderer/src/css/misc.css +0 -52
- package/src/renderer/src/css/sidebar-workspace.css +171 -94
- package/src/renderer/src/css/spotlight.css +2 -2
- package/src/renderer/src/css/tool-surfaces.css +387 -61
- package/src/renderer/src/css/widget.css +7 -6
- package/src/renderer/src/env.d.ts +14 -9
- package/src/renderer/src/index.css +16 -64
- package/src/renderer/src/main.tsx +2 -1
- package/src/renderer/src/proactiveSuggestions.ts +29 -0
- package/src/renderer/src/tauri.ts +195 -337
- package/src/renderer/src/voiceInput.ts +5 -2
- package/src/renderer/src-web/App.tsx +6 -8
- package/src/renderer/src-web/components/ChatPanel.tsx +1 -1
- package/src/renderer/src-web/components/DashboardSidebar.tsx +2 -2
- package/src/renderer/src-web/components/ImageStudioPanel.tsx +1 -1
- package/src/renderer/src-web/components/MintDashboard.tsx +1 -1
- package/src/renderer/src-web/components/PullToRefresh.tsx +1 -1
- package/src/renderer/src-web/components/SettingsWindow.tsx +6 -846
- package/src/renderer/src-web/components/VeoStudioPanel.tsx +1 -1
- package/src/renderer/src-web/css/app-shell.css +40 -221
- package/src/renderer/src-web/css/chat.css +207 -494
- package/src/renderer/src-web/css/misc.css +0 -52
- package/src/renderer/src-web/css/mobile.css +15 -14
- package/src/renderer/src-web/css/sidebar-workspace.css +29 -95
- package/src/renderer/src-web/env.d.ts +15 -12
- package/src/renderer/src-web/index.css +16 -64
- package/src/renderer/src-web/main.tsx +2 -1
- package/src/renderer/src-web/proactiveSuggestions.ts +3 -0
- package/src/renderer/src-web/tauri.ts +194 -361
- package/src/renderer/tests/backgroundTerminals.browser.html +81 -0
- package/src/renderer/tests/browserArtifacts.browser.html +1 -0
- package/src/renderer/tests/browserArtifacts.browser.tsx +68 -0
- package/src/renderer/tests/chatEscape.browser.html +1 -0
- package/src/renderer/tests/chatEscape.browser.tsx +25 -0
- package/src/renderer/tests/chatPanelFixture.ts +23 -0
- package/src/renderer/tests/chatPerformance.browser.html +71 -0
- package/src/renderer/tests/cliSessions.browser.html +82 -0
- package/src/renderer/tests/collapsedPaste.browser.html +70 -0
- package/src/renderer/tests/composerMenus.browser.html +116 -0
- package/src/renderer/tests/contextCompaction.browser.html +17 -0
- package/src/renderer/tests/conversationLifecycle.browser.html +70 -0
- package/src/renderer/tests/effectsPerformance.browser.html +13 -0
- package/src/renderer/tests/errorRecovery.browser.html +21 -0
- package/src/renderer/tests/fixtures/preview.webm +0 -0
- package/src/renderer/tests/glideSelect.browser.html +70 -0
- package/src/renderer/tests/glideSelect.preview.html +27 -0
- package/src/renderer/tests/library.browser.html +1 -0
- package/src/renderer/tests/library.browser.tsx +78 -0
- package/src/renderer/tests/liveOrb.browser.html +49 -0
- package/src/renderer/tests/liveVoice.browser.html +29 -0
- package/src/renderer/tests/mediaFixtures.ts +32 -0
- package/src/renderer/tests/modInput.browser.html +22 -0
- package/src/renderer/tests/sessionSources.browser.html +1 -0
- package/src/renderer/tests/sessionSources.browser.tsx +168 -0
- package/src/renderer/tests/skills.browser.html +24 -0
- package/src/renderer/tests/toolsPanel.browser.html +1 -0
- package/src/renderer/tests/toolsPanel.browser.tsx +113 -0
- package/src/renderer/tests/viewedImages.browser.html +1 -0
- package/src/renderer/tests/viewedImages.browser.tsx +93 -0
- package/src/renderer/tests/voiceDictation.browser.html +101 -0
- package/src/renderer/tests/voicePill.browser.html +80 -0
- package/src/renderer/tests/voicePill.preview.html +34 -0
- package/src/renderer/tests/webSources.browser.html +1 -0
- package/src/renderer/tests/webSources.browser.tsx +2 -0
- package/src/renderer/tests/workspaceDrop.browser.html +1 -0
- package/src/renderer/tests/workspaceDrop.browser.tsx +183 -0
- package/src/renderer/tests/workspaceExpansion.browser.html +1 -0
- package/src/renderer/tests/workspaceExpansion.browser.tsx +66 -0
- package/src/renderer/tests/workspaceRemoval.browser.html +66 -0
- package/src/renderer/tests/workspaceUndo.browser.html +100 -0
- package/src-tauri/Cargo.toml +40 -0
- package/src-tauri/build.rs +3 -0
- package/src-tauri/src/app/lifecycle.rs +320 -0
- package/src-tauri/src/app/mod.rs +4 -0
- package/src-tauri/src/app/shortcuts.rs +40 -0
- package/src-tauri/src/app/tray.rs +52 -0
- package/src-tauri/src/background/events.rs +70 -0
- package/src-tauri/src/background/headless.rs +230 -0
- package/src-tauri/src/background/mod.rs +4 -0
- package/src-tauri/src/background/proactive.rs +262 -0
- package/src-tauri/src/commands/approvals.rs +20 -0
- package/src-tauri/src/commands/auth.rs +127 -0
- package/src-tauri/src/commands/conversation.rs +668 -0
- package/src-tauri/src/commands/integrations.rs +163 -0
- package/src-tauri/src/commands/media.rs +186 -0
- package/src-tauri/src/commands/mod.rs +11 -0
- package/src-tauri/src/commands/mods.rs +6 -0
- package/src-tauri/src/commands/settings.rs +141 -0
- package/src-tauri/src/commands/voice.rs +153 -0
- package/src-tauri/src/commands/workspace.rs +539 -0
- package/src-tauri/src/lib.rs +10 -0
- package/src-tauri/src/main.rs +3 -0
- package/src-tauri/src/native/actions.rs +206 -0
- package/src-tauri/src/native/browser.rs +252 -0
- package/src-tauri/src/native/capture.rs +695 -0
- package/src-tauri/src/native/discord_rpc.rs +99 -0
- package/src-tauri/src/native/integrations.rs +126 -0
- package/src-tauri/src/native/mod.rs +12 -0
- package/src-tauri/src/native/notifications.rs +51 -0
- package/src-tauri/src/native/plugins.rs +14 -0
- package/src-tauri/src/native/system.rs +250 -0
- package/src-tauri/src/native/terminal.rs +201 -0
- package/src-tauri/src/native/updater.rs +148 -0
- package/src-tauri/src/native/windows.rs +143 -0
- package/tsconfig.json +17 -1
- package/vite.config.ts +5 -1
- package/vite.config.web.ts +6 -0
- package/.cargo/config.toml +0 -13
- package/.claude/settings.local.json +0 -182
- package/.codex +0 -0
- package/CLAUDE.md +0 -102
- package/ROADMAP.md +0 -30
- package/mint-presentation-demo.mp4 +0 -0
- package/out/web/Live2DCubismCore.js +0 -9
- package/out/web/assets/CliSessionsView-BxUVWEEL.js +0 -1
- package/out/web/assets/CliSessionsView-CBDTXuQv.css +0 -1
- package/out/web/assets/CodeReviewPage-DkMgfcos.css +0 -1
- package/out/web/assets/CodeReviewPage-jKlmLJwT.js +0 -3
- package/out/web/assets/CommandPalette-DnwPA5hy.js +0 -1
- package/out/web/assets/ImageStudioPanel-BR1XFwhR.js +0 -1
- package/out/web/assets/LinkedFoldersView-bi-CWQ-I.js +0 -1
- package/out/web/assets/McpRegistryPicker-D5tEFnyq.js +0 -1
- package/out/web/assets/McpServersView-BGG1dhFM.js +0 -1
- package/out/web/assets/MintDashboard-BIglDEWX.js +0 -20
- package/out/web/assets/MintDashboard-DSMywSgs.css +0 -1
- package/out/web/assets/ModelPanel-CbJ1PFoZ.js +0 -1
- package/out/web/assets/PicturesLibrary-CQP0fLP1.css +0 -1
- package/out/web/assets/PicturesLibrary-DoYN7T1p.js +0 -1
- package/out/web/assets/PluginsView-CU1HWXGk.js +0 -1
- package/out/web/assets/ScheduledTasksView-Bnl36y2N.js +0 -1
- package/out/web/assets/SettingsWindow-DhWLAn9T.css +0 -1
- package/out/web/assets/SettingsWindow-Dw8L01pw.js +0 -2
- package/out/web/assets/SkillsView-cnl8aY5p.js +0 -2
- package/out/web/assets/ToolSurfacePage-CgsQw6l5.css +0 -1
- package/out/web/assets/ToolSurfacePage-Cz2VJAPZ.js +0 -37
- package/out/web/assets/VeoStudioPanel-D4JnERWR.js +0 -4
- package/out/web/assets/WorkspacePanel-CbJ1PFoZ.js +0 -1
- package/out/web/assets/abnfDiagram-VCTEODGH-ByMyfanq.js +0 -1
- package/out/web/assets/architecture-7GRP2DOG-CLq2kEOB.js +0 -1
- package/out/web/assets/architectureDiagram-5GKGNRK7-6PoVSmNG.js +0 -36
- package/out/web/assets/blockDiagram-NRAW4CY4-cKw9mAKi.js +0 -129
- package/out/web/assets/c4Diagram-UCG6FXSJ-Cqy8N5Ge.js +0 -38
- package/out/web/assets/chunk-2Q5K7J3B-Dmqrq8Tp.js +0 -1
- package/out/web/assets/chunk-5VM5RSS4-BiPuE0io.js +0 -15
- package/out/web/assets/chunk-75Z2AOVW-3qybijF5.js +0 -2
- package/out/web/assets/chunk-CKBBP62Z-cIrXq6jN.js +0 -2
- package/out/web/assets/chunk-CLGD4ZFX-CndDQkww.js +0 -1
- package/out/web/assets/chunk-CacB07dV.js +0 -1
- package/out/web/assets/chunk-DSNCTWBM-Cc4NxvgD.js +0 -2
- package/out/web/assets/chunk-DU6HZSFF-drzh6GsU.js +0 -128
- package/out/web/assets/chunk-F27PBJKO-FiY35l4v.js +0 -1
- package/out/web/assets/chunk-FOHPRMQF-BaVC1uA7.js +0 -161
- package/out/web/assets/chunk-G27WJ6UU-Bjt9Il4A.js +0 -231
- package/out/web/assets/chunk-GMAD6QVW-Bppi3Ctd.js +0 -72
- package/out/web/assets/chunk-JQ64N6SF-DGg5kcEV.js +0 -1
- package/out/web/assets/chunk-JWPE2WC7-BwtYOHqU.js +0 -1
- package/out/web/assets/chunk-LCL6LL3I-CCYcjd7p.js +0 -206
- package/out/web/assets/chunk-LNGE3PJU-AdBoOWw2.js +0 -34
- package/out/web/assets/chunk-OBVCFTLP-DJeNil5M.js +0 -1
- package/out/web/assets/chunk-P2QGCYS3-lRzkRjBB.js +0 -1
- package/out/web/assets/chunk-POPQ4Y6H-DouASMBW.js +0 -1
- package/out/web/assets/chunk-PWAF6VOD-DMmD1vVf.js +0 -1
- package/out/web/assets/chunk-R7TYR2AO-CYLA5UC5.js +0 -10
- package/out/web/assets/chunk-RHFEMEQ7-BiXwEcUT.js +0 -168
- package/out/web/assets/chunk-SVP7TREG-BV-zPslF.js +0 -88
- package/out/web/assets/chunk-TEH6E4GO-B2RGEohZ.js +0 -62
- package/out/web/assets/chunk-XXDRQBXY-DnJkbUaw.js +0 -1
- package/out/web/assets/chunk-Y2CYZVJY-C9o-s6OY.js +0 -1
- package/out/web/assets/classDiagram-DTDB5LWJ-Dq0smRWk.js +0 -1
- package/out/web/assets/classDiagram-v2-JRS7N3AN-Dq0smRWk.js +0 -1
- package/out/web/assets/config-C-ZFtipU.css +0 -1
- package/out/web/assets/config-eEDngJXO.js +0 -1
- package/out/web/assets/core-hQ2VA9Ti.js +0 -1
- package/out/web/assets/cose-bilkent-JH36ORCC--UN4aw5-.js +0 -1
- package/out/web/assets/cynefin-OW5HDTMX-Cas4csHM.js +0 -1
- package/out/web/assets/cynefinDiagram-5FMLGOSQ-Bbpj66Y3.js +0 -62
- package/out/web/assets/cytoscape.esm-Df1UN4Y1.js +0 -321
- package/out/web/assets/dagre-3AP2YEHR-B0-2RDEd.js +0 -4
- package/out/web/assets/dagre-BWadQu2F.js +0 -1
- package/out/web/assets/diagram-S7CK7UJ4-BdzEjUyH.js +0 -30
- package/out/web/assets/diagram-UQ7AKVKN-CJDwyPxF.js +0 -41
- package/out/web/assets/diagram-VSXAHHWV-BxaG1r_B.js +0 -3
- package/out/web/assets/diagram-VX7I27RA-BMmUqm8f.js +0 -24
- package/out/web/assets/diagram-Z3DM3KII-CFtd03eE.js +0 -24
- package/out/web/assets/dist-BoTOASLF.js +0 -1
- package/out/web/assets/dist-js-Bf2bhoku.js +0 -1
- package/out/web/assets/ebnfDiagram-PWID7BFC-DwAen1hO.js +0 -1
- package/out/web/assets/erDiagram-SSCWMZ5O-BCZSHACj.js +0 -99
- package/out/web/assets/event-ChBVpRy0.js +0 -1
- package/out/web/assets/eventmodeling-NTZA5JFV-XHStE4E_.js +0 -1
- package/out/web/assets/flowDiagram-A5DVABFB-BLg7nEcd.js +0 -1
- package/out/web/assets/ganttDiagram-EL5Y4UJY-BAEu1Cql.js +0 -292
- package/out/web/assets/gitGraph-4MIJSDKK-r32Vyper.js +0 -1
- package/out/web/assets/gitGraphDiagram-WWUBYQGX-z9o9qt6V.js +0 -106
- package/out/web/assets/graphlib-CTR5ZhLf.js +0 -1
- package/out/web/assets/index-Btsf4L8M.css +0 -1
- package/out/web/assets/index-D8D9MeRA.js +0 -11
- package/out/web/assets/info-A6RAGUB7-BvLaC2cw.js +0 -1
- package/out/web/assets/infoDiagram-RXCK75RN-Be6WAXXw.js +0 -2
- package/out/web/assets/ishikawaDiagram-5VMMS53U-DZjoHJHC.js +0 -70
- package/out/web/assets/journeyDiagram-EYS64GPL-CtVkjkGm.js +0 -139
- package/out/web/assets/kanban-definition-3QL26DDD-CW5FMv1w.js +0 -89
- package/out/web/assets/katex-O3jvqgnU.js +0 -257
- package/out/web/assets/lucide-react-Ip3L6Jtn.js +0 -1
- package/out/web/assets/markdown-BSeeUbJH.js +0 -38
- package/out/web/assets/mermaid-parser.core-aUgCqsZ5.js +0 -7
- package/out/web/assets/mermaid.core-D57sEiSL.js +0 -11
- package/out/web/assets/mindmap-definition-FBJOCRG2-DAmSpM3a.js +0 -96
- package/out/web/assets/modelManager-tMVmJVAW.js +0 -2
- package/out/web/assets/oauthManager-9jxicDWJ.js +0 -1
- package/out/web/assets/packet-AYTQ26CC-DJ27iIoJ.js +0 -1
- package/out/web/assets/pegDiagram-XKGWAZYB-Bj3ii-gS.js +0 -1
- package/out/web/assets/pie-WAS4IAKB-DG5mCUbc.js +0 -1
- package/out/web/assets/pieDiagram-E7YTZNPT-BrJLPnDA.js +0 -39
- package/out/web/assets/prompt-latin-400-normal-BQ9zjSN8.woff2 +0 -0
- package/out/web/assets/prompt-latin-400-normal-CxU4ec_r.woff +0 -0
- package/out/web/assets/prompt-latin-500-normal-B1edBDQ9.woff +0 -0
- package/out/web/assets/prompt-latin-500-normal-CxzxEHZc.woff2 +0 -0
- package/out/web/assets/prompt-latin-600-normal-CSDDLorv.woff +0 -0
- package/out/web/assets/prompt-latin-600-normal-hKZWXsc1.woff2 +0 -0
- package/out/web/assets/prompt-latin-700-normal-BfbftDSq.woff +0 -0
- package/out/web/assets/prompt-latin-700-normal-I2gc831J.woff2 +0 -0
- package/out/web/assets/prompt-thai-400-normal-BrkKv8cO.woff2 +0 -0
- package/out/web/assets/prompt-thai-400-normal-DJypnfr3.woff +0 -0
- package/out/web/assets/prompt-thai-500-normal-C18pDUoL.woff2 +0 -0
- package/out/web/assets/prompt-thai-500-normal-D7YNqUJD.woff +0 -0
- package/out/web/assets/prompt-thai-600-normal-CYPViXds.woff +0 -0
- package/out/web/assets/prompt-thai-600-normal-MrdfU7zR.woff2 +0 -0
- package/out/web/assets/prompt-thai-700-normal-Cb5ilR-c.woff +0 -0
- package/out/web/assets/prompt-thai-700-normal-Cg4aQ0Nn.woff2 +0 -0
- package/out/web/assets/quadrantDiagram-AXDQQJYC-3x_TmF3j.js +0 -7
- package/out/web/assets/radar-RG4KPBEZ-CrXaTTuV.js +0 -1
- package/out/web/assets/railroad-74A4TZTK-BpqMH9BE.js +0 -1
- package/out/web/assets/railroad-abnf-HS5TGJTU-DHI0uLlV.js +0 -1
- package/out/web/assets/railroad-ebnf-LZEXJU2U-CQCb316y.js +0 -1
- package/out/web/assets/railroad-peg-WCYAUIDC-Ph1giKkH.js +0 -1
- package/out/web/assets/railroadDiagram-O6MQD6OU-BRq6wIxx.js +0 -1
- package/out/web/assets/requirementDiagram-EFPCY7ZU-DIJj6G1g.js +0 -84
- package/out/web/assets/rough.esm-DFbTUy8a.js +0 -1
- package/out/web/assets/sankeyDiagram-P5KCCOFB-DZajSryq.js +0 -40
- package/out/web/assets/sequenceDiagram-WJ2MYXX4-DxJCWyZS.js +0 -162
- package/out/web/assets/sizeCapture-X5ZJPWSS-DKeOCaN2.js +0 -1
- package/out/web/assets/src-DnfeXQPr.js +0 -1
- package/out/web/assets/stateDiagram-HBIQ2CUA-k6voi8Vf.js +0 -1
- package/out/web/assets/stateDiagram-v2-4QOOHH4V-DeEc0lGZ.js +0 -1
- package/out/web/assets/studio-B1mk40wD.js +0 -1
- package/out/web/assets/swimlanes-XN3QIQJK-igYhTjXB.js +0 -1
- package/out/web/assets/swimlanesDiagram-VK2B7HYN-DpVik9v7.js +0 -8
- package/out/web/assets/timeline-definition-24CTP7MA-Dke2p93p.js +0 -120
- package/out/web/assets/treeView-Q6P3EWNA-hNELnXUs.js +0 -1
- package/out/web/assets/treemap-WGGIJYW6-D2B6wDsx.js +0 -1
- package/out/web/assets/vennDiagram-4TSXK5OY-CDkW7rUP.js +0 -34
- package/out/web/assets/wardley-WFR3VGLG-BECdXETi.js +0 -1
- package/out/web/assets/wardleyDiagram-VM6X3IG4-B5BycpQ4.js +0 -78
- package/out/web/assets/window-5qYXKoW7.js +0 -1
- package/out/web/assets/xychartDiagram-S5SC5T6Z-CtJS3b--.js +0 -7
- package/skills-lock.json +0 -77
- package/src/renderer/public/Live2DCubismCore.js +0 -9
- package/src/renderer/shared/components/AgentActivityDrawer.tsx +0 -203
- package/src/renderer/shared/components/AgentActivityTable.tsx +0 -301
- package/src/renderer/shared/components/ApprovalCard.tsx +0 -340
- package/src/renderer/shared/components/ArtifactPreviewPanel.tsx +0 -505
- package/src/renderer/shared/components/AuthGate.tsx +0 -191
- package/src/renderer/shared/components/CalculationCard.tsx +0 -100
- package/src/renderer/shared/components/ChatCodeBlock.tsx +0 -105
- package/src/renderer/shared/components/ChatMessageItem.tsx +0 -306
- package/src/renderer/shared/components/ChatPanel.tsx +0 -2226
- package/src/renderer/shared/components/ChunkErrorBoundary.tsx +0 -284
- package/src/renderer/shared/components/CliSessionsView.tsx +0 -495
- package/src/renderer/shared/components/CodeReviewPage.tsx +0 -565
- package/src/renderer/shared/components/CommandPalette.tsx +0 -593
- package/src/renderer/shared/components/DashboardSidebar.tsx +0 -1341
- package/src/renderer/shared/components/DesktopTitlebar.tsx +0 -345
- package/src/renderer/shared/components/DiffReviewModal.tsx +0 -565
- package/src/renderer/shared/components/GeminiLiveOverlay.tsx +0 -128
- package/src/renderer/shared/components/GitBranchSelector.tsx +0 -442
- package/src/renderer/shared/components/ImageGenCard.tsx +0 -159
- package/src/renderer/shared/components/ImageSearchCard.tsx +0 -168
- package/src/renderer/shared/components/ImageStudioPanel.tsx +0 -739
- package/src/renderer/shared/components/InlineThoughtNote.tsx +0 -27
- package/src/renderer/shared/components/LinkedFoldersView.tsx +0 -614
- package/src/renderer/shared/components/McpRegistryPicker.tsx +0 -302
- package/src/renderer/shared/components/McpServersView.tsx +0 -952
- package/src/renderer/shared/components/McpToolAllowlist.tsx +0 -184
- package/src/renderer/shared/components/MermaidCard.tsx +0 -267
- package/src/renderer/shared/components/MintDashboard.tsx +0 -2665
- package/src/renderer/shared/components/ModalErrorBoundary.tsx +0 -127
- package/src/renderer/shared/components/ModelSelectorPopover.tsx +0 -929
- package/src/renderer/shared/components/PlanChecklistWidget.tsx +0 -77
- package/src/renderer/shared/components/PluginsView.tsx +0 -325
- package/src/renderer/shared/components/RewindModal.tsx +0 -421
- package/src/renderer/shared/components/RunSummaryDashboard.tsx +0 -149
- package/src/renderer/shared/components/ScheduledTasksView.tsx +0 -613
- package/src/renderer/shared/components/SkillsView.tsx +0 -347
- package/src/renderer/shared/components/SlashSuggestions.tsx +0 -318
- package/src/renderer/shared/components/SourcesBlock.tsx +0 -450
- package/src/renderer/shared/components/StockCard.tsx +0 -168
- package/src/renderer/shared/components/SubagentDagView.tsx +0 -366
- package/src/renderer/shared/components/TerminalDock.tsx +0 -241
- package/src/renderer/shared/components/ThinkingBlock.tsx +0 -102
- package/src/renderer/shared/components/ToolSurfacePage.tsx +0 -520
- package/src/renderer/shared/components/UiFeatureCard.tsx +0 -267
- package/src/renderer/shared/components/UiGridCard.tsx +0 -188
- package/src/renderer/shared/components/VeoStudioPanel.tsx +0 -707
- package/src/renderer/shared/components/WeatherCard.tsx +0 -224
- package/src/renderer/shared/components/WorkspaceContextPopover.tsx +0 -133
- package/src/renderer/shared/components/WorkspaceSelector.tsx +0 -149
- package/src/renderer/src/companionWidget.ts +0 -95
- package/src/renderer/src/components/CalculationCard.tsx +0 -3
- package/src/renderer/src/components/ImageGenCard.tsx +0 -2
- package/src/renderer/src/components/ImageSearchCard.tsx +0 -2
- package/src/renderer/src/components/Live2DStage.tsx +0 -412
- package/src/renderer/src/components/MermaidCard.tsx +0 -1
- package/src/renderer/src/components/ModelPanel.tsx +0 -155
- package/src/renderer/src/components/PicturesLibrary.tsx +0 -288
- package/src/renderer/src/components/Settings/AgentsTab.tsx +0 -4
- package/src/renderer/src/components/Settings/AudioTab.tsx +0 -3
- package/src/renderer/src/components/Settings/AutomationTab.tsx +0 -3
- package/src/renderer/src/components/Settings/GeneralTab.tsx +0 -3
- package/src/renderer/src/components/Settings/MemoryTab.tsx +0 -3
- package/src/renderer/src/components/Settings/PluginsTab.tsx +0 -3
- package/src/renderer/src/components/Settings/ProfileTab.tsx +0 -3
- package/src/renderer/src/components/Settings/ShortcutsTab.tsx +0 -3
- package/src/renderer/src/components/Settings/ThemeTab.tsx +0 -3
- package/src/renderer/src/components/StockCard.tsx +0 -3
- package/src/renderer/src/components/WeatherCard.tsx +0 -3
- package/src/renderer/src/css/model.css +0 -628
- package/src/renderer/src/css/pictures.css +0 -415
- package/src/renderer/src/css/settings/base.css +0 -1263
- package/src/renderer/src-web/companionWidget.ts +0 -37
- package/src/renderer/src-web/components/ModelPanel.tsx +0 -12
- package/src/renderer/src-web/components/PicturesLibrary.tsx +0 -285
- package/src/renderer/src-web/components/Settings/AgentsTab.tsx +0 -4
- package/src/renderer/src-web/components/Settings/AudioTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/AutomationTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/GeneralTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/MemoryTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/PluginsTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/ProfileTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/ShortcutsTab.tsx +0 -3
- package/src/renderer/src-web/components/Settings/ThemeTab.tsx +0 -3
- package/src/renderer/src-web/css/model.css +0 -628
- package/src/renderer/src-web/css/pictures.css +0 -462
- package/src/renderer/src-web/css/settings/base.css +0 -1263
- package/src/renderer/src-web/css/spotlight.css +0 -102
- package/src/renderer/src-web/css/widget.css +0 -213
- /package/src/renderer/shared/components/{UiMockupWidget.tsx → cards/UiMockupWidget.tsx} +0 -0
- /package/src/renderer/shared/components/{ScreenCaptureDialog.css → studio/ScreenCaptureDialog.css} +0 -0
- /package/src/renderer/shared/components/{ScreenCaptureDialog.tsx → studio/ScreenCaptureDialog.tsx} +0 -0
package/README.md
CHANGED
|
@@ -3,881 +3,156 @@
|
|
|
3
3
|
|
|
4
4
|
# Mint
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**An AI coding agent that runs on your machine — available from your terminal, desktop, browser, or messaging app.**
|
|
7
7
|
|
|
8
8
|
[](https://v2.tauri.app/)
|
|
9
9
|
[](https://www.rust-lang.org/)
|
|
10
10
|
[](https://react.dev/)
|
|
11
|
-
[](LICENSE)
|
|
12
12
|
</div>
|
|
13
13
|
|
|
14
|
-
Mint
|
|
14
|
+
Mint inspects your workspace, edits code, runs tests, and reports results.
|
|
15
|
+
Use it interactively or hand off a task from Telegram, Discord, Slack, LINE,
|
|
16
|
+
WhatsApp, Signal, or Email. Code edits and risky actions require approval.
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Mint: I found the cause, prepared a patch, and ran the test suite.
|
|
19
|
-
4 tests passed · 2 files changed · Ready for your approval
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Why Mint?
|
|
23
|
-
|
|
24
|
-
- **Reach it from chat:** hand off coding tasks from Telegram or the messaging app you already use.
|
|
25
|
-
- **Keep your code local:** Mint runs on your machine, with support for cloud models and local models such as Ollama.
|
|
26
|
-
- **Stay in control:** Git checkpoints, verification gates, and human approval are built into the workflow.
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
mint onboard
|
|
30
|
-
mint setup
|
|
31
|
-
mint code agent "inspect this repo and fix the failing tests"
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
> **Best for:** developers who want an always-available coding assistant without handing their workspace to a hosted agent.
|
|
35
|
-
|
|
36
|
-
Powered by a high-performance Rust **Agent Execution Harness** (`mint-core`), Mint wraps foundation models (Claude, GPT-4o, Gemini, Ollama, DeepSeek) with deterministic tool execution, verification gates, subagent DAG orchestration, memory compaction, and human-in-the-loop safety guardrails.
|
|
37
|
-
|
|
38
|
-
It follows you wherever you already are: message it from Telegram, Discord, Slack, LINE, or WhatsApp like you'd message a person, no desktop window required. It's also a native desktop app with a Live2D companion, a web application, and a full terminal agent for coding tasks — all backed by the exact same execution harness and safety policies, so chat, memory, knowledge, tools, and safety behave identically no matter which door you walk in through.
|
|
39
|
-
|
|
40
|
-
See the [Roadmap](ROADMAP.md) for the project direction, [Contributing Guide](CONTRIBUTING.md) to help improve Mint, and [Release Notes](Release_Note.md) for what's new. Read the [Agent Harness Architecture Guide](docs/AGENT_HARNESS.md) for deep technical details. Questions and ideas belong in [GitHub Discussions](https://github.com/Pheem49/Mint/discussions).
|
|
41
|
-
|
|
42
|
-
## 🏛️ Architecture: The Mint Agent Harness
|
|
43
|
-
|
|
44
|
-
In modern AI engineering, **Harness Engineering** bridges the gap between foundation models (reasoning engines) and real-world execution. Mint implements a complete, deterministic agent harness in Rust:
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
┌────────────────────────────────────────────────────────┐
|
|
48
|
-
│ Foundation Models │
|
|
49
|
-
│ (Claude, GPT-4o, Gemini, Ollama, DeepSeek) │
|
|
50
|
-
└───────────────────────────▲────────────────────────────┘
|
|
51
|
-
│ (Reasoning / Tool Invocations)
|
|
52
|
-
┌────────────────────────────────────────────────▼────────────────────────────────────────────────┐
|
|
53
|
-
│ MINT AGENT HARNESS (mint-core) │
|
|
54
|
-
│ │
|
|
55
|
-
│ ┌──────────────────────────┐ ┌──────────────────────────┐ ┌───────────────────────────────┐ │
|
|
56
|
-
│ │ Orchestration Loop │ │ Safety & Verification │ │ Memory & Context Engine │ │
|
|
57
|
-
│ │ • ReAct / OODA Cycle │ │ • Human-in-the-Loop Gate│ │ • Context Compaction │ │
|
|
58
|
-
│ │ • Self-Correction Loop │ │ • Verification Gating │ │ • Two-Tier Memory Recall │ │
|
|
59
|
-
│ │ • Read-Only Concurrency │ │ • Process Sandbox/Docker│ │ • Fact Quarantine & Promote │ │
|
|
60
|
-
│ └──────────────────────────┘ └──────────────────────────┘ └───────────────────────────────┘ │
|
|
61
|
-
│ ┌──────────────────────────┐ ┌──────────────────────────┐ ┌───────────────────────────────┐ │
|
|
62
|
-
│ │ Tool Actuator System │ │ Subagent DAG Engine │ │ Protocol & Plugin Bridge │ │
|
|
63
|
-
│ │ • File I/O & Git Diff │ │ • Parallel Subagents │ │ • Model Context Protocol │ │
|
|
64
|
-
│ │ • Terminal / Shell Exec │ │ • Scoped Tool Isolation │ │ • Ecosystem Plugins (7+) │ │
|
|
65
|
-
│ │ • Search (Web/Code/KB) │ │ • DAG State Tracking │ │ • Messaging Bridges (7+) │ │
|
|
66
|
-
│ └──────────────────────────┘ └──────────────────────────┘ └───────────────────────────────┘ │
|
|
67
|
-
└────────────────────────────────────────────────┬────────────────────────────────────────────────┘
|
|
68
|
-
│ Unified Telemetry & State Stream
|
|
69
|
-
┌───────────────────────────┼────────────────────────────┐
|
|
70
|
-
│ │ │
|
|
71
|
-
┌────────────▼────────────┐ ┌────────────▼────────────┐ ┌─────────────▼────────────┐
|
|
72
|
-
│ Mint CLI │ │ Desktop App │ │ Web UI & Messaging │
|
|
73
|
-
│ (Terminal TUI / ANSI) │ │ (Tauri v2 + React) │ │ (Vite + Bot Bridges) │
|
|
74
|
-
└─────────────────────────┘ └─────────────────────────┘ └───────────────────────────┘
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
> 📖 **Deep Dive:** Read the complete architecture guide in [docs/AGENT_HARNESS.md](docs/AGENT_HARNESS.md) to learn how Mint achieves autonomous self-correction, verification gating, token budgeting, and subagent DAG workflows.
|
|
78
|
-
|
|
79
|
-
## <img src="assets/features.svg" width="24" height="24" valign="middle" /> What Mint Can Do
|
|
80
|
-
|
|
81
|
-
Mint is a local-first AI assistant running on your machine, capable of handling tasks from a messaging app, the desktop application, or the terminal interface (CLI):
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
### 1. <img src="assets/bridges.svg" width="18" height="18" valign="middle" /> Reach Mint From Anywhere — Messaging Bridges
|
|
86
|
-
- Message it like a person from **Telegram, Discord (Gateway + RPC), Slack, LINE, WhatsApp, Signal, and Email (Gmail)** — no desktop window required. Each bridge locks to whoever messages it first, and all of them share one continuous memory/conversation with the terminal CLI.
|
|
87
|
-
- Runs unattended 24/7 on a VPS via `mint gateway start`/`install` — a systemd service with a `GET /api/gateway/health` endpoint. See [Running Mint 24/7 on a VPS](#running-mint-247-on-a-vps-headless-gateway).
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
### 2. <img src="assets/live2d.svg" width="18" height="18" valign="middle" /> Interactive Live2D Desktop Assistant
|
|
92
|
-
- An interactive anime avatar (**Shiroko**) on your desktop with gaze tracking, expression/accessory toggles, and interaction zones (Head, Cheek, Hands, Body) that trigger animations and message toasts.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
### 3. <img src="assets/chat.svg" width="18" height="18" valign="middle" /> AI Chat & Multi-Providers
|
|
97
|
-
- Connect to **Gemini, OpenAI, Anthropic (Claude), Ollama (Local), Hugging Face**, and OpenAI-compatible custom endpoints — system instructions, temperature control, voice replies, and multimodal image analysis.
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
### 4. <img src="assets/code.svg" width="18" height="18" valign="middle" /> Autonomous Code Agent & Subagents
|
|
102
|
-
- Run code-agent loops via `/code <task>`, `mint code agent "<task>"`, or direct one-shot prompt `mint "<task>"`: scan the workspace, plan multi-file changes, edit, run tests/shell commands, and verify before finishing.
|
|
103
|
-
- **Harness Engineering & Git Safety:** Automatic Git checkpoints before task execution, task-isolated branches, and one-click rollback if verification fails.
|
|
104
|
-
- **Code Intelligence:** AST symbol navigation (`find_definition`, `find_references`) across Rust, TypeScript, JavaScript, Python, and Go without external LSPs.
|
|
105
|
-
- **Safe Automated Verification:** Run tests, typechecks, and linters (`run_tests`, `run_typecheck`, `run_linter`) with zero-prompt pre-approval policies.
|
|
106
|
-
- **Observability & Checklist:** Real-time plan progress checklists and run telemetry summary dashboards across CLI, Desktop, and Web.
|
|
107
|
-
- Delegate focused sub-tasks to specialized subagents (`dispatch_subagent`), optionally isolated in a per-session Docker container (`sandboxBackend: "docker"`).
|
|
108
|
-
> [!IMPORTANT]
|
|
109
|
-
> **Safety First:** Risky actions and file writes require your explicit approval first.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### 5. <img src="assets/memory.svg" width="18" height="18" valign="middle" /> Memory, Knowledge & Skills
|
|
114
|
-
- Persistent conversation memory (SQLite), a searchable local knowledge base, and semantic code search.
|
|
115
|
-
- After solving a hard, reusable problem, the agent can write its own skill (`.agents/skills/`) — and genuinely refine an existing one instead of duplicating it, the next time a similar task recurs.
|
|
116
|
-
- Install ready-made skills too, from a local file/folder or straight from a GitHub repo/URL — `mint skills add <source>` (or `/skill add <source>` in chat). See [Skills](#skills-mint-skills) below.
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
### 6. <img src="assets/tools.svg" width="18" height="18" valign="middle" /> Scheduled Tasks & Linked Folders
|
|
121
|
-
- `mint cron` runs agent tasks on a schedule with no OS-level daemon — rides along on whatever's already open, or `mint gateway start` for always-on.
|
|
122
|
-
- Link a folder (e.g. "Food") and chat that touches its topic gets a short, cross-referenced note written into it automatically.
|
|
123
|
-
- Mint indexes supported files in linked folders and their subfolders to decide which conversations contain useful notes. Use `/link refresh <name>` after changing files, `/link notes <name>` to inspect saved notes, or `/link save <name> | <text>` to save text directly. Notes are stored in `<folder>/mint-notes/`.
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
### 7. <img src="assets/tools.svg" width="18" height="18" valign="middle" /> Tool & MCP Integrations
|
|
128
|
-
- **Model Context Protocol (MCP)** servers supporting both **Local Command (`stdio`)** and **Remote Server (`sse` / `http`)** transports with Bearer Token and Custom Header authentication, plus local plugins for Spotify, Google Calendar, Gmail, and Notion — manage all of it interactively with `mint plugins` or `/mcp`.
|
|
129
|
-
- Dedicated **Image Search** tool and an **Auto GitHub Link Resolver** that injects a linked repo's metadata/README as context automatically.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
### 8. <img src="assets/screencapture.svg" width="18" height="18" valign="middle" /> Screen Capture & Translation
|
|
134
|
-
- Capture screen snapshots for instant visual analysis, or run real-time continuous overlay translation of a screen region.
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
### 9. <img src="assets/imagegen.svg" width="18" height="18" valign="middle" /> AI Image Generation
|
|
139
|
-
- Generate images from chat or terminal using **DALL-E 3, Stability AI, Ideogram, Replicate (Flux)**, and Google NanoBanana — aspect ratio, negative prompts, and automatic local storage.
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
### 10. <img src="assets/tools.svg" width="18" height="18" valign="middle" /> Browser Automation (`mint auto`)
|
|
144
|
-
- Drives a dedicated, isolated Chromium instance (port `9222`): open URLs, click, type, and extract page content — the agent registers these tools automatically once it detects the automation browser is running.
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### 11. <img src="assets/tools.svg" width="18" height="18" valign="middle" /> AI Video Editing via FableMint
|
|
149
|
-
- Connect **[FableMint](https://github.com/Pheem49/FableMint)** — a free, open-source browser video editor — as an MCP server, and Mint can cut, grade, caption, chroma-key, and export edits from plain chat, with the open editor tab live-reloading as it works:
|
|
150
|
-
```bash
|
|
151
|
-
mint mcp add fablemint node --args "<path-to>/FableMint/mcp-server.js"
|
|
152
|
-
mint mcp allow fablemint "*"
|
|
153
|
-
```
|
|
154
|
-
See [FableMint's README](https://github.com/Pheem49/FableMint#driving-it-with-an-ai-agent) for the full tool list.
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
### 12. <img src="assets/tools.svg" width="18" height="18" valign="middle" /> Real-Time 3D Avatar via Project Avatar
|
|
159
|
-
- Connect **[Project Avatar](https://github.com/projectavatar/projectavatar)** — a free, open-source 3D VRM avatar that reacts live to what the agent is doing — with `/avatar` in chat (or `mint avatar` from the CLI):
|
|
160
|
-
```
|
|
161
|
-
/avatar # pick Web or Desktop, get your share link / token
|
|
162
|
-
/avatar status # check connection, selected model, viewer count
|
|
163
|
-
/avatar off # disable
|
|
164
|
-
```
|
|
165
|
-
- The agent reacts as it works — typing/searching while a tool runs, celebrating on a finished image/video — and can call `avatar_signal` directly for anything a tool call can't express, like a greeting, a joke, or an apology.
|
|
166
|
-
- **Web viewing just works** — picking Web opens `app.projectavatar.io/?token=...`, a page the Project Avatar team already hosts for free. No install, no clone, nothing to build; any browser works.
|
|
167
|
-
- **Desktop viewing** needs Project Avatar's own desktop app, built separately from [their repo](https://github.com/projectavatar/projectavatar#desktop-app) — it isn't bundled with Mint. Its first-run screen generates its own token; paste the one `/avatar` gave you into its "Paste existing token" field instead so it joins Mint's channel rather than its own.
|
|
168
|
-
|
|
169
|
-
## <img src="assets/setup.svg" width="24" height="24" valign="middle" /> Prerequisites
|
|
170
|
-
|
|
171
|
-
Before you can build or run Mint locally, make sure you have the following system tools installed:
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
| Tool | Description | Required For |
|
|
175
|
-
| :--- | :--- | :--- |
|
|
176
|
-
| **Node.js & npm** | JavaScript runtime and package manager | Frontend UI (React, Vite, TypeScript) |
|
|
177
|
-
| **Rust Toolchain** | Rust compiler (`rustc`) and package manager (`cargo`) | Shared domain logic, CLI, and Tauri backend |
|
|
178
|
-
| **System Dependencies** | Native OS libraries (compiler tools, dbus, webkit) | Compiling window GUI, Webview rendering, and OS utilities |
|
|
179
|
-
|
|
180
|
-
### Linux Dependencies
|
|
181
|
-
|
|
182
|
-
Install the required C compilers, WebKitGTK, and system libraries for your specific Linux distribution:
|
|
183
|
-
|
|
184
|
-
**Debian / Ubuntu / Linux Mint:**
|
|
185
|
-
```bash
|
|
186
|
-
sudo apt-get install -y \
|
|
187
|
-
build-essential curl file pkg-config wget \
|
|
188
|
-
libdbus-1-dev libwebkit2gtk-4.1-dev \
|
|
189
|
-
libayatana-appindicator3-dev librsvg2-dev \
|
|
190
|
-
libasound2-dev \
|
|
191
|
-
poppler-utils unzip patchelf
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**Fedora / RHEL / CentOS:**
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
sudo dnf groupinstall -y "Development Tools"
|
|
198
|
-
sudo dnf install -y \
|
|
199
|
-
webkit2gtk4.1-devel openssl-devel curl wget glibc-devel \
|
|
200
|
-
dbus-devel libayatana-appindicator-devel librsvg2-devel \
|
|
201
|
-
alsa-lib-devel \
|
|
202
|
-
poppler-utils unzip patchelf
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**Arch Linux:**
|
|
206
|
-
```bash
|
|
207
|
-
sudo pacman -Syu --needed \
|
|
208
|
-
base-devel webkit2gtk-4.1 openssl curl wget \
|
|
209
|
-
dbus libayatana-appindicator librsvg \
|
|
210
|
-
alsa-lib \
|
|
211
|
-
poppler unzip patchelf
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
> [!NOTE]
|
|
215
|
-
> ALSA development headers (`libasound2-dev`/`alsa-lib-devel`/`alsa-lib`) are required to build `cpal`, used for native microphone capture in the desktop app's voice input feature.
|
|
216
|
-
|
|
217
|
-
> [!TIP]
|
|
218
|
-
> **Other Platforms:** If you are developing on macOS or Windows, follow the official [Tauri Prerequisites Guide](https://v2.tauri.app/start/prerequisites/) to set up your build environment.
|
|
219
|
-
|
|
220
|
-
## Installation
|
|
221
|
-
|
|
222
|
-
### Quick Install (Recommended)
|
|
223
|
-
The easiest way to install Mint CLI is using our installation script:
|
|
224
|
-
|
|
225
|
-
**For macOS & Linux:**
|
|
226
|
-
```bash
|
|
227
|
-
curl -fsSL https://raw.githubusercontent.com/Pheem49/Mint/main/install.sh | bash
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**For Windows (PowerShell):**
|
|
231
|
-
```powershell
|
|
232
|
-
powershell -Command "iwr -useb https://raw.githubusercontent.com/Pheem49/Mint/main/install.ps1 | iex"
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
### Quick Start
|
|
237
|
-
```bash
|
|
238
|
-
mint onboard
|
|
239
|
-
mint setup
|
|
240
|
-
mint
|
|
241
|
-
mint web
|
|
242
|
-
mint chat "Hello"
|
|
243
|
-
mint imagine "A futuristic mint-colored robot" --aspect 16:9
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
Most integrations can be configured from:
|
|
247
|
-
```bash
|
|
248
|
-
mint onboard
|
|
249
|
-
mint setup
|
|
250
|
-
mint
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Manual Installation
|
|
254
|
-
|
|
255
|
-
### 1. Configure API Keys
|
|
256
|
-
Copy the template and configure your LLM credentials (Gemini, OpenAI, Anthropic, etc.):
|
|
257
|
-
```bash
|
|
258
|
-
cp .env.example .env
|
|
259
|
-
```
|
|
260
|
-
Open the `.env` file and insert your API keys (e.g. `GEMINI_API_KEY=your_key_here`).
|
|
261
|
-
|
|
262
|
-
### 2. Desktop Application
|
|
263
|
-
Install the dependencies and start the application in development mode with HMR:
|
|
264
|
-
```bash
|
|
265
|
-
npm install
|
|
266
|
-
npm run dev
|
|
267
|
-
```
|
|
268
|
-
To open the normal production-mode desktop app locally (without a Vite dev server):
|
|
269
|
-
```bash
|
|
270
|
-
npm start
|
|
271
|
-
```
|
|
272
|
-
`npm start` opens the existing local Desktop binary and only builds it when it does not exist. Use `npm run start:rebuild` to explicitly rebuild with the fast-release profile, `npm run start:release` to rebuild the fully optimized release profile before measuring performance or publishing, or `npm run launch` to require an existing binary without any fallback build.
|
|
273
|
-
To compile and build a production standalone desktop package:
|
|
274
|
-
```bash
|
|
275
|
-
npm run tauri:build
|
|
276
|
-
```
|
|
277
|
-
*(The Vite renderer output is generated in `out/renderer` and can be manually built via `npm run build:web`)*
|
|
278
|
-
|
|
279
|
-
### 3. Native CLI
|
|
280
|
-
Pick one way to get the global `mint` command:
|
|
281
|
-
|
|
282
|
-
* **Release build (recommended — fastest to run):**
|
|
283
|
-
```bash
|
|
284
|
-
cargo build --release -p mint-cli
|
|
285
|
-
sudo cp target/release/mint /usr/local/bin/
|
|
286
|
-
```
|
|
287
|
-
* **Cargo install:**
|
|
288
|
-
```bash
|
|
289
|
-
cargo install --path crates/mint-cli
|
|
290
|
-
```
|
|
291
|
-
*(make sure `~/.cargo/bin` is on your shell's `$PATH`)*
|
|
292
|
-
* **Dev alias** — recompiles on every run, so code changes apply instantly; best while actively editing Mint itself:
|
|
293
|
-
```bash
|
|
294
|
-
echo 'alias mint="cargo run --manifest-path $(pwd)/Cargo.toml -p mint-cli --"' >> ~/.bashrc # or ~/.zshrc
|
|
295
|
-
source ~/.bashrc # or ~/.zshrc
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
No alias set up? Everything below still works via `npm run cli -- <command>` in place of `mint <command>`. This uses the existing compiled CLI binary; use `npm run cli:rebuild -- <command>` after changing Rust code, or `npm run cli:dev -- <command>` while developing the CLI.
|
|
299
|
-
|
|
300
|
-
---
|
|
301
|
-
|
|
302
|
-
### First Run — "Unidentified Developer" / "Unknown Publisher"
|
|
303
|
-
|
|
304
|
-
Prebuilt downloads from the [Releases page](https://github.com/Pheem49/Mint/releases) — the
|
|
305
|
-
desktop `.dmg` / `.exe` and the standalone `mint-cli_*` binaries — are **not yet code-signed**,
|
|
306
|
-
so macOS Gatekeeper and Windows SmartScreen flag them on first launch. The warnings are
|
|
307
|
-
expected and safe to dismiss. Installing with `install.sh` / `install.ps1` uses a verified
|
|
308
|
-
prebuilt CLI when the current platform is available in the latest release. Set
|
|
309
|
-
`MINT_SOURCE_INSTALL=1` to force the source build. Installing through `npm` still uses the
|
|
310
|
-
source build.
|
|
311
|
-
|
|
312
|
-
**macOS** — Gatekeeper blocks unsigned, un-notarized builds until you clear the quarantine flag:
|
|
313
|
-
|
|
314
|
-
```bash
|
|
315
|
-
# Desktop app
|
|
316
|
-
xattr -dr com.apple.quarantine /Applications/Mint.app
|
|
317
|
-
|
|
318
|
-
# Standalone CLI binary — use the file you actually downloaded
|
|
319
|
-
xattr -d com.apple.quarantine ./mint-cli_macos_arm64 && chmod +x ./mint-cli_macos_arm64
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
For the app you can instead right-click `Mint.app` → **Open** → **Open** in the dialog (once).
|
|
323
|
-
|
|
324
|
-
**Windows** — SmartScreen shows "Windows protected your PC":
|
|
325
|
-
|
|
326
|
-
1. Click **More info**.
|
|
327
|
-
2. Click **Run anyway**.
|
|
18
|
+
Mint is built for developers who want to work in their own local workspace
|
|
19
|
+
with a choice of cloud providers or local models through Ollama.
|
|
328
20
|
|
|
329
|
-
This appears once per new version until the builds are signed.
|
|
330
|
-
|
|
331
|
-
## User Interface
|
|
332
|
-
|
|
333
|
-
### Desktop App
|
|
334
21
|
<table width="100%">
|
|
335
22
|
<tr>
|
|
336
|
-
<
|
|
337
|
-
<
|
|
23
|
+
<th width="33%">Workspace</th>
|
|
24
|
+
<th width="33%">Web</th>
|
|
25
|
+
<th width="33%">CLI / TUI</th>
|
|
338
26
|
</tr>
|
|
339
27
|
<tr>
|
|
340
|
-
<td><img src="assets/
|
|
341
|
-
<td><img src="assets/
|
|
28
|
+
<td><img src="assets/Mint_WorkSpace.png" alt="Mint workspace and coding agent" /></td>
|
|
29
|
+
<td><img src="assets/Mint_Web.png" alt="Mint Web interface" /></td>
|
|
30
|
+
<td><img src="assets/Mint_CLI.png" alt="Mint terminal interface" /></td>
|
|
342
31
|
</tr>
|
|
343
32
|
</table>
|
|
344
33
|
|
|
345
|
-
|
|
346
|
-
<table width="100%">
|
|
347
|
-
<tr>
|
|
348
|
-
<td align="center"><img src="assets/Mint_Web.png" alt="Web UI" /></td>
|
|
349
|
-
</tr>
|
|
350
|
-
</table>
|
|
34
|
+
[Release notes](Release_Note.md) · [Roadmap](ROADMAP.md) · [Discussions](https://github.com/Pheem49/Mint/discussions)
|
|
351
35
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
`mint web --tailscale` is an optional mode for using Mint as a private PWA. It
|
|
355
|
-
does not change the normal `mint web` command or require every Mint user to
|
|
356
|
-
install Tailscale.
|
|
357
|
-
|
|
358
|
-
For detailed setup and usage instructions, see [Mint Web on mobile with Tailscale](docs/MOBILE_PWA_TAILSCALE.md).
|
|
359
|
-
|
|
360
|
-
1. Install Tailscale on the computer running Mint and on your phone, sign in
|
|
361
|
-
to the same tailnet, and enable MagicDNS and HTTPS certificates in the
|
|
362
|
-
[Tailscale DNS settings](https://tailscale.com/docs/how-to/set-up-https-certificates).
|
|
363
|
-
On Linux, allow your regular account to manage Serve with
|
|
364
|
-
`sudo tailscale set --operator="$(whoami)"` after signing in; Mint does not
|
|
365
|
-
run Tailscale as root.
|
|
366
|
-
2. In the Mint project, build the production Web UI with `npm run build:web`.
|
|
367
|
-
Start `mint web --tailscale` and keep the command running. HTTPS port 443
|
|
368
|
-
must be free in Tailscale Serve; Mint will not replace an existing route
|
|
369
|
-
on that port.
|
|
370
|
-
3. Open the printed `https://<machine>.<tailnet>.ts.net` URL on your phone.
|
|
371
|
-
Use the browser's **Add to Home Screen** action to install the PWA. Mint's
|
|
372
|
-
backend continues running on the computer, so the phone needs an active
|
|
373
|
-
Tailscale connection and the computer must stay awake.
|
|
374
|
-
|
|
375
|
-
This mode binds both local ports (`9000` for the Web UI and `3000` for the API)
|
|
376
|
-
to `127.0.0.1`; Tailscale Serve forwards the private HTTPS URL to the Web UI.
|
|
377
|
-
Press Ctrl+C to stop Mint and the Serve session. Do not use Tailscale Funnel for
|
|
378
|
-
this setup: Funnel publishes the service to the public internet. If Tailscale
|
|
379
|
-
is missing, disconnected, or Serve/HTTPS is unavailable, follow the error
|
|
380
|
-
shown by `mint web --tailscale` and try again.
|
|
36
|
+
## Install
|
|
381
37
|
|
|
382
38
|
### CLI
|
|
383
|
-
<table width="100%">
|
|
384
|
-
<tr>
|
|
385
|
-
<td align="center"><img src="assets/Mint_CLI.png" alt="CLI" /></td>
|
|
386
|
-
</tr>
|
|
387
|
-
</table>
|
|
388
|
-
|
|
389
|
-
### Workspace & Agent
|
|
390
|
-
<table width="100%">
|
|
391
|
-
<tr>
|
|
392
|
-
<td align="center"><img src="assets/Mint_WorkSpace.png" alt="Workspace & Agent" /></td>
|
|
393
|
-
</tr>
|
|
394
|
-
</table>
|
|
395
|
-
|
|
396
|
-
## Desktop Assistant
|
|
397
|
-
|
|
398
|
-
The desktop app adds Spotlight, a system tray widget, and a background
|
|
399
|
-
task-queue window on top of everything in "What Mint Can Do" above. The
|
|
400
|
-
sidebar, Live2D interaction state, and area-guide visibility persist locally,
|
|
401
|
-
so the dashboard restores its previous state after a restart.
|
|
402
|
-
|
|
403
|
-
## Native CLI
|
|
404
|
-
|
|
405
|
-
You can interact with Mint's Rust backend directly using the command line —
|
|
406
|
-
install the `mint` shortcut in [Installation](#3-native-cli) above, or fall
|
|
407
|
-
back to `npm run cli -- <command>` in its place.
|
|
408
|
-
|
|
409
|
-
### Start Interactive Chat Assistant
|
|
410
39
|
|
|
411
|
-
|
|
40
|
+
**macOS and Linux:**
|
|
412
41
|
|
|
413
42
|
```bash
|
|
414
|
-
|
|
415
|
-
# Or fallback: npm run cli
|
|
416
|
-
```
|
|
417
|
-
This opens the Mint interactive shell, where you can type prompts naturally or use `/commands` (like `/help`, `/cd`, `/clear`, `/exit`).
|
|
418
|
-
Press F6 at the prompt to confirm a switch between the full-screen TUI and Classic CLI without leaving the current conversation. You can also start directly in Classic mode with `mint --classic`.
|
|
419
|
-
|
|
420
|
-
---
|
|
421
|
-
|
|
422
|
-
### CLI Subcommands
|
|
423
|
-
|
|
424
|
-
You can run individual subcommands by appending them after `mint`:
|
|
425
|
-
|
|
426
|
-
```bash
|
|
427
|
-
mint onboard
|
|
428
|
-
mint setup
|
|
429
|
-
mint plugins
|
|
430
|
-
mint status
|
|
431
|
-
mint web
|
|
432
|
-
mint web --tailscale
|
|
433
|
-
mint api
|
|
434
|
-
mint auto
|
|
435
|
-
mint chat "<message>"
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
### Common Commands
|
|
439
|
-
|
|
440
|
-
| Command | Purpose |
|
|
441
|
-
| --- | --- |
|
|
442
|
-
| `mint` | Start the interactive terminal chat assistant |
|
|
443
|
-
| `mint "<prompt>"` | Execute one-shot code agent task directly without entering TUI |
|
|
444
|
-
| `mint onboard` | Configure Mint for first use |
|
|
445
|
-
| `mint setup` | Interactively manage enabled agent tools |
|
|
446
|
-
| `mint plugins` | Centralized interactive management for built-in ecosystem plugins & skills |
|
|
447
|
-
| `mint web` | Launch the web UI and local API server |
|
|
448
|
-
| `mint web --tailscale` | Serve the built web UI privately over Tailscale HTTPS for mobile/PWA use |
|
|
449
|
-
| `mint api` | Start only the local API server |
|
|
450
|
-
| `mint gateway start` | Run headless: bridges + cron, no TUI — for VPS/systemd use |
|
|
451
|
-
| `mint gateway start --api-port <N>` | Same, plus the local API/WebUI on port `<N>` |
|
|
452
|
-
| `mint gateway install [--system] [--now] [--memory-max <size>]` | Register `mint gateway start` as a systemd unit |
|
|
453
|
-
| `mint auto` | Launch the GUI browser automation isolated port |
|
|
454
|
-
| `mint status` | Show runtime status |
|
|
455
|
-
| `mint config init` | Create the local configuration file |
|
|
456
|
-
| `mint config path` | Print the configuration file path |
|
|
457
|
-
| `mint config show` | Print the current configuration |
|
|
458
|
-
| `mint config set <key> <value>` | Update a configuration value |
|
|
459
|
-
| `mint config doctor` | Validate the local setup |
|
|
460
|
-
| `mint providers` | List configured AI providers |
|
|
461
|
-
| `mint chat "<message>"` | Send one chat message |
|
|
462
|
-
| `mint imagine "<prompt>"` | Generate an image from a text prompt |
|
|
463
|
-
| `mint memory recent` | Show recent conversation memory |
|
|
464
|
-
| `mint task list` | List all tasks (pending and completed) |
|
|
465
|
-
| `mint task pending` | List pending tasks |
|
|
466
|
-
| `mint knowledge add <path>` | Index a local document |
|
|
467
|
-
| `mint knowledge search "<query>"` | Search indexed knowledge |
|
|
468
|
-
| `mint plugin list` | List local plugins |
|
|
469
|
-
| `mint mcp list` | List configured MCP servers |
|
|
470
|
-
| `mint learn <path>` | Import a persistent learned skill file |
|
|
471
|
-
| `mint skills add <path\|github-repo\|url>` | Install a skill — local path, or a GitHub repo/URL via `npx skills` |
|
|
472
|
-
| `mint skills list` | List all skills Mint can see (global, workspace, taught) |
|
|
473
|
-
| `mint eval --suite <path>` | Run benchmark evaluation suite on agent models / harness |
|
|
474
|
-
| `mint update --check` | Check for an available update |
|
|
475
|
-
|
|
476
|
-
### Code Agent
|
|
477
|
-
|
|
478
|
-
Mint includes native workspace tools for code inspection, planning, editing, and execution:
|
|
479
|
-
|
|
480
|
-
```bash
|
|
481
|
-
# Direct one-shot prompt execution
|
|
482
|
-
mint "inspect this repo and fix the failing tests"
|
|
483
|
-
mint -m claude-3-7-sonnet -C ./crates/mint-core "refactor auth logic" --plan
|
|
484
|
-
|
|
485
|
-
# Subcommand execution
|
|
486
|
-
mint code agent "inspect this repo and fix the failing tests"
|
|
487
|
-
mint code github-overview "Pheem49/Mint"
|
|
488
|
-
mint code summary .
|
|
489
|
-
mint code search "shell approval flow" .
|
|
490
|
-
mint symbols .
|
|
491
|
-
mint semantic-code index .
|
|
492
|
-
mint semantic-code search "provider fallback"
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
Inside interactive mode, use:
|
|
496
|
-
|
|
497
|
-
```text
|
|
498
|
-
/code <task>
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
Code-related fixes, workspace inspection, and test requests are routed into the code-agent loop automatically. Shell commands and file edits require explicit terminal approval before Mint applies them.
|
|
502
|
-
|
|
503
|
-
#### Autonomous Harness Capabilities
|
|
504
|
-
- **AST Code Intelligence**: Native symbol navigation (`find_definition`, `find_references`) across Rust, TypeScript, JavaScript, Python, and Go codebases without requiring external language server daemons.
|
|
505
|
-
- **Git Safety Harness**: Automatic Git checkpoints before task execution, task-isolated branches (`mint/<task-id>-<slug>`), diff-aware commit message generation, and one-step task rollback.
|
|
506
|
-
- **Safe Automated Verification**: Specialized `run_tests`, `run_typecheck`, and `run_linter` tools pre-approved for non-destructive automated verification passes.
|
|
507
|
-
- **Task Planning & Observability**: Interactive multi-step plan checklists and telemetry run dashboards tracking token consumption, step latency, and tool call breakdown across CLI, Desktop, and Web.
|
|
508
|
-
|
|
509
|
-
### Benchmark Evaluation (`mint eval`)
|
|
510
|
-
|
|
511
|
-
Evaluate and benchmark agent models and harnesses across customizable test suites:
|
|
512
|
-
|
|
513
|
-
```bash
|
|
514
|
-
# Run a benchmark evaluation suite
|
|
515
|
-
mint eval --suite benchmarks/mint_eval.json
|
|
516
|
-
|
|
517
|
-
# Run with custom concurrency and save report
|
|
518
|
-
mint eval --suite benchmarks/mint_eval.json --concurrency 4 --output eval_results.json
|
|
519
|
-
```
|
|
520
|
-
|
|
521
|
-
Benchmark cases define instructions, target files, and unit test assertions, producing structured pass/fail metrics and terminal scorecards.
|
|
522
|
-
|
|
523
|
-
### Tools And Automation
|
|
524
|
-
|
|
525
|
-
```bash
|
|
526
|
-
mint files find README
|
|
527
|
-
mint safety path README.md
|
|
528
|
-
mint safety shell cargo test -p mint-core
|
|
529
|
-
mint run --approve -- cargo test -p mint-core
|
|
530
|
-
mint open README.md
|
|
531
|
-
mint open-app code
|
|
532
|
-
mint learn ./skill.md
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
### Skills (`mint skills`)
|
|
536
|
-
|
|
537
|
-
Reusable instruction sets the agent loads into context. Besides the ones Mint writes for itself after a hard task, you can install skills from a local file/folder, or straight from a GitHub repo/URL — resolved via the community [`npx skills`](https://github.com/vercel-labs/skills) CLI, so any skill written for Claude Code, Cursor, or the many other agents it supports works with Mint too, no conversion needed:
|
|
538
|
-
|
|
539
|
-
```bash
|
|
540
|
-
# Local file or folder — goes to Mint's global config (~/.config/mint/mint-skills)
|
|
541
|
-
mint skills add ./my-skill.md
|
|
542
|
-
mint skills add ~/Documents/my-skill-folder
|
|
543
|
-
|
|
544
|
-
# GitHub repo shorthand, or a full GitHub/GitLab/git URL — lands in
|
|
545
|
-
# ./.agents/skills/ of the current project, picked up automatically
|
|
546
|
-
mint skills add vercel-labs/agent-skills
|
|
547
|
-
mint skills add https://github.com/owner/repo
|
|
548
|
-
|
|
549
|
-
# Multi-skill repo? Extra flags forward straight to `npx skills` —
|
|
550
|
-
# install just the one you want instead of the whole repo
|
|
551
|
-
mint skills add vercel-labs/skills --skill find-skills
|
|
552
|
-
|
|
553
|
-
# See every skill Mint can currently see (global / workspace / self-written)
|
|
554
|
-
mint skills list
|
|
43
|
+
curl -fsSL https://raw.githubusercontent.com/Pheem49/Mint/main/install.sh | bash
|
|
555
44
|
```
|
|
556
45
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
The GitHub/URL path needs Node.js (`npx`) on your machine; local file/folder installs don't need anything extra.
|
|
560
|
-
|
|
561
|
-
### Ecosystem Plugins (`mint plugins`)
|
|
46
|
+
**Windows (PowerShell):**
|
|
562
47
|
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
```bash
|
|
566
|
-
mint plugins
|
|
48
|
+
```powershell
|
|
49
|
+
powershell -Command "iwr -useb https://raw.githubusercontent.com/Pheem49/Mint/main/install.ps1 | iex"
|
|
567
50
|
```
|
|
568
|
-
* **Interactive Terminal Checklist:** Toggle plugins on or off directly using terminal spacebar navigation.
|
|
569
|
-
* **Credential Prompts:** Automatically prompts for missing OAuth Client IDs, Client Secrets, or API Tokens.
|
|
570
|
-
* **PKCE OAuth & REST Polling:** Starts OAuth authorization flows and polls local REST endpoints (`http://localhost:3000/api/oauth/*`) for seamless Single Sign-On across CLI, Desktop UI, and Web UI.
|
|
571
|
-
|
|
572
|
-
### MCP Servers
|
|
573
51
|
|
|
574
|
-
|
|
52
|
+
The installer uses a verified prebuilt CLI when one is available for your
|
|
53
|
+
platform, otherwise it builds from source. Source builds need Node.js/npm,
|
|
54
|
+
Rust, and native build dependencies; the installer helps set these up.
|
|
575
55
|
|
|
576
|
-
|
|
577
|
-
```bash
|
|
578
|
-
mint mcp add filesystem npx \
|
|
579
|
-
--args -y \
|
|
580
|
-
--args @modelcontextprotocol/server-filesystem \
|
|
581
|
-
--args .
|
|
582
|
-
```
|
|
56
|
+
### Desktop
|
|
583
57
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
mint mcp add weather-api https://mcp.weather.com/sse
|
|
58
|
+
Download the installer for your platform from [GitHub Releases](https://github.com/Pheem49/Mint/releases).
|
|
59
|
+
Prebuilt downloads are currently unsigned; see the
|
|
60
|
+
[first-run instructions](docs/INSTALLATION.md#first-run--unidentified-developer--unknown-publisher)
|
|
61
|
+
for macOS Gatekeeper and Windows SmartScreen.
|
|
589
62
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
--env "Authorization=Bearer <secret-token>"
|
|
593
|
-
```
|
|
63
|
+
For manual installation, Linux dependencies, and building from source, see
|
|
64
|
+
[the installation guide](docs/INSTALLATION.md).
|
|
594
65
|
|
|
595
|
-
|
|
596
|
-
```bash
|
|
597
|
-
mint mcp list # shows `(url: ...)` for remote servers
|
|
598
|
-
mint mcp allow filesystem "*" # let the agent call every tool
|
|
599
|
-
mint mcp call filesystem list_directory \
|
|
600
|
-
--arguments '{"path":"."}'
|
|
601
|
-
```
|
|
66
|
+
## Quick start
|
|
602
67
|
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
| `mint mcp add <name> <cmd\|url> [--args … --env K=V …]` | Add a local command or remote URL server |
|
|
606
|
-
| `mint mcp edit <name> [--command] [--args …] [--env K=V …] [--icon\|--no-icon]` | Change one or more fields in place |
|
|
607
|
-
| `mint mcp disable <name>` / `mint mcp enable <name>` | Turn a server off/on without removing it |
|
|
608
|
-
| `mint mcp allow <server> <tool>` / `mint mcp disallow <server> <tool>` | Grant/revoke a tool (`*` = all) |
|
|
609
|
-
| `mint mcp reauth <server>` | Re-run a server's OAuth login |
|
|
610
|
-
| `mint mcp remove <name>` / `mint mcp clear` | Remove one / all servers |
|
|
611
|
-
|
|
612
|
-
The same operations are available interactively with `/mcp` (an arrow-key
|
|
613
|
-
picker supporting catalog presets, Remote URL (SSE), and Local Command flows) and from the
|
|
614
|
-
Desktop/Web **Settings → MCP Servers** panel:
|
|
615
|
-
- **Segmented Toggle:** Switch seamlessly between **Remote Server (URL / SSE)** and **Local Command (stdio)**.
|
|
616
|
-
- **Pre-flight Live Testing:** Dedicated `Test Connection` button to verify network reachability and discover exposed tools before saving.
|
|
617
|
-
- **Enterprise Security Warning:** Explicit risk notice and safety acknowledgement requirement before adding custom remote endpoints.
|
|
618
|
-
|
|
619
|
-
### Interactive Commands
|
|
620
|
-
|
|
621
|
-
| Command | Purpose |
|
|
622
|
-
| --- | --- |
|
|
623
|
-
| `/help` | Show interactive help |
|
|
624
|
-
| `/fast [on\|off]` | Toggle fast response mode |
|
|
625
|
-
| `/models [name]` | List or select a model |
|
|
626
|
-
| `/image-provider [name]` | List or select default image generation provider |
|
|
627
|
-
| `/clear` or `/reset` | Clear the active conversation |
|
|
628
|
-
| `/cd <path>` | Change workspace directory |
|
|
629
|
-
| `/image <path> [prompt]` | Send an image with an optional prompt |
|
|
630
|
-
| `/paste [prompt]` | Use an image from the clipboard |
|
|
631
|
-
| `/learn <path>` | Import a local skill |
|
|
632
|
-
| `/skill [list]` | List all skills Mint can see (global, workspace, taught) |
|
|
633
|
-
| `/skill add <path\|github-repo\|url>` | Install a skill — local path, or a GitHub repo/URL via `npx skills` |
|
|
634
|
-
| `/plugins` | Browse plugins — enable/disable, OAuth connect/disconnect, credentials |
|
|
635
|
-
| `/plugin enable\|disable <name>` | Toggle a native plugin for the agent |
|
|
636
|
-
| `/memory list` | List stored memories |
|
|
637
|
-
| `/memory clear` | Clear stored memories |
|
|
638
|
-
| `/memory get <key>` | Read one memory value |
|
|
639
|
-
| `/memory set <key> <value>` | Store one memory value |
|
|
640
|
-
| `/mcp [subcmd]` | Manage MCP servers — add, edit, enable/disable, allow/disallow, reauth, remove |
|
|
641
|
-
| `/stats` | Show session statistics |
|
|
642
|
-
| `/code <task>` | Start a code-agent task |
|
|
643
|
-
| `/avatar [web\|desktop\|status\|off]` | Connect agent activity to [Project Avatar](https://github.com/projectavatar/projectavatar) |
|
|
644
|
-
| `/exit` or `/quit` | Leave interactive mode |
|
|
645
|
-
|
|
646
|
-
## Running Mint 24/7 on a VPS (Headless Gateway)
|
|
647
|
-
|
|
648
|
-
By default, messaging bridges and cron only run while something's actually
|
|
649
|
-
attached — the interactive terminal, the desktop app, or `mint web`/`mint
|
|
650
|
-
api`. **Gateway mode** is a real headless mode built for unattended
|
|
651
|
-
deployment: no TUI, no desktop window, just the bridges and the cron
|
|
652
|
-
scheduler running in the background, installable as a systemd service that
|
|
653
|
-
survives reboots.
|
|
654
|
-
|
|
655
|
-
### How it works
|
|
656
|
-
|
|
657
|
-
- `mint gateway start` calls the exact same `start_channels()`/
|
|
658
|
-
`start_cron_scheduler()` the interactive app uses — it just never launches
|
|
659
|
-
the terminal UI, so it needs no TTY and can run under systemd with no
|
|
660
|
-
login session attached.
|
|
661
|
-
- Every bridge loop auto-restarts on error *or* panic (5s backoff), so a bad
|
|
662
|
-
payload from one platform can't silently and permanently kill that bridge.
|
|
663
|
-
- All bridges (Telegram, Discord, Slack, LINE, WhatsApp, Signal, Email) share
|
|
664
|
-
one continuous memory thread with the terminal CLI, not a siloed one per
|
|
665
|
-
platform.
|
|
666
|
-
- `GET /api/gateway/health` reports each bridge's enabled state, last
|
|
667
|
-
success, last error, and consecutive-failure count as JSON — check it
|
|
668
|
-
remotely instead of SSHing in to read `journalctl`.
|
|
669
|
-
|
|
670
|
-
### Quick start on a fresh VPS
|
|
68
|
+
After installation, choose your AI provider with `mint onboard` and configure
|
|
69
|
+
agent tools with `mint setup`. Then open Mint in your project directory:
|
|
671
70
|
|
|
672
71
|
```bash
|
|
673
|
-
# 1. Install Mint (Linux, needs Node/npm + Rust — the installer offers to set both up)
|
|
674
|
-
curl -fsSL https://raw.githubusercontent.com/Pheem49/Mint/main/install.sh | bash
|
|
675
|
-
|
|
676
|
-
# 2. Configure a provider + the bridge(s) you want (Telegram, Signal, Email, ...)
|
|
677
72
|
mint onboard
|
|
73
|
+
mint setup
|
|
678
74
|
|
|
679
|
-
|
|
680
|
-
mint gateway start
|
|
681
|
-
# Ctrl+C once you see your bridge(s) come up "Active" and a test message gets a reply
|
|
682
|
-
|
|
683
|
-
# 4. Install as a systemd service and start it now
|
|
684
|
-
mint gateway install --now --api-port 3000 --memory-max 512M
|
|
685
|
-
|
|
686
|
-
# 5. Per-user units (the default) only run while you're logged in —
|
|
687
|
-
# this keeps it running after you log out / reboot with no session at all
|
|
688
|
-
sudo loginctl enable-linger "$(whoami)"
|
|
689
|
-
```
|
|
690
|
-
|
|
691
|
-
### Gateway commands
|
|
692
|
-
|
|
693
|
-
| Command | Purpose |
|
|
694
|
-
| --- | --- |
|
|
695
|
-
| `mint gateway start` | Run bridges + cron in the foreground, headless (no TUI) |
|
|
696
|
-
| `mint gateway start --api-port <N>` | Same, plus the local API/WebUI on port `<N>` |
|
|
697
|
-
| `mint gateway install` | Write + enable a per-user systemd unit (`~/.config/systemd/user/`, no root) |
|
|
698
|
-
| `mint gateway install --system` | Same, but system-wide (`/etc/systemd/system/`, needs `sudo`) |
|
|
699
|
-
| `mint gateway install --now` | Also start the service immediately after installing it |
|
|
700
|
-
| `mint gateway install --memory-max <size>` | Cap the service's memory (systemd size syntax, e.g. `512M`, `1G`) — unset by default |
|
|
701
|
-
|
|
702
|
-
Once installed, `mint gateway install` has already written and enabled the
|
|
703
|
-
unit — day-to-day you drive it with plain `systemctl` (drop `--user` and use
|
|
704
|
-
`sudo` for a `--system` unit):
|
|
705
|
-
|
|
706
|
-
| Task | Command |
|
|
707
|
-
| --- | --- |
|
|
708
|
-
| Start it now | `systemctl --user start mint.service` |
|
|
709
|
-
| Stop it now | `systemctl --user stop mint.service` |
|
|
710
|
-
| Restart it | `systemctl --user restart mint.service` |
|
|
711
|
-
| Is it running? | `systemctl --user status mint.service` |
|
|
712
|
-
| Follow logs | `journalctl --user -u mint.service -f` |
|
|
713
|
-
| Start on boot | `systemctl --user enable mint.service` (`install` already did this) |
|
|
714
|
-
| Don't start on boot | `systemctl --user disable mint.service` |
|
|
715
|
-
| Uninstall | `systemctl --user disable --now mint.service`, then delete `~/.config/systemd/user/mint.service` |
|
|
716
|
-
|
|
717
|
-
`start`/`stop` control it right now; `enable`/`disable` control whether it
|
|
718
|
-
comes up on boot — the two are independent. Per-user units also need
|
|
719
|
-
`sudo loginctl enable-linger "$(whoami)"` once to keep running with no login
|
|
720
|
-
session (see the VPS quick start above).
|
|
721
|
-
|
|
722
|
-
### Checking on it remotely
|
|
723
|
-
|
|
724
|
-
Don't expose the API/WebUI port to the public internet — reach it over an
|
|
725
|
-
SSH tunnel or [Tailscale](https://tailscale.com/) instead:
|
|
726
|
-
|
|
727
|
-
```bash
|
|
728
|
-
ssh -L 3000:localhost:3000 you@your-vps
|
|
729
|
-
curl http://localhost:3000/api/gateway/health
|
|
75
|
+
mint
|
|
730
76
|
```
|
|
731
77
|
|
|
732
|
-
|
|
733
|
-
request needs it:
|
|
78
|
+
In the full-screen TUI, type what you want Mint to do:
|
|
734
79
|
|
|
735
|
-
```
|
|
736
|
-
|
|
80
|
+
```text
|
|
81
|
+
Inspect this repo and fix the failing tests.
|
|
737
82
|
```
|
|
738
83
|
|
|
739
|
-
|
|
740
|
-
`Authorization: Bearer <token>` or gets `401 Unauthorized`. Leave it unset to
|
|
741
|
-
keep the previous open-on-localhost behavior (desktop app / `mint web` don't
|
|
742
|
-
need to change anything).
|
|
743
|
-
|
|
744
|
-
### New bridges built for this: Signal and Email
|
|
84
|
+
Use `/help` to explore commands. See the [usage guide](docs/USAGE.md) for more.
|
|
745
85
|
|
|
746
|
-
|
|
747
|
-
[`signal-cli-rest-api`](https://github.com/bbernhard/signal-cli-rest-api)
|
|
748
|
-
instance instead (you link the number yourself first). Config:
|
|
749
|
-
`enableSignalBridge`, `signalApiUrl`, `signalNumber`.
|
|
750
|
-
- **Email** reuses the same Gmail OAuth connection as the `gmail` plugin —
|
|
751
|
-
set `gmailClientId`/`gmailClientSecret`, run `mint gmail auth` once to get
|
|
752
|
-
a refresh token, then enable it. Both are offered directly in `mint
|
|
753
|
-
onboard` under "Messaging Bridges".
|
|
86
|
+
## What Mint can do
|
|
754
87
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
88
|
+
- **Code and verify:** inspect files, navigate symbols, edit code, run tests,
|
|
89
|
+
and delegate focused work to subagents, with Git checkpoints and approval gates.
|
|
90
|
+
- **Work across interfaces:** use the full-screen terminal, native Desktop,
|
|
91
|
+
Web UI, or messaging bridges, backed by the same Rust core.
|
|
92
|
+
- **Choose your models:** connect OpenAI, Anthropic, Gemini, Ollama,
|
|
93
|
+
Hugging Face, and OpenAI-compatible endpoints.
|
|
94
|
+
- **Remember and reuse:** keep conversation memory, search local knowledge,
|
|
95
|
+
and install or create reusable agent skills.
|
|
96
|
+
- **Connect and customize:** add MCP servers, ecosystem plugins, and Mint Mods
|
|
97
|
+
for custom panels, commands, and tool guards.
|
|
98
|
+
- **Automate other tasks:** schedule work, control a browser, analyze screenshots,
|
|
99
|
+
generate images, or connect optional video-editing and avatar integrations.
|
|
762
100
|
|
|
763
|
-
|
|
101
|
+
See [features and integrations](docs/FEATURES.md) for details.
|
|
764
102
|
|
|
765
|
-
|
|
103
|
+
## Choose an interface
|
|
766
104
|
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
| Linux | `~/.config/mint/mint-config.json` |
|
|
770
|
-
| macOS | `~/Library/Application Support/mint/mint-config.json` |
|
|
771
|
-
| Windows | `%APPDATA%\mint\mint-config.json` |
|
|
105
|
+
**Terminal:** run `mint` for the full-screen TUI. Use `mint --classic` for
|
|
106
|
+
Classic CLI, or press F6 to switch within a conversation.
|
|
772
107
|
|
|
773
|
-
|
|
108
|
+
**Desktop:** launch the installed app. From a source checkout, run
|
|
109
|
+
`npm install` once, then `npm start`. Use `npm run dev` for development
|
|
110
|
+
with UI hot reload.
|
|
774
111
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
npm run cli -- config show
|
|
779
|
-
npm run cli -- config doctor
|
|
780
|
-
```
|
|
112
|
+
**Web:** run `mint web` to launch the browser UI and local API.
|
|
113
|
+
For private access from your phone, see
|
|
114
|
+
[mobile/PWA setup with Tailscale](docs/MOBILE_PWA_TAILSCALE.md).
|
|
781
115
|
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
servers, and optional integrations such as Calendar, Gmail, Notion, Telegram,
|
|
785
|
-
Discord, Slack, LINE, WhatsApp, Google Search, and Brave Search.
|
|
116
|
+
**Mint Companion:** an optional separate Live2D app that follows a selected
|
|
117
|
+
Mint conversation. See [Companion setup and operation](docs/MINT_COMPANION.md).
|
|
786
118
|
|
|
787
|
-
|
|
119
|
+
More screenshots, shortcuts, and command examples are in the
|
|
120
|
+
[usage guide](docs/USAGE.md).
|
|
788
121
|
|
|
789
|
-
|
|
790
|
-
is known to support it (Llama 3.1+/4, Qwen2+/3/QwQ, Mistral/Mixtral, Gemma 4,
|
|
791
|
-
Granite 3–4, Command-R/A, Hermes 3, gpt-oss, DeepSeek V3, Phi-4-mini, and others
|
|
792
|
-
— see `OLLAMA_NATIVE_TOOL_MODEL_PREFIXES` in
|
|
793
|
-
`crates/mint-core/src/system/config.rs`). Anything else falls back to a less
|
|
794
|
-
reliable prompt-based JSON mode and warns once per run.
|
|
122
|
+
## Privacy and approvals
|
|
795
123
|
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
the config.
|
|
124
|
+
Mint runs locally and stores its configuration and conversation memory on
|
|
125
|
+
your machine. When you choose a cloud model, prompts and relevant task context
|
|
126
|
+
are sent to that provider; Ollama supports local inference.
|
|
800
127
|
|
|
801
|
-
|
|
128
|
+
Code edits and high-risk actions require approval. Shell execution uses
|
|
129
|
+
policy checks and an OS sandbox by default; sensitive paths and credentials
|
|
130
|
+
are protected from routine workspace access. Review previews before approving.
|
|
802
131
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
```text
|
|
810
|
-
http://127.0.0.1:9222/json/list
|
|
811
|
-
```
|
|
812
|
-
|
|
813
|
-
## Webhook Integrations
|
|
814
|
-
|
|
815
|
-
LINE and WhatsApp webhook listeners bind to localhost by default. Read
|
|
816
|
-
[`docs/WEBHOOK_FORWARDING.md`](docs/WEBHOOK_FORWARDING.md) before exposing them
|
|
817
|
-
through a TLS tunnel.
|
|
818
|
-
|
|
819
|
-
## Safety And Privacy
|
|
820
|
-
|
|
821
|
-
Mint keeps high-risk behavior behind explicit policy checks:
|
|
822
|
-
|
|
823
|
-
- Shell commands are evaluated before execution, then run inside an OS-level
|
|
824
|
-
sandbox by default (bubblewrap on Linux, Seatbelt on macOS —
|
|
825
|
-
`sandboxMode`). Subagents can additionally be isolated in a per-session
|
|
826
|
-
Docker container (`sandboxBackend: "docker"`).
|
|
827
|
-
- Code edits and update installation require approval.
|
|
828
|
-
- Sensitive directories such as `.ssh`, `.gnupg`, and Mint's own config
|
|
829
|
-
directory are protected by default.
|
|
830
|
-
- Sensitive filenames such as `.env` and private key files are blocked from
|
|
831
|
-
routine workspace access.
|
|
832
|
-
- LINE and WhatsApp webhook services listen locally unless you intentionally
|
|
833
|
-
forward them.
|
|
834
|
-
- Every messaging bridge (Telegram, Discord, Slack, LINE, WhatsApp, Signal,
|
|
835
|
-
Email) locks itself to a single owner: the first sender it ever hears from
|
|
836
|
-
is claimed as that owner, and every other sender is silently ignored from
|
|
837
|
-
then on. To hand a bridge to a different sender, clear its stored owner id
|
|
838
|
-
(e.g. `mint config set telegramOwnerChatId ""`) before they message it.
|
|
839
|
-
- The local API server (`mint api`, `mint web`, `mint gateway start
|
|
840
|
-
--api-port`) is open by default, matching the assumption that it's only
|
|
841
|
-
reached from localhost or your own desktop/web frontend. If you expose the
|
|
842
|
-
port on a VPS, set `apiAuthToken` (`mint config set apiAuthToken
|
|
843
|
-
"<secret>"`) to require every request to carry `Authorization: Bearer
|
|
844
|
-
<token>` — and still prefer an SSH tunnel or Tailscale over opening the
|
|
845
|
-
port publicly regardless. See [Running Mint 24/7 on a VPS](#running-mint-247-on-a-vps-headless-gateway).
|
|
846
|
-
|
|
847
|
-
Review the generated command or edit preview before approving an action.
|
|
848
|
-
|
|
849
|
-
## Development
|
|
850
|
-
|
|
851
|
-
Useful validation commands:
|
|
852
|
-
|
|
853
|
-
```bash
|
|
854
|
-
npm run build:web
|
|
855
|
-
cargo test -p mint-core -p mint-cli -p mint-desktop
|
|
856
|
-
cargo check -p mint-desktop
|
|
857
|
-
npm run tauri:build -- --debug --no-bundle
|
|
858
|
-
```
|
|
859
|
-
|
|
860
|
-
### Project Layout
|
|
861
|
-
|
|
862
|
-
```text
|
|
863
|
-
crates/mint-core Shared Rust domain logic
|
|
864
|
-
crates/mint-cli Native Rust CLI
|
|
865
|
-
src-tauri Tauri desktop backend and IPC commands
|
|
866
|
-
src/renderer React and TypeScript webview UI
|
|
867
|
-
docs Project documentation
|
|
868
|
-
out/renderer Generated Vite renderer output
|
|
869
|
-
```
|
|
132
|
+
Messaging bridges claim their first sender as owner. The API does not require
|
|
133
|
+
a token by default: keep it private, and configure `apiAuthToken` before
|
|
134
|
+
exposing it beyond your machine. See
|
|
135
|
+
[configuration and safety](docs/CONFIGURATION.md) and
|
|
136
|
+
[remote gateway access](docs/GATEWAY.md#checking-on-it-remotely).
|
|
870
137
|
|
|
871
|
-
##
|
|
138
|
+
## Documentation
|
|
872
139
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
140
|
+
- [Installation](docs/INSTALLATION.md) — dependencies, source builds, and first-run help.
|
|
141
|
+
- [Usage and commands](docs/USAGE.md) — CLI, screenshots, skills, plugins, and MCP.
|
|
142
|
+
- [Configuration](docs/CONFIGURATION.md) — providers, local settings, safety, and privacy.
|
|
143
|
+
- [Gateway and VPS](docs/GATEWAY.md) — messaging bridges, cron, and systemd operation.
|
|
144
|
+
- [Mint Mods](docs/mods/README.md) — custom panels, commands, authoring, and testing.
|
|
145
|
+
- [Browser automation](docs/MINT_AUTO_BROWSER.md) — shared Mint Browser engine, headless workflows, clicks, typing, and screenshot artifacts.
|
|
146
|
+
- [Agent architecture](docs/AGENT_HARNESS.md) and [memory](docs/MEMORY_ARCHITECTURE.md) — technical details.
|
|
147
|
+
- [Development](docs/DEVELOPMENT.md) and [build/release](BUILD_AND_RELEASE.md) — source layout and validation.
|
|
876
148
|
|
|
877
149
|
## Contributing
|
|
878
150
|
|
|
879
|
-
|
|
151
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and contribution
|
|
152
|
+
guidelines. Bring questions and ideas to
|
|
153
|
+
[GitHub Discussions](https://github.com/Pheem49/Mint/discussions).
|
|
880
154
|
|
|
881
155
|
## License
|
|
882
156
|
|
|
883
|
-
Mint is licensed under the [
|
|
157
|
+
Mint is licensed under the [MIT license](LICENSE).
|
|
158
|
+
Third-party dependencies and bundled assets retain their respective licenses.
|