การรองรับ JavaScript ใน Maguyva: การค้นหาด้วย AI สำหรับ Repo ที่ผสมรันไทม์
มีประโยชน์เมื่อ repo ผสม CommonJS, ESM, สคริปต์งาน, test และโค้ดแอปเก่าเข้าด้วยกัน
นามสกุลไฟล์
.cjs, .js, .mjs, .spec.js, +อีก 2
Maguyva รองรับ TypeScript ด้วยการแตกโครงสร้าง AST และการดึง symbol ช่วยให้เอเจนต์ AI ตามรอย interface, การอิมพลีเมนต์, package ที่ใช้ร่วมกัน และโค้ดแอปที่หนัก JSX ข้าม monorepo
TypeScript คือภาษาที่หลายทีมคาดหวังว่าการรีแฟกเตอร์ด้วยความช่วยเหลือของ AI จะรู้สึกปลอดภัยในที่สุด ระบบ type ช่วยได้ แต่มันไม่ได้ขจัดปัญหาจริง: package ที่ใช้ร่วมกัน, DTO, client ที่สร้างขึ้นเอง, คอมโพเนนต์ของ React, test และโค้ดแอปทั้งหมดล้วนดึงชื่อเดียวกันข้าม repo ขนาดใหญ่
สำหรับ TypeScript มาตรฐานสูงกว่าคำว่า “มันเข้าใจไวยากรณ์” เอเจนต์ต้องตามรอย contract จากคำนิยามไปยังการอิมพลีเมนต์ ไปยังรัศมีผลกระทบ ก่อนที่มันจะแก้ไข type ที่ใช้ร่วมกัน, hook หรือ client
Maguyva ดึงคลาส, เมธอด, interface และ type alias ข้าม .ts, .mts, .cts และรูปแบบไฟล์ TypeScript ทั่วไปรอบๆ test และ story คำนำหน้าสมาชิกถูกทำให้เป็นมาตรฐานเดียวกัน แต่ตัวระบุที่มีคลาสกำกับยังคงถูกเก็บไว้ ซึ่งช่วยเมื่อ repo มีทั้งชื่อตัวช่วยเปล่าๆ และเมธอดที่ผูกกับคลาสซึ่งมีส่วนท้ายเหมือนกัน
JSX ถูกถือว่าเป็นสัญญาณเชิงโครงสร้างจริง ไม่ใช่มาร์กอัปที่หลงเหลือ และการคาดหวัง symbol จะข้าม path ของ test, story และ config จำนวนมากไปอย่างชัดเจน สิ่งนี้สำคัญใน monorepo เพราะไม่เช่นนั้น เอเจนต์จะใช้เวลาไปกับการค้นพบโครงสร้างตั้งต้นซ้ำมากเกินไป แทนที่จะเป็นพื้นที่การอิมพลีเมนต์จริง
รูปแบบเริ่มต้นสามแบบมักเพียงพอ:
find_symbol เมื่อคุณรู้ชื่อ interface, type alias, hook หรือ service อยู่แล้วdependency_search ก่อนเปลี่ยน type ที่ใช้ร่วมกันหรือ client ที่อาจกระจายข้าม packagestructural_search เมื่อต้องการรูปทรงโค้ด ไม่ใช่การจับคู่คำสำคัญ เช่น รูปแบบคอมโพเนนต์หรือเมธอดที่เกิดซ้ำสำหรับคำถามเชิงแนวคิด เช่น “ตามรอยเส้นทางการส่งเช็คเอาต์” get_task_context มักเป็นจุดเริ่มต้นที่ดีกว่าการค้นหาแบบดิบ
หน้านี้แข็งแรงที่สุดสำหรับ web และแพลตฟอร์ม monorepo ที่ TypeScript เป็นชั้นประสานงานของหลาย package หาก repo ของคุณยังมี JS เก่าอยู่มาก ให้อ่าน คู่มือ JavaScript หากคำถามของคุณคือ “เอเจนต์เก็บโค้ดแอปและบริบทโครงสร้างพื้นฐานไว้ด้วยกันได้หรือไม่” ให้จับคู่หน้านี้กับ Terraform
เหมาะที่สุดสำหรับ
เวิร์กโฟลว์ของเอเจนต์
รายละเอียดเอนจิน
จุดเริ่มต้น MCP ที่มีประโยชน์
find_symbol
เริ่มที่นี่เมื่อคุณรู้อินเทอร์เฟซ type alias, hook หรือเซอร์วิสที่ใช้ร่วมกันที่ต้องการตรวจสอบ
dependency_search
ใช้ก่อนเปลี่ยน DTO หรือไคลเอนต์ที่ใช้ร่วมกัน เพื่อดูรัศมีผลกระทบที่สมจริงข้ามแพ็กเกจ
structural_search
ใช้การค้นหาระดับ AST เมื่อคุณต้องการแพตเทิร์น ไม่ใช่การจับคู่สตริง เช่น รูปแบบคอมโพเนนต์หรือเมธอดที่ซ้ำกัน
คู่มือที่เกี่ยวข้อง
มีประโยชน์เมื่อ repo ผสม CommonJS, ESM, สคริปต์งาน, test และโค้ดแอปเก่าเข้าด้วยกัน
นามสกุลไฟล์
.cjs, .js, .mjs, .spec.js, +อีก 2
มีประโยชน์เมื่อโค้ดโครงสร้างพื้นฐานเป็นส่วนหนึ่งของบริบท repo และไม่ใช่สิ่งที่เอเจนต์ควรมองข้ามไป
นามสกุลไฟล์
.tf, .tfvars