|
|
@@ -1317,6 +1317,20 @@ class SymjaConsole {
|
|
|
<span class="mcp-prompt">[${seq}]:</span>
|
|
|
<span class="mcp-command-text">${this.escapeHtml(text)}</span>
|
|
|
</div>`;
|
|
|
+ } else if (type === 'mcp-latex') {
|
|
|
+ line.innerHTML = `<div class="latex-line">
|
|
|
+ <div class="latex-content">
|
|
|
+ <div class="latex-rendered" id="latex-mcp-${Date.now()}"></div>
|
|
|
+ <div class="latex-source" style="display:none">${this.escapeHtml(text)}</div>
|
|
|
+ <div class="latex-actions">
|
|
|
+ <button class="latex-btn latex-toggle" onclick="symjaConsole.toggleLatexSource(this)">显示源码</button>
|
|
|
+ <button class="latex-btn latex-copy" onclick="symjaConsole.copyLatex(this)">复制 LaTeX</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>`;
|
|
|
+ this.output.appendChild(line);
|
|
|
+ const renderedDiv = line.querySelector('.latex-rendered');
|
|
|
+ this.renderLatex(text, renderedDiv);
|
|
|
} else if (type === 'mcp-result') {
|
|
|
line.innerHTML = `<div class="mcp-result-line">
|
|
|
<span class="mcp-prompt"></span>
|
|
|
@@ -1717,7 +1731,7 @@ class SymjaConsole {
|
|
|
console.log('Searching completions for prefix:', prefix);
|
|
|
|
|
|
// 特殊命令列表
|
|
|
- const specialCommands = ['help', 'clear', 'cls', 'history', 'plugins', 'feedback'];
|
|
|
+ const specialCommands = ['help', 'clear', 'cls', 'history', 'plugins', 'mcp', 'feedback'];
|
|
|
|
|
|
// 获取插件命令列表
|
|
|
const pluginCommands = this.plugins
|
|
|
@@ -2049,8 +2063,13 @@ class SymjaConsole {
|
|
|
events.forEach(ev => {
|
|
|
this.mcpEventCount++;
|
|
|
this.addOutput(ev.expression, 'mcp-input', { seq: this.mcpEventCount });
|
|
|
+ // 检测 LaTeX 渲染
|
|
|
+ if (ev.result && ev.result.startsWith('##TEXFORM##')) {
|
|
|
+ const latex = ev.result.substring(11);
|
|
|
+ this.addOutput(latex, 'mcp-latex', { renderLatex: true });
|
|
|
+ }
|
|
|
// 检测绘图结果 → Canvas 渲染
|
|
|
- if (ev.result && ev.result.startsWith('{"type":"plot"')) {
|
|
|
+ else if (ev.result && ev.result.startsWith('{"type":"plot"')) {
|
|
|
this.addPlotOutput(ev.result, this.mcpEventCount);
|
|
|
} else {
|
|
|
this.addOutput(ev.result, 'mcp-result', { seq: this.mcpEventCount });
|