@pheem49/mint 1.14.0 → 1.16.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 +1258 -35
- package/Cargo.toml +5 -2
- package/LICENSE +21 -654
- package/README.md +93 -756
- package/Release_Note.md +53 -446
- 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/main.rs +468 -0
- package/apps/mint-companion/tsconfig.json +20 -0
- package/apps/mint-companion/vite.config.ts +3 -0
- package/components.json +19 -0
- package/crates/mint-cli/Cargo.toml +9 -1
- package/crates/mint-cli/src/agent/approval_prompts.rs +16 -3
- package/crates/mint-cli/src/agent/live_status.rs +545 -148
- package/crates/mint-cli/src/agent/markdown_render.rs +601 -61
- package/crates/mint-cli/src/agent.rs +723 -258
- package/crates/mint-cli/src/commands/agent.rs +83 -74
- package/crates/mint-cli/src/commands/eval.rs +9 -5
- package/crates/mint-cli/src/commands/git.rs +204 -0
- package/crates/mint-cli/src/commands/integrations.rs +35 -0
- package/crates/mint-cli/src/commands/knowledge.rs +13 -32
- package/crates/mint-cli/src/commands/mod.rs +81 -2
- package/crates/mint-cli/src/commands/tailnet_web.rs +235 -0
- package/crates/mint-cli/src/image.rs +32 -11
- package/crates/mint-cli/src/interactive/chat_tui.rs +7853 -0
- package/crates/mint-cli/src/interactive/command_ui.rs +477 -0
- package/crates/mint-cli/src/interactive/format.rs +8 -0
- package/crates/mint-cli/src/interactive/input_box.rs +94 -8
- package/crates/mint-cli/src/interactive/picker.rs +180 -37
- package/crates/mint-cli/src/interactive/resume_picker.rs +686 -0
- package/crates/mint-cli/src/interactive/slash_commands.rs +1071 -501
- package/crates/mint-cli/src/interactive/thought_viewer.rs +286 -0
- package/crates/mint-cli/src/interactive/tool_activity.rs +328 -0
- package/crates/mint-cli/src/interactive.rs +454 -166
- package/crates/mint-cli/src/main.rs +93 -26
- package/crates/mint-cli/src/markdown.rs +12 -5
- 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 +37 -61
- package/crates/mint-cli/src/plugins_cli.rs +8 -5
- package/crates/mint-cli/src/setup.rs +10 -8
- package/crates/mint-cli/src/terminal_theme.rs +189 -0
- package/crates/mint-cli/src/updater.rs +112 -23
- package/crates/mint-cli/tests/library_intake.rs +77 -0
- package/crates/mint-cli/tests/mods_testing.rs +133 -0
- package/crates/mint-companion-protocol/Cargo.toml +10 -0
- package/crates/mint-companion-protocol/src/lib.rs +163 -0
- package/crates/mint-core/Cargo.toml +6 -3
- package/crates/mint-core/build.rs +26 -0
- package/crates/mint-core/src/agent/agent_loop.rs +1 -0
- package/crates/mint-core/src/agent/chat.rs +1003 -209
- package/crates/mint-core/src/agent/code_tools.rs +98 -2
- package/crates/mint-core/src/agent/memory/sources.rs +240 -0
- package/crates/mint-core/src/agent/memory.rs +805 -33
- package/crates/mint-core/src/agent/skill_inventory.rs +325 -0
- package/crates/mint-core/src/agent/skills.rs +437 -90
- package/crates/mint-core/src/agent.rs +1 -0
- package/crates/mint-core/src/api_server/routes/background_jobs.rs +310 -0
- package/crates/mint-core/src/api_server/routes/chat.rs +233 -190
- 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/linked_folders.rs +118 -3
- package/crates/mint-core/src/api_server/routes/media_gen.rs +10 -57
- package/crates/mint-core/src/api_server/routes/misc.rs +114 -121
- 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/sessions.rs +85 -0
- package/crates/mint-core/src/api_server/routes/skills_subagents.rs +12 -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.rs +140 -12
- package/crates/mint-core/src/avatar_bridge.rs +13 -2
- package/crates/mint-core/src/browser/cdp.rs +74 -83
- package/crates/mint-core/src/browser/evidence.rs +260 -0
- package/crates/mint-core/src/browser/input.rs +1 -1
- package/crates/mint-core/src/browser/interact.rs +98 -124
- package/crates/mint-core/src/browser/lifecycle.rs +75 -4
- package/crates/mint-core/src/browser/mod.rs +16 -2
- package/crates/mint-core/src/browser/navigate.rs +27 -19
- package/crates/mint-core/src/browser/observe.js +40 -0
- package/crates/mint-core/src/browser/session.rs +1610 -0
- package/crates/mint-core/src/companion.rs +716 -0
- package/crates/mint-core/src/cron/scheduler.rs +34 -2
- package/crates/mint-core/src/git/branches.rs +348 -0
- package/crates/mint-core/src/git/checkpoint.rs +40 -0
- package/crates/mint-core/src/git/diff.rs +206 -0
- package/crates/mint-core/src/git/mod.rs +10 -2
- package/crates/mint-core/src/integrations/channels.rs +88 -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 +356 -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 +107 -40
- package/crates/mint-core/src/live_sync.rs +28 -9
- package/crates/mint-core/src/media/auto_shorts.rs +1 -0
- package/crates/mint-core/src/media/gemini_live.rs +145 -14
- package/crates/mint-core/src/media/image_models.rs +3 -27
- 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/mic_transcribe.rs +1 -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/subtitle.rs +1 -0
- package/crates/mint-core/src/media/video_models.rs +3 -22
- package/crates/mint-core/src/media.rs +3 -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 +105 -0
- package/crates/mint-core/src/orchestration/mcp_review.rs +153 -0
- package/crates/mint-core/src/orchestration/memory_skill.rs +110 -33
- package/crates/mint-core/src/orchestration/mod.rs +3129 -481
- 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/repeated_failures.rs +116 -0
- package/crates/mint-core/src/orchestration/review_regressions.rs +449 -0
- package/crates/mint-core/src/orchestration/run_control.rs +196 -0
- package/crates/mint-core/src/orchestration/tools/browser.rs +16 -139
- package/crates/mint-core/src/orchestration/tools/files.rs +161 -14
- package/crates/mint-core/src/orchestration/tools/media.rs +37 -41
- package/crates/mint-core/src/orchestration/tools/misc.rs +5 -3
- 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 +303 -71
- package/crates/mint-core/src/orchestration/tools/shell.rs +95 -2
- package/crates/mint-core/src/orchestration/tools/web.rs +1 -1
- package/crates/mint-core/src/orchestration/workspace_helpers.rs +4 -1
- package/crates/mint-core/src/prompts/agent.rs +75 -31
- package/crates/mint-core/src/prompts/chat.rs +1 -1
- package/crates/mint-core/src/prompts/persona.rs +1 -1
- package/crates/mint-core/src/prompts/tool_catalog.rs +121 -27
- package/crates/mint-core/src/search/knowledge.rs +7 -1
- package/crates/mint-core/src/search/linked_folders/index.rs +896 -0
- package/crates/mint-core/src/search/linked_folders.rs +473 -131
- package/crates/mint-core/src/slash/catalog.rs +1 -1
- package/crates/mint-core/src/slash/mod.rs +644 -33
- package/crates/mint-core/src/slash/model_fetcher.rs +12 -3
- package/crates/mint-core/src/slash/models.rs +66 -10
- package/crates/mint-core/src/slash/mods.rs +155 -0
- package/crates/mint-core/src/system/bg_shell.rs +1129 -95
- package/crates/mint-core/src/system/config.rs +235 -10
- package/crates/mint-core/src/system/html_preview.rs +398 -0
- package/crates/mint-core/src/system/mint_web.rs +164 -0
- package/crates/mint-core/src/system/release_notes.rs +18 -0
- package/crates/mint-core/src/system/shell.rs +21 -6
- package/crates/mint-core/src/system/workspace.rs +292 -0
- package/crates/mint-core/src/system/workspace_history.rs +604 -0
- package/crates/mint-core/src/system.rs +5 -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 +39 -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/CliSessionsView-CtzUJpK_.css +1 -0
- package/out/web/assets/CliSessionsView-D7hw0Mgj.js +1 -0
- package/out/web/assets/CodeReviewPage-C7bEOJfd.js +4 -0
- package/out/web/assets/CodeReviewPage-Dte9uLiL.css +1 -0
- package/out/web/assets/CommandPalette-0RrF-AOT.js +1 -0
- package/out/web/assets/ImageStudioPanel-CdxkAf_r.js +1 -0
- package/out/web/assets/ImageStudioPanel-D0lnhQV5.css +1 -0
- package/out/web/assets/LibraryPage--Qfisp6D.js +2 -0
- package/out/web/assets/LibraryPage-DAxUTAg7.css +1 -0
- package/out/web/assets/LinkedFoldersView-2nfZbDgN.js +1 -0
- package/out/web/assets/McpRegistryPicker-h9uS8_wT.js +1 -0
- package/out/web/assets/McpServersView-slfQJzNB.js +1 -0
- package/out/web/assets/MintDashboard-BSR5XpXh.js +25 -0
- package/out/web/assets/MintDashboard-CWUcCGhd.css +1 -0
- package/out/web/assets/PluginsView-l7LSm503.js +1 -0
- package/out/web/assets/ScheduledTasksView-CttmLbq1.js +1 -0
- package/out/web/assets/SettingsWindow-BCMLYvEV.js +4 -0
- package/out/web/assets/SettingsWindow-DcMVmU9u.css +1 -0
- package/out/web/assets/SkillsView-rNs1qr_U.js +2 -0
- package/out/web/assets/ToolSurfacePage-B9DzEPWN.js +37 -0
- package/out/web/assets/ToolSurfacePage-CTfgggF2.css +1 -0
- package/out/web/assets/VeoStudioPanel-DOj7_WR3.css +1 -0
- package/out/web/assets/VeoStudioPanel-DiJs_Cg2.js +4 -0
- package/out/web/assets/WorkspacePanel-CbJ1PFoZ.js +1 -0
- package/out/web/assets/WorkspaceSelector-B2xIp04D.js +1 -0
- package/out/web/assets/WorkspaceSelector-Ca8uJOsS.css +1 -0
- package/out/web/assets/{abnfDiagram-VCTEODGH-DAOBA7ZG.js → abnfDiagram-VCTEODGH-CD0CjoGl.js} +1 -1
- package/out/web/assets/{architecture-7GRP2DOG-CgSwQOPQ.js → architecture-7GRP2DOG-RKV83OeZ.js} +1 -1
- package/out/web/assets/{architectureDiagram-5GKGNRK7-CYp3yupP.js → architectureDiagram-5GKGNRK7-nN_HAFct.js} +1 -1
- package/out/web/assets/{blockDiagram-NRAW4CY4-CyWybDWr.js → blockDiagram-NRAW4CY4-BrrqzHW5.js} +1 -1
- package/out/web/assets/{c4Diagram-UCG6FXSJ-BvY3U709.js → c4Diagram-UCG6FXSJ-DTdV8_zE.js} +1 -1
- package/out/web/assets/{chunk-75Z2AOVW-TLXCoZYv.js → chunk-75Z2AOVW-_M0z5olV.js} +1 -1
- package/out/web/assets/chunk-CKBBP62Z-BpQEgeHF.js +2 -0
- package/out/web/assets/{chunk-CLGD4ZFX-xjsKtNS7.js → chunk-CLGD4ZFX-D54yGvGS.js} +1 -1
- package/out/web/assets/chunk-DSNCTWBM-C-gvT2ru.js +2 -0
- package/out/web/assets/chunk-DU6HZSFF-CnFngIhW.js +128 -0
- package/out/web/assets/{chunk-F27PBJKO-BFpgF55A.js → chunk-F27PBJKO-BqtWrnEO.js} +1 -1
- package/out/web/assets/{chunk-G27WJ6UU-DfF7qW-C.js → chunk-G27WJ6UU-Ckoq5mi2.js} +1 -1
- package/out/web/assets/{chunk-GMAD6QVW-C-558kh_.js → chunk-GMAD6QVW-BuhEcgHq.js} +1 -1
- package/out/web/assets/{chunk-JQ64N6SF-wJmeGKAw.js → chunk-JQ64N6SF-CF8T7GiZ.js} +1 -1
- package/out/web/assets/{chunk-LCL6LL3I-C1wHD8Ie.js → chunk-LCL6LL3I-BhXV9zyH.js} +1 -1
- package/out/web/assets/{chunk-OBVCFTLP-BsRTPBqs.js → chunk-OBVCFTLP-CRIkunUB.js} +1 -1
- package/out/web/assets/{chunk-P2QGCYS3-HZIiM7Ni.js → chunk-P2QGCYS3-UFEU6BxZ.js} +1 -1
- package/out/web/assets/{chunk-POPQ4Y6H-Dk9wvVb0.js → chunk-POPQ4Y6H-CQcrNbjr.js} +1 -1
- package/out/web/assets/{chunk-PWAF6VOD-BmjYLNbq.js → chunk-PWAF6VOD-Cc2uVDsG.js} +1 -1
- package/out/web/assets/{chunk-R7TYR2AO-CaHIf-lK.js → chunk-R7TYR2AO-DiCxzdAY.js} +1 -1
- package/out/web/assets/{chunk-RHFEMEQ7-_T561hOU.js → chunk-RHFEMEQ7-b7hnPmrR.js} +1 -1
- package/out/web/assets/{chunk-SVP7TREG-CM-GGYoY.js → chunk-SVP7TREG-Bu_yYb-V.js} +1 -1
- package/out/web/assets/{chunk-TEH6E4GO-K2A8Vg2C.js → chunk-TEH6E4GO-G4Cdlyrt.js} +1 -1
- package/out/web/assets/classDiagram-DTDB5LWJ-RnC2mYO4.js +1 -0
- package/out/web/assets/classDiagram-v2-JRS7N3AN-RnC2mYO4.js +1 -0
- package/out/web/assets/config-CnvCChUM.js +2 -0
- package/out/web/assets/config-DM6oIVO3.css +1 -0
- package/out/web/assets/core-DsKkQ7ig.js +1 -0
- package/out/web/assets/{cynefin-OW5HDTMX-ClzaB6cc.js → cynefin-OW5HDTMX-CnzQfOGp.js} +1 -1
- package/out/web/assets/{cynefinDiagram-5FMLGOSQ-D_JzZBzf.js → cynefinDiagram-5FMLGOSQ-DVtQnfpm.js} +1 -1
- package/out/web/assets/{dagre-3AP2YEHR-BDuUeMHj.js → dagre-3AP2YEHR-DG76_k5_.js} +1 -1
- package/out/web/assets/{diagram-S7CK7UJ4-DgtcfE8P.js → diagram-S7CK7UJ4-CaouUoze.js} +1 -1
- package/out/web/assets/{diagram-UQ7AKVKN-DTLoEYti.js → diagram-UQ7AKVKN-B4bEc26B.js} +1 -1
- package/out/web/assets/{diagram-VSXAHHWV-ChGl9pXz.js → diagram-VSXAHHWV-BJ86Ov2Y.js} +1 -1
- package/out/web/assets/{diagram-VX7I27RA-Be8DWz0S.js → diagram-VX7I27RA-7hH5IPYf.js} +1 -1
- package/out/web/assets/{diagram-Z3DM3KII-BMXjRTOF.js → diagram-Z3DM3KII-CCM4clo8.js} +1 -1
- package/out/web/assets/dist-js-BkYNznHX.js +1 -0
- package/out/web/assets/{ebnfDiagram-PWID7BFC-8Q9pl1CJ.js → ebnfDiagram-PWID7BFC-Da7WAM3k.js} +1 -1
- package/out/web/assets/{erDiagram-SSCWMZ5O-DjH8Lnkn.js → erDiagram-SSCWMZ5O-CzzmnZWT.js} +1 -1
- package/out/web/assets/event-Cdt7Byyj.js +1 -0
- package/out/web/assets/{eventmodeling-NTZA5JFV-BKUH_DOp.js → eventmodeling-NTZA5JFV-xcfsA0XD.js} +1 -1
- package/out/web/assets/fira-code-latin-600-normal-BmSSHshu.woff +0 -0
- package/out/web/assets/fira-code-latin-600-normal-CvYZpPHg.woff2 +0 -0
- package/out/web/assets/fira-code-symbols2-600-normal-Dvq6IQE5.woff +0 -0
- package/out/web/assets/flowDiagram-A5DVABFB-JdtH1673.js +1 -0
- package/out/web/assets/{ganttDiagram-EL5Y4UJY-D7fZKJNM.js → ganttDiagram-EL5Y4UJY-B3ClFGmL.js} +1 -1
- package/out/web/assets/{gitGraph-4MIJSDKK-BypWaaBU.js → gitGraph-4MIJSDKK-BZ_y_cDU.js} +1 -1
- package/out/web/assets/{gitGraphDiagram-WWUBYQGX-DWiw_3bq.js → gitGraphDiagram-WWUBYQGX-drhRSYm3.js} +1 -1
- package/out/web/assets/index-BZ9xgmMP.css +1 -0
- package/out/web/assets/index-Ca8cCS4h.js +168 -0
- package/out/web/assets/{info-A6RAGUB7-KkAUxT4j.js → info-A6RAGUB7-B7I3K0F1.js} +1 -1
- package/out/web/assets/{infoDiagram-RXCK75RN-BNb6E48y.js → infoDiagram-RXCK75RN-deX_1MPh.js} +1 -1
- package/out/web/assets/{ishikawaDiagram-5VMMS53U-Caa-JoAK.js → ishikawaDiagram-5VMMS53U-s38yo28y.js} +1 -1
- package/out/web/assets/{journeyDiagram-EYS64GPL-DOrmFGz6.js → journeyDiagram-EYS64GPL-CZn2kB8b.js} +1 -1
- package/out/web/assets/jsx-runtime-DN4NhQUK.js +1 -0
- package/out/web/assets/{kanban-definition-3QL26DDD-BOWCYcK0.js → kanban-definition-3QL26DDD-DodjgySL.js} +1 -1
- package/out/web/assets/markdown-CMhYIcWB.js +39 -0
- package/out/web/assets/{mermaid-parser.core-BQqjCkS_.js → mermaid-parser.core-Whu2rlJC.js} +3 -3
- package/out/web/assets/mermaid.core-CKyPo8VH.js +11 -0
- package/out/web/assets/{mindmap-definition-FBJOCRG2-jTceWpr0.js → mindmap-definition-FBJOCRG2-260WBDxZ.js} +1 -1
- package/out/web/assets/modelManager-CUaGWMWu.js +2 -0
- package/out/web/assets/oauthManager-DlNhXJr6.js +1 -0
- package/out/web/assets/{packet-AYTQ26CC-CJ5RXgol.js → packet-AYTQ26CC-CEeIRKRG.js} +1 -1
- package/out/web/assets/{pegDiagram-XKGWAZYB-y8wMtd0y.js → pegDiagram-XKGWAZYB-BYadI-KO.js} +1 -1
- package/out/web/assets/{pie-WAS4IAKB-72fTBbl4.js → pie-WAS4IAKB-D8uf4dh5.js} +1 -1
- package/out/web/assets/{pieDiagram-E7YTZNPT-e0O02qWq.js → pieDiagram-E7YTZNPT-CjSDy4hO.js} +1 -1
- package/out/web/assets/{quadrantDiagram-AXDQQJYC-C9phYLom.js → quadrantDiagram-AXDQQJYC-B8D3gU5d.js} +1 -1
- package/out/web/assets/{radar-RG4KPBEZ-BAU2hzUT.js → radar-RG4KPBEZ-DZJxnokY.js} +1 -1
- package/out/web/assets/{railroad-74A4TZTK-B0bCAVHC.js → railroad-74A4TZTK-DBysUiUi.js} +1 -1
- package/out/web/assets/{railroad-abnf-HS5TGJTU-WhxO7ndE.js → railroad-abnf-HS5TGJTU-CHWxoJYg.js} +1 -1
- package/out/web/assets/{railroad-ebnf-LZEXJU2U-BkA0m7-F.js → railroad-ebnf-LZEXJU2U-DDv7X6bY.js} +1 -1
- package/out/web/assets/{railroad-peg-WCYAUIDC-BsVpHIaj.js → railroad-peg-WCYAUIDC-DpfcYYNJ.js} +1 -1
- package/out/web/assets/{railroadDiagram-O6MQD6OU-CyOLN65Q.js → railroadDiagram-O6MQD6OU-CYtyv0t3.js} +1 -1
- package/out/web/assets/{requirementDiagram-EFPCY7ZU-DQXJ7Dud.js → requirementDiagram-EFPCY7ZU-D2X-Ewik.js} +1 -1
- package/out/web/assets/{sankeyDiagram-P5KCCOFB-B2XLyIIc.js → sankeyDiagram-P5KCCOFB-Bn2x6C4Y.js} +1 -1
- package/out/web/assets/{sequenceDiagram-WJ2MYXX4-DGQY4wwm.js → sequenceDiagram-WJ2MYXX4-BvFLKtPd.js} +1 -1
- package/out/web/assets/{stateDiagram-HBIQ2CUA-DHZpDwNy.js → stateDiagram-HBIQ2CUA-Bx0GWeaY.js} +1 -1
- package/out/web/assets/stateDiagram-v2-4QOOHH4V--hol1yg_.js +1 -0
- package/out/web/assets/studio-B1mk40wD.js +1 -0
- package/out/web/assets/{swimlanes-XN3QIQJK-Bn_jcZz-.js → swimlanes-XN3QIQJK-CCma0T7L.js} +1 -1
- package/out/web/assets/swimlanesDiagram-VK2B7HYN-BkohoVsU.js +8 -0
- package/out/web/assets/{timeline-definition-24CTP7MA-CdTERuJZ.js → timeline-definition-24CTP7MA-iCRhhJ7C.js} +1 -1
- package/out/web/assets/{treeView-Q6P3EWNA-TKBKQG6R.js → treeView-Q6P3EWNA-DZ-y08qp.js} +1 -1
- package/out/web/assets/{treemap-WGGIJYW6-BP7gQoiC.js → treemap-WGGIJYW6-De0CxzMx.js} +1 -1
- package/out/web/assets/{vennDiagram-4TSXK5OY-BHUmxDuK.js → vennDiagram-4TSXK5OY-w_7aZ6xe.js} +1 -1
- package/out/web/assets/{wardley-WFR3VGLG-9bct5AAN.js → wardley-WFR3VGLG-DT0y0xJ4.js} +1 -1
- package/out/web/assets/{wardleyDiagram-VM6X3IG4-BfJwDDso.js → wardleyDiagram-VM6X3IG4-DAdXELbQ.js} +1 -1
- package/out/web/assets/window-BJCVtyET.js +1 -0
- package/out/web/assets/{xychartDiagram-S5SC5T6Z-Dqd9Mvpo.js → xychartDiagram-S5SC5T6Z-IZIXf3Vo.js} +1 -1
- package/out/web/index-web.html +4 -4
- package/out/web/index.html +4 -4
- package/package.json +80 -20
- package/shared-modules/.github/workflows/ci.yml +120 -0
- package/shared-modules/.github/workflows/update.yaml +28 -0
- package/slash-commands.json +16 -2
- 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 +18 -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/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-web.html +1 -0
- package/src/renderer/index.html +1 -2
- package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/src/renderer/shared/agentProgress.ts +201 -3
- package/src/renderer/shared/components/AgentActivityDrawer.tsx +9 -8
- package/src/renderer/shared/components/AgentActivityTable.tsx +193 -133
- package/src/renderer/shared/components/ApprovalCard.test.tsx +24 -0
- package/src/renderer/shared/components/ApprovalCard.tsx +10 -3
- package/src/renderer/shared/components/ArtifactPreviewPanel.tsx +91 -40
- package/src/renderer/shared/components/AuthGate.tsx +79 -48
- package/src/renderer/shared/components/BackgroundTerminals.tsx +181 -0
- package/src/renderer/shared/components/CalculationCard.tsx +41 -15
- package/src/renderer/shared/components/ChatCodeBlock.tsx +8 -4
- package/src/renderer/shared/components/ChatMessageItem.test.tsx +68 -0
- package/src/renderer/shared/components/ChatMessageItem.tsx +52 -33
- package/src/renderer/shared/components/ChatPanel.test.tsx +21 -0
- package/src/renderer/shared/components/ChatPanel.tsx +676 -415
- package/src/renderer/shared/components/ChunkErrorBoundary.tsx +115 -64
- package/src/renderer/shared/components/CliSessionsView.test.tsx +125 -0
- package/src/renderer/shared/components/CliSessionsView.tsx +543 -0
- package/src/renderer/shared/components/CodeReviewPage.tsx +668 -0
- package/src/renderer/shared/components/CollapsiblePasteInput.tsx +90 -0
- package/src/renderer/shared/components/CommandPalette.tsx +8 -8
- package/src/renderer/shared/components/ContextCompactionStatus.tsx +17 -0
- package/src/renderer/shared/components/DashboardSidebar.tsx +853 -229
- package/src/renderer/shared/components/DesktopTitlebar.tsx +371 -0
- package/src/renderer/shared/components/DiffReviewModal.tsx +3 -3
- package/src/renderer/shared/components/ErrorNotice.tsx +29 -0
- package/src/renderer/shared/components/FormattedMessage.tsx +11 -0
- package/src/renderer/shared/components/GeminiLiveOverlay.css +86 -0
- package/src/renderer/shared/components/GeminiLiveOverlay.test.tsx +24 -0
- package/src/renderer/shared/components/GeminiLiveOverlay.tsx +85 -101
- package/src/renderer/shared/components/GitBranchSelector.tsx +442 -0
- package/src/renderer/shared/components/GlideSelect.css +138 -0
- package/src/renderer/shared/components/GlideSelect.d.ts +31 -0
- package/src/renderer/shared/components/GlideSelect.jsx +266 -0
- package/src/renderer/shared/components/ImageGenCard.tsx +31 -12
- package/src/renderer/shared/components/ImageSearchCard.tsx +76 -65
- package/src/renderer/shared/components/ImageStudioPanel.tsx +49 -49
- package/src/renderer/shared/components/InlineThoughtNote.tsx +27 -0
- package/src/renderer/shared/components/LibraryItemCard.tsx +72 -0
- package/src/renderer/shared/components/LibraryPage.tsx +165 -0
- package/src/renderer/shared/components/LibraryPreview.tsx +59 -0
- package/src/renderer/shared/components/LinkedFoldersView.tsx +365 -46
- package/src/renderer/shared/components/McpRegistryPicker.tsx +1 -1
- package/src/renderer/shared/components/McpServersView.tsx +51 -30
- package/src/renderer/shared/components/McpToolAllowlist.tsx +2 -4
- package/src/renderer/shared/components/McpToolResults.tsx +99 -0
- package/src/renderer/shared/components/MermaidCard.tsx +14 -8
- package/src/renderer/shared/components/MintDashboard.tsx +1002 -831
- package/src/renderer/shared/components/ModSessionControls.tsx +8 -0
- package/src/renderer/shared/components/ModUi.test.tsx +65 -0
- package/src/renderer/shared/components/ModUi.tsx +26 -0
- package/src/renderer/shared/components/ModelSelectorPopover.tsx +547 -219
- package/src/renderer/shared/components/ModsPanel.tsx +156 -0
- package/src/renderer/shared/components/PlanChecklistWidget.tsx +1 -1
- package/src/renderer/shared/components/PluginsView.tsx +1 -1
- package/src/renderer/shared/components/ProgressActivity.tsx +17 -0
- package/src/renderer/shared/components/ReviewHistory.tsx +42 -0
- package/src/renderer/shared/components/RewindModal.tsx +11 -18
- package/src/renderer/shared/components/RunSummaryDashboard.tsx +8 -14
- package/src/renderer/shared/components/ScheduledTasksView.tsx +11 -10
- package/src/renderer/shared/components/ScreenCaptureDialog.css +221 -0
- package/src/renderer/shared/components/ScreenCaptureDialog.tsx +199 -0
- package/src/renderer/shared/components/SelectField.test.tsx +27 -0
- package/src/renderer/shared/components/SelectField.tsx +38 -0
- package/src/renderer/shared/components/SessionSources.tsx +48 -0
- package/src/renderer/shared/components/SessionSourcesPopover.tsx +61 -0
- package/src/renderer/shared/components/Settings/AgentsTab.tsx +41 -45
- package/src/renderer/shared/components/Settings/AudioTab.tsx +16 -15
- package/src/renderer/shared/components/Settings/AutomationTab.tsx +10 -60
- package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +368 -0
- package/src/renderer/shared/components/Settings/GeneralTab.tsx +368 -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 +20 -12
- package/src/renderer/shared/components/Settings/ProfileTab.tsx +29 -5
- package/src/renderer/shared/components/Settings/SearchableModelCombobox.tsx +411 -0
- package/src/renderer/shared/components/Settings/ThemeTab.tsx +416 -165
- package/src/renderer/shared/components/SkillsView.tsx +41 -16
- package/src/renderer/shared/components/SlashChoicePanel.tsx +88 -0
- package/src/renderer/shared/components/SlashSuggestions.test.tsx +33 -0
- package/src/renderer/shared/components/SlashSuggestions.tsx +41 -12
- package/src/renderer/shared/components/SourcesBlock.tsx +55 -51
- package/src/renderer/shared/components/StockCard.tsx +58 -24
- package/src/renderer/shared/components/SubagentDagView.tsx +4 -4
- package/src/renderer/shared/components/TerminalDock.tsx +241 -0
- package/src/renderer/shared/components/ThinkingBlock.tsx +14 -8
- package/src/renderer/shared/components/ToolSurfacePage.test.tsx +32 -0
- package/src/renderer/shared/components/ToolSurfacePage.tsx +568 -0
- package/src/renderer/shared/components/ToolsPanelToggle.tsx +13 -0
- package/src/renderer/shared/components/UiFeatureCard.tsx +267 -0
- package/src/renderer/shared/components/UiGridCard.tsx +188 -0
- package/src/renderer/shared/components/UiMockupWidget.tsx +149 -0
- package/src/renderer/shared/components/VeoStudioPanel.tsx +22 -37
- package/src/renderer/shared/components/ViewedImages.tsx +36 -0
- package/src/renderer/shared/components/VirtualChatHistory.tsx +82 -0
- package/src/renderer/shared/components/VoicePill.css +85 -0
- package/src/renderer/shared/components/VoicePill.d.ts +12 -0
- package/src/renderer/shared/components/VoicePill.jsx +190 -0
- package/src/renderer/shared/components/VoicePill.test.tsx +22 -0
- package/src/renderer/shared/components/WeatherCard.tsx +3 -3
- package/src/renderer/shared/components/WorkspaceContextPopover.tsx +138 -0
- package/src/renderer/shared/components/WorkspacePaneResizer.tsx +92 -0
- package/src/renderer/shared/components/WorkspacePreviewActions.test.tsx +44 -0
- package/src/renderer/shared/components/WorkspacePreviewActions.tsx +19 -0
- package/src/renderer/shared/components/WorkspaceSelector.tsx +154 -0
- package/src/renderer/shared/components/background-terminals.css +292 -0
- package/src/renderer/shared/components/ui/README.md +52 -0
- package/src/renderer/shared/components/ui/button.tsx +37 -0
- package/src/renderer/shared/components/ui/demo.tsx +26 -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-selector.css +248 -0
- package/src/renderer/shared/constants/config.ts +57 -3
- package/src/renderer/shared/constants/models.ts +189 -2
- package/src/renderer/shared/constants/slashCommands.ts +1 -1
- package/src/renderer/shared/conversation/coordinator.test.ts +27 -0
- package/src/renderer/shared/conversation/coordinator.ts +82 -0
- package/src/renderer/shared/conversation/lifecycle.test.ts +362 -0
- package/src/renderer/shared/conversation/lifecycle.ts +418 -0
- package/src/renderer/shared/conversation/projectNavigation.test.ts +105 -0
- package/src/renderer/shared/conversation/projectNavigation.ts +39 -0
- package/src/renderer/shared/conversation/sourcesTransport.ts +27 -0
- package/src/renderer/shared/conversation/syncView.test.ts +13 -0
- package/src/renderer/shared/conversation/syncView.ts +6 -0
- package/src/renderer/shared/conversation/transport.test.ts +163 -0
- package/src/renderer/shared/conversation/transport.ts +159 -0
- package/src/renderer/shared/conversation/useConversationCoordinator.ts +64 -0
- package/src/renderer/shared/css/agent-observability.css +46 -15
- package/src/renderer/shared/css/auth-gate.css +114 -15
- package/src/renderer/shared/css/chat-ui-cards.css +495 -0
- package/src/renderer/shared/css/code-review.css +856 -0
- package/src/renderer/shared/css/code-sessions.css +479 -0
- 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 +132 -0
- package/src/renderer/shared/css/image-studio.css +16 -16
- package/src/renderer/shared/css/library.css +476 -0
- package/src/renderer/shared/css/management-views.css +415 -27
- package/src/renderer/shared/css/mcp-results.css +11 -0
- package/src/renderer/shared/css/model-selector.css +543 -85
- package/src/renderer/shared/css/mods.css +77 -0
- package/src/renderer/shared/css/notification-notice.css +28 -0
- package/src/renderer/shared/css/session-sources-popover.css +9 -0
- package/src/renderer/shared/css/session-sources.css +23 -0
- package/src/renderer/shared/css/settings/agents.css +1 -1
- package/src/renderer/shared/css/settings/automation.css +13 -13
- package/src/renderer/shared/css/settings/general.css +526 -5
- 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 +5 -5
- package/src/renderer/shared/css/settings/profile.css +331 -1
- package/src/renderer/shared/css/settings/theme.css +656 -3
- 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/veo-studio.css +16 -15
- package/src/renderer/shared/css/viewed-images.css +15 -0
- package/src/renderer/shared/fonts.css +46 -0
- package/src/renderer/shared/fonts.ts +10 -37
- 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 +90 -0
- package/src/renderer/shared/platform.ts +219 -7
- package/src/renderer/shared/theme/themeManager.test.ts +43 -0
- package/src/renderer/shared/theme/themeManager.ts +157 -0
- package/src/renderer/shared/theme/themes.ts +116 -0
- package/src/renderer/shared/theme/tokens.css +318 -0
- package/src/renderer/shared/types.ts +137 -2
- package/src/renderer/shared/utils/agentActivity.test.ts +75 -0
- package/src/renderer/shared/utils/agentActivity.ts +168 -8
- 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/cardJson.test.ts +35 -0
- package/src/renderer/shared/utils/cardJson.ts +30 -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/fileIcons.ts +1 -1
- package/src/renderer/shared/utils/markdown.tsx +330 -81
- package/src/renderer/shared/utils/markdown.webImages.test.tsx +40 -0
- package/src/renderer/shared/utils/mcpResults.test.tsx +91 -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/progressCache.test.ts +32 -0
- package/src/renderer/shared/utils/providers.ts +8 -3
- package/src/renderer/shared/utils/screenCapture.ts +43 -0
- package/src/renderer/shared/utils/sessionSources.test.ts +31 -0
- package/src/renderer/shared/utils/sessionSources.ts +34 -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 +51 -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/ui.ts +4 -64
- 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 +80 -72
- package/src/renderer/shared/utils/useSessionSources.ts +33 -0
- package/src/renderer/shared/utils/viewedImages.ts +26 -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 +24 -0
- package/src/renderer/shared/utils/workspacePreview.ts +16 -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 +10 -0
- package/src/renderer/shared/workspaceUndo.ts +88 -0
- package/src/renderer/src/App.tsx +16 -1
- package/src/renderer/src/components/BrowserShell.tsx +108 -0
- package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +91 -0
- package/src/renderer/src/components/LiveTranslateControls.tsx +65 -0
- package/src/renderer/src/components/MintDashboard.tsx +4 -2
- package/src/renderer/src/components/PicturesLibrary.tsx +2 -287
- package/src/renderer/src/components/ScreenPicker.css +227 -0
- package/src/renderer/src/components/ScreenPicker.tsx +312 -526
- package/src/renderer/src/components/SettingsWindow.tsx +48 -5
- package/src/renderer/src/components/SpotlightWindow.tsx +1 -0
- package/src/renderer/src/components/WidgetWindow.tsx +27 -3
- package/src/renderer/src/components/WorkspacePanel.tsx +269 -61
- package/src/renderer/src/components/browser-shell.css +185 -0
- package/src/renderer/src/components/browser-suggestions-popup.css +55 -0
- package/src/renderer/src/components/liveTranslateFrames.test.ts +44 -0
- package/src/renderer/src/components/liveTranslateFrames.ts +45 -0
- package/src/renderer/src/components/liveTranslateLanguage.ts +6 -0
- package/src/renderer/src/css/app-shell.css +400 -204
- package/src/renderer/src/css/chat.css +1666 -594
- package/src/renderer/src/css/dashboard.css +11 -0
- package/src/renderer/src/css/desktop-tools.css +928 -0
- package/src/renderer/src/css/misc.css +5 -60
- package/src/renderer/src/css/pictures.css +2 -407
- package/src/renderer/src/css/settings/base.css +394 -157
- package/src/renderer/src/css/sidebar-workspace.css +1072 -376
- package/src/renderer/src/css/spotlight.css +15 -26
- package/src/renderer/src/css/tool-surfaces.css +784 -0
- package/src/renderer/src/css/widget.css +36 -8
- package/src/renderer/src/env.d.ts +4 -9
- package/src/renderer/src/hooks/useProviderModels.ts +2 -9
- package/src/renderer/src/index.css +53 -46
- package/src/renderer/src/main.tsx +12 -0
- package/src/renderer/src/proactiveSuggestions.ts +29 -0
- package/src/renderer/src/tauri.ts +302 -339
- package/src/renderer/src/voiceInput.ts +2 -1
- package/src/renderer/src-web/App.tsx +40 -0
- package/src/renderer/src-web/components/MintDashboard.tsx +4 -2
- package/src/renderer/src-web/components/PicturesLibrary.tsx +2 -284
- package/src/renderer/src-web/components/PullToRefresh.tsx +107 -0
- package/src/renderer/src-web/components/SettingsWindow.tsx +36 -5
- package/src/renderer/src-web/css/app-shell.css +188 -207
- package/src/renderer/src-web/css/chat.css +1236 -507
- package/src/renderer/src-web/css/dashboard.css +11 -0
- package/src/renderer/src-web/css/misc.css +3 -55
- package/src/renderer/src-web/css/mobile.css +679 -0
- package/src/renderer/src-web/css/pictures.css +2 -415
- package/src/renderer/src-web/css/pull-to-refresh.css +54 -0
- package/src/renderer/src-web/css/settings/base.css +353 -134
- package/src/renderer/src-web/css/settings/mobile.css +320 -0
- package/src/renderer/src-web/css/sidebar-workspace.css +546 -187
- package/src/renderer/src-web/css/spotlight.css +9 -26
- package/src/renderer/src-web/css/widget.css +1 -6
- package/src/renderer/src-web/env.d.ts +4 -12
- package/src/renderer/src-web/hooks/useProviderModels.ts +2 -9
- package/src/renderer/src-web/index.css +53 -96
- package/src/renderer/src-web/main.tsx +12 -0
- package/src/renderer/src-web/proactiveSuggestions.ts +3 -0
- package/src/renderer/src-web/tauri.ts +309 -364
- package/src/renderer/tests/backgroundTerminals.browser.html +81 -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/glideSelect.browser.html +71 -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/modInput.browser.html +22 -0
- package/src/renderer/tests/sessionSources.browser.html +1 -0
- package/src/renderer/tests/sessionSources.browser.tsx +107 -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/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 +98 -0
- package/src/renderer/tests/workspaceUndo.browser.html +92 -0
- package/src-tauri/Cargo.toml +40 -0
- package/src-tauri/build.rs +3 -0
- package/src-tauri/src/app/lifecycle.rs +277 -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 +642 -0
- package/src-tauri/src/commands/integrations.rs +157 -0
- package/src-tauri/src/commands/media.rs +179 -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 +501 -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 +2 -0
- package/vite.config.ts +4 -1
- package/vite.config.web.ts +5 -0
- package/.cargo/config.toml +0 -13
- package/.claude/settings.local.json +0 -182
- package/.codex +0 -0
- package/CLAUDE.md +0 -102
- package/out/web/Live2DCubismCore.js +0 -9
- package/out/web/assets/MintDashboard-DWSqucgb.js +0 -57
- package/out/web/assets/SettingsWindow-DFM2aj5B.js +0 -2
- package/out/web/assets/chunk-CKBBP62Z-nr1uKPj9.js +0 -2
- package/out/web/assets/chunk-DSNCTWBM-Dtj8Rqsd.js +0 -2
- package/out/web/assets/chunk-DU6HZSFF-2tv5K1wT.js +0 -128
- package/out/web/assets/classDiagram-DTDB5LWJ-BdSFArgw.js +0 -1
- package/out/web/assets/classDiagram-v2-JRS7N3AN-BdSFArgw.js +0 -1
- package/out/web/assets/core-DImejIUG.js +0 -1
- package/out/web/assets/dist-js-BxuKEVWM.js +0 -1
- package/out/web/assets/event-BNl8Zahw.js +0 -1
- package/out/web/assets/fira-code-cyrillic-400-normal-UC0NFL4U.woff2 +0 -0
- package/out/web/assets/fira-code-cyrillic-400-normal-dc1q3VD7.woff +0 -0
- package/out/web/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff +0 -0
- package/out/web/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2 +0 -0
- package/out/web/assets/fira-code-cyrillic-ext-400-normal-Buh61xzB.woff +0 -0
- package/out/web/assets/fira-code-cyrillic-ext-400-normal-txZ9Fk_1.woff2 +0 -0
- package/out/web/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2 +0 -0
- package/out/web/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff +0 -0
- package/out/web/assets/fira-code-greek-400-normal-B2Gh_Y8s.woff2 +0 -0
- package/out/web/assets/fira-code-greek-400-normal-DobhaxvF.woff +0 -0
- package/out/web/assets/fira-code-greek-500-normal-CVO0IRNt.woff2 +0 -0
- package/out/web/assets/fira-code-greek-500-normal-DEXIWiey.woff +0 -0
- package/out/web/assets/fira-code-greek-ext-400-normal-DR7mBgIM.woff2 +0 -0
- package/out/web/assets/fira-code-greek-ext-400-normal-DSPUheWg.woff +0 -0
- package/out/web/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2 +0 -0
- package/out/web/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff +0 -0
- package/out/web/assets/fira-code-latin-ext-400-normal-DG73JjOf.woff +0 -0
- package/out/web/assets/fira-code-latin-ext-400-normal-KSMg0QLl.woff2 +0 -0
- package/out/web/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff +0 -0
- package/out/web/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2 +0 -0
- package/out/web/assets/flowDiagram-A5DVABFB-BpnHUSU7.js +0 -1
- package/out/web/assets/index-CVRg270z.css +0 -1
- package/out/web/assets/index-DxZQr9yD.js +0 -10
- package/out/web/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/out/web/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/out/web/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
- package/out/web/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
- package/out/web/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
- package/out/web/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
- package/out/web/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/out/web/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/out/web/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
- package/out/web/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
- package/out/web/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
- package/out/web/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
- package/out/web/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/out/web/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/out/web/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
- package/out/web/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
- package/out/web/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
- package/out/web/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
- package/out/web/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/out/web/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/out/web/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
- package/out/web/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
- package/out/web/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
- package/out/web/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
- package/out/web/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/out/web/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/out/web/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
- package/out/web/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/out/web/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
- package/out/web/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
- package/out/web/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/out/web/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/out/web/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
- package/out/web/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
- package/out/web/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
- package/out/web/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
- package/out/web/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/out/web/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/out/web/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- package/out/web/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
- package/out/web/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
- package/out/web/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- package/out/web/assets/kanit-latin-400-normal-BUlsQXH3.woff2 +0 -0
- package/out/web/assets/kanit-latin-400-normal-HVZWrfev.woff +0 -0
- package/out/web/assets/kanit-latin-500-normal-CX_4XcKi.woff2 +0 -0
- package/out/web/assets/kanit-latin-500-normal-qBha86O4.woff +0 -0
- package/out/web/assets/kanit-latin-600-normal-0lS78yAd.woff2 +0 -0
- package/out/web/assets/kanit-latin-600-normal-DlacpeTg.woff +0 -0
- package/out/web/assets/kanit-latin-ext-400-normal-B2xPf58u.woff2 +0 -0
- package/out/web/assets/kanit-latin-ext-400-normal-CHvNKHHD.woff +0 -0
- package/out/web/assets/kanit-latin-ext-500-normal-BFdWrG22.woff +0 -0
- package/out/web/assets/kanit-latin-ext-500-normal-EHs3suD6.woff2 +0 -0
- package/out/web/assets/kanit-latin-ext-600-normal-BBDzoLaj.woff +0 -0
- package/out/web/assets/kanit-latin-ext-600-normal-DAX3wtuq.woff2 +0 -0
- package/out/web/assets/kanit-thai-400-normal-D2nliXKa.woff +0 -0
- package/out/web/assets/kanit-thai-400-normal-D80Pglro.woff2 +0 -0
- package/out/web/assets/kanit-thai-500-normal-BB8gri04.woff2 +0 -0
- package/out/web/assets/kanit-thai-500-normal-Iy_w0a80.woff +0 -0
- package/out/web/assets/kanit-thai-600-normal-Bj6oiaDc.woff2 +0 -0
- package/out/web/assets/kanit-thai-600-normal-wbTlPO7I.woff +0 -0
- package/out/web/assets/kanit-vietnamese-400-normal-DRI8YWyb.woff2 +0 -0
- package/out/web/assets/kanit-vietnamese-400-normal-dow6Bnto.woff +0 -0
- package/out/web/assets/kanit-vietnamese-500-normal-BzTrpCM3.woff2 +0 -0
- package/out/web/assets/kanit-vietnamese-500-normal-T1ndT7MF.woff +0 -0
- package/out/web/assets/kanit-vietnamese-600-normal-Bi7fw3I4.woff2 +0 -0
- package/out/web/assets/kanit-vietnamese-600-normal-DXCRAa_8.woff +0 -0
- package/out/web/assets/mali-latin-400-normal-ByPcZ8Gx.woff +0 -0
- package/out/web/assets/mali-latin-400-normal-Cuc6Ykl8.woff2 +0 -0
- package/out/web/assets/mali-latin-500-normal-B01M-LP6.woff2 +0 -0
- package/out/web/assets/mali-latin-500-normal-Thgqw_9f.woff +0 -0
- package/out/web/assets/mali-latin-600-normal-B9TiUNpT.woff2 +0 -0
- package/out/web/assets/mali-latin-600-normal-CycpQCwU.woff +0 -0
- package/out/web/assets/mali-latin-ext-400-normal-DUVdJQO4.woff +0 -0
- package/out/web/assets/mali-latin-ext-400-normal-iCG1ALuJ.woff2 +0 -0
- package/out/web/assets/mali-latin-ext-500-normal-BfJE4UMZ.woff2 +0 -0
- package/out/web/assets/mali-latin-ext-500-normal-FoLEyOKS.woff +0 -0
- package/out/web/assets/mali-latin-ext-600-normal-BTvIfiCp.woff2 +0 -0
- package/out/web/assets/mali-latin-ext-600-normal-DAQcLVmD.woff +0 -0
- package/out/web/assets/mali-thai-400-normal-BO7A3bLZ.woff2 +0 -0
- package/out/web/assets/mali-thai-400-normal-CX9VrjTn.woff +0 -0
- package/out/web/assets/mali-thai-500-normal-Cph2qha9.woff +0 -0
- package/out/web/assets/mali-thai-500-normal-D89rMT77.woff2 +0 -0
- package/out/web/assets/mali-thai-600-normal-DPgXT6rZ.woff +0 -0
- package/out/web/assets/mali-thai-600-normal-DlTx3OsB.woff2 +0 -0
- package/out/web/assets/mali-vietnamese-400-normal-DUKxzXaz.woff2 +0 -0
- package/out/web/assets/mali-vietnamese-400-normal-gFDLvsOK.woff +0 -0
- package/out/web/assets/mali-vietnamese-500-normal--OY07q2c.woff +0 -0
- package/out/web/assets/mali-vietnamese-500-normal-KDrNRwfW.woff2 +0 -0
- package/out/web/assets/mali-vietnamese-600-normal-CtTMUU7T.woff +0 -0
- package/out/web/assets/mali-vietnamese-600-normal-DFlJr66u.woff2 +0 -0
- package/out/web/assets/mermaid.core-DYGGlqOf.js +0 -11
- package/out/web/assets/mitr-latin-400-normal-Cb18vPmZ.woff +0 -0
- package/out/web/assets/mitr-latin-400-normal-CwbkLQ4a.woff2 +0 -0
- package/out/web/assets/mitr-latin-500-normal-B4JOhzAi.woff +0 -0
- package/out/web/assets/mitr-latin-500-normal-BmClOow2.woff2 +0 -0
- package/out/web/assets/mitr-latin-ext-400-normal-B3CPG7Yo.woff2 +0 -0
- package/out/web/assets/mitr-latin-ext-400-normal-DTx65hiC.woff +0 -0
- package/out/web/assets/mitr-latin-ext-500-normal-B_Diajz1.woff2 +0 -0
- package/out/web/assets/mitr-latin-ext-500-normal-DYOsVaVT.woff +0 -0
- package/out/web/assets/mitr-thai-400-normal-CS4Do6aM.woff +0 -0
- package/out/web/assets/mitr-thai-400-normal-CXWaAdVj.woff2 +0 -0
- package/out/web/assets/mitr-thai-500-normal-CVdBrEVH.woff2 +0 -0
- package/out/web/assets/mitr-thai-500-normal-CW_B5D-i.woff +0 -0
- package/out/web/assets/mitr-vietnamese-400-normal-CPMGWyoC.woff2 +0 -0
- package/out/web/assets/mitr-vietnamese-400-normal-Z6XhIpdY.woff +0 -0
- package/out/web/assets/mitr-vietnamese-500-normal-CDrv0585.woff2 +0 -0
- package/out/web/assets/mitr-vietnamese-500-normal-CMQWyq-Z.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-400-normal-BaWBrqFP.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-latin-400-normal-Dh_FJjOB.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-500-normal-BC04jsmm.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-500-normal-fyBKClF1.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-latin-600-normal-CemcjnVR.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-latin-600-normal-Dbc-dNO6.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-400-normal-B-1H0YkH.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-400-normal-nBP59pVw.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-500-normal-B-ZWb8SZ.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-500-normal-CrEHO7C8.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-600-normal-PkMZo0xa.woff +0 -0
- package/out/web/assets/noto-sans-thai-latin-ext-600-normal-maHHBsez.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-thai-400-normal-BEOmKAI1.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-thai-400-normal-Dxb_unuU.woff +0 -0
- package/out/web/assets/noto-sans-thai-thai-500-normal-BOGXO2tw.woff +0 -0
- package/out/web/assets/noto-sans-thai-thai-500-normal-CU_X86GQ.woff2 +0 -0
- package/out/web/assets/noto-sans-thai-thai-600-normal-CmgB8_JK.woff +0 -0
- package/out/web/assets/noto-sans-thai-thai-600-normal-Cs73sVjl.woff2 +0 -0
- package/out/web/assets/oauthManager-DNiwM8Rn.js +0 -2
- package/out/web/assets/oauthManager-DuamS1Av.css +0 -1
- package/out/web/assets/outfit-latin-300-normal-AWLfuCom.woff +0 -0
- package/out/web/assets/outfit-latin-300-normal-CRYTwY6m.woff2 +0 -0
- package/out/web/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
- package/out/web/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
- package/out/web/assets/outfit-latin-500-normal-ClnHRwRh.woff +0 -0
- package/out/web/assets/outfit-latin-500-normal-DKnIMDSk.woff2 +0 -0
- package/out/web/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
- package/out/web/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
- package/out/web/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2 +0 -0
- package/out/web/assets/outfit-latin-ext-300-normal-CMIMshEd.woff +0 -0
- package/out/web/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
- package/out/web/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
- package/out/web/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff +0 -0
- package/out/web/assets/outfit-latin-ext-500-normal-zeox_O30.woff2 +0 -0
- package/out/web/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
- package/out/web/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
- package/out/web/assets/preload-helper-D0uHx7FM.js +0 -1
- 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-ext-400-normal-1pHbN9uy.woff +0 -0
- package/out/web/assets/prompt-latin-ext-400-normal-DdSafGZ9.woff2 +0 -0
- package/out/web/assets/prompt-latin-ext-500-normal--EZ1um7s.woff2 +0 -0
- package/out/web/assets/prompt-latin-ext-500-normal-D-lI1EVT.woff +0 -0
- package/out/web/assets/prompt-latin-ext-600-normal-C8b50x67.woff +0 -0
- package/out/web/assets/prompt-latin-ext-600-normal-Cg9L7iJU.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-vietnamese-400-normal-BCPzsgPT.woff2 +0 -0
- package/out/web/assets/prompt-vietnamese-400-normal-D4pLyeNK.woff +0 -0
- package/out/web/assets/prompt-vietnamese-500-normal-DmzxmPwa.woff2 +0 -0
- package/out/web/assets/prompt-vietnamese-500-normal-w_sS_j2F.woff +0 -0
- package/out/web/assets/prompt-vietnamese-600-normal-1dyohtNh.woff +0 -0
- package/out/web/assets/prompt-vietnamese-600-normal-7QWjJBsF.woff2 +0 -0
- package/out/web/assets/sarabun-latin-400-normal-DmguIS-7.woff +0 -0
- package/out/web/assets/sarabun-latin-400-normal-URPBxl-K.woff2 +0 -0
- package/out/web/assets/sarabun-latin-500-normal-BjUTcdxu.woff2 +0 -0
- package/out/web/assets/sarabun-latin-500-normal-CJexTAnl.woff +0 -0
- package/out/web/assets/sarabun-latin-600-normal-9FonlkKx.woff +0 -0
- package/out/web/assets/sarabun-latin-600-normal-DMD3TROr.woff2 +0 -0
- package/out/web/assets/sarabun-latin-ext-400-normal-BbP7GpLL.woff2 +0 -0
- package/out/web/assets/sarabun-latin-ext-400-normal-BsmTn0SS.woff +0 -0
- package/out/web/assets/sarabun-latin-ext-500-normal-Cot16Bd2.woff +0 -0
- package/out/web/assets/sarabun-latin-ext-500-normal-DE1LysqI.woff2 +0 -0
- package/out/web/assets/sarabun-latin-ext-600-normal-0tXu9x_i.woff +0 -0
- package/out/web/assets/sarabun-latin-ext-600-normal-BRxjKUQ6.woff2 +0 -0
- package/out/web/assets/sarabun-thai-400-normal-C2DaJlKK.woff2 +0 -0
- package/out/web/assets/sarabun-thai-400-normal-CH-UbWgg.woff +0 -0
- package/out/web/assets/sarabun-thai-500-normal-BVssjame.woff2 +0 -0
- package/out/web/assets/sarabun-thai-500-normal-C3iDLEzi.woff +0 -0
- package/out/web/assets/sarabun-thai-600-normal-3dIAQ-_s.woff2 +0 -0
- package/out/web/assets/sarabun-thai-600-normal-DWKeTe6a.woff +0 -0
- package/out/web/assets/sarabun-vietnamese-400-normal-DPfkSCMy.woff +0 -0
- package/out/web/assets/sarabun-vietnamese-400-normal-igdrzAGY.woff2 +0 -0
- package/out/web/assets/sarabun-vietnamese-500-normal-CpRVvGRU.woff +0 -0
- package/out/web/assets/sarabun-vietnamese-500-normal-Dpe7Br9m.woff2 +0 -0
- package/out/web/assets/sarabun-vietnamese-600-normal-BMbOgAW-.woff +0 -0
- package/out/web/assets/sarabun-vietnamese-600-normal-DkxrOlLB.woff2 +0 -0
- package/out/web/assets/stateDiagram-v2-4QOOHH4V-s6P9g2_b.js +0 -1
- package/out/web/assets/swimlanesDiagram-VK2B7HYN-CV9fOLrV.js +0 -8
- package/out/web/assets/tauri-CNrHQ2Gb.js +0 -3
- package/out/web/assets/window-DkIhgI7B.js +0 -1
- package/skills-lock.json +0 -41
- package/src/renderer/public/Live2DCubismCore.js +0 -9
- package/src/renderer/src/companionWidget.ts +0 -95
- package/src/renderer/src/components/Live2DStage.tsx +0 -389
- package/src/renderer/src/components/ModelPanel.tsx +0 -154
- package/src/renderer/src/css/model.css +0 -627
- package/src/renderer/src-web/companionWidget.ts +0 -37
- package/src/renderer/src-web/components/ModelPanel.tsx +0 -12
- package/src/renderer/src-web/css/model.css +0 -628
package/Release_Note.md
CHANGED
|
@@ -1,465 +1,72 @@
|
|
|
1
|
-
# Release Notes - Mint Agent v1.
|
|
1
|
+
# Release Notes - Mint Agent v1.16.0
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Highlights
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- Updated the locked `source-map-js` dependency from 1.2.1 to 1.2.2 to fix GHSA-68fv-2mgg-jv7q and restore the CI `npm audit --audit-level=high` check.
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **Resilient Group Status Rollup & Smart Error Recovery**:
|
|
12
|
-
- Fixed false-positive red `Failed` badges on tool groups when searches or tool calls experienced intermediate non-fatal hiccups or trailing redundant calls.
|
|
13
|
-
- Group status in `agentActivity.ts` now rolls up to `done` (`✓`) if at least one sub-step succeeded (`hasDone`), marking a group as `error` only if zero sub-steps succeeded.
|
|
14
|
-
- Non-fatal tool errors occurring before an overall successful run (`RunCompleted` with `SUCCESS`) are marked as `retry` / recovered rather than fatal failures.
|
|
15
|
-
- Granular sub-step badges remain fully transparent when expanding the accordion.
|
|
16
|
-
- **Cross-Platform Parameter Alias Resolution (CLI, Desktop & Web)**:
|
|
17
|
-
- **Rust Backend (`crates/mint-core`)**: Added Serde aliases on `AgentInput` for `query` (`q`, `keyword`, `search`, `searchTerm`, `search_term`), `symbol` (`ticker`), `city` (`location`, `place`), `expression` (`expr`, `math`), and `command` (`cmd`). In `tools/web.rs`, added fallback checks against `prompt`, `command`, and `symbol` to eliminate `(empty query)` errors.
|
|
18
|
-
- **CLI (`crates/mint-cli`)**: Added matching alias support in `generic_tool_label`, `explored_action_label`, and `ran_command_labels` ensuring 100% Platform Parity.
|
|
19
|
-
- **Frontend (`agentActivity.ts`)**: Enhanced `describeTool` to parse all parameter aliases and prioritized `query` over generic placeholders.
|
|
20
|
-
- **Accurate Tool Target & Inline Result Extraction**:
|
|
21
|
-
- Enhanced `describeTool` in `agentActivity.ts` to extract `expression` / `expr` for math queries, `city` / `location` for weather, `symbol` for stock tickers, and `url` / `selector` for browser automation.
|
|
22
|
-
- Eliminated the fallback where target duplicated the action name (e.g. `calculation` repeating as target `calculation`).
|
|
23
|
-
- Added concise inline result previews (e.g. `16 - 28 + 12 → 0`).
|
|
24
|
-
- **Modern Activity Feed Architecture (`AgentActivityTable.tsx`)**:
|
|
25
|
-
- Replaced the rigid 4-column raw table (`Tool | Target | >`) with a modern Activity Feed with category icons (Lucide `Calculator`, `FileCode`, `Folder`, `Terminal`, `Search`, `Wrench`), status badges, and expandable output logs.
|
|
26
|
-
- Synchronized CSS stylesheets across Desktop (`src/renderer/src/css/chat.css`) and Web (`src/renderer/src-web/css/chat.css`).
|
|
7
|
+
- New workspace mods use **`.mint-mods/<id>/`**; existing `mint-mods/<id>/` sources remain supported. The hidden folder takes precedence for duplicate IDs, while legacy edits stay in place. Moved this workspace’s `token-weather` mod into `.mint-mods` with its files unchanged.
|
|
8
|
+
- Added **Mint Mods**: custom panels, commands, and tool guards across CLI, Desktop, and Web, with hot reload, permission review, and import/export.
|
|
9
|
+
- Moved Live2D into the optional **Mint Companion** app, which follows a selected Mint conversation without starting another backend.
|
|
10
|
+
- Changed Mint’s project license to **MIT**. Third-party dependencies and bundled assets retain their own licenses.
|
|
27
11
|
|
|
28
|
-
##
|
|
12
|
+
## Terminal and chat
|
|
29
13
|
|
|
30
|
-
|
|
14
|
+
- Corrected parallel tool activity: identical calls retain separate cards and call IDs, blocked calls display failure, and parallel subagent dispatches report live status and actual elapsed time.
|
|
31
15
|
|
|
32
|
-
- **
|
|
33
|
-
- Replaced plain text provider badge with a sleek, pill-shaped chip displaying provider indicator dot, clean provider name, and model tag.
|
|
34
|
-
- Dynamic indicator dot styling tailored to provider archetype (Anthropic amber, OpenAI green, Google/Gemini cyan, DeepSeek blue, Ollama purple, Groq orange, Mint emerald).
|
|
35
|
-
- Built with theme-adaptive background (`var(--surface-bg)`), subtle border, and interactive hover illumination.
|
|
36
|
-
- Implemented across completed chat turns (`ChatMessageItem.tsx`) and live streaming responses (`ChatPanel.tsx`).
|
|
37
|
-
- **Ghost Message Actions (`.msg-action-btn`)**:
|
|
38
|
-
- Upgraded action buttons (Copy, Read Aloud / TTS, Edit) into polished 26x26px ghost buttons.
|
|
39
|
-
- Smooth hover backgrounds, micro-border feedback, and prominent emerald accent states with pulsing glow for active playback and copy confirmation.
|
|
40
|
-
- **Thinking / Reasoning CoT Block Overhaul (`ThinkingBlock.tsx`)**:
|
|
41
|
-
- **Quiet UI Aesthetic**: Replaced neon cyberpunk green borders and radioactive glowing effects with refined, quiet neutral borders (`var(--border, rgba(255, 255, 255, 0.08))`) inspired by Claude 3.7 and Cursor.
|
|
42
|
-
- Replaced legacy question-mark icon with an authentic, neutral **Brain** icon (`<Brain size={14} />`) from Lucide.
|
|
43
|
-
- Added a gentle, non-distracting live breathing pulse indicator (`@keyframes thinkingDotPulse`) without high-intensity colored halos.
|
|
44
|
-
- **Secondary Role Typography & Visual Hierarchy**:
|
|
45
|
-
- Downscaled reasoning body text size to `12.5px` (compact and distinct from the `15px` primary chat messages) with line-height `1.55`.
|
|
46
|
-
- Dropped text color to muted slate (`var(--text-muted, #94a3b8)` with `opacity: 0.88`), communicating its role as internal background reasoning / secondary metadata.
|
|
47
|
-
- Scoped all markdown children inside reasoning steps (`.chat-formatted-body`, `.chat-paragraph`, `.chat-heading`, `.chat-list-*`, `.chat-bold-highlight`, `.chat-inline-code`): clamped headings to `12.8px`, subdued bold highlights, neutralized list bullets and numbering from neon green to muted slate, and tightened vertical margins.
|
|
48
|
-
- Added custom ultra-slim 3px scrollbar (`.thinking-block-content::-webkit-scrollbar`) with translucent thumb for deep reasoning chains.
|
|
49
|
-
- **Complete Desktop & Web Parity**:
|
|
50
|
-
- Unified component logic in `src/renderer/shared` and synchronized stylesheet updates across `src/renderer/src/css/chat.css` and `src/renderer/src-web/css/chat.css`.
|
|
16
|
+
- TUI `/resume` now restores saved tool cards, full input/output through **Ctrl+O**, reasoning through **Ctrl+T**, and per-turn completion/failure summaries. New tool events persist elapsed time; older activity without timing displays **time unavailable**. Unfinished saved calls display **Interrupted** without restarting a spinner, and reloading or switching sessions clears stale viewers and avoids duplicate history.
|
|
51
17
|
|
|
52
|
-
|
|
18
|
+
- Restored pinned live tool details above the TUI composer after compact tool cards hid them: active counts, abbreviated commands, animated spinners, and elapsed timers stay visible while scrolling the transcript and take priority over older status lines. Finished calls leave this live area while their compact cards remain in history.
|
|
53
19
|
|
|
54
|
-
|
|
20
|
+
- TUI tool calls now use compact three-line cards that update in place on completion, keeping long commands and output out of the default transcript. **Ctrl+O** opens full input/output, **Tab/Shift+Tab** switches calls, and **Ctrl+Y** copies all details. Active counts separate shell commands from other tools without counting completed calls; failures display in red and successful calls in green.
|
|
55
21
|
|
|
56
|
-
- **
|
|
57
|
-
- **DeepSeek Reasoner**: Extracted `message["reasoning_content"]` emitted during native tool calling and conversation turns.
|
|
58
|
-
- **OpenRouter & Compatible Endpoints**: Extracted `message["reasoning"]` and `message["thought"]` fields.
|
|
59
|
-
- **Embedded `<think>` Tags**: Added `extract_think_tag` parser to detect and extract `<think>...</think>` blocks embedded in model text streams (such as Ollama or local QwQ/R1 deployments).
|
|
60
|
-
- **Google Gemini 2.0 Flash Thinking**: Separated candidate parts with `thought: true` into the reasoning thought stream instead of blending into the final content string.
|
|
61
|
-
- **Anthropic Claude 3.7 Sonnet**: Ingested native `thinking` content blocks.
|
|
62
|
-
- **Ollama**: Extracted `message["thinking"]` and `message["reasoning_content"]`.
|
|
63
|
-
- **Orchestration Agent Loop Integration (`crates/mint-core/src/orchestration/mod.rs`)**:
|
|
64
|
-
- Attached extracted `thought` tokens to `AgentDecision` across tool-calling and completion turns.
|
|
65
|
-
- Guaranteed `AgentProgress::Thought` is emitted for every step containing reasoning traces, allowing the frontend's `ThinkingBlock` to render the live pulsing brain icon and step-by-step reasoning steps.
|
|
66
|
-
- Added unit test coverage for each reasoning provider schema.
|
|
22
|
+
- TUI now streams reasoning into a preview capped at six terminal rows, with a live **Thinking** timer and automatic scrolling to the latest text. Completed blocks collapse to **Thought · … (Ctrl+T to view)**. Ctrl+T opens the full reasoning during and after an agent turn, updates as text arrives, and preserves interrupted reasoning for review.
|
|
67
23
|
|
|
24
|
+
- Added a startup TUI update menu with **Update now**, **Skip** (selected by default), and **Skip until next version**. Skipped versions persist across launches; newer releases still notify. Installation runs the existing approved npm updater outside the TUI and exits on success so Mint can be restarted. Slow background checks keep a passive notice instead of interrupting chat.
|
|
68
25
|
|
|
69
|
-
|
|
26
|
+
- Improved Full-Screen TUI scrolling, drag selection, Back to bottom, multiline input, and long approval previews.
|
|
27
|
+
- Added collapsible long pastes: **F2** opens or folds the full text for editing without losing submitted content.
|
|
28
|
+
- Improved Desktop/Web chat performance, model selection, slash-command navigation, activity summaries, and responsive layouts.
|
|
29
|
+
- Added clearer context-compaction status and background-terminal counts.
|
|
70
30
|
|
|
71
|
-
|
|
31
|
+
## Workspace and background jobs
|
|
72
32
|
|
|
73
|
-
- **
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
- **Redesigned Minimalist Header & Controls (`ChatCodeBlock.tsx`)**:
|
|
79
|
-
- Monospace lowercase language badge (`bash`, `typescript`, `python`, etc.) with subtle metadata tracking code line count for multi-line snippets.
|
|
80
|
-
- **Interactive Copy Action**: Added clear "Copy" label alongside the clipboard icon with fluid animated transition to green checkmark and "Copied!" confirmation.
|
|
81
|
-
- **Ghost Download Button**: Clean, unobtrusive button for downloading the snippet with the appropriate file extension.
|
|
82
|
-
- **Line Numbers & Non-Selectable Gutter**:
|
|
83
|
-
- Automatically displays a neat gutter with line numbers for multi-line snippets (`> 1` lines).
|
|
84
|
-
- Designed with `user-select: none` so selecting code or copying to clipboard preserves clean code without stray line numbers.
|
|
85
|
-
- Single-line terminal commands (e.g. `ffmpeg ...`) remain uncluttered with full padding and zero gutter distraction.
|
|
86
|
-
- **Refined Tech Pill Inline Code (`.chat-inline-code`)**:
|
|
87
|
-
- Updated inline code pills across Desktop and Web with subtle dark translucent background (`rgba(255, 255, 255, 0.06)`), fine border, and crisp typography for clear readability in paragraphs and lists.
|
|
88
|
-
- **Full Platform Parity**:
|
|
89
|
-
- Shared component `ChatCodeBlock` and identical CSS rules implemented across both Desktop (`src/renderer/src/index.css`) and Web (`src/renderer/src-web/index.css`).
|
|
33
|
+
- Added persistent file history and **Undo**, including AI edits without Git. File removal uses Trash with confirmation.
|
|
34
|
+
- Fixed project switching and workspace selection so navigation preserves conversation ownership and drafts.
|
|
35
|
+
- Added workspace previews for HTML, Markdown, and images, plus improved Review and Desktop file-pane controls.
|
|
36
|
+
- Added background-job logs, Stop, finished-job removal, and browser launch controls. **`/mint-web`** starts a tracked Web session; **`/shells`** manages jobs across interfaces.
|
|
37
|
+
- Improved shutdown cleanup. Background jobs do not resume across backend restarts.
|
|
90
38
|
|
|
91
|
-
##
|
|
39
|
+
## Agent, tools, and approvals
|
|
92
40
|
|
|
93
|
-
|
|
41
|
+
- Unified skill discovery, model choices, media storage, messaging webhooks, and approval handling across the shared Rust core.
|
|
42
|
+
- Skill creation and edits now require a separate proposal review; automatic skill suggestions default off.
|
|
43
|
+
- Improved cancellation, plan-mode handling, repeated-tool-failure detection, and stale approval protection.
|
|
44
|
+
- Added schema validation, persistent attachments, and explicit success/failure states for MCP tools, with configurable timeouts and cancellation. Timed-out or cancelled calls may still finish remotely and are not retried automatically.
|
|
45
|
+
- Added opt-in **Mint Device** command verification with a mock connector. Real hardware requires a device-specific adapter; cancellation does not issue a physical stop.
|
|
94
46
|
|
|
95
|
-
|
|
96
|
-
- **Independent Per-Model Overrides**: Stores custom temperatures in `modelTemperatures: HashMap<String, f64>` so each model independently remembers its configured temperature (e.g. `deepseek-chat` at `0.65`, `claude-sonnet-5` at `0.15`, while unset models seamlessly use smart defaults).
|
|
97
|
-
- Automatically sets temperature to **`0.6`** for Open-Weight Reasoning / CoT models (DeepSeek-R1/V3, Qwen-QwQ, and thinking/reasoner fine-tunes), directly mitigating the known agent looping/stagnation behavior caused by greedy decoding (`0.0`) or unconstrained drift (`1.0`).
|
|
98
|
-
- Sets temperature to **`0.1`** for Codestral and pure code completion models to maximize deterministic completion accuracy.
|
|
99
|
-
- Defaults to **`0.2`** for general coding and tool-calling models (Claude 3.5/3.7, GPT-4o, Gemini 2.5, Qwen 2.5 Coder, Llama 3.3, Ollama, etc.) for high accuracy, strict JSON schema adherence, and reliable tool execution.
|
|
100
|
-
- Automatically omits the `temperature` parameter for OpenAI reasoning architectures (`o1`, `o3`), which reject explicit temperature values with HTTP 400 Bad Request.
|
|
101
|
-
- Clamps all user values safely between `0.0` and `2.0`.
|
|
102
|
-
- **Interactive Multi-Step `/temperature` Selection Flow (`crates/mint-core/src/slash/mod.rs` & `slash-commands.json`)**:
|
|
103
|
-
- **Interactive Wizard**: Pressing Enter on bare `/temperature` or `/temp` launches an interactive multi-step picker via `SlashResponse::NeedsChoice`:
|
|
104
|
-
1. **Provider / Active Model Shortcut**: Quickly choose between the currently active model shortcut or any configured/standard provider.
|
|
105
|
-
2. **Model Selection**: Lists provider models dynamically or from presets, tagged with current `[Custom: 0.XX]` or `[Auto: 0.XX]` status.
|
|
106
|
-
3. **Temperature Presets**: Choose from curated presets (`Auto`, `0.0 Deterministic`, `0.1 Codestral`, `0.2 Standard Coding`, `0.4 Balanced`, `0.6 DeepSeek/Reasoning`, `0.8 Creative`, `1.0 Brainstorming`) or specify custom values.
|
|
107
|
-
- **Fast Shorthands**:
|
|
108
|
-
- `/temperature <0.0-2.0>` sets custom temperature for the active model.
|
|
109
|
-
- `/temperature <model> <0.0-2.0>` sets temperature for a specific model directly.
|
|
110
|
-
- `/temperature default` resets the active model to smart defaults.
|
|
111
|
-
- `/temperature <model> default` resets that specific model.
|
|
112
|
-
- `/temperature status` displays a formatted markdown status table listing active model effective temperature, reasoning mode handling, and all configured per-model overrides.
|
|
113
|
-
- Available across all 3 interfaces with unified terminal interactive selection (CLI) and clickable chip selectors (Desktop & Web UI).
|
|
114
|
-
- **Interactive UI Slider with Per-Model Binding in Settings (`GeneralTab.tsx` & `config.ts`)**:
|
|
115
|
-
- Added a dedicated **Model Temperature** control card under **AI Routing: Provider & Model** in Settings.
|
|
116
|
-
- Dynamically binds to `config.modelTemperatures[activeModel]`, displaying dynamic status badges (`Custom for <model> (0.XX)` or `Auto (<rationale>)`).
|
|
117
|
-
- Smooth slider (range `0.00` to `1.50`, step `0.05`) with live numerical display and an instant **`Reset to Auto`** action that removes the override for the active model while preserving other model configurations.
|
|
118
|
-
- Informative contextual tooltip explaining the optimal sampling entropy for each model archetype.
|
|
47
|
+
## Desktop and Web
|
|
119
48
|
|
|
120
|
-
|
|
49
|
+
- Added **Sources** beside Tools in the Web chat header. Its mobile-friendly session panel shares Desktop's source loading, attachments, web-search links and favicons, with loading/retry states and Library navigation that preserves drafts.
|
|
50
|
+
- Workspace context Sources now shows website favicons for web-search pages on Desktop/Web, using the existing source metadata. Unavailable favicons fall back to the globe; broken attachment previews use their file-type icon without changing thumbnail sizing.
|
|
51
|
+
- `view_image` now shows viewed images inline in Desktop/Web chat during a run and in saved history, with filenames and an expandable preview. Images remain visible with Activity collapsed, while tool details show a readable status instead of base64. CLI/TUI keeps its text status.
|
|
52
|
+
- Renamed **Pictures** to **Library** on Desktop and Web, with shared All / Images / Videos / Files filters, filename search, current-conversation scope, cursor pagination, previews, original-name downloads, and reversible Library Trash. `/library` is canonical; `/pictures` remains compatible.
|
|
53
|
+
- CLI/TUI uploads now use the same pre-AI Library intake and turn references as Desktop/Web, retaining files on provider failure. Agent-generated images/videos retain their conversation and running-turn references. Library refresh preserves loaded cursor pages while thumbnails update; Sources opens Library inside the app without discarding the composer.
|
|
54
|
+
- Library imports flush original files before acquiring the catalog writer lock, reducing contention during concurrent uploads. Failed catalog batches and duplicate retries clean up their staged files.
|
|
55
|
+
- Library previews now show the saved source message in up to two lines, omitting chat transport and attachment markers; entries without message text omit the excerpt.
|
|
56
|
+
- Added **Remove from Mint** in Library Trash on Desktop and Web. It moves remaining originals and thumbnails to the system Trash on the machine running Mint, then removes their Library entries and source references. Missing-file records can be removed; failed moves retain the entry for retry. Ordinary Library deletion still moves entries to Library Trash for restore.
|
|
57
|
+
- Uploaded chat images, videos, and supported documents/code files are now saved before document extraction or AI calls. Library stores originals once on disk with a SQLite catalog, stable IDs, names, MIME types, sizes, and conversation/turn references. Retries reuse a submission receipt; failed requests retain the composer until acceptance. AI-generated media uses the same catalog.
|
|
58
|
+
- Migrates the old Pictures JSON catalog idempotently, preserves existing IDs and file paths, and keeps a backup of the original index. Missing originals remain visible. Thumbnail work runs asynchronously with at most two workers and pending work resumes at startup.
|
|
59
|
+
- Workspace context **Sources** lists session images, files, videos, and AI web-search results with expandable groups. New attachments link to the same Library original and thumbnail; Trash and missing-file states stay visible. Clearing or deleting chat history removes its references while Library files remain. Earlier metadata-only attachments are retained as metadata; their originals cannot be reconstructed.
|
|
60
|
+
- Moved **Mods** and **Background tasks** from the chat composer into Tools tabs on Desktop and Web, accessible from the launcher and add-tool menu without a duplicate button row below the tabs. Added a Web Tools button and a running-task badge that stays visible while Tools is closed; the Desktop interactive Terminal remains separate. Mod bands and background-job tracking continue while the panel is closed.
|
|
61
|
+
- Refined voice recording, Gemini Live calls, notifications, error recovery, theme styling, and accessibility.
|
|
62
|
+
- Added **Reduce effects** and reduced unnecessary rendering work.
|
|
63
|
+
- Improved Saved Pictures browsing and previews, image-search cards, and MCP settings.
|
|
64
|
+
- Live Translate now uses the selected chat provider and model, including local/custom providers; unsupported image input reports an error instead of switching providers.
|
|
121
65
|
|
|
122
|
-
|
|
66
|
+
## Installation and documentation
|
|
123
67
|
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
- **Interactive UI with Segmented Transport Toggle & Live Testing (`McpServersView.tsx`)**:
|
|
130
|
-
- **Segmented Toggle**: Switch effortlessly between **`🌐 Remote Server (URL / SSE)`** and **`💻 Local Command (stdio)`** in the Add Server modal.
|
|
131
|
-
- **Remote Endpoint & Authentication Setup**: Configure Remote Server URL (`https://...`), choose Authentication type (`None`, `Bearer Token`, or `Custom Headers JSON`), and provide optional custom server icons.
|
|
132
|
-
- **Live Connection Testing**: Interactive **`Test Connection`** button triggers a non-blocking diagnostic test against the endpoint, displaying live loading states, success verification (reporting available tools, resources, and prompts count), or detailed error diagnostics before saving.
|
|
133
|
-
- **Enterprise-Grade Security Notice & Risk Acknowledgement**: Custom warning banner with `<ShieldAlert />` icon and safety acknowledgement checkbox before adding external endpoints, ensuring users review risks prior to granting remote tool execution.
|
|
134
|
-
- **Server Card & Details Parity**: Remote servers display a distinct `Remote` badge with Lucide vector icon on their card and reveal their full endpoint URL and custom headers in the server detail modal.
|
|
135
|
-
- **Full Platform Parity across CLI, Desktop & Web**:
|
|
136
|
-
- **CLI (`crates/mint-cli`)**:
|
|
137
|
-
- `mint mcp add <name> <url>` auto-detects remote URLs and accepts authentication headers via `--env "Authorization=Bearer <token>"`.
|
|
138
|
-
- Interactive slash command `/mcp add <name> <url>` seamlessly adds remote servers with SSE transport.
|
|
139
|
-
- `mint mcp list` displays `(url: <url>)` for remote servers.
|
|
140
|
-
- **Desktop Tauri (`src-tauri` & `src/renderer/src`)**:
|
|
141
|
-
- Registered `test_mcp_connection` Tauri command for native asynchronous ping and schema validation.
|
|
142
|
-
- **Web UI & Server (`crates/mint-core/src/api_server/routes/cron_mcp.rs` & `src/renderer/src-web`)**:
|
|
143
|
-
- Added `POST /api/mcp/test` REST route running on a dedicated blocking task to prevent event-loop starvation.
|
|
144
|
-
- Updated Web `MintPlatformApi` with `testMcpConnection` bridging to the backend endpoint.
|
|
145
|
-
|
|
146
|
-
## Rewind System Overhaul: Themed Confirmation Modal, Targeted Step Checkpoints & Rescue Undo (CLI, Desktop & Web)
|
|
147
|
-
|
|
148
|
-
A comprehensive upgrade to Mint's file rewind and Git time machine capabilities:
|
|
149
|
-
|
|
150
|
-
- **Custom Themed Rewind Confirmation Modal (`RewindModal.tsx`)**:
|
|
151
|
-
- Replaced raw browser `window.confirm()` and `alert()` with a custom, theme-aware review dialog (`.rewind-modal`).
|
|
152
|
-
- Highlights safety guarantee, target step badge, short commit hash, action type, timestamp, and the exact files to be reverted (with line addition/deletion indicators and `[NEW FILE]` tags).
|
|
153
|
-
- Supports keyboard shortcuts (`Escape` to dismiss, `Cmd/Ctrl + Enter` to confirm) and includes safety loading states.
|
|
154
|
-
- **Targeted Step Checkpoint Matching**:
|
|
155
|
-
- Rewind buttons on file changes summary cards now dynamically bind to the exact pre-edit checkpoint for that specific interaction/turn, rather than defaulting to the latest session checkpoint.
|
|
156
|
-
- Matches checkpoints against files touched in that turn or interaction creation timestamp, ensuring rolling back an earlier turn restores the workspace to the exact state before that turn began.
|
|
157
|
-
- **Rescue Snapshot Safety Net & Instant Undo (`/rewind undo`)**:
|
|
158
|
-
- Before any rollback occurs, Mint creates a safety rescue snapshot in Git (`refs/mint/rescue/<timestamp>`).
|
|
159
|
-
- **Floating Undo Banner**: After rewinding, an interactive floating notification appears in the chat panel with a prominent **`[ ↩ Undo Rewind ]`** button, allowing users to restore reverted files with a single click.
|
|
160
|
-
- **Full Platform Parity**:
|
|
161
|
-
- **CLI**: Run `/rewind undo` to recover from the latest rescue snapshot.
|
|
162
|
-
- **Backend Slash Command**: `/rewind undo` supported via `cmd_rewind`.
|
|
163
|
-
- **Desktop Tauri Command**: `undo_git_checkpoint` native invocation.
|
|
164
|
-
- **Web REST API**: `POST /api/checkpoints/undo` endpoint.
|
|
165
|
-
|
|
166
|
-
## Live Preview Path Resolution & File Changes Deduplication (CLI, Desktop & Web)
|
|
167
|
-
|
|
168
|
-
- **Intelligent Path Resolution (`mint_core::files::resolve_readable_path`)**:
|
|
169
|
-
- Solved `Failed to read file: Not Found` preview errors when viewing files with relative paths, tilde (`~`) prefixes, or notes stored in `~/.config/mint/notes/`.
|
|
170
|
-
- Automatically resolves file targets across candidates: user home directory expansion, active workspace root, current working directory, and system config note locations.
|
|
171
|
-
- Implemented with complete parity across all three interfaces: Web API endpoint (`/api/file/read`), Desktop Tauri command (`read_workspace_file`), and CLI (`mint preview` / `handle_preview`).
|
|
172
|
-
- **Distinct Operation Tracking for Creation & Modifications (`agentProgress.ts`)**:
|
|
173
|
-
- Preserved distinct file change records for separate tool actions (e.g. initial file creation via `note_write` vs subsequent edits via `apply_patch`), ensuring the summary accurately reflects `1 created, 1 modified` with dedicated diff inspection for each step.
|
|
174
|
-
- Both cards link to the resolved target on disk so clicking Preview on either the created or modified entry works seamlessly without path errors.
|
|
175
|
-
- **Preview Resiliency & Fallback Content**:
|
|
176
|
-
- Pass initial created file content as in-memory fallback to `ArtifactPreviewPanel`, ensuring previews render instantly and gracefully even before disk sync or in transient environments.
|
|
177
|
-
- **Chat Scroll Preservation on Preview Toggle**:
|
|
178
|
-
- Eliminated the issue where opening or closing the Live Preview panel caused the chat messages container to unmount and reset its scroll position (`scrollTop = 0`) to the top of history.
|
|
179
|
-
- Stabilized the split view wrapper DOM hierarchy (`.chat-panel-split-wrapper` with `display: contents` in `no-preview` mode) so the conversation panel never unmounts, while anchoring the scroll position to the active message.
|
|
180
|
-
- **Draggable & Resizable Split Pane Divider**:
|
|
181
|
-
- Added an interactive divider bar (`.preview-split-resizer`) between the Chat Panel and Live Preview panel.
|
|
182
|
-
- Smooth 60fps mouse drag-to-resize using direct CSS variable updates (`--preview-width`), preventing costly re-renders of the chat conversation while dragging.
|
|
183
|
-
- Double-click on the divider grip bar instantly snaps back to 50/50 balance.
|
|
184
|
-
- Automatically persists the user's preferred split ratio in `localStorage` (`mint_preview_split_ratio`), preserving custom sizing across sessions.
|
|
185
|
-
- Safety constraints prevent either pane from collapsing (Chat >= 340px, Preview >= 280px).
|
|
186
|
-
|
|
187
|
-
## File Changes, Live Preview & Diff Viewer Theme Parity (Desktop & Web UI)
|
|
188
|
-
|
|
189
|
-
- **Comprehensive Theme Alignment**:
|
|
190
|
-
- Replaced hardcoded inline styles (`#10b981`, `#0b0f19`, `rgba(15, 23, 42, 0.6)`, `#a7f3d0`) in the File Changes summary and live Diff viewer with dynamic CSS theme variables (`var(--accent)`, `var(--surface-bg)`, `var(--input-bg)`, `var(--border)`, `var(--text-chat, var(--text-main))`, `var(--text-muted)`).
|
|
191
|
-
- Ensured complete visual parity across default dark, light (`[data-theme="light"]`), midnight (`[data-theme="midnight"]`), and custom themes.
|
|
192
|
-
- **Live Preview Split View Panel (`ArtifactPreviewPanel.tsx`)**:
|
|
193
|
-
- Replaced legacy fallback colors (`#232730`, `#111317`, `#f3f4f6`, `#181a20`, `#10b981`) across the entire Preview panel with native Mint theme tokens: `--panel-bg`, `--surface-bg`, `--border`, `--text-main`, and `--accent`.
|
|
194
|
-
- Preview/Code tab toggles, device viewport selectors (Desktop/Tablet/Mobile), artifact badges, and markdown view now fully match the active system theme.
|
|
195
|
-
- **Diff Review Modal (`DiffReviewModal.tsx`)**:
|
|
196
|
-
- Split and unified diff panes, header diff badge, and addition/deletion counters now track the active theme accent, error, and text variables.
|
|
197
|
-
- **Readable Diff Line Highlighting**:
|
|
198
|
-
- Diff hunk lines now preserve the user's configured chat text color (`var(--text-chat, var(--text-main))`) while clearly highlighting additions and deletions with subtle background tints, accent/error border indicators, and separate unselectable sign markers (`+` in `var(--accent)`, `-` in `var(--status-error)`).
|
|
199
|
-
- **Rewind Action & Status Badges**:
|
|
200
|
-
- Rewind checkpoint button, [NEW FILE] badge, and Preview button now cleanly utilize system theme tokens (`var(--status-error)`, `var(--hover-delete-bg)`, `var(--accent)`, `var(--radius-xs)`).
|
|
201
|
-
- **Platform Parity**:
|
|
202
|
-
- Reusable `.file-changes-*` styling standardized across both Desktop (`src/renderer/src/css/chat.css`) and Web (`src/renderer/src-web/css/chat.css`).
|
|
203
|
-
|
|
204
|
-
## Claude Desktop Style Choice Cards UI Overhaul (Web & Desktop)
|
|
205
|
-
|
|
206
|
-
Redesigned the Action Approval and AskUser Question interface across both Web (`src/renderer/src-web`) and Desktop (`src/renderer/src`):
|
|
207
|
-
|
|
208
|
-
- **Claude Desktop "Choice Cards" Layout**:
|
|
209
|
-
- Replaced legacy small horizontal buttons with vertical, interactive Choice Cards featuring dedicated hotkey badges (`[ 1 ]`, `[ 2 ]`, `[ 3 ]`), titles, and explanatory subtitles.
|
|
210
|
-
- Distinct hover accents for Approve (emerald), Session Allow (sky blue), and Deny/Cancel (rose red).
|
|
211
|
-
- Clean header with tool-specific badges (RunShell 🐚, File Edit 📝, MCP 🔌, Question 💬) and risk tiers (`DANGEROUS`, `APPROVAL REQUIRED`).
|
|
212
|
-
- Monospace code box for shell commands and diffs with quick syntax review.
|
|
213
|
-
- **Global Keyboard Hotkey Triggers**:
|
|
214
|
-
- Pressing `1`, `2`, `3` on the keyboard instantly selects or approves the corresponding choice card when not actively typing in an input field.
|
|
215
|
-
- **Enhanced AskUser Selection & Custom Answer**:
|
|
216
|
-
- Full support for single-select choices, multi-select checkboxes, and custom write-in answers with `Enter`-to-submit.
|
|
217
|
-
- **Full Platform Parity**:
|
|
218
|
-
- Unified across Desktop and Web via the shared `ApprovalCard.tsx` component and matching CSS tokens.
|
|
219
|
-
|
|
220
|
-
## Web UI Performance & Reliability Overhaul
|
|
221
|
-
|
|
222
|
-
This update resolves intermittent slow loading, white screens, and update error loops when accessing Mint via web browser:
|
|
223
|
-
|
|
224
|
-
- **Decoupled Build Output Targets (`out/web` vs `out/renderer`)**:
|
|
225
|
-
- Web UI now builds cleanly to `out/web` while Desktop UI continues building to `out/renderer`.
|
|
226
|
-
- Completely eliminates output clobbering where desktop builds wiped out `index-web.html` or chunk hashes.
|
|
227
|
-
- **Same-Origin Vite API Reverse Proxying**:
|
|
228
|
-
- Added reverse proxy configuration for `/api` in Vite dev and preview modes routing to backend port 3000.
|
|
229
|
-
- Eliminated CORS preflight `OPTIONS` requests, dramatically reducing API response times.
|
|
230
|
-
- Resolves browser mixed-content blocks when accessing over HTTPS, SSH tunnels, or VS Code port forwarding.
|
|
231
|
-
- **Removed Render-Blocking Unused Live2D Script**:
|
|
232
|
-
- Removed 150 KB synchronous `Live2DCubismCore.js` script tag from `index-web.html` `<head>`, as Live2D companion rendering is desktop-only.
|
|
233
|
-
- **Service Worker Dev Isolation & Smart Fallbacks**:
|
|
234
|
-
- Dev mode now automatically purges leftover service workers from preview/production runs so Vite HMR is never intercepted or corrupted.
|
|
235
|
-
- Added strict exclusions in `sw.js` for Vite internal endpoints.
|
|
236
|
-
- **Resilient Chunk Error Boundary & Dark Recovery Screen**:
|
|
237
|
-
- Replaced the harsh white `#ffffff` error screen with an on-theme Mint dark card.
|
|
238
|
-
- "Refresh & Update" button automatically clears stale `caches` and unregisters old service workers before reloading to guarantee a clean recovery loop.
|
|
239
|
-
- **Failsafe Timeout Guards**:
|
|
240
|
-
- Added 5-second fetch timeouts to `authGetCurrentUser`, `getRuntimeStatus`, and `getSettings` with a 6-second failsafe in `AuthGate`, preventing indefinite hangs on "Loading Mint…".
|
|
241
|
-
- **Intelligent CLI Binary Discovery & Fast Dev Iteration**:
|
|
242
|
-
- Rewrote [src/bin/index.js](file:///home/pheem49/vscode/Project/Mint-CLI/src/bin/index.js) to resolve binaries dynamically across local release (`target/release/mint`), fast local debug (`target/debug/mint`), user Cargo installation (`~/.cargo/bin/mint`), user local bin (`~/.local/bin/mint`), and global system paths (`/usr/local/bin`).
|
|
243
|
-
- Running `cargo build -p mint-cli` (debug) is now immediately picked up by the CLI runner without requiring a full 5-10 minute `--release` build or reinstall.
|
|
244
|
-
- Added `npm run install:cli` (`cargo install --path crates/mint-cli --locked`) to install the native binary permanently to `~/.cargo/bin`.
|
|
245
|
-
|
|
246
|
-
## Agent Harness Engineering Upgrade (9-Pillar System)
|
|
247
|
-
|
|
248
|
-
This release introduces a major architectural overhaul transforming Mint Agent into an enterprise-grade Autonomous Agent Harness. Grounded in systematic harness engineering principles, this upgrade equips Mint with deep workspace awareness, precise code navigation, safe autonomous verification loops, git checkpointing, structured knowledge authoring, run-level observability, and benchmarking across CLI, Desktop, and Web.
|
|
249
|
-
|
|
250
|
-
### 1. Workspace & Monorepo Architecture Detection (Pillar 1)
|
|
251
|
-
- **Deep Architecture Scanner (`mint_core::system::project_detector`)**:
|
|
252
|
-
- Automatically identifies monorepo structures (Cargo workspaces, pnpm-workspaces, Turborepo, Lerna, Nx) and primary project ecosystems (Rust, Node/TypeScript, Python, Go, Java).
|
|
253
|
-
- Scans workspace roots and sub-crates/packages, extracting build scripts, package managers, and test runner configurations.
|
|
254
|
-
- Automatically injects an architectural briefing directly into the Agent's system prompt before the first turn, eliminating exploratory "what kind of project is this?" steps.
|
|
255
|
-
- **Custom Rules Auto-Ingestion**:
|
|
256
|
-
- Automatically scans and injects project rules from `CLAUDE.md`, `.cursorrules`, `.github/copilot-instructions.md`, `.agents/rules/`, and `.agents/AGENTS.md` into the agent's context.
|
|
257
|
-
|
|
258
|
-
### 2. Code Intelligence & AST Symbol Navigation (Pillar 2)
|
|
259
|
-
- **AST / Syntax-Aware Symbol Extraction (`mint_core::search::symbols`)**:
|
|
260
|
-
- Added native symbol navigation without requiring heavyweight external Language Server Protocol (LSP) daemons.
|
|
261
|
-
- **`find_definition` Tool**: Locates definitions of functions, structs, classes, enums, interfaces, types, and traits across Rust, TypeScript, JavaScript, Python, and Go codebases.
|
|
262
|
-
- **`find_references` Tool**: Scans call-sites, usages, and implementations across workspace files.
|
|
263
|
-
- Eliminates blind full-text grep hallucinations when refactoring or tracing complex type hierarchies.
|
|
264
|
-
|
|
265
|
-
### 3. Safe Automated Tooling & Zero-Prompt Pre-Approval Policy (Pillar 3)
|
|
266
|
-
- **Dedicated Validation Tools (`mint_core::orchestration::tools::safe_tools`)**:
|
|
267
|
-
- **`run_tests`**: Automatically discovers and invokes test runners (`cargo test`, `npm test`, `pytest`, `go test`) or executes targeted test suites.
|
|
268
|
-
- **`run_typecheck`**: Invokes project type-checkers (`tsc`, `cargo check`, `pyright`, `mypy`) to catch compiler-level errors early.
|
|
269
|
-
- **`run_linter`**: Runs code linters (`clippy`, `eslint`, `flake8`/`ruff`, `golangci-lint`) to enforce style and correctness.
|
|
270
|
-
- **Zero-Prompt Pre-Approval Policy**:
|
|
271
|
-
- Classified validation and test-running tools as non-destructive safe operations, allowing autonomous execution in the background without prompting the user for repetitive command approvals.
|
|
272
|
-
|
|
273
|
-
### 4. Task Planning Checklist & State Machine (Pillar 4)
|
|
274
|
-
- **Structured Plan State Machine (`mint_core::orchestration::tools::planning`)**:
|
|
275
|
-
- Introduces `plan_task` and `update_plan_step` tools enabling agents to establish structured, multi-step implementation workflows.
|
|
276
|
-
- Supports dynamic step states: `Pending`, `InProgress`, `Completed`, `Failed`, and `Skipped`.
|
|
277
|
-
- **Live Terminal & UI Checklist Cards**:
|
|
278
|
-
- **CLI**: Live ANSI progress cards with status glyphs (`[ ]`, `[-]`, `[x]`, `[!]`, `[~]`) and dynamic step updates in `mint-cli`.
|
|
279
|
-
- **Desktop & Web**: Dedicated `PlanChecklistWidget` displaying interactive progress, step state transitions, and step timing.
|
|
280
|
-
|
|
281
|
-
### 5. Active Verification Loop & Balanced Log Engineering (Pillar 5)
|
|
282
|
-
- **Automatic Post-Modification Verification Hook**:
|
|
283
|
-
- Integrated post-edit verification passes in the orchestration loop to trigger targeted checks before declaring tasks completed.
|
|
284
|
-
- **Balanced Log Truncation Engine (`Head + Tail Windowing`)**:
|
|
285
|
-
- Implemented 3 KB Head + 12 KB Tail balanced buffer windowing for command and test outputs.
|
|
286
|
-
- Preserves both invocation parameters at the start and critical failure stack traces/compiler errors at the end, joining them with a `[... N bytes truncated ...]` marker to avoid context blowup while retaining actionable diagnostic data.
|
|
287
|
-
|
|
288
|
-
### 6. Git Safety Harness & Rollback Checkpoints (Pillar 6)
|
|
289
|
-
- **Automatic Checkpoint & Rollback Engine (`mint_core::git::checkpoint`)**:
|
|
290
|
-
- **`git_checkpoint`**: Snapshots working tree state and stash references before risky multi-file edits.
|
|
291
|
-
- **`git_rollback`**: Safely reverts working directory changes back to the pre-task snapshot when tasks fail or the agent goes astray.
|
|
292
|
-
- **`git_restore_file`**: Precision rollbacks of individual modified files (`git checkout -- <file>`).
|
|
293
|
-
- **`git_create_branch`**: Automatically spins up isolated task branches (`mint/<task-id>-<slug>`).
|
|
294
|
-
- **`git_commit`**: Generates context-aware commit messages based on diff analysis and commits verified changes.
|
|
295
|
-
|
|
296
|
-
### 7. Autonomous Knowledge Engine & Documentation (Pillar 8)
|
|
297
|
-
- **Tiered Documentation Search & Authoring (`mint_core::system::knowledge_engine`)**:
|
|
298
|
-
- Recursively indexes repository knowledge repositories across `docs/`, `architecture/`, `decisions/` (ADRs), `api/`, and `troubleshooting/`.
|
|
299
|
-
- **`search_docs`**: High-speed keyword and semantic search across local project documentation before falling back to external sources.
|
|
300
|
-
- **`create_project_doc`**: Enables the agent to author, persist, and update Architecture Decision Records (ADRs), API guides, and troubleshooting runbooks directly in the workspace.
|
|
301
|
-
|
|
302
|
-
### 8. Run Observability Dashboard & Telemetry (Pillar 9)
|
|
303
|
-
- **Run Telemetry & Metrics Collection (`mint_core::orchestration`)**:
|
|
304
|
-
- Tracks total execution duration, step counts, token usage, tool breakdown counts, and per-tool execution latency via `RunTelemetrySummary` and `ToolExecutionRecord`.
|
|
305
|
-
- Emits `AgentProgress::RunCompleted` event upon task finalization.
|
|
306
|
-
- **Cross-Platform Telemetry Dashboards**:
|
|
307
|
-
- **CLI**: Rich ANSI terminal summary card rendered upon agent turn completion.
|
|
308
|
-
- **Desktop UI & Web UI**: Themed `RunSummaryDashboard` component featuring execution statistics, status indicators, and an expandable tool-call latency drawer with platform parity across `src/renderer/src` and `src/renderer/src-web`.
|
|
309
|
-
|
|
310
|
-
### 9. Benchmark Evaluation System (Pillar 10)
|
|
311
|
-
- **Evaluation Suite Engine (`mint_core::eval`) & CLI Subcommand (`mint eval`)**:
|
|
312
|
-
- Added `mint eval --suite <path> [--concurrency <N>] [--output <path>]` command for automated benchmarking of agent models and harnesses.
|
|
313
|
-
- Evaluates benchmark cases against prompt instructions, file modifications, and unit test pass criteria.
|
|
314
|
-
- Includes benchmark suite templates under `benchmarks/mint_eval.json`.
|
|
315
|
-
|
|
316
|
-
### 10. Design System & Theming Refactoring (`agent-observability.css`)
|
|
317
|
-
- **Semantic CSS Token Integration**:
|
|
318
|
-
- Extracted all ad-hoc styles from `RunSummaryDashboard.tsx` and `PlanChecklistWidget.tsx` into a shared stylesheet `src/renderer/shared/css/agent-observability.css`.
|
|
319
|
-
- Strictly bound all components to Mint design tokens:
|
|
320
|
-
- Surfaces & borders: `var(--surface-bg)`, `var(--surface-bg-alt)`, `var(--border)`, `var(--border-light)`.
|
|
321
|
-
- Typography: `var(--text-main)`, `var(--text-muted)`.
|
|
322
|
-
- Accents & status: `var(--accent)`, `var(--accent-hover)`, `var(--status-speaking)` (success), `var(--status-error)` (failure), `var(--status-listening)` (warning).
|
|
323
|
-
- Guarantees seamless aesthetics and readability across Dark, Light, and Midnight themes on both Desktop and Web interfaces.
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
## Agent Activity Retry & Self-Correction UX Refinement
|
|
327
|
-
|
|
328
|
-
- **Soft Recovered / Retry State for Intermediate Tool Errors**:
|
|
329
|
-
- When an intermediate tool step encounters an error (e.g. missing arguments or transient failures) but the Agent subsequently retries, self-corrects, or finishes the task, the activity table now marks the step as `'retry'` with an amber badge (`[Retried]`) instead of a harsh red `Failed` label.
|
|
330
|
-
- The tool/action name (e.g., `web_search`) is preserved in the "Tool" column rather than being wiped out by the word "Failed".
|
|
331
|
-
- Terminal red `[Failed]` badges are reserved strictly for unrecovered errors where the agent halted without subsequent success.
|
|
332
|
-
- Added descriptive fallback targets (e.g. `(empty query)`, `(empty path)`) when a tool was invoked without required arguments so users immediately understand why a step required a retry.
|
|
333
|
-
- Implemented across both Desktop (`src/renderer/src`) and Web (`src/renderer/src-web`) interfaces with consistent theme styling.
|
|
334
|
-
|
|
335
|
-
## Settings First-Load Reliability & Route Resilience
|
|
336
|
-
|
|
337
|
-
- **Eliminated Circular Dependency Cycle in Settings Tabs**:
|
|
338
|
-
- Moved `CustomProviderConfig`, `CustomProviderModel`, and `CustomProviderHeader` to `shared/types.ts` as the canonical source of truth.
|
|
339
|
-
- Updated all settings tab components (`GeneralTab`, `AgentsTab`, `PluginsTab`, `ThemeTab`, `AutomationTab`, `AudioTab`) to import config, models, and types directly from `@shared/constants` and `@shared/types` instead of `@/components/SettingsWindow`.
|
|
340
|
-
- Fixes uninitialized `undefined` exports during initial module evaluation in Vite ESM, which caused first-load crashes (`ChunkErrorBoundary`) in Web and Desktop.
|
|
341
|
-
|
|
342
|
-
- **Hashbang Route Normalization (`#!/settings` & `#/settings`)**:
|
|
343
|
-
- `getCurrentRoute()` in both `src-web/App.tsx` and `src/App.tsx` now normalizes both `#/` and `#!/` prefixes cleanly to prevent route mismatch on direct navigation or hashbang links.
|
|
344
|
-
|
|
345
|
-
- **Resilient Lazy Chunk Loading & Preload**:
|
|
346
|
-
- Implemented `lazyWithRetry` with automatic backoff retry to prevent transient chunk fetch failures from unmounting the app.
|
|
347
|
-
- Added background idle preloading for the Settings bundle so opening Settings is instant and reliable.
|
|
348
|
-
- Added a localized `ModalErrorBoundary` inside the settings modal container to prevent any modal rendering exception from bubbling up and unmounting the main dashboard and chat.
|
|
349
|
-
|
|
350
|
-
## UI Stylesheet Cleanup & Theme Token Consistency
|
|
351
|
-
|
|
352
|
-
- **Removed the legacy `mint-*` layout CSS** (~330 lines per copy) from `src/renderer/src/index.css` and `src/renderer/src-web/index.css`:
|
|
353
|
-
- `.mint-app`, `.mint-sidebar`, `.mint-toolbar`, `.mint-composer`, `.mint-message`, `.mint-model`, `.mint-picture(s)`, `.mint-empty`, `.mint-workspace` and their `@media` block were dead — no component renders those classes anymore.
|
|
354
|
-
- Fixed a real styling conflict: the leftover `.mint-attachment` / `.mint-attachment button` rules were overriding the current composer-attachment styles in `chat.css` (transparent remove button, stray slate background/padding). The attachment strip now renders exactly as `chat.css` defines it, including the red circular remove button.
|
|
355
|
-
- Removed the duplicate `.chat-inline-code` definition (two conflicting blocks in the same file) and the unused `.chat-ordered-list` / `.chat-unordered-list` rules.
|
|
356
|
-
|
|
357
|
-
- **Hard-coded colors replaced with theme tokens** so chat tables, code blocks, and error banners now follow the active theme (dark/light/midnight) instead of assuming a dark background:
|
|
358
|
-
- `.mint-error` now derives from `--status-error` / `--text-main` via `color-mix`.
|
|
359
|
-
- `.chat-table*` and `.chat-code-*` rules use `--border`, `--border-light`, `--shadow-sm`, and `color-mix` tints of `--text-main` instead of `rgba(255,255,255,…)` values that were invisible on the light theme.
|
|
360
|
-
- Markdown table renderer (`src/renderer/shared/utils/markdown.tsx`) inline styles (container border/shadow, header tint, zebra rows, row borders) — these override the CSS, so they are now token-based too, fixing themed tables on Desktop and Web at once.
|
|
361
|
-
- `body`/`html` base text color now uses `var(--text-main)` instead of a fixed dark-theme hex.
|
|
362
|
-
|
|
363
|
-
## Web Search Image Hotlink Protection & Direct URL Resolution
|
|
364
|
-
|
|
365
|
-
- **Unwrapped Web Search Image Proxy URLs**:
|
|
366
|
-
- Automatically unwraps Brave Search internal proxy URLs (`imgs.search.brave.com`) back to direct source image URLs in both backend and frontend, eliminating 403 Forbidden errors.
|
|
367
|
-
- Fixes images failing to display in Web and Desktop message bubbles while appearing as raw Markdown links in the CLI.
|
|
368
|
-
- Automatically decodes existing image URLs stored in past conversation history upon rendering.
|
|
369
|
-
|
|
370
|
-
- **Referrer Policy Hardening**:
|
|
371
|
-
- Added `referrerPolicy="no-referrer"` to image tags across Markdown bubbles, Image Search tiles, and Search Source drawer thumbnails to bypass third-party image hotlink protection.
|
|
372
|
-
|
|
373
|
-
## CLI UX & Ergonomics Improvements
|
|
374
|
-
|
|
375
|
-
- **Direct One-Shot Prompt Execution (`mint [PROMPT]...`)**:
|
|
376
|
-
- Running `mint "explain this function"` or `mint explain this function` now directly executes the code agent on that task without needing `mint agent "..."` or entering the interactive TUI.
|
|
377
|
-
- Returns exit code `0` on successful completion or `130` on cancellation.
|
|
378
|
-
|
|
379
|
-
- **Top-Level Global Flags (`-m`, `-C`, `--fast`, `--plan`, `--image`)**:
|
|
380
|
-
- Added `-C / --cwd <DIR>` to set the workspace directory upfront (mirroring `git -C`).
|
|
381
|
-
- Added `-m / --model <MODEL>` for temporary in-memory model overrides per session or task (e.g. `mint -m claude-3-7-sonnet "..."` or `mint -m gemini-2.5-flash`), with automatic provider detection.
|
|
382
|
-
- Added `--fast` and `--plan` flags at the root CLI level.
|
|
383
|
-
- Added `--image <PATH>` to attach image files directly to one-shot prompts.
|
|
384
|
-
|
|
385
|
-
- **Graceful Interruption & Ctrl+C Handling**:
|
|
386
|
-
- Fixed an issue where `Ctrl+C` was swallowed while the queueing box held raw terminal mode. `Ctrl+C` and `Esc` now cleanly interrupt agent turns in both normal and fast modes.
|
|
387
|
-
- Pressing `Ctrl+C` on an empty prompt now displays the yellow `{WARN}Press Ctrl+C again or Ctrl+D to exit{RESET}` notice below the input box (matching `Ctrl+D`'s notification behavior) instead of overriding the prompt placeholder. Pressing either key again cleanly closes the session.
|
|
388
|
-
|
|
389
|
-
- **Robust Piped Input, Non-TTY Fallbacks & Scriptability**:
|
|
390
|
-
- Fixed TTY detection across `confirm.rs`, `picker.rs`, `approval_prompts.rs`, and `agent.rs` by checking `!io::stdin().is_tty()` alongside `stdout`.
|
|
391
|
-
- When `stdin` is piped (e.g. `echo "y" | mint run ...` or in CI/CD scripts), prompts automatically fall back to line-oriented reading (`read_line`) instead of attempting raw-mode key polling or hanging on terminal escape sequences.
|
|
392
|
-
- Interactive arrow-key selection (`prompt_interactive_select`) safely returns `None` immediately when input is not a terminal.
|
|
393
|
-
- `mint run <COMMAND>` now prompts for confirmation via `confirm()` when `--approve` is omitted, allowing interactive confirmation in terminals or automated pipeline approvals via `printf "y\n" | mint run ...`.
|
|
394
|
-
|
|
395
|
-
- **Fast Mode Esc & Ctrl+C Cancellation**:
|
|
396
|
-
- Unified turn cancellation in `agent.rs` so that `--fast` mode can be interrupted immediately with either `Esc` or `Ctrl+C`, without leaving terminal cursor or raw mode in an inconsistent state.
|
|
397
|
-
|
|
398
|
-
- **Streaming Stability & Localization Audit**:
|
|
399
|
-
- Replaced `lines().flatten()` with `.map_while(Result::ok)` in the `mint auto` log watcher, preventing infinite loop risks on broken file streams or invalid UTF-8 bytes.
|
|
400
|
-
- Fixed UTF-8 character boundary panics in tool output truncation (`hooks.rs`) and agent instruction summaries (`agent.rs`). Slicing strings with non-ASCII multi-byte characters (e.g. Thai `\u{0e38}`, Japanese, emojis) now safely snaps backward to the nearest valid character boundary.
|
|
401
|
-
- Audited all user-facing CLI prompts across `crates/mint-cli` to ensure 100% English language consistency (e.g. `$skill` prompts).
|
|
402
|
-
|
|
403
|
-
## Architecture & Platform Parity (CLI, Desktop & Web)
|
|
404
|
-
|
|
405
|
-
- **Core Slash Command Engine Unification (`mint_core::slash::execute`)**:
|
|
406
|
-
- Connected CLI interactive mode (`interactive/slash_commands.rs`) directly to `mint_core::slash::execute`.
|
|
407
|
-
- Guarantees 100% feature and behavioral parity across CLI, Desktop, and Web: commands like `/models`, `/fast`, `/autoskill`, `/autorecall`, `/autofacts`, `/factrecall`, `/multi-agent`, `/release-notes`, `/clear`, `/init`, `/remember`, `/memory`, `/link`, `/plugin`, `/code`, `/generate-image`, `/cd`, `/stats` now share identical backend logic, options, persistence, and Markdown rendering across all platforms.
|
|
408
|
-
- Interactive choice requests (`SlashResponse::NeedsChoice`) seamlessly invoke the CLI's interactive arrow-key selector (`prompt_interactive_select`) with live selection re-dispatch.
|
|
409
|
-
- Preserved CLI-specific specialized commands (`/plan`, `/palette`, `/bg`, `/jobs`, `/shells`, `/exit`, `/image`, `/paste`, `/avatar`, and interactive TUI wizards for bare `/mcp`, `/cron`, `/subagent`).
|
|
410
|
-
|
|
411
|
-
- **Comprehensive `@` Mention Parity with GUI**:
|
|
412
|
-
- Upgraded the CLI's `@` mention and autocompletion system from only listing MCP servers to a unified multi-category completion popup matching the Desktop & Web interface:
|
|
413
|
-
- Configured MCP servers (`[Plugin]`): `@<server>` with tool details (ordered at the very top).
|
|
414
|
-
- Builtin contexts (`[Context]`): `@workspace`, `@file`, `@docs`, `@memory` with descriptive badges.
|
|
415
|
-
- Workspace files and directories (`[File]`, `[Folder]`): Automatically scans the active workspace directory, skipping build artifacts (`target`, `.git`, `node_modules`).
|
|
416
|
-
- Supports `@` mention autocomplete anywhere in the input line (not only at the start of the line), correctly replacing the active token at the cursor.
|
|
417
|
-
|
|
418
|
-
- **Subcommand Modularization (`main.rs` Refactoring)**:
|
|
419
|
-
- De-monolithized the 3,190-line `main.rs` down to ~400 lines by decomposing subcommand handlers into dedicated modules under `crates/mint-cli/src/commands/`:
|
|
420
|
-
- `commands/config.rs`: `Status`, `Config`, `Providers`, `Update`, `Onboard`, `Setup`.
|
|
421
|
-
- `commands/system.rs`: `Run`, `Open`, `OpenApp`, `Preview`, `ReadFile`, `ReadFolder`, `Safety`, `Files`.
|
|
422
|
-
- `commands/agent.rs`: `Agent`, `Rewind`, `Auto`, `Web`, `Api`, `Gateway`, `Chat`, `Imagine`, `Veo`, `Video`, `Avatar`.
|
|
423
|
-
- `commands/integrations.rs`: `Mcp`, `Link`, `Hooks`, `Gmail`, `Plugins`.
|
|
424
|
-
- `commands/knowledge.rs`: `Learn`, `Symbols`, `SemanticCode`, `Knowledge`, `Code`, `Skills`.
|
|
425
|
-
- `commands/tasks.rs`: `Memory`, `Task`, `Cron`.
|
|
426
|
-
- `commands/mod.rs`: Unified `Command` enum and clean `dispatch()` router.
|
|
427
|
-
- **Config Safety & Test Environment Isolation**:
|
|
428
|
-
- Added automatic test environment isolation (`is_test_environment()` in `crates/mint-core`) so test runners never read or write user configuration files (`~/.config/mint/mint-config.json`), preventing accidental config wiping during unit tests.
|
|
429
|
-
- Added automatic backup preservation (`mint-config.json.bak`) before every configuration write operation in `save_config_to`.
|
|
430
|
-
- Added `MINT_CONFIG_PATH` environment variable override support for testing and custom config paths.
|
|
431
|
-
|
|
432
|
-
- **Dynamic Model Fetching (Hybrid Approach)**:
|
|
433
|
-
- Replaced hardcoded model presets with live API discovery across Gemini (`/v1beta/models`), Anthropic (`/v1/models`), OpenAI (`/v1/models`), OpenRouter (`/api/v1/models`), DeepSeek (`/v1/models`), and local OpenAI-compatible endpoints (e.g. LM Studio).
|
|
434
|
-
- **In-Memory Cache & Network Resilience**: Live model lists are cached process-wide for 1 hour (`CACHE_TTL`). Configured a 6-second HTTP request timeout in `mint_core::slash::model_fetcher` to promptly and silently fall back to static presets on network/DNS errors, authentication failures, or offline environments without hanging.
|
|
435
|
-
- **Cross-Platform Parity across CLI, Desktop, and Web**:
|
|
436
|
-
- **CLI (`crates/mint-cli`)**: Integrated async live model fetching into `/models <provider>` selection and the interactive onboarding wizard (`mint onboard`), complete with transient terminal loading feedback (`Fetching available models...`).
|
|
437
|
-
- **Desktop UI (`src/renderer/src`)**: Added Tauri command `fetch_provider_models` and React hook `useProviderModels` powering the Settings General tab for hosted providers and LM Studio.
|
|
438
|
-
- **Web UI (`src/renderer/src-web`)**: Added API endpoint `GET /api/models` on the core API server, web-runtime shim in `src-web/tauri.ts`, and Web UI `useProviderModels` hook ensuring identical dynamic model lists.
|
|
439
|
-
|
|
440
|
-
- **Dynamic Image Model Fetching (Hybrid Approach)**:
|
|
441
|
-
- Replaced hardcoded image model presets with live API discovery across Google Gemini / NanoBanana (`/v1beta/models`), OpenAI DALL·E (`/v1/models`), and Replicate (`/v1/collections/text-to-image`), with immediate static fallback for Stability AI, Ideogram, and Black Forest Labs (FLUX).
|
|
442
|
-
- **In-Memory Cache & Network Resilience**: Live image model lists are cached process-wide for 1 hour (`CACHE_TTL`), with a 6-second HTTP request timeout in `mint_core::media::image_model_fetcher` falling back gracefully to static presets on offline or auth errors.
|
|
443
|
-
- **Cross-Platform Parity across CLI, Desktop, and Web**:
|
|
444
|
-
- **CLI (`crates/mint-cli`)**: Added `/image-models` slash command, enhanced `/image-provider` with live model fetching, and integrated live model discovery into `mint onboard` Step 4 with transient loading indicators.
|
|
445
|
-
- **Desktop UI (`src/renderer/src`)**: Added Tauri command `fetch_image_provider_models`, React hook `useImageProviderModels`, and updated Settings General Tab & Image Studio Panel (`ImageStudioPanel.tsx`) with dynamic dropdown selection.
|
|
446
|
-
- **Web UI (`src/renderer/src-web`)**: Added API endpoint `GET /api/image-models` on `mint_core` API server, web-runtime shim in `src-web/tauri.ts`, and Web UI `useImageProviderModels` hook ensuring identical dynamic image model discovery.
|
|
447
|
-
- **Dynamic Video Generation Model Fetching & Studio Parity (Google Veo)**:
|
|
448
|
-
- Transitioned Google Veo video generation from hardcoded strings to dynamic API-discovered model discovery with static fallback presets (`veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`, `veo-3.1-lite-generate-preview`, `veo-2.0-generate-001`).
|
|
449
|
-
- **In-Memory Cache & Network Resilience (`mint_core::media::video_model_fetcher`)**:
|
|
450
|
-
- Live video models queried from Gemini API (`/v1beta/models`), filtered by `veo`/`video` keywords, with `models/` prefix stripping.
|
|
451
|
-
- Cached process-wide for 1 hour (`CACHE_TTL = 3600s`) with a 6-second timeout guard, falling back instantly to canonical presets in `mint_core::media::video_models` on network or authentication errors.
|
|
452
|
-
- **Full Platform Parity across CLI, Desktop, and Web**:
|
|
453
|
-
- **CLI (`crates/mint-cli`)**: Added `/video-models` (and `/videomodels`) slash command, upgraded `/video-provider` with live discovery and interactive selection prompts (`SlashResponse::NeedsChoice`), and integrated live model fetching into `mint onboard` with transient terminal loading indicators (`Fetching available models...`).
|
|
454
|
-
- **Desktop UI (`src/renderer/src`)**: Added Tauri IPC command `fetch_video_provider_models`, created React hook `useVideoProviderModels`, and updated the Settings General tab to render dynamic model dropdowns with bidirectional configuration persistence.
|
|
455
|
-
- **Web UI (`src/renderer/src-web`)**: Added REST API endpoint `GET /api/video-models` and dedicated `GET /api/video-gen/providers`, web-runtime IPC shim in `src-web/tauri.ts`, and Web `useVideoProviderModels` hook.
|
|
456
|
-
- **Veo Studio Panel (`VeoStudioPanel.tsx`)**: Upgraded studio model selection dropdown to dynamically load available live models while preserving static presets, synchronizing the active model seamlessly with settings and CLI commands via the centralized `modelManager`.
|
|
457
|
-
|
|
458
|
-
- **Application Version & Community Links in Settings Footer**:
|
|
459
|
-
- Replaced the legacy "Quit Application" button in the Settings modal footer with a clean metadata block.
|
|
460
|
-
- Displays application version (`Version: {APP_VERSION}`) dynamically sourced from `version.ts`.
|
|
461
|
-
- Added external link to GitHub repository ([GitHub](https://github.com/Pheem49/Mint)) with external link indicator icon (`↗`).
|
|
462
|
-
- Added external link to Mint website ([Website](https://mint.aemeth.xyz/)) with external link indicator icon (`↗`).
|
|
463
|
-
- Implemented across both Desktop UI (`src/renderer/src`) and Web UI (`src/renderer/src-web`) with responsive wrapping on compact viewports (< 620px).
|
|
464
|
-
- Exported `APP_VERSION` from `package.json` into a centralized frontend module (`src/renderer/shared/version.ts`) ensuring a single source of truth without manual string duplication.
|
|
465
|
-
- Added `"version"` reporting to the core API server `/api/status` endpoint.
|
|
68
|
+
- Ignored workspace-local `.mint-mods/` in Git; shareable mod examples remain in `examples/mods/`.
|
|
69
|
+
- Consolidated Desktop launch/build commands and improved source-checkout rebuild detection; failed builds stop before launching an older binary.
|
|
70
|
+
- Development builds read release notes live; shipping builds embed a snapshot.
|
|
71
|
+
- Shortened the README, moved detailed guides into `docs/`, fixed installation navigation, clarified mod sharing, and updated the roadmap around the primary TUI workflow.
|
|
72
|
+
- Condensed these release notes by topic. The original detailed change log is preserved in [v1.16.0 details](docs/releases/v1.16.0-details.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "mint-companion"
|
|
3
|
+
version.workspace = true
|
|
4
|
+
edition.workspace = true
|
|
5
|
+
license.workspace = true
|
|
6
|
+
description = "An optional Live2D companion for Mint"
|
|
7
|
+
|
|
8
|
+
[build-dependencies]
|
|
9
|
+
tauri-build = { version = "2", features = [] }
|
|
10
|
+
|
|
11
|
+
[dependencies]
|
|
12
|
+
dirs.workspace = true
|
|
13
|
+
futures-util.workspace = true
|
|
14
|
+
mint-companion-protocol = { path = "../../../crates/mint-companion-protocol" }
|
|
15
|
+
serde.workspace = true
|
|
16
|
+
serde_json.workspace = true
|
|
17
|
+
tauri = { version = "2", features = ["tray-icon", "macos-private-api"] }
|
|
18
|
+
tokio.workspace = true
|
|
19
|
+
tokio-tungstenite.workspace = true
|
|
20
|
+
uuid.workspace = true
|