Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion components/proForge/ProForgeDashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,15 @@ export const ProForgeDashboard: React.FC = () => {
<span className="text-[var(--sc-text-on-accent)] font-bold text-sm">P</span>
</div>
<div>
<div className="flex items-center gap-2">
<div className="flex items-center gap-2 flex-wrap">
<h2 className="text-base font-semibold">{t('proforge.pipeline.title')}</h2>
{/* QNBS-v3: ProForge is an on-by-default but experimental agentic pipeline — label it. */}
<Badge variant="experimental">{t('common.badge.experimental')}</Badge>
</div>
{/* QNBS-v3: PR6 — make the human-in-the-loop expectation explicit, not just implied in help. */}
<p className="text-[11px] text-[var(--sc-warning-fg)] font-medium">
{t('proforge.pipeline.reviewRequired')}
</p>
<p className="text-xs text-[var(--sc-text-tertiary)]">
{currentRun ? currentRun.label : t('proforge.pipeline.noneActive')}
</p>
Expand Down
16 changes: 16 additions & 0 deletions features/proForge/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,23 @@ export interface PipelineConfig {
language: string;
/** Max supervisor-triggered retries per stage (0 = no retry, 1 = one retry) */
maxRetries?: 0 | 1;
/** Tunable supervisor quality-gate thresholds (defaults applied when omitted). */
qualityThresholds?: QualityThresholds;
Comment thread
qnbs marked this conversation as resolved.
}

/** Tunable thresholds for the heuristic supervisor quality gates. */
export interface QualityThresholds {
/** Word count above which a stage producing zero edits/findings is treated as a fallback signal. */
largeManuscriptWords: number;
/** Intake qualityScore below this hard-fails the run. */
intakeHardGate: number;
}

export const DEFAULT_QUALITY_THRESHOLDS: QualityThresholds = {
largeManuscriptWords: 1000,
intakeHardGate: 30,
};

export const DEFAULT_PIPELINE_CONFIG: PipelineConfig = {
genrePreset: 'general-fiction',
selectedStages: [
Expand All @@ -117,6 +132,7 @@ export const DEFAULT_PIPELINE_CONFIG: PipelineConfig = {
autoAcceptThreshold: 0,
language: 'en',
maxRetries: 1,
qualityThresholds: DEFAULT_QUALITY_THRESHOLDS,
};

// ---------------------------------------------------------------------------
Expand Down
132 changes: 65 additions & 67 deletions graphify-out/GRAPH_REPORT.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions locales/ar/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "جارٍ التحضير للعالم…",
"proforge.loading.structural": "جارٍ النظر في شكل قصتك…",
"proforge.pipeline.noneActive": "لا يوجد خط أنابيب نشط",
"proforge.pipeline.reviewRequired": "تجريبي — مراجعتك مطلوبة؛ لا يتم تغيير المخطوطة أبدًا دون موافقتك.",
"proforge.pipeline.title": "خط أنابيب المؤلّف الأمثل",
"proforge.progress.activeStage": "Active Stage",
"proforge.progress.awaitingReviewHint": "⚠️ This stage is awaiting your review. Click the stage button above to review items.",
Expand Down
1 change: 1 addition & 0 deletions locales/de/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Macht sich für die Welt bereit…",
"proforge.loading.structural": "Betrachtet die Struktur deiner Geschichte…",
"proforge.pipeline.noneActive": "Keine aktive Pipeline",
"proforge.pipeline.reviewRequired": "Experimentell — deine Prüfung ist erforderlich; das Manuskript wird nie ohne deine Zustimmung geändert.",
"proforge.pipeline.title": "Ultimative Autoren-Pipeline",
"proforge.progress.activeStage": "Aktive Phase",
"proforge.progress.awaitingReviewHint": "⚠️ Diese Phase wartet auf Ihre Prüfung. Klicken Sie oben auf die Phasenschaltfläche, um die Einträge zu prüfen.",
Expand Down
1 change: 1 addition & 0 deletions locales/el/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Προετοιμασία για τον κόσμο…",
"proforge.loading.structural": "Κοιτάζοντας τη μορφή της ιστορίας σας…",
"proforge.pipeline.noneActive": "Δεν υπάρχει ενεργός αγωγός",
"proforge.pipeline.reviewRequired": "Πειραματικό — απαιτείται η αξιολόγησή σας· το χειρόγραφο δεν αλλάζει ποτέ χωρίς την έγκρισή σας.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Ενεργό Στάδιο",
"proforge.progress.awaitingReviewHint": "⚠️ Αυτό το στάδιο περιμένει την κριτική σας. Κάντε κλικ στο κουμπί του σταδίου παραπάνω για να ελέγξετε τα στοιχεία.",
Expand Down
1 change: 1 addition & 0 deletions locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,7 @@
"proforge.loading.analytics": "Summing up the run…",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.pipeline.noneActive": "No active pipeline",
"proforge.pipeline.reviewRequired": "Experimental — your review is required; the manuscript is never changed without your approval.",
"proforge.emptyState.title": "Your manuscript, refined.",
"proforge.emptyState.description": "ProForge reads every chapter, then walks you through editing stage by stage. Nothing gets lost — every change is reversible.",
"proforge.enabledHint": "ProForge Pipeline enabled. Open the Writer view and click the ProForge button in the tools panel to start.",
Expand Down
1 change: 1 addition & 0 deletions locales/es/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Preparándose para el mundo…",
"proforge.loading.structural": "Observando la forma de tu historia…",
"proforge.pipeline.noneActive": "Sin pipeline activa",
"proforge.pipeline.reviewRequired": "Experimental: se requiere tu revisión; el manuscrito nunca se modifica sin tu aprobación.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Etapa activa",
"proforge.progress.awaitingReviewHint": "⚠️ Esta etapa está esperando tu revisión. Haz clic en el botón de la etapa de arriba para revisar los elementos.",
Expand Down
1 change: 1 addition & 0 deletions locales/eu/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Mundurako prestatzen...",
"proforge.loading.structural": "Zure istorioaren formari begira...",
"proforge.pipeline.noneActive": "Ez dago kanalizazio aktiborik",
"proforge.pipeline.reviewRequired": "Esperimentala — zure berrikuspena beharrezkoa da; eskuizkribua ez da inoiz aldatzen zure oniritzirik gabe.",
"proforge.pipeline.title": "Azken egilearen kanalizazioa",
"proforge.progress.activeStage": "Etapa Aktiboa",
"proforge.progress.awaitingReviewHint": "⚠️ Etapa hau zure iritziaren zain dago. Egin klik goiko faseko botoian elementuak berrikusteko.",
Expand Down
1 change: 1 addition & 0 deletions locales/fa/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "آماده شدن برای جهان…",
"proforge.loading.structural": "با نگاه کردن به شکل داستان شما…",
"proforge.pipeline.noneActive": "بدون خط لوله فعال",
"proforge.pipeline.reviewRequired": "آزمایشی — بازبینی شما لازم است؛ نسخه هرگز بدون تأیید شما تغییر نمی‌کند.",
"proforge.pipeline.title": "خط لوله نویسنده نهایی",
"proforge.progress.activeStage": "مرحله فعال",
"proforge.progress.awaitingReviewHint": "⚠️ این مرحله منتظر بررسی شماست. برای بررسی موارد روی دکمه مرحله بالا کلیک کنید.",
Expand Down
1 change: 1 addition & 0 deletions locales/fi/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Valmistautuminen maailmaan…",
"proforge.loading.structural": "Tarinasi muotoa katsoessani…",
"proforge.pipeline.noneActive": "Ei aktiivista putkistoa",
"proforge.pipeline.reviewRequired": "Kokeellinen — tarkistuksesi vaaditaan; käsikirjoitusta ei koskaan muuteta ilman hyväksyntääsi.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Aktiivinen vaihe",
"proforge.progress.awaitingReviewHint": "⚠️ Tämä vaihe odottaa arvosteluasi. Napsauta yllä olevaa vaihepainiketta tarkastellaksesi kohteita.",
Expand Down
1 change: 1 addition & 0 deletions locales/fr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Prêt pour le monde…",
"proforge.loading.structural": "Examen de la structure de votre histoire…",
"proforge.pipeline.noneActive": "Aucune pipeline active",
"proforge.pipeline.reviewRequired": "Expérimental — votre relecture est requise ; le manuscrit n'est jamais modifié sans votre accord.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Étape active",
"proforge.progress.awaitingReviewHint": "⚠️ Cette étape attend votre relecture. Cliquez sur le bouton de l'étape ci-dessus pour examiner les éléments.",
Expand Down
1 change: 1 addition & 0 deletions locales/he/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "מתכונן לעולם…",
"proforge.loading.structural": "מתבונן במבנה הסיפור שלכם…",
"proforge.pipeline.noneActive": "אין צינור פעיל",
"proforge.pipeline.reviewRequired": "ניסיוני — נדרשת הבדיקה שלך; כתב היד לעולם לא משתנה ללא אישורך.",
"proforge.pipeline.title": "צינור הסופר האולטימטיבי",
"proforge.progress.activeStage": "Active Stage",
"proforge.progress.awaitingReviewHint": "⚠️ This stage is awaiting your review. Click the stage button above to review items.",
Expand Down
1 change: 1 addition & 0 deletions locales/hu/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Felkészülés a világra…",
"proforge.loading.structural": "Elnézve a történeted alakját…",
"proforge.pipeline.noneActive": "Nincs aktív csővezeték",
"proforge.pipeline.reviewRequired": "Kísérleti — szükség van az átnézésedre; a kézirat soha nem módosul a jóváhagyásod nélkül.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Aktív szakasz",
"proforge.progress.awaitingReviewHint": "⚠️ Ez a szakasz az értékelésedre vár. Kattintson a fenti szakasz gombra az elemek áttekintéséhez.",
Expand Down
1 change: 1 addition & 0 deletions locales/is/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Undirbúningur fyrir heiminn…",
"proforge.loading.structural": "Þegar þú horfir á lögun sögunnar þinnar...",
"proforge.pipeline.noneActive": "Engin virk leiðsla",
"proforge.pipeline.reviewRequired": "Tilraunaverkefni — yfirferð þín er nauðsynleg; handritinu er aldrei breytt án samþykkis þíns.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Virkt stig",
"proforge.progress.awaitingReviewHint": "⚠️ Þetta stig bíður skoðunar þinnar. Smelltu á sviðshnappinn hér að ofan til að skoða atriði.",
Expand Down
1 change: 1 addition & 0 deletions locales/it/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Pronto per il mondo…",
"proforge.loading.structural": "Osservando la forma della tua storia…",
"proforge.pipeline.noneActive": "Nessuna pipeline attiva",
"proforge.pipeline.reviewRequired": "Sperimentale — è richiesta la tua revisione; il manoscritto non viene mai modificato senza la tua approvazione.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Fase attiva",
"proforge.progress.awaitingReviewHint": "⚠️ Questa fase è in attesa della tua revisione. Fai clic sul pulsante della fase qui sopra per esaminare gli elementi.",
Expand Down
1 change: 1 addition & 0 deletions locales/ja/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "世界に向けて準備中…",
"proforge.loading.structural": "あなたの物語の形を見てみると…",
"proforge.pipeline.noneActive": "アクティブなパイプラインがありません",
"proforge.pipeline.reviewRequired": "実験的 — あなたのレビューが必要です。承認なしに原稿が変更されることはありません。",
"proforge.pipeline.title": "究極の著者パイプライン",
"proforge.progress.activeStage": "アクティブステージ",
"proforge.progress.awaitingReviewHint": "⚠️ このステージはあなたのレビューを待っています。項目を確認するには、上のステージ ボタンをクリックしてください。",
Expand Down
1 change: 1 addition & 0 deletions locales/ko/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "세상을 준비하는…",
"proforge.loading.structural": "이야기의 형태를 살펴보면…",
"proforge.pipeline.noneActive": "활성 파이프라인 없음",
"proforge.pipeline.reviewRequired": "실험적 기능 — 검토가 필요합니다. 승인 없이 원고가 변경되지 않습니다.",
"proforge.pipeline.title": "궁극적인 작성자 파이프라인",
"proforge.progress.activeStage": "액티브 스테이지",
"proforge.progress.awaitingReviewHint": "⚠️ 이 단계는 귀하의 검토를 기다리고 있습니다. 항목을 검토하려면 위의 단계 버튼을 클릭하세요.",
Expand Down
1 change: 1 addition & 0 deletions locales/pt/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Preparando-se para o mundo…",
"proforge.loading.structural": "Olhando para a forma da sua história…",
"proforge.pipeline.noneActive": "Nenhum pipeline ativo",
"proforge.pipeline.reviewRequired": "Experimental — a sua revisão é necessária; o manuscrito nunca é alterado sem a sua aprovação.",
"proforge.pipeline.title": "Pipeline final do autor",
"proforge.progress.activeStage": "Estágio Ativo",
"proforge.progress.awaitingReviewHint": "⚠️ Esta etapa aguarda sua análise. Clique no botão de estágio acima para revisar os itens.",
Expand Down
1 change: 1 addition & 0 deletions locales/ru/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Готовимся к миру…",
"proforge.loading.structural": "Глядя на форму вашей истории…",
"proforge.pipeline.noneActive": "Нет активного конвейера",
"proforge.pipeline.reviewRequired": "Экспериментально — требуется ваша проверка; рукопись никогда не изменяется без вашего одобрения.",
"proforge.pipeline.title": "Конечный авторский конвейер",
"proforge.progress.activeStage": "Активная стадия",
"proforge.progress.awaitingReviewHint": "⚠️Этот этап ожидает вашего рассмотрения. Нажмите кнопку этапа выше, чтобы просмотреть элементы.",
Expand Down
1 change: 1 addition & 0 deletions locales/sv/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "Förbereder sig för världen...",
"proforge.loading.structural": "Titta på din berättelses form...",
"proforge.pipeline.noneActive": "Ingen aktiv pipeline",
"proforge.pipeline.reviewRequired": "Experimentell — din granskning krävs; manuskriptet ändras aldrig utan ditt godkännande.",
"proforge.pipeline.title": "Ultimate Author Pipeline",
"proforge.progress.activeStage": "Aktiv scen",
"proforge.progress.awaitingReviewHint": "⚠️ Det här steget väntar på din recension. Klicka på scenknappen ovan för att granska objekt.",
Expand Down
1 change: 1 addition & 0 deletions locales/zh/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@
"proforge.loading.publishing": "为世界做好准备……",
"proforge.loading.structural": "看看你的故事的形状……",
"proforge.pipeline.noneActive": "无活动管道",
"proforge.pipeline.reviewRequired": "实验性功能——需要您审阅;未经您批准,稿件绝不会被修改。",
"proforge.pipeline.title": "最终作者管道",
"proforge.progress.activeStage": "活跃阶段",
"proforge.progress.awaitingReviewHint": "⚠️此阶段正在等待您的审核。单击上面的阶段按钮以查看项目。",
Expand Down
1 change: 1 addition & 0 deletions public/locales/ar/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/de/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/el/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/en/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/es/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/eu/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions public/locales/fa/bundle.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading