File size: 1,791 Bytes
811916b c86c048 811916b cbf8fa6 f059dc2 811916b e7bfb69 1545694 51e3b39 811916b 51e3b39 811916b f059dc2 51e3b39 811916b f059dc2 0d0f934 e7bfb69 0d0f934 2a0250a f332e70 4dc14dc c86c048 4dc14dc c86c048 4dc14dc 5d0136a eeb4c01 5d0136a 4dc14dc 811916b 4dc14dc cbf8fa6 c86c048 e7bfb69 2a0250a 811916b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
// @ts-check
import { makeEnterPlugins, setupCrepeEnterKey } from './enter-key';
import { initHTML } from './init-html';
import { initMilkdown } from './init-milkdown';
import { outputMessage, flushBufferedOutputs } from './output-message';
import { workerConnection } from './worker-connection';
import { name, description, version } from '../../package.json';
/** @type {import('@milkdown/core').Editor} */
export var chatLogEditor;
/** @type {import('@milkdown/core').Editor} */
export var chatInputEditor;
export var worker;
export async function bootApp() {
const { chatLog, chatInput } = initHTML();
worker = workerConnection();
worker.loaded.then(async ({ env }) => {
document.title = name + ' v' + version + ' t/' + env.version;
outputMessage(
'transformers.js **v' + env.version + '**');
});
const {
chatLogEditor: chatLogEditorInstance,
chatInputEditor: chatInputEditorInstance,
crepeInput
} = await initMilkdown({
worker,
chatLog,
chatInput,
inputPlugins: makeEnterPlugins({ workerConnection: worker }),
onSlashCommand: async (modelId) => {
try {
outputMessage(`Loading model: ${modelId}...`);
await worker.loadModel(modelId);
outputMessage(`Model ${modelId} loaded successfully!`);
} catch (error) {
outputMessage(`Error loading model ${modelId}: ${error.message}`);
}
}
});
chatLogEditor = chatLogEditorInstance;
chatInputEditor = chatInputEditorInstance;
// Flush any outputs that were buffered before the editor was ready
flushBufferedOutputs();
// Setup Enter key handling for the Crepe input editor
setupCrepeEnterKey(crepeInput, worker);
document.title = name + ' v' + version;
outputMessage(description + ' **v' + version + '**');
} |