feat: CutThenThink v3.0 初始版本

完整实现 Tauri + Vanilla JS 轻量级截图工具

Phase 1 - 项目搭建
- Tauri 2.x 项目初始化
- Vite 前端项目搭建
- 基础 UI 框架(CSS 变量、组件库)
- 构建配置优化

Phase 2 - 核心截图功能
- 全屏/区域/窗口截图
- 截图预览和管理
- 文件命名和缩略图
- 全局快捷键集成

Phase 3 - 上传与存储
- 多图床上传(GitHub/Imgur/自定义)
- 配置管理系统
- SQLite 数据库

Phase 4 - OCR 集成
- 云端 OCR(百度/腾讯云)
- 插件管理系统
- 本地 OCR 插件(Go)
- OCR 结果处理

Phase 5 - AI 分类系统
- Claude/OpenAI API 集成
- Prompt 模板引擎
- 模板管理界面
- 自动分类流程

Phase 6 - 历史记录与管理
- 图库视图(网格/列表)
- 搜索与筛选
- 批量操作
- 导出功能(JSON/CSV/ZIP)

Phase 7 - 打包与发布
- 多平台构建配置
- CI/CD 工作流
- 图标和资源
- 安装包配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-02-12 18:58:40 +08:00
commit e2ea309ee6
142 changed files with 38818 additions and 0 deletions

54
src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,54 @@
[package]
name = "cut-think-lite"
version = "0.1.0"
description = "CutThenThink Lite - AI-powered Clipboard Manager"
authors = ["CutThenThink Team"]
license = "MIT"
repository = "https://github.com/cutthenthink/cutThink-lite"
edition = "2021"
rust-version = "1.77.2"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2.5.4" }
[dependencies]
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
log = "0.4"
tauri = { version = "2.10.0" }
tauri-plugin-log = "2"
tauri-plugin-global-shortcut = "2"
tauri-plugin-shell = "2"
screenshots = "0.7"
image = "0.24"
base64 = "0.21"
chrono = "0.4"
arboard = "3.2"
anyhow = "1.0"
dirs = "5.0"
# Phase 3 dependencies
reqwest = { version = "0.11", features = ["json", "multipart"] }
tokio = { version = "1", features = ["full"] }
rusqlite = { version = "0.30", features = ["bundled", "chrono"] }
uuid = { version = "1.0", features = ["v4", "serde"] }
notify = "6.0"
# Phase 4 dependencies
sha2 = "0.10"
hex = "0.4"
hmac = "0.12"
aes-gcm = "0.10"
rand = "0.8"
urlencoding = "2.1"
futures-util = "0.3"
tempfile = "3.3"
# Phase 5 dependencies (AI)
thiserror = "1.0"