@zhongqian97-code/ecode 0.5.26 → 0.5.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +13 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5779,14 +5779,13 @@ function generateAdminHtml(version2) {
5779
5779
  function highlightCode(code) {
5780
5780
  let s = escHtml(code);
5781
5781
  // keywords
5782
- s = s.replace(/\b(function|const|let|var|return|if|else|for|while|class|import|export|from|async|await|new|this|typeof|instanceof|null|undefined|true|false)\b/g, '<span class="kw">$1</span>');
5782
+ s = s.replace(/\\b(function|const|let|var|return|if|else|for|while|class|import|export|from|async|await|new|this|typeof|instanceof|null|undefined|true|false)\\b/g, '<span class="kw">$1</span>');
5783
5783
  // strings (single, double \u2014 after HTML escaping, quotes appear as &#39; or &quot;)
5784
5784
  s = s.replace(/(&#39;[^&#]*&#39;|&quot;[^&]*&quot;)/g, '<span class="str">$1</span>');
5785
5785
  // comments
5786
- s = s.replace(/(//[^
5787
- ]*)/g, '<span class="cmt">$1</span>');
5786
+ s = s.replace(/(\\/\\/[^\\n]*)/g, '<span class="cmt">$1</span>');
5788
5787
  // numbers
5789
- s = s.replace(/\b(d+.?d*)\b/g, '<span class="num">$1</span>');
5788
+ s = s.replace(/\\b(\\d+\\.?\\d*)\\b/g, '<span class="num">$1</span>');
5790
5789
  return s;
5791
5790
  }
5792
5791
 
@@ -6106,6 +6105,9 @@ function generateAdminHtml(version2) {
6106
6105
  }
6107
6106
  } catch (e) {
6108
6107
  showToast('\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25: ' + e.message, 'error');
6108
+ if (e.message && e.message.includes('API Key')) {
6109
+ openConfigModal(true);
6110
+ }
6109
6111
  }
6110
6112
  });
6111
6113
 
@@ -6152,7 +6154,7 @@ function generateAdminHtml(version2) {
6152
6154
  });
6153
6155
 
6154
6156
  // \u2500\u2500 \u914D\u7F6E\u6A21\u6001\u6846 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
6155
- document.getElementById('config-btn').addEventListener('click', async () => {
6157
+ async function openConfigModal(focusApiKey) {
6156
6158
  try {
6157
6159
  const data = await apiFetch('/api/config');
6158
6160
  document.getElementById('cfg-model').value = data.model || '';
@@ -6163,7 +6165,12 @@ function generateAdminHtml(version2) {
6163
6165
  showToast('\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25: ' + e.message, 'error');
6164
6166
  }
6165
6167
  document.getElementById('config-modal').classList.add('open');
6166
- });
6168
+ if (focusApiKey) {
6169
+ setTimeout(() => document.getElementById('cfg-apikey').focus(), 50);
6170
+ }
6171
+ }
6172
+
6173
+ document.getElementById('config-btn').addEventListener('click', () => openConfigModal(false));
6167
6174
 
6168
6175
  document.getElementById('cancel-config').addEventListener('click', () => {
6169
6176
  document.getElementById('config-modal').classList.remove('open');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhongqian97-code/ecode",
3
- "version": "0.5.26",
3
+ "version": "0.5.28",
4
4
  "description": "A minimal Claude Code clone with REPL interface and bash tool calling",
5
5
  "type": "module",
6
6
  "author": "zhongqian97-code",