This repository is the monorepo for Cherry Markdown, a rich, extensible WYSIWYG markdown editor library developed by Tencent. The core package (`packages/cherry-markdown`) provides a modular parsing engine with a plugin-based syntax hook system, a comprehensive toolbar, streaming rendering for AI chat, and support for diagrams (Mermaid, PlantUML, ECharts), math (KaTeX/MathJax), tables, and code blocks. The repository also includes a desktop client built with Tauri (Vue 3 + Pinia + Rust) that adds file management, local versioning, and native integrations; a VS Code extension; a WeChat Mini Program renderer; and various example applications. The architecture is well-structured with clear separation of concerns (engine, previewer, editor, toolbar, addons), extensive unit tests, and a consistent event-driven pattern. While the core library is JavaScript with JSDoc types, the client and plugins are TypeScript. Some technical drift exists due to vendored third-party assets (e.g., drawio library), a partially implemented Milkdown adapter, and a few deprecated code paths. Overall, this is a mature, actively maintained editor framework with high reusability in its hook system, utility classes, and composable patterns.
Chef is a production-grade AI agent that generates full-stack web applications through an interactive chat interface. It integrates a multi-provider LLM orchestration layer (Anthropic, OpenAI, Google, xAI) with a WebContainer-based sandbox to run generated code in the browser. The system allows users to chat with an agent that can create, edit, view, and deploy code to the Convex backend platform. It provides a code editor (CodeMirror), file tree, terminal, live preview, and sharing/cloning features. The architecture is a monolith with a Remix frontend, Convex backend for persistence and real-time updates, and a custom agent loop (chef-agent) that manages context, tool execution, and message streaming. The repository includes a CLI tool (chefshot) for headless generation and a test-kitchen for automated evals.