@cat-factory/app 0.194.0 → 0.195.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,6 +103,29 @@ export function selectPlanApproval<A extends { agentKind: string }>(
103
103
  return approvals.find((a) => resultViewOf(a.agentKind) !== INTERVIEW_GATE_RESULT_VIEW)
104
104
  }
105
105
 
106
+ /**
107
+ * The plan DOCUMENT a parked gate offers for review — its proposal, but only once the step says
108
+ * that proposal IS the plan rendering (`outputIsRendered`); `''` otherwise.
109
+ *
110
+ * A step that rendered nothing parks on the planner's transcript SUMMARY, which is a perfectly
111
+ * non-empty string, so an emptiness check alone would present one sentence under a table of
112
+ * contents as though it were the plan. `''` is what routes such a gate to the compact notice
113
+ * instead — and the SAME value decides the tracker window's layout (a document review takes the
114
+ * whole window; a notice sits above the tracker's own sections), so the surface and its host can
115
+ * never disagree about which shape is on screen.
116
+ *
117
+ * Rendered-but-blank counts as no document. The proposal comes back VERBATIM, never trimmed: the
118
+ * review anchors comments to source LINE numbers, so dropping a leading newline would shift every
119
+ * anchor off the block it quotes.
120
+ */
121
+ export function planReviewDocument(
122
+ gate: { approval: { proposal?: string | null }; outputIsRendered: boolean } | null | undefined,
123
+ ): string {
124
+ if (!gate?.outputIsRendered) return ''
125
+ const proposal = gate.approval.proposal ?? ''
126
+ return proposal.trim() ? proposal : ''
127
+ }
128
+
106
129
  /** Follow-up triage status → i18n label key. Exhaustive so a new status fails the build. */
107
130
  export const INITIATIVE_FOLLOWUP_STATUS_LABEL_KEYS: Record<InitiativeFollowUp['status'], string> = {
108
131
  open: 'initiative.followUpStatus.open',
@@ -3750,6 +3750,13 @@
3750
3750
  "deleteFailed": "Pipeline konnte nicht gelöscht werden",
3751
3751
  "removeFailed": "Pipeline konnte nicht entfernt werden"
3752
3752
  }
3753
+ },
3754
+ "outputBudget": {
3755
+ "stepLabel": "Ausgabebudget",
3756
+ "kindLabel": "Ausgabebudget",
3757
+ "kindHint": "Gilt für jeden Lauf dieses Agenten. Ein Pipeline-Schritt kann es überschreiben.",
3758
+ "inherits": "Übernommen",
3759
+ "inheritsValue": "Übernommen ({tokens})"
3753
3760
  }
3754
3761
  },
3755
3762
  "agentPrompt": {
@@ -3784,7 +3791,8 @@
3784
3791
  "reverted": "Zurück zum Standardprompt",
3785
3792
  "saveFailed": "Prompt konnte nicht gespeichert werden",
3786
3793
  "loadFailed": "Prompt konnte nicht geladen werden",
3787
- "conflict": "Jemand anderes hat diesen Prompt geändert. Neu geladen - wenden Sie Ihre Änderung erneut an."
3794
+ "conflict": "Jemand anderes hat diesen Prompt geändert. Neu geladen - wenden Sie Ihre Änderung erneut an.",
3795
+ "budgetFailed": "Ausgabebudget konnte nicht gespeichert werden"
3788
3796
  }
3789
3797
  },
3790
3798
  "agentTier": {
@@ -4418,11 +4426,12 @@
4418
4426
  },
4419
4427
  "planReview": {
4420
4428
  "title": "Dieser Plan wartet auf dich",
4421
- "body": "Der Planner hat die Phasen und Aufgaben unten entworfen. Gib sie frei, um den Plan zu committen und die Arbeit zu starten, oder schicke den Plan mit deinen Änderungswünschen zurück.",
4429
+ "body": "Der Planner hat diese Phasen und Aufgaben entworfen. Gib sie frei, um den Plan zu committen und die Arbeit zu starten, oder schicke den Plan mit deinen Änderungswünschen zurück.",
4422
4430
  "approve": "Plan freigeben",
4423
4431
  "feedbackPlaceholder": "Was soll der Planner ändern? Umfang, Reihenfolge der Phasen, fehlende Arbeit, eine Aufgabe, die woanders hingehört …",
4424
4432
  "sendBack": "An den Planner zurückschicken",
4425
- "noDocument": "Dieser Plan entstand, bevor die Plattform Pläne zur Prüfung gerendert hat — es gibt kein Dokument zum Navigieren; die Abschnitte unten sind der Plan.",
4433
+ "noDocument": "Dieser Planungsschritt hat kein Plandokument zur Prüfung hinterlassen, es gibt hier also nichts zu navigieren.",
4434
+ "noDocumentSections": "Der Plan sind die Abschnitte unten.",
4426
4435
  "needsFeedback": "Füge zuerst einen Kommentar oder eine Rückmeldung hinzu — der Planer plant damit neu.",
4427
4436
  "commentHint": "Klicke auf einen Teil des Plans, um ihn zu kommentieren."
4428
4437
  },
@@ -4188,6 +4188,13 @@
4188
4188
  "deleteFailed": "Could not delete pipeline",
4189
4189
  "removeFailed": "Could not remove pipeline"
4190
4190
  }
4191
+ },
4192
+ "outputBudget": {
4193
+ "stepLabel": "Output budget",
4194
+ "kindLabel": "Output budget",
4195
+ "kindHint": "Applies to every run of this agent. A pipeline step can override it.",
4196
+ "inherits": "Inherited",
4197
+ "inheritsValue": "Inherited ({tokens})"
4191
4198
  }
4192
4199
  },
4193
4200
  "agentPrompt": {
@@ -4231,7 +4238,8 @@
4231
4238
  "reverted": "Back to the built-in prompt",
4232
4239
  "saveFailed": "Couldn't save the prompt",
4233
4240
  "loadFailed": "Couldn't load the prompt",
4234
- "conflict": "Someone else changed this prompt. Reloaded - re-apply your edit."
4241
+ "conflict": "Someone else changed this prompt. Reloaded - re-apply your edit.",
4242
+ "budgetFailed": "Could not save the output budget"
4235
4243
  }
4236
4244
  },
4237
4245
  "agentTier": {
@@ -5637,11 +5645,12 @@
5637
5645
  },
5638
5646
  "planReview": {
5639
5647
  "title": "This plan is waiting for you",
5640
- "body": "The planner drafted the phases and items below. Approve them to commit the plan and start the work, or send the plan back with what to change.",
5648
+ "body": "The planner drafted these phases and items. Approve them to commit the plan and start the work, or send the plan back with what to change.",
5641
5649
  "approve": "Approve plan",
5642
5650
  "feedbackPlaceholder": "What should the planner change? Scope, phase order, missing work, an item that belongs elsewhere…",
5643
5651
  "sendBack": "Send back to the planner",
5644
- "noDocument": "This plan was drafted before the platform rendered plans for review, so there is no document to navigate — the sections below are the plan.",
5652
+ "noDocument": "This planning step left no plan document to review, so there is nothing to navigate here.",
5653
+ "noDocumentSections": "The sections below are the plan.",
5645
5654
  "needsFeedback": "Add a comment or some feedback first — the planner re-plans from it.",
5646
5655
  "commentHint": "Click any part of the plan to comment on it."
5647
5656
  },
@@ -4073,6 +4073,13 @@
4073
4073
  "deleteFailed": "No se pudo eliminar el pipeline",
4074
4074
  "removeFailed": "No se pudo quitar el pipeline"
4075
4075
  }
4076
+ },
4077
+ "outputBudget": {
4078
+ "stepLabel": "Presupuesto de salida",
4079
+ "kindLabel": "Presupuesto de salida",
4080
+ "kindHint": "Se aplica a todas las ejecuciones de este agente. Un paso del pipeline puede anularlo.",
4081
+ "inherits": "Heredado",
4082
+ "inheritsValue": "Heredado ({tokens})"
4076
4083
  }
4077
4084
  },
4078
4085
  "agentPrompt": {
@@ -4107,7 +4114,8 @@
4107
4114
  "reverted": "De vuelta al prompt predeterminado",
4108
4115
  "saveFailed": "No se pudo guardar el prompt",
4109
4116
  "loadFailed": "No se pudo cargar el prompt",
4110
- "conflict": "Otra persona cambió este prompt. Se recargó: vuelve a aplicar tu edición."
4117
+ "conflict": "Otra persona cambió este prompt. Se recargó: vuelve a aplicar tu edición.",
4118
+ "budgetFailed": "No se pudo guardar el presupuesto de salida"
4111
4119
  }
4112
4120
  },
4113
4121
  "agentTier": {
@@ -5445,11 +5453,12 @@
5445
5453
  },
5446
5454
  "planReview": {
5447
5455
  "title": "Este plan te está esperando",
5448
- "body": "El planificador redactó las fases y los elementos de abajo. Apruébalos para confirmar el plan y empezar el trabajo, o devuelve el plan indicando qué cambiar.",
5456
+ "body": "El planificador redactó estas fases y estos elementos. Apruébalos para confirmar el plan y empezar el trabajo, o devuelve el plan indicando qué cambiar.",
5449
5457
  "approve": "Aprobar plan",
5450
5458
  "feedbackPlaceholder": "¿Qué debería cambiar el planificador? Alcance, orden de las fases, trabajo que falta, un elemento que va en otro sitio…",
5451
5459
  "sendBack": "Devolver al planificador",
5452
- "noDocument": "Este plan se redactó antes de que la plataforma generara planes para revisión, así que no hay documento que recorrer: las secciones de abajo son el plan.",
5460
+ "noDocument": "Este paso de planificación no dejó ningún documento del plan para revisar, así que aquí no hay nada que recorrer.",
5461
+ "noDocumentSections": "Las secciones de abajo son el plan.",
5453
5462
  "needsFeedback": "Añade primero un comentario o algún comentario general: el planificador replanifica a partir de ello.",
5454
5463
  "commentHint": "Haz clic en cualquier parte del plan para comentarla."
5455
5464
  },
@@ -4073,6 +4073,13 @@
4073
4073
  "deleteFailed": "Impossible de supprimer le pipeline",
4074
4074
  "removeFailed": "Impossible de retirer le pipeline"
4075
4075
  }
4076
+ },
4077
+ "outputBudget": {
4078
+ "stepLabel": "Budget de sortie",
4079
+ "kindLabel": "Budget de sortie",
4080
+ "kindHint": "S'applique à chaque exécution de cet agent. Une étape du pipeline peut le remplacer.",
4081
+ "inherits": "Hérité",
4082
+ "inheritsValue": "Hérité ({tokens})"
4076
4083
  }
4077
4084
  },
4078
4085
  "agentPrompt": {
@@ -4107,7 +4114,8 @@
4107
4114
  "reverted": "Retour à l'invite par défaut",
4108
4115
  "saveFailed": "Impossible d'enregistrer l'invite",
4109
4116
  "loadFailed": "Impossible de charger l'invite",
4110
- "conflict": "Quelqu'un d'autre a modifié cette invite. Rechargée : réappliquez votre modification."
4117
+ "conflict": "Quelqu'un d'autre a modifié cette invite. Rechargée : réappliquez votre modification.",
4118
+ "budgetFailed": "Impossible d'enregistrer le budget de sortie"
4111
4119
  }
4112
4120
  },
4113
4121
  "agentTier": {
@@ -5445,11 +5453,12 @@
5445
5453
  },
5446
5454
  "planReview": {
5447
5455
  "title": "Ce plan vous attend",
5448
- "body": "Le planificateur a rédigé les phases et les éléments ci-dessous. Approuvez-les pour valider le plan et lancer le travail, ou renvoyez le plan en indiquant ce qu'il faut changer.",
5456
+ "body": "Le planificateur a rédigé ces phases et ces éléments. Approuvez-les pour valider le plan et lancer le travail, ou renvoyez le plan en indiquant ce qu'il faut changer.",
5449
5457
  "approve": "Approuver le plan",
5450
5458
  "feedbackPlaceholder": "Que doit changer le planificateur ? Périmètre, ordre des phases, travail manquant, un élément qui a sa place ailleurs…",
5451
5459
  "sendBack": "Renvoyer au planificateur",
5452
- "noDocument": "Ce plan a été rédigé avant que la plateforme ne produise des plans à relire ; il n'y a donc pas de document à parcourir — les sections ci-dessous sont le plan.",
5460
+ "noDocument": "Cette étape de planification n'a laissé aucun document de plan à relire, il n'y a donc rien à parcourir ici.",
5461
+ "noDocumentSections": "Les sections ci-dessous sont le plan.",
5453
5462
  "needsFeedback": "Ajoutez d'abord un commentaire ou un retour : le planificateur s'en sert pour replanifier.",
5454
5463
  "commentHint": "Cliquez sur une partie du plan pour la commenter."
5455
5464
  },
@@ -4084,6 +4084,13 @@
4084
4084
  "deleteFailed": "לא ניתן למחוק את הצינור",
4085
4085
  "removeFailed": "לא ניתן היה להסיר את הצינור"
4086
4086
  }
4087
+ },
4088
+ "outputBudget": {
4089
+ "stepLabel": "תקציב פלט",
4090
+ "kindLabel": "תקציב פלט",
4091
+ "kindHint": "חל על כל הרצה של הסוכן הזה. שלב בצינור יכול לעקוף אותו.",
4092
+ "inherits": "בירושה",
4093
+ "inheritsValue": "בירושה ({tokens})"
4087
4094
  }
4088
4095
  },
4089
4096
  "agentPrompt": {
@@ -4118,7 +4125,8 @@
4118
4125
  "reverted": "חזרה להנחיה המובנית",
4119
4126
  "saveFailed": "לא ניתן היה לשמור את ההנחיה",
4120
4127
  "loadFailed": "לא ניתן היה לטעון את ההנחיה",
4121
- "conflict": "מישהו אחר שינה את ההנחיה הזו. נטענה מחדש - החילו את העריכה שלכם שוב."
4128
+ "conflict": "מישהו אחר שינה את ההנחיה הזו. נטענה מחדש - החילו את העריכה שלכם שוב.",
4129
+ "budgetFailed": "לא ניתן היה לשמור את תקציב הפלט"
4122
4130
  }
4123
4131
  },
4124
4132
  "agentTier": {
@@ -5456,11 +5464,12 @@
5456
5464
  },
5457
5465
  "planReview": {
5458
5466
  "title": "התוכנית הזו ממתינה לך",
5459
- "body": "המתכנן ניסח את השלבים והפריטים שלמטה. אשרו אותם כדי לשמור את התוכנית ולהתחיל בעבודה, או החזירו את התוכנית עם מה שצריך לשנות.",
5467
+ "body": "המתכנן ניסח את השלבים והפריטים האלה. אשרו אותם כדי לשמור את התוכנית ולהתחיל בעבודה, או החזירו את התוכנית עם מה שצריך לשנות.",
5460
5468
  "approve": "אישור התוכנית",
5461
5469
  "feedbackPlaceholder": "מה המתכנן צריך לשנות? היקף, סדר השלבים, עבודה חסרה, פריט ששייך למקום אחר…",
5462
5470
  "sendBack": "החזרה למתכנן",
5463
- "noDocument": "התוכנית הזו נוסחה לפני שהפלטפורמה יצרה תוכניות לבדיקה, ולכן אין מסמך לנווט בו — הסעיפים שלמטה הם התוכנית.",
5471
+ "noDocument": "שלב התכנון הזה לא השאיר מסמך תוכנית לבדיקה, ולכן אין כאן במה לנווט.",
5472
+ "noDocumentSections": "הסעיפים שלמטה הם התוכנית.",
5464
5473
  "needsFeedback": "הוסיפו תחילה הערה או משוב — המתכנן מתכנן מחדש על סמך זה.",
5465
5474
  "commentHint": "לחצו על כל חלק בתוכנית כדי להעיר עליו."
5466
5475
  },
@@ -3750,6 +3750,13 @@
3750
3750
  "deleteFailed": "Impossibile eliminare la pipeline",
3751
3751
  "removeFailed": "Impossibile rimuovere la pipeline"
3752
3752
  }
3753
+ },
3754
+ "outputBudget": {
3755
+ "stepLabel": "Budget di output",
3756
+ "kindLabel": "Budget di output",
3757
+ "kindHint": "Si applica a ogni esecuzione di questo agente. Un passaggio della pipeline può sovrascriverlo.",
3758
+ "inherits": "Ereditato",
3759
+ "inheritsValue": "Ereditato ({tokens})"
3753
3760
  }
3754
3761
  },
3755
3762
  "agentPrompt": {
@@ -3784,7 +3791,8 @@
3784
3791
  "reverted": "Tornato al prompt predefinito",
3785
3792
  "saveFailed": "Impossibile salvare il prompt",
3786
3793
  "loadFailed": "Impossibile caricare il prompt",
3787
- "conflict": "Qualcun altro ha modificato questo prompt. Ricaricato: riapplica la tua modifica."
3794
+ "conflict": "Qualcun altro ha modificato questo prompt. Ricaricato: riapplica la tua modifica.",
3795
+ "budgetFailed": "Impossibile salvare il budget di output"
3788
3796
  }
3789
3797
  },
3790
3798
  "agentTier": {
@@ -4418,11 +4426,12 @@
4418
4426
  },
4419
4427
  "planReview": {
4420
4428
  "title": "Questo piano ti sta aspettando",
4421
- "body": "Il planner ha redatto le fasi e gli elementi qui sotto. Approvali per confermare il piano e avviare il lavoro, oppure rimanda indietro il piano indicando cosa cambiare.",
4429
+ "body": "Il planner ha redatto queste fasi e questi elementi. Approvali per confermare il piano e avviare il lavoro, oppure rimanda indietro il piano indicando cosa cambiare.",
4422
4430
  "approve": "Approva il piano",
4423
4431
  "feedbackPlaceholder": "Cosa deve cambiare il planner? Ambito, ordine delle fasi, lavoro mancante, un elemento che sta altrove…",
4424
4432
  "sendBack": "Rimanda al planner",
4425
- "noDocument": "Questo piano è stato redatto prima che la piattaforma generasse piani da revisionare, quindi non c'è un documento da percorrere: le sezioni qui sotto sono il piano.",
4433
+ "noDocument": "Questo passaggio di pianificazione non ha lasciato alcun documento del piano da revisionare, quindi qui non c'è nulla da percorrere.",
4434
+ "noDocumentSections": "Le sezioni qui sotto sono il piano.",
4426
4435
  "needsFeedback": "Aggiungi prima un commento o un riscontro: il pianificatore ripianifica a partire da questo.",
4427
4436
  "commentHint": "Fai clic su una parte del piano per commentarla."
4428
4437
  },
@@ -4085,6 +4085,13 @@
4085
4085
  "deleteFailed": "パイプラインを削除できませんでした",
4086
4086
  "removeFailed": "パイプラインを削除できませんでした"
4087
4087
  }
4088
+ },
4089
+ "outputBudget": {
4090
+ "stepLabel": "出力予算",
4091
+ "kindLabel": "出力予算",
4092
+ "kindHint": "このエージェントのすべての実行に適用されます。パイプラインのステップで上書きできます。",
4093
+ "inherits": "継承",
4094
+ "inheritsValue": "継承({tokens})"
4088
4095
  }
4089
4096
  },
4090
4097
  "agentPrompt": {
@@ -4119,7 +4126,8 @@
4119
4126
  "reverted": "組み込みのプロンプトに戻しました",
4120
4127
  "saveFailed": "プロンプトを保存できませんでした",
4121
4128
  "loadFailed": "プロンプトを読み込めませんでした",
4122
- "conflict": "このプロンプトは別のユーザーが変更しました。再読み込みしました。編集をやり直してください。"
4129
+ "conflict": "このプロンプトは別のユーザーが変更しました。再読み込みしました。編集をやり直してください。",
4130
+ "budgetFailed": "出力予算を保存できませんでした"
4123
4131
  }
4124
4132
  },
4125
4133
  "agentTier": {
@@ -5457,11 +5465,12 @@
5457
5465
  },
5458
5466
  "planReview": {
5459
5467
  "title": "この計画が承認を待っています",
5460
- "body": "プランナーが以下のフェーズと項目を起草しました。承認すると計画がコミットされ、作業が始まります。変更したい点がある場合は、その内容を添えて計画を差し戻してください。",
5468
+ "body": "プランナーがこれらのフェーズと項目を起草しました。承認すると計画がコミットされ、作業が始まります。変更したい点がある場合は、その内容を添えて計画を差し戻してください。",
5461
5469
  "approve": "計画を承認",
5462
5470
  "feedbackPlaceholder": "プランナーに変更してほしい点は何ですか。範囲、フェーズの順序、不足している作業、別の場所に属する項目など…",
5463
5471
  "sendBack": "プランナーに差し戻す",
5464
- "noDocument": "この計画は、プラットフォームがレビュー用の計画を生成する前に作成されたため、たどれる文書がありません。下のセクションが計画そのものです。",
5472
+ "noDocument": "この計画ステップはレビュー用の計画ドキュメントを残さなかったため、ここにはたどれるものがありません。",
5473
+ "noDocumentSections": "下のセクションが計画そのものです。",
5465
5474
  "needsFeedback": "まずコメントかフィードバックを入力してください。プランナーはそれをもとに計画し直します。",
5466
5475
  "commentHint": "計画の任意の箇所をクリックするとコメントできます。"
5467
5476
  },
@@ -4073,6 +4073,13 @@
4073
4073
  "deleteFailed": "Nie udało się usunąć pipeline'u",
4074
4074
  "removeFailed": "Nie udało się usunąć pipeline’u"
4075
4075
  }
4076
+ },
4077
+ "outputBudget": {
4078
+ "stepLabel": "Budżet wyjścia",
4079
+ "kindLabel": "Budżet wyjścia",
4080
+ "kindHint": "Dotyczy każdego uruchomienia tego agenta. Krok pipeline'u może to nadpisać.",
4081
+ "inherits": "Odziedziczone",
4082
+ "inheritsValue": "Odziedziczone ({tokens})"
4076
4083
  }
4077
4084
  },
4078
4085
  "agentPrompt": {
@@ -4107,7 +4114,8 @@
4107
4114
  "reverted": "Powrót do wbudowanego promptu",
4108
4115
  "saveFailed": "Nie udało się zapisać promptu",
4109
4116
  "loadFailed": "Nie udało się wczytać promptu",
4110
- "conflict": "Ktoś inny zmienił ten prompt. Wczytano ponownie - zastosuj swoją zmianę jeszcze raz."
4117
+ "conflict": "Ktoś inny zmienił ten prompt. Wczytano ponownie - zastosuj swoją zmianę jeszcze raz.",
4118
+ "budgetFailed": "Nie udało się zapisać budżetu wyjścia"
4111
4119
  }
4112
4120
  },
4113
4121
  "agentTier": {
@@ -5445,11 +5453,12 @@
5445
5453
  },
5446
5454
  "planReview": {
5447
5455
  "title": "Ten plan czeka na Ciebie",
5448
- "body": "Planer przygotował poniższe fazy i elementy. Zatwierdź je, aby zapisać plan i rozpocząć pracę, albo odeślij plan z informacją, co zmienić.",
5456
+ "body": "Planer przygotował te fazy i elementy. Zatwierdź je, aby zapisać plan i rozpocząć pracę, albo odeślij plan z informacją, co zmienić.",
5449
5457
  "approve": "Zatwierdź plan",
5450
5458
  "feedbackPlaceholder": "Co planer ma zmienić? Zakres, kolejność faz, brakująca praca, element, który pasuje gdzie indziej…",
5451
5459
  "sendBack": "Odeślij do planera",
5452
- "noDocument": "Ten plan powstał, zanim platforma zaczęła generować plany do przeglądu, więc nie ma dokumentu do przeglądania — plan stanowią sekcje poniżej.",
5460
+ "noDocument": "Ten krok planowania nie pozostawił dokumentu planu do przeglądu, więc nie ma tu po czym nawigować.",
5461
+ "noDocumentSections": "Plan stanowią sekcje poniżej.",
5453
5462
  "needsFeedback": "Dodaj najpierw komentarz lub uwagi — planista na ich podstawie planuje ponownie.",
5454
5463
  "commentHint": "Kliknij dowolny fragment planu, aby go skomentować."
5455
5464
  },
@@ -4085,6 +4085,13 @@
4085
4085
  "deleteFailed": "Pipeline silinemedi",
4086
4086
  "removeFailed": "Pipeline kaldırılamadı"
4087
4087
  }
4088
+ },
4089
+ "outputBudget": {
4090
+ "stepLabel": "Çıktı bütçesi",
4091
+ "kindLabel": "Çıktı bütçesi",
4092
+ "kindHint": "Bu ajanın her çalışmasına uygulanır. Bir pipeline adımı bunu geçersiz kılabilir.",
4093
+ "inherits": "Devralındı",
4094
+ "inheritsValue": "Devralındı ({tokens})"
4088
4095
  }
4089
4096
  },
4090
4097
  "agentPrompt": {
@@ -4119,7 +4126,8 @@
4119
4126
  "reverted": "Yerleşik isteme dönüldü",
4120
4127
  "saveFailed": "İstem kaydedilemedi",
4121
4128
  "loadFailed": "İstem yüklenemedi",
4122
- "conflict": "Bu istemi başka biri değiştirdi. Yeniden yüklendi - düzenlemenizi tekrar uygulayın."
4129
+ "conflict": "Bu istemi başka biri değiştirdi. Yeniden yüklendi - düzenlemenizi tekrar uygulayın.",
4130
+ "budgetFailed": "Çıktı bütçesi kaydedilemedi"
4123
4131
  }
4124
4132
  },
4125
4133
  "agentTier": {
@@ -5457,11 +5465,12 @@
5457
5465
  },
5458
5466
  "planReview": {
5459
5467
  "title": "Bu plan sizi bekliyor",
5460
- "body": "Planlayıcı aşağıdaki aşamaları ve maddeleri hazırladı. Planı kaydedip işe başlamak için onaylayın ya da neyin değişmesi gerektiğini yazarak planı geri gönderin.",
5468
+ "body": "Planlayıcı bu aşamaları ve maddeleri hazırladı. Planı kaydedip işe başlamak için onaylayın ya da neyin değişmesi gerektiğini yazarak planı geri gönderin.",
5461
5469
  "approve": "Planı onayla",
5462
5470
  "feedbackPlaceholder": "Planlayıcı neyi değiştirmeli? Kapsam, aşama sırası, eksik iş, başka yere ait bir madde…",
5463
5471
  "sendBack": "Planlayıcıya geri gönder",
5464
- "noDocument": "Bu plan, platform incelemeye yönelik planlar üretmeye başlamadan önce hazırlandı; gezinilecek bir belge yok — plan aşağıdaki bölümlerdir.",
5472
+ "noDocument": "Bu planlama adımı incelenecek bir plan belgesi bırakmadı, bu yüzden burada gezinilecek bir şey yok.",
5473
+ "noDocumentSections": "Plan aşağıdaki bölümlerdir.",
5465
5474
  "needsFeedback": "Önce bir yorum veya geri bildirim ekleyin — planlayıcı yeniden planlamak için bunu kullanır.",
5466
5475
  "commentHint": "Yorum yapmak için planın herhangi bir bölümüne tıklayın."
5467
5476
  },
@@ -4073,6 +4073,13 @@
4073
4073
  "deleteFailed": "Не вдалося видалити пайплайн",
4074
4074
  "removeFailed": "Не вдалося вилучити пайплайн"
4075
4075
  }
4076
+ },
4077
+ "outputBudget": {
4078
+ "stepLabel": "Бюджет виводу",
4079
+ "kindLabel": "Бюджет виводу",
4080
+ "kindHint": "Застосовується до кожного запуску цього агента. Крок пайплайну може це перевизначити.",
4081
+ "inherits": "Успадковано",
4082
+ "inheritsValue": "Успадковано ({tokens})"
4076
4083
  }
4077
4084
  },
4078
4085
  "agentPrompt": {
@@ -4107,7 +4114,8 @@
4107
4114
  "reverted": "Повернуто вбудований промпт",
4108
4115
  "saveFailed": "Не вдалося зберегти промпт",
4109
4116
  "loadFailed": "Не вдалося завантажити промпт",
4110
- "conflict": "Цей промпт змінив хтось інший. Перезавантажено - застосуйте свою правку ще раз."
4117
+ "conflict": "Цей промпт змінив хтось інший. Перезавантажено - застосуйте свою правку ще раз.",
4118
+ "budgetFailed": "Не вдалося зберегти бюджет виводу"
4111
4119
  }
4112
4120
  },
4113
4121
  "agentTier": {
@@ -5445,11 +5453,12 @@
5445
5453
  },
5446
5454
  "planReview": {
5447
5455
  "title": "Цей план чекає на вас",
5448
- "body": "Планувальник підготував фази та елементи нижче. Затвердіть їх, щоб зафіксувати план і розпочати роботу, або поверніть план із зазначенням, що змінити.",
5456
+ "body": "Планувальник підготував ці фази та елементи. Затвердіть їх, щоб зафіксувати план і розпочати роботу, або поверніть план із зазначенням, що змінити.",
5449
5457
  "approve": "Затвердити план",
5450
5458
  "feedbackPlaceholder": "Що має змінити планувальник? Обсяг, порядок фаз, пропущена робота, елемент, якому місце деінде…",
5451
5459
  "sendBack": "Повернути планувальнику",
5452
- "noDocument": "Цей план склали до того, як платформа почала формувати плани для перегляду, тож документа для навігації немає план становлять розділи нижче.",
5460
+ "noDocument": "Цей крок планування не залишив документа плану для перегляду, тож тут немає чого оглядати.",
5461
+ "noDocumentSections": "План становлять розділи нижче.",
5453
5462
  "needsFeedback": "Спершу додайте коментар або відгук — планувальник переплановує на його основі.",
5454
5463
  "commentHint": "Клацніть будь-яку частину плану, щоб залишити коментар."
5455
5464
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.194.0",
3
+ "version": "0.195.1",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,7 +40,7 @@
40
40
  "valibot": "^1.4.2",
41
41
  "vue": "3.5.40",
42
42
  "wretch": "^3.0.9",
43
- "@cat-factory/contracts": "0.201.0"
43
+ "@cat-factory/contracts": "0.202.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",