Skip to content

Commit 42682f2

Browse files
gHashTagclaude
andcommitted
fix: use any types for SpeechRecognition to fix CI/CD build
Replace SpeechRecognition/SpeechRecognitionResultList types with any to ensure compatibility across all TypeScript environments. Add initial value to useRef call. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 0f293e2 commit 42682f2

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

website/src/pages/TrinityCanvas.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626
*/
2727

2828
// Web Speech API type declarations
29+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
30+
type SpeechRecognitionAny = any;
2931
declare global {
3032
interface Window {
31-
SpeechRecognition: typeof SpeechRecognition;
32-
webkitSpeechRecognition: typeof SpeechRecognition;
33+
SpeechRecognition: SpeechRecognitionAny;
34+
webkitSpeechRecognition: SpeechRecognitionAny;
3335
}
3436
}
3537

@@ -414,7 +416,7 @@ export default function TrinityCanvas() {
414416

415417
// Emergent dot nav state
416418
const [dotsVisible, setDotsVisible] = useState(false);
417-
const dotsTimerRef = useRef<ReturnType<typeof setTimeout>>();
419+
const dotsTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);
418420

419421
// Chat state
420422
const [messages, setMessages] = useState<Message[]>([]);
@@ -467,7 +469,7 @@ export default function TrinityCanvas() {
467469
const analyserRef = useRef<AnalyserNode | null>(null);
468470
const mediaStreamRef = useRef<MediaStream | null>(null);
469471
const voiceRafRef = useRef<number>(0);
470-
const recognitionRef = useRef<SpeechRecognition | null>(null);
472+
const recognitionRef = useRef<SpeechRecognitionAny | null>(null);
471473

472474
// Mirror of Three Worlds state
473475
const [mirrorStatus, setMirrorStatus] = useState<MirrorStatus | null>(null);
@@ -492,7 +494,7 @@ export default function TrinityCanvas() {
492494
const [mVisionResult, setMVisionResult] = useState('');
493495
const [mVoiceActive, setMVoiceActive] = useState(false);
494496
const [mVoiceText, setMVoiceText] = useState('');
495-
const mVoiceRecRef = useRef<SpeechRecognition | null>(null);
497+
const mVoiceRecRef = useRef<SpeechRecognitionAny | null>(null);
496498

497499
// Self-reflection state (v2.6)
498500
const [selfReflection, setSelfReflection] = useState<string | null>(null);
@@ -858,7 +860,7 @@ export default function TrinityCanvas() {
858860
if (SpeechRecognition) {
859861
const recognition = new SpeechRecognition();
860862
recognition.continuous = true; recognition.interimResults = true; recognition.lang = 'ru-RU';
861-
recognition.onresult = (event: Event & { resultIndex: number; results: SpeechRecognitionResultList }) => {
863+
recognition.onresult = (event: Event & { resultIndex: number; results: any }) => {
862864
let transcript = '';
863865
for (let i = event.resultIndex; i < event.results.length; i++) transcript += event.results[i][0].transcript;
864866
setVoiceTranscript(transcript);
@@ -1018,7 +1020,7 @@ export default function TrinityCanvas() {
10181020
if (!SR) { setMVoiceText('Speech API not supported'); return; }
10191021
const rec = new SR();
10201022
rec.continuous = false; rec.interimResults = false; rec.lang = 'en-US';
1021-
rec.onresult = (ev: Event & { results: SpeechRecognitionResultList }) => {
1023+
rec.onresult = (ev: Event & { results: any }) => {
10221024
const text = ev.results[0][0].transcript;
10231025
setMVoiceText(text);
10241026
// Auto-send voice transcript as chat

0 commit comments

Comments
 (0)