
استعادة معرّفات JavaScript من الجيل التالي باستخدام LLMs.
تُظهر جودة الأسماء نسبة الأسماء التي فضّلها حصريًا تقييم Jev آلي غير معاير. مخطط متحرك ← · الأعداد الدقيقة والمنهجية والقيود ←
جرّب FlowName في متصفحك ← — أدخل شيفرة JavaScript ومفتاح API والطراز؛ لا حاجة إلى تثبيت.
CLI: npx --yes --package=flowname@latest flowname input.js (عيّن GEMINI_API_KEY أولًا).
FlowName هو أداة استرداد المعرّفات الدلالية من الجيل التالي لشيفرة JavaScript المُعتَّمة. وباستخدام التحليل الساكن القائم على AST لتجميع المتغيرات المترابطة منطقيًا في طلبات LLM محدودة الميزانية، يقضي FlowName على هلوسات فقدان السياق الشائعة في الأساليب الساذجة القائمة على نوافذ النص.
عبر مقارنتين مباشرتين مع أداة رائدة قائمة على الرموز (Humanify) على Cigar وGrobPaint، حقق FlowName هذه النتائج النسبية المتوسطة:
في مقارنة ثانية على 1,786 ارتباطًا مجهول الهوية في GrobPaint، استخدم FlowName 408 طلبات API مقابل 1,786 و29.36% رموز إجمالية أقل؛ وأعطى Jev المدرك للمصدر الأصلي 512 تفضيلًا حصريًا مقابل 274.
استكشف ملخص المعايير وكلا تقريري الأسماء القابلين للبحث. أحكام Jev آلية وغير معايرة. أغفل موجّه Humanify التهجئة المستهدفة لبعض الارتباطات، وقد تؤثر اللواحق الآمنة من التعارض على درجات الأسماء المطبقة. راجع الملخص لمعرفة تقسيم السياق والقيود.
عيّن GEMINI_API_KEY (أو FLOWNAME_API_KEY) في بيئتك أو في ملف .env في الدليل الحالي، ثم شغّل:
npx --yes --package=flowname@latest flowname input.js
لاستخدام نقطة نهاية أخرى متوافقة مع OpenAI، أو لتخطي متغيرات البيئة، مرّر كل شيء كأعلام:
npx --yes --package=flowname@latest flowname input.js --base-url https://api.openai.com/v1 --model MODEL --api-key YOUR_API_KEY
تأخذ الأعلام الأولوية، ثم البيئة، ثم .env؛ ويحذّر CLI عند تعارضها. قد يكون المفتاح الذي يُمرَّر كعلم مرئيًا في سجل الصدفة وقوائم العمليات.
تحقق من التكلفة قبل إنفاق أي شيء، أو جرّب جزءًا صغيرًا من ملف كبير أولًا:
flowname input.js --dry-run # planned API calls and prompt bytes; no key needed
flowname input.js --sample-requests 3 # send only the first 3 planned requests
flowname - -o - < input.js > output.js # standard input to standard output
يكتب CLI الشيفرة المستعادة إلى دليل جديد flowname-output-TIMESTAMP-ID/output.js. أضف --report لمراقبة كل طلب والاسم المقترح في تقرير HTML مباشر. لا تُشترط أي أعلام لنموذج Gemini الافتراضي. يتطلب Node.js 22.8+.
بالنسبة للمتصفح، افتح playground، وألصق JavaScript، وقدّم مفتاح API الخاص بك وابدأ الاستعادة. تنتقل الطلبات مباشرةً من متصفحك إلى المزوّد المحدد؛ Stop يوقف التشغيل.
يسمّي FlowName المعرّفات؛ وهو لا يفكّ الحزم ولا يتراجع عن التشويش البنيوي. استخدم webcrack لأنماط التشويش المدعومة أو Wakaru للحزم المدعومة، ثم مرّر JavaScript الناتج إلى FlowName. يحلّ الروابط المعجمية، ويستخدم علاقات خفيفة وتراجعًا ضمن النطاق نفسه لتجميع الأهداف، ويطلب من LLM عدة أسماء لكل طلب. اطّلع على كيفية عمل التجميع.
npm install flowname
import { readFile } from 'node:fs/promises';
import { recoverNames, createProvider } from 'flowname';
const sourceCode = await readFile('./input.js', 'utf8');
const provider = createProvider({
provider: 'gemini',
model: 'gemini-3.5-flash-lite',
apiKey: process.env.GEMINI_API_KEY,
});
const result = await recoverNames(sourceCode, { provider });
console.log(result.code);
راجع دليل الاستخدام للاطلاع على الخيارات وتقارير CLI ومثال كامل للمكتبة. يغطي فهرس الوثائق المنهج والبنية والقيود والأعمال السابقة ومقارنة Humanify.
مرخّص بموجب MIT. راجع ملاحظات الإصدار.