@cat-factory/app 0.147.7 → 0.149.0

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.
Files changed (40) hide show
  1. package/app/components/board/AddTaskModal.vue +146 -3
  2. package/app/components/board/nodes/TaskCard.vue +29 -1
  3. package/app/components/fragments/FragmentLibraryManager.vue +188 -18
  4. package/app/components/panels/AgentStepDetail.vue +11 -0
  5. package/app/components/panels/StepEffortReport.vue +86 -0
  6. package/app/components/panels/StepFragmentAdherence.vue +85 -0
  7. package/app/components/prReview/PrReviewWindow.vue +8 -0
  8. package/app/components/settings/WorkspaceSettingsPanel.vue +14 -8
  9. package/app/composables/api/fragments.ts +17 -0
  10. package/app/docs/consumer-extensions.md +41 -8
  11. package/app/modular/agent-kinds.spec.ts +1 -39
  12. package/app/modular/agent-kinds.ts +7 -58
  13. package/app/modular/capabilities.spec.ts +88 -0
  14. package/app/modular/capabilities.ts +77 -0
  15. package/app/modular/nav-contributions.spec.ts +2 -0
  16. package/app/modular/registry.ts +8 -1
  17. package/app/modular/slots.ts +13 -1
  18. package/app/modular/task-types.ts +27 -0
  19. package/app/plugins/modular.client.ts +8 -3
  20. package/app/stores/agents.spec.ts +13 -9
  21. package/app/stores/agents.ts +16 -17
  22. package/app/stores/fragmentLibrary.ts +16 -0
  23. package/app/stores/taskTypes.spec.ts +100 -0
  24. package/app/stores/taskTypes.ts +88 -0
  25. package/app/stores/workspace.ts +14 -4
  26. package/app/types/domain.ts +23 -0
  27. package/app/types/execution.ts +3 -0
  28. package/app/types/fragments.ts +2 -0
  29. package/app/utils/catalog.ts +107 -0
  30. package/i18n/locales/de.json +23 -4
  31. package/i18n/locales/en.json +23 -4
  32. package/i18n/locales/es.json +23 -4
  33. package/i18n/locales/fr.json +23 -4
  34. package/i18n/locales/he.json +23 -4
  35. package/i18n/locales/it.json +23 -4
  36. package/i18n/locales/ja.json +23 -4
  37. package/i18n/locales/pl.json +23 -4
  38. package/i18n/locales/tr.json +23 -4
  39. package/i18n/locales/uk.json +23 -4
  40. package/package.json +2 -2
@@ -82,7 +82,8 @@
82
82
  "body": "You've made changes that haven't been saved. Close this and lose them?",
83
83
  "confirm": "Discard",
84
84
  "keep": "Keep editing"
85
- }
85
+ },
86
+ "edit": "Edit"
86
87
  },
87
88
  "access": {
88
89
  "noBoardWrite": "Read-only access: you can view this board but can't edit it.",
@@ -1251,7 +1252,20 @@
1251
1252
  "confirmReject": "Confirm reject",
1252
1253
  "requestChanges": "Request changes",
1253
1254
  "reject": "Reject",
1254
- "requestChangesHint": "Request changes re-runs this step with your feedback & comments. Reject stops the run entirely."
1255
+ "requestChangesHint": "Request changes re-runs this step with your feedback & comments. Reject stops the run entirely.",
1256
+ "effort": {
1257
+ "heading": "Agent effort",
1258
+ "difficulty": "Difficulty",
1259
+ "outOfTen": "{value}/10",
1260
+ "reduced": "What reduced effectiveness",
1261
+ "obstacles": "Key obstacles"
1262
+ },
1263
+ "adherence": {
1264
+ "heading": "Best-practice adherence",
1265
+ "outOfTen": "{value}/10",
1266
+ "relatedFindings": "Related findings",
1267
+ "unnamed": "Standard"
1268
+ }
1255
1269
  },
1256
1270
  "inspector": {
1257
1271
  "frameStatus": {
@@ -4565,7 +4579,10 @@
4565
4579
  "summaryPlaceholder": "One-line summary (used by the selector)",
4566
4580
  "bodyPlaceholder": "Guidance body (injected into the prompt)",
4567
4581
  "tagsPlaceholder": "Tags, comma-separated (e.g. backend, db)",
4568
- "add": "Add fragment"
4582
+ "add": "Add fragment",
4583
+ "generateTitle": "Generate",
4584
+ "generateTitleHint": "Suggest a title from the fragment's content",
4585
+ "titleGenFailed": "Couldn't generate a title"
4569
4586
  },
4570
4587
  "documents": {
4571
4588
  "intro": "Link a Confluence/Notion page or a GitHub file as a best-practice fragment. Its guidance is re-resolved from the source at run time: edit the doc and the next agent run follows the new version (no re-import).",
@@ -4615,7 +4632,9 @@
4615
4632
  "checkSourceFailed": "Could not check source",
4616
4633
  "sourceUnlinked": "Source unlinked",
4617
4634
  "unlinkSourceFailed": "Could not unlink source",
4618
- "documentsLinked": "Linked {count} document as a living fragment | Linked {count} documents as living fragments"
4635
+ "documentsLinked": "Linked {count} document as a living fragment | Linked {count} documents as living fragments",
4636
+ "updated": "Fragment updated",
4637
+ "updateFailed": "Couldn't update the fragment"
4619
4638
  },
4620
4639
  "confirmRemove": {
4621
4640
  "title": "Delete this fragment?",
@@ -73,7 +73,8 @@
73
73
  "body": "Has hecho cambios que no se han guardado. ¿Cerrar y perderlos?",
74
74
  "confirm": "Descartar",
75
75
  "keep": "Seguir editando"
76
- }
76
+ },
77
+ "edit": "Editar"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "Acceso de solo lectura: puedes ver este tablero pero no editarlo.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "Confirmar rechazo",
1195
1196
  "requestChanges": "Solicitar cambios",
1196
1197
  "reject": "Rechazar",
1197
- "requestChangesHint": "Solicitar cambios vuelve a ejecutar este paso con tus comentarios y observaciones. Rechazar detiene la ejecución por completo."
1198
+ "requestChangesHint": "Solicitar cambios vuelve a ejecutar este paso con tus comentarios y observaciones. Rechazar detiene la ejecución por completo.",
1199
+ "effort": {
1200
+ "heading": "Esfuerzo del agente",
1201
+ "difficulty": "Dificultad",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "Qué redujo la efectividad",
1204
+ "obstacles": "Obstáculos clave"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "Cumplimiento de buenas prácticas",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "Hallazgos relacionados",
1210
+ "unnamed": "Estándar"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4389,7 +4403,10 @@
4389
4403
  "summaryPlaceholder": "Resumen de una línea (usado por el selector)",
4390
4404
  "bodyPlaceholder": "Cuerpo de la guía (inyectado en el prompt)",
4391
4405
  "tagsPlaceholder": "Etiquetas, separadas por comas (p. ej., backend, db)",
4392
- "add": "Añadir fragmento"
4406
+ "add": "Añadir fragmento",
4407
+ "generateTitle": "Generar",
4408
+ "generateTitleHint": "Sugerir un título a partir del contenido del fragmento",
4409
+ "titleGenFailed": "No se pudo generar un título"
4393
4410
  },
4394
4411
  "documents": {
4395
4412
  "intro": "Vincula una página de Confluence/Notion o un archivo de GitHub como fragmento de buenas prácticas. Su guía se vuelve a resolver desde la fuente en tiempo de ejecución: edita el documento y la siguiente ejecución del agente sigue la nueva versión (sin reimportar).",
@@ -4439,7 +4456,9 @@
4439
4456
  "checkSourceFailed": "No se pudo comprobar el origen",
4440
4457
  "sourceUnlinked": "Origen desvinculado",
4441
4458
  "unlinkSourceFailed": "No se pudo desvincular el origen",
4442
- "documentsLinked": "{count} documento vinculado como fragmento vivo | {count} documentos vinculados como fragmentos vivos"
4459
+ "documentsLinked": "{count} documento vinculado como fragmento vivo | {count} documentos vinculados como fragmentos vivos",
4460
+ "updated": "Fragmento actualizado",
4461
+ "updateFailed": "No se pudo actualizar el fragmento"
4443
4462
  },
4444
4463
  "confirmRemove": {
4445
4464
  "title": "¿Eliminar este fragmento?",
@@ -73,7 +73,8 @@
73
73
  "body": "Vous avez effectué des modifications non enregistrées. Fermer et les perdre ?",
74
74
  "confirm": "Ignorer",
75
75
  "keep": "Continuer l'édition"
76
- }
76
+ },
77
+ "edit": "Modifier"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "Accès en lecture seule : vous pouvez consulter ce tableau mais pas le modifier.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "Confirmer le rejet",
1195
1196
  "requestChanges": "Demander des modifications",
1196
1197
  "reject": "Rejeter",
1197
- "requestChangesHint": "Demander des modifications relance cette étape avec votre retour et vos commentaires. Rejeter arrête complètement l'exécution."
1198
+ "requestChangesHint": "Demander des modifications relance cette étape avec votre retour et vos commentaires. Rejeter arrête complètement l'exécution.",
1199
+ "effort": {
1200
+ "heading": "Effort de l'agent",
1201
+ "difficulty": "Difficulté",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "Ce qui a réduit l'efficacité",
1204
+ "obstacles": "Principaux obstacles"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "Respect des bonnes pratiques",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "Constats associés",
1210
+ "unnamed": "Standard"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4389,7 +4403,10 @@
4389
4403
  "summaryPlaceholder": "Résumé en une ligne (utilisé par le sélecteur)",
4390
4404
  "bodyPlaceholder": "Corps de la consigne (injecté dans le prompt)",
4391
4405
  "tagsPlaceholder": "Étiquettes, séparées par des virgules (par ex. backend, db)",
4392
- "add": "Ajouter le fragment"
4406
+ "add": "Ajouter le fragment",
4407
+ "generateTitle": "Générer",
4408
+ "generateTitleHint": "Proposer un titre à partir du contenu du fragment",
4409
+ "titleGenFailed": "Impossible de générer un titre"
4393
4410
  },
4394
4411
  "documents": {
4395
4412
  "intro": "Liez une page Confluence/Notion ou un fichier GitHub comme fragment de bonnes pratiques. Sa consigne est re-résolue depuis la source à l'exécution : modifiez le document et la prochaine exécution d'agent suit la nouvelle version (sans réimport).",
@@ -4439,7 +4456,9 @@
4439
4456
  "checkSourceFailed": "Impossible de vérifier la source",
4440
4457
  "sourceUnlinked": "Source dissociée",
4441
4458
  "unlinkSourceFailed": "Impossible de dissocier la source",
4442
- "documentsLinked": "{count} document lié comme fragment vivant | {count} documents liés comme fragments vivants"
4459
+ "documentsLinked": "{count} document lié comme fragment vivant | {count} documents liés comme fragments vivants",
4460
+ "updated": "Fragment mis à jour",
4461
+ "updateFailed": "Impossible de mettre à jour le fragment"
4443
4462
  },
4444
4463
  "confirmRemove": {
4445
4464
  "title": "Supprimer ce fragment ?",
@@ -73,7 +73,8 @@
73
73
  "body": "ביצעת שינויים שלא נשמרו. לסגור ולאבד אותם?",
74
74
  "confirm": "לבטל",
75
75
  "keep": "להמשיך לערוך"
76
- }
76
+ },
77
+ "edit": "עריכה"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "גישת קריאה בלבד: אפשר לצפות בלוח הזה אך לא לערוך אותו.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "אשר דחייה",
1195
1196
  "requestChanges": "בקש שינויים",
1196
1197
  "reject": "דחה",
1197
- "requestChangesHint": "בקשת שינויים מריצה מחדש שלב זה עם המשוב וההערות שלך. דחייה עוצרת את הריצה לחלוטין."
1198
+ "requestChangesHint": "בקשת שינויים מריצה מחדש שלב זה עם המשוב וההערות שלך. דחייה עוצרת את הריצה לחלוטין.",
1199
+ "effort": {
1200
+ "heading": "מאמץ הסוכן",
1201
+ "difficulty": "רמת קושי",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "מה הפחית את היעילות",
1204
+ "obstacles": "מכשולים עיקריים"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "עמידה בשיטות עבודה מומלצות",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "ממצאים קשורים",
1210
+ "unnamed": "תקן"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4400,7 +4414,10 @@
4400
4414
  "summaryPlaceholder": "תקציר בשורה אחת (בשימוש הבורר)",
4401
4415
  "bodyPlaceholder": "גוף ההנחיה (מוזרק לפרומפט)",
4402
4416
  "tagsPlaceholder": "תגיות, מופרדות בפסיקים (למשל backend, db)",
4403
- "add": "הוסף מקטע"
4417
+ "add": "הוסף מקטע",
4418
+ "generateTitle": "יצירה",
4419
+ "generateTitleHint": "הצעת כותרת לפי תוכן הקטע",
4420
+ "titleGenFailed": "לא ניתן היה ליצור כותרת"
4404
4421
  },
4405
4422
  "documents": {
4406
4423
  "intro": "קשר עמוד Confluence/Notion או קובץ GitHub כמקטע מומלץ. ההנחיה שלו מיושבת מחדש מהמקור בזמן ההרצה: ערוך את המסמך וההרצה הבאה עוקבת אחר הגרסה החדשה (ללא ייבוא מחדש).",
@@ -4450,7 +4467,9 @@
4450
4467
  "checkSourceFailed": "לא ניתן היה לבדוק את המקור",
4451
4468
  "sourceUnlinked": "קישור המקור בוטל",
4452
4469
  "unlinkSourceFailed": "לא ניתן היה לבטל את קישור המקור",
4453
- "documentsLinked": "{count} מסמך קושר כמקטע חי | {count} מסמכים קושרו כמקטעים חיים"
4470
+ "documentsLinked": "{count} מסמך קושר כמקטע חי | {count} מסמכים קושרו כמקטעים חיים",
4471
+ "updated": "הקטע עודכן",
4472
+ "updateFailed": "לא ניתן היה לעדכן את הקטע"
4454
4473
  },
4455
4474
  "confirmRemove": {
4456
4475
  "title": "למחוק את המקטע הזה?",
@@ -1476,7 +1476,20 @@
1476
1476
  "confirmReject": "Conferma il rifiuto",
1477
1477
  "requestChanges": "Richiedi modifiche",
1478
1478
  "reject": "Rifiuta",
1479
- "requestChangesHint": "Richiedi modifiche riesegue questo passaggio con il tuo feedback e i tuoi commenti. Rifiuta arresta completamente l'esecuzione."
1479
+ "requestChangesHint": "Richiedi modifiche riesegue questo passaggio con il tuo feedback e i tuoi commenti. Rifiuta arresta completamente l'esecuzione.",
1480
+ "effort": {
1481
+ "heading": "Sforzo dell'agente",
1482
+ "difficulty": "Difficoltà",
1483
+ "outOfTen": "{value}/10",
1484
+ "reduced": "Cosa ha ridotto l'efficacia",
1485
+ "obstacles": "Ostacoli principali"
1486
+ },
1487
+ "adherence": {
1488
+ "heading": "Aderenza alle best practice",
1489
+ "outOfTen": "{value}/10",
1490
+ "relatedFindings": "Rilievi correlati",
1491
+ "unnamed": "Standard"
1492
+ }
1480
1493
  },
1481
1494
  "inspector": {
1482
1495
  "frameStatus": {
@@ -3565,7 +3578,10 @@
3565
3578
  "summaryPlaceholder": "Riepilogo su una riga (usato dal selettore)",
3566
3579
  "bodyPlaceholder": "Corpo delle indicazioni (iniettato nel prompt)",
3567
3580
  "tagsPlaceholder": "Tag, separati da virgola (es. backend, db)",
3568
- "add": "Aggiungi frammento"
3581
+ "add": "Aggiungi frammento",
3582
+ "generateTitle": "Genera",
3583
+ "generateTitleHint": "Suggerisci un titolo dal contenuto del frammento",
3584
+ "titleGenFailed": "Impossibile generare un titolo"
3569
3585
  },
3570
3586
  "documents": {
3571
3587
  "intro": "Collega una pagina Confluence/Notion o un file GitHub come frammento di best practice. Le sue indicazioni vengono ri-risolte dalla sorgente in fase di esecuzione: modifica il documento e la successiva esecuzione dell'agente seguira la nuova versione (nessuna re-importazione).",
@@ -3615,7 +3631,9 @@
3615
3631
  "checkSourceFailed": "Impossibile controllare la sorgente",
3616
3632
  "sourceUnlinked": "Sorgente scollegata",
3617
3633
  "unlinkSourceFailed": "Impossibile scollegare la sorgente",
3618
- "documentsLinked": "{count} documento collegato come frammento vivente | {count} documenti collegati come frammenti viventi"
3634
+ "documentsLinked": "{count} documento collegato come frammento vivente | {count} documenti collegati come frammenti viventi",
3635
+ "updated": "Frammento aggiornato",
3636
+ "updateFailed": "Impossibile aggiornare il frammento"
3619
3637
  },
3620
3638
  "confirmRemove": {
3621
3639
  "title": "Eliminare questo frammento?",
@@ -3984,7 +4002,8 @@
3984
4002
  "body": "Hai apportato modifiche non salvate. Chiudere e perderle?",
3985
4003
  "confirm": "Ignora",
3986
4004
  "keep": "Continua a modificare"
3987
- }
4005
+ },
4006
+ "edit": "Modifica"
3988
4007
  },
3989
4008
  "access": {
3990
4009
  "noBoardWrite": "Accesso in sola lettura: puoi visualizzare questa board ma non modificarla.",
@@ -73,7 +73,8 @@
73
73
  "body": "保存されていない変更があります。閉じて破棄しますか?",
74
74
  "confirm": "破棄",
75
75
  "keep": "編集を続ける"
76
- }
76
+ },
77
+ "edit": "編集"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "読み取り専用アクセス: このボードは閲覧できますが編集はできません。",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "却下を確定",
1195
1196
  "requestChanges": "変更を依頼",
1196
1197
  "reject": "却下",
1197
- "requestChangesHint": "変更を依頼すると、フィードバックとコメントを反映してこのステップを再実行します。却下すると実行を完全に停止します。"
1198
+ "requestChangesHint": "変更を依頼すると、フィードバックとコメントを反映してこのステップを再実行します。却下すると実行を完全に停止します。",
1199
+ "effort": {
1200
+ "heading": "エージェントの労力",
1201
+ "difficulty": "難易度",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "効果を下げた要因",
1204
+ "obstacles": "主な障害"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "ベストプラクティスの遵守",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "関連する指摘",
1210
+ "unnamed": "基準"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4401,7 +4415,10 @@
4401
4415
  "summaryPlaceholder": "1行の要約 (セレクターで使用)",
4402
4416
  "bodyPlaceholder": "ガイダンス本文 (プロンプトに挿入)",
4403
4417
  "tagsPlaceholder": "タグ、カンマ区切り (例: backend, db)",
4404
- "add": "フラグメントを追加"
4418
+ "add": "フラグメントを追加",
4419
+ "generateTitle": "生成",
4420
+ "generateTitleHint": "フラグメントの内容からタイトルを提案",
4421
+ "titleGenFailed": "タイトルを生成できませんでした"
4405
4422
  },
4406
4423
  "documents": {
4407
4424
  "intro": "Confluence/Notion ページまたは GitHub ファイルをベストプラクティスのフラグメントとしてリンクします。そのガイダンスは実行時にソースから再解決されます。ドキュメントを編集すると、次のエージェント実行は新しいバージョンに従います (再インポート不要)。",
@@ -4451,7 +4468,9 @@
4451
4468
  "checkSourceFailed": "ソースを確認できませんでした",
4452
4469
  "sourceUnlinked": "ソースのリンクを解除しました",
4453
4470
  "unlinkSourceFailed": "ソースのリンクを解除できませんでした",
4454
- "documentsLinked": "{count}件のドキュメントをリビングフラグメントとしてリンクしました | {count}件のドキュメントをリビングフラグメントとしてリンクしました"
4471
+ "documentsLinked": "{count}件のドキュメントをリビングフラグメントとしてリンクしました | {count}件のドキュメントをリビングフラグメントとしてリンクしました",
4472
+ "updated": "フラグメントを更新しました",
4473
+ "updateFailed": "フラグメントを更新できませんでした"
4455
4474
  },
4456
4475
  "confirmRemove": {
4457
4476
  "title": "このフラグメントを削除しますか?",
@@ -73,7 +73,8 @@
73
73
  "body": "Masz niezapisane zmiany. Zamknąć i je utracić?",
74
74
  "confirm": "Odrzuć",
75
75
  "keep": "Kontynuuj edycję"
76
- }
76
+ },
77
+ "edit": "Edytuj"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "Dostęp tylko do odczytu: możesz przeglądać tę tablicę, ale nie możesz jej edytować.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "Potwierdź odrzucenie",
1195
1196
  "requestChanges": "Zażądaj zmian",
1196
1197
  "reject": "Odrzuć",
1197
- "requestChangesHint": "Zażądanie zmian uruchamia ten krok ponownie z Twoją opinią i komentarzami. Odrzucenie całkowicie zatrzymuje uruchomienie."
1198
+ "requestChangesHint": "Zażądanie zmian uruchamia ten krok ponownie z Twoją opinią i komentarzami. Odrzucenie całkowicie zatrzymuje uruchomienie.",
1199
+ "effort": {
1200
+ "heading": "Wysiłek agenta",
1201
+ "difficulty": "Trudność",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "Co obniżyło skuteczność",
1204
+ "obstacles": "Kluczowe przeszkody"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "Zgodność z najlepszymi praktykami",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "Powiązane ustalenia",
1210
+ "unnamed": "Standard"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4389,7 +4403,10 @@
4389
4403
  "summaryPlaceholder": "Jednowierszowe podsumowanie (używane przez selektor)",
4390
4404
  "bodyPlaceholder": "Treść wytycznej (wstrzykiwana do promptu)",
4391
4405
  "tagsPlaceholder": "Tagi, oddzielone przecinkami (np. backend, db)",
4392
- "add": "Dodaj fragment"
4406
+ "add": "Dodaj fragment",
4407
+ "generateTitle": "Generuj",
4408
+ "generateTitleHint": "Zaproponuj tytuł na podstawie treści fragmentu",
4409
+ "titleGenFailed": "Nie udało się wygenerować tytułu"
4393
4410
  },
4394
4411
  "documents": {
4395
4412
  "intro": "Połącz stronę Confluence/Notion lub plik GitHub jako fragment najlepszych praktyk. Jego wytyczna jest ponownie pobierana ze źródła w czasie uruchomienia: zmień dokument, a następne uruchomienie agenta podąży za nową wersją (bez ponownego importu).",
@@ -4439,7 +4456,9 @@
4439
4456
  "checkSourceFailed": "Nie udało się sprawdzić źródła",
4440
4457
  "sourceUnlinked": "Odłączono źródło",
4441
4458
  "unlinkSourceFailed": "Nie udało się odłączyć źródła",
4442
- "documentsLinked": "Połączono {count} dokument jako żywy fragment | Połączono {count} dokumenty jako żywe fragmenty | Połączono {count} dokumentów jako żywe fragmenty"
4459
+ "documentsLinked": "Połączono {count} dokument jako żywy fragment | Połączono {count} dokumenty jako żywe fragmenty | Połączono {count} dokumentów jako żywe fragmenty",
4460
+ "updated": "Zaktualizowano fragment",
4461
+ "updateFailed": "Nie udało się zaktualizować fragmentu"
4443
4462
  },
4444
4463
  "confirmRemove": {
4445
4464
  "title": "Usunąć ten fragment?",
@@ -73,7 +73,8 @@
73
73
  "body": "Kaydedilmemiş değişiklikleriniz var. Kapatıp bunları kaybedecek misiniz?",
74
74
  "confirm": "At",
75
75
  "keep": "Düzenlemeye devam et"
76
- }
76
+ },
77
+ "edit": "Düzenle"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "Salt okunur erişim: bu panoyu görüntüleyebilirsiniz ancak düzenleyemezsiniz.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "Reddetmeyi onayla",
1195
1196
  "requestChanges": "Değişiklik iste",
1196
1197
  "reject": "Reddet",
1197
- "requestChangesHint": "Değişiklik iste bu adımı geri bildiriminiz ve yorumlarınızla yeniden çalıştırır. Reddet çalıştırmayı tamamen durdurur."
1198
+ "requestChangesHint": "Değişiklik iste bu adımı geri bildiriminiz ve yorumlarınızla yeniden çalıştırır. Reddet çalıştırmayı tamamen durdurur.",
1199
+ "effort": {
1200
+ "heading": "Aracı eforu",
1201
+ "difficulty": "Zorluk",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "Etkinliği azaltan etkenler",
1204
+ "obstacles": "Başlıca engeller"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "En iyi uygulamalara uyum",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "İlgili bulgular",
1210
+ "unnamed": "Standart"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4401,7 +4415,10 @@
4401
4415
  "summaryPlaceholder": "Tek satırlık özet (seçici tarafından kullanılır)",
4402
4416
  "bodyPlaceholder": "Yönerge gövdesi (prompt'a enjekte edilir)",
4403
4417
  "tagsPlaceholder": "Etiketler, virgülle ayrılmış (örn. backend, db)",
4404
- "add": "Parça ekle"
4418
+ "add": "Parça ekle",
4419
+ "generateTitle": "Oluştur",
4420
+ "generateTitleHint": "Parça içeriğinden bir başlık öner",
4421
+ "titleGenFailed": "Başlık oluşturulamadı"
4405
4422
  },
4406
4423
  "documents": {
4407
4424
  "intro": "Bir Confluence/Notion sayfasını veya GitHub dosyasını en iyi uygulama parçası olarak bağlayın. Yönergesi, çalıştırma sırasında kaynaktan yeniden çözümlenir: belgeyi düzenleyin ve sonraki aracı çalıştırması yeni sürümü izlesin (yeniden içe aktarma yok).",
@@ -4451,7 +4468,9 @@
4451
4468
  "checkSourceFailed": "Kaynak denetlenemedi",
4452
4469
  "sourceUnlinked": "Kaynak bağlantısı kaldırıldı",
4453
4470
  "unlinkSourceFailed": "Kaynak bağlantısı kaldırılamadı",
4454
- "documentsLinked": "{count} belge canlı parça olarak bağlandı | {count} belge canlı parça olarak bağlandı"
4471
+ "documentsLinked": "{count} belge canlı parça olarak bağlandı | {count} belge canlı parça olarak bağlandı",
4472
+ "updated": "Parça güncellendi",
4473
+ "updateFailed": "Parça güncellenemedi"
4455
4474
  },
4456
4475
  "confirmRemove": {
4457
4476
  "title": "Bu parça silinsin mi?",
@@ -73,7 +73,8 @@
73
73
  "body": "Ви внесли зміни, які не збережено. Закрити та втратити їх?",
74
74
  "confirm": "Відхилити",
75
75
  "keep": "Продовжити редагування"
76
- }
76
+ },
77
+ "edit": "Редагувати"
77
78
  },
78
79
  "access": {
79
80
  "noBoardWrite": "Доступ лише для перегляду: ви можете переглядати цю дошку, але не можете її редагувати.",
@@ -1194,7 +1195,20 @@
1194
1195
  "confirmReject": "Підтвердити відхилення",
1195
1196
  "requestChanges": "Запросити зміни",
1196
1197
  "reject": "Відхилити",
1197
- "requestChangesHint": "Запит змін перезапускає цей крок з вашим відгуком і коментарями. Відхилення повністю зупиняє запуск."
1198
+ "requestChangesHint": "Запит змін перезапускає цей крок з вашим відгуком і коментарями. Відхилення повністю зупиняє запуск.",
1199
+ "effort": {
1200
+ "heading": "Зусилля агента",
1201
+ "difficulty": "Складність",
1202
+ "outOfTen": "{value}/10",
1203
+ "reduced": "Що знизило ефективність",
1204
+ "obstacles": "Основні перешкоди"
1205
+ },
1206
+ "adherence": {
1207
+ "heading": "Дотримання найкращих практик",
1208
+ "outOfTen": "{value}/10",
1209
+ "relatedFindings": "Пов’язані зауваження",
1210
+ "unnamed": "Стандарт"
1211
+ }
1198
1212
  },
1199
1213
  "inspector": {
1200
1214
  "frameStatus": {
@@ -4389,7 +4403,10 @@
4389
4403
  "summaryPlaceholder": "Однорядковий підсумок (використовується селектором)",
4390
4404
  "bodyPlaceholder": "Текст настанови (вставляється у промпт)",
4391
4405
  "tagsPlaceholder": "Теги, розділені комами (напр. backend, db)",
4392
- "add": "Додати фрагмент"
4406
+ "add": "Додати фрагмент",
4407
+ "generateTitle": "Згенерувати",
4408
+ "generateTitleHint": "Запропонувати назву за вмістом фрагмента",
4409
+ "titleGenFailed": "Не вдалося згенерувати назву"
4393
4410
  },
4394
4411
  "documents": {
4395
4412
  "intro": "Прив'яжіть сторінку Confluence/Notion або файл GitHub як фрагмент найкращих практик. Його настанова повторно розв'язується з джерела під час запуску: відредагуйте документ, і наступний запуск агента дотримуватиметься нової версії (без повторного імпорту).",
@@ -4439,7 +4456,9 @@
4439
4456
  "checkSourceFailed": "Не вдалося перевірити джерело",
4440
4457
  "sourceUnlinked": "Джерело відв'язано",
4441
4458
  "unlinkSourceFailed": "Не вдалося відв'язати джерело",
4442
- "documentsLinked": "Прив’язано {count} документ як живий фрагмент | Прив’язано {count} документи як живі фрагменти | Прив’язано {count} документів як живі фрагменти"
4459
+ "documentsLinked": "Прив’язано {count} документ як живий фрагмент | Прив’язано {count} документи як живі фрагменти | Прив’язано {count} документів як живі фрагменти",
4460
+ "updated": "Фрагмент оновлено",
4461
+ "updateFailed": "Не вдалося оновити фрагмент"
4443
4462
  },
4444
4463
  "confirmRemove": {
4445
4464
  "title": "Видалити цей фрагмент?",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.147.7",
3
+ "version": "0.149.0",
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.154.2"
43
+ "@cat-factory/contracts": "0.157.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",