Commit Graph
16 Commits
Author SHA1 Message Date
digua e2d4ef9831 chore(deps): upgrade TypeScript and Nuxt UI 2026-07-15 23:23:52 +08:00
digua 3ff9437510 chore(tsconfig): align node type-check projects 2026-06-02 15:41:21 +08:00
diguaandCursor d022bed48f refactor(mcp): extract MCP core into shared chatlab-mcp package
Move MCP Server logic (tool registration, resource registration, schema
conversion) from apps/cli/src/mcp.ts to packages/mcp-server so both CLI
and Desktop can share the same MCP implementation.

- New package: chatlab-mcp (packages/mcp-server) with McpDatabaseManager
  interface abstraction
- CLI mcp.ts slimmed to thin entry (~37 lines) calling startMcpServer()
- Desktop helper prototype at apps/desktop/helper/mcp.ts for dev-time
  MCP without GUI
- All 8 MCP tools and 3 resources unchanged

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 10:20:39 +08:00
digua b12c07dc32 refactor: extract Electron shell to apps/desktop/
Move Electron-specific code (main, preload, shared) and configs
(electron.vite, electron-builder) into apps/desktop/ to prepare
for multi-platform support (Web Browser standalone).

- Create apps/desktop/ with dedicated package.json and tsconfig
- Split Electron deps (electron, electron-updater, better-sqlite3,
  etc.) from shared frontend deps in root package.json
- Declare better-sqlite3 and @node-rs/jieba in packages/node-runtime
- Add stream-json to packages/parser where it belongs
- Update all path aliases (@electron/* → apps/desktop/*) in tsconfig,
  vite configs, and relative imports in preload/main
- Keep slim root tsconfig.node.json as shared base for packages
- Update CI/CD release workflow for new directory layout
- Fix pre-existing type errors (pi-ai Model generic, SQLLabTab
  LLMChatStreamChunk, filter.test.ts empty methods)
2026-05-19 00:31:00 +08:00
digua 158e792956 feat: add @openchatlab/sync package and CLI automation support
Extract platform-agnostic sync logic (config, data source, discovery,
pull engine, scheduler) into @openchatlab/sync. Implement server-side
adapters (NodeFetcher, DirectImporter, NoopNotifier) and HTTP routes
(/_web/automation/*) for the CLI web UI. Adapt Pinia store with
dual-transport (IPC for Electron, HTTP for Web).
2026-05-15 23:21:10 +08:00
digua 4e1f03e252 refactor: extract parser to @openchatlab/parser shared package
Move all 14+ format parsers (QQ, WeChat, Telegram, WhatsApp, LINE,
Discord, Instagram, etc.) from electron/main/parser/ to packages/parser/
as a standalone shared package. Electron's parser module becomes a thin
re-export wrapper. This enables the server to use the same parser for
CLI serve Web import functionality.
2026-05-13 20:19:13 +08:00
digua 814ac8a56b feat(tools): create @openchatlab/tools with platform-agnostic AI tools
Phase 2.1: extract tool definitions from electron/main/ai/tools/ into
a shared package. Tools use DatabaseAdapter directly instead of
workerManager. Includes: sessions, session_info, search, member_stats,
time_stats, recent_messages, sql, schema (8 tools total).
2026-05-11 20:06:50 +08:00
digua c09f304304 feat(server): create chatlab CLI skeleton with core commands
Phase 1.8: create the chatlab npm package with commander-based CLI
providing sessions, stats, search, members, query, and config commands.

Commands implemented:
- chatlab sessions: list all imported chat sessions
- chatlab stats <id>: session statistics overview
- chatlab search <id> <keyword>: search messages by keyword
- chatlab members <id>: list chat members
- chatlab query <id> --sql "...": execute readonly SQL
- chatlab config path/show: configuration management
2026-05-11 20:01:44 +08:00
digua e49f2fbbe8 feat(config): create @openchatlab/config package
Phase 1.6: configuration management with TOML/JSON file support,
CHATLAB_* environment variable overrides, and Zod schema validation.
Config file location: ~/.chatlab/config.toml
2026-05-11 19:55:33 +08:00
digua 7c99ae2d26 feat(node-runtime): add BetterSqliteAdapter implementing DatabaseAdapter
Phase 1.2: create @openchatlab/node-runtime package with better-sqlite3
adapter that implements the DatabaseAdapter interface from core. Also add
pragma() method to the DatabaseAdapter interface.
2026-05-11 19:45:45 +08:00
digua d1e160fe23 feat(core): init @openchatlab/core package with abstract interfaces
Phase 1.1 of CLI/Web transformation: create the platform-agnostic core
package with DatabaseAdapter, PathProvider, NotificationBus interfaces
and query filter utilities extracted from worker/core/dbCore.ts.
2026-05-11 19:44:24 +08:00
digua 0f9f21db83 feat: 迁移到pnpm-workspace 2026-05-06 23:56:45 +08:00
digua 12941c4a1e chore: 升级到node24 2026-04-08 09:40:58 +08:00
digua 7eaba396ec refactor: 清理 parser worker rag merger 的历史类型问题 2026-03-25 22:43:12 +08:00
digua fa5aa5b29b chore: update 2026-01-28 20:38:20 +08:00
digua 49ecd8fc1d init 2025-11-26 13:57:24 +08:00