From 89fa6039026377b2ffc7d4cd7dac3ca5e9fbc158 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 Jul 2026 13:05:41 +0000 Subject: [PATCH] docs: update translations for changed English sources --- docs/ar/dashboard.mdx | 86 +++++++++++++++-------------- docs/ar/introduction.mdx | 30 +++++------ docs/de/dashboard.mdx | 76 +++++++++++++------------- docs/de/introduction.mdx | 24 ++++----- docs/es/dashboard.mdx | 56 +++++++++---------- docs/es/introduction.mdx | 18 +++---- docs/fr/dashboard.mdx | 58 ++++++++++---------- docs/fr/introduction.mdx | 20 +++---- docs/he/dashboard.mdx | 105 ++++++++++++++++++------------------ docs/he/introduction.mdx | 26 ++++----- docs/hi/dashboard.mdx | 98 ++++++++++++++++----------------- docs/hi/introduction.mdx | 25 +++++---- docs/it/dashboard.mdx | 78 +++++++++++++-------------- docs/it/introduction.mdx | 24 ++++----- docs/ja/dashboard.mdx | 86 ++++++++++++++--------------- docs/ja/introduction.mdx | 20 +++---- docs/ko/dashboard.mdx | 66 +++++++++++------------ docs/ko/introduction.mdx | 18 +++---- docs/pt-br/dashboard.mdx | 58 ++++++++++---------- docs/pt-br/introduction.mdx | 20 +++---- docs/ru/dashboard.mdx | 102 +++++++++++++++++------------------ docs/ru/introduction.mdx | 26 ++++----- docs/tr/dashboard.mdx | 86 ++++++++++++++--------------- docs/tr/introduction.mdx | 24 ++++----- docs/vi/dashboard.mdx | 81 ++++++++++++++-------------- docs/vi/introduction.mdx | 26 ++++----- docs/zh/dashboard.mdx | 74 ++++++++++++------------- docs/zh/introduction.mdx | 26 ++++----- 28 files changed, 719 insertions(+), 718 deletions(-) diff --git a/docs/ar/dashboard.mdx b/docs/ar/dashboard.mdx index 3aa42b0a..bc7e94f0 100644 --- a/docs/ar/dashboard.mdx +++ b/docs/ar/dashboard.mdx @@ -1,10 +1,10 @@ --- title: لوحة التحكم -description: "راقب جلسات الوكيل، واستعرض استدعاءات الأدوات، وأدر السياسات" +description: "مراقبة جلسات الوكيل، ومراجعة استدعاءات الأدوات، وإدارة السياسات" icon: chart-line --- -لوحة التحكم failproofai عبارة عن تطبيق ويب محلي لمراقبة جلسات وكيل الذكاء الاصطناعي الخاص بك وإدارة السياسات. اطّلع على ما فعله وكلاؤك أثناء غيابك. +لوحة تحكم failproofai هي تطبيق ويب محلي لمراقبة جلسات وكيل الذكاء الاصطناعي لديك وإدارة السياسات. شاهد ما فعلته وكلاؤك أثناء غيابك. --- @@ -14,9 +14,9 @@ icon: chart-line failproofai ``` -يتم فتحها في `http://localhost:8020`. +يتم فتحها على `http://localhost:8020`. -تقرأ لوحة التحكم مباشرة من نظام الملفات - مجلدات مشاريع Claude Code وملفات إعدادات failproofai. لا يتم كتابة أي شيء إلى خدمة بعيدة. +تقرأ لوحة التحكم بيانات المشروع المحلية والجلسات وبيانات تكوين failproofai مباشرة من نظام الملفات. الميزات المصادقة الاختيارية، مثل تذكيرات التدقيق والدعوات، ترسل المعلومات المطلوبة لتلك الطلبات (بما في ذلك عناوين البريد الإلكتروني) إلى واجهات برمجية بعيدة. --- @@ -24,67 +24,71 @@ failproofai ### المشاريع -يسرد جميع مشاريع Claude Code و OpenAI Codex و GitHub Copilot CLI _(إصدار تجريبي)_ و Cursor Agent _(إصدار تجريبي)_ و OpenCode _(إصدار تجريبي)_ و Pi _(إصدار تجريبي)_ و Hermes الموجودة على جهازك. يتم اكتشاف مشاريع Claude من `~/.claude/projects/` (أو المسار المحدد بواسطة `CLAUDE_PROJECTS_PATH`); يتم اكتشاف مشاريع Codex بمسح كل نص تحت `~/.codex/sessions///
/*.jsonl` وتجميعها حسب `cwd` المسجل في السجل الأول من كل جلسة; يتم اكتشاف مشاريع Copilot CLI بمسح كل `~/.copilot/session-state//workspace.yaml` (قابل للتكوين عبر `COPILOT_HOME`) وتجميعها حسب حقل `cwd` الخاص به; يتم اكتشاف مشاريع Cursor Agent بمسح البيانات الفوقية لكل جلسة تحت `~/.cursor/agent-sessions//` (قابل للتكوين عبر `CURSOR_HOME`، مع اختبار `conversations/` و `sessions/` كبدائل) للبحث عن `cwd` في `meta.json` / `session.json` / `workspace.yaml`; يتم اكتشاف مشاريع OpenCode بالاستعلام عن قاعدة بيانات SQLite الخاصة به في `~/.local/share/opencode/opencode.db` عبر `opencode db --format json` (نحن نقرأ الجداول `session` و `project` ونجمعها حسب `project_id`); يتم اكتشاف مشاريع Pi بمسح نصوص JSONL لكل جلسة تحت `~/.pi/agent/sessions//_.jsonl` (قابل للتكوين عبر `PI_SESSIONS_DIR`) واستخراج `cwd` من السجل الأول من كل جلسة; تتم قراءة جلسات بوابة Hermes مباشرة من متجرها SQLite في `~/.hermes/state.db` (قابل للتكوين عبر `HERMES_DB_PATH`) وتجميعها في مشاريع `hermes-` حسب `source` (Slack/Telegram/cli/cron — جلسات البوابة لا تحتوي على cwd). يتم عرض المشروع الذي تم استخدامه بواسطة عدة CLIs كصف واحد مع جميع الشارات المطابقة. استخدم القائمة المنسدلة **CLI** فوق الجدول للتصفية حسب CLI وكيل معين; يحافظ عنوان URL على اختيارك كـ `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +يسرد جميع مشاريع Claude Code و OpenAI Codex و GitHub Copilot CLI _(beta)_ و Cursor Agent _(beta)_ و OpenCode _(beta)_ و Pi _(beta)_ و Hermes و OpenClaw و Factory Droid و Devin و Antigravity و Goose الموجودة على جهازك. يتم اكتشاف مشاريع Claude من `~/.claude/projects/` (أو المسار المحدد بواسطة `CLAUDE_PROJECTS_PATH`); يتم اكتشاف مشاريع Codex من خلال مسح كل نسخة أصلية ضمن `~/.codex/sessions///
/*.jsonl` وتجميعها حسب `cwd` المسجل في السجل الأول لكل جلسة; يتم اكتشاف مشاريع Copilot CLI من خلال مسح كل `~/.copilot/session-state//workspace.yaml` (قابلة للتكوين عبر `COPILOT_HOME`) وتجميعها حسب حقل `cwd`; يتم اكتشاف مشاريع Cursor Agent من خلال مسح البيانات الوصفية لكل جلسة ضمن `~/.cursor/agent-sessions//` (قابلة للتكوين عبر `CURSOR_HOME`، مع المسح بحثاً عن `conversations/` و `sessions/` كخيارات بديلة) للبحث عن كمية عددية `cwd` في `meta.json` / `session.json` / `workspace.yaml`; يتم اكتشاف مشاريع OpenCode من خلال الاستعلام عن قاعدة بيانات SQLite الخاصة بها على `~/.local/share/opencode/opencode.db` عبر `opencode db --format json` (نحن نقرأ جداول `session` و `project` ونجمعها حسب `project_id`); يتم اكتشاف مشاريع Pi من خلال مسح نصوص JSONL لكل جلسة ضمن `~/.pi/agent/sessions//_.jsonl` (قابلة للتكوين عبر `PI_SESSIONS_DIR`) وسحب `cwd` من السجل الأول لكل جلسة; يتم قراءة جلسات بوابة Hermes مباشرة من متجرها SQLite على `~/.hermes/state.db` (قابلة للتكوين عبر `HERMES_DB_PATH`) وتجميعها في مشاريع `hermes-` حسب `source` (Slack/Telegram/cli/cron — جلسات البوابة لا تحتوي على cwd); يتم قراءة جلسات بوابة OpenClaw من `~/.openclaw/agents//sessions/*.jsonl` وتجميعها في مشاريع `openclaw-` (أيضاً بدون cwd); يتم اكتشاف مشاريع Factory Droid من نصوص JSONL على `~/.factory/sessions//*.jsonl` وتجميعها حسب cwd; مشاريع Devin من قاعدة بيانات SQLite الخاصة بها على `~/.local/share/devin/cli/sessions.db` (مجمعة حسب `working_directory` لكل جلسة); مشاريع Antigravity من نصوص JSONL على `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` وتجميعها حسب cwd; ومشاريع Goose من قاعدة بيانات SQLite الخاصة بها على `~/.local/share/goose/sessions/sessions.db` (مجمعة حسب `working_dir` لكل جلسة). يتم عرض المشروع الذي استخدمته واجهات برمجية متعددة كصف واحد مع جميع الشارات المطابقة. استخدم القائمة المنسدلة **CLI** فوق الجدول للتصفية حسب واجهة برمجية وكيل محددة; يحافظ عنوان URL على اختيارك كـ `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. يعرض كل مشروع: - اسم المشروع (مشتق من مسار المجلد) -- شارة CLI — `Claude Code` (برتقالي)، `OpenAI Codex` (بنفسجي)، `GitHub Copilot` (أزرق)، `Cursor Agent` (زمردي)، `OpenCode` (كهرماني)، `Pi` (وردي)، و/أو `Hermes` (نيلي) -- تاريخ آخر نشاط جلسة +- شارة CLI — `Claude Code` (برتقالي)، `OpenAI Codex` (بنفسجي)، `GitHub Copilot` (أزرق)، `Cursor Agent` (أخضر زمردي)، `OpenCode` (كهرماني)، `Pi` (وردي)، و/أو `Hermes` (نيلي) +- تاريخ أحدث نشاط جلسة -انقر على مشروع لمشاهدة جلساته. +انقر على مشروع لرؤية جلساته. ### الجلسات يسرد جميع الجلسات ضمن مشروع. تعرض كل جلسة: -- معرف الجلسة -- طوابع زمنية البدء والنهاية +- معرّف الجلسة +- الطوابع الزمنية للبداية والنهاية - عدد استدعاءات الأدوات -- عدد نشاط الخطاف (السياسات التي تم تشغيلها) +- عدد أنشطة Hook (السياسات التي تم تشغيلها) -استخدم مرشح نطاق التاريخ وبحث معرف الجلسة لتضييق القائمة. يتم تقسيم الجلسات على صفحات. +استخدم مرشح نطاق التاريخ والبحث عن معرّف الجلسة لتضييق القائمة. يتم ترقيم الجلسات. انقر على جلسة لفتح عارض الجلسة. ### عارض الجلسة -يجيب عارض الجلسة على السؤال الأساسي للوكلاء المستقلين: ماذا فعل الوكيل، وهل بقي على المسار الصحيح؟ تشير شارة CLI بجانب الرأس إلى ما إذا كانت الجلسة نسخة Claude Code أو OpenAI Codex أو GitHub Copilot CLI أو Cursor Agent أو OpenCode أو Pi أو Hermes. يعرض جدول زمني لكل ما حدث في جلسة: +يجيب عارض الجلسة على السؤال الرئيسي للوكلاء المستقلين: ماذا فعل الوكيل، وهل بقي على المسار الصحيح؟ تشير شارة CLI بجوار الرأس إلى ما إذا كانت الجلسة نسخة أصلية من Claude Code أو OpenAI Codex أو GitHub Copilot CLI أو Cursor Agent أو OpenCode أو Pi أو Hermes أو OpenClaw أو Factory Droid أو Devin أو Antigravity أو Goose. يظهر خط زمني لكل ما حدث في الجلسة: -- **الرسائل** - استجابات نصية من Claude ومحفزات المستخدم +- **الرسائل** - استجابات Claude النصية وتوجيهات المستخدم - **استدعاءات الأدوات** - كل أداة استدعاها Claude، مع إدخالها وإخراجها - **نشاط السياسة** - لكل استدعاء أداة، السياسات التي تم تشغيلها والقرار الذي أرجعته -تعرض شريط الإحصائيات في الأعلى مدة الجلسة وإجمالي استدعاءات الأدوات وملخص قرارات الخطاف (عدد السماح/الرفض/التعليمات). +يعرض شريط الإحصائيات في الأعلى مدة الجلسة وإجمالي استدعاءات الأدوات وملخص قرارات Hook (عد allow / deny / instruct). -انقر على زر **تحميل السجلات** لتصدير الجلسة. بالنسبة لجلسات Claude Code و Codex و Copilot و Cursor و Pi، تحصل على نص JSONL الأصلي على القرص بالكامل; بالنسبة لـ OpenCode (التي تعيش جلساتها في SQLite وليس على القرص) تحصل على وثيقة JSON تعكس جداول `session` / `messages` / `parts` الأساسية. +انقر على زر **Download Logs** لتصدير الجلسة. بالنسبة لجلسات Claude Code و Codex و Copilot و Cursor و Pi، تحصل على نسخة JSONL الأصلية على القرص بالبايت; بالنسبة لـ OpenCode (التي تعيش جلساتها في SQLite، وليس على القرص)، تحصل على مستند JSON يعكس جداول `session` / `messages` / `parts` الأساسية. ### التدقيق -تقرير مدفوع بالشخصية حول كيفية تصرف وكيلك بالفعل عبر الجلسات السابقة. يشغل نفس المسح مثل CLI `failproofai audit` لكن يعرضه كملصق على شاشة واحدة قابل للمشاركة + أربعة أقسام تحت الطي: +تقرير مدفوع بالشخصية لكيفية تصرف وكيلك بالفعل عبر الجلسات السابقة. يشغل نفس الفحص كما في CLI `failproofai audit` لكنه يعرضها كملصق واحد قابل للمشاركة على شاشة واحدة + أربعة أقسام أسفل الطية: -1. **الملصق** — يملأ أول عرض. منطقة PNG محكمة الإغلاق تحتوي على علامة failproof_ai + تسمية التدقيق · فهرس الأنماط (`№ NN من 08`) + تاريخ التدقيق · النقاط الرقمية (0–100) + حبة تصنيف النسبة المئوية (`أفضل 15%`) · اسم النمط (واحد من `المتفائل` أو `رجل الفوضى` أو `المستكشف` أو `سمك الذاكرة القصيرة` أو `معماري بجنون الارتياب` أو `بناء الدقة` أو `المطرقة` أو `الشبح`) + شريط 3 كلمات · `// فقط N% من الوكلاء لديهم هذا النمط` خط الندرة · بلاط sigil بحجم 8×8 بكسل · تذييل `قم بتدقيق ملكك → failproof.ai`. ثلاث أزرار مشاركة تجلس خارج صندوق الالتقاط: `شارك نمطك` (نية X)، `شارك على linkedin`، `تحميل الملصق`. يتم الالتقاط من خلال `html-to-image` لذا فإن PNG يطابق الرسم على الشاشة بكل بكسل (الحدود المقسومة، قناع شعار SVG، التدرجات، مقاييس الخط — كل شيء محفوظ). -2. **نقاط القوة** — قائمة صفوف هادئة من السلوكيات التي يفعلها وكيلك بالفعل بشكل صحيح، مشتقة من بيانات التدقيق المباشرة (معدل استدعاء أداة نظيف، لا دفع مباشر إلى main، صفر تسريب بيانات اعتماد، صفر عواصف إعادة محاولة) — يتم طرح كل واحد فقط عندما تحتوي السياسة ذات الصلة على سجل نظيف عبر نافذة التدقيق. -3. **الفضول** — جدول ما تسلل، مصنف حسب الشدة: `عندما · ما تسلل + السياسة التي كانت ستقبضه · حبة الشدة · مرئي`، حيث تقرأ التكرار `جديد` (مرة واحدة)، `مرئي N×` (2–9 مرات)، أو `متكرر` (10+). -4. **كيفية التحسن** — قائمة صفوف هادئة، واحدة لكل سياسة موصى بها: اسم السياسة بالأبيض، وصف سطر واحد، أمر التثبيت + زر النسخ على الجانب الأيمن. يقرأ رأس القسم `تفعيل الكل N → النتيجة المتوقعة · ` (النتيجة التي ستصل إليها مع تطبيق كل إصلاح)، وزر `[تثبيت الكل]` الخاص به ينسخ أمر `failproofai policy add a b c …` المدمج لكل سياسة موصى بها. -5. **عودة أفضل** — بطاقتان جنباً إلى جنب. اليسار: اضبط تذكيراً (منتقي إيقاع `3d` / `7d` / `14d` / `30d`; يستمر عبر `/api/auth/reminder` بمجرد المصادقة). اليمين: افتح مزايا failproof — `دعوة صديق` يفتح نافذة منفثقة تأخذ قائمة بريد إلكتروني للأصدقاء مفصولة بفاصلة/مسافة/سطر جديد (بحد أقصى 10 لكل إرسال)، POSTs إلى `/api/audit/invite`، التي تعيد إلى `POST /v0/invite` من خادم api. يرسل خادم api رسالة بريد إلكترونية واحدة لكل مستلم من `invite@failproof.ai` مع مرسل Cc وتعيين `Reply-To`، لذا يرى المستلم من دعاك والمرسل يحصل على نسخة في صندوق الوارد الخاص به. يتم توجيه المستخدمين المجهولين عبر `AuthDialog` أولاً بحيث يكون بريد المرسل معروفاً قبل إرسال الدعوات. تحقيق الحقوق/المزايا متابعة. +1. **ملصق** — يملأ أول عرض محمول. منطقة PNG التقاط نفسها الاحتواء مع علامة failproof_ai + تسمية التدقيق · فهرس النموذج الأصلي (`№ NN of 08`) + تاريخ التدقيق · درجة عددية (0–100) + حبة ترتيب مئوي (`top 15%`) · اسم النموذج الأصلي (أحدها `the optimist`، `the cowboy`، `the explorer`، `the goldfish`، `the paranoid architect`، `the precision builder`، `the hammer`، `the ghost`) + شريط 3 كلمات · `// only N% of agents are this archetype` سطر الندرة · بلاط sigil بحجم 8×8 بكسل · تذييل `audit yours → failproof.ai`. ثلاثة أزرار مشاركة تجلس خارج صندوق الالتقاط مباشرة: `post your archetype` (X intent)، `share on linkedin`، `download poster`. يعمل الالتقاط من خلال `html-to-image` لذا يطابق PNG عرض الشاشة بكسل لبكسل (حدود مخططة، قناع شعار SVG، تدرجات، مقاييس الخط — كل محفوظ). -مدفوعة بواسطة وقت تشغيل `failproofai audit` — انظر [Audit CLI](/ar/cli/audit) لمحرك المسح الأساسي والأعلام المدعومة وثوابت ذاكرة التخزين المؤقت لكل نص. تخزن لوحة التحكم أحدث نتيجة في `~/.failproofai/audit-dashboard.json` (الوضع `0600`، فتحة واحدة، يؤدي التشغيل الجديد إلى الكتابة فوق) بحيث تكون الزيارات الثانية فورية; **يتم رفض كل من ذاكرة التخزين المؤقت لكل نص والنتيجة الكاملة عند القراءة بمجرد تجاوزها 7 أيام** لذا لا تقدم لوحة التحكم أبداً نتيجة قديمة بصمت — بعد انتهاء TTL `/audit` يسقط إلى حالة فارغة ويطالب بتشغيل جديد. ينقر `[ إعادة تدقيق الآن ]` بالقرب من أسفل التقرير على POST `/api/audit/run` مع `noCache: true` — إعادة التدقيق تتجاوز ذاكرة التخزين المؤقت لكل نص وتعيد مسح كل نص من البداية بدلاً من إرجاع النتيجة المخزنة مؤقتاً بصمت — وتستقصي لوحة التحكم `/api/audit/status` بمعدل 1Hz حتى ينتهي التشغيل; شريط تقدم وردي لاصق يثبت في أعلى viewport أثناء التشغيل مع مؤقت الوقت المنقضي، والنتيجة الجديدة تحل محل مكانها عند النجاح (لا إعادة تحميل للصفحة الكاملة; إعادة تدقيق فاشلة تترك التقرير السابق سليماً). في حالة الفشل، يتحول الشريط إلى اللون الأحمر مع نسخة مفصولة عن `RerunError.kind` (`timeout` / `network` / `post_failed`). الحالة الفارغة (لا ذاكرة تخزين مؤقت أو منتهية الصلاحية) وحالة الصفر الجلسات (توجد ذاكرة التخزين المؤقت ولكن المسح لم يجد نصوصاً) يتم عرضهما بشكل منفصل. +2. **نقاط القوة** — قائمة صف هادئة لسلوكيات وكيلك التي يفعلها بالفعل بشكل صحيح، مشتقة من بيانات التدقيق المباشر (معدل استدعاء أداة نظيف، بدون دفع مباشر إلى main، بدون تسرب بيانات اعتماد، بدون عواصف إعادة محاولة) — يتم عرض كل منها فقط عندما تكون السياسة ذات الصلة لها سجل نظيف عبر نافذة التدقيق. + +3. **الغرائب** — جدول ما تسرب، مرتب حسب الخطورة: `when · what slipped + the policy that would've caught it · severity pill · seen`، حيث يقرأ التكرار `new` (مرة واحدة)، `N× seen` (2–9 مرات)، أو `recurring` (10+). + +4. **كيفية التحسين** — قائمة صف هادئة، واحدة لكل سياسة موصى بها: اسم السياسة بأبيض، وصف سطر واحد، أمر التثبيت + زر نسخ على الجانب الأيمن. يقرأ رأس القسم `enable all N → projected · ` (الدرجة التي ستصل إليها مع تطبيق كل إصلاح)، وزر `[install all]` الخاص به ينسخ أمر `failproofai policy add a b c …` المدمج لكل سياسة موصى بها. + +5. **عد بشكل أفضل** — بطاقتان جنباً إلى جنب. اليسار: قم بتعيين تذكير (منتقي الإيقاع `3d` / `7d` / `14d` / `30d`; يستمر عبر `/api/auth/reminder` بمجرد المصادقة). اليمين: فتح مزايا failproof — `invite a friend` يفتح نمطاً يأخذ قائمة بريد إلكتروني للأصدقاء مفصولة بفواصل/مسافات/أسطر جديدة (الحد الأقصى 10 لكل إرسال)، POSTs إلى `/api/audit/invite`، والذي يعيد توجيهها إلى `/v0/invite` في خادم api الخاص بـ `POST`. يرسل خادم api بريداً إلكترونياً واحداً لكل مستقبل من `invite@failproof.ai` مع نسخة المرسل (Cc) و `Reply-To` محددة، لذا يرى المستقبل من قام بدعوتهم والمرسل يحصل على نسخة في صندوق الوارد الخاص به. يتم توجيه المستخدمين المجهولين من خلال `AuthDialog` أولاً بحيث يكون البريد الإلكتروني للمرسل معروفاً قبل إرسال الدعوات. استحقاق / تحقيق المزايا هو متابعة. + +يتم تشغيله بواسطة وقت `failproofai audit` - انظر [Audit CLI](/ar/cli/audit) لمحرك الفحص الأساسي والعلامات المدعومة والثوابت الثابتة المخزنة مؤقتاً لكل نسخة أصلية. تقوم لوحة التحكم بتخزين النتيجة الأحدث مؤقتاً على `~/.failproofai/audit-dashboard.json` (الوضع `0600`، موضع واحد، تكتب التشغيلات الجديدة فوق) بحيث تكون إعادة الزيارات فورية; **يتم رفض كل من ذاكرة التخزين المؤقتة لكل نسخة أصلية وكل النتائج عند القراءة بمجرد أن تصبح أقدم من 7 أيام** لذا لا تقدم لوحة التحكم أبداً بصمت نتيجة قديمة بسنة — بعد TTL `/audit` يسقط من خلال حالته الفارغة ويطالب بتشغيل طازج. بالنقر على `[ re-audit now ]` بالقرب من أسفل التقرير، يتم POST إلى `/api/audit/run` مع `noCache: true` — إعادة التدقيق تتجاوز ذاكرة التخزين المؤقتة لكل نسخة أصلية وتعيد مسح كل نسخة أصلية من الصفر بدلاً من إرجاع النتيجة المخزنة مؤقتاً بصمت — وتقوم لوحة التحكم باستطلاع `/api/audit/status` عند 1Hz حتى ينتهي التشغيل; يتم تثبيت شريط تقدم وردي لزج في أعلى عرض المنفذ أثناء التشغيل مع مؤقت مضي الوقت، والنتيجة الطازجة تتبادل في الموضع عند النجاح (لا يوجد إعادة تحميل كاملة للصفحة; إعادة التدقيق الفاشلة تترك التقرير السابق سليماً). في حالة الفشل، يتحول الشريط إلى اللون الأحمر مع النسخ المشفرة من `RerunError.kind` (`timeout` / `network` / `post_failed`). يتم عرض الحالة الفارغة (بدون ذاكرة تخزين مؤقتة أو منتهية الصلاحية) وحالة الجلسات الصفرية (توجد ذاكرة تخزين مؤقتة لكن الفحص لم يعثر على نصوص أصلية) بشكل منفصل. ### السياسات -صفحة بتبويبين لإدارة السياسات ومراجعة النشاط. +صفحة ذات تبويبتين لإدارة السياسات ومراجعة النشاط. - - حدد بطاقة متعددة الاختيار CLI الذي يحمي failproofai من لوحة واحدة — Claude Code و OpenAI Codex و GitHub Copilot و Cursor Agent و OpenCode و Pi و Hermes لها جميعاً صف مع حالة التثبيت (`نشط` / `مكتشف` / `غير نشط`)، مسار إعدادات نطاق المستخدم، وتمييز ملون العلامة التجارية. قم بتحديد أو إلغاء تحديد CLIs التي تريد وانقر `تطبيق التغييرات` لتثبيت/إلغاء تثبيت الفرق في خطوة واحدة. CLIs التي تم اكتشاف ملفها الثنائي على PATH يتم تحديدها مسبقاً. - - بدّل السياسات الفردية على أو بيقاف مع نقرة واحدة (يكتب إلى `~/.failproofai/policies-config.json` — مشترك عبر كل CLI مثبت) - - قم بتوسيع سياسة لتكوين معاملات (للسياسات التي تدعم `policyParams`) - - عيّن مسار ملف سياسات مخصص + - اختر من لوحة واحدة واجهات برمجية وكيل متعددة التي تحمي failproofai — Claude Code و OpenAI Codex و GitHub Copilot و Cursor Agent و OpenCode و Pi و Hermes كل منها لديه صف مع حالة التثبيت (`Active` / `Detected` / `Inactive`)، مسار إعدادات النطاق الخاص بالمستخدم، وتأكيد ذو ألوان العلامة التجارية. تحقق أو قم بإلغاء تحديد واجهات البرمجة التي تريدها وانقر فوق `Apply changes` لتثبيت/إلغاء تثبيت الفرق في خطوة واحدة. واجهات برمجية التي يتم اكتشاف ملفاتها الثنائية على PATH يتم تحديد مسبق لها. + - التبديل بين السياسات الفردية بضغطة واحدة (يكتب إلى `~/.failproofai/policies-config.json` — مشترك عبر كل CLI مثبت) + - قم بتوسيع سياسة لتكوين معاملات الخاصة بها (للسياسات التي تدعم `policyParams`) + - تعيين مسار ملف السياسات المخصصة - - السجل الكامل المقسم على صفحات لكل حدث خطاف تم تشغيله عبر جميع الجلسات - - التصفية حسب القرار ونوع الحدث و CLI (Claude Code / OpenAI Codex / GitHub Copilot _(إصدار تجريبي)_ / Cursor Agent _(إصدار تجريبي)_ / OpenCode _(إصدار تجريبي)_ / Pi _(إصدار تجريبي)_ / Hermes) واسم السياسة أو معرف الجلسة - - يعرض كل صف: الطابع الزمني واسم السياسة والقرار وشارة CLI (برتقالي = Claude Code، بنفسجي = OpenAI Codex، أزرق = GitHub Copilot، زمردي = Cursor Agent، كهرماني = OpenCode، وردي = Pi، نيلي = Hermes) واسم الأداة ومعرف الجلسة وسبب قرارات الرفض/التعليمات - - انقر على معرف جلسة لفتح النص الخاص به — الكاشف التلقائي للعارض CLI الذي أطلق الخطاف (Claude `~/.claude/projects/…`، Codex `~/.codex/sessions/…`، Copilot CLI `~/.copilot/session-state//events.jsonl`، Cursor Agent `~/.cursor/agent-sessions//events.jsonl`، OpenCode `~/.local/share/opencode/opencode.db`، Pi `~/.pi/agent/sessions//.jsonl`، Hermes `~/.hermes/state.db`) ويعرض شارة CLI المطابقة في الرأس + - السجل الكامل المرقم لكل حدث hook تم تشغيله عبر جميع الجلسات + - التصفية حسب القرار ونوع الحدث واجهة برمجية (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose) أو اسم السياسة أو معرف الجلسة + - يعرض كل صف: الطابع الزمني، اسم السياسة، القرار، شارة CLI (برتقالي = Claude Code، بنفسجي = OpenAI Codex، أزرق = GitHub Copilot، أخضر زمردي = Cursor Agent، كهرماني = OpenCode، وردي = Pi، نيلي = Hermes، أخضر لازوردي = OpenClaw، وردي فاتح = Factory Droid، بنفسجي = Devin، سماوي = Antigravity، أخضر فاتح = Goose)، اسم الأداة، معرف الجلسة، والسبب لقرارات deny/instruct + - انقر على معرف الجلسة لفتح النسخة الأصلية — يكتشف العارض تلقائياً واجهة برمجية محددة التي أطلقت Hook (Claude `~/.claude/projects/…`، Codex `~/.codex/sessions/…`، Copilot CLI `~/.copilot/session-state//events.jsonl`، Cursor Agent `~/.cursor/agent-sessions//events.jsonl`، OpenCode `~/.local/share/opencode/opencode.db`، Pi `~/.pi/agent/sessions//.jsonl`، Hermes `~/.hermes/state.db`، OpenClaw `~/.openclaw/agents//sessions/*.jsonl`، Factory Droid `~/.factory/sessions//.jsonl`، Devin `~/.local/share/devin/cli/sessions.db`، Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`، Goose `~/.local/share/goose/sessions/sessions.db`) ويعرض شارة CLI المطابقة في الرأس @@ -92,13 +96,13 @@ failproofai ## التحديث التلقائي -تحتوي لوحة التحكم على مفتاح التحديث التلقائي في التنقل العلوي. عند التفعيل، يتم تحديث الصفحة الحالية بشكل دوري لإظهار جلسات جديدة ونشاط سياسة جديد وهو يظهر. ضروري لمراقبة جلسات الوكيل المستقل طويلة الأجل. +تحتوي لوحة التحكم على تبديل التحديث التلقائي في التنقل العلوي. عند التفعيل، يتم تحديث الصفحة الحالية بشكل دوري لعرض الجلسات الجديدة ونشاط السياسة عند ظهوره. ضروري لمراقبة جلسات الوكيل المستقل طويلة المدى. --- ## تعطيل الصفحات -إذا كنت تحتاج فقط إلى بعض أجزاء لوحة التحكم، فاضبط `FAILPROOFAI_DISABLE_PAGES` على قائمة مفصولة بفواصل من أسماء الصفحات: +إذا كنت تحتاج فقط إلى بعض أجزاء لوحة التحكم، قم بتعيين `FAILPROOFAI_DISABLE_PAGES` إلى قائمة مفصولة بفواصل من أسماء الصفحات: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -110,7 +114,7 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai ## تكوين مسار المشاريع -بشكل افتراضي، تقرأ لوحة التحكم من دليل مشاريع Claude Code القياسي. تجاوزه للإعدادات المخصصة: +بشكل افتراضي، تقرأ لوحة التحكم من دليل مشاريع Claude Code القياسي. قم بتجاوزه للإعدادات المخصصة: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -118,21 +122,21 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai --- -## الوصول من مضيف غير محلي +## الوصول من مضيف غير localhost -عند تشغيل لوحة التحكم في **وضع التطوير** (`npm run dev`) والوصول إليها من hostname بخلاف `localhost` - على سبيل المثال، نطاق مخصص أو IP بعيد أو عنوان URL يتم نفقه - قد تراى تحذيراً مثل: +عند تشغيل لوحة التحكم في **وضع dev** (`npm run dev`) والوصول إليها من اسم مضيف آخر غير `localhost` - على سبيل المثال، مجال مخصص أو عنوان IP بعيد أو عنوان URL مجهول الهوية - قد تراى تحذيراً مثل: ```text -⚠ طلب cross-origin محظور لمورد Next.js dev /_next/webpack-hmr من dashboard.example.com. +⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -هذا هو Next.js الذي يحظر الوصول cross-origin إلى HMR (hot module reload) websocket، وهي ميزة dev فقط. للسماح بمضيفك، استخدم علم `--allowed-origins`: +هذا هو Next.js الذي يحجب الوصول متعدد الأصول إلى websocket HMR (إعادة تحميل الوحدة الساخنة) الخاص به، وهي ميزة خاصة بـ dev فقط. للسماح بمضيفك، استخدم العلم `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -لعدة مضيفين أو IPs، مرر قائمة مفصولة بفواصل: +للعديد من المضيفين أو عناوين IP، قم بتمرير قائمة مفصولة بفواصل: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 @@ -145,5 +149,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -هذا ينطبق فقط على وضع التطوير. عند تشغيل `failproofai` (وضع الإنتاج)، لا يوجد HMR websocket ولا مشكلة مورد dev cross-origin. +ينطبق هذا فقط على وضع dev. عند تشغيل `failproofai` (وضع الإنتاج)، لا يوجد websocket HMR ولا توجد مشكلة مورد dev متعدد الأصول. \ No newline at end of file diff --git a/docs/ar/introduction.mdx b/docs/ar/introduction.mdx index f93cccce..69eb9dc9 100644 --- a/docs/ar/introduction.mdx +++ b/docs/ar/introduction.mdx @@ -1,41 +1,41 @@ --- title: "Failproof AI" -description: "FailproofAI يوفر للوكلاء الذكيين 39 سياسة فشل مدمجة تكتشف الحلقات وتسرب الأسرار واستدعاءات الأدوات المدمرة والمزيد في تثبيت واحد." +description: "FailproofAI يوفر لوكلاء الذكاء الاصطناعي 39 سياسة فشل مدمجة تمسك بالحلقات واللتسرب السري والاستدعاءات التدميرية للأدوات والمزيد في تثبيت واحد." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -الخطافات والسياسات لـ **معالجة أعطال الذكاء الاصطناعي** و **استرجاع الأخطاء** و **موثوقية نماذج اللغة الكبيرة**. حافظ على موثوقية وكلائك الذكيين والعمل بشكل مستقل عبر **Claude Code** و **OpenAI Codex** و **GitHub Copilot** و **Cursor Agent** و **OpenCode** و **Pi** و **Hermes** و **Agents SDK**. +خطافات وسياسات لـ **معالجة فشل الذكاء الاصطناعي**، **استرجاع الأخطاء**، و **موثوقية نماذج اللغة الكبيرة**. حافظ على أن تبقى وكلاء الذكاء الاصطناعي الخاصة بك موثوقة وتعمل بشكل مستقل عبر **Claude Code**، **OpenAI Codex**، **GitHub Copilot**، **Cursor Agent**، **OpenCode**، **Pi**، **Hermes**، **OpenClaw**، **Factory Droid**، **Devin CLI**، **Antigravity CLI**، و **Agents SDK**. -الوكلاء الذكيون يفشلون بطرق يمكن التنبؤ بها. يقومون بتنفيذ أوامر مدمرة، تسرب الأسرار، الانجراف عن المهمة الأساسية، الوقوع في حلقات، أو الدفع مباشرة إلى الفرع الرئيسي. إذا تركت دون مراقبة، فإن الأعطال الصغيرة قد تؤدي إلى انقطاعات، تسرب بيانات الاعتماد، وفقدان العمل. +وكلاء الذكاء الاصطناعي يفشلون بطرق يمكن التنبؤ بها. إنهم ينفذون أوامر تدميرية، ويسربون الأسرار، ويحيدون عن المهمة، ويعلقون في حلقات، أو يدفعون مباشرة إلى الفرع الرئيسي. إذا تركت دون رقابة، فإن الأخطاء الصغيرة تتسبب في انقطاعات الخدمة وتسرب بيانات الاعتماد وفقدان العمل. -FailproofAI يحل هذه المشكلة عبر **السياسات**. هذه القواعد تتصل بكل استدعاء أداة من الوكيل لـ **الكشف عن الأعطال** و **تخفيفها** (حظر، توجيه، تعقيم) و **تنبيهك** عند الحاجة للاهتمام. لوحة معلومات محلية تسمح لك باستعراض كل استدعاء أداة وفشل وكيل وإجراء استرجاع بعد ذلك. +FailproofAI يحل هذا باستخدام **السياسات**. هذه القواعد تتصل بكل استدعاء أداة للوكيل لـ **الكشف عن الأخطاء**، **تخفيفها** (الحظر، التعليمات، التعقيم)، و **تنبيهك** عندما يحتاج شيء ما إلى انتباه. لوحة معلومات محلية تسمح لك بمراجعة كل استدعاء أداة وفشل وكيل وإجراء استرجاع بعد ذلك. -لا تغادر أي بيانات جهازك. +النصوص وتقييم السياسات تبقى على جهازك. يتم إرسال البيانات فقط عندما تستخدم بشكل صريح ميزة عبر الإنترنت، مثل تذكيرات التدقيق المصرح بها أو الدعوات. -## ابدأ الآن +## البدء - حظر الأوامر المدمرة، منع تسرب الأسرار، إبقاء الوكلاء داخل حدود المشروع، والمزيد. كل ذلك جاهز من البداية. + احجب الأوامر التدميرية، ومنع تسرب الأسرار، وأبق الوكلاء داخل حدود المشروع، والمزيد. كل شيء جاهز خارج الصندوق. - - اكتب قواعدك الخاصة في JavaScript باستخدام واجهة برمجية بسيطة allow / deny / instruct. + + اكتب قواعلك الخاصة في JavaScript باستخدام واجهة برمجية بسيطة للسماح / الرفض / التعليمات. - انظر إلى ما فعله وكلائك أثناء غيابك. استعرض الجلسات، افحص استدعاءات الأدوات، راجع المكان الذي تم تطبيق السياسات فيه. + انظر إلى ما فعله وكلاؤك أثناء غيابك. استعرض الجلسات، وتفتش استدعاءات الأدوات، وراجع حيث انطلقت السياسات. - ضبط أي سياسة دون كود. عيّن قوائم السماح أو الفروع المحمية أو العتبات لكل مشروع أو عالميًا. + اضبط أي سياسة دون كود. عيّن قوائم السماح والفروع المحمية أو الحدود لكل مشروع أو عالمياً. -## ابدأ بسرعة +## البدء السريع @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # تفعيل السياسات (أو تخطي — سيقدم failproofai تعيينها عند التشغيل الأول) -failproofai # إطلاق لوحة المعلومات +failproofai policies --install # enable policies (or skip — `failproofai` will offer to set them up on first run) +failproofai # launch the dashboard ``` -راجع دليل [البدء](/ar/getting-started) للحصول على الشرح الكامل. \ No newline at end of file +انظر إلى دليل [البدء](/ar/getting-started) للحصول على الشرح الكامل. \ No newline at end of file diff --git a/docs/de/dashboard.mdx b/docs/de/dashboard.mdx index 9f8069d2..820ba98b 100644 --- a/docs/de/dashboard.mdx +++ b/docs/de/dashboard.mdx @@ -1,10 +1,10 @@ --- title: Dashboard -description: "Agentensitzungen überwachen, Tool-Aufrufe prüfen und Richtlinien verwalten" +description: "Agent-Sitzungen überwachen, Tool-Aufrufe einsehen und Richtlinien verwalten" icon: chart-line --- -Das failproofai Dashboard ist eine lokale Webanwendung zur Überwachung Ihrer KI-Agentensitzungen und Verwaltung von Richtlinien. Sehen Sie, was Ihre Agenten in Ihrer Abwesenheit getan haben. +Das failproofai Dashboard ist eine lokale Webanwendung zur Überwachung Ihrer KI-Agent-Sitzungen und zur Verwaltung von Richtlinien. Sehen Sie nach, was Ihre Agenten in Ihrer Abwesenheit getan haben. --- @@ -16,7 +16,7 @@ failproofai Öffnet sich unter `http://localhost:8020`. -Das Dashboard liest direkt vom Dateisystem – aus Ihren Claude Code-Projektordnern und den failproofai-Konfigurationsdateien. Es werden keine Daten an einen externen Dienst übertragen. +Das Dashboard liest lokale Projekt-, Sitzungs- und failproofai-Konfigurationsdaten direkt vom Dateisystem. Optionale authentifizierte Funktionen, wie Audit-Erinnerungen und Einladungen, übermitteln die für diese Anfragen benötigten Informationen (einschließlich E-Mail-Adressen) an Remote-APIs. --- @@ -24,67 +24,67 @@ Das Dashboard liest direkt vom Dateisystem – aus Ihren Claude Code-Projektordn ### Projekte -Listet alle Claude Code-, OpenAI Codex-, GitHub Copilot CLI- _(Beta)_, Cursor Agent- _(Beta)_, OpenCode- _(Beta)_, Pi- _(Beta)_ und Hermes-Projekte auf, die auf Ihrem Rechner gefunden wurden. Claude-Projekte werden aus `~/.claude/projects/` erkannt (oder dem über `CLAUDE_PROJECTS_PATH` festgelegten Pfad); Codex-Projekte werden durch Scannen aller Transkripte unter `~/.codex/sessions///
/*.jsonl` ermittelt und nach dem `cwd` des ersten Eintrags jeder Sitzung gruppiert; Copilot CLI-Projekte werden durch Scannen von `~/.copilot/session-state//workspace.yaml` (konfigurierbar über `COPILOT_HOME`) und Gruppierung nach dem dortigen `cwd`-Feld erkannt; Cursor Agent-Projekte werden durch Scannen der sitzungsspezifischen Metadaten unter `~/.cursor/agent-sessions//` (konfigurierbar über `CURSOR_HOME`, mit `conversations/` und `sessions/` als Fallbacks) nach einem `cwd`-Skalar in `meta.json` / `session.json` / `workspace.yaml` erkannt; OpenCode-Projekte werden durch Abfrage der SQLite-Datenbank unter `~/.local/share/opencode/opencode.db` via `opencode db --format json` ermittelt (dabei werden die Tabellen `session` und `project` gelesen und nach `project_id` gruppiert); Pi-Projekte werden durch Scannen von sitzungsspezifischen JSONL-Transkripten unter `~/.pi/agent/sessions//_.jsonl` (konfigurierbar über `PI_SESSIONS_DIR`) und Auslesen des `cwd` aus dem ersten Eintrag jeder Sitzung erkannt; Hermes-Gateway-Sitzungen werden direkt aus dem SQLite-Store unter `~/.hermes/state.db` (konfigurierbar über `HERMES_DB_PATH`) gelesen und nach `source` (Slack/Telegram/cli/cron — Gateway-Sitzungen haben kein cwd) in `hermes-`-Projekte gruppiert. Ein Projekt, das von mehreren CLIs genutzt wurde, wird als einzelne Zeile mit allen zugehörigen Badges angezeigt. Verwenden Sie das **CLI**-Dropdown über der Tabelle, um nach einer bestimmten Agenten-CLI zu filtern; die URL speichert Ihre Auswahl als `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Listet alle auf Ihrem Rechner gefundenen Claude Code-, OpenAI Codex-, GitHub Copilot CLI- _(Beta)_, Cursor Agent- _(Beta)_, OpenCode- _(Beta)_, Pi- _(Beta)_, Hermes-, OpenClaw-, Factory Droid-, Devin-, Antigravity- und Goose-Projekte auf. Claude-Projekte werden aus `~/.claude/projects/` (oder dem über `CLAUDE_PROJECTS_PATH` gesetzten Pfad) ermittelt; Codex-Projekte werden durch Scannen aller Transkripte unter `~/.codex/sessions///
/*.jsonl` und Gruppierung nach dem im ersten Datensatz jeder Sitzung gespeicherten `cwd` gefunden; Copilot CLI-Projekte werden durch Scannen jeder `~/.copilot/session-state//workspace.yaml` (konfigurierbar über `COPILOT_HOME`) und Gruppierung nach dem `cwd`-Feld ermittelt; Cursor Agent-Projekte werden durch Scannen von sitzungsspezifischen Metadaten unter `~/.cursor/agent-sessions//` (konfigurierbar über `CURSOR_HOME`, mit `conversations/` und `sessions/` als Fallbacks) nach einem `cwd`-Skalar in `meta.json` / `session.json` / `workspace.yaml` gefunden; OpenCode-Projekte werden durch Abfrage seiner SQLite-Datenbank unter `~/.local/share/opencode/opencode.db` via `opencode db --format json` ermittelt (es werden die Tabellen `session` und `project` gelesen und nach `project_id` gruppiert); Pi-Projekte werden durch Scannen von sitzungsspezifischen JSONL-Transkripten unter `~/.pi/agent/sessions//_.jsonl` (konfigurierbar über `PI_SESSIONS_DIR`) und Auslesen des `cwd` aus dem ersten Datensatz jeder Sitzung gefunden; Hermes Gateway-Sitzungen werden direkt aus dem SQLite-Speicher unter `~/.hermes/state.db` (konfigurierbar über `HERMES_DB_PATH`) gelesen und nach `source` (Slack/Telegram/cli/cron — Gateway-Sitzungen haben kein cwd) in `hermes-`-Projekte gruppiert; OpenClaw Gateway-Sitzungen werden aus `~/.openclaw/agents//sessions/*.jsonl` gelesen und in `openclaw-`-Projekte gruppiert (ebenfalls ohne cwd); Factory Droid-Projekte werden aus den JSONL-Transkripten unter `~/.factory/sessions//*.jsonl` ermittelt und nach cwd gruppiert; Devin-Projekte aus seiner SQLite-Datenbank unter `~/.local/share/devin/cli/sessions.db` (gruppiert nach dem `working_directory` jeder Sitzung); Antigravity-Projekte aus den JSONL-Transkripten unter `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` und nach cwd gruppiert; und Goose-Projekte aus seiner SQLite-Datenbank unter `~/.local/share/goose/sessions/sessions.db` (gruppiert nach dem `working_dir` jeder Sitzung). Ein Projekt, das von mehreren CLIs verwendet wurde, wird als einzelne Zeile mit allen passenden Badges dargestellt. Verwenden Sie das **CLI**-Dropdown über der Tabelle, um nach einer bestimmten Agent-CLI zu filtern; die URL behält Ihre Auswahl als `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` bei. Jedes Projekt zeigt: - Projektname (abgeleitet vom Ordnerpfad) -- Ein CLI-Badge — `Claude Code` (orange), `OpenAI Codex` (lila), `GitHub Copilot` (blau), `Cursor Agent` (smaragd), `OpenCode` (bernstein), `Pi` (pink) und/oder `Hermes` (indigo) +- Ein CLI-Badge — `Claude Code` (orange), `OpenAI Codex` (lila), `GitHub Copilot` (blau), `Cursor Agent` (smaragdgrün), `OpenCode` (bernstein), `Pi` (pink) und/oder `Hermes` (indigo) - Datum der letzten Sitzungsaktivität -Klicken Sie auf ein Projekt, um dessen Sitzungen anzuzeigen. +Klicken Sie auf ein Projekt, um seine Sitzungen anzuzeigen. ### Sitzungen Listet alle Sitzungen innerhalb eines Projekts auf. Jede Sitzung zeigt: - Sitzungs-ID -- Start- und Endzeitstempel +- Start- und Endzeitpunkt - Anzahl der Tool-Aufrufe - Anzahl der Hook-Aktivitäten (ausgelöste Richtlinien) -Verwenden Sie den Datumsbereichsfilter und die Sitzungs-ID-Suche, um die Liste einzugrenzen. Sitzungen werden paginiert angezeigt. +Verwenden Sie den Datumsbereichsfilter und die Sitzungs-ID-Suche, um die Liste einzugrenzen. Sitzungen sind paginiert. -Klicken Sie auf eine Sitzung, um den Sitzungsviewer zu öffnen. +Klicken Sie auf eine Sitzung, um den Sitzungs-Viewer zu öffnen. -### Sitzungsviewer +### Sitzungs-Viewer -Der Sitzungsviewer beantwortet die zentrale Frage bei autonomen Agenten: Was hat der Agent getan, und ist er auf Kurs geblieben? Ein CLI-Badge neben der Überschrift zeigt an, ob es sich um ein Claude Code-, OpenAI Codex-, GitHub Copilot CLI-, Cursor Agent-, OpenCode-, Pi- oder Hermes-Transkript handelt. Er zeigt eine Zeitleiste aller Ereignisse einer Sitzung: +Der Sitzungs-Viewer beantwortet die zentrale Frage bei autonomen Agenten: Was hat der Agent getan, und ist er auf Kurs geblieben? Ein CLI-Badge neben dem Header gibt an, ob es sich um ein Claude Code-, OpenAI Codex-, GitHub Copilot CLI-, Cursor Agent-, OpenCode-, Pi-, Hermes-, OpenClaw-, Factory Droid-, Devin-, Antigravity- oder Goose-Transkript handelt. Er zeigt eine Zeitleiste aller Ereignisse in einer Sitzung: -- **Nachrichten** – Claudes Textantworten und Benutzeranfragen -- **Tool-Aufrufe** – Jedes von Claude aufgerufene Tool mit Ein- und Ausgabe -- **Richtlinienaktivität** – Für jeden Tool-Aufruf: welche Richtlinien ausgelöst wurden und welche Entscheidung sie getroffen haben +- **Nachrichten** - Claudes Textantworten und Benutzeranfragen +- **Tool-Aufrufe** - Jedes von Claude aufgerufene Tool, mit Ein- und Ausgabe +- **Richtlinienaktivität** - Für jeden Tool-Aufruf: welche Richtlinien ausgelöst wurden und welche Entscheidung sie zurückgegeben haben -Die Statistikleiste oben zeigt Sitzungsdauer, Gesamtzahl der Tool-Aufrufe und eine Zusammenfassung der Hook-Entscheidungen (allow / deny / instruct-Anzahl). +Die Statistikleiste oben zeigt Sitzungsdauer, Gesamtanzahl der Tool-Aufrufe und eine Zusammenfassung der Hook-Entscheidungen (Anzahl von allow / deny / instruct). -Klicken Sie auf **Logs herunterladen**, um die Sitzung zu exportieren. Für Claude Code-, Codex-, Copilot-, Cursor- und Pi-Sitzungen erhalten Sie das originale JSONL-Transkript vom Datenträger byte-genau; für OpenCode (dessen Sitzungen in SQLite und nicht auf dem Datenträger gespeichert sind) erhalten Sie ein JSON-Dokument, das die zugrundeliegenden Tabellen `session` / `messages` / `parts` widerspiegelt. +Klicken Sie auf die Schaltfläche **Logs herunterladen**, um die Sitzung zu exportieren. Bei Claude Code-, Codex-, Copilot-, Cursor- und Pi-Sitzungen erhalten Sie das originale JSONL-Transkript auf dem Datenträger Byte für Byte; bei OpenCode (dessen Sitzungen in SQLite, nicht auf dem Datenträger gespeichert sind) erhalten Sie ein JSON-Dokument, das die zugrundeliegenden Tabellen `session` / `messages` / `parts` widerspiegelt. ### Audit -Ein persönlichkeitsgesteuerter Bericht darüber, wie sich Ihr Agent tatsächlich über vergangene Sitzungen hinweg verhalten hat. Führt denselben Scan wie der `failproofai audit`-CLI durch, stellt ihn jedoch als einzeiligen teilbaren Poster + vier darunter liegende Abschnitte dar: +Ein charaktergetriebener Bericht darüber, wie sich Ihr Agent tatsächlich über vergangene Sitzungen hinweg verhalten hat. Führt denselben Scan wie die `failproofai audit`-CLI aus, stellt ihn aber als einseitiges, teilbares Poster + vier unterhalb des sichtbaren Bereichs liegende Abschnitte dar: -1. **Poster** — füllt den ersten Viewport. Eigenständiger PNG-Erfassungsbereich mit dem failproof_ai-Schriftzug + Audit-Label · Archetyp-Index (`№ NN of 08`) + Audit-Datum · numerischer Score (0–100) + Perzentil-Rangpille (`top 15%`) · der Archetyp-Name (einer von `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + 3-Schlagwort-Streifen · `// only N% of agents are this archetype`-Seltenheitszeile · 8×8-Pixel-Sigil-Kachel · `audit yours → failproof.ai`-Fußzeile. Drei Share-Buttons befinden sich knapp außerhalb des Erfassungsbereichs: `post your archetype` (X-Intent), `share on linkedin`, `download poster`. Die Erfassung erfolgt über `html-to-image`, sodass das PNG pixelgenau der Bildschirmdarstellung entspricht (gestrichelte Rahmen, SVG-Logo-Maske, Farbverläufe, Schriftmetriken – alles erhalten). -2. **Stärken** — ruhige ✓-Zeilenliste mit Verhaltensweisen, die Ihr Agent bereits richtig macht, abgeleitet aus den Live-Audit-Daten (saubere Tool-Aufruf-Rate, keine direkten Pushes auf main, null Zugangsdaten-Lecks, null Wiederholungs-Stürme) — jede wird nur angezeigt, wenn die zugehörige Richtlinie im Audit-Zeitraum eine einwandfreie Bilanz hat. -3. **Eigenheiten** — Tabelle mit dem, was durchgerutscht ist, nach Schwere sortiert: `wann · was durchgerutscht ist + die Richtlinie, die es hätte abfangen können · Schwere-Pille · gesehen`, wobei die Häufigkeit `new` (einmal), `N× seen` (2–9 Mal) oder `recurring` (10+) anzeigt. -4. **So verbessern Sie sich** — ruhige Zeilenliste, eine pro empfohlener Richtlinie: Richtlinienname in Weiß, einzeilige Beschreibung, Installationsbefehl + Kopier-Button auf der rechten Seite. Die Abschnittsüberschrift lautet `enable all N → projected · ` (der Score, den Sie mit allen Korrekturen erreichen würden), und der `[install all]`-Button kopiert den kombinierten `failproofai policy add a b c …`-Befehl für alle empfohlenen Richtlinien. -5. **Kommen Sie besser zurück** — zwei nebeneinander liegende Karten. Links: Erinnerung setzen (`3d` / `7d` / `14d` / `30d`-Kadenz-Auswahl; wird über `/api/auth/reminder` nach Authentifizierung gespeichert). Rechts: failproof-Vorteile freischalten — `invite a friend` öffnet ein Modal, das eine komma-/leerzeichen-/zeilenumbruch-getrennte Liste von Freundes-E-Mails akzeptiert (max. 10 pro Sendung), sendet diese per POST an `/api/audit/invite`, der sie an den `POST /v0/invite`-Endpunkt des API-Servers weiterleitet. Der API-Server sendet eine E-Mail pro Empfänger von `invite@failproof.ai` mit dem Absender in Cc und `Reply-To` gesetzt, sodass der Empfänger sieht, wer ihn eingeladen hat, und der Absender eine Kopie in seinem Posteingang erhält. Anonyme Benutzer werden zunächst durch den `AuthDialog` geleitet, damit die Absender-E-Mail vor dem Versand der Einladungen bekannt ist. Berechtigungen/Vorteile-Erfüllung ist ein Folgeschritt. +1. **Poster** — füllt den ersten Viewport. Eigenständiger PNG-Erfassungsbereich mit dem failproof_ai-Wortzeichen + Audit-Label · Archetyp-Index (`№ NN of 08`) + Audit-Datum · numerischer Score (0–100) + Perzentil-Rang-Pill (`top 15%`) · der Archetyp-Name (einer von `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + 3-Keyword-Streifen · `// only N% of agents are this archetype`-Rarität-Zeile · 8×8-Pixel-Sigil-Kachel · `audit yours → failproof.ai`-Fußzeile. Drei Teilen-Schaltflächen befinden sich knapp außerhalb des Erfassungsbereichs: `post your archetype` (X Intent), `share on linkedin`, `download poster`. Die Erfassung erfolgt über `html-to-image`, sodass das PNG pixelgenau mit der Bildschirmdarstellung übereinstimmt (gestrichelte Rahmen, SVG-Logo-Maske, Verläufe, Schriftmetriken — alles erhalten). +2. **Stärken** — ruhige ✓-Zeilenliste von Verhaltensweisen, die Ihr Agent bereits richtig macht, abgeleitet aus den Live-Audit-Daten (saubere Tool-Aufruf-Rate, keine direkten Pushes auf main, null Credential-Leaks, null Retry-Stürme) — jede wird nur angezeigt, wenn die entsprechende Richtlinie im Audit-Zeitraum eine saubere Bilanz hat. +3. **Eigenheiten** — Tabelle der durchgeschlüpften Probleme, nach Schweregrad gerankt: `wann · was durchgeschlüpft ist + die Richtlinie, die es abgefangen hätte · Schweregrad-Pill · gesehen`, wobei die Wiederholung als `new` (einmal), `N× seen` (2–9 Mal) oder `recurring` (10+) angegeben wird. +4. **Verbesserungsvorschläge** — ruhige Zeilenliste, eine pro empfohlener Richtlinie: Richtlinienname in Weiß, einzeilige Beschreibung, Installationsbefehl + Kopierschaltfläche auf der rechten Seite. Der Abschnittsheader lautet `enable all N → projected · ` (der Score, den Sie mit allen angewendeten Korrekturen erreichen würden), und die Schaltfläche `[install all]` kopiert den kombinierten `failproofai policy add a b c …`-Befehl für jede empfohlene Richtlinie. +5. **Komm besser zurück** — zwei nebeneinander stehende Karten. Links: Erinnerung setzen (`3d` / `7d` / `14d` / `30d` Kadenz-Auswahl; wird nach Authentifizierung über `/api/auth/reminder` gespeichert). Rechts: failproof-Vorteile freischalten — `invite a friend` öffnet ein Modal, das eine komma-, leerzeichen- oder zeilengetrennte Liste von Freundes-E-Mails akzeptiert (max. 10 pro Sendung), sendet sie per POST an `/api/audit/invite`, was an den `POST /v0/invite` des API-Servers weitergeleitet wird. Der API-Server sendet eine E-Mail pro Empfänger von `invite@failproof.ai` mit dem Absender in Cc und gesetztem `Reply-To`, sodass der Empfänger sieht, wer ihn eingeladen hat, und der Absender eine Kopie in seinem Posteingang erhält. Anonyme Benutzer werden zunächst durch den `AuthDialog` geleitet, damit die E-Mail-Adresse des Absenders bekannt ist, bevor Einladungen verschickt werden. Berechtigungs-/Vorteils-Einlösung ist ein Folgeschritt. -Betrieben vom `failproofai audit`-Runtime — siehe [Audit CLI](/de/cli/audit) für die zugrundeliegende Scan-Engine, unterstützte Flags und Transkript-spezifische Cache-Invarianten. Das Dashboard speichert das neueste Ergebnis unter `~/.failproofai/audit-dashboard.json` (Modus `0600`, einzelner Slot, neue Läufe überschreiben), sodass Revisits sofort erfolgen; **sowohl der Transkript-spezifische als auch der Gesamt-Ergebnis-Cache werden beim Lesen abgelehnt, sobald sie älter als 7 Tage sind**, sodass das Dashboard niemals still ein wochealtes Ergebnis ausliefert — nach Ablauf der TTL fällt `/audit` in seinen leeren Zustand zurück und fordert einen neuen Lauf an. Ein Klick auf `[ re-audit now ]` am unteren Ende des Berichts sendet einen POST an `/api/audit/run` mit `noCache: true` — der Re-Audit umgeht den Transkript-Cache und scannt jedes Transkript von Grund auf neu, anstatt das gecachte Ergebnis still zurückzugeben — und das Dashboard fragt `/api/audit/status` mit 1 Hz ab, bis der Lauf abgeschlossen ist; ein anheftender pinker Fortschrittsstreifen fixiert sich während des Laufs oben im Viewport mit einem Laufzeit-Timer, und das neue Ergebnis tauscht sich bei Erfolg an Ort und Stelle aus (kein vollständiges Neuladen der Seite; ein fehlgeschlagener Re-Audit lässt den vorherigen Bericht unberührt). Bei einem Fehler wird der Streifen rot mit Text, der auf `RerunError.kind` abgestimmt ist (`timeout` / `network` / `post_failed`). Leerzustand (kein Cache oder abgelaufen) und Null-Sitzungszustand (Cache existiert, aber der Scan fand keine Transkripte) werden separat angezeigt. +Wird von der `failproofai audit`-Laufzeit gesteuert — siehe [Audit CLI](/de/cli/audit) für die zugrundeliegende Scan-Engine, unterstützte Flags und Transkript-Cache-Invarianten. Das Dashboard speichert das neueste Ergebnis unter `~/.failproofai/audit-dashboard.json` (Modus `0600`, einzelner Slot, neue Läufe überschreiben), sodass erneute Besuche sofort laden; **sowohl der Transkript-Cache als auch der Gesamtergebnis-Cache werden beim Lesen verworfen, sobald sie älter als 7 Tage sind**, damit das Dashboard nie stillschweigend ein wochenaltes Ergebnis ausliefert — nach Ablauf der TTL fällt `/audit` in seinen Leerzustand zurück und fordert einen neuen Lauf an. Ein Klick auf `[ re-audit now ]` am unteren Ende des Berichts sendet einen POST an `/api/audit/run` mit `noCache: true` — ein Re-Audit umgeht den Transkript-Cache und scannt jedes Transkript von Grund auf neu, anstatt stillschweigend das gecachte Ergebnis zurückzugeben — und das Dashboard fragt `/api/audit/status` mit 1Hz ab, bis der Lauf abgeschlossen ist; während des Laufs heftet sich ein pinker Fortschrittsstreifen mit einem Zeitmesser oben im Viewport fest, und das neue Ergebnis tauscht sich bei Erfolg an Ort und Stelle aus (kein vollständiges Neuladen der Seite; ein fehlgeschlagener Re-Audit lässt den vorherigen Bericht intakt). Bei einem Fehler wird der Streifen rot mit einem Text, der auf `RerunError.kind` (`timeout` / `network` / `post_failed`) basiert. Leerzustand (kein Cache oder abgelaufen) und Null-Sitzungen-Zustand (Cache vorhanden, aber der Scan fand keine Transkripte) werden separat angezeigt. ### Richtlinien -Eine zweiseitige Seite zur Verwaltung von Richtlinien und Überprüfung der Aktivität. +Eine zweiseitige Seite zur Verwaltung von Richtlinien und Überprüfung von Aktivitäten. - - Wählen Sie in einem einzelnen Panel aus, welche Agenten-CLIs failproofai schützt — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi und Hermes haben jeweils eine Zeile mit Installationsstatus (`Active` / `Detected` / `Inactive`), dem benutzerbereichs-spezifischen Einstellungspfad und einem markenfarbigen Akzent. Aktivieren oder deaktivieren Sie die gewünschten CLIs und klicken Sie auf `Apply changes`, um die Änderungen in einem Schritt zu installieren/deinstallieren. CLIs, deren Binärdatei im PATH erkannt wird, sind vorab aktiviert. - - Aktivieren oder deaktivieren Sie einzelne Richtlinien mit einem einzigen Klick (schreibt in `~/.failproofai/policies-config.json` — gemeinsam genutzt von allen installierten CLIs) - - Erweitern Sie eine Richtlinie, um ihre Parameter zu konfigurieren (für Richtlinien, die `policyParams` unterstützen) - - Legen Sie einen benutzerdefinierten Richtliniendateipfad fest + - Wählen Sie über ein einzelnes Panel aus, welche Agent-CLIs failproofai schützt — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi und Hermes haben je eine Zeile mit Installationsstatus (`Active` / `Detected` / `Inactive`), dem benutzerspezifischen Einstellungspfad und einem markenspezifischen Akzent. Aktivieren oder deaktivieren Sie die gewünschten CLIs und klicken Sie auf `Apply changes`, um die Änderungen in einem Schritt zu installieren/deinstallieren. CLIs, deren Binary im PATH erkannt wird, sind vorausgewählt. + - Einzelne Richtlinien mit einem einzigen Klick ein- oder ausschalten (schreibt in `~/.failproofai/policies-config.json` — geteilt von allen installierten CLIs) + - Eine Richtlinie erweitern, um ihre Parameter zu konfigurieren (für Richtlinien, die `policyParams` unterstützen) + - Einen benutzerdefinierten Richtliniendatei-Pfad festlegen - - Vollständige paginierte Historie aller Hook-Ereignisse, die in allen Sitzungen ausgelöst wurden - - Filtern nach Entscheidung, Ereignistyp, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(Beta)_ / Cursor Agent _(Beta)_ / OpenCode _(Beta)_ / Pi _(Beta)_ / Hermes), Richtlinienname oder Sitzungs-ID - - Jede Zeile zeigt: Zeitstempel, Richtlinienname, Entscheidung, CLI-Badge (orange = Claude Code, lila = OpenAI Codex, blau = GitHub Copilot, smaragd = Cursor Agent, bernstein = OpenCode, pink = Pi, indigo = Hermes), Tool-Name, Sitzungs-ID und den Grund für deny/instruct-Entscheidungen - - Klicken Sie auf eine Sitzungs-ID, um das zugehörige Transkript zu öffnen — der Viewer erkennt automatisch, welche CLI den Hook ausgelöst hat (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) und zeigt das passende CLI-Badge in der Überschrift an + - Vollständiger paginierter Verlauf jedes Hook-Ereignisses, das über alle Sitzungen hinweg ausgelöst wurde + - Filtern nach Entscheidung, Ereignistyp, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(Beta)_ / Cursor Agent _(Beta)_ / OpenCode _(Beta)_ / Pi _(Beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), Richtlinienname oder Sitzungs-ID + - Jede Zeile zeigt: Zeitstempel, Richtlinienname, Entscheidung, CLI-Badge (orange = Claude Code, lila = OpenAI Codex, blau = GitHub Copilot, smaragdgrün = Cursor Agent, bernstein = OpenCode, pink = Pi, indigo = Hermes, türkis = OpenClaw, rose = Factory Droid, violett = Devin, cyan = Antigravity, lindgrün = Goose), Tool-Name, Sitzungs-ID und der Grund für deny/instruct-Entscheidungen + - Klicken Sie auf eine Sitzungs-ID, um ihr Transkript zu öffnen — der Viewer erkennt automatisch, welche CLI den Hook ausgelöst hat (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) und zeigt das passende CLI-Badge im Header an @@ -92,7 +92,7 @@ Eine zweiseitige Seite zur Verwaltung von Richtlinien und Überprüfung der Akti ## Automatische Aktualisierung -Das Dashboard verfügt über eine Auto-Refresh-Umschalttaste in der oberen Navigation. Wenn aktiviert, wird die aktuelle Seite regelmäßig aktualisiert, um neue Sitzungen und Richtlinienaktivitäten anzuzeigen, sobald sie auftreten. Unverzichtbar für die Überwachung langläufiger autonomer Agentensitzungen. +Das Dashboard verfügt über einen Auto-Refresh-Schalter in der oberen Navigation. Wenn aktiviert, aktualisiert sich die aktuelle Seite regelmäßig, um neue Sitzungen und Richtlinienaktivitäten anzuzeigen, sobald sie auftreten. Unverzichtbar für die Überwachung lang laufender autonomer Agent-Sitzungen. --- @@ -110,7 +110,7 @@ Gültige Werte: `policies`, `projects`, `audit`. ## Projektpfad konfigurieren -Standardmäßig liest das Dashboard aus dem standardmäßigen Claude Code-Projektverzeichnis. Überschreiben Sie dies für benutzerdefinierte Setups: +Standardmäßig liest das Dashboard aus dem Standard-Claude Code-Projektverzeichnis. Überschreiben Sie es für benutzerdefinierte Setups: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,13 +120,13 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## Zugriff von einem Nicht-localhost-Host -Wenn Sie das Dashboard im **Dev-Modus** (`npm run dev`) ausführen und von einem anderen Hostnamen als localhost darauf zugreifen — zum Beispiel einer benutzerdefinierten Domain, einer Remote-IP oder einer getunnelten URL — kann folgende Warnung auftreten: +Wenn Sie das Dashboard im **Dev-Modus** (`npm run dev`) betreiben und von einem anderen Hostnamen als localhost darauf zugreifen — zum Beispiel einer benutzerdefinierten Domain, einer Remote-IP oder einer getunnelten URL — sehen Sie möglicherweise eine Warnung wie: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Dies ist Next.js, das den cross-origin-Zugriff auf seinen HMR-WebSocket (Hot Module Reload) blockiert, eine reine Entwicklungsfunktion. Um Ihren Host zuzulassen, verwenden Sie das Flag `--allowed-origins`: +Dies ist Next.js, das den ursprungsübergreifenden Zugriff auf seinen HMR-Websocket (Hot Module Reload) blockiert, was eine reine Dev-Funktion ist. Um Ihren Host zuzulassen, verwenden Sie das `--allowed-origins`-Flag: ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -138,12 +138,12 @@ Für mehrere Hosts oder IPs übergeben Sie eine kommagetrennte Liste: npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -Sie können stattdessen auch die Umgebungsvariable `FAILPROOFAI_ALLOWED_DEV_ORIGINS` setzen: +Sie können auch die Umgebungsvariable `FAILPROOFAI_ALLOWED_DEV_ORIGINS` verwenden: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Dies gilt nur für den Dev-Modus. Beim Ausführen von `failproofai` (Produktionsmodus) gibt es keinen HMR-WebSocket und kein cross-origin-Entwicklungsressourcenproblem. +Dies gilt nur für den Dev-Modus. Beim Ausführen von `failproofai` (Produktionsmodus) gibt es keinen HMR-Websocket und kein ursprungsübergreifendes Dev-Ressourcenproblem. \ No newline at end of file diff --git a/docs/de/introduction.mdx b/docs/de/introduction.mdx index 1ed93753..6893b08d 100644 --- a/docs/de/introduction.mdx +++ b/docs/de/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI gibt KI-Agenten 39 integrierte Fehlerrichtlinien, die Schleifen, Secret-Leaks, destruktive Tool-Aufrufe und mehr mit einer einzigen Installation abfangen." +description: "FailproofAI gibt KI-Agenten 39 integrierte Fehler-Policies, die Schleifen, Secret-Leaks, destruktive Tool-Aufrufe und mehr mit einer einzigen Installation abfangen." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hooks und Richtlinien für **KI-Fehlerbehandlung**, **Fehlerbehebung** und **LLM-Zuverlässigkeit**. Halten Sie Ihre KI-Agenten zuverlässig und autonom am Laufen – für **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** und das **Agents SDK**. +Hooks und Policies für **KI-Fehlerbehandlung**, **Fehlerwiederherstellung** und **LLM-Zuverlässigkeit**. Halten Sie Ihre KI-Agenten zuverlässig und autonom lauffähig – für **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** und das **Agents SDK**. -KI-Agenten scheitern auf vorhersehbare Weisen. Sie führen destruktive Befehle aus, geben Secrets preis, weichen von ihrer Aufgabe ab, stecken in Schleifen fest oder pushen direkt in den main-Branch. Werden diese Fehler nicht behoben, können kleine Probleme zu Ausfällen, geleakten Zugangsdaten und verlorenem Code führen. +KI-Agenten scheitern auf vorhersehbare Weisen. Sie führen destruktive Befehle aus, leaken Secrets, verlieren den Fokus, geraten in Schleifen oder pushen direkt in den Main-Branch. Kleine Fehler können sich unbeaufsichtigt zu Ausfällen, geleakten Zugangsdaten und verlorenem Arbeitsfortschritt aufschaukeln. -FailproofAI löst dieses Problem mit **Richtlinien**. Diese Regeln haken sich in jeden Agent-Tool-Aufruf ein, um **Fehler zu erkennen**, **zu beheben** (blockieren, anweisen, bereinigen) und **Sie zu benachrichtigen**, wenn etwas Aufmerksamkeit erfordert. Ein lokales Dashboard ermöglicht es Ihnen, jeden Tool-Aufruf, jeden Agentenfehler und jede Wiederherstellungsmaßnahme im Nachhinein zu überprüfen. +FailproofAI löst dies mit **Policies**. Diese Regeln greifen bei jedem Agenten-Tool-Aufruf ein, um **Fehler zu erkennen**, **sie zu beheben** (blockieren, anweisen, bereinigen) und **Sie zu benachrichtigen**, wenn etwas Aufmerksamkeit erfordert. Ein lokales Dashboard ermöglicht es Ihnen, jeden Tool-Aufruf, Agentenfehler und jede Wiederherstellungsmaßnahme im Nachhinein zu überprüfen. -Keine Daten verlassen Ihren Computer. +Transkripte und Policy-Auswertungen verbleiben auf Ihrem Gerät. Daten werden nur gesendet, wenn Sie eine Online-Funktion ausdrücklich nutzen, etwa authentifizierte Audit-Erinnerungen oder Einladungen. ## Erste Schritte - - Destruktive Befehle blockieren, Secret-Leaks verhindern, Agenten innerhalb der Projektgrenzen halten und mehr. Alles direkt einsatzbereit. + + Destruktive Befehle blockieren, Secret-Leaks verhindern, Agenten innerhalb der Projektgrenzen halten und vieles mehr – alles sofort einsatzbereit. - - Schreiben Sie eigene Regeln in JavaScript mit einer einfachen allow / deny / instruct API. + + Schreiben Sie Ihre eigenen Regeln in JavaScript mit einer einfachen allow / deny / instruct API. - Sehen Sie, was Ihre Agenten in Ihrer Abwesenheit getan haben. Sitzungen durchsuchen, Tool-Aufrufe untersuchen und überprüfen, wo Richtlinien ausgelöst wurden. + Sehen Sie, was Ihre Agenten in Ihrer Abwesenheit getan haben. Sitzungen durchsuchen, Tool-Aufrufe inspizieren, überprüfen, wo Policies ausgelöst wurden. - Jede Richtlinie ohne Code anpassen. Allowlists, geschützte Branches oder Schwellenwerte pro Projekt oder global festlegen. + Jede Policy ohne Code anpassen. Allowlists, geschützte Branches oder Schwellenwerte pro Projekt oder global festlegen. @@ -54,4 +54,4 @@ failproofai policies --install # enable policies (or skip — `failproofai` wi failproofai # launch the dashboard ``` -Eine vollständige Anleitung finden Sie im [Erste-Schritte-Leitfaden](/de/getting-started). \ No newline at end of file +Die vollständige Anleitung finden Sie im [Erste-Schritte-Leitfaden](/de/getting-started). \ No newline at end of file diff --git a/docs/es/dashboard.mdx b/docs/es/dashboard.mdx index 8cb83822..cdb2d8eb 100644 --- a/docs/es/dashboard.mdx +++ b/docs/es/dashboard.mdx @@ -4,7 +4,7 @@ description: "Monitorea sesiones de agentes, revisa llamadas a herramientas y ge icon: chart-line --- -El dashboard de failproofai es una aplicación web local para monitorear tus sesiones de agentes de IA y gestionar políticas. Consulta lo que hicieron tus agentes mientras no estabas. +El dashboard de failproofai es una aplicación web local para monitorear tus sesiones de agentes de IA y gestionar políticas. Descubre qué hicieron tus agentes mientras no estabas. --- @@ -16,7 +16,7 @@ failproofai Se abre en `http://localhost:8020`. -El dashboard lee directamente desde el sistema de archivos: las carpetas de proyectos de Claude Code y los archivos de configuración de failproofai. No se escribe nada en ningún servicio remoto. +El dashboard lee los datos de configuración del proyecto local, la sesión y failproofai directamente del sistema de archivos. Las funciones autenticadas opcionales, como recordatorios de auditoría e invitaciones, envían la información necesaria para esas solicitudes (incluidas las direcciones de correo electrónico) a APIs remotas. --- @@ -24,7 +24,7 @@ El dashboard lee directamente desde el sistema de archivos: las carpetas de proy ### Proyectos -Lista todos los proyectos de Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ y Hermes encontrados en tu máquina. Los proyectos de Claude se descubren desde `~/.claude/projects/` (o la ruta definida por `CLAUDE_PROJECTS_PATH`); los proyectos de Codex se descubren escaneando todas las transcripciones en `~/.codex/sessions///
/*.jsonl` y agrupándolas por el `cwd` registrado en el primer registro de cada sesión; los proyectos de Copilot CLI se descubren escaneando cada `~/.copilot/session-state//workspace.yaml` (configurable mediante `COPILOT_HOME`) y agrupándolos por su campo `cwd`; los proyectos de Cursor Agent se descubren escaneando metadatos por sesión en `~/.cursor/agent-sessions//` (configurable mediante `CURSOR_HOME`, con `conversations/` y `sessions/` como alternativas de búsqueda) para un escalar `cwd` en `meta.json` / `session.json` / `workspace.yaml`; los proyectos de OpenCode se descubren consultando su base de datos SQLite en `~/.local/share/opencode/opencode.db` mediante `opencode db --format json` (leemos las tablas `session` y `project` y agrupamos por `project_id`); los proyectos de Pi se descubren escaneando transcripciones JSONL por sesión en `~/.pi/agent/sessions//_.jsonl` (configurable mediante `PI_SESSIONS_DIR`) y extrayendo el `cwd` del primer registro de cada sesión; las sesiones del gateway de Hermes se leen directamente desde su almacén SQLite en `~/.hermes/state.db` (configurable mediante `HERMES_DB_PATH`) y se agrupan en proyectos `hermes-` por `source` (Slack/Telegram/cli/cron — las sesiones del gateway no tienen cwd). Un proyecto que haya sido utilizado por múltiples CLIs se muestra como una sola fila con todas las insignias correspondientes. Usa el menú desplegable **CLI** sobre la tabla para filtrar por un agente CLI específico; la URL conserva tu selección como `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Lista todos los proyectos de Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity y Goose encontrados en tu máquina. Los proyectos de Claude se descubren desde `~/.claude/projects/` (o la ruta definida por `CLAUDE_PROJECTS_PATH`); los proyectos de Codex se descubren escaneando cada transcripción en `~/.codex/sessions///
/*.jsonl` y agrupando por el `cwd` registrado en el primer registro de cada sesión; los proyectos de Copilot CLI se descubren escaneando cada `~/.copilot/session-state//workspace.yaml` (configurable mediante `COPILOT_HOME`) y agrupando por su campo `cwd`; los proyectos de Cursor Agent se descubren escaneando los metadatos por sesión en `~/.cursor/agent-sessions//` (configurable mediante `CURSOR_HOME`, con `conversations/` y `sessions/` como alternativas) buscando un escalar `cwd` en `meta.json` / `session.json` / `workspace.yaml`; los proyectos de OpenCode se descubren consultando su base de datos SQLite en `~/.local/share/opencode/opencode.db` mediante `opencode db --format json` (leemos las tablas `session` y `project` y agrupamos por `project_id`); los proyectos de Pi se descubren escaneando transcripciones JSONL por sesión en `~/.pi/agent/sessions//_.jsonl` (configurable mediante `PI_SESSIONS_DIR`) y extrayendo el `cwd` del primer registro de cada sesión; las sesiones del gateway de Hermes se leen directamente de su almacén SQLite en `~/.hermes/state.db` (configurable mediante `HERMES_DB_PATH`) y se agrupan en proyectos `hermes-` por `source` (Slack/Telegram/cli/cron — las sesiones del gateway no tienen cwd); las sesiones del gateway de OpenClaw se leen desde `~/.openclaw/agents//sessions/*.jsonl` y se agrupan en proyectos `openclaw-` (también sin cwd); los proyectos de Factory Droid se descubren desde las transcripciones JSONL en `~/.factory/sessions//*.jsonl` y se agrupan por cwd; los proyectos de Devin desde su base de datos SQLite en `~/.local/share/devin/cli/sessions.db` (agrupados por el `working_directory` de cada sesión); los proyectos de Antigravity desde las transcripciones JSONL en `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` y agrupados por cwd; y los proyectos de Goose desde su base de datos SQLite en `~/.local/share/goose/sessions/sessions.db` (agrupados por el `working_dir` de cada sesión). Un proyecto que ha sido utilizado por múltiples CLIs se muestra como una sola fila con todas las insignias correspondientes. Usa el menú desplegable **CLI** sobre la tabla para filtrar por un agente CLI específico; la URL preserva tu selección como `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Cada proyecto muestra: - Nombre del proyecto (derivado de la ruta de la carpeta) @@ -47,44 +47,44 @@ Haz clic en una sesión para abrir el visor de sesión. ### Visor de sesión -El visor de sesión responde la pregunta clave para los agentes autónomos: ¿qué hizo el agente y se mantuvo en curso? Una insignia de CLI junto al encabezado indica si la sesión es una transcripción de Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi o Hermes. Muestra una línea de tiempo de todo lo que ocurrió en una sesión: +El visor de sesión responde la pregunta clave para los agentes autónomos: ¿qué hizo el agente y se mantuvo en curso? Una insignia de CLI junto al encabezado indica si la sesión es una transcripción de Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity o Goose. Muestra una línea de tiempo de todo lo que ocurrió en una sesión: -- **Mensajes** - Respuestas de texto de Claude y prompts del usuario +- **Mensajes** - Las respuestas de texto de Claude y los prompts del usuario - **Llamadas a herramientas** - Cada herramienta que Claude invocó, con su entrada y salida - **Actividad de políticas** - Para cada llamada a herramienta, qué políticas se activaron y qué decisión devolvieron La barra de estadísticas en la parte superior muestra la duración de la sesión, el total de llamadas a herramientas y un resumen de las decisiones de los hooks (recuentos de allow / deny / instruct). -Haz clic en el botón **Descargar Logs** para exportar la sesión. Para sesiones de Claude Code, Codex, Copilot, Cursor y Pi obtienes la transcripción JSONL original en disco byte a byte; para OpenCode (cuyas sesiones residen en SQLite, no en disco) obtienes un documento JSON que refleja las tablas subyacentes `session` / `messages` / `parts`. +Haz clic en el botón **Descargar Logs** para exportar la sesión. Para sesiones de Claude Code, Codex, Copilot, Cursor y Pi obtienes la transcripción JSONL original en disco byte a byte; para OpenCode (cuyas sesiones viven en SQLite, no en disco) obtienes un documento JSON que refleja las tablas subyacentes `session` / `messages` / `parts`. ### Auditoría -Un informe con personalidad sobre cómo se ha comportado realmente tu agente a lo largo de sesiones pasadas. Ejecuta el mismo escaneo que el CLI `failproofai audit` pero lo renderiza como un póster compartible de pantalla completa + cuatro secciones debajo del pliegue: +Un informe con personalidad propia sobre cómo se ha comportado realmente tu agente a lo largo de sesiones pasadas. Ejecuta el mismo escaneo que el CLI `failproofai audit` pero lo renderiza como un póster de pantalla completa compartible + cuatro secciones debajo del pliegue: -1. **Póster** — ocupa el primer viewport. Región de captura PNG autocontenida con el logotipo de failproof_ai + etiqueta de auditoría · índice de arquetipo (`№ NN de 08`) + fecha de auditoría · puntuación numérica (0–100) + píldora de percentil (`top 15%`) · el nombre del arquetipo (uno de `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + tira de 3 palabras clave · línea de rareza `// only N% of agents are this archetype` · ficha de símbolo de 8×8 píxeles · pie de página `audit yours → failproof.ai`. Tres botones de compartir se ubican justo fuera del recuadro de captura: `post your archetype` (intención en X), `share on linkedin`, `download poster`. La captura se realiza mediante `html-to-image` para que el PNG coincida píxel a píxel con el renderizado en pantalla (bordes punteados, máscara de logo SVG, degradados, métricas de fuente — todo preservado). -2. **Fortalezas** — lista de comportamientos que tu agente ya hace bien, con una marca de verificación tranquila, derivada de los datos de auditoría en tiempo real (tasa de llamadas a herramientas limpia, sin pushes directos a main, cero filtraciones de credenciales, cero tormentas de reintentos) — cada una se muestra solo cuando la política relevante tiene un historial limpio durante la ventana de auditoría. -3. **Peculiaridades** — tabla de lo que se escapó, ordenado por severidad: `cuándo · qué se escapó + la política que lo habría detectado · píldora de severidad · visto`, donde la recurrencia se lee como `new` (una vez), `N× seen` (2–9 veces) o `recurring` (10+). -4. **Cómo mejorar** — lista tranquila de filas, una por política prescrita: nombre de la política en blanco, descripción de una línea, comando de instalación + botón de copiar a la derecha. El encabezado de la sección dice `enable all N → projected · ` (la puntuación que alcanzarías con todas las correcciones aplicadas), y su botón `[install all]` copia el comando combinado `failproofai policy add a b c …` para cada política prescrita. -5. **Vuelve mejor** — dos tarjetas lado a lado. Izquierda: establecer un recordatorio (selector de cadencia `3d` / `7d` / `14d` / `30d`; persiste mediante `/api/auth/reminder` una vez autenticado). Derecha: desbloquear ventajas de failproof — `invite a friend` abre un modal que acepta una lista de correos de amigos separados por coma, espacio o salto de línea (máximo 10 por envío), los publica en `/api/audit/invite`, que los reenvía al `POST /v0/invite` del servidor de API. El servidor de API envía un correo por destinatario desde `invite@failproof.ai` con el remitente en Cc y `Reply-To` configurado, de modo que el destinatario vea quién lo invitó y el remitente reciba una copia en su bandeja. Los usuarios anónimos pasan primero por el `AuthDialog` para que el correo del remitente sea conocido antes de enviar las invitaciones. El cumplimiento de derechos y ventajas es un seguimiento pendiente. +1. **Póster** — ocupa el primer viewport. Región de captura PNG autónoma con el logotipo de failproof_ai + etiqueta de auditoría · índice de arquetipo (`№ NN de 08`) + fecha de auditoría · puntuación numérica (0–100) + píldora de rango percentil (`top 15%`) · el nombre del arquetipo (uno de `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + tira de 3 palabras clave · línea de rareza `// solo el N% de los agentes son este arquetipo` · tesela de símbolo de 8×8 píxeles · pie de página `audit yours → failproof.ai`. Tres botones de compartir se ubican justo fuera del área de captura: `post your archetype` (X intent), `share on linkedin`, `download poster`. La captura se realiza con `html-to-image` para que el PNG coincida píxel a píxel con el renderizado en pantalla (bordes discontinuos, máscara SVG del logotipo, degradados, métricas de fuente — todo preservado). +2. **Fortalezas** — lista de filas con ✓ tranquilas sobre comportamientos que tu agente ya hace bien, derivadas de los datos de auditoría en vivo (tasa limpia de llamadas a herramientas, sin pushes directos a main, cero filtraciones de credenciales, cero tormentas de reintentos) — cada una aparece solo cuando la política relevante tiene un historial limpio durante la ventana de auditoría. +3. **Peculiaridades** — tabla de lo que se escapó, ordenada por severidad: `cuándo · qué se escapó + la política que lo habría detectado · píldora de severidad · visto`, donde la recurrencia se lee como `new` (una vez), `N× seen` (2–9 veces) o `recurring` (10+). +4. **Cómo mejorar** — lista de filas tranquilas, una por política prescrita: nombre de la política en blanco, descripción de una línea, comando de instalación + botón de copiar a la derecha. El encabezado de la sección dice `enable all N → projected · ` (la puntuación que alcanzarías con todas las correcciones aplicadas), y su botón `[install all]` copia el comando combinado `failproofai policy add a b c …` para cada política prescrita. +5. **Vuelve mejor** — dos tarjetas una al lado de la otra. Izquierda: establecer un recordatorio (selector de cadencia `3d` / `7d` / `14d` / `30d`; persiste a través de `/api/auth/reminder` una vez autenticado). Derecha: desbloquear ventajas failproof — `invite a friend` abre un modal que acepta una lista separada por comas/espacios/saltos de línea de correos de amigos (máx. 10 por envío), hace POST a `/api/audit/invite`, que reenvía al servidor API `POST /v0/invite`. El servidor API envía un correo por destinatario desde `invite@failproof.ai` con el remitente en Cc y `Reply-To` configurado, para que el destinatario vea quién lo invitó y el remitente reciba una copia en su bandeja de entrada. Los usuarios anónimos son dirigidos primero al `AuthDialog` para que el correo del remitente sea conocido antes de enviar las invitaciones. El cumplimiento de derechos/ventajas es una tarea de seguimiento. -Impulsado por el runtime de `failproofai audit` — consulta [Audit CLI](/es/cli/audit) para el motor de escaneo subyacente, flags compatibles e invariantes de caché por transcripción. El dashboard almacena en caché el último resultado en `~/.failproofai/audit-dashboard.json` (modo `0600`, ranura única, las nuevas ejecuciones sobrescriben) para que las revisitas sean instantáneas; **tanto las cachés por transcripción como las de resultado completo se rechazan al leer una vez que tienen más de 7 días** para que el dashboard nunca sirva silenciosamente un resultado de hace una semana — pasado el TTL, `/audit` cae a su estado vacío y solicita una ejecución nueva. Al hacer clic en `[ re-audit now ]` cerca de la parte inferior del informe se hace un POST a `/api/audit/run` con `noCache: true` — la re-auditoría omite la caché por transcripción y re-escanea cada transcripción desde cero en lugar de devolver silenciosamente el resultado en caché — y el dashboard consulta `/api/audit/status` a 1 Hz hasta que termina la ejecución; una tira de progreso rosa fija se ancla en la parte superior del viewport durante la ejecución con un temporizador transcurrido, y el resultado nuevo se intercambia en su lugar al tener éxito (sin recarga de página completa; una re-auditoría fallida deja intacto el informe anterior). En caso de fallo, la tira se vuelve roja con texto basado en el `RerunError.kind` (`timeout` / `network` / `post_failed`). El estado vacío (sin caché o caducado) y el estado de cero sesiones (caché existe pero el escaneo no encontró transcripciones) se muestran por separado. +Impulsado por el runtime de `failproofai audit` — consulta [Audit CLI](/es/cli/audit) para el motor de escaneo subyacente, los flags admitidos y los invariantes de caché por transcripción. El dashboard almacena en caché el último resultado en `~/.failproofai/audit-dashboard.json` (modo `0600`, ranura única, las nuevas ejecuciones sobreescriben) para que las revisitas sean instantáneas; **tanto la caché por transcripción como la caché del resultado completo se rechazan al leer una vez que tienen más de 7 días** para que el dashboard nunca sirva silenciosamente un resultado de una semana atrás — pasado el TTL, `/audit` cae a su estado vacío y solicita una nueva ejecución. Hacer clic en `[ re-audit now ]` cerca de la parte inferior del informe hace POST a `/api/audit/run` con `noCache: true` — la re-auditoría omite la caché por transcripción y re-escanea cada transcripción desde cero en lugar de devolver silenciosamente el resultado en caché — y el dashboard consulta `/api/audit/status` a 1Hz hasta que finaliza la ejecución; una franja de progreso rosa fija se ancla en la parte superior del viewport durante la ejecución con un temporizador de tiempo transcurrido, y el nuevo resultado se intercambia en su lugar al terminar exitosamente (sin recarga completa de página; una re-auditoría fallida deja el informe anterior intacto). En caso de fallo, la franja se vuelve roja con texto basado en el `RerunError.kind` (`timeout` / `network` / `post_failed`). El estado vacío (sin caché o caducado) y el estado sin sesiones (caché existe pero el escaneo no encontró transcripciones) se muestran por separado. ### Políticas -Una página de dos pestañas para gestionar políticas y revisar actividad. +Una página de dos pestañas para gestionar políticas y revisar la actividad. - - Selección múltiple de los CLIs de agentes que failproofai protege desde un único panel — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi y Hermes tienen una fila con el estado de instalación (`Active` / `Detected` / `Inactive`), la ruta de configuración de alcance de usuario y un acento de color de marca. Marca o desmarca los CLIs que desees y haz clic en `Apply changes` para instalar/desinstalar la diferencia en un solo paso. Los CLIs cuyo binario se detecta en PATH se marcan previamente. - - Activa o desactiva políticas individuales con un solo clic (escribe en `~/.failproofai/policies-config.json` — compartido entre cada CLI instalado) + - Selección múltiple de qué CLIs de agentes protege failproofai desde un único panel — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi y Hermes tienen cada uno una fila con el estado de instalación (`Active` / `Detected` / `Inactive`), la ruta de configuración de alcance de usuario y un acento de color de marca. Marca o desmarca los CLIs que deseas y haz clic en `Apply changes` para instalar/desinstalar la diferencia en un solo paso. Los CLIs cuyo binario se detecta en el PATH están marcados previamente. + - Activa o desactiva políticas individuales con un solo clic (escribe en `~/.failproofai/policies-config.json` — compartido entre todos los CLIs instalados) - Expande una política para configurar sus parámetros (para políticas que admiten `policyParams`) - - Establece una ruta de archivo de políticas personalizadas + - Establece una ruta de archivo de políticas personalizada - - Historial completo paginado de cada evento de hook que se ha activado en todas las sesiones - - Filtra por decisión, tipo de evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), nombre de política o ID de sesión - - Cada fila muestra: marca de tiempo, nombre de política, decisión, insignia de CLI (naranja = Claude Code, morado = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, ámbar = OpenCode, rosa = Pi, índigo = Hermes), nombre de herramienta, ID de sesión y el motivo de las decisiones deny/instruct - - Haz clic en un ID de sesión para abrir su transcripción — el visor detecta automáticamente qué CLI activó el hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) y renderiza la insignia de CLI correspondiente en el encabezado + - Historial paginado completo de cada evento de hook que se ha disparado en todas las sesiones + - Filtra por decisión, tipo de evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), nombre de política o ID de sesión + - Cada fila muestra: marca de tiempo, nombre de política, decisión, insignia de CLI (naranja = Claude Code, morado = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, ámbar = OpenCode, rosa = Pi, índigo = Hermes, verde azulado = OpenClaw, rosa intenso = Factory Droid, violeta = Devin, cian = Antigravity, lima = Goose), nombre de herramienta, ID de sesión y el motivo de las decisiones deny/instruct + - Haz clic en un ID de sesión para abrir su transcripción — el visor detecta automáticamente qué CLI disparó el hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) y muestra la insignia de CLI correspondiente en el encabezado @@ -92,13 +92,13 @@ Una página de dos pestañas para gestionar políticas y revisar actividad. ## Actualización automática -El dashboard tiene un botón de actualización automática en la navegación superior. Cuando está habilitado, la página actual se actualiza periódicamente para mostrar nuevas sesiones y actividad de políticas a medida que aparecen. Es esencial para monitorear sesiones de agentes autónomos de larga duración. +El dashboard tiene un interruptor de actualización automática en la navegación superior. Cuando está habilitado, la página actual se actualiza periódicamente para mostrar nuevas sesiones y actividad de políticas a medida que aparecen. Esencial para monitorear sesiones de agentes autónomos de larga duración. --- ## Deshabilitar páginas -Si solo necesitas algunas partes del dashboard, establece `FAILPROOFAI_DISABLE_PAGES` en una lista separada por comas de nombres de páginas: +Si solo necesitas algunas partes del dashboard, establece `FAILPROOFAI_DISABLE_PAGES` con una lista separada por comas de nombres de páginas: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -110,7 +110,7 @@ Valores válidos: `policies`, `projects`, `audit`. ## Configurar la ruta de proyectos -Por defecto, el dashboard lee desde el directorio de proyectos estándar de Claude Code. Puedes sobreescribirlo para configuraciones personalizadas: +Por defecto, el dashboard lee desde el directorio estándar de proyectos de Claude Code. Sobreescríbelo para configuraciones personalizadas: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -118,15 +118,15 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai --- -## Acceder desde un host que no sea localhost +## Acceso desde un host que no es localhost -Cuando ejecutas el dashboard en **modo dev** (`npm run dev`) y accedes a él desde un hostname distinto a `localhost` — por ejemplo, un dominio personalizado, una IP remota o una URL tunelizada — es posible que veas una advertencia como: +Al ejecutar el dashboard en **modo desarrollo** (`npm run dev`) y acceder a él desde un nombre de host distinto de `localhost` — por ejemplo, un dominio personalizado, una IP remota o una URL tunelizada — puede aparecer una advertencia como: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Esto es Next.js bloqueando el acceso cross-origin a su websocket de HMR (recarga de módulos en caliente), que es una característica exclusiva del modo dev. Para permitir tu host, usa el flag `--allowed-origins`: +Esto ocurre porque Next.js bloquea el acceso de origen cruzado a su websocket de HMR (recarga en caliente de módulos), que es una función exclusiva del modo desarrollo. Para permitir tu host, usa el flag `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Esto solo aplica al modo dev. Al ejecutar `failproofai` (modo producción), no hay websocket de HMR ni problema de recursos dev cross-origin. +Esto solo aplica al modo desarrollo. Al ejecutar `failproofai` (modo producción), no hay websocket de HMR ni problemas de recursos de desarrollo de origen cruzado. \ No newline at end of file diff --git a/docs/es/introduction.mdx b/docs/es/introduction.mdx index a8a915a7..8120894f 100644 --- a/docs/es/introduction.mdx +++ b/docs/es/introduction.mdx @@ -1,28 +1,28 @@ --- title: "Failproof AI" -description: "FailproofAI ofrece a los agentes de IA 39 políticas de fallo integradas que detectan bucles, filtraciones de secretos, llamadas destructivas a herramientas y más, con una sola instalación." +description: "FailproofAI ofrece a los agentes de IA 39 políticas de fallo integradas que detectan bucles, filtraciones de secretos, llamadas destructivas a herramientas y más, en una sola instalación." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hooks y políticas para **manejo de fallos de IA**, **recuperación de errores** y **fiabilidad de LLM**. Mantén tus agentes de IA fiables y funcionando de forma autónoma en **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** y el **Agents SDK**. +Hooks y políticas para **gestión de fallos en IA**, **recuperación de errores** y **fiabilidad de LLM**. Mantén tus agentes de IA estables y funcionando de forma autónoma en **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** y el **Agents SDK**. -Los agentes de IA fallan de maneras predecibles. Ejecutan comandos destructivos, filtran secretos, se desvían de sus tareas, quedan atrapados en bucles o hacen push directamente a main. Sin supervisión, los pequeños fallos se convierten en interrupciones del servicio, credenciales expuestas y trabajo perdido. +Los agentes de IA fallan de maneras predecibles: ejecutan comandos destructivos, filtran secretos, se desvían de la tarea, se quedan atrapados en bucles o hacen push directamente a main. Si no se supervisan, los fallos pequeños se convierten en interrupciones del servicio, credenciales expuestas y trabajo perdido. -FailproofAI resuelve esto mediante **políticas**. Estas reglas se enganchan en cada llamada a herramientas del agente para **detectar fallos**, **mitigarlos** (bloquear, instruir, sanitizar) y **alertarte** cuando algo requiere tu atención. Un panel de control local te permite revisar después cada llamada a herramientas, cada fallo del agente y cada acción de recuperación. +FailproofAI resuelve esto con **políticas**. Estas reglas se enganchan en cada llamada a herramientas del agente para **detectar fallos**, **mitigarlos** (bloquear, instruir, sanitizar) y **alertarte** cuando algo requiere atención. Un panel de control local te permite revisar cada llamada a herramientas, fallo del agente y acción de recuperación. -Ningún dato sale de tu máquina. +Las transcripciones y la evaluación de políticas permanecen en tu máquina. Los datos solo se envían cuando usas explícitamente una función en línea, como recordatorios de auditoría autenticados o invitaciones. ## Primeros pasos - Bloquea comandos destructivos, evita filtraciones de secretos, mantén a los agentes dentro de los límites del proyecto y mucho más. Todo listo para usar desde el primer momento. + Bloquea comandos destructivos, previene la filtración de secretos, mantiene a los agentes dentro de los límites del proyecto y más. Todo listo desde el primer momento. - Escribe tus propias reglas en JavaScript con una sencilla API de allow / deny / instruct. + Escribe tus propias reglas en JavaScript con una API sencilla de allow / deny / instruct. @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # enable policies (or skip — `failproofai` will offer to set them up on first run) -failproofai # launch the dashboard +failproofai policies --install # habilitar políticas (o saltarlo — `failproofai` ofrecerá configurarlas en el primer uso) +failproofai # abrir el panel de control ``` Consulta la guía de [Primeros pasos](/es/getting-started) para ver el recorrido completo. \ No newline at end of file diff --git a/docs/fr/dashboard.mdx b/docs/fr/dashboard.mdx index 4c13dca2..cb6180c0 100644 --- a/docs/fr/dashboard.mdx +++ b/docs/fr/dashboard.mdx @@ -4,7 +4,7 @@ description: "Surveillez les sessions d'agents, examinez les appels d'outils et icon: chart-line --- -Le tableau de bord failproofai est une application web locale permettant de surveiller vos sessions d'agents IA et de gérer vos politiques. Découvrez ce que vos agents ont fait pendant votre absence. +Le tableau de bord failproofai est une application web locale permettant de surveiller vos sessions d'agents IA et de gérer les politiques. Consultez ce que vos agents ont fait pendant votre absence. --- @@ -16,7 +16,7 @@ failproofai S'ouvre à l'adresse `http://localhost:8020`. -Le tableau de bord lit les données locales des projets, des sessions et de la configuration failproofai directement depuis le système de fichiers. Les fonctionnalités authentifiées facultatives, telles que les rappels d'audit et les invitations, envoient aux API distantes les informations nécessaires à ces requêtes, notamment les adresses e-mail. +Le tableau de bord lit directement les données de configuration locales du projet, des sessions et de failproofai depuis le système de fichiers. Les fonctionnalités optionnelles authentifiées, telles que les rappels d'audit et les invitations, envoient les informations nécessaires à ces requêtes (y compris les adresses e-mail) vers des API distantes. --- @@ -24,14 +24,14 @@ Le tableau de bord lit les données locales des projets, des sessions et de la c ### Projets -Liste tous les projets Claude Code, OpenAI Codex, GitHub Copilot CLI _(bêta)_, Cursor Agent _(bêta)_, OpenCode _(bêta)_, Pi _(bêta)_ et Hermes trouvés sur votre machine. Les projets Claude sont découverts depuis `~/.claude/projects/` (ou le chemin défini par `CLAUDE_PROJECTS_PATH`) ; les projets Codex sont découverts en analysant chaque transcription sous `~/.codex/sessions///
/*.jsonl` et en les regroupant par le `cwd` enregistré dans le premier enregistrement de chaque session ; les projets Copilot CLI sont découverts en analysant chaque `~/.copilot/session-state//workspace.yaml` (configurable via `COPILOT_HOME`) et en les regroupant par leur champ `cwd` ; les projets Cursor Agent sont découverts en analysant les métadonnées par session sous `~/.cursor/agent-sessions//` (configurable via `CURSOR_HOME`, avec `conversations/` et `sessions/` comme solutions de repli) pour un scalaire `cwd` dans `meta.json` / `session.json` / `workspace.yaml` ; les projets OpenCode sont découverts en interrogeant sa base de données SQLite à `~/.local/share/opencode/opencode.db` via `opencode db --format json` (nous lisons les tables `session` et `project` et les regroupons par `project_id`) ; les projets Pi sont découverts en analysant les transcriptions JSONL par session sous `~/.pi/agent/sessions//_.jsonl` (configurable via `PI_SESSIONS_DIR`) et en extrayant le `cwd` du premier enregistrement de chaque session ; les sessions de la passerelle Hermes sont lues directement depuis son stockage SQLite à `~/.hermes/state.db` (configurable via `HERMES_DB_PATH`) et regroupées en projets `hermes-` par `source` (Slack/Telegram/cli/cron — les sessions de passerelle n'ont pas de cwd). Un projet utilisé par plusieurs interfaces CLI s'affiche sur une seule ligne avec tous les badges correspondants. Utilisez le menu déroulant **CLI** au-dessus du tableau pour filtrer par interface CLI spécifique ; l'URL conserve votre sélection sous la forme `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Liste tous les projets Claude Code, OpenAI Codex, GitHub Copilot CLI _(bêta)_, Cursor Agent _(bêta)_, OpenCode _(bêta)_, Pi _(bêta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity et Goose trouvés sur votre machine. Les projets Claude sont découverts depuis `~/.claude/projects/` (ou le chemin défini par `CLAUDE_PROJECTS_PATH`) ; les projets Codex sont découverts en analysant chaque transcript sous `~/.codex/sessions///
/*.jsonl` et regroupés par le `cwd` enregistré dans le premier enregistrement de chaque session ; les projets Copilot CLI sont découverts en analysant chaque `~/.copilot/session-state//workspace.yaml` (configurable via `COPILOT_HOME`) et regroupés par son champ `cwd` ; les projets Cursor Agent sont découverts en analysant les métadonnées par session sous `~/.cursor/agent-sessions//` (configurable via `CURSOR_HOME`, avec `conversations/` et `sessions/` sondés comme alternatives) pour un scalaire `cwd` dans `meta.json` / `session.json` / `workspace.yaml` ; les projets OpenCode sont découverts en interrogeant sa base de données SQLite à `~/.local/share/opencode/opencode.db` via `opencode db --format json` (nous lisons les tables `session` et `project` et regroupons par `project_id`) ; les projets Pi sont découverts en analysant les transcripts JSONL par session sous `~/.pi/agent/sessions//_.jsonl` (configurable via `PI_SESSIONS_DIR`) et en extrayant le `cwd` du premier enregistrement de chaque session ; les sessions de la passerelle Hermes sont lues directement depuis sa base SQLite à `~/.hermes/state.db` (configurable via `HERMES_DB_PATH`) et regroupées en projets `hermes-` par `source` (Slack/Telegram/cli/cron — les sessions de passerelle n'ont pas de cwd) ; les sessions de la passerelle OpenClaw sont lues depuis `~/.openclaw/agents//sessions/*.jsonl` et regroupées en projets `openclaw-` (également sans cwd) ; les projets Factory Droid sont découverts à partir des transcripts JSONL dans `~/.factory/sessions//*.jsonl` et regroupés par cwd ; les projets Devin depuis sa base SQLite à `~/.local/share/devin/cli/sessions.db` (regroupés par `working_directory` de chaque session) ; les projets Antigravity depuis les transcripts JSONL dans `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` et regroupés par cwd ; et les projets Goose depuis sa base SQLite à `~/.local/share/goose/sessions/sessions.db` (regroupés par `working_dir` de chaque session). Un projet utilisé par plusieurs CLI s'affiche sur une seule ligne avec tous les badges correspondants. Utilisez le menu déroulant **CLI** au-dessus du tableau pour filtrer par un agent CLI spécifique ; l'URL conserve votre sélection sous la forme `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Chaque projet affiche : - Le nom du projet (dérivé du chemin du dossier) -- Un badge CLI — `Claude Code` (orange), `OpenAI Codex` (violet), `GitHub Copilot` (bleu), `Cursor Agent` (émeraude), `OpenCode` (ambre), `Pi` (rose) et/ou `Hermes` (indigo) +- Un badge CLI — `Claude Code` (orange), `OpenAI Codex` (violet), `GitHub Copilot` (bleu), `Cursor Agent` (vert émeraude), `OpenCode` (ambre), `Pi` (rose) et/ou `Hermes` (indigo) - La date de la dernière activité de session -Cliquez sur un projet pour afficher ses sessions. +Cliquez sur un projet pour voir ses sessions. ### Sessions @@ -39,7 +39,7 @@ Liste toutes les sessions d'un projet. Chaque session affiche : - L'identifiant de session - Les horodatages de début et de fin - Le nombre d'appels d'outils -- Le nombre d'activités de hooks (politiques déclenchées) +- Le nombre d'activités de hook (politiques déclenchées) Utilisez le filtre de plage de dates et la recherche par identifiant de session pour affiner la liste. Les sessions sont paginées. @@ -47,27 +47,27 @@ Cliquez sur une session pour ouvrir le visualiseur de session. ### Visualiseur de session -Le visualiseur de session répond à la question essentielle pour les agents autonomes : qu'a fait l'agent, et est-il resté dans les limites prévues ? Un badge CLI à côté de l'en-tête indique si la session est une transcription Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi ou Hermes. Il affiche une chronologie de tout ce qui s'est passé lors d'une session : +Le visualiseur de session répond à la question clé pour les agents autonomes : qu'a fait l'agent, et est-il resté dans les rails ? Un badge CLI à côté de l'en-tête indique si la session est un transcript Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity ou Goose. Il affiche une chronologie de tout ce qui s'est passé durant une session : - **Messages** - Les réponses textuelles de Claude et les invites utilisateur - **Appels d'outils** - Chaque outil invoqué par Claude, avec ses entrées et sorties -- **Activité des politiques** - Pour chaque appel d'outil, quelles politiques ont été déclenchées et quelle décision elles ont retournée +- **Activité des politiques** - Pour chaque appel d'outil, quelles politiques ont été déclenchées et quelle décision elles ont rendue -La barre de statistiques en haut affiche la durée de la session, le nombre total d'appels d'outils et un résumé des décisions de hook (nombre de allow / deny / instruct). +La barre de statistiques en haut affiche la durée de la session, le nombre total d'appels d'outils et un résumé des décisions de hook (comptes allow / deny / instruct). -Cliquez sur le bouton **Télécharger les journaux** pour exporter la session. Pour les sessions Claude Code, Codex, Copilot, Cursor et Pi, vous obtenez la transcription JSONL originale sur disque octet par octet ; pour OpenCode (dont les sessions résident dans SQLite et non sur disque), vous obtenez un document JSON reproduisant les tables sous-jacentes `session` / `messages` / `parts`. +Cliquez sur le bouton **Télécharger les logs** pour exporter la session. Pour les sessions Claude Code, Codex, Copilot, Cursor et Pi, vous obtenez le transcript JSONL original sur disque octet par octet ; pour OpenCode (dont les sessions résident dans SQLite et non sur disque), vous obtenez un document JSON reproduisant les tables sous-jacentes `session` / `messages` / `parts`. ### Audit -Un rapport personnalisé sur la manière dont votre agent s'est réellement comporté au fil des sessions passées. Effectue le même scan que la commande `failproofai audit`, mais le restitue sous forme d'une affiche partageable sur écran unique + quatre sections sous le pli : +Un rapport au style personnalisé de la façon dont votre agent s'est réellement comporté au fil des sessions passées. Exécute la même analyse que le CLI `failproofai audit` mais la restitue sous la forme d'une affiche partageable plein écran + quatre sections en dessous du pli : -1. **Affiche** — occupe la première fenêtre d'affichage. Zone de capture PNG autonome avec le logo failproof_ai + libellé d'audit · index d'archétype (`№ NN of 08`) + date d'audit · score numérique (0–100) + pastille de rang percentile (`top 15%`) · le nom de l'archétype (parmi `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + bande de 3 mots-clés · ligne de rareté `// only N% of agents are this archetype` · tuile de signe graphique 8×8 pixels · pied de page `audit yours → failproof.ai`. Trois boutons de partage se trouvent juste en dehors de la zone de capture : `post your archetype` (intention X), `share on linkedin`, `download poster`. La capture s'effectue via `html-to-image` de sorte que le PNG correspond pixel pour pixel au rendu à l'écran (bordures en pointillés, masque de logo SVG, dégradés, métriques de polices — tout est conservé). -2. **Points forts** — liste de comportements que votre agent fait déjà correctement, sous forme de lignes avec une coche, dérivés des données d'audit en direct (taux d'appels d'outils propres, aucun push direct sur main, zéro fuite de credentials, zéro boucle de nouvelles tentatives) — chacun n'est affiché que lorsque la politique concernée a un bilan propre sur la fenêtre d'audit. -3. **Particularités** — tableau de ce qui a échappé au contrôle, classé par gravité : `quand · ce qui a échappé + la politique qui l'aurait intercepté · pastille de gravité · observé`, où la récurrence indique `new` (une fois), `N× seen` (2–9 fois) ou `recurring` (10+). -4. **Comment s'améliorer** — liste de lignes calmes, une par politique recommandée : nom de la politique en blanc, description en une ligne, commande d'installation + bouton de copie à droite. L'en-tête de la section indique `enable all N → projected · ` (le score que vous atteindriez en appliquant tous les correctifs), et son bouton `[install all]` copie la commande combinée `failproofai policy add a b c …` pour chaque politique recommandée. -5. **Revenez amélioré** — deux cartes côte à côte. À gauche : définir un rappel (sélecteur de cadence `3d` / `7d` / `14d` / `30d` ; persiste via `/api/auth/reminder` une fois authentifié). À droite : débloquer des avantages failproof — `invite a friend` ouvre une boîte de dialogue acceptant une liste d'adresses e-mail d'amis séparées par des virgules/espaces/sauts de ligne (max 10 par envoi), les envoie en POST à `/api/audit/invite`, qui les transmet au serveur API via `POST /v0/invite`. Le serveur API envoie un e-mail par destinataire depuis `invite@failproof.ai` avec l'expéditeur en Cc et `Reply-To` configuré, de sorte que le destinataire voit qui l'a invité et l'expéditeur reçoit une copie dans sa boîte de réception. Les utilisateurs anonymes sont d'abord redirigés vers `AuthDialog` afin que l'adresse e-mail de l'expéditeur soit connue avant l'envoi des invitations. La gestion des droits et avantages sera traitée ultérieurement. +1. **Affiche** — occupe le premier viewport. Zone de capture PNG autonome avec le logotype failproof_ai + libellé d'audit · index d'archétype (`№ NN of 08`) + date d'audit · score numérique (0–100) + pastille de rang percentile (`top 15%`) · le nom de l'archétype (parmi `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + banderole de 3 mots-clés · ligne de rareté `// only N% of agents are this archetype` · tuile sigil 8×8 pixels · pied de page `audit yours → failproof.ai`. Trois boutons de partage se trouvent juste à l'extérieur de la zone de capture : `post your archetype` (intention X), `share on linkedin`, `download poster`. La capture passe par `html-to-image` de sorte que le PNG correspond au rendu à l'écran pixel par pixel (bordures en pointillés, masque logo SVG, dégradés, métriques de police — tout est préservé). +2. **Points forts** — liste de comportements que votre agent fait déjà correctement, présentés sous forme de lignes avec ✓, dérivés des données d'audit en direct (taux d'appels d'outils propres, aucun push direct vers main, zéro fuite d'identifiants, zéro tempête de nouvelles tentatives) — chaque élément n'apparaît que lorsque la politique correspondante présente un bilan irréprochable sur la fenêtre d'audit. +3. **Particularités** — tableau de ce qui a passé à travers les mailles, classé par gravité : `quand · ce qui a passé + la politique qui l'aurait intercepté · pastille de gravité · vu`, où la récurrence indique `new` (une fois), `N× seen` (2–9 fois), ou `recurring` (10+). +4. **Comment s'améliorer** — liste de lignes calmes, une par politique prescrite : nom de la politique en blanc, description en une ligne, commande d'installation + bouton de copie sur la droite. L'en-tête de section indique `enable all N → projected · ` (le score que vous atteindriez en appliquant tous les correctifs), et son bouton `[install all]` copie la commande combinée `failproofai policy add a b c …` pour chaque politique prescrite. +5. **Revenez amélioré** — deux cartes côte à côte. À gauche : définir un rappel (sélecteur de cadence `3d` / `7d` / `14d` / `30d` ; persiste via `/api/auth/reminder` une fois authentifié). À droite : débloquer les avantages failproof — `invite a friend` ouvre une fenêtre modale qui accepte une liste d'e-mails d'amis séparés par des virgules, espaces ou sauts de ligne (max 10 par envoi), les envoie par POST à `/api/audit/invite`, qui les transmet au `POST /v0/invite` de l'api-server. L'api-server envoie un e-mail par destinataire depuis `invite@failproof.ai` avec l'expéditeur en Cc et `Reply-To` défini, de sorte que le destinataire voit qui l'a invité et l'expéditeur reçoit une copie dans sa boîte de réception. Les utilisateurs anonymes sont d'abord redirigés vers le `AuthDialog` afin que l'e-mail de l'expéditeur soit connu avant l'envoi des invitations. La gestion des droits et avantages est prévue dans une prochaine étape. -Alimenté par le runtime `failproofai audit` — consultez [Audit CLI](/fr/cli/audit) pour le moteur de scan sous-jacent, les options prises en charge et les invariants de cache par transcription. Le tableau de bord met en cache le dernier résultat dans `~/.failproofai/audit-dashboard.json` (mode `0600`, emplacement unique, les nouvelles exécutions écrasent l'ancien) afin que les revisites soient instantanées ; **les caches par transcription et par résultat global sont tous deux rejetés à la lecture s'ils ont plus de 7 jours**, de sorte que le tableau de bord ne sert jamais silencieusement un résultat vieux d'une semaine — passé le TTL, `/audit` revient à son état vide et invite à une nouvelle exécution. Cliquer sur `[ re-audit now ]` en bas du rapport envoie un POST à `/api/audit/run` avec `noCache: true` — la ré-analyse contourne le cache par transcription et réanalyse chaque transcription depuis le début plutôt que de retourner silencieusement le résultat mis en cache — et le tableau de bord interroge `/api/audit/status` à 1 Hz jusqu'à la fin de l'exécution ; une bande de progression rose épinglée en haut de la fenêtre d'affichage s'affiche pendant l'exécution avec un minuteur écoulé, et le nouveau résultat remplace l'ancien en place en cas de succès (sans rechargement complet de la page ; en cas d'échec de la ré-analyse, le rapport précédent reste intact). En cas d'échec, la bande devient rouge avec un message adapté au `RerunError.kind` (`timeout` / `network` / `post_failed`). L'état vide (aucun cache ou expiré) et l'état sans sessions (cache existant mais le scan n'a trouvé aucune transcription) sont présentés séparément. +Propulsé par le runtime `failproofai audit` — consultez [Audit CLI](/fr/cli/audit) pour le moteur d'analyse sous-jacent, les options supportées et les invariants de cache par transcript. Le tableau de bord met en cache le dernier résultat dans `~/.failproofai/audit-dashboard.json` (mode `0600`, emplacement unique, les nouvelles exécutions écrasent) afin que les revisites soient instantanées ; **les deux caches — par transcript et résultat global — sont rejetés à la lecture une fois qu'ils ont plus de 7 jours**, de sorte que le tableau de bord ne renvoie jamais silencieusement un résultat vieux d'une semaine — au-delà de la TTL, `/audit` revient à son état vide et invite à une nouvelle exécution. Cliquer sur `[ re-audit now ]` en bas du rapport envoie un POST à `/api/audit/run` avec `noCache: true` — la ré-analyse contourne le cache par transcript et réanalyse chaque transcript depuis zéro plutôt que de retourner silencieusement le résultat mis en cache — et le tableau de bord interroge `/api/audit/status` à 1 Hz jusqu'à la fin de l'exécution ; une bande de progression rose collante se fixe en haut du viewport pendant l'exécution avec un minuteur écoulé, et le nouveau résultat remplace l'ancien en place en cas de succès (sans rechargement complet de la page ; un échec de ré-analyse laisse le rapport précédent intact). En cas d'échec, la bande devient rouge avec un message adapté au `RerunError.kind` (`timeout` / `network` / `post_failed`). L'état vide (aucun cache ou expiré) et l'état zéro session (cache présent mais l'analyse n'a trouvé aucun transcript) sont présentés séparément. ### Politiques @@ -75,16 +75,16 @@ Une page à deux onglets pour gérer les politiques et examiner l'activité. - - Sélectionnez plusieurs interfaces CLI d'agents que failproofai protège depuis un seul panneau — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi et Hermes disposent chacun d'une ligne avec le statut d'installation (`Active` / `Detected` / `Inactive`), le chemin des paramètres de portée utilisateur et un accent coloré à la marque. Cochez ou décochez les CLI souhaités et cliquez sur `Apply changes` pour installer/désinstaller les différences en une seule étape. Les CLI dont le binaire est détecté dans le PATH sont pré-cochés. + - Sélectionnez les CLI d'agent que failproofai protège depuis un seul panneau — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi et Hermes ont chacun une ligne avec le statut d'installation (`Active` / `Detected` / `Inactive`), le chemin des paramètres de portée utilisateur, et un accent coloré à la marque. Cochez ou décochez les CLI souhaités et cliquez sur `Apply changes` pour installer/désinstaller les différences en une seule étape. Les CLI dont le binaire est détecté dans le PATH sont pré-cochés. - Activez ou désactivez des politiques individuelles d'un simple clic (écrit dans `~/.failproofai/policies-config.json` — partagé entre tous les CLI installés) - - Développez une politique pour configurer ses paramètres (pour les politiques prenant en charge `policyParams`) + - Développez une politique pour configurer ses paramètres (pour les politiques qui prennent en charge `policyParams`) - Définissez un chemin de fichier de politiques personnalisé - Historique paginé complet de chaque événement de hook déclenché dans toutes les sessions - - Filtrer par décision, type d'événement, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(bêta)_ / Cursor Agent _(bêta)_ / OpenCode _(bêta)_ / Pi _(bêta)_ / Hermes), nom de politique ou identifiant de session - - Chaque ligne affiche : horodatage, nom de la politique, décision, badge CLI (orange = Claude Code, violet = OpenAI Codex, bleu = GitHub Copilot, émeraude = Cursor Agent, ambre = OpenCode, rose = Pi, indigo = Hermes), nom de l'outil, identifiant de session et la raison des décisions deny/instruct - - Cliquez sur un identifiant de session pour ouvrir sa transcription — le visualiseur détecte automatiquement quel CLI a déclenché le hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) et affiche le badge CLI correspondant dans l'en-tête + - Filtrez par décision, type d'événement, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(bêta)_ / Cursor Agent _(bêta)_ / OpenCode _(bêta)_ / Pi _(bêta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), nom de politique ou identifiant de session + - Chaque ligne affiche : horodatage, nom de la politique, décision, badge CLI (orange = Claude Code, violet = OpenAI Codex, bleu = GitHub Copilot, vert émeraude = Cursor Agent, ambre = OpenCode, rose = Pi, indigo = Hermes, sarcelle = OpenClaw, rose vif = Factory Droid, violet foncé = Devin, cyan = Antigravity, vert citron = Goose), nom de l'outil, identifiant de session et la raison des décisions deny/instruct + - Cliquez sur un identifiant de session pour ouvrir son transcript — le visualiseur détecte automatiquement quel CLI a déclenché le hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) et affiche le badge CLI correspondant dans l'en-tête @@ -92,7 +92,7 @@ Une page à deux onglets pour gérer les politiques et examiner l'activité. ## Actualisation automatique -Le tableau de bord dispose d'un bouton de basculement d'actualisation automatique dans la navigation supérieure. Lorsqu'il est activé, la page actuelle s'actualise périodiquement pour afficher les nouvelles sessions et l'activité des politiques au fur et à mesure qu'elles apparaissent. Indispensable pour surveiller les sessions d'agents autonomes de longue durée. +Le tableau de bord dispose d'un bouton d'activation de l'actualisation automatique dans la navigation supérieure. Lorsqu'elle est activée, la page actuelle se rafraîchit périodiquement pour afficher les nouvelles sessions et l'activité des politiques au fur et à mesure. Indispensable pour surveiller des sessions d'agents autonomes de longue durée. --- @@ -110,7 +110,7 @@ Valeurs valides : `policies`, `projects`, `audit`. ## Configurer le chemin des projets -Par défaut, le tableau de bord lit depuis le répertoire de projets Claude Code standard. Remplacez-le pour des configurations personnalisées : +Par défaut, le tableau de bord lit depuis le répertoire standard des projets Claude Code. Remplacez-le pour des configurations personnalisées : ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -118,15 +118,15 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai --- -## Accès depuis un hôte autre que localhost +## Accès depuis un hôte non-localhost -Lorsque vous exécutez le tableau de bord en **mode développement** (`npm run dev`) et que vous y accédez depuis un nom d'hôte autre que `localhost` — par exemple, un domaine personnalisé, une IP distante ou une URL tunnelisée — vous pouvez voir un avertissement comme : +Lorsque vous exécutez le tableau de bord en **mode développement** (`npm run dev`) et que vous y accédez depuis un nom d'hôte autre que `localhost` — par exemple, un domaine personnalisé, une IP distante ou une URL tunnelisée — vous pouvez voir un avertissement tel que : ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Next.js bloque l'accès cross-origin à son websocket HMR (rechargement à chaud des modules), qui est une fonctionnalité réservée au développement. Pour autoriser votre hôte, utilisez l'option `--allowed-origins` : +Il s'agit de Next.js bloquant l'accès cross-origin à son websocket HMR (hot module reload), qui est une fonctionnalité réservée au développement. Pour autoriser votre hôte, utilisez l'option `--allowed-origins` : ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Ceci s'applique uniquement au mode développement. Lorsque vous exécutez `failproofai` (mode production), il n'y a pas de websocket HMR ni de problème de ressource de développement cross-origin. - +Ceci ne s'applique qu'au mode développement. Lors de l'exécution de `failproofai` (mode production), il n'y a ni websocket HMR ni problème de ressource de développement cross-origin. + \ No newline at end of file diff --git a/docs/fr/introduction.mdx b/docs/fr/introduction.mdx index cca8707d..fafc2282 100644 --- a/docs/fr/introduction.mdx +++ b/docs/fr/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI offre aux agents IA 39 politiques de sécurité intégrées qui détectent les boucles, les fuites de secrets, les appels d'outils destructeurs, et bien plus encore, en une seule installation." +description: "FailproofAI donne aux agents IA 39 politiques de défaillance intégrées qui détectent les boucles, les fuites de secrets, les appels d'outils destructeurs, et bien plus encore, le tout en une seule installation." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hooks et politiques pour la **gestion des défaillances IA**, la **récupération après erreur** et la **fiabilité des LLM**. Gardez vos agents IA fiables et autonomes sur **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** et l'**Agents SDK**. +Hooks et politiques pour la **gestion des défaillances IA**, la **récupération d'erreurs** et la **fiabilité des LLM**. Gardez vos agents IA fiables et opérationnels de manière autonome sur **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** et l'**Agents SDK**. -Les agents IA échouent de manière prévisible. Ils exécutent des commandes destructrices, exposent des secrets, dérivent hors de leur tâche, se retrouvent bloqués dans des boucles ou poussent directement sur la branche principale. Laissées sans surveillance, de petites défaillances se transforment en pannes, en identifiants compromis et en travail perdu. +Les agents IA échouent de manière prévisible. Ils exécutent des commandes destructrices, laissent fuiter des secrets, dérivent hors de leur tâche, se retrouvent bloqués dans des boucles ou poussent directement sur la branche principale. Sans surveillance, de petites défaillances peuvent provoquer des pannes en cascade, des identifiants compromis et une perte de travail. -FailproofAI résout ce problème grâce aux **politiques**. Ces règles s'accrochent à chaque appel d'outil de l'agent pour **détecter les défaillances**, **les atténuer** (bloquer, instruire, assainir) et **vous alerter** lorsqu'une intervention est nécessaire. Un tableau de bord local vous permet de consulter chaque appel d'outil, chaque défaillance d'agent et chaque action de récupération après coup. +FailproofAI résout ce problème grâce aux **politiques**. Ces règles s'accrochent à chaque appel d'outil de l'agent pour **détecter les défaillances**, **les atténuer** (bloquer, instruire, assainir) et **vous alerter** lorsqu'une attention est requise. Un tableau de bord local vous permet de consulter a posteriori chaque appel d'outil, chaque défaillance de l'agent et chaque action de récupération. -Aucune donnée ne quitte votre machine. +Les transcripts et l'évaluation des politiques restent sur votre machine. Les données ne sont envoyées que lorsque vous utilisez explicitement une fonctionnalité en ligne, comme les rappels d'audit authentifiés ou les invitations. ## Démarrer - Bloquez les commandes destructrices, empêchez les fuites de secrets, maintenez les agents dans les limites du projet, et bien plus encore. Tout prêt à l'emploi. + Bloquez les commandes destructrices, prévenez les fuites de secrets, maintenez les agents dans les limites du projet, et bien plus encore. Tout est disponible dès l'installation. - Écrivez vos propres règles en JavaScript avec une API simple allow / deny / instruct. + Écrivez vos propres règles en JavaScript grâce à une API simple allow / deny / instruct. - Voyez ce que vos agents ont fait pendant votre absence. Parcourez les sessions, inspectez les appels d'outils, consultez où les politiques ont été déclenchées. + Voyez ce que vos agents ont fait pendant votre absence. Parcourez les sessions, inspectez les appels d'outils, examinez où les politiques se sont déclenchées. - Ajustez n'importe quelle politique sans code. Définissez des listes d'autorisation, des branches protégées ou des seuils par projet ou globalement. + Ajustez n'importe quelle politique sans écrire de code. Définissez des listes d'autorisation, des branches protégées ou des seuils par projet ou de manière globale. @@ -54,4 +54,4 @@ failproofai policies --install # enable policies (or skip — `failproofai` wi failproofai # launch the dashboard ``` -Consultez le guide [Premiers pas](/fr/getting-started) pour une présentation complète. \ No newline at end of file +Consultez le guide [Prise en main](/fr/getting-started) pour une présentation complète. \ No newline at end of file diff --git a/docs/he/dashboard.mdx b/docs/he/dashboard.mdx index b3591357..8149dd5c 100644 --- a/docs/he/dashboard.mdx +++ b/docs/he/dashboard.mdx @@ -1,11 +1,10 @@ --- ---- -title: לוח הבקרה -description: "עקוב אחר הפעלות של סוכנים, בדוק קריאות כלים וניהול מדיניות" +title: לוח בקרה +description: "עקוב אחרי הפעלות של סוכנים, בדוק קריאות כלים וניהול של מדיניות" icon: chart-line --- -לוח הבקרה של failproofai הוא אפליקציית ווב מקומית לניטור הפעלות סוכני ה-AI שלך וניהול מדיניות. ראה מה עשו הסוכנים שלך בזמן שהיית רחוק. +לוח הבקרה של failproofai היא אפליקציית רשת מקומית לניטור של הפעלות סוכנים בינה מלאכותית וניהול של מדיניות. ראה מה עשו הסוכנים שלך בזמן שלא היית שם. --- @@ -15,91 +14,91 @@ icon: chart-line failproofai ``` -נפתח בכתובת `http://localhost:8020`. +נפתח ב-`http://localhost:8020`. -לוח הבקרה קורא ישירות מקובץ המערכת - תיקיות Claude Code שלך וקובצי הקונפיגורציה של failproofai. שום דבר לא כתוב לשירות מרחוק. +לוח הבקרה קורא נתוני פרויקט, הפעלה ותצורת failproofai מקומיים ישירות מהמערכת הקבצים. תכונות שניתן להתאים אליהן (כמו תזכורות ביקורת והזמנות), שולחות את המידע הנדרש לבקשות אלו (כולל כתובות דוא"ל) ל-API ממוקדים. --- ## עמודים -### Projects +### פרויקטים -מפרט את כל Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, ו-Hermes שנמצאו במחשב שלך. פרויקטי Claude מגולים מ-`~/.claude/projects/` (או הנתיב שנקבע על ידי `CLAUDE_PROJECTS_PATH`); פרויקטי Codex מגולים על ידי סריקת כל תמליל תחת `~/.codex/sessions///
/*.jsonl` וקיבוץ לפי `cwd` שנרשם בתיעוד הראשון של ההפעלה; פרויקטי Copilot CLI מגולים על ידי סריקת כל `~/.copilot/session-state//workspace.yaml` (ניתן להגדיר דרך `COPILOT_HOME`) וקיבוץ לפי שדה `cwd` שלו; פרויקטי Cursor Agent מגולים על ידי סריקת מטא-נתונים לכל הפעלה תחת `~/.cursor/agent-sessions//` (ניתן להגדיר דרך `CURSOR_HOME`, עם סדרי גיבוי `conversations/` ו-`sessions/`) עבור סקלר `cwd` ב-`meta.json` / `session.json` / `workspace.yaml`; פרויקטי OpenCode מגולים על ידי שאילתת SQLite DB שלה ב-`~/.local/share/opencode/opencode.db` דרך `opencode db --format json` (אנו קוראים את טבלאות `session` ו-`project` וקיבוץ לפי `project_id`); פרויקטי Pi מגולים על ידי סריקת תמליל JSONL לכל הפעלה תחת `~/.pi/agent/sessions//_.jsonl` (ניתן להגדיר דרך `PI_SESSIONS_DIR`) ושליפת `cwd` מתיעוד הראשון של כל הפעלה; הפעלות שער Hermes נקראות ישירות מחנות SQLite שלה ב-`~/.hermes/state.db` (ניתן להגדיר דרך `HERMES_DB_PATH`) וקיבוץ לפרויקטי `hermes-` לפי `source` (Slack/Telegram/cli/cron — להפעלות שער אין cwd). פרויקט ששימש מספר CLIs מרואה כשורה יחידה עם כל התגים המתאימים. השתמש בתפריט **CLI** מעל הטבלה לסינון לפי סוכן CLI ספציפי; ה-URL משמר את הבחירה שלך כ-`?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +מפרטת את כל פרויקטי Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, ו-Goose שנמצאו במחשב שלך. פרויקטי Claude מתגלים מ-`~/.claude/projects/` (או הנתיב שקבוע על ידי `CLAUDE_PROJECTS_PATH`); פרויקטי Codex מתגלים על ידי סריקה של כל תמליל תחת `~/.codex/sessions///
/*.jsonl` וקיבוץ לפי `cwd` המתועד בתיעוד הראשון של כל הפעלה; פרויקטי Copilot CLI מתגלים על ידי סריקה של כל `~/.copilot/session-state//workspace.yaml` (ניתן להגדיר דרך `COPILOT_HOME`) וקיבוץ לפי שדה `cwd`; פרויקטי Cursor Agent מתגלים על ידי סריקה של מטא-נתונים לכל הפעלה תחת `~/.cursor/agent-sessions//` (ניתן להגדיר דרך `CURSOR_HOME`, עם `conversations/` ו-`sessions/` בהחזקה כעותדות) עבור סקלר `cwd` ב-`meta.json` / `session.json` / `workspace.yaml`; פרויקטי OpenCode מתגלים על ידי שאילתה של SQLite DB שלו ב-`~/.local/share/opencode/opencode.db` דרך `opencode db --format json` (אנו קוראים את טבלאות `session` ו-`project` ומקבצים לפי `project_id`); פרויקטי Pi מתגלים על ידי סריקה של תמליל JSONL לכל הפעלה תחת `~/.pi/agent/sessions//_.jsonl` (ניתן להגדיר דרך `PI_SESSIONS_DIR`) והוצאת `cwd` מתיעוד הראשון של כל הפעלה; הפעלות שער Hermes נקראות ישירות מחנות SQLite שלו ב-`~/.hermes/state.db` (ניתן להגדיר דרך `HERMES_DB_PATH`) ומקובצות לפרויקטי `hermes-` לפי `source` (Slack/Telegram/cli/cron — הפעלות של שער אין להן cwd); הפעלות שער OpenClaw נקראות מ-`~/.openclaw/agents//sessions/*.jsonl` ומקובצות לפרויקטי `openclaw-` (גם ללא cwd); פרויקטי Factory Droid מתגלים מתמליל JSONL ב-`~/.factory/sessions//*.jsonl` ומקובצות לפי cwd; פרויקטי Devin מ-SQLite DB שלו ב-`~/.local/share/devin/cli/sessions.db` (מקובצות לפי `working_directory` של כל הפעלה); פרויקטי Antigravity מתמליל JSONL ב-`~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` ומקובצות לפי cwd; ופרויקטי Goose מ-SQLite DB שלו ב-`~/.local/share/goose/sessions/sessions.db` (מקובצות לפי `working_dir` של כל הפעלה). פרויקט ששימש בשימוש על ידי CLI מרובים מוגדר כשורה אחת עם כל התג המתאים. השתמש בתפריט ה-**CLI** מעל הטבלה כדי לסנן לפי סוכן CLI ספציפי; ה-URL משמר את הבחירה שלך כ-`?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. כל פרויקט מציג: -- שם הפרויקט (מגובש מנתיב התיקייה) -- תג CLI — `Claude Code` (כתום), `OpenAI Codex` (סגול), `GitHub Copilot` (כחול), `Cursor Agent` (אזמרגד), `OpenCode` (ענבר), `Pi` (ורוד), ו/או `Hermes` (אינדיגו) +- שם הפרויקט (מנוצג מהנתיב התיקייה) +- תג CLI — `Claude Code` (כתום), `OpenAI Codex` (סגול), `GitHub Copilot` (כחול), `Cursor Agent` (ירוק), `OpenCode` (ענבר), `Pi` (ורוד), ו/או `Hermes` (אינדיגו) - תאריך של פעילות הפעלה האחרונה -לחץ על פרויקט כדי לראות את הפעלות שלו. +לחץ על פרויקט כדי לראות את הפעלותיו. -### Sessions +### הפעלות -מפרט את כל הפעלות בתוך פרויקט. כל הפעלה מציגה: +מפרטת את כל ההפעלות בתוך פרויקט. כל הפעלה מציגה: - מזהה הפעלה - חותמות זמן של התחלה וסיום -- מספר קריאות כלים -- ספירת פעילות קורא (מדיניות שנשדרה) +- מספר של קריאות כלים +- ספירת פעילות hook (מדיניות שהשתלטה) -השתמש במסנן טווח התאריכים ובחיפוש מזהה הפעלה כדי לצמצם את הרשימה. הפעלות מחולקות לעמודים. +השתמש בחוצץ טווח התאריך וחיפוש מזהה הפעלה כדי לצמצם את הרשימה. הפעלות מחולקות לעמודים. -לחץ על הפעלה כדי לפתוח את מצפה הפעלה. +לחץ על הפעלה כדי לפתוח את כלי הצפייה בהפעלה. -### מצפה הפעלה +### כלי צפייה בהפעלה -מצפה הפעלה עונה על השאלה המרכזית לסוכנים אוטונומיים: מה עשה הסוכן, והאם הוא נשאר בעקוב? תג CLI ליד הכותרת מציין אם ההפעלה היא Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, או תמליל Hermes. הוא מציג ציר הזמן של כל מה שקרה בהפעלה: +כלי הצפייה בהפעלה עונה לשאלה הקריטית עבור סוכנים אוטונומיים: מה עשה הסוכן, והאם הוא נשאר בעקבות? תג CLI ליד הכותרת מציין אם ההפעלה היא תמליל של Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, או Goose. הוא מציג ציר זמן של כל מה שקרה בהפעלה: -- **הודעות** - תגובות טקסט של Claude והנחיות משתמש +- **הודעות** - תגובות טקסט של Claude והנחיות של משתמש - **קריאות כלים** - כל כלי שקרא Claude, עם הקלט והפלט שלו -- **פעילות מדיניות** - לכל קריאת כלים, אילו מדיניות נשדרה ואילו החלטה הן החזירו +- **פעילות מדיניות** - עבור כל קריאת כלי, איזו מדיניות השתלטה ואיזו החלטה הם החזירו -סרגל הנתונים בחלק העליון מציג משך הפעלה, סה"כ קריאות כלים, וסיכום החלטות קורא (ספירות allow / deny / instruct). +סרגל הנתונים בחלק העליון מציג משך הפעלה, סך הכל קריאות כלים, וסיכום של החלטות hook (ספירות allow / deny / instruct). -לחץ על כפתור **Download Logs** כדי לייצא את ההפעלה. עבור Claude Code, Codex, Copilot, Cursor, ו-Pi תקבל את תמליל JSONL המקורי על הדיסק בדיוק כפי שהוא; עבור OpenCode (שהפעלות שלה חיות ב-SQLite, לא על הדיסק) תקבל מסמך JSON המשקף את טבלאות `session` / `messages` / `parts` הבסיסיות. +לחץ על כפתור **Download Logs** כדי לייצא את ההפעלה. עבור הפעלות Claude Code, Codex, Copilot, Cursor, ו-Pi תקבל את תמליל JSONL המקורי על הדיסק בדיוק; עבור OpenCode (שהפעלותיו חיות ב-SQLite, לא על הדיסק) תקבל מסמך JSON המשקף את טבלאות `session` / `messages` / `parts` הבסיסיות. -### Audit +### ביקורת -דוח מונע על ידי אישיות כיצד סוכן שלך אכן התנהג בהפעלות עבר. מריץ את אותה סריקה כמו CLI של `failproofai audit` אך מעניק לה כל על-מסך בר-שיתוף + ארבעה סעיפים מתחת לקפל: +דו"ח מונע על ידי אישיות של כיצד הסוכן שלך באמת התנהג על פני הפעלות קודמות. מריץ את אותה הסריקה כמו CLI `failproofai audit` אך מגדיר אותו כפוסטר בעמוד יחיד בר-שיתוף + ארבעה חלקים מתחת לקפל: -1. **Poster** — ממלא את viewport הראשון. אזור תפיסת PNG עצמי עם wordmark failproof_ai + תווית ביקורת · אינדקס ארכיטיפ (`№ NN of 08`) + תאריך ביקורת · ציון מספרי (0–100) + דירוג אחוזון כדור (`top 15%`) · שם הארכיטיפ (אחד מ-`the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + רצועת 3 מילות מפתח · `// only N% of agents are this archetype` שורת דלילות · אריח סמל 8×8 פיקסל · `audit yours → failproof.ai` כותרת רגל. שלושה כפתורי שיתוף יושבים ממש מחוץ לתיבת התפיסה: `post your archetype` (X intent), `share on linkedin`, `download poster`. התפיסה רצה דרך `html-to-image` כך שה-PNG תואם את העל-מסך בדיוק פיקסל על פיקסל (גבולות מקווקווים, מסיכת לוגו SVG, שיפועים, מטרי גופנים — הכל שמור). -2. **Strengths** — שורת רשימה רגועה ✓ של התנהגויות שהסוכן שלך כבר עושה נכון, הנגזרת מנתוני ביקורת חי (שיעור קריאות כלים נקי, ללא דחיפה ישירה לעיקרי, ללא נזילות זיהויים, ללא סערות ניסיון חוזרות) — כל אחת משטחת רק כאשר למדיניות הרלוונטית רשומה נקייה על פני חלון הביקורת. -3. **Quirks** — טבלה של מה שהחליק דרך, דורג לפי חומרה: `when · what slipped + the policy that would've caught it · severity pill · seen`, כאשר הישנות קוראת `new` (פעם אחת), `N× seen` (2–9 פעמים), או `recurring` (10+). -4. **How to improve** — שורת רשימה רגועה, אחת לכל מדיניות קבועה: שם מדיניות בלבן, תיאור בשורה אחת, פקודת התקנה + כפתור עותק בצד ימין. כותרת הסעיף קוראת `enable all N → projected · ` (הניקוד שהיית מגיע עם כל תיקון שהוחל), וכפתור `[install all]` שלו מעתיק את הפקודה המשולבת `failproofai policy add a b c …` לכל מדיניות קבועה. -5. **Come back better** — שתי כרטיסים זה לצד זה. שמאל: קבע תזכורת (`3d` / `7d` / `14d` / `30d` בוחר קדנציה; נשמר דרך `/api/auth/reminder` ברגע שמאומת). ימין: בטל את fullproof perks — `invite a friend` פותח מודאל שלוקח רשימה מופרדת בפסיקים / רווח / שורה חדשה של כתובות דוא"ל של חברים (מקסימום 10 לשליחה), מעלה אותם ל-`/api/audit/invite`, אשר מעביר אותם לאפליקציית `POST /v0/invite` של api-server. ה-api-server שולח דוא"ל אחד לכל נמען מ-`invite@failproof.ai` עם שליחה Cc'd וקביעת `Reply-To`, כך שהנמען רואה מי הזמין אותם והשליחה מקבלת עותק בתיבת הדואר הנכנס שלה. משתמשים אנונימיים מנותבים דרך `AuthDialog` תחילה כך שכתובת הדוא"ל של השליחה ידועה לפני שהזמנות יוצאות. זכאות / fulfillment perks הוא סדר עבודה בעקבות. +1. **פוסטר** — ממלא את חלון הצפייה הראשון. אזור התמונה PNG עצמי המכיל את הסמל של failproof_ai + תווית ביקורת · אינדקס אבטיפוס (`№ NN of 08`) + תאריך ביקורת · ניקוד מספרי (0–100) + כדור דירוג אחוזון (`top 15%`) · שם האבטיפוס (אחד מ-`the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + פס 3 מילות מפתח · שורת נדירות `// only N% of agents are this archetype` · אריח סיגיל 8×8 פיקסל · תחתית `audit yours → failproof.ai`. שלושה כפתורי שיתוף יושבים בדיוק מחוץ לתיבת הלכידה: `post your archetype` (כוונת X), `share on linkedin`, `download poster`. הלכידה מתבצעת דרך `html-to-image` כך ש-PNG תואם את העיבוד על המסך פיקסל-לפיקסל (גבולות מקווקווים, מסכת לוגו SVG, שיפועים, מטריקות גופן — כל משמור). +2. **נקודות חוזק** — רשימת שורות רגועה של התנהגויות שהסוכן שלך כבר עושה בצורה נכונה, שנגזרת מנתוני ביקורת חיים (שיעור קריאה כלים נקי, ללא דחיפות ישירות לעיקרון, אפס דיפויי אישור, אפס סערות ניסיון חוזר) — כל אחד מוצג רק כאשר למדיניות הרלוונטית יש שיא נקי על פני חלון הביקורת. +3. **ייחודיות** — טבלה של מה שהחליק, דירוג לפי חומרה: `when · what slipped + the policy that would've caught it · severity pill · seen`, כאשר הישנות נקראת `new` (פעם אחת), `N× seen` (2–9 פעמים), או `recurring` (10+). +4. **כיצד לשפר** — רשימת שורות רגועה, אחת לכל מדיניות קבועה: שם מדיניות בלבן, תיאור שורה אחת, פקודת התקנה + כפתור העתק בצד ימין. כותרת הסעיף קוראת `enable all N → projected · ` (הניקוד שהיית מגיע אליו עם כל התיקון שיושם), וכפתור `[install all]` שלו מעתיק את פקודת `failproofai policy add a b c …` המשולבת עבור כל מדיניות קבועה. +5. **חזור טוב יותר** — שתי כרטיסים זה לצד זה. שמאלה: הגדר תזכורת (בחירה קדנציה `3d` / `7d` / `14d` / `30d`; נשמרת דרך `/api/auth/reminder` ברגע שמאומתת). ימין: פתח את failproof perks — `invite a friend` פותח מודאל שלוקח רשימה מופרדת בפסיקים/רווחים/שדרי קו של דוא"ל חברים (מקסימום 10 לשליחה), POST אותם אל `/api/audit/invite`, המעביר אל `/v0/invite` של שרת ה-api. שרת ה-api שולח דוא"ל אחד לכל נמען מ-`invite@failproof.ai` עם שיתוף CC של השולח ו-`Reply-To` מוגדר, כך שהנמען רואה מי הזמין אותו והשולח מקבל העתק בתיבת הדואר הנכנס. משתמשים אנונימיים מנותבים דרך `AuthDialog` ראשון כך שדוא"ל השולח ידוע לפני שההזמנות יוצאות. זכאות / קיום perks הוא המשך. -מונע על ידי זמן ההרצה של `failproofai audit` — ראה [Audit CLI](/he/cli/audit) עבור מנוע הסריקה הבסיסי, דגלים נתמכים, ובלתי ניתנים לשינוי של זיכרון מטמון לכל תמליל. לוח הבקרה שומר את התוצאה האחרונה ב-`~/.failproofai/audit-dashboard.json` (מצב `0600`, חריץ יחיד, הרצות חדשות משכתבות) כך שביקורי חוזרים מיידיים; **גם זיכרון מטמון לכל תמליל וגם תוצאה כוללת נדחו בקריאה ברגע שהם מעבר לגיל של 7 ימים** כך שלוח הבקרה לא משרת בשקט תוצאה בגיל שבוע — עבר ה-TTL `/audit` נופל דרך למצב הריק שלו וזמנים הרצה טרייה. לחיצה על `[ re-audit now ]` ליד תחתית הדוח POSTs `/api/audit/run` עם `noCache: true` — re-audit עוקף את זיכרון המטמון לכל תמליל ועורך סריקה מחדש של כל תמליל מההתחלה ולא משום שמחזירה בשקט את התוצאה המטומנת — לוח הבקרה פולל `/api/audit/status` ב-1Hz עד שההרצה מסיימת; רצועת התקדמות ורודה דביקה קובעת את ראש viewport במהלך ההרצה עם טיימר שחלוף, והתוצאה הטרייה מתחלפת במקום בעת הצלחה (ללא טעינת עמוד מלאה; re-audit כושל משאיר את הדוח הקודם שלם). בעת כשל הרצועה הופכת לאדומה עם עותק מפתח מ-`RerunError.kind` (`timeout` / `network` / `post_failed`). מצב ריק (ללא זיכרון מטמון או פג תוקף) ומצב אפס-הפעלות (זיכרון מטמון קיים אך הסריקה לא מצאה תמליל) משטחים בנפרד. +מונע על ידי זמן ריצת `failproofai audit` — ראה [Audit CLI](/he/cli/audit) לעל ריצת הסריקה הבסיסית, דגלים נתמכים וקביעות מטמון לכל תמליל. לוח הבקרה משמר את התוצאה האחרונה ב-`~/.failproofai/audit-dashboard.json` (מצב `0600`, משבצת אחת, ריצות חדשות כותבות בעיתוי) כך שביקורי חזרה הם מידיים; **גם מטמוני לכל תמליל וגם של כל התוצאה נדחים בקריאה ברגע שהם יותר מעתיקים מ-7 ימים** כך שלוח הבקרה לא שומר תוצאה מלפני שבוע — מעבר ל-TTL `/audit` נופל למצבו הריק ומשאיל ריצה טרייה. לחיצה על `[ re-audit now ]` ליד תחתית הדו"ח POST אל `/api/audit/run` עם `noCache: true` — ביקורת מחדש עוקפת את מטמון לכל תמליל וסורקת מחדש כל תמליל מספריים במקום שתחזיר בשקט את התוצאה במטמון — ולוח הבקרה סוקר `/api/audit/status` ב-1Hz עד שהריצה מסתיימת; פס התקדמות ורוד דבוק מצייד את החלק העליון של חלון הצפייה במהלך הריצה עם טיימר שחלף, והתוצאה הטרייה מתחלפת למקומה בהצלחה (ללא טעינה מלאה בעמוד; ביקורת מחדש שנכשלה משאירה את הדו"ח הקודם שלמה). בכשל הפס הופך לאדום עם העתקה שמפתחתה ל-`RerunError.kind` (`timeout` / `network` / `post_failed`). מצב ריק (ללא מטמון או פג) ומצב אפס-הפעלות (מטמון קיים אך הסריקה לא מצאה תמליל) מוצגים בנפרד. -### Policies +### מדיניות -עמוד דו-כרטיסיה לניהול מדיניות וסקירת פעילות. +עמוד בעל שתי כרטיסיות לניהול של מדיניות וביקורת של פעילות. - - - בחר מספר כלים את סוכני ה-CLI שעליהם failproofai מגן מלוח יחיד — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, ו-Hermes כולם בעלי שורה עם סטטוס התקנה (`Active` / `Detected` / `Inactive`), נתיב הגדרות הטווח השנייה משתמש, והדגש צבע ממותג. בדוק או בטל את בדיקת ה-CLIs שאתה רוצה לחץ על `Apply changes` כדי להתקין/הסר את ההבדל בשלב אחד. CLIs שהבינארית שלהם מגולה ב-PATH מסומנים מראש. - - כיבוי או הדלקת מדיניות בודדות בלחיצה יחידה (כתיבה ל-`~/.failproofai/policies-config.json` — משותפת לכל CLI מותקן) - - הרחב מדיניות כדי להגדיר את הפרמטרים שלה (עבור מדיניות התומכות `policyParams`) - - קבע נתיב קובץ מדיניות מותאם + + - בחר מרובות איזה CLI סוכנים failproofai מגן עליו מלוח יחיד — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, ו-Hermes כולם יש שורה עם סטטוס התקנה (`Active` / `Detected` / `Inactive`), נתיב הגדרות ההיקף של משתמש, וברים צבע מותג. בדוק או בטל בדיקה של CLI שאתה רוצה ולחץ על `Apply changes` כדי להתקין/הסרה את ההבדל בשלב אחד. CLI שהבינארי שלו מתגלה ב-PATH מסומנים מראש. + - עבור בין מדיניות בודדות או כיבה בלחיצה יחידה (כתיבה ל-`~/.failproofai/policies-config.json` — משותפת על פני כל CLI מותקן) + - הרחב מדיניות כדי להגדיר את הפרמטרים שלה (עבור מדיניות התומכות ב-`policyParams`) + - הגדר נתיב קובץ מדיניות מותאם אישית - - - מלא היסטוריית עמודים של כל אירוע קורא שנשדר על כל הפעלות - - סנן לפי החלטה, סוג אירוע, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), שם מדיניות, או מזהה הפעלה - - כל שורה מציגה: חותמת זמן, שם מדיניות, החלטה, תג CLI (כתום = Claude Code, סגול = OpenAI Codex, כחול = GitHub Copilot, אזמרגד = Cursor Agent, ענבר = OpenCode, ורוד = Pi, אינדיגו = Hermes), שם כלים, מזהה הפעלה, והסיבה להחלטות deny/instruct - - לחץ על מזהה הפעלה כדי לפתוח את התמליל שלה — מצפה גילוי אוטומטי אילו CLI נשדרה קורא (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) ומעניק את תג ה-CLI התואם בכותרת + + - היסטוריה מעודכנת מלאה של כל אירוע hook שהשתלט על כל ההפעלות + - סנן לפי החלטה, סוג אירוע, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), שם מדיניות, או מזהה הפעלה + - כל שורה מציגה: חותם זמן, שם מדיניות, החלטה, תג CLI (כתום = Claude Code, סגול = OpenAI Codex, כחול = GitHub Copilot, ירוק = Cursor Agent, ענבר = OpenCode, ורוד = Pi, אינדיגו = Hermes, בטורקיז = OpenClaw, ורד = Factory Droid, סגול = Devin, ציאן = Antigravity, ירוק גיר = Goose), שם כלי, מזהה הפעלה, והסיבה להחלטות deny/instruct + - לחץ על מזהה הפעלה כדי לפתוח את התמליל שלו — כלי הצפייה אוטומטית מזהה איזה CLI השתלט בהוק (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) ומגדיר את תג ה-CLI המתאימה בכותרת --- -## Auto-refresh +## ריענון אוטומטי -לוח הבקרה יש ממתג ריענון אוטומטי בניווט הדף העליון. כאשר הוא מופעל, העמוד הנוכחי מתרענן מעת לעת כדי להציג הפעלות חדשות ופעילות מדיניות כשהם מופיעים. חיוני לניטור הפעלות סוכן אוטונומי ארוכות. +לוח הבקרה יש כפתור ריענון אוטומטי בניווט העליון. כאשר מופעל, העמוד הנוכחי משתנה מעת לעת כדי להציג הפעלות חדשות ופעילות מדיניות כשהם מופיעים. חיוני לניטור של הפעלות סוכנים אוטונומיים ארוכות טווח. --- ## השבתת עמודים -אם אתה זקוק רק לחלקים מסוימים של לוח הבקרה, קבע `FAILPROOFAI_DISABLE_PAGES` לרשימה מפורדת בפסיקים של שמות עמוד: +אם אתה צריך רק חלקים מסוימים מלוח הבקרה, קבע `FAILPROOFAI_DISABLE_PAGES` לרשימה מופרדת בפסיקים של שמות עמודים: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -109,9 +108,9 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai --- -## הגדרת נתיב הפרויקטים +## הגדרת נתיב פרויקטים -כברירת מחדל, לוח הבקרה קורא מספריית הפרויקטים הסטנדרטית של Claude Code. עקוף אותה לעיצובים מותאמים: +כברירת מחדל, לוח הבקרה קורא מספריית פרויקטי Claude Code הסטנדרטית. עקוף זה עבור הגדרות מותאמות אישית: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -121,30 +120,30 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## גישה מהוסט שאינו localhost -בעת הפעלת לוח הבקרה ב**מצב פיתוח** (`npm run dev`) וגישה אליו משם הוסט שאינו `localhost` - לדוגמא, תחום מותאם, IP מרחוק, או כתובת URL מחודרת - ייתכן שתראה אזהרה כמו: +בעת הפעלת לוח הבקרה ב-**מצב dev** (`npm run dev`) וגישה אליו מהוסט שאינו `localhost` - לדוגמה, דומיין מותאם אישית, IP מרוחק, או URL במנהרה - ייתכן שתראה אזהרה כמו: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -זה Next.js החוסם גישה בין-מקור לרשת HMR (hot module reload) שלו, שהיא תכונת פיתוח בלבד. כדי להתיר את הוסט שלך, השתמש בדגל `--allowed-origins`: +זה Next.js חוסם גישה חוצת מקורות ל-HMR (hot module reload) websocket שלו, שהיא תכונה של dev בלבד. כדי לאפשר את ההוסט שלך, השתמש בדגל `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -עבור מספר הוסטים או כתובות IP, עבור רשימה מפורדת בפסיקים: +עבור מספר הוסטים או IP, עבור רשימה מופרדת בפסיקים: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -אתה יכול גם לקבוע את משתנה הסביבה `FAILPROOFAI_ALLOWED_DEV_ORIGINS` במקום זאת: +אתה יכול גם להגדיר את משתנה הסביבה `FAILPROOFAI_ALLOWED_DEV_ORIGINS` במקום: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -זה חל רק על מצב פיתוח. בעת הפעלת `failproofai` (מצב ייצור), אין רשת HMR ואין בעיית משאבי פיתוח בין-מקור. +זה חל רק על מצב dev. בעת הפעלת `failproofai` (מצב ייצור), אין websocket HMR ואין בעיית משאב dev חוצת מקורות. \ No newline at end of file diff --git a/docs/he/introduction.mdx b/docs/he/introduction.mdx index cc81a290..79389824 100644 --- a/docs/he/introduction.mdx +++ b/docs/he/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI מספקת לסוכני AI 39 מדיניויות כשל מובנות שתופסות לולאות, דליפות סודות, קריאות כלים הרסניות ועוד בהתקנה יחידה." +description: "FailproofAI מספק לסוכני AI 39 מדיניויות כישל מובנות שתופסות לולאות, דליפות סודיות, קריאות כלים הרסניות ועוד בהתקנה אחת." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -hooks ומדיניויות ל**טיפול בכשלי AI**, **התאוששות משגיאות**, ו**אמינות LLM**. שמור על סוכני ה-AI שלך אמינים ופועלים באופן אוטונומי על פני **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, וה-**Agents SDK**. +ווסדקים ומדיניויות ל**טיפול בכישלונות AI**, **התאוששות משגיאות**, ו**אמינות LLM**. שמור על סוכני AI שלך אמינים וקטנו בעצמאות על פני **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI**, וה**Agents SDK**. -סוכני AI נכשלים בדרכים צפויות. הם מפעילים פקודות הרסניות, מדליפים סודות, חורגים מהמטלה, תקועים בלולאות, או דוחפים ישירות לענף הראשי. אם משאירים ללא פקוח עין, כשלים קטנים מתגברים להפסקות, דליפות אישורים, והפסד עבודה. +סוכני AI נכשלים בדרכים צפויות. הם מריצים פקודות הרסניות, דולפים סודיות, סוטים מהמשימה, נתקעים בלולאות, או דוחפים ישירות ל-main. ללא השגחה, כישלונות קטנים הופכים להפסקות, דליפות בפרטי גישה, והעבודה שאבדה. -FailproofAI פותרת זאת עם **מדיניויות**. כללים אלה מתחברים לכל קריאת כלי סוכן כדי **לגלות כשלים**, **להפחית אותם** (חסום, הנחה, טיהור), ו**התריע עליך** כשמשהו דורש תשומת לב. לוח מחוונים מקומי מאפשר לך לסקור כל קריאת כלי, כשל סוכן, ופעולת התאוששות לאחר מכן. +FailproofAI פותר זאת עם **מדיניויות**. כללים אלה תופסים בכל קריאת כלי סוכן כדי **לגלות כישלונות**, **להקל עליהם** (חסימה, הוראה, עיקום), ו**להודיע לך** כאשר משהו זקוק לתשומת לב. לוח מחוונים מקומי מאפשר לך לבדוק כל קריאת כלי, כישל סוכן, ופעולת התאוששות בעתיד. -אין נתונים משאירים את המכונה שלך. +תמלילים והערכת מדיניות נשארים במחשב שלך. נתונים נשלחים רק כאשר אתה משתמש במפורש בתכונה מקוונת, כגון תזכורות ביקורת מאומתות או הזמנות. ## התחל - חסום פקודות הרסניות, מנע דליפות סודות, שמור סוכנים בתוך גבולות הפרויקט, ועוד. הכל מחוץ לקופסה. + חסום פקודות הרסניות, מנע דליפות סודיות, שמור סוכנים בתוך גבולות פרויקט, ועוד. הכל מתוך הקופסה. - כתוב כללים שלך בـ JavaScript עם API פשוט של allow / deny / instruct. + כתוב את הכללים שלך ב-JavaScript עם API פשוט של allow / deny / instruct. - - ראה מה עשו הסוכנים שלך בזמן שהיית רחוק. עיין בהפעלות, בדוק קריאות כלים, סקור איפה נשרפו המדיניויות. + + ראה מה עשו הסוכנים שלך בזמן שלא היית. עיין בהפעלות, בדוק קריאות כלים, סקור איפה מדיניויות הנפיקו. - כוונן כל מדיניות ללא קוד. הגדר רשימות אישור, ענפים מוגנים, או סף לפרויקט או בעולם. + כייל כל מדיניות ללא קוד. הגדר רשימות היתר, ענפים מוגנים, או סף לכל פרויקט או גלובלי. @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # enable policies (or skip — `failproofai` will offer to set them up on first run) -failproofai # launch the dashboard +failproofai policies --install # הפעל מדיניויות (או דלג — `failproofai` יציע להגדיר אותן בהפעלה הראשונה) +failproofai # הפעל את לוח המחוונים ``` -ראה את מדריך [התחלה](/he/getting-started) להסבר מלא. \ No newline at end of file +ראה את מדריך [התחלה](/he/getting-started) לעבור מלא. \ No newline at end of file diff --git a/docs/hi/dashboard.mdx b/docs/hi/dashboard.mdx index 41dac30c..dbc60f2f 100644 --- a/docs/hi/dashboard.mdx +++ b/docs/hi/dashboard.mdx @@ -1,10 +1,10 @@ --- title: डैशबोर्ड -description: "एजेंट सेशन की निगरानी करें, टूल कॉल की समीक्षा करें, और नीतियों को प्रबंधित करें" +description: "एजेंट सेशन की निगरानी करें, टूल कॉल की समीक्षा करें, और नीतियों का प्रबंधन करें" icon: chart-line --- -failproofai डैशबोर्ड आपके AI एजेंट सेशन की निगरानी करने और नीतियों को प्रबंधित करने के लिए एक स्थानीय वेब एप्लिकेशन है। देखें कि आपके एजेंट आपकी अनुपस्थिति में क्या कर रहे थे। +failproofai डैशबोर्ड आपके AI एजेंट सेशन की निगरानी करने और नीतियों का प्रबंधन करने के लिए एक स्थानीय वेब एप्लिकेशन है। देखें कि आपके एजेंट आपके दूर रहते हुए क्या करते थे। --- @@ -16,89 +16,89 @@ failproofai `http://localhost:8020` पर खुलता है। -डैशबोर्ड स्थानीय प्रोजेक्ट, सेशन और failproofai कॉन्फ़िगरेशन डेटा को सीधे फाइलसिस्टम से पढ़ता है। ऑडिट रिमाइंडर और आमंत्रण जैसी वैकल्पिक प्रमाणित सुविधाएँ इन अनुरोधों के लिए आवश्यक जानकारी, जिसमें ईमेल पते शामिल हैं, रिमोट API को भेजती हैं। +डैशबोर्ड स्थानीय प्रोजेक्ट, सेशन, और failproofai कॉन्फ़िगरेशन डेटा सीधे फाइलसिस्टम से पढ़ता है। वैकल्पिक प्रमाणित सुविधाएं, जैसे ऑडिट रिमाइंडर और आमंत्रण, इन अनुरोधों के लिए आवश्यक जानकारी (ईमेल पते सहित) को दूरस्थ API को भेजते हैं। --- ## पृष्ठ -### प्रोजेक्ट +### प्रोजेक्ट्स -आपकी मशीन पर मिले सभी Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, और Hermes प्रोजेक्ट सूचीबद्ध करता है। Claude प्रोजेक्ट `~/.claude/projects/` से खोजे जाते हैं (या `CLAUDE_PROJECTS_PATH` द्वारा निर्धारित पथ); Codex प्रोजेक्ट `~/.codex/sessions///
/*.jsonl` के तहत प्रत्येक ट्रांसक्रिप्ट को स्कैन करके और प्रत्येक सेशन के पहले रिकॉर्ड में दर्ज `cwd` के अनुसार समूहबद्ध करके खोजे जाते हैं; Copilot CLI प्रोजेक्ट प्रत्येक `~/.copilot/session-state//workspace.yaml` को स्कैन करके खोजे जाते हैं (`COPILOT_HOME` के माध्यम से कॉन्फ़िगर करने योग्य) और इसके `cwd` फील्ड के अनुसार समूहबद्ध किए जाते हैं; Cursor Agent प्रोजेक्ट `~/.cursor/agent-sessions//` के तहत प्रति-सेशन मेटाडेटा को स्कैन करके खोजे जाते हैं (`CURSOR_HOME` के माध्यम से कॉन्फ़िगर करने योग्य, `conversations/` और `sessions/` को फॉलबैक के रूप में जांचा जाता है) `meta.json` / `session.json` / `workspace.yaml` में `cwd` स्केलर के लिए; OpenCode प्रोजेक्ट `~/.local/share/opencode/opencode.db` पर इसके SQLite DB को `opencode db --format json` के माध्यम से क्वेरी करके खोजे जाते हैं (हम `session` और `project` तालिकाएं पढ़ते हैं और `project_id` के अनुसार समूहबद्ध करते हैं); Pi प्रोजेक्ट `~/.pi/agent/sessions//_.jsonl` के तहत प्रति-सेशन JSONL ट्रांसक्रिप्ट को स्कैन करके खोजे जाते हैं (`PI_SESSIONS_DIR` के माध्यम से कॉन्फ़िगर करने योग्य) और प्रत्येक सेशन के पहले रिकॉर्ड से `cwd` निकाला जाता है; Hermes गेटवे सेशन सीधे इसके SQLite स्टोर से `~/.hermes/state.db` पर पढ़े जाते हैं (`HERMES_DB_PATH` के माध्यम से कॉन्फ़िगर करने योग्य) और `source` के अनुसार `hermes-` प्रोजेक्ट में समूहबद्ध किए जाते हैं (Slack/Telegram/cli/cron — गेटवे सेशन का कोई cwd नहीं है)। एक प्रोजेक्ट जिसे कई CLI द्वारा उपयोग किया गया है, एक एकल पंक्ति के रूप में सभी मेल खाने वाले बैज के साथ प्रदर्शित होता है। सारणी के ऊपर **CLI** ड्रॉपडाउन का उपयोग करके किसी विशिष्ट एजेंट CLI द्वारा फ़िल्टर करें; URL आपके चयन को `?cli=claude|codex|copilot|cursor|opencode|pi|hermes` के रूप में संरक्षित करता है। +आपकी मशीन पर मिले सभी Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, और Goose प्रोजेक्ट्स को सूचीबद्ध करता है। Claude प्रोजेक्ट्स `~/.claude/projects/` से खोजे जाते हैं (या `CLAUDE_PROJECTS_PATH` द्वारा सेट किए गए पथ से); Codex प्रोजेक्ट्स `~/.codex/sessions///
/*.jsonl` के तहत हर ट्रांसक्रिप्ट को स्कैन करके और प्रत्येक सेशन के पहले रिकॉर्ड में दर्ज `cwd` के आधार पर समूहित करके खोजे जाते हैं; Copilot CLI प्रोजेक्ट्स प्रत्येक `~/.copilot/session-state//workspace.yaml` को स्कैन करके (`COPILOT_HOME` के माध्यम से कॉन्फ़िगरेबल) और इसके `cwd` फील्ड के आधार पर समूहित करके खोजे जाते हैं; Cursor Agent प्रोजेक्ट्स `~/.cursor/agent-sessions//` के तहत प्रति-सेशन मेटाडेटा को स्कैन करके (`CURSOR_HOME` के माध्यम से कॉन्फ़िगरेबल, `conversations/` और `sessions/` को फॉलबैक के रूप में जांचा जाता है) `meta.json` / `session.json` / `workspace.yaml` में `cwd` स्केलर के लिए खोजे जाते हैं; OpenCode प्रोजेक्ट्स `~/.local/share/opencode/opencode.db` पर इसके SQLite DB को `opencode db --format json` के माध्यम से क्वेरी करके खोजे जाते हैं (`session` और `project` टेबल पढ़ते हैं और `project_id` के आधार पर समूहित करते हैं); Pi प्रोजेक्ट्स `~/.pi/agent/sessions//_.jsonl` के तहत प्रति-सेशन JSONL ट्रांसक्रिप्ट को स्कैन करके (`PI_SESSIONS_DIR` के माध्यम से कॉन्फ़िगरेबल) और प्रत्येक सेशन के पहले रिकॉर्ड से `cwd` खींचकर खोजे जाते हैं; Hermes गेटवे सेशन सीधे `~/.hermes/state.db` पर इसके SQLite स्टोर से पढ़े जाते हैं (`HERMES_DB_PATH` के माध्यम से कॉन्फ़िगरेबल) और `source` (Slack/Telegram/cli/cron) के आधार पर `hermes-` प्रोजेक्ट्स में समूहित किए जाते हैं — गेटवे सेशन में कोई cwd नहीं होता; OpenClaw गेटवे सेशन `~/.openclaw/agents//sessions/*.jsonl` से पढ़े जाते हैं और `openclaw-` प्रोजेक्ट्स में समूहित किए जाते हैं (cwd के बिना भी); Factory Droid प्रोजेक्ट्स `~/.factory/sessions//*.jsonl` पर JSONL ट्रांसक्रिप्ट से खोजे जाते हैं और cwd के आधार पर समूहित किए जाते हैं; Devin प्रोजेक्ट्स `~/.local/share/devin/cli/sessions.db` पर इसके SQLite DB से (प्रत्येक सेशन के `working_directory` के आधार पर समूहित); Antigravity प्रोजेक्ट्स `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` पर JSONL ट्रांसक्रिप्ट से और cwd के आधार पर समूहित; और Goose प्रोजेक्ट्स `~/.local/share/goose/sessions/sessions.db` पर इसके SQLite DB से (प्रत्येक सेशन के `working_dir` के आधार पर समूहित)। एक प्रोजेक्ट जिसे कई CLI द्वारा उपयोग किया गया है वह सभी मेलिंग बैज के साथ एक एकल पंक्ति के रूप में प्रस्तुत होता है। तालिका के ऊपर **CLI** ड्रॉपडाउन का उपयोग करके एक विशिष्ट एजेंट CLI द्वारा फ़िल्टर करें; URL आपकी पसंद को `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` के रूप में संरक्षित करता है। प्रत्येक प्रोजेक्ट दिखाता है: - प्रोजेक्ट नाम (फोल्डर पथ से व्युत्पन्न) -- एक CLI बैज — `Claude Code` (नारंगी), `OpenAI Codex` (बैंगनी), `GitHub Copilot` (नीला), `Cursor Agent` (पन्ना), `OpenCode` (एम्बर), `Pi` (गुलाबी), और/या `Hermes` (गहरा नीला) -- सबसे हाल की सेशन गतिविधि की तारीख +- एक CLI बैज — `Claude Code` (नारंगी), `OpenAI Codex` (बैंगनी), `GitHub Copilot` (नीला), `Cursor Agent` (पन्ना हरा), `OpenCode` (एम्बर), `Pi` (गुलाबी), और/या `Hermes` (गहरा नीला) +- सबसे हाल के सेशन गतिविधि की तारीख एक प्रोजेक्ट पर क्लिक करके इसके सेशन देखें। ### सेशन -एक प्रोजेक्ट के भीतर सभी सेशन सूचीबद्ध करता है। प्रत्येक सेशन दिखाता है: +एक प्रोजेक्ट के भीतर सभी सेशन को सूचीबद्ध करता है। प्रत्येक सेशन दिखाता है: - सेशन ID -- प्रारंभ और समाप्ति टाइमस्टैम्प +- शुरुआत और समाप्त समय - टूल कॉल की संख्या -- हुक गतिविधि गणना (नीतियां जो सक्रिय हुईं) +- हुक गतिविधि की गणना (नीतियां जो फायर हुईं) -सूची को संकीर्ण करने के लिए दिनांक श्रेणी फ़िल्टर और सेशन ID खोज का उपयोग करें। सेशन पृष्ठांकित हैं। +तारीख की सीमा फ़िल्टर और सेशन ID खोज का उपयोग करके सूची को संकुचित करें। सेशन पृष्ठाकृत हैं। -सेशन दर्शक खोलने के लिए एक सेशन पर क्लिक करें। +एक सेशन पर क्लिक करके सेशन व्यूअर खोलें। -### सेशन दर्शक +### सेशन व्यूअर -सेशन दर्शक स्वायत्त एजेंट के लिए मुख्य प्रश्न का उत्तर देता है: एजेंट ने क्या किया, और क्या वह ट्रैक पर रहा? शीर्षलेख के बगल में एक CLI बैज इंगित करता है कि सेशन Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, या Hermes ट्रांसक्रिप्ट है। यह एक सेशन में हुई हर चीज की एक टाइमलाइन दिखाता है: +सेशन व्यूअर स्वायत्त एजेंट के लिए मुख्य प्रश्न का उत्तर देता है: एजेंट ने क्या किया, और क्या यह ट्रैक पर रहा? हेडर के बगल में एक CLI बैज इंगित करता है कि सेशन एक Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, या Goose ट्रांसक्रिप्ट है। यह एक सेशन में हुई हर चीज की एक समयरेखा दिखाता है: -- **संदेश** - Claude के टेक्स्ट प्रतिक्रियाएं और उपयोगकर्ता संकेत -- **टूल कॉल** - हर टूल जो Claude ने आह्वान किया, इसके इनपुट और आउटपुट के साथ -- **नीति गतिविधि** - प्रत्येक टूल कॉल के लिए, कौन सी नीतियां सक्रिय हुईं और उन्होंने कौन सा निर्णय लिया +- **संदेश** - Claude के पाठ प्रतिक्रियाएं और उपयोगकर्ता प्रॉम्प्ट +- **टूल कॉल** - प्रत्येक टूल जो Claude ने आह्वान किया, इसके इनपुट और आउटपुट के साथ +- **नीति गतिविधि** - प्रत्येक टूल कॉल के लिए, कौन सी नीतियां फायर हुईं और उन्होंने क्या निर्णय लौटाया -शीर्ष पर सांख्यिकी बार सेशन की अवधि, कुल टूल कॉल, और हुक निर्णयों का सारांश दिखाता है (अनुमति / अस्वीकृति / निर्देश गणना)। +शीर्ष पर स्टैट्स बार सेशन अवधि, कुल टूल कॉल, और हुक निर्णयों का सारांश (allow / deny / instruct गणना) दिखाता है। -सेशन निर्यात करने के लिए **डाउनलोड लॉग** बटन पर क्लिक करें। Claude Code, Codex, Copilot, Cursor, और Pi सेशन के लिए आप मूल ऑन-डिस्क JSONL ट्रांसक्रिप्ट बाइट-दर-बाइट प्राप्त करते हैं; OpenCode के लिए (जिसके सेशन SQLite में रहते हैं, डिस्क पर नहीं) आप एक JSON दस्तावेज प्राप्त करते हैं जो अंतर्निहित `session` / `messages` / `parts` तालिकाओं को प्रतिबिंबित करता है। +**Download Logs** बटन पर क्लिक करके सेशन को निर्यात करें। Claude Code, Codex, Copilot, Cursor, और Pi सेशन के लिए आप मूल ऑन-डिस्क JSONL ट्रांसक्रिप्ट बाइट-के-लिए-बाइट प्राप्त करते हैं; OpenCode के लिए (जिसके सेशन SQLite में हैं, डिस्क पर नहीं) आप एक JSON दस्तावेज़ प्राप्त करते हैं जो अंतर्निहित `session` / `messages` / `parts` टेबल को प्रतिबिंबित करता है। ### ऑडिट -आपके एजेंट के पिछले सेशन में वास्तव में कैसे व्यवहार किया गया है, इस बारे में एक व्यक्तित्व-चालित रिपोर्ट। `failproofai audit` CLI के समान स्कैन चलाता है लेकिन इसे एक एकल-स्क्रीन शेयरेबल पोस्टर + चार नीचे-फोल्ड अनुभाग के रूप में प्रदान करता है: +आपके एजेंट के बारे में एक व्यक्तित्व-संचालित रिपोर्ट कि वह वास्तव में अतीत के सेशन में कैसा व्यवहार कर रहा है। `failproofai audit` CLI के समान स्कैन चलाता है लेकिन इसे एक एकल-स्क्रीन शेयरेबल पोस्टर + चार नीचे-द-फोल्ड सेक्शन के रूप में प्रस्तुत करता है: -1. **पोस्टर** — पहले व्यूपोर्ट को भरता है। failproof_ai वर्डमार्क + ऑडिट लेबल के साथ स्व-निहित PNG-कैप्चर क्षेत्र · आर्केटाइप इंडेक्स (`№ NN of 08`) + ऑडिट तारीख · संख्यात्मक स्कोर (0–100) + प्रतिशत रैंक गोली (`top 15%`) · आर्केटाइप नाम (एक `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost` में से) + 3-कीवर्ड पट्टी · `// only N% of agents are this archetype` दुर्लभता लाइन · 8×8 पिक्सल सिगिल टाइल · `audit yours → failproof.ai` फुटर। तीन शेयर बटन कैप्चर बॉक्स के बाहर बैठते हैं: `post your archetype` (X इरादा), `share on linkedin`, `download poster`। कैप्चर `html-to-image` के माध्यम से चलता है इसलिए PNG ऑन-स्क्रीन रेंडर से पिक्सल-दर-पिक्सल मेल खाता है (डैश किए गए बॉर्डर, SVG लोगो मास्क, ग्रेडिएंट, फ़ॉन्ट मेट्रिक्स — सभी संरक्षित)। -2. **शक्तियां** — शांत ✓ पंक्ति सूची के व्यवहार आपके एजेंट पहले से ही सही कर रहे हैं, लाइव ऑडिट डेटा से व्युत्पन्न (स्वच्छ टूल-कॉल दर, मुख्य में कोई सीधा पुश नहीं, शून्य क्रेडेंशियल लीक, शून्य पुनः प्रयास तूफान) — प्रत्येक तभी सामने आता है जब प्रासंगिक नीति के पास ऑडिट विंडो में एक स्वच्छ रिकॉर्ड हो। -3. **विचित्रताएं** — तालिका जो आगे बढ़ गया, गंभीरता के आधार पर क्रमबद्ध: `when · what slipped + the policy that would've caught it · severity pill · seen`, जहां पुनरावृत्ति `new` (एक बार), `N× seen` (2–9 बार), या `recurring` (10+) पढ़ता है। -4. **कैसे सुधारें** — शांत पंक्ति सूची, एक प्रति निर्धारित नीति: नीति नाम सफेद में, एक-पंक्ति विवरण, स्थापना आदेश + दाईं ओर कॉपी बटन। अनुभाग शीर्षलेख `enable all N → projected · ` पढ़ता है (वह स्कोर जो आप हर सुधार लागू करने के साथ पहुंचेंगे), और इसका `[install all]` बटन प्रत्येक निर्धारित नीति के लिए संयुक्त `failproofai policy add a b c …` कमांड को कॉपी करता है। -5. **बेहतर वापस आएं** — दो साथ-साथ कार्ड। बाएं: एक रिमाइंडर सेट करें (`3d` / `7d` / `14d` / `30d` कैडेंस पिकर; `/api/auth/reminder` के माध्यम से प्रमाणित होने के बाद बना रहता है)। दाएं: failproof विशेषाधिकार अनलॉक करें — `invite a friend` एक मोडल खोलता है जो अल्पविराम/स्पेस/न्यूलाइन-अलग दोस्त ईमेल की एक सूची लेता है (प्रति भेजने में अधिकतम 10), उन्हें `/api/audit/invite` को POST करता है, जो api-server के `POST /v0/invite` को अग्रेषित करता है। api-server प्रत्येक प्राप्तकर्ता को `invite@failproof.ai` से एक ईमेल भेजता है प्रेषक Cc'd और `Reply-To` सेट के साथ, इसलिए प्राप्तकर्ता देखता है कि किसने उन्हें आमंत्रित किया और प्रेषक को अपने इनबॉक्स में एक प्रति मिलती है। गुमनाम उपयोगकर्ता `AuthDialog` के माध्यम से रूट किए जाते हैं इसलिए आमंत्रण के बाहर जाने से पहले प्रेषक का ईमेल ज्ञात होता है। अधिकार / विशेषाधिकार पूर्ति एक अनुवर्ती है। +1. **पोस्टर** — पहले व्यूपोर्ट को भरता है। failproof_ai शब्दचिह्न + ऑडिट लेबल के साथ स्व-निहित PNG-कैप्चर क्षेत्र · आर्कटाइप इंडेक्स (`№ NN of 08`) + ऑडिट तारीख · संख्यात्मक स्कोर (0–100) + प्रतिशत रैंक गोली (`top 15%`) · आर्कटाइप नाम (एक `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost` में से) + 3-कीवर्ड पट्टी · `// only N% of agents are this archetype` दुर्लभता पंक्ति · 8×8 पिक्सेल sigil टाइल · `audit yours → failproof.ai` फुटर। तीन शेयर बटन कैप्चर बॉक्स के बाहर बैठते हैं: `post your archetype` (X intent), `share on linkedin`, `download poster`। कैप्चर `html-to-image` के माध्यम से चलता है इसलिए PNG ऑन-स्क्रीन रेंडर पिक्सल-के-लिए-पिक्सल से मेल खाता है (डैश की गई सीमाएं, SVG लोगो मास्क, ग्रेडिएंट, फॉन्ट मेट्रिक्स — सभी संरक्षित)। +2. **शक्तियां** — शांत ✓ पंक्ति सूची आपके एजेंट के व्यवहार जो पहले से ही सही हैं, लाइव ऑडिट डेटा से व्युत्पन्न (स्वच्छ टूल-कॉल दर, मुख्य के लिए कोई सीधे पुश नहीं, शून्य क्रेडेंशियल लीक, शून्य रिट्राई तूफान) — प्रत्येक केवल तब सामने आया जब प्रासंगिक नीति में ऑडिट विंडो में स्वच्छ रिकॉर्ड होता है। +3. **Quirks** — सारणी कि क्या फिसल गया, गंभीरता के आधार पर रैंक किया गया: `when · what slipped + the policy that would've caught it · severity pill · seen`, जहां पुनरावृत्ति `new` (एक बार), `N× seen` (2–9 बार), या `recurring` (10+) को पढ़ता है। +4. **कैसे सुधारें** — शांत पंक्ति सूची, निर्धारित प्रत्येक नीति के लिए एक: नीति का नाम सफेद में, एक-पंक्ति विवरण, दाईं ओर स्थापन आदेश + कॉपी बटन। सेक्शन हेडर `enable all N → projected · ` को पढ़ता है (वह स्कोर जिस तक आप हर सुधार लागू करने के साथ पहुंचते हैं), और इसका `[install all]` बटन हर निर्धारित नीति के लिए संयुक्त `failproofai policy add a b c …` आदेश को कॉपी करता है। +5. **Come back better** — दो पक्ष-दर-पक्ष कार्ड। बाएं: एक रिमाइंडर सेट करें (`3d` / `7d` / `14d` / `30d` कैडेंस पिकर; `/api/auth/reminder` के माध्यम से प्रमाणित होने के बाद जारी रहता है)। दाएं: failproof सुविधाओं को अनलॉक करें — `invite a friend` एक मोडल खोलता है जो अल्पविराम/स्पेस/न्यूलाइन-अलग सूची को मित्र ईमेल (प्रति भेजे अधिकतम 10) लेता है, उन्हें `/api/audit/invite` को POST करता है, जो api-server के `POST /v0/invite` को अग्रेषित करता है। api-server `invite@failproof.ai` से प्रत्येक प्राप्तकर्ता को एक ईमेल भेजता है जिसमें प्रेषक Cc'd होता है और `Reply-To` सेट होता है, इसलिए प्राप्तकर्ता देखता है कि किसने उन्हें आमंत्रित किया और प्रेषक को उनके इनबॉक्स में एक प्रति मिलता है। गुमनाम उपयोगकर्ता `AuthDialog` के माध्यम से मार्ग किए जाते हैं ताकि आमंत्रण बाहर जाने से पहले प्रेषक की ईमेल ज्ञात हो। Entitlement / perks की पूर्ति एक अनुवर्ती है। -`failproofai audit` रनटाइम द्वारा संचालित — अंतर्निहित स्कैन इंजन, समर्थित झंडे, और प्रति-ट्रांसक्रिप्ट कैश इनवेरिएंट के लिए [Audit CLI](/hi/cli/audit) देखें। डैशबोर्ड सबसे हाल का परिणाम `~/.failproofai/audit-dashboard.json` पर कैश करता है (मोड `0600`, एकल स्लॉट, नए रन ओवरराइट करते हैं) इसलिए पुनः दौरे तत्काल हैं; **पढ़ने पर प्रति-ट्रांसक्रिप्ट और संपूर्ण-परिणाम दोनों कैश अस्वीकृत कर दिए जाते हैं एक बार वे 7 दिन से पुराने हो जाते हैं** इसलिए डैशबोर्ड कभी भी एक सप्ताह पुराना परिणाम चुप रहकर प्रदान नहीं करता है — TTL के पास `/audit` अपनी खाली स्थिति में गिरता है और एक ताजा रन के लिए संकेत देता है। रिपोर्ट के नीचे के पास `[ re-audit now ]` पर क्लिक करना `noCache: true` के साथ `/api/audit/run` को POST करता है — पुनः-ऑडिट प्रति-ट्रांसक्रिप्ट कैश को बाईपास करता है और प्रत्येक ट्रांसक्रिप्ट को शुरुआत से स्कैन करता है बजाय चुप रहकर कैश किए गए परिणाम को लौटाने के — और डैशबोर्ड रन समाप्त होने तक 1Hz पर `/api/audit/status` को पोल करता है; एक चिपचिपी गुलाबी प्रगति पट्टी रन के दौरान व्यूपोर्ट के शीर्ष पर खुद को पिन करती है एक समय बीता टाइमर के साथ, और सफलता पर ताजा परिणाम जगह में स्वैप करता है (कोई पूर्ण-पृष्ठ पुनः लोड नहीं; एक विफल पुनः-ऑडिट पूर्व रिपोर्ट को अक्षुण्ण छोड़ता है)। विफलता पर पट्टी `RerunError.kind` (`timeout` / `network` / `post_failed`) से कॉपी किए गए लाल हो जाती है। खाली स्थिति (कोई कैश या समाप्त नहीं) और शून्य-सेशन स्थिति (कैश मौजूद है लेकिन स्कैन को कोई ट्रांसक्रिप्ट नहीं मिली) अलग से सामने आती हैं। +`failproofai audit` रनटाइम द्वारा संचालित — अंतर्निहित स्कैन इंजन, समर्थित फ़्लैग, और प्रति-ट्रांसक्रिप्ट कैश अपरिवर्तनीयों के लिए [Audit CLI](/hi/cli/audit) देखें। डैशबोर्ड सबसे हाल के परिणाम को `~/.failproofai/audit-dashboard.json` पर कैश करता है (मोड `0600`, एकल स्लॉट, नए रन अधिलेखित करते हैं) ताकि पुनरावृत्तियां तत्काल हों; **पढ़ने पर एक बार 7 दिनों से पुराने होने के बाद प्रति-ट्रांसक्रिप्ट और पूरे-परिणाम दोनों कैश अस्वीकृत हैं** इसलिए डैशबोर्ड कभी भी एक सप्ताह-पुराने परिणाम को चुपचाप सेवा नहीं देता — TTL के पास `/audit` अपनी खाली स्थिति में गिरता है और एक ताज़ा रन का संकेत देता है। रिपोर्ट के नीचे `[ re-audit now ]` पर क्लिक करने से `/api/audit/run` को `noCache: true` के साथ POST करता है — पुनः-ऑडिट प्रति-ट्रांसक्रिप्ट कैश को बायपास करता है और हर ट्रांसक्रिप्ट को शुरुआत से फिर से स्कैन करता है बजाय कैश किए गए परिणाम को चुपचाप लौटाने के — और डैशबोर्ड 1Hz पर `/api/audit/status` को पोल करता है जब तक रन खत्म नहीं हो जाता; रन के दौरान एक स्टिकी गुलाबी प्रगति पट्टी व्यूपोर्ट के शीर्ष पर पिन करता है एक बीता हुआ टाइमर के साथ, और ताज़ा परिणाम सफलता पर जगह में स्वैप करता है (कोई पूर्ण-पृष्ठ पुनः लोड नहीं; एक विफल पुनः-ऑडिट पूर्व रिपोर्ट को बरकरार रखता है)। विफलता पर पट्टी `RerunError.kind` को बंद करके कॉपी के साथ लाल हो जाता है (`timeout` / `network` / `post_failed`)। खाली स्थिति (कोई कैश नहीं या समाप्त) और शून्य-सेशन स्थिति (कैश मौजूद है लेकिन स्कैन ने कोई ट्रांसक्रिप्ट नहीं पाया) अलग-अलग सामने आते हैं। ### नीतियां -नीतियों को प्रबंधित करने और गतिविधि की समीक्षा करने के लिए एक दो-टैब पृष्ठ। +नीतियों का प्रबंधन करने और गतिविधि की समीक्षा करने के लिए एक दो-टैब पृष्ठ। - - - एकल पैनल से failproofai किस एजेंट CLI की रक्षा करता है, इसे बहु-चयन करें — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, और Hermes सभी के पास स्थापना स्थिति (`Active` / `Detected` / `Inactive`) वाली एक पंक्ति है, उपयोगकर्ता-स्कोप सेटिंग्स पथ, और एक ब्रांड-रंगीन उच्चारण। आप जिन CLI चाहते हैं उन्हें चेक करें या अनचेक करें और `Apply changes` पर क्लिक करके एक चरण में इंस्टॉल/अनइंस्टॉल करने के लिए अंतर लागू करें। CLI जिनके बाइनरी को PATH पर पता चला है, पूर्व-जांच किए जाते हैं। - - एकल क्लिक के साथ व्यक्तिगत नीतियों को चालू या बंद करें (`~/.failproofai/policies-config.json` में लिखते हैं — हर इंस्टॉल किए गए CLI में साझा) - - एक नीति का विस्तार करके इसके पैरामीटर को कॉन्फ़िगर करें (उन नीतियों के लिए जो `policyParams` को समर्थन करती हैं) - - एक कस्टम नीति फाइल पथ सेट करें + + - एक एकल पैनल से failproofai कौन से एजेंट CLI की रक्षा करता है इसे बहु-चयन करें — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, और Hermes सभी में स्थापन स्थिति (`Active` / `Detected` / `Inactive`) के साथ एक पंक्ति है, उपयोगकर्ता-दायरा सेटिंग्स पथ, और एक ब्रांड-रंगीन उच्चारण। आप जो CLI चाहते हैं उन्हें चेक या अनचेक करें और `Apply changes` पर क्लिक करके एक चरण में इंस्टॉल/अनइंस्टॉल करें। CLI जिनका बाइनरी PATH पर पाया जाता है वह पूर्व-चेक किए जाते हैं। + - एक एकल क्लिक के साथ अलग-अलग नीतियों को चालू या बंद करें (`~/.failproofai/policies-config.json` में लिखता है — हर स्थापित CLI में साझा) + - एक नीति को इसके पैरामीटर को कॉन्फ़िगर करने के लिए विस्तारित करें (नीतियों के लिए जो `policyParams` को समर्थन करती हैं) + - एक कस्टम नीतियां फ़ाइल पथ सेट करें - - - सभी सेशन में फायर किए गए प्रत्येक हुक ईवेंट का पूर्ण पृष्ठांकित इतिहास - - निर्णय, ईवेंट प्रकार, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), नीति नाम, या सेशन ID द्वारा फ़िल्टर करें - - प्रत्येक पंक्ति दिखाती है: टाइमस्टैम्प, नीति नाम, निर्णय, CLI बैज (नारंगी = Claude Code, बैंगनी = OpenAI Codex, नीला = GitHub Copilot, पन्ना = Cursor Agent, एम्बर = OpenCode, गुलाबी = Pi, गहरा नीला = Hermes), टूल नाम, सेशन ID, और अस्वीकृति/निर्देश निर्णयों का कारण - - ट्रांसक्रिप्ट खोलने के लिए एक सेशन ID पर क्लिक करें — दर्शक स्वचालित रूप से पता लगाता है कि कौन सा CLI हुक को आग लगाया (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) और शीर्षलेख में मेल खाने वाले CLI बैज को प्रदान करता है + + - सभी सेशन में फायर की गई हर हुक घटना का पूर्ण पृष्ठाकृत इतिहास + - निर्णय, घटना प्रकार, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), नीति नाम, या सेशन ID द्वारा फ़िल्टर करें + - प्रत्येक पंक्ति दिखाता है: टाइमस्टैम्प, नीति नाम, निर्णय, CLI बैज (नारंगी = Claude Code, बैंगनी = OpenAI Codex, नीला = GitHub Copilot, पन्ना हरा = Cursor Agent, एम्बर = OpenCode, गुलाबी = Pi, गहरा नीला = Hermes, टील = OpenClaw, गुलाब = Factory Droid, बैंगनी = Devin, सियान = Antigravity, नींबू = Goose), टूल नाम, सेशन ID, और अनुमति/निर्देश निर्णय के कारण + - एक सेशन ID पर क्लिक करके इसके ट्रांसक्रिप्ट को खोलें — व्यूअर स्वचालित रूप से पहचानता है कि कौन सा CLI हुक फायर किया (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) और हेडर में मेलिंग CLI बैज को प्रस्तुत करता है --- -## स्वचालित रीफ्रेश +## स्वचालित ताज़ा करना -डैशबोर्ड के शीर्ष नेविगेशन में एक स्वचालित-रीफ्रेश टॉगल है। सक्षम होने पर, वर्तमान पृष्ठ नए सेशन और नीति गतिविधि दिखाने के लिए आवधिक रूप से रीफ्रेश होता है जैसे वे प्रकट होते हैं। दीर्घकालिक स्वायत्त एजेंट सेशन की निगरानी के लिए आवश्यक। +डैशबोर्ड में शीर्ष नेविगेशन में एक स्वचालित-ताज़ा टॉगल है। जब सक्षम किया जाता है, तो वर्तमान पृष्ठ नए सेशन और नीति गतिविधि दिखाने के लिए आवधिक रूप से ताज़ा करता है क्योंकि वे दिखाई देते हैं। लंबे समय तक चलने वाले स्वायत्त एजेंट सेशन की निगरानी के लिए आवश्यक। --- -## पृष्ठ अक्षम करना +## पृष्ठों को अक्षम करना -यदि आपको डैशबोर्ड के केवल कुछ भाग की आवश्यकता है, तो `FAILPROOFAI_DISABLE_PAGES` को अल्पविराम-अलग पृष्ठ नामों की सूची पर सेट करें: +यदि आपको डैशबोर्ड के केवल कुछ हिस्से की आवश्यकता है, तो `FAILPROOFAI_DISABLE_PAGES` को पृष्ठ नामों की अल्पविराम-अलग सूची में सेट करें: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -108,9 +108,9 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai --- -## प्रोजेक्ट पथ कॉन्फ़िगर करना +## प्रोजेक्ट्स पथ को कॉन्फ़िगर करना -डिफ़ॉल्ट रूप से, डैशबोर्ड मानक Claude Code प्रोजेक्ट निर्देशिका से पढ़ता है। कस्टम सेटअप के लिए इसे ओवरराइड करें: +डिफ़ॉल्ट रूप से, डैशबोर्ड मानक Claude Code प्रोजेक्ट्स निर्देशिका से पढ़ता है। कस्टम सेटअप के लिए इसे ओवरराइड करें: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -118,21 +118,21 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai --- -## गैर-localhost होस्ट से एक्सेस करना +## एक गैर-localhost होस्ट से एक्सेस करना -जब डैशबोर्ड को **dev मोड** (`npm run dev`) में चला रहे हैं और इसे `localhost` के अलावा किसी होस्टनाम से एक्सेस कर रहे हैं - उदाहरण के लिए, एक कस्टम डोमेन, एक रिमोट IP, या एक सुरंग किए गए URL - आप यह चेतावनी देख सकते हैं: +जब डैशबोर्ड को **dev mode** में (`npm run dev`) चलाते हैं और इसे `localhost` के अलावा किसी अन्य होस्टनाम से एक्सेस करते हैं - उदाहरण के लिए, एक कस्टम डोमेन, एक दूरस्थ IP, या एक टनेल की गई URL — आप इस तरह की चेतावनी देख सकते हैं: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -यह Next.js इसके HMR (हॉट मॉड्यूल रीलोड) वेबसॉकेट के लिए क्रॉस-ऑरिजिन एक्सेस को ब्लॉक कर रहा है, जो एक dev-only सुविधा है। आपके होस्ट को अनुमति देने के लिए, `--allowed-origins` फ्लैग का उपयोग करें: +यह Next.js अपने HMR (hot module reload) वेबसॉकेट के लिए क्रॉस-ऑरिजिन एक्सेस को ब्लॉक करना है, जो एक dev-only सुविधा है। अपने होस्ट को अनुमति देने के लिए, `--allowed-origins` फ़्लैग का उपयोग करें: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -कई होस्ट या IP के लिए, अल्पविराम-अलग सूची पास करें: +कई होस्ट या IP के लिए, एक अल्पविराम-अलग सूची पास करें: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -यह केवल dev मोड पर लागू होता है। `failproofai` (उत्पादन मोड) चलाते समय, कोई HMR वेबसॉकेट नहीं है और कोई क्रॉस-ऑरिजिन dev संसाधन समस्या नहीं है। - +यह केवल dev mode पर लागू होता है। जब `failproofai` चलाते हैं (production mode), तो कोई HMR वेबसॉकेट नहीं होता है और कोई क्रॉस-ऑरिजिन dev संसाधन समस्या नहीं होती है। + \ No newline at end of file diff --git a/docs/hi/introduction.mdx b/docs/hi/introduction.mdx index b83299f0..2de20c7c 100644 --- a/docs/hi/introduction.mdx +++ b/docs/hi/introduction.mdx @@ -1,42 +1,41 @@ --- ---- title: "Failproof AI" -description: "FailproofAI आपके AI एजेंट्स को 39 बिल्ट-इन फेलियर पॉलिसीज देता है जो लूप्स, सीक्रेट लीक्स, डिस्ट्रक्टिव टूल कॉल्स और अन्य समस्याओं को एक सिंगल इंस्टॉल में कैच करता है।" +description: "FailproofAI AI एजेंट्स को 39 बिल्ट-इन फेलियर पॉलिसीज देता है जो एक ही इंस्टॉल में लूप्स, सीक्रेट लीक्स, डिस्ट्रक्टिव टूल कॉल्स और बहुत कुछ को कैच करता है।" --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -**AI फेलियर हैंडलिंग**, **एरर रिकवरी**, और **LLM रिलायबिलिटी** के लिए हुक्स और पॉलिसीज। अपने AI एजेंट्स को **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, और **Agents SDK** में विश्वसनीय और स्वायत्त रूप से चलाते रहें। +**AI फेलियर हैंडलिंग**, **एरर रिकवरी**, और **LLM रिलायबिलिटी** के लिए हुक्स और पॉलिसीज। अपने AI एजेंट्स को **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI**, और **Agents SDK** में विश्वसनीय और स्वायत्त रूप से चलाते रहें। -AI एजेंट्स पूर्वानुमानित तरीकों से फेल होते हैं। वे डिस्ट्रक्टिव कमांड्स चलाते हैं, सीक्रेट्स लीक करते हैं, अपने टास्क से भटकते हैं, लूप्स में फंसते हैं, या सीधे मेन में पुश करते हैं। जब बिना निरीक्षण के छोड़ दिया जाता है, तो छोटी-मोटी विफलताएं आउटेजेस, लीक किए गए क्रेडेंशियल्स और खोए हुए कार्य में बदल जाती हैं। +AI एजेंट्स प्रेडिक्टेबल तरीकों से फेल होते हैं। वे डिस्ट्रक्टिव कमांड्स चलाते हैं, सीक्रेट्स लीक करते हैं, टास्क से भटकते हैं, लूप्स में फंस जाते हैं, या सीधे मेन में पुश करते हैं। बिना निगरानी के, छोटी फेलियर्स बड़े आउटेजेस, लीक क्रेडेंशियल्स और खोए हुए काम में तब्दील हो जाती हैं। -FailproofAI इसे **पॉलिसीज** से हल करता है। ये नियम प्रत्येक एजेंट टूल कॉल में हुक करते हैं ताकि **फेलियर्स को डिटेक्ट** करें, **उन्हें कम करें** (ब्लॉक, इंस्ट्रक्ट, सैनिटाइज), और **आपको अलर्ट** करें जब कुछ ध्यान देने की जरूरत हो। एक लोकल डैशबोर्ड आपको बाद में प्रत्येक टूल कॉल, एजेंट फेलियर और रिकवरी एक्शन की समीक्षा करने देता है। +FailproofAI इसे **पॉलिसीज** से हल करता है। ये नियम हर एजेंट टूल कॉल में हुक करते हैं ताकि **फेलियर्स को डिटेक्ट** किया जा सके, उन्हें **मिटिगेट** किया जा सके (ब्लॉक, इंस्ट्रक्ट, सैनिटाइज), और जब कुछ ध्यान की जरूरत हो तो **आपको अलर्ट** किया जा सके। एक लोकल डैशबोर्ड आपको हर टूल कॉल, एजेंट फेलियर, और रिकवरी एक्शन को बाद में रिव्यू करने देता है। -ट्रांसक्रिप्ट और पॉलिसी मूल्यांकन आपकी मशीन पर रहते हैं। डेटा केवल तब भेजा जाता है जब आप कोई ऑनलाइन सुविधा स्पष्ट रूप से उपयोग करते हैं, जैसे प्रमाणित ऑडिट रिमाइंडर या आमंत्रण। +ट्रांसक्रिप्ट्स और पॉलिसी इवैलुएशन आपकी मशीन पर ही रहते हैं। डेटा सिर्फ तभी भेजा जाता है जब आप स्पष्ट रूप से कोई ऑनलाइन फीचर यूज करते हैं, जैसे ऑथेंटिकेटेड ऑडिट रिमाइंडर्स या इनवाइटेशन्स। ## शुरुआत करें - डिस्ट्रक्टिव कमांड्स को ब्लॉक करें, सीक्रेट लीकेज रोकें, एजेंट्स को प्रोजेक्ट बाउंड्रीज के अंदर रखें और बहुत कुछ। सब कुछ बॉक्स के बाहर से। + डिस्ट्रक्टिव कमांड्स को ब्लॉक करें, सीक्रेट लीकेज को रोकें, एजेंट्स को प्रोजेक्ट बाउंड्रीज के अंदर रखें, और बहुत कुछ। सब कुछ आउट ऑफ द बॉक्स से। - सिंपल allow / deny / instruct API के साथ JavaScript में अपने नियम लिखें। + एक सिंपल allow / deny / instruct API के साथ JavaScript में अपने खुद के नियम लिखें। - देखें कि आपके एजेंट्स आपके दूर रहने के समय क्या करते थे। सेशन्स ब्राउज़ करें, टूल कॉल्स को इंस्पेक्ट करें, समीक्षा करें कि पॉलिसीज कहां फायर हुईं। + देखें कि आपके एजेंट्स जब आप दूर थे तब क्या करते थे। सेशन्स ब्राउज करें, टूल कॉल्स को इंस्पेक्ट करें, पॉलिसी फायरिंग की जगह रिव्यू करें। - बिना कोड के किसी भी पॉलिसी को ट्यून करें। अलाउलिस्ट्स, प्रोटेक्टेड ब्रांचेस, या थ्रेशहोल्ड्स प्रति-प्रोजेक्ट या ग्लोबली सेट करें। + किसी भी पॉलिसी को कोड के बिना ट्यून करें। एलाउलिस्ट्स, प्रोटेक्टेड ब्रांचेस, या थ्रेशहोल्ड्स प्रति-प्रोजेक्ट या ग्लोबली सेट करें। -## क्विक स्टार्ट +## त्वरित शुरुआत @@ -51,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # enable policies (या स्किप करें — `failproofai` पहली रन पर सेट अप करने का ऑफर देगा) +failproofai policies --install # पॉलिसीज को एनेबल करें (या स्किप करें — `failproofai` पहली रन पर सेटअप करने का ऑफर देगा) failproofai # डैशबोर्ड लॉन्च करें ``` -पूर्ण वॉकथ्रू के लिए [गेटिंग स्टार्टेड](/hi/getting-started) गाइड देखें। +पूरे वॉकथ्रू के लिए [शुरुआत करना](/hi/getting-started) गाइड देखें। \ No newline at end of file diff --git a/docs/it/dashboard.mdx b/docs/it/dashboard.mdx index 8736ff77..3ba9d882 100644 --- a/docs/it/dashboard.mdx +++ b/docs/it/dashboard.mdx @@ -1,10 +1,10 @@ --- title: Dashboard -description: "Monitora le sessioni degli agenti, rivedi le chiamate agli strumenti e gestisci i criteri" +description: "Monitora le sessioni degli agenti, rivedi le chiamate ai tool e gestisci le policy" icon: chart-line --- -Il dashboard failproofai è un'applicazione web locale per monitorare le sessioni dei tuoi agenti AI e gestire i criteri. Scopri cosa hanno fatto i tuoi agenti mentre eri via. +Il dashboard failproofai è un'applicazione web locale per monitorare le tue sessioni di agenti AI e gestire le policy. Scopri cosa hanno fatto i tuoi agenti mentre eri via. --- @@ -16,7 +16,7 @@ failproofai Si apre su `http://localhost:8020`. -Il dashboard legge i dati locali di progetti, sessioni e configurazione failproofai direttamente dal filesystem. Le funzionalità autenticate facoltative, come i promemoria di audit e gli inviti, inviano alle API remote le informazioni necessarie per tali richieste, inclusi gli indirizzi email. +Il dashboard legge i dati di configurazione del progetto locale, della sessione e di failproofai direttamente dal filesystem. Le funzionalità autenticate opzionali, come i promemoria di audit e gli inviti, inviano le informazioni necessarie per tali richieste (inclusi gli indirizzi email) a API remote. --- @@ -24,67 +24,67 @@ Il dashboard legge i dati locali di progetti, sessioni e configurazione failproo ### Progetti -Elenca tutti i progetti Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ e Hermes trovati sulla tua macchina. I progetti Claude vengono rilevati da `~/.claude/projects/` (o dal percorso impostato da `CLAUDE_PROJECTS_PATH`); i progetti Codex vengono rilevati scansionando ogni trascrizione in `~/.codex/sessions///
/*.jsonl` e raggruppando per il `cwd` registrato nel primo record di ogni sessione; i progetti Copilot CLI vengono rilevati scansionando ogni `~/.copilot/session-state//workspace.yaml` (configurabile tramite `COPILOT_HOME`) e raggruppando per il suo campo `cwd`; i progetti Cursor Agent vengono rilevati scansionando i metadati per sessione in `~/.cursor/agent-sessions//` (configurabile tramite `CURSOR_HOME`, con `conversations/` e `sessions/` testati come fallback) per uno scalare `cwd` in `meta.json` / `session.json` / `workspace.yaml`; i progetti OpenCode vengono rilevati interrogando il suo DB SQLite in `~/.local/share/opencode/opencode.db` tramite `opencode db --format json` (leggiamo le tabelle `session` e `project` e raggruppiamo per `project_id`); i progetti Pi vengono rilevati scansionando trascrizioni JSONL per sessione in `~/.pi/agent/sessions//_.jsonl` (configurabile tramite `PI_SESSIONS_DIR`) e estraendo il `cwd` dal primo record di ogni sessione; le sessioni del gateway Hermes vengono lette direttamente dal suo archivio SQLite in `~/.hermes/state.db` (configurabile tramite `HERMES_DB_PATH`) e raggruppate in progetti `hermes-` per `source` (Slack/Telegram/cli/cron — le sessioni del gateway non hanno cwd). Un progetto utilizzato da più CLI viene visualizzato come una singola riga con tutti i badge corrispondenti. Utilizza il dropdown **CLI** sopra la tabella per filtrare per uno specifico agente CLI; l'URL preserva la tua selezione come `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Elenca tutti i progetti Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity e Goose trovati sulla tua macchina. I progetti Claude vengono individuati da `~/.claude/projects/` (o dal percorso impostato da `CLAUDE_PROJECTS_PATH`); i progetti Codex vengono individuati eseguendo la scansione di ogni trascrizione in `~/.codex/sessions///
/*.jsonl` e raggruppando per il `cwd` registrato nel primo record di ogni sessione; i progetti Copilot CLI vengono individuati eseguendo la scansione di ogni `~/.copilot/session-state//workspace.yaml` (configurabile tramite `COPILOT_HOME`) e raggruppando per il suo campo `cwd`; i progetti Cursor Agent vengono individuati eseguendo la scansione dei metadati per sessione in `~/.cursor/agent-sessions//` (configurabile tramite `CURSOR_HOME`, con `conversations/` e `sessions/` come fallback) per uno scalare `cwd` in `meta.json` / `session.json` / `workspace.yaml`; i progetti OpenCode vengono individuati interrogando il suo DB SQLite in `~/.local/share/opencode/opencode.db` tramite `opencode db --format json` (leggiamo le tabelle `session` e `project` e raggruppiamo per `project_id`); i progetti Pi vengono individuati eseguendo la scansione delle trascrizioni JSONL per sessione in `~/.pi/agent/sessions//_.jsonl` (configurabile tramite `PI_SESSIONS_DIR`) ed estraendo il `cwd` dal primo record di ogni sessione; le sessioni gateway Hermes vengono lette direttamente dal suo store SQLite in `~/.hermes/state.db` (configurabile tramite `HERMES_DB_PATH`) e raggruppate in progetti `hermes-` per `source` (Slack/Telegram/cli/cron — le sessioni gateway non hanno cwd); le sessioni gateway OpenClaw vengono lette da `~/.openclaw/agents//sessions/*.jsonl` e raggruppate in progetti `openclaw-` (anche senza cwd); i progetti Factory Droid vengono individuati dalle trascrizioni JSONL in `~/.factory/sessions//*.jsonl` e raggruppati per cwd; i progetti Devin dal suo DB SQLite in `~/.local/share/devin/cli/sessions.db` (raggruppati per `working_directory` di ogni sessione); i progetti Antigravity dalle trascrizioni JSONL in `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` e raggruppati per cwd; e i progetti Goose dal suo DB SQLite in `~/.local/share/goose/sessions/sessions.db` (raggruppati per `working_dir` di ogni sessione). Un progetto che è stato utilizzato da più CLI viene visualizzato come una singola riga con tutti i badge corrispondenti. Usa il menu a discesa **CLI** sopra la tabella per filtrare per uno specifico agent CLI; l'URL mantiene la tua selezione come `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Ogni progetto mostra: - Nome del progetto (derivato dal percorso della cartella) - Un badge CLI — `Claude Code` (arancione), `OpenAI Codex` (viola), `GitHub Copilot` (blu), `Cursor Agent` (smeraldo), `OpenCode` (ambra), `Pi` (rosa), e/o `Hermes` (indaco) - Data dell'attività di sessione più recente -Fai clic su un progetto per vedere le sue sessioni. +Fai clic su un progetto per visualizzare le sue sessioni. ### Sessioni Elenca tutte le sessioni all'interno di un progetto. Ogni sessione mostra: -- ID della sessione +- ID sessione - Timestamp di inizio e fine -- Numero di chiamate agli strumenti -- Conteggio dell'attività hook (criteri che si sono attivati) +- Numero di chiamate ai tool +- Conteggio dell'attività degli hook (policy che sono state attivate) -Utilizza il filtro dell'intervallo di date e la ricerca dell'ID della sessione per restringere l'elenco. Le sessioni sono impaginate. +Utilizza il filtro per intervallo di date e la ricerca per ID sessione per restringere l'elenco. Le sessioni sono impaginate. Fai clic su una sessione per aprire il visualizzatore di sessione. ### Visualizzatore di sessione -Il visualizzatore di sessione risponde alla domanda chiave per gli agenti autonomi: cosa ha fatto l'agente e ha mantenuto il percorso corretto? Un badge CLI accanto all'intestazione indica se la sessione è una trascrizione di Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi o Hermes. Mostra una cronologia di tutto ciò che è accaduto in una sessione: +Il visualizzatore di sessione risponde alla domanda chiave per gli agenti autonomi: cosa ha fatto l'agente e è rimasto in traccia? Un badge CLI accanto all'intestazione indica se la sessione è una trascrizione Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity o Goose. Mostra una cronologia di tutto ciò che è accaduto in una sessione: - **Messaggi** - Risposte di testo di Claude e prompt dell'utente -- **Chiamate agli strumenti** - Ogni strumento invocato da Claude, con il suo input e output -- **Attività dei criteri** - Per ogni chiamata allo strumento, quali criteri si sono attivati e quale decisione hanno restituito +- **Chiamate ai tool** - Ogni tool invocato da Claude, con il suo input e output +- **Attività delle policy** - Per ogni chiamata ai tool, quali policy sono state attivate e quale decisione hanno restituito -La barra delle statistiche in alto mostra la durata della sessione, il totale delle chiamate agli strumenti e un riepilogo delle decisioni hook (conteggi allow / deny / instruct). +La barra delle statistiche in alto mostra la durata della sessione, il numero totale di chiamate ai tool e un riepilogo delle decisioni degli hook (conteggi allow / deny / instruct). -Fai clic sul pulsante **Download Logs** per esportare la sessione. Per le sessioni Claude Code, Codex, Copilot, Cursor e Pi ricevi la trascrizione JSONL originale su disco byte-per-byte; per OpenCode (le cui sessioni si trovano in SQLite, non su disco) ricevi un documento JSON che rispecchia le tabelle `session` / `messages` / `parts` sottostanti. +Fai clic sul pulsante **Download Logs** per esportare la sessione. Per le sessioni Claude Code, Codex, Copilot, Cursor e Pi ottieni la trascrizione JSONL originale su disco byte per byte; per OpenCode (le cui sessioni risiedono in SQLite, non su disco) ottieni un documento JSON che rispecchia le tabelle sottostanti `session` / `messages` / `parts`. ### Audit -Un rapporto guidato dalla personalità su come il tuo agente si è effettivamente comportato nelle sessioni passate. Esegue la stessa scansione del CLI `failproofai audit` ma lo visualizza come un poster condivisibile a schermo singolo + quattro sezioni sotto la piega: +Un rapporto guidato dalla personalità su come il tuo agente si è effettivamente comportato nelle sessioni passate. Esegue la stessa scansione dell'utility CLI `failproofai audit` ma la visualizza come un poster condivisibile a schermo singolo + quattro sezioni sotto il margine di piega: -1. **Poster** — riempie il primo viewport. Regione di cattura PNG autonoma con il wordmark failproof_ai + etichetta di audit · indice archetipi (`№ NN of 08`) + data di audit · punteggio numerico (0–100) + pillola di classificazione percentile (`top 15%`) · nome dell'archetipo (uno tra `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + striscia di 3 parole chiave · riga di rarità `// only N% of agents are this archetype` · sigillo a piastrella 8×8 pixel · piè di pagina `audit yours → failproof.ai`. Tre pulsanti di condivisione si trovano appena fuori dalla casella di cattura: `post your archetype` (intento X), `share on linkedin`, `download poster`. La cattura viene eseguita tramite `html-to-image` in modo che il PNG corrisponda al rendering su schermo pixel per pixel (bordi tratteggiati, maschera logo SVG, gradienti, metriche dei caratteri — tutto preservato). -2. **Strengths** — elenco di righe calm ✓ dei comportamenti che il tuo agente fa già bene, derivati dai dati di audit dal vivo (tasso di chiamate agli strumenti pulito, nessun push diretto a main, zero fughe di credenziali, zero tempeste di retry) — ognuno visualizzato solo quando il criterio rilevante ha un record pulito nell'intervallo di audit. -3. **Quirks** — tabella di ciò che è sfuggito, classificato per gravità: `when · what slipped + the policy that would've caught it · severity pill · seen`, dove la ricorrenza legge `new` (una volta), `N× seen` (2–9 volte), o `recurring` (10+). -4. **How to improve** — elenco di righe calm, uno per criterio prescritto: nome del criterio in bianco, descrizione di una riga, comando di installazione + pulsante di copia sul lato destro. L'intestazione della sezione legge `enable all N → projected · ` (il punteggio che raggiungeresti con tutte le correzioni applicate), e il suo pulsante `[install all]` copia il comando combinato `failproofai policy add a b c …` per ogni criterio prescritto. -5. **Come back better** — due schede affiancate. Sinistra: imposta un promemoria (scelta di cadenza `3d` / `7d` / `14d` / `30d`; persiste tramite `/api/auth/reminder` una volta autenticato). Destra: sblocca i vantaggi failproof — `invite a friend` apre un modale che accetta un elenco di email di amici separati da virgola/spazio/newline (massimo 10 per invio), li invia tramite POST a `/api/audit/invite`, che viene inoltrato al server API `POST /v0/invite`. Il server API invia un'email per destinatario da `invite@failproof.ai` con il mittente in Cc e `Reply-To` impostato, in modo che il destinatario veda chi lo ha invitato e il mittente riceva una copia nella sua inbox. Gli utenti anonimi vengono indirizzati attraverso `AuthDialog` per primo in modo che l'email del mittente sia nota prima che gli inviti vengano inviati. L'adempimento dei diritti / vantaggi è un follow-up. +1. **Poster** — riempie il primo viewport. Regione di cattura PNG autonoma con il wordmark failproof_ai + etichetta audit · indice archetipo (`№ NN di 08`) + data audit · punteggio numerico (0–100) + pillola di classificazione percentile (`top 15%`) · il nome dell'archetipo (uno di `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + striscia di 3 parole chiave · `// solo il N% degli agenti è questo archetipo` riga di rarità · sigillo in piastrella di 8×8 pixel · piè di pagina `audit yours → failproof.ai`. Tre pulsanti di condivisione si trovano appena fuori dalla casella di cattura: `post your archetype` (intent X), `share on linkedin`, `download poster`. La cattura viene eseguita attraverso `html-to-image` quindi il PNG corrisponde al rendering sullo schermo pixel per pixel (bordi tratteggiati, maschera logo SVG, gradienti, metriche dei caratteri — tutto conservato). +2. **Strengths** — elenco di righe calme ✓ di comportamenti che il tuo agente già fa bene, derivati dai dati di audit live (tasso di chiamata dei tool pulito, nessun push diretto a main, zero perdite di credenziali, zero tempeste di retry) — ognuno visualizzato solo quando la policy pertinente ha un record pulito nell'intervallo di audit. +3. **Quirks** — tabella di ciò che è sfuggito, classificata per gravità: `when · what slipped + the policy that would've caught it · severity pill · seen`, dove la ricorrenza legge `new` (una volta), `N× seen` (2–9 volte), o `recurring` (10+). +4. **How to improve** — elenco di righe calme, uno per policy prescritta: nome della policy in bianco, descrizione di una riga, comando di installazione + pulsante di copia sul lato destro. L'intestazione della sezione legge `enable all N → projected · ` (il punteggio che raggiungeresti con ogni correzione applicata), e il suo pulsante `[install all]` copia il comando combinato `failproofai policy add a b c …` per ogni policy prescritta. +5. **Come back better** — due schede affiancate. Sinistra: imposta un promemoria (selettore di cadenza `3d` / `7d` / `14d` / `30d`; persiste tramite `/api/auth/reminder` una volta autenticato). Destra: sblocca i vantaggi failproof — `invite a friend` apre un modale che accetta un elenco separato da virgole/spazi/newline di email amiche (max 10 per invio), le POST a `/api/audit/invite`, che inoltrano al `/v0/invite` del server api. Il server api invia un email per destinatario da `invite@failproof.ai` con il mittente in Cc e `Reply-To` impostato, quindi il destinatario vede chi lo ha invitato e il mittente riceve una copia nella sua inbox. Gli utenti anonimi vengono instradati attraverso `AuthDialog` prima in modo che l'email del mittente sia nota prima che gli inviti vengano inviati. La realizzazione dei diritti / vantaggi è un follow-up. -Guidato dal runtime `failproofai audit` — vedi [Audit CLI](/it/cli/audit) per il motore di scansione sottostante, i flag supportati e gli invarianti della cache per trascrizione. Il dashboard memorizza nella cache il risultato più recente in `~/.failproofai/audit-dashboard.json` (modalità `0600`, slot singolo, le nuove esecuzioni sovrascrivono) in modo che le revisioni siano istantanee; **sia le cache per trascrizione che di risultato completo vengono rifiutate alla lettura una volta che hanno più di 7 giorni** in modo che il dashboard non serva mai silenziosamente un risultato di una settimana fa — dopo il TTL `/audit` cade nello stato vuoto e chiede un'esecuzione nuova. Fare clic su `[ re-audit now ]` vicino al fondo del rapporto invia un POST a `/api/audit/run` con `noCache: true` — il re-audit ignora la cache per trascrizione e ripete la scansione di ogni trascrizione da zero piuttosto che restituire silenziosamente il risultato memorizzato nella cache — e il dashboard esegue il polling su `/api/audit/status` a 1Hz fino al termine dell'esecuzione; una striscia di progresso rosa appiccicatizia si fissa in cima al viewport durante l'esecuzione con un timer trascorso, e il risultato nuovo si scambia in posizione al successo (nessun ricaricamento della pagina completa; un re-audit non riuscito lascia il rapporto precedente intatto). In caso di errore la striscia diventa rossa con copia basata su `RerunError.kind` (`timeout` / `network` / `post_failed`). Lo stato vuoto (nessuna cache o scaduta) e lo stato zero-sessioni (cache esiste ma la scansione non ha trovato trascrizioni) sono visualizzati separatamente. +Gestito dal runtime `failproofai audit` — vedere [Audit CLI](/it/cli/audit) per il motore di scansione sottostante, i flag supportati e gli invarianti di cache per trascrizione. Il dashboard memorizza nella cache il risultato più recente in `~/.failproofai/audit-dashboard.json` (modalità `0600`, slot singolo, i nuovi run sovrascrivono) quindi i revisit sono istantanei; **sia la cache per trascrizione che il risultato complessivo vengono rifiutati alla lettura una volta che hanno più di 7 giorni** quindi il dashboard non serve mai in silenzio un risultato vecchio di una settimana — dopo il TTL `/audit` ricade nel suo stato vuoto e richiede una nuova esecuzione. Facendo clic su `[ re-audit now ]` vicino al fondo del rapporto POST su `/api/audit/run` con `noCache: true` — il re-audit ignora la cache per trascrizione e scansiona ogni trascrizione da zero piuttosto che restituire silenziosamente il risultato memorizzato nella cache — e il dashboard esegue il polling su `/api/audit/status` a 1Hz fino al completamento dell'esecuzione; una striscia di progresso rosa appiccicosa si fissa nella parte superiore del viewport durante l'esecuzione con un timer trascorso, e il risultato aggiornato si sostituisce in posizione al successo (nessun ricarico della pagina intera; un re-audit fallito lascia il rapporto precedente intatto). In caso di errore la striscia diventa rossa con la copia basata su `RerunError.kind` (`timeout` / `network` / `post_failed`). Lo stato vuoto (nessuna cache o scaduta) e lo stato zero-sessioni (cache esiste ma la scansione non ha trovato trascrizioni) vengono visualizzati separatamente. -### Criteri +### Policy -Una pagina con due schede per gestire i criteri e rivedere l'attività. +Una pagina a due schede per gestire le policy e rivedere l'attività. - - - Seleziona quale agenti CLI failproofai protegge da un singolo pannello — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Hermes hanno tutti una riga con stato di installazione (`Active` / `Detected` / `Inactive`), il percorso delle impostazioni dell'ambito utente e un accento di colore del marchio. Seleziona o deseleziona i CLI che desideri e fai clic su `Apply changes` per installare/disinstallare il diff in un unico passaggio. I CLI il cui binario viene rilevato su PATH sono pre-selezionati. - - Attiva o disattiva i singoli criteri con un singolo clic (scrive su `~/.failproofai/policies-config.json` — condiviso tra ogni CLI installata) - - Espandi un criterio per configurare i suoi parametri (per i criteri che supportano `policyParams`) - - Imposta un percorso file criteri personalizzato + + - Selezione multipla di quali agent CLI failproofai protegge da un singolo pannello — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Hermes hanno tutti una riga con stato di installazione (`Active` / `Detected` / `Inactive`), il percorso delle impostazioni nell'ambito dell'utente e un accento di marca colorato. Seleziona o deseleziona i CLI che desideri e fai clic su `Apply changes` per installare/disinstallare la differenza in un unico passaggio. I CLI il cui binario è rilevato su PATH vengono pre-selezionati. + - Attiva o disattiva le singole policy con un singolo clic (scrive su `~/.failproofai/policies-config.json` — condiviso tra ogni CLI installato) + - Espandi una policy per configurare i suoi parametri (per le policy che supportano `policyParams`) + - Imposta un percorso file delle policy personalizzato - + - Cronologia completa impaginata di ogni evento hook che si è attivato in tutte le sessioni - - Filtra per decisione, tipo di evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), nome del criterio o ID della sessione - - Ogni riga mostra: timestamp, nome del criterio, decisione, badge CLI (arancione = Claude Code, viola = OpenAI Codex, blu = GitHub Copilot, smeraldo = Cursor Agent, ambra = OpenCode, rosa = Pi, indaco = Hermes), nome dello strumento, ID della sessione e il motivo delle decisioni deny/instruct - - Fai clic su un ID della sessione per aprire la sua trascrizione — il visualizzatore rileva automaticamente quale CLI ha attivato l'hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) e visualizza il badge CLI corrispondente nell'intestazione + - Filtra per decisione, tipo di evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), nome della policy o ID della sessione + - Ogni riga mostra: timestamp, nome della policy, decisione, badge CLI (arancione = Claude Code, viola = OpenAI Codex, blu = GitHub Copilot, smeraldo = Cursor Agent, ambra = OpenCode, rosa = Pi, indaco = Hermes, verde acqua = OpenClaw, rosa chiaro = Factory Droid, viola = Devin, ciano = Antigravity, lime = Goose), nome del tool, ID della sessione e il motivo delle decisioni deny/instruct + - Fai clic su un ID di sessione per aprire la sua trascrizione — il visualizzatore rileva automaticamente quale CLI ha attivato l'hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) e visualizza il badge CLI corrispondente nell'intestazione @@ -92,7 +92,7 @@ Una pagina con due schede per gestire i criteri e rivedere l'attività. ## Auto-refresh -Il dashboard ha un toggle di auto-refresh nella navigazione in alto. Se abilitato, la pagina corrente si aggiorna periodicamente per mostrare nuove sessioni e attività dei criteri man mano che compaiono. Essenziale per monitorare le sessioni degli agenti autonomi di lunga durata. +Il dashboard ha un interruttore di auto-refresh nella navigazione superiore. Quando abilitato, la pagina corrente si aggiorna periodicamente per mostrare nuove sessioni e attività di policy man mano che appaiono. Essenziale per monitorare le sessioni di agenti autonomi di lunga durata. --- @@ -110,7 +110,7 @@ Valori validi: `policies`, `projects`, `audit`. ## Configurazione del percorso dei progetti -Per impostazione predefinita, il dashboard legge dalla directory dei progetti standard di Claude Code. Sostituiscilo per configurazioni personalizzate: +Per impostazione predefinita, il dashboard legge dalla directory dei progetti Claude Code standard. Sovrascrivi per configurazioni personalizzate: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,13 +120,13 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## Accesso da un host non-localhost -Quando esegui il dashboard in **modalità di sviluppo** (`npm run dev`) e lo accedi da un hostname diverso da `localhost` - ad esempio, un dominio personalizzato, un IP remoto o un URL tunnelato - potresti vedere un avviso come: +Quando si esegue il dashboard in **modalità dev** (`npm run dev`) e si accede da un nome host diverso da `localhost` - ad esempio, un dominio personalizzato, un IP remoto o un URL con tunnel — potresti visualizzare un avviso come: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Questo è Next.js che blocca l'accesso cross-origin al suo websocket HMR (hot module reload), che è una funzionalità solo per lo sviluppo. Per consentire il tuo host, utilizza il flag `--allowed-origins`: +Questo è Next.js che blocca l'accesso cross-origin al suo websocket HMR (hot module reload), che è una funzionalità solo per lo sviluppo. Per consentire il tuo host, usa il flag `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -138,12 +138,12 @@ Per più host o IP, passa un elenco separato da virgole: npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -Puoi anche impostare la variabile di ambiente `FAILPROOFAI_ALLOWED_DEV_ORIGINS`: +Puoi anche impostare la variabile d'ambiente `FAILPROOFAI_ALLOWED_DEV_ORIGINS`: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Questo si applica solo alla modalità di sviluppo. Quando esegui `failproofai` (modalità di produzione), non c'è websocket HMR e nessun problema di risorsa di sviluppo cross-origin. - +Questo si applica solo alla modalità dev. Quando si esegue `failproofai` (modalità produzione), non c'è websocket HMR e nessun problema di risorsa dev cross-origin. + \ No newline at end of file diff --git a/docs/it/introduction.mdx b/docs/it/introduction.mdx index ea697485..75fd4f2c 100644 --- a/docs/it/introduction.mdx +++ b/docs/it/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI fornisce agli agenti AI 39 politiche di fallimento integrate che rilevano loop, perdite di segreti, chiamate di strumenti distruttive e altro ancora in una singola installazione." +description: "FailproofAI fornisce agli agenti AI 39 politiche di fallimento integrate che rilevano loop, fughe di segreti, chiamate distruttive di tool e altro ancora in un'unica installazione." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hook e politiche per **gestione dei fallimenti dell'AI**, **recupero degli errori** e **affidabilità dell'LLM**. Mantieni i tuoi agenti AI affidabili e in esecuzione autonoma su **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** e **Agents SDK**. +Hook e politiche per la **gestione dei fallimenti dell'AI**, il **recupero dagli errori** e l'**affidabilità degli LLM**. Mantieni i tuoi agenti AI affidabili e in esecuzione autonoma su **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** e l'**Agents SDK**. -Gli agenti AI falliscono in modi prevedibili. Eseguono comandi distruttivi, perdono segreti, si allontanano dall'obiettivo, rimangono bloccati in loop, o effettuano push direttamente al main. Se non controllati, piccoli fallimenti si trasformano in interruzioni, credenziali compromesse e lavoro perso. +Gli agenti AI falliscono in modi prevedibili. Eseguono comandi distruttivi, fanno trapelare segreti, si allontanano dal compito assegnato, rimangono bloccati in loop o eseguono push direttamente su main. Se lasciati incustoditi, i piccoli fallimenti si trasformano in interruzioni, fughe di credenziali e lavoro perso. -FailproofAI risolve questo con le **politiche**. Queste regole si intercettano in ogni chiamata di strumento dell'agente per **rilevare i fallimenti**, **mitigarli** (bloccare, istruire, pulire) e **avvisarti** quando qualcosa richiede attenzione. Un dashboard locale ti permette di esaminare ogni chiamata di strumento, fallimento dell'agente e azione di recupero in seguito. +FailproofAI risolve questo con le **politiche**. Queste regole si integrano in ogni chiamata di tool dell'agente per **rilevare i fallimenti**, **mitigarli** (bloccare, istruire, sanificare) e **avvisarti** quando qualcosa necessita attenzione. Un dashboard locale ti permette di revisionare ogni chiamata di tool, fallimento dell'agente e azione di recupero in seguito. -Le trascrizioni e la valutazione delle policy rimangono sul tuo computer. I dati vengono inviati solo quando utilizzi esplicitamente una funzionalità online, come promemoria di audit o inviti autenticati. +Le trascrizioni e la valutazione delle politiche rimangono sul tuo computer. I dati vengono inviati solo quando usi esplicitamente una funzione online, come i promemoria di audit autenticati o gli inviti. -## Inizia subito +## Inizia - Blocca comandi distruttivi, previeni perdite di segreti, mantieni gli agenti entro i confini del progetto e altro ancora. Tutto già pronto. + Blocca comandi distruttivi, previeni fughe di segreti, mantieni gli agenti entro i confini del progetto e altro ancora. Tutto subito disponibile. - Scrivi le tue regole in JavaScript con un semplice API allow / deny / instruct. + Scrivi le tue regole in JavaScript con una semplice API allow / deny / instruct. - Scopri cosa hanno fatto i tuoi agenti mentre eri assente. Naviga le sessioni, ispeziona le chiamate di strumenti, rivedi dove le politiche hanno agito. + Vedi cosa hanno fatto i tuoi agenti mentre eri assente. Sfoglia le sessioni, ispeziona le chiamate di tool, rivedi dove si sono attivate le politiche. - - Regola qualsiasi politica senza codice. Imposta liste di autorizzazione, rami protetti o soglie per progetto o globalmente. + + Personalizza qualsiasi politica senza codice. Imposta allowlist, rami protetti o soglie per progetto o globalmente. @@ -54,4 +54,4 @@ failproofai policies --install # abilita le politiche (o salta — `failproofa failproofai # avvia il dashboard ``` -Vedi la guida [Inizia subito](/it/getting-started) per la procedura dettagliata completa. +Consulta la guida [Inizia](/it/getting-started) per la procedura dettagliata completa. \ No newline at end of file diff --git a/docs/ja/dashboard.mdx b/docs/ja/dashboard.mdx index d2bbebf6..adb802e8 100644 --- a/docs/ja/dashboard.mdx +++ b/docs/ja/dashboard.mdx @@ -1,10 +1,10 @@ --- title: ダッシュボード -description: "エージェントセッションの監視、ツールコールの確認、ポリシーの管理" +description: "エージェントセッションの監視、ツール呼び出しの確認、ポリシーの管理" icon: chart-line --- -failproofai ダッシュボードは、AIエージェントセッションの監視とポリシー管理のためのローカルWebアプリケーションです。作業中にエージェントが何を行ったかを確認できます。 +failproofai ダッシュボードは、AIエージェントセッションの監視とポリシー管理のためのローカルWebアプリケーションです。あなたが離れている間にエージェントが何をしたか確認できます。 --- @@ -16,75 +16,75 @@ failproofai `http://localhost:8020` で開きます。 -ダッシュボードはローカルのプロジェクト、セッション、failproofai 設定データをファイルシステムから直接読み取ります。監査リマインダーや招待などのオプションの認証済み機能は、そのリクエストに必要な情報(メールアドレスを含む)をリモート API に送信します。 +ダッシュボードはローカルのプロジェクト、セッション、failproofai 設定データをファイルシステムから直接読み込みます。監査リマインダーや招待などの認証が必要なオプション機能は、そのリクエストに必要な情報(メールアドレスを含む)をリモートAPIに送信します。 --- -## ページ一覧 +## ページ ### プロジェクト -マシン上で見つかったすべての Claude Code、OpenAI Codex、GitHub Copilot CLI _(ベータ)_、Cursor Agent _(ベータ)_、OpenCode _(ベータ)_、Pi _(ベータ)_、および Hermes プロジェクトを一覧表示します。Claude プロジェクトは `~/.claude/projects/`(または `CLAUDE_PROJECTS_PATH` で設定されたパス)から検出されます。Codex プロジェクトは `~/.codex/sessions///
/*.jsonl` 以下のすべてのトランスクリプトをスキャンし、各セッションの最初のレコードに記録された `cwd` でグループ化することで検出されます。Copilot CLI プロジェクトは各 `~/.copilot/session-state//workspace.yaml`(`COPILOT_HOME` で設定可能)をスキャンし、`cwd` フィールドでグループ化することで検出されます。Cursor Agent プロジェクトは `~/.cursor/agent-sessions//`(`CURSOR_HOME` で設定可能。`conversations/` と `sessions/` をフォールバックとして探索)以下のセッションごとのメタデータをスキャンし、`meta.json` / `session.json` / `workspace.yaml` 内の `cwd` スカラーから検出されます。OpenCode プロジェクトは `opencode db --format json` を通じて `~/.local/share/opencode/opencode.db` の SQLite DB を照会することで検出されます(`session` テーブルと `project` テーブルを読み取り、`project_id` でグループ化)。Pi プロジェクトは `~/.pi/agent/sessions//_.jsonl`(`PI_SESSIONS_DIR` で設定可能)以下のセッションごとの JSONL トランスクリプトをスキャンし、各セッションの最初のレコードから `cwd` を取得することで検出されます。Hermes ゲートウェイセッションは `~/.hermes/state.db`(`HERMES_DB_PATH` で設定可能)の SQLite ストアから直接読み取られ、`source`(Slack/Telegram/cli/cron — ゲートウェイセッションには cwd がありません)によって `hermes-` プロジェクトにグループ化されます。複数の CLI で使用されたプロジェクトは、該当するすべてのバッジを付けた1行として表示されます。テーブル上部の **CLI** ドロップダウンを使用して特定のエージェント CLI でフィルタリングできます。URLには選択内容が `?cli=claude|codex|copilot|cursor|opencode|pi|hermes` として保持されます。 +マシン上で検出されたすべての Claude Code、OpenAI Codex、GitHub Copilot CLI _(ベータ)_、Cursor Agent _(ベータ)_、OpenCode _(ベータ)_、Pi _(ベータ)_、Hermes、OpenClaw、Factory Droid、Devin、Antigravity、Goose のプロジェクトを一覧表示します。Claude プロジェクトは `~/.claude/projects/`(または `CLAUDE_PROJECTS_PATH` で設定されたパス)から検出されます。Codex プロジェクトは `~/.codex/sessions///
/*.jsonl` 配下のすべてのトランスクリプトをスキャンし、各セッションの最初のレコードに記録された `cwd` でグループ化することで検出されます。Copilot CLI プロジェクトは各 `~/.copilot/session-state//workspace.yaml`(`COPILOT_HOME` で設定可能)をスキャンし、その `cwd` フィールドでグループ化することで検出されます。Cursor Agent プロジェクトは `~/.cursor/agent-sessions//`(`CURSOR_HOME` で設定可能、フォールバックとして `conversations/` と `sessions/` も探索)配下のセッションごとのメタデータをスキャンし、`meta.json` / `session.json` / `workspace.yaml` の `cwd` スカラーから検出されます。OpenCode プロジェクトは `~/.local/share/opencode/opencode.db` にある SQLite DB を `opencode db --format json` 経由でクエリすることで検出されます(`session` テーブルと `project` テーブルを読み込み、`project_id` でグループ化)。Pi プロジェクトは `~/.pi/agent/sessions//_.jsonl`(`PI_SESSIONS_DIR` で設定可能)配下のセッションごとの JSONL トランスクリプトをスキャンし、各セッションの最初のレコードから `cwd` を取得することで検出されます。Hermes ゲートウェイセッションは `~/.hermes/state.db`(`HERMES_DB_PATH` で設定可能)の SQLite ストアから直接読み込まれ、`source`(Slack/Telegram/cli/cron)で `hermes-` プロジェクトにグループ化されます(ゲートウェイセッションには cwd がありません)。OpenClaw ゲートウェイセッションは `~/.openclaw/agents//sessions/*.jsonl` から読み込まれ、`openclaw-` プロジェクトにグループ化されます(こちらも cwd なし)。Factory Droid プロジェクトは `~/.factory/sessions//*.jsonl` の JSONL トランスクリプトから cwd でグループ化して検出されます。Devin プロジェクトは `~/.local/share/devin/cli/sessions.db` の SQLite DB から(各セッションの `working_directory` でグループ化)検出されます。Antigravity プロジェクトは `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` の JSONL トランスクリプトから cwd でグループ化して検出されます。Goose プロジェクトは `~/.local/share/goose/sessions/sessions.db` の SQLite DB から(各セッションの `working_dir` でグループ化)検出されます。複数の CLI で使用されたプロジェクトは、該当するすべてのバッジを持つ1行として表示されます。テーブル上の **CLI** ドロップダウンを使用して特定のエージェント CLI でフィルタリングできます。URLには選択内容が `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` として保持されます。 -各プロジェクトには以下が表示されます: +各プロジェクトに表示される情報: - プロジェクト名(フォルダパスから導出) -- CLI バッジ — `Claude Code`(オレンジ)、`OpenAI Codex`(パープル)、`GitHub Copilot`(ブルー)、`Cursor Agent`(エメラルド)、`OpenCode`(アンバー)、`Pi`(ピンク)、および/または `Hermes`(インディゴ) -- 最新のセッションアクティビティの日付 +- CLI バッジ — `Claude Code`(オレンジ)、`OpenAI Codex`(パープル)、`GitHub Copilot`(ブルー)、`Cursor Agent`(エメラルド)、`OpenCode`(アンバー)、`Pi`(ピンク)、`Hermes`(インディゴ) +- 最新セッションアクティビティの日付 -プロジェクトをクリックするとそのセッションが表示されます。 +プロジェクトをクリックするとセッション一覧が表示されます。 ### セッション -プロジェクト内のすべてのセッションを一覧表示します。各セッションには以下が表示されます: +プロジェクト内のすべてのセッションを一覧表示します。各セッションに表示される情報: - セッション ID - 開始・終了タイムスタンプ -- ツールコール数 -- フックアクティビティ数(発動したポリシー) +- ツール呼び出し数 +- フックアクティビティ数(発火したポリシー数) -日付範囲フィルターとセッション ID 検索でリストを絞り込めます。セッションはページ分割されます。 +日付範囲フィルターとセッション ID 検索で絞り込みができます。セッションはページネーションされます。 セッションをクリックするとセッションビューアーが開きます。 ### セッションビューアー -セッションビューアーは、自律エージェントにとっての核心的な問いに答えます:エージェントは何を行い、正しく動作していたか?ヘッダー横の CLI バッジは、セッションが Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi、または Hermes のトランスクリプトであるかを示します。セッション内で起きたすべてのことのタイムラインが表示されます: +セッションビューアーは自律型エージェントにとって最も重要な問いに答えます:エージェントは何をしたのか、そして正しい方向に進んでいたのか。ヘッダーの横にある CLI バッジは、そのセッションが Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi、Hermes、OpenClaw、Factory Droid、Devin、Antigravity、Goose のどのトランスクリプトかを示します。セッション内で起きたすべての出来事のタイムラインが表示されます: - **メッセージ** - Claude のテキスト応答とユーザープロンプト -- **ツールコール** - Claude が呼び出したすべてのツール(入力と出力を含む) -- **ポリシーアクティビティ** - 各ツールコールに対して発動したポリシーとその判定結果 +- **ツール呼び出し** - Claude が実行したすべてのツール(入力と出力付き) +- **ポリシーアクティビティ** - 各ツール呼び出しに対して、どのポリシーが発火し、どのような判断を返したか -上部のステータスバーには、セッション時間、総ツールコール数、フック判定のサマリー(allow / deny / instruct の件数)が表示されます。 +上部の統計バーにはセッション時間、ツール呼び出しの総数、フック判断のサマリー(allow / deny / instruct のカウント)が表示されます。 -**ログをダウンロード** ボタンをクリックするとセッションをエクスポートできます。Claude Code、Codex、Copilot、Cursor、Pi のセッションはディスク上の JSONL トランスクリプトをバイト単位でそのまま取得できます。OpenCode(セッションがディスク上ではなく SQLite に保存されている)の場合は、基礎となる `session` / `messages` / `parts` テーブルを反映した JSON ドキュメントが取得されます。 +**ログのダウンロード**ボタンをクリックするとセッションをエクスポートできます。Claude Code、Codex、Copilot、Cursor、Pi のセッションではディスク上の元の JSONL トランスクリプトがバイト単位でそのまま取得できます。OpenCode(セッションがディスクではなく SQLite に保存される)では、基になる `session` / `messages` / `parts` テーブルを反映した JSON ドキュメントが取得できます。 ### 監査 -過去のセッション全体でエージェントが実際にどのように行動していたかを個性的なレポートとして表示します。`failproofai audit` CLI と同じスキャンを実行し、1画面で共有可能なポスターと4つの折り畳みセクションとして表示します: +過去のセッション全体にわたってエージェントが実際にどのように動作していたかを示す、個性駆動型のレポートです。`failproofai audit` CLI と同じスキャンを実行しますが、1画面で共有可能なポスター形式と、その下の4つのセクションとして表示されます: -1. **ポスター** — 最初のビューポートを埋めます。failproof_ai のワードマーク + 監査ラベル · アーキタイプインデックス(`№ NN of 08`)+ 監査日 · 数値スコア(0〜100)+ パーセンタイルランクピル(`top 15%`)· アーキタイプ名(`the optimist`、`the cowboy`、`the explorer`、`the goldfish`、`the paranoid architect`、`the precision builder`、`the hammer`、`the ghost` のいずれか)+ 3キーワードストリップ · `// only N% of agents are this archetype` レアリティライン · 8×8ピクセルのシジルタイル · `audit yours → failproof.ai` フッターを含む自己完結型の PNG キャプチャ領域。3つの共有ボタンがキャプチャボックスのすぐ外に配置されます:`post your archetype`(X インテント)、`share on linkedin`、`download poster`。キャプチャは `html-to-image` を通じて実行されるため、PNG は画面上のレンダリングとピクセル単位で一致します(破線の境界線、SVG ロゴマスク、グラデーション、フォントメトリクス — すべて保持)。 -2. **強み** — エージェントがすでに正しく行っている動作の穏やかな ✓ 行リスト。ライブ監査データから導出されます(クリーンなツールコール率、main への直接プッシュなし、認証情報の漏洩ゼロ、リトライストームなし)— 監査ウィンドウ全体でクリーンな記録を持つポリシーに関連するもののみ表示されます。 -3. **問題点** — 見逃された内容を深刻度順にランク付けしたテーブル:`いつ · 何が漏れたか + それを検出したはずのポリシー · 深刻度ピル · 発生回数`。再発回数は `new`(1回)、`N× seen`(2〜9回)、`recurring`(10回以上)と表示されます。 -4. **改善方法** — 推奨ポリシーごとの穏やかな行リスト:白いポリシー名、1行の説明、右側にインストールコマンド + コピーボタン。セクションヘッダーには `enable all N → projected · `(すべての修正を適用した場合のスコア)が表示され、`[install all]` ボタンは推奨されるすべてのポリシーの `failproofai policy add a b c …` コマンドをコピーします。 -5. **より良い状態で戻ろう** — 2つの横並びカード。左:リマインダーの設定(`3d` / `7d` / `14d` / `30d` の頻度ピッカー。認証後 `/api/auth/reminder` を通じて永続化)。右:failproof の特典を解放 — `invite a friend` はコンマ/スペース/改行区切りの友人のメールアドレスリスト(1回の送信で最大10件)を受け取るモーダルを開き、`/api/audit/invite` に POST します。このエンドポイントは api-server の `POST /v0/invite` に転送します。api-server は `invite@failproof.ai` から各受信者に1通のメールを送信し、送信者を Cc に追加して `Reply-To` を設定するため、受信者は誰が招待したかがわかり、送信者も受信トレイにコピーが届きます。匿名ユーザーは、招待前に送信者のメールアドレスを確認するために `AuthDialog` に誘導されます。権利付与 / 特典の履行は今後対応予定です。 +1. **ポスター** — 最初のビューポート全体を占めます。failproof_ai ワードマーク + 監査ラベル · アーキタイプインデックス(`№ NN of 08`)+ 監査日 · 数値スコア(0〜100)+ パーセンタイルランクのピル(`top 15%`)· アーキタイプ名(`the optimist`、`the cowboy`、`the explorer`、`the goldfish`、`the paranoid architect`、`the precision builder`、`the hammer`、`the ghost` のいずれか)+ 3キーワードストリップ · `// only N% of agents are this archetype` レアリティライン · 8×8ピクセルのシジルタイル · `audit yours → failproof.ai` フッターを含む、PNG キャプチャ対応の自己完結型リージョン。キャプチャボックスの外側には3つの共有ボタンがあります:`post your archetype`(X インテント)、`share on linkedin`、`download poster`。キャプチャは `html-to-image` で実行されるため、PNG は画面上のレンダリングと完全に一致します(点線ボーダー、SVG ロゴマスク、グラデーション、フォントメトリクスがすべて保持されます)。 +2. **ストレングス** — エージェントがすでに正しく行っている動作を落ち着いた ✓ 行リストで表示します。ライブ監査データから導出されます(クリーンなツール呼び出し率、メインへの直接プッシュなし、認証情報漏洩ゼロ、リトライストームゼロ)— 関連ポリシーが監査ウィンドウ全体でクリーンな記録を持つ場合のみ表示されます。 +3. **クセ** — 見逃した点を重大度順にランク付けしたテーブル:`発生日時 · 何が漏れたか + それを検知したはずのポリシー · 重大度ピル · 確認回数`。再発状況は `new`(1回)、`N× seen`(2〜9回)、`recurring`(10回以上)と表示されます。 +4. **改善方法** — 推奨ポリシーごとに1行の落ち着いた行リスト:白色のポリシー名、1行の説明、右側にインストールコマンド + コピーボタン。セクションヘッダーには `enable all N → projected · `(すべての修正を適用した場合のスコア)と表示され、`[install all]` ボタンをクリックすると、推奨されるすべてのポリシーを一括インストールする `failproofai policy add a b c …` コマンドがコピーされます。 +5. **次回はもっとよく** — 2つの横並びカード。左:リマインダーの設定(`3d` / `7d` / `14d` / `30d` のケイデンスピッカー、認証後に `/api/auth/reminder` 経由で永続化)。右:failproof 特典のロック解除 — `invite a friend` はモーダルを開き、カンマ・スペース・改行区切りの友人のメールアドレスリスト(1回の送信につき最大10件)を入力して `/api/audit/invite` に POST します。これは api-server の `POST /v0/invite` に転送されます。api-server は `invite@failproof.ai` から各受信者に1通のメールを送信し、送信者が Cc に追加され `Reply-To` が設定されるため、受信者には誰が招待したかが分かり、送信者もコピーを受信トレイで受け取れます。匿名ユーザーは招待が送信される前に送信者のメールアドレスを確認するため、最初に `AuthDialog` にルーティングされます。エンタイトルメント・特典の履行は今後のフォローアップ項目です。 -`failproofai audit` ランタイムによって駆動されます — 基礎となるスキャンエンジン、サポートされているフラグ、トランスクリプトごとのキャッシュの不変条件については [監査 CLI](/ja/cli/audit) を参照してください。ダッシュボードは最新の結果を `~/.failproofai/audit-dashboard.json`(モード `0600`、シングルスロット、新しい実行で上書き)にキャッシュするため、再訪問は即座に表示されます。**トランスクリプトごとおよび結果全体のキャッシュは、7日以上古くなった時点で読み取り時に拒否されます**。そのため、ダッシュボードが1週間前の結果を暗黙的に提供することはありません — TTL を過ぎると `/audit` は空の状態にフォールスルーし、新しい実行を促します。レポートの下部近くにある `[ re-audit now ]` をクリックすると、`noCache: true` で `/api/audit/run` に POST されます — 再監査はトランスクリプトごとのキャッシュをバイパスし、キャッシュされた結果を返すのではなくすべてのトランスクリプトをゼロから再スキャンします — ダッシュボードは実行が完了するまで 1Hz で `/api/audit/status` をポーリングします。実行中は経過タイマー付きのピンクのプログレスストリップがビューポートの上部に固定表示され、成功すると最新の結果がページをフルリロードせずに差し替えられます(再監査に失敗した場合は以前のレポートがそのまま残ります)。失敗した場合、ストリップは赤くなり、`RerunError.kind`(`timeout` / `network` / `post_failed`)に基づいたコピーが表示されます。空の状態(キャッシュなしまたは期限切れ)とセッションゼロの状態(キャッシュは存在するがスキャンでトランスクリプトが見つからなかった)は別々に表示されます。 +`failproofai audit` ランタイムによって動作します — 基盤となるスキャンエンジン、サポートされるフラグ、トランスクリプトごとのキャッシュ不変条件については [Audit CLI](/ja/cli/audit) を参照してください。ダッシュボードは最新の結果を `~/.failproofai/audit-dashboard.json`(モード `0600`、単一スロット、新しい実行で上書き)にキャッシュするため、再訪問は即座に表示されます。**トランスクリプトごとのキャッシュと全体結果のキャッシュは、7日以上経過すると読み取り時に拒否されます**。これにより、ダッシュボードが1週間前の結果を無言で返すことはありません — TTL を過ぎると `/audit` は空の状態にフォールスルーして新しい実行を促します。レポート下部の `[ re-audit now ]` をクリックすると `/api/audit/run` に `noCache: true` で POST されます — 再監査はトランスクリプトごとのキャッシュをバイパスし、キャッシュされた結果を無言で返すのではなく、すべてのトランスクリプトを最初からスキャンし直します — ダッシュボードは実行が完了するまで 1Hz で `/api/audit/status` をポーリングします。実行中は経過タイマー付きのスティッキーなピンクのプログレスストリップがビューポート上部に固定表示され、成功すると新しい結果がページ全体をリロードせずにその場で置き換えられます(再監査が失敗した場合は以前のレポートがそのまま残ります)。失敗時はストリップが赤くなり、`RerunError.kind`(`timeout` / `network` / `post_failed`)に応じたコピーが表示されます。空の状態(キャッシュなしまたは期限切れ)とセッションゼロ状態(キャッシュは存在するがスキャンでトランスクリプトが見つからなかった)は別々に表示されます。 ### ポリシー -ポリシーの管理とアクティビティの確認のための2タブページ。 +ポリシーの管理とアクティビティの確認のための2タブページです。 - - 1つのパネルから failproofai が保護するエージェント CLI を複数選択できます — Claude Code、OpenAI Codex、GitHub Copilot、Cursor Agent、OpenCode、Pi、および Hermes にはそれぞれインストール状況(`Active` / `Detected` / `Inactive`)、ユーザースコープの設定パス、ブランドカラーのアクセントを持つ行があります。対象の CLI にチェックを入れるか外して `Apply changes` をクリックすると、差分を1ステップでインストール/アンインストールできます。PATH 上でバイナリが検出された CLI は事前にチェックされています。 - - 個別のポリシーをワンクリックで有効/無効に切り替えます(`~/.failproofai/policies-config.json` に書き込まれます — インストールされたすべての CLI で共有) - - パラメーターをサポートするポリシーの設定を展開して変更します(`policyParams` をサポートするポリシーの場合) - - カスタムポリシーファイルのパスを設定します + - 1つのパネルから failproofai が保護するエージェント CLI を複数選択できます — Claude Code、OpenAI Codex、GitHub Copilot、Cursor Agent、OpenCode、Pi、Hermes の各行にインストール状態(`Active` / `Detected` / `Inactive`)、ユーザースコープの設定パス、ブランドカラーのアクセントが表示されます。保護したい CLI にチェックを入れ、`Apply changes` をクリックすると差分のインストール・アンインストールが一括で実行されます。PATH 上でバイナリが検出された CLI はあらかじめチェックされます。 + - シングルクリックで個々のポリシーのオン・オフを切り替えられます(`~/.failproofai/policies-config.json` に書き込まれ、インストールされたすべての CLI で共有されます) + - ポリシーを展開してパラメーターを設定できます(`policyParams` をサポートするポリシーの場合) + - カスタムポリシーファイルのパスを設定できます - - すべてのセッションで発動したすべてのフックイベントの完全なページ分割履歴 - - 判定、イベントタイプ、CLI(Claude Code / OpenAI Codex / GitHub Copilot _(ベータ)_ / Cursor Agent _(ベータ)_ / OpenCode _(ベータ)_ / Pi _(ベータ)_ / Hermes)、ポリシー名、またはセッション ID でフィルタリング - - 各行には:タイムスタンプ、ポリシー名、判定、CLI バッジ(オレンジ = Claude Code、パープル = OpenAI Codex、ブルー = GitHub Copilot、エメラルド = Cursor Agent、アンバー = OpenCode、ピンク = Pi、インディゴ = Hermes)、ツール名、セッション ID、deny/instruct 判定の理由が表示されます - - セッション ID をクリックするとトランスクリプトが開きます — ビューアーはどの CLI がフックを発動させたかを自動検出し(Claude `~/.claude/projects/…`、Codex `~/.codex/sessions/…`、Copilot CLI `~/.copilot/session-state//events.jsonl`、Cursor Agent `~/.cursor/agent-sessions//events.jsonl`、OpenCode `~/.local/share/opencode/opencode.db`、Pi `~/.pi/agent/sessions//.jsonl`、Hermes `~/.hermes/state.db`)、ヘッダーに対応する CLI バッジを表示します + - すべてのセッションにわたって発火したすべてのフックイベントの完全なページネーション履歴 + - 判断、イベントタイプ、CLI(Claude Code / OpenAI Codex / GitHub Copilot _(ベータ)_ / Cursor Agent _(ベータ)_ / OpenCode _(ベータ)_ / Pi _(ベータ)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose)、ポリシー名、セッション ID でフィルタリング可能 + - 各行に表示される情報:タイムスタンプ、ポリシー名、判断、CLI バッジ(オレンジ = Claude Code、パープル = OpenAI Codex、ブルー = GitHub Copilot、エメラルド = Cursor Agent、アンバー = OpenCode、ピンク = Pi、インディゴ = Hermes、ティール = OpenClaw、ローズ = Factory Droid、バイオレット = Devin、シアン = Antigravity、ライム = Goose)、ツール名、セッション ID、deny/instruct 判断の理由 + - セッション ID をクリックするとそのトランスクリプトが開きます — ビューアーはどの CLI がフックを発火させたか(Claude `~/.claude/projects/…`、Codex `~/.codex/sessions/…`、Copilot CLI `~/.copilot/session-state//events.jsonl`、Cursor Agent `~/.cursor/agent-sessions//events.jsonl`、OpenCode `~/.local/share/opencode/opencode.db`、Pi `~/.pi/agent/sessions//.jsonl`、Hermes `~/.hermes/state.db`、OpenClaw `~/.openclaw/agents//sessions/*.jsonl`、Factory Droid `~/.factory/sessions//.jsonl`、Devin `~/.local/share/devin/cli/sessions.db`、Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`、Goose `~/.local/share/goose/sessions/sessions.db`)を自動検出し、ヘッダーに対応する CLI バッジを表示します @@ -92,13 +92,13 @@ failproofai ## 自動更新 -ダッシュボードの上部ナビゲーションには自動更新トグルがあります。有効にすると、現在のページが定期的に更新され、新しいセッションとポリシーアクティビティがリアルタイムで表示されます。長時間実行される自律エージェントセッションの監視に不可欠です。 +ダッシュボードのトップナビゲーションには自動更新トグルがあります。有効にすると、現在のページが定期的に更新され、新しいセッションやポリシーアクティビティが表示されます。長時間実行される自律型エージェントセッションの監視に欠かせない機能です。 --- ## ページの無効化 -ダッシュボードの一部のみが必要な場合は、`FAILPROOFAI_DISABLE_PAGES` にページ名のカンマ区切りリストを設定します: +ダッシュボードの一部のみが必要な場合は、`FAILPROOFAI_DISABLE_PAGES` にページ名をカンマ区切りで設定します: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -110,7 +110,7 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai ## プロジェクトパスの設定 -デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み取ります。カスタム設定の場合はオーバーライドしてください: +デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリから読み込みます。カスタムセットアップの場合は上書きできます: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,30 +120,30 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## localhost 以外のホストからのアクセス -**開発モード**(`npm run dev`)でダッシュボードを実行し、`localhost` 以外のホスト名(カスタムドメイン、リモート IP、トンネル URL など)からアクセスする場合、次のような警告が表示されることがあります: +**開発モード**(`npm run dev`)でダッシュボードを実行し、`localhost` 以外のホスト名(例:カスタムドメイン、リモートIP、トンネルURL)からアクセスすると、次のような警告が表示される場合があります: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -これは、Next.js が HMR(ホットモジュールリロード)WebSocket へのクロスオリジンアクセスをブロックしているためです。HMR は開発専用の機能です。ホストを許可するには `--allowed-origins` フラグを使用します: +これは Next.js がその HMR(ホットモジュールリロード)WebSocket へのクロスオリジンアクセスをブロックしているためで、開発専用の機能です。ホストを許可するには `--allowed-origins` フラグを使用してください: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -複数のホストや IP の場合は、カンマ区切りのリストを渡します: +複数のホストまたはIPの場合は、カンマ区切りのリストで指定します: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -`FAILPROOFAI_ALLOWED_DEV_ORIGINS` 環境変数を使用して設定することもできます: +代わりに `FAILPROOFAI_ALLOWED_DEV_ORIGINS` 環境変数を設定することもできます: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -これは開発モードにのみ適用されます。`failproofai`(本番モード)を実行する場合、HMR WebSocket もクロスオリジン開発リソースの問題も発生しません。 - +これは開発モードにのみ適用されます。`failproofai`(本番モード)を実行する場合、HMR WebSocket やクロスオリジン開発リソースの問題は発生しません。 + \ No newline at end of file diff --git a/docs/ja/introduction.mdx b/docs/ja/introduction.mdx index 306e2b72..e4c5497e 100644 --- a/docs/ja/introduction.mdx +++ b/docs/ja/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI は AI エージェントに39種類の組み込み障害ポリシーを提供し、ループ・シークレット漏洩・破壊的なツール呼び出しなどをワンインストールで検出します。" +description: "FailproofAI はAIエージェントに39種類の組み込み失敗ポリシーを提供し、ループ・シークレット漏洩・破壊的なツール呼び出しなどをワンインストールで検出します。" --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -**AI 障害ハンドリング**・**エラーリカバリー**・**LLM の信頼性**向上のためのフックとポリシー。**Claude Code**、**OpenAI Codex**、**GitHub Copilot**、**Cursor Agent**、**OpenCode**、**Pi**、**Hermes**、そして **Agents SDK** 上で、AI エージェントを安定かつ自律的に動作させ続けます。 +**AIの障害対応**・**エラーリカバリー**・**LLMの信頼性向上**のためのフックとポリシー。**Claude Code**・**OpenAI Codex**・**GitHub Copilot**・**Cursor Agent**・**OpenCode**・**Pi**・**Hermes**・**OpenClaw**・**Factory Droid**・**Devin CLI**・**Antigravity CLI**・**Agents SDK** 上でAIエージェントを安定して自律動作させ続けます。 -AI エージェントの障害は、予測可能なパターンで発生します。破壊的なコマンドの実行、シークレットの漏洩、タスクからの逸脱、ループへの陥没、main ブランチへの直接プッシュ——放置すれば、小さな障害がサービス停止、認証情報の流出、作業の消失へと連鎖します。 +AIエージェントは、予測可能なパターンで失敗します。破壊的なコマンドを実行する、シークレットを漏洩する、タスクから外れる、ループにはまる、mainブランチへ直接プッシュする――そういった問題が放置されると、小さな障害が連鎖して障害停止・認証情報の漏洩・作業の消失へと発展します。 -FailproofAI はこれを**ポリシー**で解決します。これらのルールはエージェントのすべてのツール呼び出しにフックし、**障害を検出**し、**軽減**(ブロック・指示・サニタイズ)し、対応が必要な場合に**アラートを通知**します。ローカルダッシュボードで、あとからすべてのツール呼び出し・エージェント障害・リカバリーアクションを確認できます。 +FailproofAI はこれを**ポリシー**によって解決します。これらのルールはエージェントのすべてのツール呼び出しにフックし、**障害を検出**し、**対処**(ブロック・指示・サニタイズ)し、注意が必要なときに**アラートを通知**します。ローカルダッシュボードでは、すべてのツール呼び出し・エージェントの障害・リカバリーアクションをあとから確認できます。 -トランスクリプトとポリシー評価はマシン内に保持されます。認証済みの監査リマインダーや招待など、オンライン機能を明示的に使用した場合にのみデータが送信されます。 +トランスクリプトとポリシー評価はローカルマシン上に保存されます。データが送信されるのは、認証済み監査リマインダーや招待など、オンライン機能を明示的に使用した場合のみです。 ## はじめに - 破壊的なコマンドのブロック、シークレット漏洩の防止、エージェントをプロジェクト境界内に収める、など。すべてすぐに使えます。 + 破壊的なコマンドのブロック、シークレット漏洩の防止、エージェントをプロジェクト境界内に制限するなど、すぐに使える機能が揃っています。 - シンプルな allow / deny / instruct API を使い、JavaScript で独自のルールを記述できます。 + シンプルな allow / deny / instruct APIを使って、JavaScriptで独自のルールを作成できます。 - 離席中にエージェントが何をしていたかを確認。セッションの閲覧、ツール呼び出しの詳細確認、ポリシーが発動した箇所のレビューが可能です。 + 離席中にエージェントが何をしたかを確認できます。セッションの閲覧、ツール呼び出しの詳細確認、ポリシーが発動した箇所のレビューが可能です。 - コード不要でポリシーを調整。許可リスト・保護ブランチ・しきい値をプロジェクト単位またはグローバルに設定できます。 + コード不要でどのポリシーも調整できます。プロジェクト単位またはグローバルに、許可リスト・保護ブランチ・しきい値を設定できます。 @@ -54,4 +54,4 @@ failproofai policies --install # enable policies (or skip — `failproofai` wi failproofai # launch the dashboard ``` -詳細な手順については [Getting started](/ja/getting-started) ガイドをご覧ください。 +詳しい手順は[はじめかたガイド](/ja/getting-started)をご覧ください。 \ No newline at end of file diff --git a/docs/ko/dashboard.mdx b/docs/ko/dashboard.mdx index 18ef7da4..9de6785a 100644 --- a/docs/ko/dashboard.mdx +++ b/docs/ko/dashboard.mdx @@ -1,6 +1,6 @@ --- title: 대시보드 -description: "에이전트 세션 모니터링, 툴 호출 검토 및 정책 관리" +description: "에이전트 세션 모니터링, 도구 호출 검토 및 정책 관리" icon: chart-line --- @@ -16,7 +16,7 @@ failproofai `http://localhost:8020`에서 열립니다. -대시보드는 파일 시스템에서 직접 데이터를 읽습니다 — Claude Code 프로젝트 폴더와 failproofai 설정 파일에서 읽어오며, 원격 서비스에는 아무것도 기록되지 않습니다. +대시보드는 로컬 프로젝트, 세션 및 failproofai 구성 데이터를 파일 시스템에서 직접 읽어옵니다. 감사 알림이나 초대 등 인증이 필요한 선택적 기능은 해당 요청에 필요한 정보(이메일 주소 포함)를 원격 API로 전송합니다. --- @@ -24,22 +24,22 @@ failproofai ### 프로젝트 -머신에서 발견된 모든 Claude Code, OpenAI Codex, GitHub Copilot CLI _(베타)_, Cursor Agent _(베타)_, OpenCode _(베타)_, Pi _(베타)_, Hermes 프로젝트를 나열합니다. Claude 프로젝트는 `~/.claude/projects/`(또는 `CLAUDE_PROJECTS_PATH`로 설정된 경로)에서 검색됩니다. Codex 프로젝트는 `~/.codex/sessions///
/*.jsonl` 아래의 모든 트랜스크립트를 스캔하고 각 세션의 첫 번째 레코드에 기록된 `cwd`로 그룹화하여 검색됩니다. Copilot CLI 프로젝트는 각 `~/.copilot/session-state//workspace.yaml`(`COPILOT_HOME`으로 구성 가능)을 스캔하고 `cwd` 필드로 그룹화하여 검색됩니다. Cursor Agent 프로젝트는 `~/.cursor/agent-sessions//`(`CURSOR_HOME`으로 구성 가능, `conversations/` 및 `sessions/`가 폴백으로 검색됨) 아래의 세션별 메타데이터를 스캔하여 `meta.json` / `session.json` / `workspace.yaml`의 `cwd` 스칼라로 검색됩니다. OpenCode 프로젝트는 `opencode db --format json`을 통해 `~/.local/share/opencode/opencode.db`의 SQLite DB를 쿼리하여 검색되며(`session` 및 `project` 테이블을 읽고 `project_id`로 그룹화), Pi 프로젝트는 `~/.pi/agent/sessions//_.jsonl`(`PI_SESSIONS_DIR`으로 구성 가능) 아래의 세션별 JSONL 트랜스크립트를 스캔하고 각 세션의 첫 번째 레코드에서 `cwd`를 가져와 검색됩니다. Hermes 게이트웨이 세션은 `~/.hermes/state.db`(`HERMES_DB_PATH`으로 구성 가능)의 SQLite 저장소에서 직접 읽어오며 `source`(Slack/Telegram/cli/cron — 게이트웨이 세션에는 cwd가 없음)로 `hermes-` 프로젝트로 그룹화됩니다. 여러 CLI에서 사용된 프로젝트는 일치하는 모든 배지가 있는 단일 행으로 표시됩니다. 테이블 위의 **CLI** 드롭다운을 사용하여 특정 에이전트 CLI로 필터링하세요. URL은 선택 내용을 `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`로 보존합니다. +머신에서 발견된 모든 Claude Code, OpenAI Codex, GitHub Copilot CLI _(베타)_, Cursor Agent _(베타)_, OpenCode _(베타)_, Pi _(베타)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, Goose 프로젝트를 나열합니다. Claude 프로젝트는 `~/.claude/projects/`(또는 `CLAUDE_PROJECTS_PATH`에 설정된 경로)에서 탐색되며, Codex 프로젝트는 `~/.codex/sessions///
/*.jsonl`의 모든 트랜스크립트를 스캔하여 각 세션의 첫 번째 레코드에 기록된 `cwd`로 그룹화해 탐색됩니다. Copilot CLI 프로젝트는 각 `~/.copilot/session-state//workspace.yaml`((`COPILOT_HOME`으로 설정 가능))을 스캔하여 `cwd` 필드로 그룹화해 탐색됩니다. Cursor Agent 프로젝트는 `~/.cursor/agent-sessions//`(`CURSOR_HOME`으로 설정 가능, `conversations/` 및 `sessions/`를 폴백으로 탐색) 아래의 세션별 메타데이터를 스캔하여 `meta.json` / `session.json` / `workspace.yaml`의 `cwd` 스칼라를 찾아 탐색됩니다. OpenCode 프로젝트는 `opencode db --format json`을 통해 `~/.local/share/opencode/opencode.db`의 SQLite DB를 쿼리하여(`session` 및 `project` 테이블을 읽어 `project_id`로 그룹화) 탐색됩니다. Pi 프로젝트는 `~/.pi/agent/sessions//_.jsonl`(`PI_SESSIONS_DIR`로 설정 가능) 아래의 세션별 JSONL 트랜스크립트를 스캔하여 각 세션의 첫 번째 레코드에서 `cwd`를 가져와 탐색됩니다. Hermes 게이트웨이 세션은 `~/.hermes/state.db`(`HERMES_DB_PATH`로 설정 가능)의 SQLite 스토어에서 직접 읽어 `source`(Slack/Telegram/cli/cron — 게이트웨이 세션에는 cwd 없음)로 `hermes-` 프로젝트로 그룹화됩니다. OpenClaw 게이트웨이 세션은 `~/.openclaw/agents//sessions/*.jsonl`에서 읽어 `openclaw-` 프로젝트로 그룹화됩니다(마찬가지로 cwd 없음). Factory Droid 프로젝트는 `~/.factory/sessions//*.jsonl`의 JSONL 트랜스크립트에서 탐색되어 cwd로 그룹화됩니다. Devin 프로젝트는 `~/.local/share/devin/cli/sessions.db`의 SQLite DB에서(`working_directory`로 그룹화), Antigravity 프로젝트는 `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`의 JSONL 트랜스크립트에서 cwd로 그룹화되어 탐색됩니다. Goose 프로젝트는 `~/.local/share/goose/sessions/sessions.db`의 SQLite DB에서 각 세션의 `working_dir`로 그룹화되어 탐색됩니다. 여러 CLI에서 사용된 프로젝트는 일치하는 모든 배지를 포함한 단일 행으로 표시됩니다. 표 위의 **CLI** 드롭다운을 사용하여 특정 에이전트 CLI로 필터링할 수 있으며, URL은 선택 항목을 `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`로 보존합니다. 각 프로젝트에는 다음이 표시됩니다: - 프로젝트 이름 (폴더 경로에서 파생) -- CLI 배지 — `Claude Code` (주황색), `OpenAI Codex` (보라색), `GitHub Copilot` (파란색), `Cursor Agent` (에메랄드), `OpenCode` (호박색), `Pi` (분홍색), 및/또는 `Hermes` (남색) +- CLI 배지 — `Claude Code`(주황), `OpenAI Codex`(보라), `GitHub Copilot`(파랑), `Cursor Agent`(에메랄드), `OpenCode`(호박색), `Pi`(분홍), `Hermes`(인디고) 중 하나 이상 - 가장 최근 세션 활동 날짜 -프로젝트를 클릭하면 해당 세션이 표시됩니다. +프로젝트를 클릭하면 해당 세션을 확인할 수 있습니다. ### 세션 프로젝트 내 모든 세션을 나열합니다. 각 세션에는 다음이 표시됩니다: - 세션 ID - 시작 및 종료 타임스탬프 -- 툴 호출 수 -- 훅 활동 수 (실행된 정책) +- 도구 호출 수 +- 훅 활동 횟수 (실행된 정책 수) 날짜 범위 필터와 세션 ID 검색을 사용하여 목록을 좁힐 수 있습니다. 세션은 페이지로 나뉩니다. @@ -47,27 +47,27 @@ failproofai ### 세션 뷰어 -세션 뷰어는 자율 에이전트에 대한 핵심 질문에 답합니다: 에이전트가 무엇을 했으며, 제대로 작동했는가? 헤더 옆의 CLI 배지는 세션이 Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi 또는 Hermes 트랜스크립트인지 나타냅니다. 세션에서 발생한 모든 일의 타임라인을 보여줍니다: +세션 뷰어는 자율 에이전트의 핵심 질문에 답합니다: 에이전트가 무엇을 했으며, 올바른 방향을 유지했는가? 헤더 옆의 CLI 배지는 해당 세션이 Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity, Goose 트랜스크립트 중 무엇인지 나타냅니다. 세션에서 발생한 모든 일의 타임라인을 표시합니다: -- **메시지** - Claude의 텍스트 응답과 사용자 프롬프트 -- **툴 호출** - Claude가 호출한 모든 툴, 입력 및 출력 포함 -- **정책 활동** - 각 툴 호출에 대해 어떤 정책이 실행되었고 어떤 결정을 내렸는지 +- **메시지** - Claude의 텍스트 응답 및 사용자 프롬프트 +- **도구 호출** - Claude가 호출한 모든 도구와 입력 및 출력 +- **정책 활동** - 각 도구 호출에 대해 어떤 정책이 실행되었고 어떤 결정을 반환했는지 -상단의 통계 바에는 세션 지속 시간, 총 툴 호출 수, 훅 결정 요약(allow / deny / instruct 수)이 표시됩니다. +상단의 통계 바에는 세션 지속 시간, 총 도구 호출 수, 훅 결정 요약(allow / deny / instruct 횟수)이 표시됩니다. -**로그 다운로드** 버튼을 클릭하여 세션을 내보냅니다. Claude Code, Codex, Copilot, Cursor, Pi 세션의 경우 디스크의 원본 JSONL 트랜스크립트를 바이트 단위로 그대로 받을 수 있으며, OpenCode(세션이 디스크가 아닌 SQLite에 저장됨)의 경우 기본 `session` / `messages` / `parts` 테이블을 미러링하는 JSON 문서를 받습니다. +**Download Logs** 버튼을 클릭하면 세션을 내보낼 수 있습니다. Claude Code, Codex, Copilot, Cursor, Pi 세션의 경우 원본 디스크 상의 JSONL 트랜스크립트를 바이트 단위로 그대로 가져오며, OpenCode(세션이 디스크가 아닌 SQLite에 저장됨)의 경우 기본 `session` / `messages` / `parts` 테이블을 미러링한 JSON 문서를 가져옵니다. ### 감사 -과거 세션에서 에이전트가 실제로 어떻게 동작했는지에 대한 개성 있는 보고서입니다. `failproofai audit` CLI와 동일한 스캔을 실행하지만 단일 화면 공유 가능 포스터 + 아래 4개 섹션으로 렌더링됩니다: +과거 세션에서 에이전트가 실제로 어떻게 행동했는지를 개성 있게 보고합니다. `failproofai audit` CLI와 동일한 스캔을 실행하지만, 전체 화면 공유 가능한 포스터 + 접힌 부분 아래의 네 가지 섹션으로 렌더링합니다: -1. **포스터** — 첫 번째 뷰포트를 채웁니다. failproof_ai 워드마크 + 감사 레이블 · 아키타입 인덱스(`№ NN of 08`) + 감사 날짜 · 수치 점수(0–100) + 백분위 순위 pill(`top 15%`) · 아키타입 이름(다음 중 하나: `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + 3개 키워드 스트립 · `// only N% of agents are this archetype` 희귀도 문구 · 8×8 픽셀 시길 타일 · `audit yours → failproof.ai` 푸터가 포함된 독립적인 PNG 캡처 영역. 캡처 박스 바로 바깥에 공유 버튼 3개가 있습니다: `post your archetype` (X 인텐트), `share on linkedin`, `download poster`. 캡처는 `html-to-image`를 통해 실행되므로 PNG가 화면 렌더링과 픽셀 단위로 일치합니다(점선 테두리, SVG 로고 마스크, 그라디언트, 폰트 메트릭 — 모두 보존). -2. **강점** — 에이전트가 이미 올바르게 수행하는 동작의 ✓ 행 목록으로, 라이브 감사 데이터(깔끔한 툴 호출 비율, main으로의 직접 푸시 없음, 자격 증명 누출 없음, 재시도 폭풍 없음)에서 도출됩니다 — 관련 정책이 감사 기간 동안 깨끗한 기록을 가진 경우에만 표시됩니다. -3. **문제점** — 심각도 순으로 정렬된 문제 테이블: `발생 시점 · 발생한 문제 + 이를 감지했을 정책 · 심각도 pill · 발생 횟수`, 재발 횟수는 `new` (1회), `N× seen` (2–9회), `recurring` (10회 이상)으로 표시됩니다. -4. **개선 방법** — 권장 정책별 행 목록: 흰색으로 표시된 정책 이름, 한 줄 설명, 오른쪽에 설치 명령 + 복사 버튼. 섹션 헤더는 `enable all N → projected · `(모든 수정 사항 적용 시 도달할 점수)로 표시되며, `[install all]` 버튼은 모든 권장 정책에 대한 `failproofai policy add a b c …` 명령을 복사합니다. -5. **더 나아지기** — 두 개의 나란히 배치된 카드. 왼쪽: 리마인더 설정(`3d` / `7d` / `14d` / `30d` 주기 선택기; 인증 후 `/api/auth/reminder`를 통해 유지). 오른쪽: failproof 혜택 잠금 해제 — `invite a friend`는 쉼표/공백/줄바꿈으로 구분된 친구 이메일 목록(발송당 최대 10개)을 입력하는 모달을 열고, `/api/audit/invite`에 POST하여 api-server의 `POST /v0/invite`로 전달합니다. api-server는 `invite@failproof.ai`에서 수신자별로 이메일을 발송하며, 발신자가 참조(Cc)로 포함되고 `Reply-To`가 설정되어 수신자는 초대한 사람이 누구인지 알 수 있고 발신자는 받은 편지함에서 복사본을 받습니다. 익명 사용자는 초대가 발송되기 전에 발신자의 이메일이 확인될 수 있도록 먼저 `AuthDialog`로 라우팅됩니다. 자격 / 혜택 이행은 후속 작업입니다. +1. **포스터** — 첫 번째 뷰포트를 채웁니다. failproof_ai 워드마크 + 감사 레이블 · 아키타입 인덱스(`№ NN of 08`) + 감사 날짜 · 수치 점수(0–100) + 백분위 순위 필(`top 15%`) · 아키타입 이름(`the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost` 중 하나) + 3개 키워드 스트립 · `// only N% of agents are this archetype` 희귀도 라인 · 8×8 픽셀 시길 타일 · `audit yours → failproof.ai` 푸터를 포함하는 독립형 PNG 캡처 영역. 세 개의 공유 버튼이 캡처 상자 바로 바깥에 위치합니다: `post your archetype`(X 인텐트), `share on linkedin`, `download poster`. 캡처는 `html-to-image`를 통해 실행되므로 PNG가 화면 렌더링과 픽셀 단위로 일치합니다(대시 테두리, SVG 로고 마스크, 그라디언트, 글꼴 메트릭 모두 보존). +2. **강점** — 에이전트가 이미 잘 하고 있는 행동의 차분한 ✓ 행 목록으로, 라이브 감사 데이터(깨끗한 도구 호출 비율, main에 직접 푸시 없음, 자격 증명 유출 없음, 재시도 폭풍 없음)에서 도출됩니다. 관련 정책이 감사 기간 동안 깨끗한 기록을 가진 경우에만 표시됩니다. +3. **특이점** — 심각도 순으로 순위가 매겨진 누락된 항목 표: `when · what slipped + the policy that would've caught it · severity pill · seen`, 재발 횟수는 `new`(1회), `N× seen`(2–9회), `recurring`(10회 이상)으로 표시됩니다. +4. **개선 방법** — 처방된 정책별 한 행씩의 차분한 행 목록: 흰색으로 정책 이름, 한 줄 설명, 오른쪽에 설치 명령 + 복사 버튼. 섹션 헤더에는 `enable all N → projected · `(모든 수정 사항 적용 시 도달할 점수)가 표시되며, `[install all]` 버튼은 모든 처방된 정책에 대한 `failproofai policy add a b c …` 명령을 복사합니다. +5. **더 나은 상태로 돌아오기** — 나란히 배치된 두 개의 카드. 왼쪽: 알림 설정(`3d` / `7d` / `14d` / `30d` 주기 선택기; 인증 후 `/api/auth/reminder`를 통해 유지). 오른쪽: failproof 혜택 잠금 해제 — `invite a friend`는 쉼표/공백/줄바꿈으로 구분된 친구 이메일 목록(전송당 최대 10개)을 받는 모달을 열고, `/api/audit/invite`에 POST하여 api-server의 `POST /v0/invite`로 전달합니다. api-server는 `invite@failproof.ai`에서 수신자마다 한 통의 이메일을 보내며 발신자를 참조하고 `Reply-To`를 설정하므로, 수신자는 누가 초대했는지 알 수 있고 발신자는 받은 편지함에 사본을 받습니다. 익명 사용자는 초대가 발송되기 전에 발신자 이메일을 확인하기 위해 먼저 `AuthDialog`로 이동됩니다. 권한/혜택 이행은 추후 예정입니다. -`failproofai audit` 런타임으로 구동됩니다 — 기본 스캔 엔진, 지원되는 플래그, 트랜스크립트별 캐시 불변성은 [감사 CLI](/ko/cli/audit)를 참조하세요. 대시보드는 최신 결과를 `~/.failproofai/audit-dashboard.json`(모드 `0600`, 단일 슬롯, 새 실행 시 덮어쓰기)에 캐시하여 재방문이 즉각적으로 이루어지도록 합니다. **트랜스크립트별 캐시와 전체 결과 캐시 모두 7일이 지나면 읽기 시 거부됩니다** — 따라서 대시보드는 일주일 된 결과를 자동으로 제공하지 않으며, TTL이 지나면 `/audit`은 빈 상태로 전환되고 새로운 실행을 요청합니다. 보고서 하단의 `[ re-audit now ]`를 클릭하면 `noCache: true`로 `/api/audit/run`에 POST됩니다 — 재감사는 트랜스크립트별 캐시를 우회하고 캐시된 결과를 자동으로 반환하지 않고 모든 트랜스크립트를 처음부터 다시 스캔합니다 — 대시보드는 실행이 완료될 때까지 1Hz로 `/api/audit/status`를 폴링합니다. 실행 중에는 뷰포트 상단에 경과 타이머가 있는 고정 분홍색 진행 표시줄이 고정되며, 완료 시 새로운 결과가 즉시 교체됩니다(전체 페이지 새로고침 없음; 재감사 실패 시 이전 보고서는 그대로 유지). 실패 시 표시줄은 `RerunError.kind`(`timeout` / `network` / `post_failed`)에 따른 메시지와 함께 빨간색으로 전환됩니다. 빈 상태(캐시 없음 또는 만료)와 세션 없음 상태(캐시는 있지만 스캔에서 트랜스크립트를 찾지 못함)는 별도로 표시됩니다. +`failproofai audit` 런타임에 의해 구동됩니다 — 기본 스캔 엔진, 지원 플래그, 트랜스크립트별 캐시 불변성에 대한 자세한 내용은 [감사 CLI](/ko/cli/audit)를 참조하세요. 대시보드는 최신 결과를 `~/.failproofai/audit-dashboard.json`(모드 `0600`, 단일 슬롯, 새 실행 시 덮어쓰기)에 캐시하므로 재방문 시 즉시 표시됩니다. **트랜스크립트별 캐시와 전체 결과 캐시 모두 7일보다 오래된 경우 읽기 시 거부됩니다.** 따라서 대시보드가 일주일 된 결과를 자동으로 제공하지 않습니다 — TTL이 지나면 `/audit`는 빈 상태로 폴백하여 새 실행을 요청합니다. 보고서 하단의 `[ re-audit now ]`를 클릭하면 `noCache: true`로 `/api/audit/run`에 POST합니다 — 재감사는 트랜스크립트별 캐시를 우회하고 캐시된 결과를 자동으로 반환하는 대신 처음부터 모든 트랜스크립트를 다시 스캔합니다 — 대시보드는 실행이 완료될 때까지 1Hz로 `/api/audit/status`를 폴링합니다. 실행 중에는 경과 타이머가 포함된 분홍색 진행 표시줄이 뷰포트 상단에 고정되며, 성공 시 새 결과가 제자리에 교체됩니다(전체 페이지 재로드 없음; 재감사 실패 시 이전 보고서가 유지됨). 실패 시 표시줄이 빨간색으로 변하며 `RerunError.kind`(`timeout` / `network` / `post_failed`)에 따른 복사 메시지가 표시됩니다. 빈 상태(캐시 없음 또는 만료됨)와 세션 없음 상태(캐시는 있지만 스캔에서 트랜스크립트를 찾지 못함)는 별도로 표시됩니다. ### 정책 @@ -75,16 +75,16 @@ failproofai - - 단일 패널에서 failproofai가 보호할 에이전트 CLI를 다중 선택 — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, Hermes 각각에 설치 상태(`Active` / `Detected` / `Inactive`), 사용자 범위 설정 경로, 브랜드 색상 강조가 있는 행이 있습니다. 원하는 CLI를 체크 또는 체크 해제하고 `Apply changes`를 클릭하면 한 번에 차이를 설치/제거합니다. PATH에서 바이너리가 감지된 CLI는 미리 체크됩니다. - - 단일 클릭으로 개별 정책을 켜거나 끕니다(`~/.failproofai/policies-config.json`에 기록 — 모든 설치된 CLI에서 공유됨) - - 정책을 펼쳐 매개변수를 구성합니다(`policyParams`를 지원하는 정책의 경우) - - 사용자 지정 정책 파일 경로 설정 + - 단일 패널에서 failproofai가 보호할 에이전트 CLI를 다중 선택 — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi, Hermes 각각에 설치 상태(`Active` / `Detected` / `Inactive`), 사용자 범위 설정 경로, 브랜드 색상 강조가 있는 행. 원하는 CLI를 체크 또는 체크 해제하고 `Apply changes`를 클릭하면 차이점만 한 번에 설치/제거됩니다. PATH에서 바이너리가 감지된 CLI는 미리 체크됩니다. + - 클릭 한 번으로 개별 정책 켜기/끄기 (`~/.failproofai/policies-config.json`에 기록됨 — 설치된 모든 CLI에서 공유됨) + - 정책을 펼쳐서 매개변수 구성 (`policyParams`를 지원하는 정책의 경우) + - 사용자 정의 정책 파일 경로 설정 - - 모든 세션에서 실행된 모든 훅 이벤트의 전체 페이지네이션 기록 - - 결정, 이벤트 유형, CLI(Claude Code / OpenAI Codex / GitHub Copilot _(베타)_ / Cursor Agent _(베타)_ / OpenCode _(베타)_ / Pi _(베타)_ / Hermes), 정책 이름 또는 세션 ID로 필터링 - - 각 행에는 타임스탬프, 정책 이름, 결정, CLI 배지(주황색 = Claude Code, 보라색 = OpenAI Codex, 파란색 = GitHub Copilot, 에메랄드 = Cursor Agent, 호박색 = OpenCode, 분홍색 = Pi, 남색 = Hermes), 툴 이름, 세션 ID, deny/instruct 결정 이유가 표시됩니다 - - 세션 ID를 클릭하면 트랜스크립트가 열립니다 — 뷰어는 어떤 CLI가 훅을 실행했는지(Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`)를 자동으로 감지하고 헤더에 일치하는 CLI 배지를 렌더링합니다 + - 모든 세션에서 발생한 모든 훅 이벤트의 전체 페이지 히스토리 + - 결정, 이벤트 유형, CLI(Claude Code / OpenAI Codex / GitHub Copilot _(베타)_ / Cursor Agent _(베타)_ / OpenCode _(베타)_ / Pi _(베타)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), 정책 이름 또는 세션 ID로 필터링 + - 각 행에는 타임스탬프, 정책 이름, 결정, CLI 배지(주황 = Claude Code, 보라 = OpenAI Codex, 파랑 = GitHub Copilot, 에메랄드 = Cursor Agent, 호박색 = OpenCode, 분홍 = Pi, 인디고 = Hermes, 청록 = OpenClaw, 로즈 = Factory Droid, 바이올렛 = Devin, 시안 = Antigravity, 라임 = Goose), 도구 이름, 세션 ID, deny/instruct 결정의 이유가 표시됩니다 + - 세션 ID를 클릭하면 해당 트랜스크립트가 열립니다 — 뷰어는 훅을 실행한 CLI를 자동으로 감지하고(Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) 헤더에 일치하는 CLI 배지를 렌더링합니다 @@ -92,7 +92,7 @@ failproofai ## 자동 새로고침 -대시보드 상단 탐색에는 자동 새로고침 토글이 있습니다. 활성화하면 현재 페이지가 주기적으로 새로고침되어 새로운 세션과 정책 활동이 나타날 때 표시됩니다. 장시간 실행되는 자율 에이전트 세션을 모니터링하는 데 필수적입니다. +대시보드 상단 내비게이션에는 자동 새로고침 토글이 있습니다. 활성화하면 현재 페이지가 주기적으로 새로고침되어 새 세션과 정책 활동이 나타나는 즉시 표시됩니다. 장시간 실행되는 자율 에이전트 세션을 모니터링할 때 필수적인 기능입니다. --- @@ -110,7 +110,7 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai ## 프로젝트 경로 구성 -기본적으로 대시보드는 표준 Claude Code 프로젝트 디렉토리에서 읽습니다. 사용자 정의 설정의 경우 재정의하세요: +기본적으로 대시보드는 표준 Claude Code 프로젝트 디렉토리에서 읽습니다. 사용자 정의 설정을 위해 재정의하세요: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,13 +120,13 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## localhost가 아닌 호스트에서 접근하기 -**개발 모드**(`npm run dev`)에서 대시보드를 실행하고 localhost가 아닌 호스트 이름(예: 사용자 지정 도메인, 원격 IP, 터널링된 URL)에서 접근할 때 다음과 같은 경고가 표시될 수 있습니다: +**개발 모드**(`npm run dev`)로 대시보드를 실행하고 `localhost` 이외의 호스트명(예: 사용자 정의 도메인, 원격 IP, 터널 URL)에서 접근하는 경우 다음과 같은 경고가 표시될 수 있습니다: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -이는 Next.js가 개발 전용 기능인 HMR(핫 모듈 리로드) 웹소켓에 대한 크로스 오리진 접근을 차단하는 것입니다. 호스트를 허용하려면 `--allowed-origins` 플래그를 사용하세요: +이는 Next.js가 개발 전용 기능인 HMR(핫 모듈 리로드) 웹소켓에 대한 교차 출처 접근을 차단하는 것입니다. 호스트를 허용하려면 `--allowed-origins` 플래그를 사용하세요: ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -이는 개발 모드에만 적용됩니다. `failproofai`(프로덕션 모드)를 실행할 때는 HMR 웹소켓과 크로스 오리진 개발 리소스 문제가 없습니다. +이 설정은 개발 모드에만 적용됩니다. `failproofai`(프로덕션 모드)를 실행할 때는 HMR 웹소켓이 없고 교차 출처 개발 리소스 문제도 발생하지 않습니다. \ No newline at end of file diff --git a/docs/ko/introduction.mdx b/docs/ko/introduction.mdx index 48222763..a0cfc45c 100644 --- a/docs/ko/introduction.mdx +++ b/docs/ko/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI는 단 한 번의 설치로 루프, 시크릿 유출, 파괴적인 도구 호출 등을 감지하는 39가지 내장 실패 정책을 AI 에이전트에 제공합니다." +description: "FailproofAI는 AI 에이전트에 39가지 내장 실패 정책을 제공하여 단일 설치만으로 루프, 비밀 유출, 파괴적인 도구 호출 등을 방지합니다." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -**AI 실패 처리**, **오류 복구**, **LLM 안정성**을 위한 훅과 정책 모음입니다. **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **Agents SDK** 전반에 걸쳐 AI 에이전트를 안정적으로 자율 실행할 수 있도록 지원합니다. +**AI 장애 처리**, **오류 복구**, **LLM 안정성**을 위한 훅 및 정책 모음입니다. **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI**, 그리고 **Agents SDK** 전반에 걸쳐 AI 에이전트를 안정적으로 자율 운영하세요. -AI 에이전트는 예측 가능한 방식으로 실패합니다. 파괴적인 명령을 실행하거나, 시크릿을 유출하거나, 작업 범위를 벗어나거나, 루프에 빠지거나, main 브랜치에 직접 푸시하기도 합니다. 방치하면 사소한 실패가 서비스 장애, 자격 증명 유출, 작업 손실로 이어질 수 있습니다. +AI 에이전트는 예측 가능한 방식으로 실패합니다. 파괴적인 명령을 실행하거나, 비밀 정보를 유출하거나, 작업에서 벗어나거나, 루프에 빠지거나, main 브랜치에 직접 푸시하기도 합니다. 방치하면 사소한 실패가 서비스 장애, 자격 증명 유출, 작업 손실로 이어질 수 있습니다. -FailproofAI는 **정책**으로 이 문제를 해결합니다. 정책은 모든 에이전트 도구 호출에 연결되어 **실패를 감지**하고, **완화 조치**(차단, 지시, 정제)를 취하며, 주의가 필요할 때 **알림을 보냅니다**. 로컬 대시보드에서는 이후에 모든 도구 호출, 에이전트 실패, 복구 조치를 확인할 수 있습니다. +FailproofAI는 **정책**으로 이 문제를 해결합니다. 이 규칙들은 모든 에이전트 도구 호출에 연결되어 **장애를 감지**하고, **완화 조치**(차단, 지시, 정제)를 취하며, 주의가 필요한 상황이 발생하면 **알림을 보냅니다**. 로컬 대시보드를 통해 모든 도구 호출, 에이전트 장애, 복구 조치를 사후에 검토할 수 있습니다. -데이터는 사용자의 머신 밖으로 나가지 않습니다. +트랜스크립트와 정책 평가 결과는 사용자의 머신에만 저장됩니다. 인증된 감사 알림이나 초대와 같이 온라인 기능을 명시적으로 사용할 때만 데이터가 전송됩니다. ## 시작하기 - 파괴적인 명령 차단, 시크릿 유출 방지, 에이전트를 프로젝트 범위 내로 제한하는 기능 등을 기본 제공합니다. + 파괴적인 명령 차단, 비밀 유출 방지, 에이전트의 프로젝트 경계 내 제한 등을 기본 제공합니다. - 간단한 allow / deny / instruct API로 JavaScript 기반의 자체 규칙을 작성하세요. + 간단한 allow / deny / instruct API로 JavaScript 기반의 맞춤 규칙을 직접 작성하세요. - 자리를 비운 동안 에이전트가 무엇을 했는지 확인하세요. 세션을 탐색하고, 도구 호출을 검사하며, 정책이 발동된 지점을 검토할 수 있습니다. + 자리를 비운 사이 에이전트가 무엇을 했는지 확인하세요. 세션을 탐색하고, 도구 호출을 검사하며, 정책이 실행된 지점을 검토합니다. - 코드 없이 모든 정책을 조정하세요. 프로젝트별 또는 전역으로 허용 목록, 보호 브랜치, 임계값을 설정할 수 있습니다. + 코드 없이 모든 정책을 조정할 수 있습니다. 프로젝트별 또는 전역으로 허용 목록, 보호 브랜치, 임계값을 설정하세요. diff --git a/docs/pt-br/dashboard.mdx b/docs/pt-br/dashboard.mdx index dd1a54d9..fc500f1e 100644 --- a/docs/pt-br/dashboard.mdx +++ b/docs/pt-br/dashboard.mdx @@ -16,7 +16,7 @@ failproofai Abre em `http://localhost:8020`. -O dashboard lê diretamente do sistema de arquivos — suas pastas de projetos do Claude Code e os arquivos de configuração do failproofai. Nada é gravado em um serviço remoto. +O dashboard lê dados locais de projetos, sessões e configurações do failproofai diretamente do sistema de arquivos. Funcionalidades autenticadas opcionais, como lembretes de auditoria e convites, enviam as informações necessárias para essas requisições (incluindo endereços de e-mail) para APIs remotas. --- @@ -24,12 +24,12 @@ O dashboard lê diretamente do sistema de arquivos — suas pastas de projetos d ### Projetos -Lista todos os projetos Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ e Hermes encontrados na sua máquina. Os projetos Claude são descobertos em `~/.claude/projects/` (ou no caminho definido por `CLAUDE_PROJECTS_PATH`); os projetos Codex são descobertos varrendo todas as transcrições em `~/.codex/sessions///
/*.jsonl` e agrupando pelo `cwd` registrado no primeiro registro de cada sessão; os projetos Copilot CLI são descobertos varrendo cada `~/.copilot/session-state//workspace.yaml` (configurável via `COPILOT_HOME`) e agrupando pelo campo `cwd`; os projetos Cursor Agent são descobertos varrendo metadados por sessão em `~/.cursor/agent-sessions//` (configurável via `CURSOR_HOME`, com `conversations/` e `sessions/` como alternativas) em busca de um escalar `cwd` em `meta.json` / `session.json` / `workspace.yaml`; os projetos OpenCode são descobertos consultando seu banco SQLite em `~/.local/share/opencode/opencode.db` via `opencode db --format json` (lemos as tabelas `session` e `project` e agrupamos por `project_id`); os projetos Pi são descobertos varrendo transcrições JSONL por sessão em `~/.pi/agent/sessions//_.jsonl` (configurável via `PI_SESSIONS_DIR`) e extraindo o `cwd` do primeiro registro de cada sessão; as sessões do gateway Hermes são lidas diretamente do seu armazenamento SQLite em `~/.hermes/state.db` (configurável via `HERMES_DB_PATH`) e agrupadas em projetos `hermes-` por `source` (Slack/Telegram/cli/cron — sessões do gateway não possuem cwd). Um projeto utilizado por múltiplos CLIs é exibido como uma única linha com todos os badges correspondentes. Use o menu suspenso **CLI** acima da tabela para filtrar por um agente CLI específico; a URL preserva sua seleção como `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Lista todos os projetos Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity e Goose encontrados na sua máquina. Projetos Claude são descobertos a partir de `~/.claude/projects/` (ou do caminho definido por `CLAUDE_PROJECTS_PATH`); projetos Codex são descobertos escaneando todas as transcrições em `~/.codex/sessions///
/*.jsonl` e agrupando pelo `cwd` registrado no primeiro registro de cada sessão; projetos Copilot CLI são descobertos escaneando cada `~/.copilot/session-state//workspace.yaml` (configurável via `COPILOT_HOME`) e agrupando pelo campo `cwd`; projetos Cursor Agent são descobertos escaneando metadados por sessão em `~/.cursor/agent-sessions//` (configurável via `CURSOR_HOME`, com `conversations/` e `sessions/` verificados como fallbacks) em busca de um escalar `cwd` em `meta.json` / `session.json` / `workspace.yaml`; projetos OpenCode são descobertos consultando seu banco SQLite em `~/.local/share/opencode/opencode.db` via `opencode db --format json` (lemos as tabelas `session` e `project` e agrupamos por `project_id`); projetos Pi são descobertos escaneando transcrições JSONL por sessão em `~/.pi/agent/sessions//_.jsonl` (configurável via `PI_SESSIONS_DIR`) e extraindo o `cwd` do primeiro registro de cada sessão; sessões do gateway Hermes são lidas diretamente do seu armazenamento SQLite em `~/.hermes/state.db` (configurável via `HERMES_DB_PATH`) e agrupadas em projetos `hermes-` por `source` (Slack/Telegram/cli/cron — sessões de gateway não possuem cwd); sessões do gateway OpenClaw são lidas de `~/.openclaw/agents//sessions/*.jsonl` e agrupadas em projetos `openclaw-` (também sem cwd); projetos Factory Droid são descobertos a partir das transcrições JSONL em `~/.factory/sessions//*.jsonl` e agrupados por cwd; projetos Devin a partir do seu banco SQLite em `~/.local/share/devin/cli/sessions.db` (agrupados pelo `working_directory` de cada sessão); projetos Antigravity a partir das transcrições JSONL em `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` e agrupados por cwd; e projetos Goose a partir do seu banco SQLite em `~/.local/share/goose/sessions/sessions.db` (agrupados pelo `working_dir` de cada sessão). Um projeto que foi utilizado por múltiplos CLIs é renderizado como uma única linha com todos os badges correspondentes. Use o dropdown **CLI** acima da tabela para filtrar por um agente CLI específico; a URL preserva sua seleção como `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Cada projeto exibe: - Nome do projeto (derivado do caminho da pasta) - Um badge de CLI — `Claude Code` (laranja), `OpenAI Codex` (roxo), `GitHub Copilot` (azul), `Cursor Agent` (esmeralda), `OpenCode` (âmbar), `Pi` (rosa) e/ou `Hermes` (índigo) -- Data da atividade mais recente da sessão +- Data da atividade de sessão mais recente Clique em um projeto para ver suas sessões. @@ -37,7 +37,7 @@ Clique em um projeto para ver suas sessões. Lista todas as sessões dentro de um projeto. Cada sessão exibe: - ID da sessão -- Timestamps de início e término +- Timestamps de início e fim - Número de chamadas de ferramentas - Contagem de atividade de hooks (políticas que foram acionadas) @@ -47,44 +47,44 @@ Clique em uma sessão para abrir o visualizador de sessão. ### Visualizador de sessão -O visualizador de sessão responde à pergunta central dos agentes autônomos: o que o agente fez, e ele se manteve no curso? Um badge de CLI ao lado do cabeçalho indica se a sessão é uma transcrição do Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi ou Hermes. Ele exibe uma linha do tempo de tudo que aconteceu em uma sessão: +O visualizador de sessão responde à pergunta-chave para agentes autônomos: o que o agente fez e ele se manteve no caminho certo? Um badge de CLI ao lado do cabeçalho indica se a sessão é uma transcrição Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity ou Goose. Ele exibe uma linha do tempo de tudo que aconteceu em uma sessão: -- **Mensagens** — Respostas de texto do Claude e prompts do usuário -- **Chamadas de ferramentas** — Cada ferramenta que o Claude invocou, com sua entrada e saída -- **Atividade de políticas** — Para cada chamada de ferramenta, quais políticas foram acionadas e qual decisão retornaram +- **Mensagens** - Respostas de texto do Claude e prompts do usuário +- **Chamadas de ferramentas** - Cada ferramenta que o Claude invocou, com sua entrada e saída +- **Atividade de políticas** - Para cada chamada de ferramenta, quais políticas foram acionadas e qual decisão retornaram -A barra de estatísticas no topo mostra a duração da sessão, total de chamadas de ferramentas e um resumo das decisões de hook (contagens de allow / deny / instruct). +A barra de estatísticas no topo exibe a duração da sessão, total de chamadas de ferramentas e um resumo das decisões de hooks (contagens de allow / deny / instruct). -Clique no botão **Download Logs** para exportar a sessão. Para sessões do Claude Code, Codex, Copilot, Cursor e Pi, você recebe a transcrição JSONL original em disco byte a byte; para o OpenCode (cujas sessões ficam no SQLite, não em disco) você recebe um documento JSON espelhando as tabelas subjacentes `session` / `messages` / `parts`. +Clique no botão **Download Logs** para exportar a sessão. Para sessões Claude Code, Codex, Copilot, Cursor e Pi você recebe a transcrição JSONL original em disco byte a byte; para OpenCode (cujas sessões ficam no SQLite, não em disco) você recebe um documento JSON espelhando as tabelas subjacentes `session` / `messages` / `parts`. ### Auditoria -Um relatório com personalidade sobre como seu agente tem se comportado ao longo das sessões anteriores. Executa a mesma varredura que o CLI `failproofai audit`, mas renderiza como um pôster de tela única compartilhável + quatro seções abaixo da dobra: +Um relatório com personalidade sobre como seu agente realmente se comportou ao longo de sessões anteriores. Executa o mesmo escaneamento que o CLI `failproofai audit`, mas o renderiza como um pôster compartilhável em tela única + quatro seções abaixo da dobra: -1. **Pôster** — preenche o primeiro viewport. Região de captura PNG autocontida com a marca failproof_ai + rótulo de auditoria · índice de arquétipo (`№ NN de 08`) + data da auditoria · pontuação numérica (0–100) + pílula de percentil (`top 15%`) · o nome do arquétipo (um de `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + faixa de 3 palavras-chave · linha de raridade `// only N% of agents are this archetype` · tile de sigilo 8×8 pixels · rodapé `audit yours → failproof.ai`. Três botões de compartilhamento ficam logo fora da caixa de captura: `post your archetype` (X intent), `share on linkedin`, `download poster`. A captura é feita via `html-to-image`, então o PNG corresponde pixel a pixel ao render na tela (bordas tracejadas, máscara de logo SVG, gradientes, métricas de fonte — tudo preservado). -2. **Pontos fortes** — lista de linhas com ✓ tranquilo dos comportamentos que seu agente já faz corretamente, derivada dos dados de auditoria ao vivo (taxa limpa de chamadas de ferramentas, sem pushes diretos para main, zero vazamentos de credenciais, zero tempestades de retry) — cada item exibido apenas quando a política relevante tem um histórico limpo dentro da janela de auditoria. -3. **Peculiaridades** — tabela do que passou despercebido, ordenada por severidade: `when · what slipped + the policy that would've caught it · severity pill · seen`, onde a recorrência lê `new` (uma vez), `N× seen` (2–9 vezes), ou `recurring` (10+). -4. **Como melhorar** — lista de linhas tranquila, uma por política prescrita: nome da política em branco, descrição em uma linha, comando de instalação + botão de cópia à direita. O cabeçalho da seção lê `enable all N → projected · ` (a pontuação que você atingiria com todas as correções aplicadas), e seu botão `[install all]` copia o comando combinado `failproofai policy add a b c …` para cada política prescrita. -5. **Volte melhor** — dois cards lado a lado. Esquerdo: definir um lembrete (seletor de cadência `3d` / `7d` / `14d` / `30d`; persiste via `/api/auth/reminder` após autenticação). Direito: desbloquear benefícios failproof — `invite a friend` abre um modal que aceita uma lista de e-mails de amigos separados por vírgula/espaço/quebra de linha (máx. 10 por envio), faz POST para `/api/audit/invite`, que repassa para o `POST /v0/invite` do api-server. O api-server envia um e-mail por destinatário de `invite@failproof.ai` com o remetente em Cc e `Reply-To` definido, para que o destinatário veja quem o convidou e o remetente receba uma cópia em sua caixa de entrada. Usuários anônimos são redirecionados pelo `AuthDialog` primeiro, para que o e-mail do remetente seja conhecido antes de os convites serem enviados. Direitos / cumprimento de benefícios é uma etapa posterior. +1. **Pôster** — preenche o primeiro viewport. Região de captura PNG independente com a marca failproof_ai + rótulo de auditoria · índice de arquétipo (`№ NN de 08`) + data da auditoria · pontuação numérica (0–100) + pílula de ranking percentil (`top 15%`) · o nome do arquétipo (um de `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + faixa de 3 palavras-chave · linha de raridade `// only N% of agents are this archetype` · tile de símbolo 8×8 pixels · rodapé `audit yours → failproof.ai`. Três botões de compartilhamento ficam logo fora da caixa de captura: `post your archetype` (intent no X), `share on linkedin`, `download poster`. A captura é feita via `html-to-image`, então o PNG corresponde pixel a pixel ao que está na tela (bordas tracejadas, máscara de logo SVG, gradientes, métricas de fonte — tudo preservado). +2. **Pontos fortes** — lista tranquila com ✓ de comportamentos que seu agente já faz certo, derivados dos dados de auditoria ao vivo (taxa limpa de chamadas de ferramentas, sem pushes diretos para main, zero vazamentos de credenciais, zero tempestades de retentativas) — cada um exibido apenas quando a política relevante tem um histórico limpo ao longo da janela de auditoria. +3. **Peculiaridades** — tabela do que escapou, ordenada por severidade: `quando · o que escapou + a política que teria detectado · pílula de severidade · visto`, onde a recorrência aparece como `new` (uma vez), `N× seen` (2–9 vezes) ou `recurring` (10+). +4. **Como melhorar** — lista tranquila de linhas, uma por política prescrita: nome da política em branco, descrição em uma linha, comando de instalação + botão de cópia à direita. O cabeçalho da seção exibe `enable all N → projected · ` (a pontuação que você alcançaria com todas as correções aplicadas), e seu botão `[install all]` copia o comando combinado `failproofai policy add a b c …` para cada política prescrita. +5. **Volte melhor** — dois cartões lado a lado. Esquerda: defina um lembrete (seletor de cadência `3d` / `7d` / `14d` / `30d`; persiste via `/api/auth/reminder` após autenticação). Direita: desbloqueie vantagens failproof — `invite a friend` abre um modal que aceita uma lista de e-mails de amigos separados por vírgula/espaço/quebra de linha (máximo 10 por envio), faz POST para `/api/audit/invite`, que encaminha para o `POST /v0/invite` do api-server. O api-server envia um e-mail por destinatário a partir de `invite@failproof.ai` com o remetente em Cc e `Reply-To` definido, para que o destinatário veja quem o convidou e o remetente receba uma cópia em sua caixa de entrada. Usuários anônimos são direcionados primeiro pelo `AuthDialog` para que o e-mail do remetente seja conhecido antes que os convites sejam enviados. Direitos / cumprimento de vantagens é um passo seguinte. -Alimentado pelo runtime `failproofai audit` — consulte [Audit CLI](/pt-br/cli/audit) para o mecanismo de varredura subjacente, flags suportadas e invariantes de cache por transcrição. O dashboard armazena em cache o resultado mais recente em `~/.failproofai/audit-dashboard.json` (modo `0600`, slot único, novas execuções sobrescrevem) para que revisitas sejam instantâneas; **tanto o cache por transcrição quanto o cache de resultado completo são rejeitados na leitura quando têm mais de 7 dias**, para que o dashboard nunca sirva silenciosamente um resultado de uma semana atrás — após o TTL, `/audit` cai no estado vazio e solicita uma nova execução. Clicar em `[ re-audit now ]` perto do final do relatório faz POST para `/api/audit/run` com `noCache: true` — a re-auditoria ignora o cache por transcrição e reanalisa todas as transcrições do zero em vez de retornar silenciosamente o resultado em cache — e o dashboard verifica `/api/audit/status` a 1Hz até a execução terminar; uma faixa de progresso rosa fixada no topo do viewport durante a execução exibe um timer decorrido, e o resultado atualizado substitui o anterior no lugar ao término com sucesso (sem recarregamento completo da página; uma re-auditoria com falha mantém o relatório anterior intacto). Em caso de falha, a faixa fica vermelha com texto baseado no `RerunError.kind` (`timeout` / `network` / `post_failed`). O estado vazio (sem cache ou expirado) e o estado de zero sessões (cache existe, mas a varredura não encontrou transcrições) são exibidos separadamente. +Alimentado pelo runtime do `failproofai audit` — consulte [Audit CLI](/pt-br/cli/audit) para o mecanismo de escaneamento subjacente, flags suportadas e invariantes de cache por transcrição. O dashboard armazena em cache o último resultado em `~/.failproofai/audit-dashboard.json` (modo `0600`, slot único, novas execuções sobrescrevem) para que revisitas sejam instantâneas; **tanto os caches por transcrição quanto os de resultado completo são rejeitados na leitura quando têm mais de 7 dias**, portanto o dashboard nunca serve silenciosamente um resultado com uma semana de idade — após o TTL, `/audit` cai para seu estado vazio e solicita uma nova execução. Clicar em `[ re-audit now ]` próximo ao final do relatório faz POST em `/api/audit/run` com `noCache: true` — a re-auditoria ignora o cache por transcrição e re-escaneia cada transcrição do zero em vez de retornar silenciosamente o resultado em cache — e o dashboard faz polling em `/api/audit/status` a 1Hz até que a execução termine; uma faixa rosa fixa de progresso se prende ao topo do viewport durante a execução com um temporizador de tempo decorrido, e o resultado atualizado substitui no lugar ao concluir com sucesso (sem recarga de página completa; uma re-auditoria com falha mantém o relatório anterior intacto). Em caso de falha, a faixa fica vermelha com texto baseado no `RerunError.kind` (`timeout` / `network` / `post_failed`). Estado vazio (sem cache ou expirado) e estado de zero sessões (cache existe mas o escaneamento não encontrou transcrições) são exibidos separadamente. ### Políticas -Uma página com duas abas para gerenciar políticas e revisar atividade. +Uma página com duas abas para gerenciar políticas e revisar atividades. - - Selecione múltiplos CLIs de agentes que o failproofai protege em um único painel — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Hermes têm uma linha com status de instalação (`Active` / `Detected` / `Inactive`), o caminho de configurações de escopo do usuário e um destaque com a cor da marca. Marque ou desmarque os CLIs desejados e clique em `Apply changes` para instalar/desinstalar as alterações em uma etapa. CLIs cujo binário é detectado no PATH são pré-selecionados. - - Ative ou desative políticas individuais com um único clique (escreve em `~/.failproofai/policies-config.json` — compartilhado entre todos os CLIs instalados) + - Seleção múltipla de quais CLIs de agentes o failproofai protege a partir de um único painel — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi e Hermes têm uma linha com status de instalação (`Active` / `Detected` / `Inactive`), o caminho de configurações no escopo do usuário e um destaque com a cor da marca. Marque ou desmarque os CLIs que deseja e clique em `Apply changes` para instalar/desinstalar a diferença em uma única etapa. CLIs cujo binário é detectado no PATH são pré-marcados. + - Ative ou desative políticas individuais com um único clique (grava em `~/.failproofai/policies-config.json` — compartilhado entre todos os CLIs instalados) - Expanda uma política para configurar seus parâmetros (para políticas que suportam `policyParams`) - - Defina um caminho personalizado para o arquivo de políticas + - Defina um caminho de arquivo de políticas personalizado - - Histórico paginado completo de cada evento de hook que foi acionado em todas as sessões - - Filtre por decisão, tipo de evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), nome da política ou ID de sessão - - Cada linha exibe: timestamp, nome da política, decisão, badge de CLI (laranja = Claude Code, roxo = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, âmbar = OpenCode, rosa = Pi, índigo = Hermes), nome da ferramenta, ID de sessão e o motivo das decisões deny/instruct - - Clique em um ID de sessão para abrir sua transcrição — o visualizador detecta automaticamente qual CLI acionou o hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) e renderiza o badge de CLI correspondente no cabeçalho + - Histórico completo paginado de todos os eventos de hook que ocorreram em todas as sessões + - Filtre por decisão, tipo de evento, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), nome da política ou ID de sessão + - Cada linha exibe: timestamp, nome da política, decisão, badge de CLI (laranja = Claude Code, roxo = OpenAI Codex, azul = GitHub Copilot, esmeralda = Cursor Agent, âmbar = OpenCode, rosa = Pi, índigo = Hermes, verde-azulado = OpenClaw, rosê = Factory Droid, violeta = Devin, ciano = Antigravity, limão = Goose), nome da ferramenta, ID de sessão e o motivo das decisões deny/instruct + - Clique em um ID de sessão para abrir sua transcrição — o visualizador detecta automaticamente qual CLI acionou o hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) e renderiza o badge de CLI correspondente no cabeçalho @@ -92,11 +92,11 @@ Uma página com duas abas para gerenciar políticas e revisar atividade. ## Atualização automática -O dashboard possui um toggle de atualização automática na navegação superior. Quando ativado, a página atual é atualizada periodicamente para exibir novas sessões e atividades de políticas à medida que aparecem. Essencial para monitorar sessões de agentes autônomos de longa duração. +O dashboard possui um botão de atualização automática na navegação superior. Quando ativado, a página atual é atualizada periodicamente para exibir novas sessões e atividades de políticas conforme aparecem. Essencial para monitorar sessões de agentes autônomos de longa duração. --- -## Desativando páginas +## Desabilitando páginas Se você precisar apenas de algumas partes do dashboard, defina `FAILPROOFAI_DISABLE_PAGES` com uma lista separada por vírgulas de nomes de páginas: @@ -126,7 +126,7 @@ Ao executar o dashboard em **modo dev** (`npm run dev`) e acessá-lo a partir de ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Isso é o Next.js bloqueando o acesso cross-origin ao seu websocket HMR (hot module reload), que é um recurso exclusivo do modo dev. Para permitir seu host, use a flag `--allowed-origins`: +Isso é o Next.js bloqueando acesso cross-origin ao seu websocket de HMR (hot module reload), que é um recurso exclusivo do modo dev. Para permitir seu host, use a flag `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Isso se aplica apenas ao modo dev. Ao executar `failproofai` (modo produção), não há websocket HMR nem problema de recurso dev cross-origin. +Isso se aplica apenas ao modo dev. Ao executar `failproofai` (modo de produção), não há websocket de HMR nem problema de recurso dev cross-origin. \ No newline at end of file diff --git a/docs/pt-br/introduction.mdx b/docs/pt-br/introduction.mdx index 311dca85..2a6c0df3 100644 --- a/docs/pt-br/introduction.mdx +++ b/docs/pt-br/introduction.mdx @@ -1,19 +1,19 @@ --- title: "Failproof AI" -description: "FailproofAI oferece 39 políticas de falha integradas para agentes de IA que detectam loops, vazamentos de segredos, chamadas de ferramentas destrutivas e muito mais em uma única instalação." +description: "FailproofAI oferece 39 políticas de falha integradas para agentes de IA que detectam loops, vazamentos de segredos, chamadas destrutivas de ferramentas e muito mais em uma única instalação." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hooks e políticas para **tratamento de falhas de IA**, **recuperação de erros** e **confiabilidade de LLMs**. Mantenha seus agentes de IA confiáveis e funcionando de forma autônoma no **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** e no **Agents SDK**. +Hooks e políticas para **tratamento de falhas de IA**, **recuperação de erros** e **confiabilidade de LLMs**. Mantenha seus agentes de IA confiáveis e funcionando de forma autônoma no **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** e no **Agents SDK**. -Agentes de IA falham de maneiras previsíveis. Eles executam comandos destrutivos, vazam segredos, desviam da tarefa, ficam presos em loops ou fazem push direto para a branch principal. Sem supervisão, falhas pequenas evoluem para quedas de serviço, credenciais expostas e trabalho perdido. +Agentes de IA falham de maneiras previsíveis. Eles executam comandos destrutivos, vazam segredos, se desviam da tarefa, ficam presos em loops ou fazem push direto para a branch principal. Sem supervisão, pequenas falhas se transformam em interrupções de serviço, credenciais expostas e trabalho perdido. -O FailproofAI resolve isso com **políticas**. Essas regras se integram a cada chamada de ferramenta do agente para **detectar falhas**, **mitigá-las** (bloquear, instruir, sanitizar) e **alertar você** quando algo precisa de atenção. Um painel local permite revisar todas as chamadas de ferramenta, falhas do agente e ações de recuperação posteriormente. +O FailproofAI resolve isso com **políticas**. Essas regras se integram a cada chamada de ferramenta do agente para **detectar falhas**, **mitigá-las** (bloquear, instruir, sanitizar) e **alertá-lo** quando algo precisa de atenção. Um painel local permite revisar cada chamada de ferramenta, falha do agente e ação de recuperação posteriormente. -As transcrições e a avaliação de políticas permanecem na sua máquina. Os dados só são enviados quando você usa explicitamente um recurso online, como lembretes de auditoria ou convites autenticados. +Transcrições e avaliação de políticas ficam na sua máquina. Os dados só são enviados quando você usa explicitamente um recurso online, como lembretes de auditoria autenticados ou convites. -## Primeiros passos +## Comece agora @@ -26,11 +26,11 @@ As transcrições e a avaliação de políticas permanecem na sua máquina. Os d - Veja o que seus agentes fizeram enquanto você estava ausente. Navegue por sessões, inspecione chamadas de ferramentas e revise onde as políticas foram acionadas. + Veja o que seus agentes fizeram enquanto você estava ausente. Navegue pelas sessões, inspecione chamadas de ferramentas e revise onde as políticas foram acionadas. - - Ajuste qualquer política sem escrever código. Defina listas de permissões, branches protegidas ou limites por projeto ou globalmente. + + Ajuste qualquer política sem escrever código. Defina allowlists, branches protegidas ou limites por projeto ou globalmente. @@ -54,4 +54,4 @@ failproofai policies --install # enable policies (or skip — `failproofai` wi failproofai # launch the dashboard ``` -Consulte o guia de [Primeiros passos](/pt-br/getting-started) para o passo a passo completo. +Consulte o guia de [Primeiros passos](/pt-br/getting-started) para um passo a passo completo. \ No newline at end of file diff --git a/docs/ru/dashboard.mdx b/docs/ru/dashboard.mdx index d9ccf3d5..4009c657 100644 --- a/docs/ru/dashboard.mdx +++ b/docs/ru/dashboard.mdx @@ -1,10 +1,10 @@ --- -title: Dashboard +title: Панель управления description: "Мониторьте сеансы агентов, проверяйте вызовы инструментов и управляйте политиками" icon: chart-line --- -Панель управления failproofai — это локальное веб-приложение для мониторинга сеансов вашего AI-агента и управления политиками. Узнайте, что делал ваш агент, пока вас не было. +Панель управления failproofai — это локальное веб-приложение для мониторинга сеансов вашего AI-агента и управления политиками. Узнайте, что делали ваши агенты, пока вас не было. --- @@ -14,91 +14,91 @@ icon: chart-line failproofai ``` -Открывается на `http://localhost:8020`. +Открывается по адресу `http://localhost:8020`. -Панель управления читает данные непосредственно из файловой системы — ваши папки проектов Claude Code и файлы конфигурации failproofai. Ничего не записывается в удалённый сервис. +Панель управления считывает данные локального проекта, сеанса и конфигурации failproofai непосредственно из файловой системы. Дополнительные функции с аутентификацией, такие как напоминания об аудите и приглашения, отправляют информацию, необходимую для этих запросов (включая адреса электронной почты), на удалённые API. --- ## Страницы -### Projects +### Проекты -Список всех найденных на вашем компьютере проектов Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ и Hermes. Проекты Claude обнаруживаются из `~/.claude/projects/` (или пути, установленного в `CLAUDE_PROJECTS_PATH`); проекты Codex обнаруживаются путём сканирования каждой транскрипции под `~/.codex/sessions///
/*.jsonl` и группировки по `cwd`, записанному в первой записи каждого сеанса; проекты Copilot CLI обнаруживаются путём сканирования каждого `~/.copilot/session-state//workspace.yaml` (настраивается через `COPILOT_HOME`) и группировки по полю `cwd`; проекты Cursor Agent обнаруживаются путём сканирования метаданных для каждого сеанса под `~/.cursor/agent-sessions//` (настраивается через `CURSOR_HOME`, со счётом `conversations/` и `sessions/` в качестве резервных вариантов) для скаляра `cwd` в `meta.json` / `session.json` / `workspace.yaml`; проекты OpenCode обнаруживаются путём запроса к его БД SQLite на `~/.local/share/opencode/opencode.db` через `opencode db --format json` (мы читаем таблицы `session` и `project` и группируем по `project_id`); проекты Pi обнаруживаются путём сканирования транскрипций JSONL для каждого сеанса под `~/.pi/agent/sessions//_.jsonl` (настраивается через `PI_SESSIONS_DIR`) и извлечения `cwd` из первой записи каждого сеанса; сеансы шлюза Hermes читаются непосредственно из его хранилища SQLite на `~/.hermes/state.db` (настраивается через `HERMES_DB_PATH`) и группируются в проекты `hermes-` по `source` (Slack/Telegram/cli/cron — сеансы шлюза не имеют cwd). Проект, который использовался несколькими CLI, отображается как одна строка со всеми соответствующими значками. Используйте выпадающее меню **CLI** над таблицей для фильтрации по конкретному агенту; URL сохраняет ваш выбор как `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Отображает все проекты Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity и Goose, найденные на вашем компьютере. Проекты Claude обнаруживаются из `~/.claude/projects/` (или пути, установленного через `CLAUDE_PROJECTS_PATH`); проекты Codex обнаруживаются путём сканирования всех транскриптов в `~/.codex/sessions///
/*.jsonl` и группировки по `cwd`, записанному в первой записи сеанса; проекты Copilot CLI обнаруживаются путём сканирования каждого `~/.copilot/session-state//workspace.yaml` (настраивается через `COPILOT_HOME`) и группировки по полю `cwd`; проекты Cursor Agent обнаруживаются путём сканирования метаданных для каждого сеанса в `~/.cursor/agent-sessions//` (настраивается через `CURSOR_HOME`, с `conversations/` и `sessions/` в качестве резервных вариантов) в поиске скаляра `cwd` в `meta.json` / `session.json` / `workspace.yaml`; проекты OpenCode обнаруживаются путём запроса к его SQLite БД в `~/.local/share/opencode/opencode.db` через `opencode db --format json` (мы читаем таблицы `session` и `project` и группируем по `project_id`); проекты Pi обнаруживаются путём сканирования транскриптов JSONL для каждого сеанса в `~/.pi/agent/sessions//_.jsonl` (настраивается через `PI_SESSIONS_DIR`) и извлечения `cwd` из первой записи каждого сеанса; сеансы шлюза Hermes считываются непосредственно из его SQLite хранилища в `~/.hermes/state.db` (настраивается через `HERMES_DB_PATH`) и группируются в проекты `hermes-` по `source` (Slack/Telegram/cli/cron — сеансы шлюза не имеют cwd); сеансы шлюза OpenClaw считываются из `~/.openclaw/agents//sessions/*.jsonl` и группируются в проекты `openclaw-` (также без cwd); проекты Factory Droid обнаруживаются из транскриптов JSONL в `~/.factory/sessions//*.jsonl` и группируются по cwd; проекты Devin из её SQLite БД в `~/.local/share/devin/cli/sessions.db` (группируются по `working_directory` каждого сеанса); проекты Antigravity из транскриптов JSONL в `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` и группируются по cwd; и проекты Goose из её SQLite БД в `~/.local/share/goose/sessions/sessions.db` (группируются по `working_dir` каждого сеанса). Проект, используемый несколькими CLI, отображается в виде одной строки со всеми соответствующими бейджами. Используйте выпадающее меню **CLI** над таблицей для фильтрации по конкретному агенту CLI; URL сохраняет ваш выбор как `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Каждый проект показывает: -- Имя проекта (производное от пути папки) -- Значок CLI — `Claude Code` (оранжевый), `OpenAI Codex` (фиолетовый), `GitHub Copilot` (синий), `Cursor Agent` (изумруд), `OpenCode` (янтарь), `Pi` (розовый) и/или `Hermes` (индиго) -- Дата последней активности сеанса +- Имя проекта (производное от пути к папке) +- Бейдж CLI — `Claude Code` (оранжевый), `OpenAI Codex` (фиолетовый), `GitHub Copilot` (синий), `Cursor Agent` (изумрудный), `OpenCode` (янтарный), `Pi` (розовый) и/или `Hermes` (индиго) +- Дата самой свежей активности сеанса -Щёлкните по проекту, чтобы просмотреть его сеансы. +Нажмите на проект, чтобы увидеть его сеансы. -### Sessions +### Сеансы -Список всех сеансов в проекте. Каждый сеанс показывает: +Отображает все сеансы в проекте. Каждый сеанс показывает: - ID сеанса -- Временные метки начала и конца +- Временные метки начала и окончания - Количество вызовов инструментов -- Счётчик активности хуков (срабатывания политик) +- Счётчик активности хука (политики, которые сработали) -Используйте фильтр диапазона дат и поиск по ID сеанса для уточнения списка. Сеансы постранично. +Используйте фильтр диапазона дат и поиск по ID сеанса для сужения списка. Сеансы разбиты на страницы. -Щёлкните по сеансу, чтобы открыть средство просмотра сеанса. +Нажмите на сеанс, чтобы открыть просмотр сеанса. -### Session viewer +### Просмотр сеанса -Средство просмотра сеанса отвечает на ключевой вопрос для автономных агентов: что сделал агент и остался ли он на курсе? Значок CLI рядом с заголовком указывает, является ли сеанс транскрипцией Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi или Hermes. Он показывает временную шкалу всего, что произошло в сеансе: +Просмотр сеанса ответит на ключевой вопрос для автономных агентов: что сделал агент и остался ли он в курсе? Бейдж CLI рядом с заголовком указывает, является ли сеанс транскриптом Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity или Goose. Он показывает временную шкалу всего, что произошло в сеансе: -- **Messages** — текстовые ответы Claude и подсказки пользователя -- **Tool calls** — каждый инструмент, который вызвал Claude, с его входными и выходными данными -- **Policy activity** — для каждого вызова инструмента, какие политики срабатывали и какое решение они вернули +- **Сообщения** - текстовые ответы Claude и подсказки пользователя +- **Вызовы инструментов** - каждый инструмент, который вызвал Claude, с его вводом и выводом +- **Активность политики** - для каждого вызова инструмента, какие политики сработали и какое решение они вернули -Панель статистики вверху показывает длительность сеанса, общее количество вызовов инструментов и сводку решений хуков (счётчики allow / deny / instruct). +Панель статистики в верхней части показывает продолжительность сеанса, общее количество вызовов инструментов и сводку решений хука (количество allow / deny / instruct). -Нажмите кнопку **Download Logs** для экспорта сеанса. Для сеансов Claude Code, Codex, Copilot, Cursor и Pi вы получаете исходную транскрипцию JSONL на диске в исходном виде; для OpenCode (чьи сеансы хранятся в SQLite, а не на диске) вы получаете JSON-документ, отражающий основные таблицы `session` / `messages` / `parts`. +Нажмите кнопку **Download Logs**, чтобы экспортировать сеанс. Для сеансов Claude Code, Codex, Copilot, Cursor и Pi вы получаете исходный транскрипт JSONL на диске байт-в-байт; для OpenCode (чьи сеансы находятся в SQLite, а не на диске) вы получаете JSON-документ, отражающий базовые таблицы `session` / `messages` / `parts`. -### Audit +### Аудит -Доклад, выстроенный с учётом особенностей вашего агента, о том, как он на самом деле вёл себя в прошлых сеансах. Выполняет то же сканирование, что и CLI `failproofai audit`, но отображает это как одноэкранный проверяемый постер + четыре раздела ниже видимой области: +Доклад, ориентированный на личность, о том, как ваш агент на самом деле вёл себя в прошлых сеансах. Запускает одно и то же сканирование, что и CLI `failproofai audit`, но отображает его как однооэкранный акционный плакат + четыре раздела ниже сгиба: -1. **Poster** — заполняет первый видимый экран. Автономный регион захвата PNG с логотипом failproof_ai + метка аудита · индекс архетипа (`№ NN из 08`) + дата аудита · числовой счёт (0–100) + таблетка рангового процентиля (`top 15%`) · имя архетипа (один из `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + полоса из 3 ключевых слов · строка редкости `// только N% агентов имеют этот архетип` · пиксельная плитка сигилла 8×8 · нижний колонтитул `audit yours → failproof.ai`. Три кнопки общего доступа находятся прямо за пределами поля захвата: `post your archetype` (намерение X), `share on linkedin`, `download poster`. Захват выполняется через `html-to-image`, поэтому PNG совпадает с отображением на экране пиксель в пиксель (пунктирные границы, маска логотипа SVG, градиенты, метрики шрифтов — всё сохраняется). -2. **Strengths** — спокойный ✓ список поведения, которое ваш агент уже выполняет правильно, полученный из данных живого аудита (чистая скорость вызовов инструментов, без прямых push на main, ноль утечек учётных данных, нет волн повторных попыток) — каждое появляется только когда соответствующая политика имеет чистый учёт во время окна аудита. -3. **Quirks** — таблица того, что прошло, ранжированная по степени серьёзности: `when · what slipped + the policy that would've caught it · severity pill · seen`, где повторяемость читается как `new` (один раз), `N× seen` (2–9 раз) или `recurring` (10+). -4. **How to improve** — спокойный список строк, по одной на каждую назначенную политику: имя политики белым, однострочное описание, команда установки + кнопка копирования на правой стороне. Заголовок раздела читает `enable all N → projected · ` (счёт, который вы достигли бы при каждом исправлении), и его кнопка `[install all]` копирует объединённую команду `failproofai policy add a b c …` для каждой назначенной политики. -5. **Come back better** — две карточки бок о бок. Слева: установить напоминание (выбор кадентности `3d` / `7d` / `14d` / `30d`; сохраняется через `/api/auth/reminder` после аутентификации). Справа: разблокировать привилегии failproof — `invite a friend` открывает модальное окно, которое принимает список электронных адресов друзей, разделённых запятой/пробелом/новой строкой (макс. 10 за отправку), публикует их на `/api/audit/invite`, которое пересылает на `POST /v0/invite` сервера API. Сервер API отправляет одно электронное письмо на одного получателя с адреса `invite@failproof.ai` с добавлением отправителя в Cc и установкой `Reply-To`, чтобы получатель видел, кто его пригласил, а отправитель получил копию в своём почтовом ящике. Анонимные пользователи сначала проходят через `AuthDialog`, чтобы электронный адрес отправителя был известен до отправки приглашений. Исполнение прав / привилегий — это дальнейшая работа. +1. **Плакат** — заполняет первый просмотр. Независимый регион PNG-захвата с логотипом failproof_ai + метка аудита · индекс архетипа (`№ NN из 08`) + дата аудита · числовой балл (0–100) + таблетка процентиля (`top 15%`) · имя архетипа (один из `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + полоса с 3 ключевыми словами · строка редкости `// only N% of agents are this archetype` · сигил-плитка 8×8 пиксель · подвал `audit yours → failproof.ai`. Три кнопки обмена находятся сразу за пределами поля захвата: `post your archetype` (намерение X), `share on linkedin`, `download poster`. Захват выполняется через `html-to-image`, поэтому PNG соответствует экранному рендеру пиксель-в-пиксель (пунктирные границы, маска логотипа SVG, градиенты, метрики шрифта — всё сохраняется). +2. **Сильные стороны** — спокойный ✓ список строк поведения, которое ваш агент уже делает правильно, полученный из данных живого аудита (чистый коэффициент вызовов инструментов, без прямых толчков в main, нулевые утечки учётных данных, нулевые штормы повторных попыток) — каждая отображается только когда соответствующая политика имеет чистую историю в окне аудита. +3. **Особенности** — таблица того, что прошло сквозь пальцы, ранжированная по степени важности: `when · what slipped + the policy that would've caught it · severity pill · seen`, где повторяемость читается как `new` (один раз), `N× seen` (2–9 раз) или `recurring` (10+). +4. **Как улучшить** — спокойный список строк, по одному на рекомендуемую политику: имя политики белым, однострочное описание, команда установки + кнопка копирования с правой стороны. Заголовок раздела читается как `enable all N → projected · ` (балл, который вы достигли бы при применении каждого исправления), и его кнопка `[install all]` копирует объединённую команду `failproofai policy add a b c …` для каждой рекомендуемой политики. +5. **Come back better** — две карточки рядом. Слева: установить напоминание (выбор интервала `3d` / `7d` / `14d` / `30d`; сохраняется через `/api/auth/reminder` после аутентификации). Справа: разблокировать привилегии failproof — `invite a friend` открывает модальное окно, которое принимает список адресов электронной почты друзей, разделённые запятыми/пробелами/новыми строками (максимум 10 за отправку), отправляет их на `/api/audit/invite`, которая перенаправляет на `POST /v0/invite` api-сервера. Api-сервер отправляет одно письмо на получателя с адреса `invite@failproof.ai` с копией отправителю и установленным `Reply-To`, поэтому получатель видит, кто его пригласил, а отправитель получает копию в своем почтовом ящике. Анонимные пользователи маршрутизируются сначала через `AuthDialog`, чтобы электронная почта отправителя была известна до отправки приглашений. Выполнение прав и привилегий — это последующее действие. -Работает с помощью среды выполнения `failproofai audit` — см. [Audit CLI](/ru/cli/audit) для основного механизма сканирования, поддерживаемых флагов и инвариантов кэша для каждой транскрипции. Панель управления кэширует последний результат на `~/.failproofai/audit-dashboard.json` (режим `0600`, одиночный слот, новые запуски переписывают) поэтому повторные посещения мгновенны; **кэш для каждой транскрипции и весь кэш результатов отклоняются при чтении один раз они старше 7 дней**, поэтому панель управления никогда молча не обслуживает неделю старого результата — прошлый TTL `/audit` падает в пустое состояние и подсказывает свежий запуск. Нажатие `[ re-audit now ]` рядом с нижней частью отчёта публикует `/api/audit/run` с `noCache: true` — перепроверка обходит кэш для каждой транскрипции и повторно сканирует каждую транскрипцию с нуля вместо молчаливого возврата кэшированного результата — и панель управления опрашивает `/api/audit/status` на частоте 1 Гц до завершения запуска; липкая розовая полоса прогресса закрепляется в верхней части видимой области во время запуска с истёкшим таймером, и свежий результат переставляется на место при успехе (нет полной перезагрузки страницы; неудачная перепроверка оставляет предыдущий отчёт неповреждённым). При отказе полоса становится красной с копией, предусмотренной из `RerunError.kind` (`timeout` / `network` / `post_failed`). Пустое состояние (отсутствие кэша или истекший) и состояние нулевых сеансов (кэш существует, но сканирование не нашло транскрипции) отображаются отдельно. +Управляется временем выполнения `failproofai audit` — см. [Audit CLI](/ru/cli/audit) для механизма базового сканирования, поддерживаемых флагов и инвариантов кэша для каждого транскрипта. Панель управления кэширует последний результат в `~/.failproofai/audit-dashboard.json` (режим `0600`, один слот, новые прогоны перезаписывают) так что повторные посещения происходят мгновенно; **оба кэши (для каждого транскрипта и общий результат) отклоняются при чтении, когда они старше 7 дней**, так что панель управления никогда не молча не служит недельный результат — после TTL `/audit` падает в его пустое состояние и предлагает свежий прогон. Нажимая `[ re-audit now ]` рядом с концом доклада, отправляет POST на `/api/audit/run` с `noCache: true` — повторный аудит обходит кэш для каждого транскрипта и повторно сканирует каждый транскрипт с нуля, а не молча возвращает кэшированный результат — и панель управления опрашивает `/api/audit/status` при 1Hz до завершения прогона; клейкая розовая полоса прогресса прикрепляется к верхней части области просмотра во время прогона с истёкшим таймером, и свежий результат встаёт на место при успехе (без полной перезагрузки страницы; неудачный повторный аудит оставляет предыдущий отчёт в целости). При отказе полоса становится красной с копией, обусловленной `RerunError.kind` (`timeout` / `network` / `post_failed`). Пустое состояние (нет кэша или истёк) и нулевое состояние сеансов (кэш существует, но сканирование не нашло транскриптов) отображаются отдельно. -### Policies +### Политики Двухвкладочная страница для управления политиками и проверки активности. - - - Выберите несколько агентов CLI, которых защищает failproofai, из одной панели — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi и Hermes все имеют строку со статусом установки (`Active` / `Detected` / `Inactive`), путём пользовательской области видимости и фирменный цветной акцент. Отметьте или снимите отметку с CLI, которые вы хотите, и нажмите `Apply changes` для установки/удаления разницы за один шаг. CLI, чьи двоичные файлы обнаружены в PATH, предварительно отмечены. - - Переключайте отдельные политики вкл/выкл одним щелчком (записывает в `~/.failproofai/policies-config.json` — общее для каждого установленного CLI) - - Разверните политику для настройки её параметров (для политик, поддерживающих `policyParams`) - - Установите путь пользовательского файла политик + + - Мульти-выбор того, какие агенты CLI защищает failproofai с одной панели — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi и Hermes все имеют строку со статусом установки (`Active` / `Detected` / `Inactive`), путём настроек пользовательской области и акцентом с цветом бренда. Установите или снимите флажки для CLI, которые вы хотите, и нажмите `Apply changes`, чтобы установить/удалить различие за один раз. CLI, чей бинарный файл обнаружен в PATH, предварительно проверяются. + - Переключайте отдельные политики с помощью одного щелчка (записывает в `~/.failproofai/policies-config.json` — общие для каждого установленного CLI) + - Разверните политику, чтобы настроить её параметры (для политик, которые поддерживают `policyParams`) + - Установите пользовательский путь файла политик - - - Полная постраничная история каждого события хука, срабатывающего во всех сеансах - - Фильтруйте по решению, типу события, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), имени политики или ID сеанса - - Каждая строка показывает: временную метку, имя политики, решение, значок CLI (оранжевый = Claude Code, фиолетовый = OpenAI Codex, синий = GitHub Copilot, изумруд = Cursor Agent, янтарь = OpenCode, розовый = Pi, индиго = Hermes), имя инструмента, ID сеанса и причину решений deny/instruct - - Щёлкните по ID сеанса, чтобы открыть его транскрипцию — средство просмотра автоматически обнаруживает, какой CLI срабатил хук (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) и отображает соответствующий значок CLI в заголовке + + - Полная разбитая на страницы история каждого события хука, которое произошло во всех сеансах + - Фильтровать по решению, типу события, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), названию политики или ID сеанса + - Каждая строка показывает: метку времени, имя политики, решение, бейдж CLI (оранжевый = Claude Code, фиолетовый = OpenAI Codex, синий = GitHub Copilot, изумрудный = Cursor Agent, янтарный = OpenCode, розовый = Pi, индиго = Hermes, сине-зелёный = OpenClaw, розово-красный = Factory Droid, фиолетово-синий = Devin, голубой = Antigravity, лайм = Goose), имя инструмента, ID сеанса и причину решений deny/instruct + - Нажмите на ID сеанса, чтобы открыть его транскрипт — средство просмотра автоматически определяет, какой CLI запустил хук (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) и отображает соответствующий бейдж CLI в заголовке --- -## Auto-refresh +## Авто-обновление -Панель управления имеет переключатель автоматического обновления в верхней навигации. Если он включен, текущая страница периодически обновляется, чтобы показывать новые сеансы и активность политик по мере их появления. Важно для мониторинга долгоживущих сеансов автономного агента. +Панель управления имеет переключатель авто-обновления в верхней навигации. Если это включено, текущая страница обновляется периодически, чтобы показывать новые сеансы и активность политик при их появлении. Эссенциально для мониторинга долгих сеансов автономного агента. --- ## Отключение страниц -Если вам нужны только некоторые части панели управления, установите `FAILPROOFAI_DISABLE_PAGES` на список имён страниц, разделённых запятыми: +Если вам нужны только некоторые части панели управления, установите `FAILPROOFAI_DISABLE_PAGES` в разделённый запятыми список имён страниц: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -110,7 +110,7 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai ## Настройка пути к проектам -По умолчанию панель управления читает из стандартного каталога проектов Claude Code. Переопределите его для пользовательских установок: +По умолчанию панель управления читает из стандартного каталога проектов Claude Code. Переопределите его для пользовательских настроек: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,30 +120,30 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## Доступ с хоста, отличного от localhost -При запуске панели управления в **режиме разработки** (`npm run dev`) и её доступе с имени хоста, отличного от `localhost` — например, пользовательского домена, удалённого IP или туннелированного URL — вы можете увидеть предупреждение вроде: +При запуске панели управления в **режиме разработки** (`npm run dev`) и доступе к ней с имени хоста, отличного от `localhost` - например, пользовательского домена, удалённого IP или туннелированного URL - вы можете увидеть предупреждение типа: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Это Next.js блокирует кроссисточниковый доступ к его HMR (горячей перезагрузке модуля) веб-сокету, который является функцией только для разработки. Чтобы разрешить ваш хост, используйте флаг `--allowed-origins`: +Это Next.js блокирует кросс-источник доступ к своему вебсокету HMR (горячая перезагрузка модулей), который является функцией только для разработки. Чтобы разрешить ваш хост, используйте флаг `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -Для нескольких хостов или IP-адресов передайте список, разделённый запятыми: +Для нескольких хостов или IP передайте разделённый запятыми список: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -Вы также можете установить переменную окружения `FAILPROOFAI_ALLOWED_DEV_ORIGINS`: +Вы также можете установить переменную окружения `FAILPROOFAI_ALLOWED_DEV_ORIGINS` вместо этого: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Это применяется только к режиму разработки. При запуске `failproofai` (производственном режиме) нет веб-сокета HMR и нет проблемы с кроссисточниковым доступом к ресурсам разработки. +Это применяется только к режиму разработки. При запуске `failproofai` (режим производства) нет вебсокета HMR и нет проблемы кросс-источник ресурса разработки. \ No newline at end of file diff --git a/docs/ru/introduction.mdx b/docs/ru/introduction.mdx index e02edcaf..aea94655 100644 --- a/docs/ru/introduction.mdx +++ b/docs/ru/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI предоставляет AI агентам 39 встроенных политик защиты, которые выявляют циклы, утечки секретов, деструктивные вызовы инструментов и многое другое в единой установке." +description: "FailproofAI предоставляет AI-агентам 39 встроенных политик отказа, которые перехватывают циклы, утечки секретов, деструктивные вызовы инструментов и многое другое при единственной установке." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Хуки и политики для **обработки сбоев AI**, **восстановления после ошибок** и **надёжности LLM**. Держите ваших AI агентов надёжными и работающими автономно на **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** и **Agents SDK**. +Хуки и политики для **обработки отказов AI**, **восстановления после ошибок** и **надёжности LLM**. Делайте ваших AI-агентов надёжными и способными работать автономно с **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** и **Agents SDK**. -AI агенты падают предсказуемым образом. Они выполняют деструктивные команды, утекают секреты, отходят от задачи, застревают в циклах или пушат прямо в main. Без надзора, небольшие сбои каскадируют в отказы, утечки учётных данных и потерю работы. +AI-агенты отказывают предсказуемо. Они выполняют деструктивные команды, утекают секреты, отклоняются от задачи, застревают в циклах или пушат прямо в main. Если оставить без присмотра, небольшие сбои каскадируют в отказы в обслуживании, утечки учётных данных и потерю работы. -FailproofAI решает эту проблему с помощью **политик**. Эти правила перехватывают каждый вызов инструмента агента, чтобы **обнаружить сбои**, **смягчить их** (блокировать, инструктировать, санитизировать) и **оповестить вас**, когда требуется внимание. Локальная панель позволяет вам просмотреть каждый вызов инструмента, сбой агента и действие восстановления впоследствии. +FailproofAI решает эту проблему с помощью **политик**. Эти правила встраиваются в каждый вызов инструмента агента, чтобы **обнаруживать отказы**, **смягчать их** (блокировать, давать инструкции, санитизировать) и **оповещать вас** когда требуется внимание. Локальная панель управления позволяет вам просмотреть каждый вызов инструмента, отказ агента и действие восстановления впоследствии. -Никакие данные не покидают вашу машину. +Расшифровки и оценка политик остаются на вашем компьютере. Данные отправляются только когда вы явно используете онлайн-функцию, такую как аутентифицированные напоминания об аудите или приглашения. -## Начните с этого +## Начало работы - Блокируйте деструктивные команды, предотвращайте утечки секретов, держите агентов внутри границ проекта и многое другое. Всё готово к использованию. + Блокируйте деструктивные команды, предотвращайте утечки секретов, держите агентов в пределах границ проекта и многое другое. Всё из коробки. - Напишите свои правила на JavaScript с простым API allow / deny / instruct. + Напишите свои собственные правила на JavaScript с простым API allow / deny / instruct. - Смотрите, что делали ваши агенты, пока вас не было. Просматривайте сессии, проверяйте вызовы инструментов, смотрите, где срабатывали политики. + Смотрите, что делали ваши агенты пока вас не было. Просматривайте сессии, изучайте вызовы инструментов, проверяйте где срабатывали политики. - Настраивайте любую политику без кода. Устанавливайте разрешённые списки, защищённые ветки или пороги для каждого проекта или глобально. + Настраивайте любую политику без кода. Устанавливайте списки разрешённых, защищённые ветки или пороги для каждого проекта или глобально. @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # включить политики (или пропустить — `failproofai` предложит установить их при первом запуске) -failproofai # запустить панель +failproofai policies --install # включить политики (или пропустить — `failproofai` предложит их установить при первом запуске) +failproofai # запустить панель управления ``` -Смотрите руководство [Начало работы](/ru/getting-started) для полного пошагового описания. \ No newline at end of file +Смотрите руководство [Начало работы](/ru/getting-started) для полного пошагового руководства. \ No newline at end of file diff --git a/docs/tr/dashboard.mdx b/docs/tr/dashboard.mdx index fc29ce1c..7d1ad75d 100644 --- a/docs/tr/dashboard.mdx +++ b/docs/tr/dashboard.mdx @@ -1,14 +1,14 @@ --- -title: Pano -description: "Agent oturumlarını izleyin, araç çağrılarını gözden geçirin ve politikaları yönetin" +title: Kontrol Paneli +description: "Ajan oturumlarını izleyin, araç çağrılarını gözden geçirin ve politikaları yönetin" icon: chart-line --- -failproofai panosu, yapay zeka aracı oturumlarınızı izlemek ve politikaları yönetmek için yerel bir web uygulamasıdır. Aracılarınız sizi yokken neler yaptığını görün. +failproofai kontrol paneli, AI ajan oturumlarınızı izlemek ve politikaları yönetmek için yerel bir web uygulamasıdır. Ajanlarınız sizin yokken neler yaptığını görün. --- -## Panoyu başlatma +## Kontrol panelini başlatma ```bash failproofai @@ -16,7 +16,7 @@ failproofai `http://localhost:8020` adresinde açılır. -Pano, dosya sisteminden doğrudan okur — Claude Code proje klasörlerinizi ve failproofai yapılandırma dosyalarınızı. Uzak bir hizmete hiçbir şey yazılmaz. +Kontrol paneli, yerel proje, oturum ve failproofai yapılandırma verilerini doğrudan dosya sisteminden okur. Denetim hatırlatmaları ve davetiyeler gibi isteğe bağlı kimlik doğrulamalı özellikler, bu istekler için gerekli bilgileri (e-posta adresleri dahil) uzak API'lere gönderir. --- @@ -24,14 +24,14 @@ Pano, dosya sisteminden doğrudan okur — Claude Code proje klasörlerinizi ve ### Projeler -Makinenizde bulunan tüm Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ ve Hermes projelerini listeler. Claude projeleri `~/.claude/projects/` adresinden keşfedilir (veya `CLAUDE_PROJECTS_PATH` tarafından ayarlanan yol); Codex projeleri `~/.codex/sessions///
/*.jsonl` altındaki her transkripti tarayarak ve her oturumun ilk kaydında kaydedilen `cwd` ye göre gruplandırılarak keşfedilir; Copilot CLI projeleri her `~/.copilot/session-state//workspace.yaml` tarayarak keşfedilir (`COPILOT_HOME` üzerinden yapılandırılabilir) ve `cwd` alanına göre gruplandırılır; Cursor Agent projeleri `~/.cursor/agent-sessions//` altındaki oturum başına meta verileri tarayarak keşfedilir (`CURSOR_HOME` üzerinden yapılandırılabilir, `conversations/` ve `sessions/` geri dönüş olarak problanır) `meta.json` / `session.json` / `workspace.yaml` içindeki `cwd` skaler değeri için; OpenCode projeleri `~/.local/share/opencode/opencode.db` adresindeki SQLite DB'sini `opencode db --format json` üzerinden sorgulayarak keşfedilir (`session` ve `project` tablolarını okuyuz ve `project_id` ye göre gruplandırırız); Pi projeleri `~/.pi/agent/sessions//_.jsonl` altındaki oturum başına JSONL transkriptlerini tarayarak keşfedilir (`PI_SESSIONS_DIR` üzerinden yapılandırılabilir) ve her oturumun ilk kaydından `cwd` yi çekeriz; Hermes ağ geçidi oturumları doğrudan `~/.hermes/state.db` (`HERMES_DB_PATH` üzerinden yapılandırılabilir) adresindeki SQLite deposundan okunur ve `source` (Slack/Telegram/cli/cron — ağ geçidi oturumlarının cwd'si yoktur) tarafından `hermes-` projelerine gruplandırılır. Birden çok CLI tarafından kullanılan bir proje, tüm eşleşen rozetleriyle tek bir satır olarak işlenir. Belirli bir aracı CLI'ye göre filtrelemek için tablonun üstündeki **CLI** açılır menüsünü kullanın; URL seçiminizi `?cli=claude|codex|copilot|cursor|opencode|pi|hermes` olarak korur. +Makinenizde bulunan tüm Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity ve Goose projelerini listeler. Claude projeleri `~/.claude/projects/` dizininden (veya `CLAUDE_PROJECTS_PATH` tarafından ayarlanan yoldan) keşfedilir; Codex projeleri `~/.codex/sessions///
/*.jsonl` altındaki her transkripti tarayarak ve her oturumun ilk kaydında kayıtlı `cwd` ile gruplandırılarak keşfedilir; Copilot CLI projeleri her `~/.copilot/session-state//workspace.yaml` dosyasını (`COPILOT_HOME` aracılığıyla yapılandırılabilir) tarayarak ve `cwd` alanına göre gruplandırılarak keşfedilir; Cursor Agent projeleri `~/.cursor/agent-sessions//` altındaki oturum başına meta verileri tarayarak (`CURSOR_HOME` aracılığıyla yapılandırılabilir, `conversations/` ve `sessions/` yedek olarak kullanılır) `meta.json` / `session.json` / `workspace.yaml` içinde `cwd` skaler değeri arayarak keşfedilir; OpenCode projeleri `~/.local/share/opencode/opencode.db` adresindeki SQLite DB'sini `opencode db --format json` aracılığıyla sorgulayarak keşfedilir (`session` ve `project` tablolarını okuyuz ve `project_id` ile gruplandırırız); Pi projeleri `~/.pi/agent/sessions//_.jsonl` altındaki oturum başına JSONL transkriptlerini (`PI_SESSIONS_DIR` aracılığıyla yapılandırılabilir) tarayarak ve her oturumun ilk kaydından `cwd` çekerek keşfedilir; Hermes ağ geçidi oturumları `~/.hermes/state.db` adresindeki SQLite deposundan doğrudan okunur (`HERMES_DB_PATH` aracılığıyla yapılandırılabilir) ve `source` tarafından (Slack/Telegram/cli/cron) `hermes-` projelerine gruplandırılır — ağ geçidi oturumlarının cwd'si yoktur; OpenClaw ağ geçidi oturumları `~/.openclaw/agents//sessions/*.jsonl` dizininden okunur ve `openclaw-` projelerine gruplandırılır (aynı şekilde cwd'siz); Factory Droid projeleri `~/.factory/sessions//*.jsonl` adresindeki JSONL transkriptlerinden keşfedilir ve cwd ile gruplandırılır; Devin projeleri `~/.local/share/devin/cli/sessions.db` adresindeki SQLite DB'sinden (her oturumun `working_directory` ile gruplandırılır); Antigravity projeleri `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` adresindeki JSONL transkriptlerinden ve cwd ile gruplandırılarak keşfedilir; ve Goose projeleri `~/.local/share/goose/sessions/sessions.db` adresindeki SQLite DB'sinden (her oturumun `working_dir` ile gruplandırılır). Birden çok CLI tarafından kullanılan bir proje, tüm eşleşen rozet ile tek bir satır olarak gösterilir. Belirli bir ajan CLI'sine göre filtrelemek için tablonun üstündeki **CLI** açılır menüsünü kullanın; URL seçiminizi `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` olarak korur. Her proje şunları gösterir: - Proje adı (klasör yolundan türetilmiş) -- CLI rozeti — `Claude Code` (turuncu), `OpenAI Codex` (mor), `GitHub Copilot` (mavi), `Cursor Agent` (zümrüt), `OpenCode` (kehribar), `Pi` (pembe), ve/veya `Hermes` (çivit) +- CLI rozeti — `Claude Code` (turuncu), `OpenAI Codex` (mor), `GitHub Copilot` (mavi), `Cursor Agent` (yeşilimtırak), `OpenCode` (kehribar), `Pi` (pembe) ve/veya `Hermes` (çivit mavisi) - En son oturum etkinliğinin tarihi -Oturumlarını görmek için bir projeyi tıklayın. +Oturumlarını görmek için bir projeye tıklayın. ### Oturumlar @@ -39,66 +39,66 @@ Bir proje içindeki tüm oturumları listeler. Her oturum şunları gösterir: - Oturum ID'si - Başlangıç ve bitiş zaman damgaları - Araç çağrılarının sayısı -- Kancı etkinliği sayısı (tetiklenen politikalar) +- Hook etkinlik sayısı (politikaların ateşlenmesi) -Listeyi daraltmak için tarih aralığı filtresini ve oturum ID aramasını kullanın. Oturumlar sayfalanır. +Listeyi daraltmak için tarih aralığı filtresini ve oturum ID'si aramasını kullanın. Oturumlar sayfa bölümlüdür. -Oturum görüntüleyiciyi açmak için bir oturumu tıklayın. +Oturum görüntüleyicisini açmak için bir oturuma tıklayın. -### Oturum görüntüleyici +### Oturum görüntüleyicisi -Oturum görüntüleyici, otonom aracılar için temel soruyu yanıtlar: aracı ne yaptı ve hız tuttu mu? Başlığın yanındaki CLI rozeti, oturumun Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi veya Hermes transkripti olup olmadığını gösterir. Bir oturumda gerçekleşen her şeyin bir zaman çizelgesini gösterir: +Oturum görüntüleyicisi, otonom ajanlar için temel soruyu yanıtlar: ajan ne yaptı ve yolda kaldı mı? Başlığın yanındaki CLI rozeti, oturumun Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity veya Goose transkripti olup olmadığını gösterir. Bir oturumda meydana gelen her şeyin zaman çizelgesini gösterir: -- **İletiler** - Claude'un metin yanıtları ve kullanıcı istemleri -- **Araç çağrıları** - Claude'un çağırdığı her araç, girişi ve çıktısıyla -- **Politika etkinliği** - Her araç çağrısı için, hangi politikalar tetiklendi ve ne kararı döndürdü +- **İletiler** - Claude'un metin yanıtları ve kullanıcı istekleri +- **Araç çağrıları** - Claude'un çağırdığı her araç, giriş ve çıkışı ile birlikte +- **Politika etkinliği** - Her araç çağrısı için hangi politikaların ateşlendiği ve hangi kararı döndürdüğü -Üstteki istatistik çubuğu oturum süresini, toplam araç çağrılarını ve kanca kararlarının bir özetini gösterir (allow / deny / instruct sayıları). +Üstteki istatistik çubuğu oturum süresini, toplam araç çağrılarını ve hook kararlarının bir özetini (allow / deny / instruct sayıları) gösterir. -Oturumu dışa aktarmak için **İndirme Günlükleri** düğmesini tıklayın. Claude Code, Codex, Copilot, Cursor ve Pi oturumları için orijinal disk üzerindeki JSONL transkriptini bayt-bayt alırsınız; OpenCode (oturumları diskte değil SQLite'de yaşayan) için temel `session` / `messages` / `parts` tablolarını yansıtan bir JSON belgesi alırsınız. +Oturumu dışa aktarmak için **İndirme Günlükleri** düğmesine tıklayın. Claude Code, Codex, Copilot, Cursor ve Pi oturumları için orijinal disk üzerindeki JSONL transkriptini byte-for-byte alırsınız; OpenCode oturumları (oturumları SQLite'de, diskte değil) için `session` / `messages` / `parts` tablolarını yansıtan bir JSON belgesi alırsınız. ### Denetim -Aracınızın geçmiş oturumlar arasında gerçekten nasıl davrandığına dair kişilik odaklı bir rapor. `failproofai audit` CLI ile aynı taramasını çalıştırır ancak bunu tek ekran paylaşılabilir poster + aşağıya katlanmış dört bölüm olarak işler: +Ajanınızın geçmiş oturumlar genelinde gerçekten nasıl davrandığı hakkında kişilik odaklı bir rapor. `failproofai audit` CLI ile aynı taramasını çalıştırır ancak bunu tek ekranlı paylaşılabilir bir poster + dört alt bölüm olarak gösterir: -1. **Poster** — ilk görünüm penceresini doldurur. failproof_ai sözcüğü işareti + denetim etiketi ile kendi içinde PNG yakalama bölgesi · arketip indeksi (`№ NN of 08`) + denetim tarihi · sayısal puan (0–100) + yüzdelik sıra hapı (`top 15%`) · arketip adı (`the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost` arasından biri) + 3 anahtar kelime şeridi · `// only N% of agents are this archetype` nadir bulunma satırı · 8×8 piksel sigil döşemesi · `audit yours → failproof.ai` alt bilgisi. Üç paylaş düğmesi yakalama kutusunun hemen dışında yer alır: `post your archetype` (X niyeti), `share on linkedin`, `download poster`. Yakalama `html-to-image` üzerinden çalışır, bu nedenle PNG ekranda işlenen görüntüyle piksel-piksel eşleşir (kesik çizgili sınırlar, SVG logo maskesi, degradeler, yazı tipi ölçümleri — hepsi korunur). -2. **Güçlü Yönler** — sakin ✓ satır listeniz, aracınızın zaten doğru yaptığı davranışlardan, canlı denetim verilerinden türetilmiş (temiz araç çağrısı oranı, ana hala doğrudan itilme yok, kimlik bilgisi sızıntısı yok, yeniden deneme fırtınaları yok) — her biri yalnızca ilgili politika denetim penceresi arasında temiz bir kayda sahip olduğunda ortaya çıkar. -3. **Tuhaflıklar** — sızdı, ciddiyet ve sıralanmışlık tablosu: `when · what slipped + the policy that would've caught it · severity pill · seen`, burada yineleme `new` (bir kez), `N× seen` (2–9 kez) veya `recurring` (10+) olarak okunur. -4. **Nasıl iyileştirilir** — sakin satır listesi, önerilen her politika için bir tane: politika adı beyazda, tek satırlı açıklama, yükleme komutu + sağ tarafta kopyala düğmesi. Bölüm başlığı `enable all N → projected · ` (her onarım uygulandıktan sonra ulaşacağınız puan) olarak okunur ve `[install all]` düğmesi önerilen tüm politikalar için birleştirilmiş `failproofai policy add a b c …` komutunu kopyalar. -5. **Daha iyi dön** — yan yana iki kart. Sol: bir anımsatıcı ayarla (`3d` / `7d` / `14d` / `30d` cadence seçici; `/api/auth/reminder` üzerinden kimlik doğrulaması yapıldıktan sonra kalıcıdır). Sağ: failproof avantajlarının kilidini aç — `invite a friend` virgül/boşluk/satır sonu ile ayrılmış bir arkadaş e-posta listesini (gönderme başına maksimum 10) alan ve `/api/audit/invite` adresine POSTlayan bir modal açar, bu da api-sunucusunun `POST /v0/invite` adresine iletir. API sunucusu her alıcıya `invite@failproof.ai` adresinden bir e-posta gönderir, gönderici Cc'd ve `Reply-To` ayarlanmıştır, bu nedenle alıcı kimin kendilerini davet ettiğini görür ve gönderici gelen kutusuna bir kopya alır. Anonim kullanıcılar gönderenin e-postası bilinmeden önce davetler gönderilmeyecek şekilde `AuthDialog` üzerinden yönlendirilir. Hak/avantajlar karşılanması bir takip görevidir. +1. **Poster** — ilk görüntüleme alanını doldurur. failproof_ai uyumlu yazı tipi + denetim etiketi içeren kendi kendine yeterli PNG-yakalama bölgesi · arketipi indeksi (`№ NN / 08`) + denetim tarihi · sayısal puan (0–100) + yüzdelik sıralama rozeti (`en iyi %15`) · arketipi adı (`iyimser`, `kovboy`, `kaşif`, `balık hafızası`, `paranoid mimar`, `hassas yapı ustası`, `çekiç` veya `hayalet` içinden biri) + 3 anahtar kelime şeridi · `// yalnızca ajanların %N'i bu arketiptedir` nadir kullanım satırı · 8×8 piksel sigil kutucuğu · `denetin → failproof.ai` altbilgisi. Üç paylaş düğmesi yakalama kutusunun hemen dışında yer alır: `arketipi paylaş` (X niyeti), `LinkedIn'de paylaş`, `posteryı indir`. Yakalama `html-to-image` aracılığıyla çalışır, bu nedenle PNG ekranda görünen görüntüyle piksele kadar eşleşir (kesikli kenarlıklar, SVG logo maskesi, degradeler, yazı tipi ölçütleri — tümü korunur). +2. **Güçlü Yönler** — sakin ✓ satır listesi ajanınızın zaten iyi yaptığı davranışlar, canlı denetim verilerinden türetilmiş (temiz araç çağrısı oranı, ana dalına doğrudan itme yok, sıfır kimlik bilgisi sızıntısı, sıfır yeniden deneme fırtınaları) — her biri yalnızca ilgili politikanın denetim penceresi boyunca temiz bir kaydı olduğunda gösterilir. +3. **Tuhaflıklar** — sızdığı şeylerin tablosu, önem derecesine göre sıralanmış: `ne zaman · ne sızdığı + onu yakalayacak politika · önem rozeti · görüldü`, burada yineleme `yeni` (bir kez), `N× görüldü` (2–9 kez) veya `yinelenen` (10+) olarak okunur. +4. **İyileştirme Şekli** — sakin satır listesi, önerilen her politika için bir tane: beyaz renkli politika adı, tek satırlık açıklama, kurulum komutu + sağ tarafta kopyala düğmesi. Bölüm başlığı `tümünü etkinleştir N → öngörülen · ` (her düzeltme uygulanmış durumdaki ulaşacağınız puan) ve `[tümünü yükle]` düğmesi her önerilen politika için birleştirilmiş `failproofai policy add a b c …` komutunu kopyalar. +5. **Daha iyi geri dönün** — yan yana iki kart. Sol: hatırlatıcı ayarlayın (`3d` / `7d` / `14d` / `30d` kadans seçici; kimlik doğrulaması yapıldıktan sonra `/api/auth/reminder` aracılığıyla kalıcı). Sağ: failproof avantajlarının kilidini açın — `bir arkadaşı davet et` virgülle/boşlukla/yeni satırla ayrılmış bir arkadaş e-postaları listesini alan bir modal açar (gönderim başına en fazla 10), bunları `/api/audit/invite` adresine GÖNDERIR, bu da api-sunucusunun `POST /v0/invite` adresine iletilir. API sunucusu `invite@failproof.ai` adresinden her alıcı için bir e-posta gönderir ve gönderen CC olarak ayarlanır ve `Reply-To` belirlenir, bu sayede alıcı kimi davet ettiğini görür ve gönderen gelen kutusunda bir kopya alır. Anonim kullanıcılar davetiyeler gönderilmeden önce gönderenin e-postası bilinmesi için `AuthDialog` aracılığıyla yönlendirilir. Hak / avantaj yerine getirme sonraki bir adımdır. -`failproofai audit` çalışma zamanı tarafından yönlendirilir — temel tarama motorunu, desteklenen bayrakları ve transkript başına önbellek değişmezlerini [Denetim CLI](/tr/cli/audit) adresinde görün. Pano en son sonucu `~/.failproofai/audit-dashboard.json` adresinde önbelleğe alır (mod `0600`, tek yuva, yeni çalıştırmalar üzerine yazar) böylece yeniden ziyaretler anlıktır; **hem transkript başına hem de bütün sonuç önbellekleri okuma sırasında 7 günden daha eski olduğunda reddedilir**, bu nedenle pano hiçbir zaman sessizce bir hafta eski sonuç sunmaz — TTL geçtikten sonra `/audit` boş durumuna düşer ve taze bir çalıştırma istenir. Raporun alt kısmına yakınında `[ re-audit now ]` öğesini tıklatmak `/api/audit/run` öğesine `noCache: true` ile POSTlar — yeniden denetim transkript başına önbelleği atlar ve her transkripti sessizce yapılan sonucu döndürmek yerine sıfırdan yeniden tarar — ve pano çalıştırma bitene kadar `/api/audit/status` adresini 1Hz'de yoklar; çalıştırma sırasında yapışkan pembe ilerleme şeridi görünüm penceresinin en üstüne sabitlenir ve geçen zamanlı sayaçla birlikte taze sonuç başarıda yerinde değişir (tam sayfa yeniden yüklemesi yok; başarısız yeniden denetim önceki raporu bozulmamış bırakır). Arızada şerit kırmızıya döner ve `RerunError.kind` kapalı kopya (`timeout` / `network` / `post_failed`). Boş durum (önbellek yok veya süresi dolmuş) ve sıfır oturum durumu (önbellek var ama tarama hiçbir transkript bulmadı) ayrı ayrı ortaya çıkarılır. +`failproofai audit` çalışması tarafından yönlendirilir — temel tarama motoru, desteklenen bayraklar ve transkript başına önbellek değişmezleri için [Denetim CLI](/tr/cli/audit) sayfasına bakın. Kontrol paneli en son sonucu `~/.failproofai/audit-dashboard.json` adresinde önbelleğe alır (`0600` modu, tek yuva, yeni çalıştırmalar üzerini yazar), böylece yeniden ziyaretler anlıktır; **hem transkript başına hem de bütün sonuç önbellekleri 7 günden eski olduklarında okunma sırasında reddedilir**, bu nedenle kontrol paneli hiçbir zaman sessizce bir haftaeski bir sonuç sunmaz — TTL geçtikten sonra `/audit` boş durumuna devam eder ve taze bir çalıştırma ister. Raporun alt tarafında `[ şimdi yeniden denetim ]` düğmesine tıklamak `/api/audit/run` adresine `noCache: true` ile POST gönderir — yeniden denetim transkript başına önbelleği atlar ve her transkripti sıfırdan yeniden tarar — ve kontrol paneli çalıştırma bitene kadar 1Hz'de `/api/audit/status` adresini yoklar; çalıştırma sırasında görüntüleme alanının en üstüne yapışan pembe bir ilerleme şeridi sabitlenir ve geçen bir zamanlayıcı ile birlikte, yeni sonuç başarı durumunda yerde değişir (tam sayfa yeniden yükleme yok; başarısız yeniden denetim önceki raporu bozulmamış bırakır). Başarısızlıkta şerit `RerunError.kind` (`timeout` / `network` / `post_failed`) kopyası olan kırmızıya döner. Boş durum (önbellek yok veya süresi dolmuş) ve sıfır oturum durumu (önbellek var ancak tarama transkript bulamadı) ayrı ayrı yüzeyde gösterilir. ### Politikalar -Politikaları yönetmek ve etkinliği gözden geçirmek için iki sekmeli bir sayfa. +Politikaları yönetmek ve etkinliği gözden geçirmek için iki sekmeli sayfa. - - Tek bir panelden hangi aracı CLI'lerin failproofai tarafından korunacağını çoklu seçim yapın — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi ve Hermes'in hepsinin yükleme durumu (`Active` / `Detected` / `Inactive`) olan bir satırı, kullanıcı kapsamı ayarları yolu ve marka renkli vurguyu vardır. İstediğiniz CLI'leri işaretleyin veya işareti kaldırın ve farkı bir adımda yüklemek/kaldırmak için `Apply changes` öğesine tıklayın. İkili PATH'de algılanan CLI'ler önceden işaretlenmiş. - - Tek tıklamayla bireysel politikaları açıp kapatın (`~/.failproofai/policies-config.json` adresine yazar — tüm yüklü CLI'ler arasında paylaşılır) - - Parametrelerini yapılandırmak için bir politikayı genişletin (`policyParams` destekleyen politikalar için) - - Özel politika dosyası yolunu ayarla + - Tek bir panelden failproofai'nin koruduğu ajan CLI'lerini çoklu seçme — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi ve Hermes'in tümü kurulum durumuna (`Active` / `Detected` / `Inactive`), kullanıcı kapsamı ayarları yoluna ve marka rengli aksan içeren bir satır bulunur. İstediğiniz CLI'leri işaretleyip `Değişiklikleri Uygula` düğmesine tıklayarak farkı bir adımda yükleyin/kaldırın. PATH'ta ikili dosyası algılanan CLI'ler önceden işaretlenmiş olur. + - Tekil politikaları tek tıkla açıp kapatın (`~/.failproofai/policies-config.json` yazılır — yüklü her CLI arasında paylaşılır) + - Bir politikayı genişleterek parametrelerini yapılandırın (`policyParams` desteği olan politikalar için) + - Özel bir politikalar dosyası yolu ayarlayın - - Tüm oturumlar arasında tetiklenen her kanca olayının tam sayfalı geçmişi - - Karar, olay türü, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), politika adı veya oturum ID'ye göre filtrele - - Her satır şunları gösterir: zaman damgası, politika adı, karar, CLI rozeti (turuncu = Claude Code, mor = OpenAI Codex, mavi = GitHub Copilot, zümrüt = Cursor Agent, kehribar = OpenCode, pembe = Pi, çivit = Hermes), araç adı, oturum ID ve deny/instruct kararları için neden - - Transkripti açmak için bir oturum ID'sine tıklayın — görüntüleyici hangi CLI'nin kancayı tetiklediğini otomatik algılar (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) ve başlıkta eşleşen CLI rozetini işler + - Tüm oturumlar genelinde ateşlenen her hook olayının tam sayfalandırılmış geçmişi + - Kararı, olay türünü, CLI'yi (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), politika adını veya oturum ID'sini göre filtreleyin + - Her satır şunları gösterir: zaman damgası, politika adı, karar, CLI rozeti (turuncu = Claude Code, mor = OpenAI Codex, mavi = GitHub Copilot, yeşilimtırak = Cursor Agent, kehribar = OpenCode, pembe = Pi, çivit mavisi = Hermes, deniz mavisi = OpenClaw, gül = Factory Droid, violet = Devin, cyan = Antigravity, limoni yeşil = Goose), araç adı, oturum ID'si ve deny/instruct kararlarının nedeni + - Transkriptini açmak için oturum ID'sine tıklayın — görüntüleyici hangi CLI'nin hook'u ateşlediğini otomatik olarak algılar (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) ve başlıkta eşleşen CLI rozetini gösterir --- -## Otomatik yenileme +## Otomatik Yenileme -Panonun üst gezinmesinde otomatik yenileme değiştirici vardır. Etkinleştirildiğinde, geçerli sayfa yeni oturumları ve politika etkinliğini göstermek için periyodik olarak yenilenir. Uzun süren otonom aracı oturumlarını izlemek için gereklidir. +Kontrol paneli üst gezinmede bir otomatik yenileme değiştiricisine sahiptir. Etkinleştirildiğinde, geçerli sayfa yeni oturumlar ve politika etkinlikleri göründüğünde göstermek için periyodik olarak yenilenir. Uzun süre çalışan otonom ajan oturumlarını izlemek için gereklidir. --- ## Sayfaları devre dışı bırakma -Panonun yalnızca bazı parçalarına ihtiyacınız varsa, `FAILPROOFAI_DISABLE_PAGES` öğesini virgülle ayrılmış sayfa adları listesine ayarlayın: +Kontrol panelinin yalnızca bazı kısımlarına ihtiyacınız varsa, `FAILPROOFAI_DISABLE_PAGES` ortam değişkenini virgülle ayrılmış sayfa adlarının bir listesi olarak ayarlayın: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -108,9 +108,9 @@ Geçerli değerler: `policies`, `projects`, `audit`. --- -## Projeler yolunun yapılandırılması +## Projeler yolunu yapılandırma -Varsayılan olarak, pano standart Claude Code projeleri dizininden okur. Özel kurulumlar için geçersiz kılın: +Varsayılan olarak, kontrol paneli standart Claude Code projeleri dizininden okur. Özel kurulumlar için bunu geçersiz kılın: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,19 +120,19 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## Localhost olmayan bir konaktan erişim -Panoyu **geliştirme modunda** (`npm run dev`) çalıştırırken ve `localhost` dışında bir ana bilgisayar adından erişirken — örneğin, özel bir etki alanı, uzak bir IP veya tünel oluşturulmuş bir URL — şöyle bir uyarı görebilirsiniz: +Kontrol panelini **geliştirme modunda** (`npm run dev`) çalıştırırken ve `localhost` dışında bir ana bilgisayar adından — örneğin özel bir etki alanı, uzak bir IP veya tünel yapılmış bir URL — erişirken şunun gibi bir uyarı görebilirsiniz: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Bu, Next.js'nin HMR (sıcak modül yeniden yüklemesi) websocketine çapraz kökenli erişimi engeller, bu da sadece geliştirme özelliğidir. Konağınıza izin vermek için `--allowed-origins` bayrağını kullanın: +Bu, Next.js'nin HMR (sıcak modül yeniden yükleme) web soketi'ne çapraz kaynaklı erişimi engellemesidir, bu bir yalnızca geliştirme özelliğidir. Konağınıza izin vermek için `--allowed-origins` bayrağını kullanın: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -Birden çok ana bilgisayar veya IP için virgülle ayrılmış bir liste geçirin: +Birden çok konak veya IP için virgülle ayrılmış bir liste geçin: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 @@ -145,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Bu yalnızca geliştirme modunda geçerlidir. `failproofai` (üretim modu) çalıştırılırken HMR websocket'i ve çapraz kökenli geliştirme kaynağı sorunu yoktur. +Bu yalnızca geliştirme modunda geçerlidir. `failproofai` (üretim modu) çalıştırırken, HMR web soketi yoktur ve çapraz kaynaklı geliştirme kaynağı sorunu yoktur. \ No newline at end of file diff --git a/docs/tr/introduction.mdx b/docs/tr/introduction.mdx index 7d196194..61996740 100644 --- a/docs/tr/introduction.mdx +++ b/docs/tr/introduction.mdx @@ -1,36 +1,36 @@ --- title: "Failproof AI" -description: "FailproofAI, AI ajanlarına döngüleri, gizli dizi sızıntılarını, yıkıcı araç çağrılarını ve daha fazlasını tek bir kurulumda yakalaması için 39 yerleşik başarısızlık politikası sağlar." +description: "FailproofAI, AI aracılarına 39 yerleşik başarısızlık politikası sağlayarak döngüler, gizli sızıntıları, yıkıcı araç çağrılarını ve daha fazlasını tek bir kurulumda yakalar." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -**AI başarısızlık işleme**, **hata kurtarma** ve **LLM güvenilirliği** için hook'lar ve politikalar. AI ajanlarınızı **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes** ve **Agents SDK** arasında güvenilir ve otonom halde tutun. +**AI başarısızlık yönetimi**, **hata kurtarması** ve **LLM güvenilirliği** için hook'lar ve politikalar. AI aracılarınızı güvenilir tutun ve **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI** ve **Agents SDK** arasında otonom olarak çalışır durumda tutun. -AI ajanları tahmin edilebilir şekillerde başarısız olur. Yıkıcı komutlar çalıştırırlar, sırları sızıntıya uğratırlar, görevlerinden saparlar, döngülere takılırlar ya da doğrudan ana dala push yaparlar. Gözetimsiz bırakıldığında, küçük başarısızlıklar kesintilere, sızıntıya uğramış kimlik bilgilerine ve kayıp işlere dönüşür. +AI aracıları öngörülebilir şekillerde başarısız olur. Yıkıcı komutlar çalıştırırlar, gizli bilgileri sızıtırlar, görevlerinden sapıp kalırlar, döngüde takılırlar veya doğrudan ana branch'e push yaparlar. Denetimsiz bırakıldığında, küçük başarısızlıklar kesintilere, sızan kimlik bilgilerine ve kayıp çalışmaya dönüşebilir. -FailproofAI bunu **politikalar** ile çözer. Bu kurallar, her ajan araç çağrısına hook olarak **başarısızlıkları algılamak**, **onları hafifletmek** (engelle, talimat ver, temizle) ve **dikkat gereken bir şey olduğunda sizi uyarmak** için bağlanır. Yerel bir pano, daha sonra her araç çağrısını, ajan başarısızlığını ve kurtarma eylemini incelemenizi sağlar. +FailproofAI bunu **politikalarla** çözer. Bu kurallar her araç çağrısına hook olarak girerek **başarısızlıkları tespit eder**, **bunları azaltır** (engelle, yönlendir, sterilize et) ve **dikkat gerektiğinde sizi uyarır**. Yerel bir pano, sonrasında her araç çağrısını, araç başarısızlığını ve kurtarma işlemini gözden geçirmenize olanak tanır. -Hiçbir veri makinenizi terk etmez. +Transkriptler ve politika değerlendirmesi makinenizde kalır. Veri, yalnızca doğrulanan denetim hatırlatıcıları veya davetiyeler gibi çevrimiçi bir özelliği açıkça kullandığınızda gönderilir. -## Başlayın +## Başlarken - Yıkıcı komutları engelle, gizli dizi sızıntılarını önle, ajanları proje sınırları içinde tut ve daha fazlasını yap. Hepsi hazır olarak. + Yıkıcı komutları engelle, gizli sızıntılarını önle, aracıları proje sınırları içinde tut ve daha fazlasını yap. Hepsi hazır olarak. Basit allow / deny / instruct API'si ile JavaScript'te kendi kurallarını yaz. - - Ajanlarınız yokken neler yaptığını gör. Oturumları gözat, araç çağrılarını incele, politikaların nereden tetiklendiğini incele. + + Aracılarınız yokken ne yaptığını gör. Oturumları gözden geçir, araç çağrılarını incele, politikaların nerede tetiklendiğini kontrol et. - Herhangi bir politikayı kod yazmadan ayarla. İzin listelerini, korunan dalları ya da eşikleri proje başına veya genel olarak ayarla. + Herhangi bir politikayı kod olmadan ayarla. İzin listeleri, korumalı branch'ler veya eşikleri proje başına veya global olarak belirle. @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # politikaları etkinleştir (ya da atla — failproofai ilk çalıştırmada kurulumu teklif edecektir) +failproofai policies --install # politikaları etkinleştir (veya atla — `failproofai` ilk çalıştırmada kurulum yapmanı teklif edecektir) failproofai # panoyu başlat ``` -Tüm kılavuz için [Başlarken](/tr/getting-started) rehberine bakın. \ No newline at end of file +Tam anlatım için [Başlarken](/tr/getting-started) rehberine bakın. \ No newline at end of file diff --git a/docs/vi/dashboard.mdx b/docs/vi/dashboard.mdx index 3e1e0efd..74035dd4 100644 --- a/docs/vi/dashboard.mdx +++ b/docs/vi/dashboard.mdx @@ -1,11 +1,10 @@ --- ---- title: Bảng điều khiển -description: "Giám sát các phiên làm việc của agent, xem xét các lệnh gọi công cụ và quản lý chính sách" +description: "Giám sát phiên làm việc của agent, xem lại các lệnh gọi công cụ và quản lý chính sách" icon: chart-line --- -Bảng điều khiển failproofai là một ứng dụng web cục bộ để giám sát các phiên làm việc của agent AI và quản lý chính sách. Xem những gì các agent của bạn đã làm khi bạn vắng mặt. +Bảng điều khiển failproofai là một ứng dụng web cục bộ để giám sát các phiên làm việc của agent AI và quản lý chính sách. Xem những gì mà các agent của bạn đã làm khi bạn vắng mặt. --- @@ -17,7 +16,7 @@ failproofai Mở tại `http://localhost:8020`. -Bảng điều khiển đọc trực tiếp từ hệ thống tệp - các thư mục dự án Claude Code và các tệp cấu hình failproofai. Không có gì được ghi vào dịch vụ từ xa. +Bảng điều khiển đọc dữ liệu dự án cục bộ, phiên làm việc và cấu hình failproofai trực tiếp từ hệ thống tệp. Các tính năng được xác thực tùy chọn, chẳng hạn như nhắc nhở kiểm toán và lời mời, gửi thông tin cần thiết cho các yêu cầu đó (bao gồm địa chỉ email) đến các API từ xa. --- @@ -25,22 +24,22 @@ Bảng điều khiển đọc trực tiếp từ hệ thống tệp - các thư ### Dự án -Liệt kê tất cả các dự án Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_ và Hermes được tìm thấy trên máy của bạn. Các dự án Claude được phát hiện từ `~/.claude/projects/` (hoặc đường dẫn được đặt bởi `CLAUDE_PROJECTS_PATH`); các dự án Codex được phát hiện bằng cách quét mỗi bản ghi tạm dưới `~/.codex/sessions///
/*.jsonl` và nhóm theo `cwd` được ghi trong bản ghi đầu tiên của mỗi phiên; các dự án Copilot CLI được phát hiện bằng cách quét từng `~/.copilot/session-state//workspace.yaml` (có thể cấu hình qua `COPILOT_HOME`) và nhóm theo trường `cwd` của nó; các dự án Cursor Agent được phát hiện bằng cách quét siêu dữ liệu cho mỗi phiên dưới `~/.cursor/agent-sessions//` (có thể cấu hình qua `CURSOR_HOME`, với `conversations/` và `sessions/` được thử như giải pháp thay thế) cho một vô hướng `cwd` trong `meta.json` / `session.json` / `workspace.yaml`; các dự án OpenCode được phát hiện bằng cách truy vấn cơ sở dữ liệu SQLite của nó tại `~/.local/share/opencode/opencode.db` qua `opencode db --format json` (chúng tôi đọc các bảng `session` và `project` và nhóm theo `project_id`); các dự án Pi được phát hiện bằng cách quét bản ghi tạm JSONL cho mỗi phiên dưới `~/.pi/agent/sessions//_.jsonl` (có thể cấu hình qua `PI_SESSIONS_DIR`) và lấy `cwd` từ bản ghi đầu tiên của mỗi phiên; các phiên cổng Hermes được đọc trực tiếp từ kho lưu trữ SQLite của nó tại `~/.hermes/state.db` (có thể cấu hình qua `HERMES_DB_PATH`) và được nhóm thành các dự án `hermes-` theo `source` (Slack/Telegram/cli/cron — các phiên cổng không có cwd). Một dự án đã được sử dụng bởi nhiều CLI được hiển thị dưới dạng một hàng duy nhất với tất cả các huy hiệu phù hợp. Sử dụng menu thả xuống **CLI** phía trên bảng để lọc theo một agent CLI cụ thể; URL lưu lựa chọn của bạn dưới dạng `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`. +Liệt kê tất cả Claude Code, OpenAI Codex, GitHub Copilot CLI _(beta)_, Cursor Agent _(beta)_, OpenCode _(beta)_, Pi _(beta)_, Hermes, OpenClaw, Factory Droid, Devin, Antigravity và Goose được tìm thấy trên máy của bạn. Các dự án Claude được khám phá từ `~/.claude/projects/` (hoặc đường dẫn được đặt bởi `CLAUDE_PROJECTS_PATH`); các dự án Codex được khám phá bằng cách quét mọi bản ghi ngang hàng dưới `~/.codex/sessions///
/*.jsonl` và nhóm theo `cwd` được ghi trong bản ghi đầu tiên của mỗi phiên; các dự án Copilot CLI được khám phá bằng cách quét mỗi `~/.copilot/session-state//workspace.yaml` (có thể cấu hình qua `COPILOT_HOME`) và nhóm theo trường `cwd` của nó; các dự án Cursor Agent được khám phá bằng cách quét siêu dữ liệu trên mỗi phiên dưới `~/.cursor/agent-sessions//` (có thể cấu hình qua `CURSOR_HOME`, với `conversations/` và `sessions/` được kiểm tra như là phương án dự phòng) để tìm một số vô hướng `cwd` trong `meta.json` / `session.json` / `workspace.yaml`; các dự án OpenCode được khám phá bằng cách truy vấn cơ sở dữ liệu SQLite của nó tại `~/.local/share/opencode/opencode.db` thông qua `opencode db --format json` (chúng tôi đọc bảng `session` và `project` và nhóm theo `project_id`); các dự án Pi được khám phá bằng cách quét bản ghi ngang hàng JSONL trên mỗi phiên dưới `~/.pi/agent/sessions//_.jsonl` (có thể cấu hình qua `PI_SESSIONS_DIR`) và lấy `cwd` từ bản ghi đầu tiên của mỗi phiên; các phiên cổng Hermes được đọc trực tiếp từ kho SQLite của nó tại `~/.hermes/state.db` (có thể cấu hình qua `HERMES_DB_PATH`) và được nhóm vào các dự án `hermes-` theo `source` (Slack/Telegram/cli/cron — các phiên cổng không có cwd); các phiên cổng OpenClaw được đọc từ `~/.openclaw/agents//sessions/*.jsonl` và được nhóm vào các dự án `openclaw-` (cũng không có cwd); các dự án Factory Droid được khám phá từ các bản ghi ngang hàng JSONL tại `~/.factory/sessions//*.jsonl` và được nhóm theo cwd; các dự án Devin từ cơ sở dữ liệu SQLite của nó tại `~/.local/share/devin/cli/sessions.db` (được nhóm theo `working_directory` của mỗi phiên); các dự án Antigravity từ các bản ghi ngang hàng JSONL tại `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` và được nhóm theo cwd; và các dự án Goose từ cơ sở dữ liệu SQLite của nó tại `~/.local/share/goose/sessions/sessions.db` (được nhóm theo `working_dir` của mỗi phiên). Một dự án đã được sử dụng bởi nhiều CLI hiển thị dưới dạng một hàng duy nhất với tất cả các huy hiệu phù hợp. Sử dụng dropdown **CLI** ở trên bảng để lọc theo một CLI agent cụ thể; URL bảo toàn lựa chọn của bạn dưới dạng `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose`. Mỗi dự án hiển thị: -- Tên dự án (được lấy từ đường dẫn thư mục) -- Một huy hiệu CLI — `Claude Code` (cam), `OpenAI Codex` (tím), `GitHub Copilot` (xanh), `Cursor Agent` (lục bảo), `OpenCode` (hổ phách), `Pi` (hồng) và/hoặc `Hermes` (chàm) -- Ngày của hoạt động phiên gần đây nhất +- Tên dự án (bắt nguồn từ đường dẫn thư mục) +- Huy hiệu CLI — `Claude Code` (cam), `OpenAI Codex` (tím), `GitHub Copilot` (xanh), `Cursor Agent` (ngọc lục bảo), `OpenCode` (hổ phách), `Pi` (hồng), và/hoặc `Hermes` (chàm) +- Ngày hoạt động phiên gần đây nhất -Nhấp vào một dự án để xem các phiên của nó. +Nhấp vào một dự án để xem các phiên làm việc của nó. -### Phiên +### Phiên làm việc -Liệt kê tất cả các phiên trong một dự án. Mỗi phiên hiển thị: +Liệt kê tất cả các phiên làm việc trong một dự án. Mỗi phiên hiển thị: - ID phiên - Dấu thời gian bắt đầu và kết thúc -- Số lượng cuộc gọi công cụ -- Số lượng hoạt động hook (chính sách được kích hoạt) +- Số lượng lệnh gọi công cụ +- Số lượng hoạt động hook (chính sách đã kích hoạt) Sử dụng bộ lọc phạm vi ngày và tìm kiếm ID phiên để thu hẹp danh sách. Các phiên được phân trang. @@ -48,44 +47,44 @@ Nhấp vào một phiên để mở trình xem phiên. ### Trình xem phiên -Trình xem phiên trả lời câu hỏi quan trọng cho các agent tự động: agent đã làm gì, và nó có duy trì được theo dõi không? Một huy hiệu CLI bên cạnh tiêu đề cho biết phiên là bản ghi Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi hay Hermes. Nó hiển thị một dòng thời gian của mọi thứ đã xảy ra trong một phiên: +Trình xem phiên trả lời câu hỏi chính cho các agent tự trị: agent đã làm gì và nó có ở đúng đường hay không? Huy hiệu CLI cạnh tiêu đề cho biết phiên là bản ghi Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin, Antigravity hay Goose. Nó hiển thị một dòng thời gian của mọi thứ xảy ra trong một phiên: -- **Tin nhắn** - Các phản hồi văn bản và lời nhắc của người dùng từ Claude -- **Cuộc gọi công cụ** - Mọi công cụ mà Claude gọi, cùng với đầu vào và đầu ra -- **Hoạt động chính sách** - Đối với mỗi lệnh gọi công cụ, các chính sách nào được kích hoạt và quyết định nào họ trả về +- **Tin nhắn** - Phản hồi văn bản của Claude và lời nhắc của người dùng +- **Lệnh gọi công cụ** - Mỗi công cụ mà Claude gọi, với đầu vào và đầu ra của nó +- **Hoạt động chính sách** - Đối với mỗi lệnh gọi công cụ, những chính sách nào đã kích hoạt và quyết định nào mà chúng trả về -Thanh thống kê ở phía trên cùng hiển thị thời lượng phiên, tổng số lệnh gọi công cụ và tóm tắt các quyết định hook (số lượng allow / deny / instruct). +Thanh thống kê ở trên cùng hiển thị thời lượng phiên, tổng số lệnh gọi công cụ và tóm tắt quyết định hook (allow / deny / instruct). -Nhấp vào nút **Download Logs** để xuất phiên. Đối với các phiên Claude Code, Codex, Copilot, Cursor và Pi, bạn sẽ nhận được bản ghi JSONL trên đĩa nguyên gốc byte-for-byte; đối với OpenCode (các phiên của nó nằm trong SQLite, không phải trên đĩa), bạn sẽ nhận được một tài liệu JSON phản ánh các bảng `session` / `messages` / `parts` cơ bản. +Nhấp vào nút **Tải xuống nhật ký** để xuất phiên. Đối với các phiên Claude Code, Codex, Copilot, Cursor và Pi, bạn nhận được bản ghi ngang hàng JSONL trên đĩa ban đầu theo từng byte; đối với OpenCode (các phiên của nó nằm trong SQLite, không phải trên đĩa), bạn nhận được một tài liệu JSON phản ánh các bảng `session` / `messages` / `parts` cơ bản. ### Kiểm toán -Một báo cáo được chạy bằng tính cách của cách agent của bạn thực sự hoạt động trên các phiên trong quá khứ. Chạy cùng một quá trình quét như CLI `failproofai audit` nhưng hiển thị nó dưới dạng một tấm poster có thể chia sẻ trên một màn hình duy nhất + bốn phần dưới ngữ cảnh: +Một báo cáo theo tính cách về cách agent của bạn thực sự hoạt động trên các phiên quá khứ. Chạy cùng một quét như CLI `failproofai audit` nhưng hiển thị nó dưới dạng một áp phích chia sẻ trên một màn hình + bốn phần dưới lớp: -1. **Poster** — lấp đầy khung nhìn đầu tiên. Vùng chụp PNG độc lập với biểu tượng failproof_ai + nhãn kiểm toán · chỉ số kiến trúc (`№ NN of 08`) + ngày kiểm toán · điểm số (0–100) + xếp hạng phần trăm (`top 15%`) · tên kiến trúc (một trong `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + dải 3 từ khóa · `// only N% of agents are this archetype` dòng hiếm · ô sigil pixel 8×8 · chân trang `audit yours → failproof.ai`. Ba nút chia sẻ nằm ngay bên ngoài ô chụp: `post your archetype` (ý định X), `share on linkedin`, `download poster`. Chụp chạy qua `html-to-image` vì vậy PNG khớp với bản kết xuất trên màn hình pixel-for-pixel (đường viền đứt nét, mặt nạ logo SVG, gradient, số liệu phông chữ — tất cả đều được bảo toàn). -2. **Điểm mạnh** — dòng danh sách yên tĩnh ✓ các hành vi agent của bạn đã làm đúng, bắt nguồn từ dữ liệu kiểm toán trực tiếp (tỷ lệ gọi công cụ sạch, không có đẩy trực tiếp vào chính, không rò rỉ thông tin xác thực, không có cơn bão thử lại) — mỗi cái chỉ được hiển thị khi chính sách liên quan có bản ghi sạch trên cửa sổ kiểm toán. -3. **Những điều lạ lùng** — bảng những gì bị bỏ qua, được xếp hạng theo mức độ nghiêm trọng: `when · what slipped + the policy that would've caught it · severity pill · seen`, nơi sự tái diễn đọc `new` (một lần), `N× seen` (2–9 lần), hoặc `recurring` (10+). -4. **Cách cải thiện** — dòng danh sách yên tĩnh, một cho mỗi chính sách được quy định: tên chính sách bằng màu trắng, mô tả một dòng, lệnh cài đặt + nút sao chép ở phía bên phải. Tiêu đề phần đọc `enable all N → projected · ` (điểm bạn sẽ đạt được với mọi sửa chữa được áp dụng), và nó `[install all]` nút sao chép lệnh `failproofai policy add a b c …` kết hợp cho mỗi chính sách được quy định. -5. **Quay lại tốt hơn** — hai thẻ cạnh nhau. Bên trái: đặt nhắc nhở (`3d` / `7d` / `14d` / `30d` bộ chọn tần suất; được giữ qua `/api/auth/reminder` sau khi xác thực). Bên phải: mở khóa các đặc quyền failproof — `invite a friend` mở một modal nhận một danh sách các email bạn bè được phân tách bằng dấu phẩy/khoảng trắng/dòng mới (tối đa 10 lần gửi), POSTs chúng đến `/api/audit/invite`, được chuyển tiếp đến `/v0/invite` `POST` của api-server. Api-server gửi một email cho mỗi người nhận từ `invite@failproof.ai` với người gửi Cc và `Reply-To` được đặt, vì vậy người nhận thấy ai đã mời họ và người gửi nhận được bản sao trong hộp thư đến. Người dùng ẩn danh được định tuyến qua `AuthDialog` trước tiên để email của người gửi được biết trước khi lời mời được gửi. Quyền lợi / thực hiện đặc quyền là một bước tiếp theo. +1. **Áp phích** — lấp đầy viewport đầu tiên. Vùng chụp PNG tự chứa với nhãn failproof_ai + kiểm toán · chỉ số nguyên mẫu (`№ NN của 08`) + ngày kiểm toán · điểm số (0–100) + xếp hạng phần trăm pill (`top 15%`) · tên nguyên mẫu (một trong `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + dải 3 từ khóa · `// chỉ N% các agent là nguyên mẫu này` dòng hiếm · ô sigil 8×8 pixel · `audit yours → failproof.ai` chân trang. Ba nút chia sẻ nằm ngoài ô chụp: `post your archetype` (ý định X), `share on linkedin`, `download poster`. Chụp chạy qua `html-to-image` vì vậy PNG khớp với kết xuất trên màn hình từng pixel (đường viền nét đứt, mặt nạ logo SVG, gradient, số liệu phông chữ — tất cả được bảo tồn). +2. **Điểm mạnh** — danh sách hàng tĩnh lặng ✓ của các hành vi mà agent của bạn đã làm đúng, bắt nguồn từ dữ liệu kiểm toán trực tiếp (tỷ lệ lệnh gọi công cụ sạch, không có đẩy trực tiếp đến main, không rò rỉ thông tin xác thực, không có bão thử lại) — mỗi hành vi chỉ được hiển thị khi chính sách liên quan có bản ghi sạch trong cửa sổ kiểm toán. +3. **Những điều kỳ quặc** — bảng những gì trượt qua, xếp hạng theo mức độ nghiêm trọng: `when · what slipped + the policy that would've caught it · severity pill · seen`, trong đó sự lặp lại đọc `new` (một lần), `N× seen` (2–9 lần), hoặc `recurring` (10+). +4. **Cách cải thiện** — danh sách hàng tĩnh lặng, mỗi chính sách được quy định: tên chính sách màu trắng, mô tả một dòng, lệnh cài đặt + nút sao chép ở phía bên phải. Tiêu đề phần đọc `enable all N → projected · ` (điểm số bạn sẽ đạt được với mọi sửa chữa được áp dụng), và nút `[install all]` của nó sao chép lệnh `failproofai policy add a b c …` kết hợp cho mọi chính sách được quy định. +5. **Quay lại tốt hơn** — hai thẻ song song. Trái: đặt nhắc nhở (`3d` / `7d` / `14d` / `30d` bộ chọn nhịp độ; vẫn được duy trì thông qua `/api/auth/reminder` sau khi xác thực). Phải: mở khóa các quyền lợi failproof — `invite a friend` mở ra một cửa sổ mô-đun lấy danh sách email bạn bè được phân tách bằng dấu phẩy/khoảng trắng/dòng mới (tối đa 10 trên mỗi lần gửi), POSTs để `/api/audit/invite`, chuyển tiếp đến `POST /v0/invite` của máy chủ api. Máy chủ api gửi một email cho mỗi người nhận từ `invite@failproof.ai` với người gửi Cc và `Reply-To` được đặt, vì vậy người nhận thấy ai mời họ và người gửi nhận được bản sao trong hộp thư đến của họ. Người dùng ẩn danh được định tuyến qua `AuthDialog` trước để email của người gửi được biết trước khi lời mời được gửi đi. Lợi ích / thực hiện quyền lợi là một bước tiếp theo. -Được điều khiển bởi thời gian chạy `failproofai audit` — xem [Audit CLI](/vi/cli/audit) cho công cụ quét cơ bản, các cờ được hỗ trợ và các bất biến bộ nhớ đệm trên mỗi bản ghi. Bảng điều khiển lưu vào bộ nhớ đệm kết quả mới nhất tại `~/.failproofai/audit-dashboard.json` (chế độ `0600`, một khe duy nhất, các lần chạy mới ghi đè) vì vậy các lần ghé thăm lại là tức thì; **cả bộ nhớ đệm trên mỗi bản ghi và toàn bộ kết quả sẽ bị từ chối khi đọc sau khi chúng cũ hơn 7 ngày** vì vậy bảng điều khiển không bao giờ âm thầm phục vụ kết quả một tuần tuổi — quá TTL `/audit` rơi vào trạng thái trống rỗng của nó và nhắc chạy lại. Nhấp `[ re-audit now ]` gần phía dưới của báo cáo POSTs `/api/audit/run` với `noCache: true` — kiểm toán lại bỏ qua bộ nhớ đệm trên mỗi bản ghi và quét lại mỗi bản ghi từ đầu thay vì âm thầm trả về kết quả được lưu vào bộ nhớ đệm — và bảng điều khiển bỏ phiếu `/api/audit/status` ở 1Hz cho đến khi chạy xong; một dải tiến trình hồng dính ghìm vào đầu trang khung nhìn trong lần chạy với bộ hẹn giờ đã trôi qua, và kết quả mới nhất hoán đổi vị trí khi thành công (không tải lại trang đầy đủ; một lần kiểm toán lại không thành công để báo cáo trước đó nguyên vẹn). Khi thất bại, dải chuyển sang màu đỏ với bản sao được khóa theo `RerunError.kind` (`timeout` / `network` / `post_failed`). Trạng thái trống (không có bộ nhớ đệm hoặc hết hạn) và trạng thái không có phiên (bộ nhớ đệm tồn tại nhưng quá trình quét không tìm thấy bản ghi) được hiển thị riêng biệt. +Được điều khiển bởi thời gian chạy `failproofai audit` — xem [Audit CLI](/vi/cli/audit) để biết công cụ quét cơ bản, các cờ được hỗ trợ và bất biến bộ nhớ cache trên mỗi bản ghi. Bảng điều khiển lưu kết quả mới nhất vào bộ nhớ cache tại `~/.failproofai/audit-dashboard.json` (chế độ `0600`, ô duy nhất, các lần chạy mới ghi đè) vì vậy các lần ghé thăm lại là tức thì; **cả bộ nhớ cache trên mỗi bản ghi và toàn bộ kết quả đều bị từ chối khi đọc sau khi chúng lớn hơn 7 ngày** vì vậy bảng điều khiển không bao giờ yên tĩnh phục vụ kết quả một tuần tuổi — vượt quá TTL `/audit` rơi vào trạng thái trống và nhắc chạy lại. Nhấp vào `[ re-audit now ]` gần cuối báo cáo POSTs `/api/audit/run` với `noCache: true` — kiểm toán lại bỏ qua bộ nhớ cache trên mỗi bản ghi và quét lại mọi bản ghi từ đầu chứ không yên tĩnh trả về kết quả được lưu trong bộ nhớ cache — và bảng điều khiển thăm dò `/api/audit/status` ở 1Hz cho đến khi lần chạy kết thúc; một dải tiến trình màu hồng dính chặt tại đầu viewport trong lần chạy với bộ đếm thời gian đã trôi qua, và kết quả mới được trao đổi tại chỗ khi thành công (không tải lại toàn trang; kiểm toán lại không thành công để lại báo cáo trước đó nguyên vẹn). Khi thất bại, dải chuyển thành màu đỏ với bản sao được khóa từ `RerunError.kind` (`timeout` / `network` / `post_failed`). Trạng thái trống (không có bộ nhớ cache hoặc đã hết hạn) và trạng thái không có phiên (bộ nhớ cache tồn tại nhưng quét không tìm thấy bất kỳ bản ghi nào) được hiển thị riêng. ### Chính sách -Một trang hai tab để quản lý chính sách và xem xét hoạt động. +Một trang hai tab để quản lý chính sách và xem lại hoạt động. - - Chọn nhiều agent CLI nào mà failproofai bảo vệ từ một bảng điều khiển duy nhất — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi và Hermes đều có một hàng với trạng thái cài đặt (`Active` / `Detected` / `Inactive`), đường dẫn cài đặt phạm vi người dùng và một điểm nhấn có thương hiệu. Chọn hoặc bỏ chọn các CLI bạn muốn và nhấp `Apply changes` để cài đặt/gỡ cài đặt chênh lệch trong một bước. Các CLI có tệp nhị phân được phát hiện trên PATH được tính sẵn. - - Bật hoặc tắt các chính sách riêng lẻ bằng một lần nhấp (ghi vào `~/.failproofai/policies-config.json` — được chia sẻ trên mọi CLI được cài đặt) - - Mở rộng một chính sách để cấu hình các tham số của nó (đối với các chính sách hỗ trợ `policyParams`) + - Chọn nhiều lựa chọn CLI agent nào mà failproofai bảo vệ từ một bảng duy nhất — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi và Hermes đều có một hàng với trạng thái cài đặt (`Active` / `Detected` / `Inactive`), đường dẫn cài đặt phạm vi người dùng và một accent có thương hiệu. Chọn hoặc bỏ chọn các CLI bạn muốn và nhấp vào `Apply changes` để cài đặt/gỡ cài đặt sự khác biệt trong một bước. Các CLI có tệp nhị phân được phát hiện trên PATH được chọn trước. + - Bật hoặc tắt các chính sách cá nhân bằng một lần nhấp (ghi vào `~/.failproofai/policies-config.json` — được chia sẻ trên mọi CLI được cài đặt) + - Mở rộng một chính sách để định cấu hình các tham số của nó (đối với các chính sách hỗ trợ `policyParams`) - Đặt đường dẫn tệp chính sách tùy chỉnh - - Lịch sử được phân trang đầy đủ của mọi sự kiện hook đã được kích hoạt trên tất cả các phiên - - Lọc theo quyết định, loại sự kiện, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes), tên chính sách hoặc ID phiên - - Mỗi hàng hiển thị: dấu thời gian, tên chính sách, quyết định, huy hiệu CLI (cam = Claude Code, tím = OpenAI Codex, xanh = GitHub Copilot, lục bảo = Cursor Agent, hổ phách = OpenCode, hồng = Pi, chàm = Hermes), tên công cụ, ID phiên và lý do cho các quyết định deny/instruct - - Nhấp vào ID phiên để mở bản ghi của nó — trình xem tự động phát hiện CLI nào được kích hoạt hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`) và hiển thị huy hiệu CLI phù hợp trong tiêu đề + - Lịch sử đầy đủ được phân trang của mọi sự kiện hook đã kích hoạt trên tất cả các phiên + - Lọc theo quyết định, loại sự kiện, CLI (Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose), tên chính sách hoặc ID phiên + - Mỗi hàng hiển thị: dấu thời gian, tên chính sách, quyết định, huy hiệu CLI (cam = Claude Code, tím = OpenAI Codex, xanh = GitHub Copilot, ngọc lục bảo = Cursor Agent, hổ phách = OpenCode, hồng = Pi, chàm = Hermes, lục lam = OpenClaw, hoa hồng = Factory Droid, tím = Devin, lục bình = Antigravity, vôi = Goose), tên công cụ, ID phiên và lý do cho các quyết định deny/instruct + - Nhấp vào một ID phiên để mở bản ghi của nó — trình xem tự động phát hiện CLI nào đã kích hoạt hook (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state//events.jsonl`, Cursor Agent `~/.cursor/agent-sessions//events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions//.jsonl`, Hermes `~/.hermes/state.db`, OpenClaw `~/.openclaw/agents//sessions/*.jsonl`, Factory Droid `~/.factory/sessions//.jsonl`, Devin `~/.local/share/devin/cli/sessions.db`, Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`, Goose `~/.local/share/goose/sessions/sessions.db`) và hiển thị huy hiệu CLI phù hợp trong tiêu đề @@ -93,7 +92,7 @@ Một trang hai tab để quản lý chính sách và xem xét hoạt động. ## Làm mới tự động -Bảng điều khiển có công tắc làm mới tự động trong điều hướng hàng trên cùng. Khi được bật, trang hiện tại sẽ được làm mới định kỳ để hiển thị các phiên mới và hoạt động chính sách khi chúng xuất hiện. Cần thiết để giám sát các phiên agent tự động chạy lâu dài. +Bảng điều khiển có một công tắc làm mới tự động trong điều hướng trên cùng. Khi được bật, trang hiện tại sẽ làm mới định kỳ để hiển thị các phiên mới và hoạt động chính sách khi chúng xuất hiện. Thiết yếu cho việc giám sát các phiên agent tự trị chạy dài. --- @@ -105,13 +104,13 @@ Nếu bạn chỉ cần một số phần của bảng điều khiển, hãy đ FAILPROOFAI_DISABLE_PAGES=policies failproofai ``` -Các giá trị hợp lệ: `policies`, `projects`, `audit`. +Giá trị hợp lệ: `policies`, `projects`, `audit`. --- ## Cấu hình đường dẫn dự án -Theo mặc định, bảng điều khiển đọc từ thư mục dự án Claude Code tiêu chuẩn. Ghi đè nó cho các thiết lập tùy chỉnh: +Theo mặc định, bảng điều khiển đọc từ thư mục dự án Claude Code tiêu chuẩn. Ghi đè nó cho thiết lập tùy chỉnh: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -121,19 +120,19 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## Truy cập từ máy chủ không phải localhost -Khi chạy bảng điều khiển ở **chế độ dev** (`npm run dev`) và truy cập nó từ tên máy chủ khác `localhost` - ví dụ, một miền tùy chỉnh, một IP từ xa hoặc một URL được đường hầm — bạn có thể thấy một cảnh báo như: +Khi chạy bảng điều khiển ở **chế độ phát triển** (`npm run dev`) và truy cập nó từ tên máy chủ khác với `localhost` - ví dụ, một tên miền tùy chỉnh, một IP từ xa hoặc một URL được đường hầm — bạn có thể thấy một cảnh báo như: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -Đây là Next.js chặn quyền truy cập gốc chéo vào websocket HMR (làm mới mô-đun nóng) của nó, đây là một tính năng chỉ dev. Để cho phép máy chủ của bạn, hãy sử dụng cờ `--allowed-origins`: +Đây là Next.js chặn quyền truy cập đa nguồn gốc vào websocket HMR (hot module reload) của nó, đây là tính năng chỉ dành cho phát triển. Để cho phép máy chủ của bạn, sử dụng cờ `--allowed-origins`: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -Để có nhiều máy chủ hoặc IP, hãy chuyển một danh sách được phân tách bằng dấu phẩy: +Đối với nhiều máy chủ hoặc IP, hãy chuyển danh sách được phân tách bằng dấu phẩy: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 @@ -146,5 +145,5 @@ FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -Điều này chỉ áp dụng cho chế độ dev. Khi chạy `failproofai` (chế độ sản xuất), không có websocket HMR và không có vấn đề tài nguyên dev gốc chéo. +Điều này chỉ áp dụng cho chế độ phát triển. Khi chạy `failproofai` (chế độ sản xuất), không có websocket HMR và không có vấn đề tài nguyên phát triển đa nguồn gốc. \ No newline at end of file diff --git a/docs/vi/introduction.mdx b/docs/vi/introduction.mdx index cd0d7efe..8312fc70 100644 --- a/docs/vi/introduction.mdx +++ b/docs/vi/introduction.mdx @@ -1,41 +1,41 @@ --- title: "Failproof AI" -description: "FailproofAI cung cấp 39 chính sách xử lý lỗi tích hợp sẵn giúp phát hiện vòng lặp, rò rỉ bí mật, lệnh gọi công cụ tàn phá, và nhiều hơn nữa chỉ với một lần cài đặt." +description: "FailproofAI cung cấp 39 chính sách xử lý lỗi tích hợp sẵn giúp phát hiện vòng lặp, rò rỉ bí mật, lệnh gọi công cụ tàn phá, và nhiều vấn đề khác chỉ với một lần cài đặt." --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -Hooks và chính sách cho **xử lý lỗi AI**, **phục hồi lỗi**, và **độ tin cậy LLM**. Giữ cho các AI agents của bạn luôn đáng tin cậy và hoạt động tự trị trên **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, và **Agents SDK**. +Hooks và chính sách cho **xử lý lỗi AI**, **khôi phục lỗi**, và **độ tin cậy của LLM**. Giữ cho các agent AI của bạn đáng tin cậy và chạy tự động trên **Claude Code**, **OpenAI Codex**, **GitHub Copilot**, **Cursor Agent**, **OpenCode**, **Pi**, **Hermes**, **OpenClaw**, **Factory Droid**, **Devin CLI**, **Antigravity CLI**, và **Agents SDK**. -Các AI agents thất bại theo những cách có thể dự đoán được. Chúng chạy các lệnh tàn phá, rò rỉ bí mật, lạc khỏi nhiệm vụ, mắc kẹt trong các vòng lặp, hoặc push trực tiếp lên main. Nếu không được giám sát, những lỗi nhỏ sẽ dẫn đến sự cố toàn hệ thống, rò rỉ thông tin xác thực, và mất công việc. +Các agent AI gặp sự cố theo những cách dự đoán được. Chúng chạy các lệnh tàn phá, rò rỉ bí mật, lệch khỏi nhiệm vụ, mắc kẹt trong vòng lặp, hoặc push trực tiếp lên nhánh main. Nếu không được giám sát, những lỗi nhỏ có thể dẫn đến sự cố lớn, rò rỉ thông tin xác thực, và mất mát công việc. -FailproofAI giải quyết vấn đề này bằng **policies** (chính sách). Những quy tắc này kết nối vào mọi lệnh gọi công cụ của agent để **phát hiện lỗi**, **giảm nhẹ chúng** (chặn, hướng dẫn, làm sạch), và **cảnh báo cho bạn** khi có điều gì cần chú ý. Một bảng điều khiển cục bộ cho phép bạn xem lại mọi lệnh gọi công cụ, lỗi agent, và hành động phục hồi sau này. +FailproofAI giải quyết vấn đề này bằng **chính sách**. Những quy tắc này kết nối vào mọi lệnh gọi công cụ của agent để **phát hiện lỗi**, **giảm thiểu chúng** (chặn, hướng dẫn, vệ sinh dữ liệu), và **cảnh báo bạn** khi có vấn đề cần chú ý. Bảng điều khiển cục bộ cho phép bạn xem lại mọi lệnh gọi công cụ, lỗi của agent, và hành động khôi phục sau đó. -Không có dữ liệu nào rời khỏi máy của bạn. +Bảng điểm và đánh giá chính sách được lưu trữ trên máy của bạn. Dữ liệu chỉ được gửi khi bạn sử dụng tính năng trực tuyến, chẳng hạn như nhắc nhở kiểm toán xác thực hoặc lời mời. ## Bắt đầu - Chặn các lệnh tàn phá, ngăn chặn rò rỉ bí mật, giữ agents trong ranh giới dự án, và nhiều hơn nữa. Tất cả đã sẵn sàng. + Chặn các lệnh tàn phá, ngăn chặn rò rỉ bí mật, giữ các agent trong ranh giới dự án, và nhiều hơn nữa. Tất cả đã sẵn sàng. Viết các quy tắc của riêng bạn bằng JavaScript với API allow / deny / instruct đơn giản. - - Xem những gì các agents của bạn đã làm trong khi bạn vắng mặt. Duyệt qua các phiên, kiểm tra các lệnh gọi công cụ, xem xét nơi các chính sách được kích hoạt. + + Xem những gì các agent của bạn đã làm khi bạn vắng mặt. Duyệt các phiên, kiểm tra lệnh gọi công cụ, xem xét chính sách được kích hoạt ở đâu. - Điều chỉnh bất kỳ chính sách nào mà không cần code. Đặt danh sách cho phép, nhánh được bảo vệ, hoặc ngưỡng cho từng dự án hoặc toàn cục. + Điều chỉnh bất kỳ chính sách nào mà không cần code. Đặt danh sách cho phép, nhánh được bảo vệ, hoặc ngưỡng cho mỗi dự án hoặc toàn cục. -## Khởi động nhanh +## Bắt đầu nhanh @@ -50,8 +50,8 @@ bun add -g failproofai ```bash -failproofai policies --install # bật chính sách (hoặc bỏ qua — `failproofai` sẽ đề xuất thiết lập chúng khi chạy lần đầu tiên) -failproofai # khởi động bảng điều khiển +failproofai policies --install # enable policies (or skip — `failproofai` will offer to set them up on first run) +failproofai # launch the dashboard ``` -Xem hướng dẫn [Bắt đầu](/vi/getting-started) để tìm hiểu chi tiết đầy đủ. \ No newline at end of file +Xem hướng dẫn [Bắt đầu](/vi/getting-started) để có hướng dẫn đầy đủ. \ No newline at end of file diff --git a/docs/zh/dashboard.mdx b/docs/zh/dashboard.mdx index d28f794b..8c52dfc1 100644 --- a/docs/zh/dashboard.mdx +++ b/docs/zh/dashboard.mdx @@ -1,10 +1,10 @@ --- title: 控制台 -description: "监控 Agent 会话、查看工具调用并管理策略" +description: "监控 Agent 会话、审查工具调用并管理策略" icon: chart-line --- -failproofai 控制台是一个本地 Web 应用,用于监控 AI Agent 会话和管理策略。查看 Agent 在你离开期间的所有操作。 +failproofai 控制台是一个本地 Web 应用,用于监控 AI Agent 会话及管理策略。查看 Agent 在后台执行的所有操作。 --- @@ -14,9 +14,9 @@ failproofai 控制台是一个本地 Web 应用,用于监控 AI Agent 会话 failproofai ``` -在 `http://localhost:8020` 打开。 +访问地址:`http://localhost:8020`。 -控制台直接从文件系统读取数据——包括你的 Claude Code 项目文件夹和 failproofai 配置文件。不会向任何远程服务写入数据。 +控制台直接从文件系统读取本地项目、会话及 failproofai 配置数据。审计提醒和邀请等可选的认证功能,会将相关请求所需的信息(包括电子邮件地址)发送至远程 API。 --- @@ -24,12 +24,12 @@ failproofai ### 项目 -列出在你的机器上发现的所有 Claude Code、OpenAI Codex、GitHub Copilot CLI _(beta)_、Cursor Agent _(beta)_、OpenCode _(beta)_、Pi _(beta)_ 和 Hermes 项目。Claude 项目从 `~/.claude/projects/`(或由 `CLAUDE_PROJECTS_PATH` 设置的路径)中发现;Codex 项目通过扫描 `~/.codex/sessions///
/*.jsonl` 下的所有记录,并按每个会话第一条记录中的 `cwd` 字段分组发现;Copilot CLI 项目通过扫描 `~/.copilot/session-state//workspace.yaml`(可通过 `COPILOT_HOME` 配置),并按其 `cwd` 字段分组发现;Cursor Agent 项目通过扫描 `~/.cursor/agent-sessions//`(可通过 `CURSOR_HOME` 配置,并以 `conversations/` 和 `sessions/` 作为备选路径)下的逐会话元数据,从 `meta.json` / `session.json` / `workspace.yaml` 中的 `cwd` 标量发现;OpenCode 项目通过 `opencode db --format json` 查询位于 `~/.local/share/opencode/opencode.db` 的 SQLite 数据库发现(读取 `session` 和 `project` 表并按 `project_id` 分组);Pi 项目通过扫描 `~/.pi/agent/sessions//_.jsonl`(可通过 `PI_SESSIONS_DIR` 配置)下的逐会话 JSONL 记录,并从每个会话的第一条记录中提取 `cwd` 发现;Hermes 网关会话直接从 `~/.hermes/state.db`(可通过 `HERMES_DB_PATH` 配置)的 SQLite 存储中读取,并按 `source`(Slack/Telegram/cli/cron——网关会话没有 cwd)分组为 `hermes-` 项目。被多个 CLI 使用的项目在同一行显示,并附上所有匹配的徽章。使用表格上方的 **CLI** 下拉菜单按特定 Agent CLI 筛选;URL 会将你的选择保存为 `?cli=claude|codex|copilot|cursor|opencode|pi|hermes`。 +列出本机上所有 Claude Code、OpenAI Codex、GitHub Copilot CLI _(beta)_、Cursor Agent _(beta)_、OpenCode _(beta)_、Pi _(beta)_、Hermes、OpenClaw、Factory Droid、Devin、Antigravity 和 Goose 项目。Claude 项目从 `~/.claude/projects/`(或 `CLAUDE_PROJECTS_PATH` 指定的路径)中发现;Codex 项目通过扫描 `~/.codex/sessions///
/*.jsonl` 下的所有记录,并按每个会话首条记录中的 `cwd` 字段分组;Copilot CLI 项目通过扫描每个 `~/.copilot/session-state//workspace.yaml`(可通过 `COPILOT_HOME` 配置)并按其 `cwd` 字段分组;Cursor Agent 项目通过扫描 `~/.cursor/agent-sessions//`(可通过 `CURSOR_HOME` 配置,同时以 `conversations/` 和 `sessions/` 作为备用路径)下各会话的元数据,从 `meta.json` / `session.json` / `workspace.yaml` 中读取 `cwd` 标量;OpenCode 项目通过 `opencode db --format json` 查询位于 `~/.local/share/opencode/opencode.db` 的 SQLite 数据库(读取 `session` 和 `project` 表,按 `project_id` 分组);Pi 项目通过扫描 `~/.pi/agent/sessions//_.jsonl`(可通过 `PI_SESSIONS_DIR` 配置)下各会话的 JSONL 记录,并从每个会话首条记录中提取 `cwd`;Hermes 网关会话直接从位于 `~/.hermes/state.db`(可通过 `HERMES_DB_PATH` 配置)的 SQLite 存储中读取,按 `source`(Slack/Telegram/cli/cron)分组为 `hermes-` 项目(网关会话无 cwd);OpenClaw 网关会话从 `~/.openclaw/agents//sessions/*.jsonl` 读取,分组为 `openclaw-` 项目(同样无 cwd);Factory Droid 项目从 `~/.factory/sessions//*.jsonl` 的 JSONL 记录中发现,按 cwd 分组;Devin 项目来自位于 `~/.local/share/devin/cli/sessions.db` 的 SQLite 数据库(按每个会话的 `working_directory` 分组);Antigravity 项目来自 `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl` 的 JSONL 记录,按 cwd 分组;Goose 项目来自位于 `~/.local/share/goose/sessions/sessions.db` 的 SQLite 数据库(按每个会话的 `working_dir` 分组)。被多个 CLI 使用的项目会以单行显示,并标注所有匹配的徽标。使用表格上方的 **CLI** 下拉菜单可按特定 Agent CLI 筛选;所选项会以 `?cli=claude|codex|copilot|cursor|opencode|pi|hermes|openclaw|factory|devin|antigravity|goose` 的形式保留在 URL 中。 每个项目显示: -- 项目名称(从文件夹路径派生) -- CLI 徽章——`Claude Code`(橙色)、`OpenAI Codex`(紫色)、`GitHub Copilot`(蓝色)、`Cursor Agent`(翠绿色)、`OpenCode`(琥珀色)、`Pi`(粉色)和/或 `Hermes`(靛蓝色) -- 最近一次会话活动的日期 +- 项目名称(从文件夹路径提取) +- CLI 徽标 — `Claude Code`(橙色)、`OpenAI Codex`(紫色)、`GitHub Copilot`(蓝色)、`Cursor Agent`(翠绿色)、`OpenCode`(琥珀色)、`Pi`(粉色)和/或 `Hermes`(靛蓝色) +- 最近会话活动日期 点击项目可查看其会话列表。 @@ -39,52 +39,52 @@ failproofai - 会话 ID - 开始和结束时间戳 - 工具调用次数 -- Hook 活动计数(触发的策略数量) +- Hook 活动次数(已触发的策略数) -使用日期范围筛选和会话 ID 搜索来缩小列表范围。会话以分页形式显示。 +使用日期范围筛选器和会话 ID 搜索来缩小列表范围。会话支持分页显示。 点击会话可打开会话查看器。 ### 会话查看器 -会话查看器回答了自主 Agent 的核心问题:Agent 做了什么,是否保持在正轨上?页眉旁的 CLI 徽章指示该会话是 Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi 还是 Hermes 的记录。它以时间线形式展示会话中发生的所有事件: +会话查看器回答了自主 Agent 的核心问题:Agent 做了什么,是否保持在正轨上?标题旁的 CLI 徽标表明该会话是 Claude Code、OpenAI Codex、GitHub Copilot CLI、Cursor Agent、OpenCode、Pi、Hermes、OpenClaw、Factory Droid、Devin、Antigravity 还是 Goose 的记录。它以时间线形式展示会话中发生的一切: - **消息** - Claude 的文本回复和用户提示 -- **工具调用** - Claude 调用的每个工具,包含其输入和输出 -- **策略活动** - 每次工具调用触发了哪些策略及其返回的决策 +- **工具调用** - Claude 调用的每个工具及其输入输出 +- **策略活动** - 每次工具调用触发了哪些策略,以及策略返回的决策 顶部的统计栏显示会话时长、工具调用总数,以及 Hook 决策摘要(allow / deny / instruct 计数)。 -点击**下载日志**按钮可导出会话。对于 Claude Code、Codex、Copilot、Cursor 和 Pi 会话,你将获得原始的磁盘 JSONL 记录文件(逐字节原样);对于 OpenCode(其会话存储在 SQLite 而非磁盘上),你将获得一个 JSON 文档,镜像底层的 `session` / `messages` / `parts` 表。 +点击 **下载日志** 按钮可导出会话。对于 Claude Code、Codex、Copilot、Cursor 和 Pi 会话,您将获得磁盘上原始的 JSONL 记录文件(字节完全一致);对于 OpenCode(会话存储在 SQLite 而非磁盘文件中),您将获得一个镜像底层 `session` / `messages` / `parts` 表结构的 JSON 文档。 ### 审计 -一份具有个性化风格的报告,展示你的 Agent 在过去会话中的真实行为。运行与 `failproofai audit` CLI 相同的扫描,并将结果渲染为一个单屏可分享的海报,加上折叠区域下方的四个部分: +一份带有个性化特征的报告,展示 Agent 在过去会话中的实际行为。运行与 `failproofai audit` CLI 相同的扫描逻辑,并以单屏可分享海报 + 四个折叠区块的形式呈现: -1. **海报** — 填满第一个视口。独立 PNG 捕获区域,包含 failproof_ai 文字标志 + 审计标签·原型索引(`№ NN of 08`)+ 审计日期·数值评分(0–100)+ 百分位等级标签(`top 15%`)·原型名称(`the optimist`、`the cowboy`、`the explorer`、`the goldfish`、`the paranoid architect`、`the precision builder`、`the hammer`、`the ghost` 之一)+ 3 关键词条·`// only N% of agents are this archetype` 稀有度说明·8×8 像素印记图块·`audit yours → failproof.ai` 页脚。捕获框外有三个分享按钮:`post your archetype`(X intent)、`share on linkedin`、`download poster`。捕获通过 `html-to-image` 实现,PNG 与屏幕渲染像素级一致(虚线边框、SVG logo 遮罩、渐变、字体度量——全部保留)。 -2. **优势** — 以平静的 ✓ 行列表形式,展示你的 Agent 已经做对的行为,来源于实时审计数据(干净的工具调用率、无直接推送到主分支、零凭据泄露、零重试风暴)——仅在相关策略在审计窗口内保持干净记录时才显示。 -3. **不足** — 按严重程度排序展示漏网之鱼的表格:`时间 · 漏网内容 + 可捕获该问题的策略 · 严重程度标签 · 出现次数`,其中出现次数读作 `new`(一次)、`N× seen`(2–9 次)或 `recurring`(10+ 次)。 -4. **改进建议** — 平静的行列表,每行对应一条建议策略:白色显示策略名称、一行描述,右侧是安装命令和复制按钮。该部分标题显示 `enable all N → projected · `(应用所有修复后可达到的分数),其 `[install all]` 按钮可复制包含所有建议策略的 `failproofai policy add a b c …` 组合命令。 -5. **下次更好** — 两张并排卡片。左侧:设置提醒(`3d` / `7d` / `14d` / `30d` 周期选择器;通过 `/api/auth/reminder` 在授权后持久保存)。右侧:解锁 failproof 福利——`invite a friend` 打开一个弹窗,接受逗号/空格/换行符分隔的好友邮箱列表(每次最多 10 个),通过 POST 发送到 `/api/audit/invite`,再转发到 api-server 的 `POST /v0/invite`。api-server 以 `invite@failproof.ai` 为每位收件人单独发送邮件,同时抄送发件人并设置 `Reply-To`,让收件人知道是谁邀请了他们,发件人也会在收件箱收到副本。匿名用户会先经过 `AuthDialog` 认证,确保在发送邀请前已知发件人邮箱。权限/福利兑现为后续功能。 +1. **海报** — 填满第一屏视口。独立的 PNG 截图区域,包含 failproof_ai 字标 + 审计标签 · 原型索引(`№ NN of 08`)+ 审计日期 · 数字评分(0–100)+ 百分位排名标签(`top 15%`)· 原型名称(`the optimist`、`the cowboy`、`the explorer`、`the goldfish`、`the paranoid architect`、`the precision builder`、`the hammer`、`the ghost` 之一)+ 3 个关键词条 · `// only N% of agents are this archetype` 稀有度行 · 8×8 像素印记图块 · `audit yours → failproof.ai` 页脚。截图框外侧有三个分享按钮:`post your archetype`(X 分享)、`share on linkedin`、`download poster`。截图通过 `html-to-image` 生成,PNG 与屏幕渲染像素级一致(虚线边框、SVG 蒙版、渐变、字体度量均完整保留)。 +2. **优势** — 以 ✓ 行的形式平静列出 Agent 已表现良好的行为,源自实时审计数据(工具调用通过率高、未直接推送至主分支、零凭证泄露、零重试风暴)——仅在相关策略在审计窗口内记录清白时才会显示。 +3. **不足** — 按严重程度排列的滑点列表:`时间 · 滑点内容 + 可捕获它的策略 · 严重程度标签 · 出现次数`,其中出现次数标注为 `new`(仅一次)、`N× seen`(2–9 次)或 `recurring`(10 次及以上)。 +4. **改进建议** — 平静列表,每行对应一项推荐策略:策略名称以白色显示,一行描述,右侧为安装命令和复制按钮。区块标题显示 `enable all N → projected · `(应用所有修复后可达到的评分),其 `[install all]` 按钮可复制所有推荐策略的组合安装命令 `failproofai policy add a b c …`。 +5. **下次更好** — 两张并排卡片。左侧:设置提醒(`3d` / `7d` / `14d` / `30d` 周期选择器;通过 `/api/auth/reminder` 在认证后持久化)。右侧:解锁 failproof 特权 — `invite a friend` 打开一个对话框,输入以逗号/空格/换行符分隔的好友邮箱列表(每次最多 10 个),通过 POST 发送至 `/api/audit/invite`,再转发至 api-server 的 `POST /v0/invite`。api-server 从 `invite@failproof.ai` 向每位收件人发送邮件,抄送发件人并设置 `Reply-To`,收件人可看到邀请人信息,发件人也会在收件箱收到副本。匿名用户会先通过 `AuthDialog` 流程,确认发件人邮箱后再发送邀请。权益/特权功能将在后续版本中推出。 -由 `failproofai audit` 运行时驱动——有关底层扫描引擎、支持的标志和逐记录缓存不变量,请参阅 [审计 CLI](/zh/cli/audit)。控制台在 `~/.failproofai/audit-dashboard.json`(权限 `0600`,单槽位,新运行覆盖旧结果)缓存最新结果,以便重访时即时加载;**逐记录缓存和整体结果缓存在超过 7 天后读取时均会被拒绝**,因此控制台永远不会静默地提供一周前的旧结果——超过 TTL 后,`/audit` 会回退到空白状态并提示重新运行。点击报告底部附近的 `[ re-audit now ]` 会向 `/api/audit/run` 发送带 `noCache: true` 的 POST 请求——重新审计会绕过逐记录缓存,从头重新扫描每条记录,而不是静默返回缓存结果——控制台以 1Hz 频率轮询 `/api/audit/status`,直到运行完成;运行期间,顶部视口会固定显示一个带有计时器的粉色进度条;运行成功后,新结果原地替换显示(无需整页刷新;重新审计失败时保留之前的报告)。失败时,进度条变为红色,并根据 `RerunError.kind`(`timeout` / `network` / `post_failed`)显示相应的提示文案。空白状态(无缓存或已过期)和零会话状态(缓存存在但扫描未找到记录)分别独立显示。 +由 `failproofai audit` 运行时驱动——扫描引擎、支持的标志及每条记录缓存规则,详见 [审计 CLI](/zh/cli/audit)。控制台将最新结果缓存至 `~/.failproofai/audit-dashboard.json`(权限 `0600`,单槽位,新运行覆盖旧结果),以实现即时回访;**每条记录缓存和整体结果缓存在读取时超过 7 天即失效**,控制台不会静默返回一周前的旧结果——超过 TTL 后,`/audit` 将显示空状态并提示重新运行。点击报告底部的 `[ re-audit now ]` 会向 `/api/audit/run` 发送 `noCache: true` 的 POST 请求——重新审计会绕过每条记录的缓存,从头重新扫描所有记录,而不是静默返回缓存结果——控制台以 1Hz 轮询 `/api/audit/status` 直至运行完成;运行期间,视口顶部会固定显示一条带有计时器的粉色进度条,运行成功后结果就地更新(无需整页刷新;重新审计失败则保留之前的报告)。失败时进度条变红,并根据 `RerunError.kind`(`timeout` / `network` / `post_failed`)显示对应的错误提示。无缓存或缓存过期的空状态,与缓存存在但扫描未发现任何记录的零会话状态,会分别单独展示。 ### 策略 -一个包含两个标签页的页面,用于管理策略和查看活动。 +一个包含两个标签页的页面,用于管理策略和查看活动记录。 - - 在单一面板中多选 failproofai 保护哪些 Agent CLI——Claude Code、OpenAI Codex、GitHub Copilot、Cursor Agent、OpenCode、Pi 和 Hermes 各有一行,显示安装状态(`Active` / `Detected` / `Inactive`)、用户范围设置路径,以及品牌色强调。勾选或取消勾选你想要的 CLI,点击 `Apply changes` 一步完成安装/卸载差异。已在 PATH 中检测到二进制文件的 CLI 会被预先勾选。 - - 一键开启或关闭单个策略(写入 `~/.failproofai/policies-config.json`——所有已安装的 CLI 共享) - - 展开策略以配置其参数(适用于支持 `policyParams` 的策略) + - 在单一面板中多选 failproofai 保护的 Agent CLI — Claude Code、OpenAI Codex、GitHub Copilot、Cursor Agent、OpenCode、Pi 和 Hermes 各有一行,显示安装状态(`Active` / `Detected` / `Inactive`)、用户级配置路径以及品牌色调。勾选或取消勾选所需 CLI,点击 `Apply changes` 即可一步完成安装/卸载差异。PATH 中检测到二进制文件的 CLI 会预先勾选。 + - 单击即可启用或禁用单项策略(写入 `~/.failproofai/policies-config.json`——所有已安装的 CLI 共享此配置) + - 展开策略可配置其参数(适用于支持 `policyParams` 的策略) - 设置自定义策略文件路径 - - 所有会话中触发的每个 Hook 事件的完整分页历史记录 - - 按决策、事件类型、CLI(Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes)、策略名称或会话 ID 筛选 - - 每行显示:时间戳、策略名称、决策、CLI 徽章(橙色 = Claude Code,紫色 = OpenAI Codex,蓝色 = GitHub Copilot,翠绿色 = Cursor Agent,琥珀色 = OpenCode,粉色 = Pi,靛蓝色 = Hermes)、工具名称、会话 ID,以及 deny/instruct 决策的原因 - - 点击会话 ID 可打开其记录——查看器自动检测触发 Hook 的 CLI(Claude `~/.claude/projects/…`、Codex `~/.codex/sessions/…`、Copilot CLI `~/.copilot/session-state//events.jsonl`、Cursor Agent `~/.cursor/agent-sessions//events.jsonl`、OpenCode `~/.local/share/opencode/opencode.db`、Pi `~/.pi/agent/sessions//.jsonl`、Hermes `~/.hermes/state.db`),并在页眉中渲染对应的 CLI 徽章 + - 所有会话中已触发的每个 Hook 事件的完整分页历史记录 + - 按决策、事件类型、CLI(Claude Code / OpenAI Codex / GitHub Copilot _(beta)_ / Cursor Agent _(beta)_ / OpenCode _(beta)_ / Pi _(beta)_ / Hermes / OpenClaw / Factory Droid / Devin / Antigravity / Goose)、策略名称或会话 ID 筛选 + - 每行显示:时间戳、策略名称、决策、CLI 徽标(橙色 = Claude Code、紫色 = OpenAI Codex、蓝色 = GitHub Copilot、翠绿色 = Cursor Agent、琥珀色 = OpenCode、粉色 = Pi、靛蓝色 = Hermes、青色 = OpenClaw、玫瑰色 = Factory Droid、紫罗兰色 = Devin、青蓝色 = Antigravity、黄绿色 = Goose)、工具名称、会话 ID,以及 deny/instruct 决策的原因 + - 点击会话 ID 可打开对应记录——查看器自动检测触发 Hook 的 CLI(Claude `~/.claude/projects/…`、Codex `~/.codex/sessions/…`、Copilot CLI `~/.copilot/session-state//events.jsonl`、Cursor Agent `~/.cursor/agent-sessions//events.jsonl`、OpenCode `~/.local/share/opencode/opencode.db`、Pi `~/.pi/agent/sessions//.jsonl`、Hermes `~/.hermes/state.db`、OpenClaw `~/.openclaw/agents//sessions/*.jsonl`、Factory Droid `~/.factory/sessions//.jsonl`、Devin `~/.local/share/devin/cli/sessions.db`、Antigravity `~/.gemini/antigravity-cli/brain//…/transcript_full.jsonl`、Goose `~/.local/share/goose/sessions/sessions.db`),并在标题中渲染对应的 CLI 徽标 @@ -92,13 +92,13 @@ failproofai ## 自动刷新 -控制台顶部导航栏有一个自动刷新开关。启用后,当前页面会定期刷新,以显示新出现的会话和策略活动。这对于监控长时间运行的自主 Agent 会话至关重要。 +控制台顶部导航栏提供自动刷新开关。启用后,当前页面会定期刷新,实时显示新会话和策略活动。这对于监控长时间运行的自主 Agent 会话至关重要。 --- ## 禁用页面 -如果你只需要控制台的部分功能,可以将 `FAILPROOFAI_DISABLE_PAGES` 设置为逗号分隔的页面名称列表: +如果只需要控制台的部分功能,可将 `FAILPROOFAI_DISABLE_PAGES` 设置为以逗号分隔的页面名称列表: ```bash FAILPROOFAI_DISABLE_PAGES=policies failproofai @@ -110,7 +110,7 @@ FAILPROOFAI_DISABLE_PAGES=policies failproofai ## 配置项目路径 -默认情况下,控制台从标准 Claude Code 项目目录读取。可以为自定义设置覆盖路径: +默认情况下,控制台从标准 Claude Code 项目目录读取数据。如需自定义路径,可通过以下方式覆盖: ```bash CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai @@ -120,30 +120,30 @@ CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai ## 从非 localhost 主机访问 -在**开发模式**(`npm run dev`)下运行控制台并从 `localhost` 以外的主机名访问时——例如自定义域名、远程 IP 或隧道 URL——你可能会看到如下警告: +在**开发模式**(`npm run dev`)下运行控制台,并从非 `localhost` 的主机名访问时——例如自定义域名、远程 IP 或隧道 URL——可能会看到如下警告: ```text ⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com". ``` -这是 Next.js 阻止跨域访问其 HMR(热模块重载)WebSocket 的行为,该功能仅在开发模式下存在。要允许你的主机,请使用 `--allowed-origins` 标志: +这是 Next.js 阻止跨域访问其 HMR(热模块重载)WebSocket 的提示,该功能仅在开发模式下存在。如需允许您的主机,请使用 `--allowed-origins` 标志: ```bash npm run dev -- --allowed-origins dashboard.example.com ``` -对于多个主机或 IP,传入逗号分隔的列表: +如需允许多个主机或 IP,传入以逗号分隔的列表: ```bash npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5 ``` -你也可以设置 `FAILPROOFAI_ALLOWED_DEV_ORIGINS` 环境变量来替代: +也可以改为设置 `FAILPROOFAI_ALLOWED_DEV_ORIGINS` 环境变量: ```bash FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev ``` -这仅适用于开发模式。运行 `failproofai`(生产模式)时,不存在 HMR WebSocket,也不存在跨域开发资源问题。 +此设置仅适用于开发模式。在运行 `failproofai`(生产模式)时,不存在 HMR WebSocket,也不存在跨域开发资源问题。 \ No newline at end of file diff --git a/docs/zh/introduction.mdx b/docs/zh/introduction.mdx index 2caefee6..21168b01 100644 --- a/docs/zh/introduction.mdx +++ b/docs/zh/introduction.mdx @@ -1,41 +1,41 @@ --- title: "Failproof AI" -description: "FailproofAI 为 AI 智能体提供 39 条内置故障策略,一次安装即可捕获循环、密钥泄露、破坏性工具调用等问题。" +description: "FailproofAI 为 AI 智能体提供 39 条内置失败策略,一次安装即可捕获循环、密钥泄露、破坏性工具调用等问题。" --- [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai) -专为 **AI 故障处理**、**错误恢复**和 **LLM 可靠性**设计的 Hooks 与策略系统。让你的 AI 智能体在 **Claude Code**、**OpenAI Codex**、**GitHub Copilot**、**Cursor Agent**、**OpenCode**、**Pi**、**Hermes** 以及 **Agents SDK** 上稳定运行、持续自主工作。 +专为 **AI 故障处理**、**错误恢复**和 **LLM 可靠性**设计的 Hooks 与策略。让你的 AI 智能体在 **Claude Code**、**OpenAI Codex**、**GitHub Copilot**、**Cursor Agent**、**OpenCode**、**Pi**、**Hermes**、**OpenClaw**、**Factory Droid**、**Devin CLI**、**Antigravity CLI** 以及 **Agents SDK** 上保持稳定、自主运行。 -AI 智能体的失败往往有迹可循:执行破坏性命令、泄露密钥、偏离任务、陷入死循环,或直接推送到主分支。一旦无人看管,小故障就会滚雪球般演变成服务中断、凭据泄露和数据丢失。 +AI 智能体的失败方式往往有规律可循:执行破坏性命令、泄露密钥、偏离任务、陷入循环,或直接推送到主分支。若无人干预,小问题会逐步演变为服务中断、凭据泄露和数据丢失。 -FailproofAI 通过**策略**来解决这些问题。这些规则挂载到每一次智能体工具调用中,负责**检测故障**、**采取应对措施**(阻止、指示、脱敏)并在需要人工介入时**及时告警**。本地仪表板让你事后可以回顾每一次工具调用、智能体故障及恢复操作的完整记录。 +FailproofAI 通过**策略**来解决这一问题。这些规则会介入每次智能体工具调用,**检测故障**、**进行缓解**(拦截、指引、清理),并在需要关注时**向你发出提醒**。本地仪表盘让你事后可以回顾每一次工具调用、智能体故障和恢复操作。 -所有数据均不离开你的本地机器。 +会话记录与策略评估均保留在本地。只有当你明确使用在线功能(如经认证的审计提醒或邀请)时,才会发送数据。 -## 快速开始 +## 快速入门 - 开箱即用:拦截破坏性命令、防止密钥泄露、将智能体限制在项目边界内,以及更多功能。 + 开箱即用:拦截破坏性命令、防止密钥泄露、将智能体限制在项目范围内,以及更多功能。 - 使用 JavaScript 编写你自己的规则,配合简洁的 allow / deny / instruct API 轻松实现。 + 使用 JavaScript 编写你自己的规则,配合简洁的 allow / deny / instruct API 即可上手。 - 查看智能体在你离开期间的所有操作。浏览会话记录、检查工具调用、回顾策略触发详情。 + 查看智能体在你离开时的操作记录。浏览会话、检查工具调用、回顾策略触发情况。 - - 无需编写代码即可调整任意策略。可按项目或全局设置允许列表、受保护分支或触发阈值。 + + 无需编写代码即可调整任意策略。按项目或全局设置白名单、受保护分支或阈值。 -## 快速安装 +## 快速开始 @@ -54,4 +54,4 @@ failproofai policies --install # enable policies (or skip — `failproofai` wi failproofai # launch the dashboard ``` -完整操作流程请参阅[入门指南](/zh/getting-started)。 \ No newline at end of file +完整使用流程请参阅[快速入门](/zh/getting-started)指南。 \ No newline at end of file