mirror of
https://github.com/THU-MAIC/OpenMAIC.git
synced 2026-10-02 09:24:43 +08:00
Next.js 16 App Router application with: - AI-powered interactive classroom generation from PDF/text requirements - Multi-agent discussion system (teacher, students, assistant roles) - Provider abstraction for LLM, TTS, ASR, image, video, web search - Local-first data architecture (IndexedDB/Dexie) - i18n support (zh-CN/en-US) - Structured logger, SSRF guard, lint/build passing (0 errors) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
30 lines
757 B
TypeScript
30 lines
757 B
TypeScript
import mitt, { type Emitter } from 'mitt';
|
|
|
|
export const enum EmitterEvents {
|
|
RICH_TEXT_COMMAND = 'RICH_TEXT_COMMAND',
|
|
SYNC_RICH_TEXT_ATTRS_TO_STORE = 'SYNC_RICH_TEXT_ATTRS_TO_STORE',
|
|
OPEN_CHART_DATA_EDITOR = 'OPEN_CHART_DATA_EDITOR',
|
|
OPEN_LATEX_EDITOR = 'OPEN_LATEX_EDITOR',
|
|
}
|
|
|
|
export interface RichTextAction {
|
|
command: string;
|
|
value?: string;
|
|
}
|
|
|
|
export interface RichTextCommand {
|
|
target?: string;
|
|
action: RichTextAction | RichTextAction[];
|
|
}
|
|
|
|
type Events = {
|
|
[EmitterEvents.RICH_TEXT_COMMAND]: RichTextCommand;
|
|
[EmitterEvents.SYNC_RICH_TEXT_ATTRS_TO_STORE]: void;
|
|
[EmitterEvents.OPEN_CHART_DATA_EDITOR]: void;
|
|
[EmitterEvents.OPEN_LATEX_EDITOR]: void;
|
|
};
|
|
|
|
const emitter: Emitter<Events> = mitt<Events>();
|
|
|
|
export default emitter;
|