@cat-factory/app 0.79.1 → 0.80.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 (35) hide show
  1. package/app/components/board/BoardCanvas.vue +7 -1
  2. package/app/components/bootstrap/BootstrapModal.vue +18 -0
  3. package/app/components/documents/TaskContextDocs.vue +10 -7
  4. package/app/components/fragments/FragmentLibraryManager.vue +2 -10
  5. package/app/components/github/AddServiceFromRepoModal.vue +8 -1
  6. package/app/components/panels/InspectorPanel.vue +35 -18
  7. package/app/components/panels/inspector/ContainerSummary.vue +8 -2
  8. package/app/components/panels/inspector/EpicChildren.vue +9 -7
  9. package/app/components/panels/inspector/FrontendConfig.vue +175 -248
  10. package/app/components/panels/inspector/InspectorSection.vue +60 -0
  11. package/app/components/panels/inspector/ServiceConnections.vue +10 -10
  12. package/app/components/panels/inspector/ServiceFragments.vue +14 -9
  13. package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +8 -7
  14. package/app/components/panels/inspector/ServiceTestConfig.vue +45 -57
  15. package/app/components/panels/inspector/TaskAgentConfig.vue +8 -5
  16. package/app/components/panels/inspector/TaskDependencies.vue +12 -8
  17. package/app/components/panels/inspector/TaskEstimateBadge.vue +9 -8
  18. package/app/components/panels/inspector/TaskExecution.vue +9 -2
  19. package/app/components/panels/inspector/TaskRunSettings.vue +13 -2
  20. package/app/components/panels/inspector/TaskStructure.vue +9 -2
  21. package/app/components/tasks/TaskContextIssues.vue +10 -7
  22. package/app/composables/useFramePlacement.ts +91 -0
  23. package/app/stores/board.ts +7 -1
  24. package/app/stores/fragmentLibrary.ts +4 -4
  25. package/app/utils/framePlacement.spec.ts +73 -0
  26. package/app/utils/framePlacement.ts +103 -0
  27. package/i18n/locales/en.json +25 -3
  28. package/i18n/locales/es.json +25 -3
  29. package/i18n/locales/fr.json +25 -3
  30. package/i18n/locales/he.json +25 -3
  31. package/i18n/locales/ja.json +25 -3
  32. package/i18n/locales/pl.json +25 -3
  33. package/i18n/locales/tr.json +25 -3
  34. package/i18n/locales/uk.json +25 -3
  35. package/package.json +2 -2
@@ -387,6 +387,8 @@
387
387
  },
388
388
  "inspector": {
389
389
  "container": {
390
+ "title": "Вміст",
391
+ "hint": "Модулі та завдання всередині цього блока. Клацніть запис, щоб вибрати його на дошці.",
390
392
  "modules": "Модулі ({count})",
391
393
  "taskCount": "{count} завдання | {count} завдання | {count} завдань",
392
394
  "allTasks": "Усі завдання ({count})",
@@ -397,6 +399,7 @@
397
399
  },
398
400
  "epicChildren": {
399
401
  "title": "Завдання епіка",
402
+ "hint": "Усі завдання, призначені цьому епіку, згруповані за сервісом і модулем, де вони розташовані. Епік лише групує завдання; сам він нічого не запускає.",
400
403
  "doneCount": "{done}/{total} виконано",
401
404
  "empty": "Жодне завдання ще не належить цьому епіку. Імпортуйте дочірні елементи епіка або вкажіть епік завдання.",
402
405
  "unassigned": "Не призначено"
@@ -435,6 +438,7 @@
435
438
  },
436
439
  "fragments": {
437
440
  "serviceTitle": "Найкращі практики сервісу",
441
+ "serviceHint": "Стандарти програмування для всього сервісу. Вміст кожного вибраного фрагмента додається до промпту кожного агента, що працює з кодом завдань цього сервісу.",
438
442
  "serviceEmpty": "Немає. Агенти, що працюють з кодом цього сервісу, дотримуються типових інструкцій.",
439
443
  "manageBoard": "Керувати бібліотекою фрагментів цієї дошки…",
440
444
  "manageAccount": "Керувати фрагментами облікового запису…"
@@ -519,6 +523,7 @@
519
523
  },
520
524
  "releaseHealth": {
521
525
  "title": "Стан після релізу",
526
+ "sectionHint": "Після злиття й випуску змін цього сервісу гейт певний час стежить за налаштованими моніторами та SLO. У разі регресії він запускає чергового агента для розслідування; нічого не відкочується автоматично.",
522
527
  "clear": "Очистити",
523
528
  "connectPrompt": "Підключіть інтеграцію спостережуваності, щоб стежити за цим сервісом після релізів.",
524
529
  "connectFirst": "Спочатку підключіть інтеграцію спостережуваності",
@@ -535,6 +540,7 @@
535
540
  },
536
541
  "testConfig": {
537
542
  "title": "Тестова інфраструктура",
543
+ "hint": "Як розгортається тестове середовище для цього сервісу, коли конвеєру потрібно його запустити: без інфраструктури, файл Docker Compose, маніфести Kubernetes або власний тип маніфесту.",
538
544
  "provisionType": "Тип провіженінгу",
539
545
  "provisionTypeHint": "Як ця служба піднімає своє середовище для Tester. Робочий простір налаштовує, як обробляється кожен тип (рушій + підключення).",
540
546
  "provisionTypes": {
@@ -618,11 +624,13 @@
618
624
  },
619
625
  "agentConfig": {
620
626
  "title": "Конфігурація агента",
627
+ "hint": "Опції, які додають агенти конвеєра цього завдання. Кожну опцію можна редагувати, доки її агент не стартує; далі вона блокується на час цього запуску.",
621
628
  "inherited": "успадковано від сервісу",
622
629
  "frozen": "Заморожено: агент уже стартував"
623
630
  },
624
631
  "dependencies": {
625
632
  "title": "Залежить від",
633
+ "hint": "Завдання, які мають бути злиті, перш ніж це зможе запуститися. Кнопка запуску лишається заблокованою, доки всі залежності не виконано.",
626
634
  "merged": "Злито",
627
635
  "notMerged": "Ще не злито",
628
636
  "empty": "Залежностей немає. Можна запускати будь-коли.",
@@ -634,11 +642,14 @@
634
642
  },
635
643
  "estimate": {
636
644
  "title": "Оцінка",
645
+ "hint": "Створюється агентом оцінювання завдань: наскільки складним, ризикованим і впливовим виглядає це завдання. Використовується, щоб вирішити, чи варті кроки консенсусу (кілька запусків).",
637
646
  "complexity": "Складність",
638
647
  "risk": "Ризик",
639
648
  "impact": "Вплив"
640
649
  },
641
650
  "execution": {
651
+ "title": "Виконання",
652
+ "hint": "Живе виконання конвеєра цього завдання: кожен крок агента, його поступ і отриманий pull request.",
642
653
  "stage": {
643
654
  "incorporating": "Внесення…",
644
655
  "reviewing": "Повторний огляд…",
@@ -692,12 +703,18 @@
692
703
  }
693
704
  },
694
705
  "structure": {
706
+ "title": "Структура",
707
+ "hint": "Де це завдання розташоване у своєму сервісі та яких стандартів коду дотримуються його агенти.",
695
708
  "module": "Модуль",
696
709
  "modulePlaceholder": "напр. Сесії (створюється під час реалізації, якщо новий)",
710
+ "moduleHint": "Модуль сервісу, до якого належить це завдання. Введіть назву; модуль, якого ще немає, буде створено під час реалізації завдання.",
697
711
  "bestPractices": "Найкращі практики",
698
- "bestPracticesEmpty": "Немає. Агенти дотримуються типових інструкцій."
712
+ "bestPracticesEmpty": "Немає. Агенти дотримуються типових інструкцій.",
713
+ "bestPracticesHint": "Фрагменти найкращих практик, що додаються до промптів агентів цього завдання, на додачу до стандартів рівня сервісу."
699
714
  },
700
715
  "runSettings": {
716
+ "title": "Налаштування запуску",
717
+ "hint": "Як виконується конвеєр цього завдання: який конвеєр стартує, які політики злиття та моделей застосовуються і що відбувається довкола запуску.",
701
718
  "unassigned": "Не призначено",
702
719
  "workspaceDefault": "Типово для робочого простору",
703
720
  "workspaceDefaultParen": "(типово для робочого простору)",
@@ -716,10 +733,13 @@
716
733
  },
717
734
  "pipeline": "Конвеєр",
718
735
  "pipelineEmpty": "Без типового. Виберіть конвеєр під час запуску цього завдання.",
736
+ "pipelineHint": "Конвеєр, який кнопка запуску стартує за замовчуванням: послідовність кроків агентів (наприклад специфікація, код, тести, злиття), що виконується для цього завдання.",
719
737
  "mergePolicy": "Політика злиття",
720
738
  "mergePresetDetail": "{name}: автозлиття, коли складність ≤ {complexity}, ризик ≤ {risk}, вплив ≤ {impact}; до {attempts} спроб виправлення CI.",
721
739
  "mergePresetEmpty": "Пресет не налаштовано. Зливач створює сповіщення про огляд для кожного PR.",
740
+ "mergePolicyHint": "Визначає, коли завершений pull request зливається автоматично замість очікування людської перевірки, і скільки спроб виправлення CI отримує запуск.",
722
741
  "modelPreset": "Пресет моделі",
742
+ "modelPresetHint": "Визначає, на якій моделі ШІ виконується кожен крок агента.",
723
743
  "modelPresetBase": "база {model}",
724
744
  "modelPresetOverrides": ", {count} перевизначення | , {count} перевизначення | , {count} перевизначень",
725
745
  "modelPresetEmpty": "Пресет не налаштовано. Агенти працюють на типовій маршрутизації розгортання.",
@@ -2602,6 +2622,7 @@
2602
2622
  },
2603
2623
  "taskDocs": {
2604
2624
  "heading": "Контекстні документи",
2625
+ "hint": "Документи, долучені до цього завдання як контекст. Їхній вміст передається агентам, що працюють над завданням.",
2605
2626
  "attach": "Долучити",
2606
2627
  "importPage": "Імпортувати сторінку…",
2607
2628
  "empty": "Долучіть вимогу, RFC або PRD, щоб агенти бачили їх під час реалізації цього завдання.",
@@ -2622,6 +2643,7 @@
2622
2643
  },
2623
2644
  "contextIssues": {
2624
2645
  "title": "Контекстні завдання",
2646
+ "hint": "Завдання з трекера, долучені до цього завдання як контекст. Їхній вміст передається агентам, що працюють над завданням.",
2625
2647
  "attach": "Прикріпити",
2626
2648
  "attached": "Завдання прикріплено",
2627
2649
  "attachFailed": "Не вдалося прикріпити",
@@ -3667,7 +3689,7 @@
3667
3689
  "sources": {
3668
3690
  "metaSynced": "синхронізовано · ref {ref}",
3669
3691
  "metaNever": "ніколи не синхронізовано · ref {ref}",
3670
- "changes": "{count} зміна | {count} зміни | {count} змін",
3692
+ "changes": "Зміни",
3671
3693
  "empty": "Немає прив'язаних репозиторіїв із настановами. Прив'яжіть один нижче, щоб імпортувати його файли Markdown як фрагменти.",
3672
3694
  "linkTitle": "Прив'язати репозиторій із настановами",
3673
3695
  "ownerPlaceholder": "власник",
@@ -3692,7 +3714,7 @@
3692
3714
  "linkSourceFailed": "Не вдалося прив'язати джерело",
3693
3715
  "synced": "Синхронізовано: {updated} оновлено, {removed} видалено",
3694
3716
  "syncFailed": "Не вдалося синхронізувати джерело",
3695
- "changesAvailable": "Доступна {count} зміна | Доступні {count} зміни | Доступно {count} змін",
3717
+ "changesAvailable": "Доступні зміни",
3696
3718
  "upToDate": "Актуально",
3697
3719
  "checkSourceFailed": "Не вдалося перевірити джерело",
3698
3720
  "sourceUnlinked": "Джерело відв'язано",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.79.1",
3
+ "version": "0.80.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",
@@ -34,7 +34,7 @@
34
34
  "valibot": "^1.4.2",
35
35
  "vue": "^3.5.39",
36
36
  "wretch": "^3.0.9",
37
- "@cat-factory/contracts": "0.85.0"
37
+ "@cat-factory/contracts": "0.86.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",