@wendongfly/myhi 1.3.70 → 1.3.71

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/chat.html +14 -7
  2. package/package.json +1 -1
package/dist/chat.html CHANGED
@@ -147,6 +147,8 @@
147
147
  .tb-btn:active { transform: scale(0.92); }
148
148
  .tb-btn.active { color: #58a6ff; }
149
149
  .tb-btn.recording { color: #f85149; animation: pulse 1s infinite; }
150
+ @keyframes va-ring { 0% { box-shadow: 0 0 0 0 rgba(218,54,51,0.6); } 70% { box-shadow: 0 0 0 12px rgba(218,54,51,0); } 100% { box-shadow: 0 0 0 0 rgba(218,54,51,0); } }
151
+ .va-btn-rec { animation: va-ring 1s ease-out infinite !important; }
150
152
  .tb-btn svg { width: 18px; height: 18px; }
151
153
  #send-btn { color: #3fb950; }
152
154
  #send-btn:hover { background: rgba(63,185,80,0.12); color: #3fb950; }
@@ -3123,7 +3125,10 @@
3123
3125
  const _vaBtn = document.getElementById('va-record-btn');
3124
3126
  const _vaStatusEl = document.getElementById('va-status');
3125
3127
 
3126
- function _vaSetStatus(t) { _vaStatusEl.textContent = t || ''; }
3128
+ function _vaSetStatus(t, color) {
3129
+ _vaStatusEl.textContent = t || '';
3130
+ _vaStatusEl.style.color = color || '#8b949e';
3131
+ }
3127
3132
 
3128
3133
  function _vaIdleLabel() { return _isTouchDevice() ? '按住说话' : '点击开始录音'; }
3129
3134
  function _vaActiveLabel() { return _isTouchDevice() ? '松手停止' : '点击停止录音'; }
@@ -3176,7 +3181,8 @@
3176
3181
  _vaActive = true;
3177
3182
  _vaBtn.textContent = _vaActiveLabel();
3178
3183
  _vaBtn.style.background = '#da3633';
3179
- _vaSetStatus('录音中...');
3184
+ _vaBtn.classList.add('va-btn-rec');
3185
+ _vaSetStatus('● 录音中', '#f85149');
3180
3186
  }
3181
3187
 
3182
3188
  function _vaStop() {
@@ -3184,7 +3190,8 @@
3184
3190
  _vaActive = false;
3185
3191
  _vaBtn.textContent = _vaIdleLabel();
3186
3192
  _vaBtn.style.background = '#1f6feb';
3187
- _vaSetStatus('识别中...');
3193
+ _vaBtn.classList.remove('va-btn-rec');
3194
+ _vaSetStatus('识别中...', '#d29922');
3188
3195
  _vaMR.stop();
3189
3196
  }
3190
3197
 
@@ -3195,16 +3202,16 @@
3195
3202
  const resp = await fetch(`/api/voice-transcribe?sessionId=${SESSION_ID}`, { method: 'POST', body: form });
3196
3203
  const data = await resp.json();
3197
3204
  if (resp.status === 503) {
3198
- _vaSetStatus('ASR 服务未配置');
3205
+ _vaSetStatus('ASR 服务未配置,请在设置中填写语音识别地址', '#f85149');
3199
3206
  } else if (data.text) {
3200
3207
  _vaLines.push(data.text);
3201
3208
  _vaRender();
3202
- _vaSetStatus(`第 ${_vaLines.length} 段已录入,可继续录或点"整理成需求"`);
3209
+ _vaSetStatus(`✓ ${_vaLines.length} 段已录入`, '#3fb950');
3203
3210
  } else {
3204
- _vaSetStatus('未识别到内容,请重试');
3211
+ _vaSetStatus('未识别到内容,请重试', '#d29922');
3205
3212
  }
3206
3213
  } catch (e) {
3207
- _vaSetStatus('上传失败: ' + e.message);
3214
+ _vaSetStatus('上传失败: ' + e.message, '#f85149');
3208
3215
  }
3209
3216
  }
3210
3217
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wendongfly/myhi",
3
- "version": "1.3.70",
3
+ "version": "1.3.71",
4
4
  "description": "Web-based terminal sharing with chat UI — control your terminal from phone via LAN/Tailscale",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",