/** * Tokenizer Tool - Tokenizer visualization tool */ class TokenizerTool extends Tool { constructor() { super({ id: 'tokenizer', name: 'Tokenizer', icon: 'fa-layer-group', title: 'Tokenizer visualization', order: 6 }); } getVueData() { return { tokenizerInput: '', tokenizerEngine: 'byte', tokenizerTokens: [], tokenizerCharCount: 0, tokenizerWordCount: 0 }; } getVueMethods() { return { runTokenizer: async function() { const text = this.tokenizerInput || ''; const engine = this.tokenizerEngine; const tokens = []; if (!text) { this.tokenizerTokens = []; this.tokenizerCharCount = 0; this.tokenizerWordCount = 0; return; } if (engine === 'byte') { const encoder = new TextEncoder(); const bytes = encoder.encode(text); for (let i=0;i vueInstance.runTokenizer()); } } // Export if (typeof module !== 'undefined' && module.exports) { module.exports = TokenizerTool; } else { window.TokenizerTool = TokenizerTool; }