@cat-factory/app 0.198.1 → 0.200.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 (46) hide show
  1. package/README.md +6 -1
  2. package/app/components/foundational/FoundationalContractSummary.vue +36 -0
  3. package/app/components/foundational/FoundationalServiceCatalogList.vue +170 -0
  4. package/app/components/foundational/FoundationalServiceManager.vue +111 -0
  5. package/app/components/foundational/FoundationalServicePanel.vue +37 -0
  6. package/app/components/foundational/FoundationalServiceRegistry.vue +339 -0
  7. package/app/components/foundational/FoundationalServiceSources.vue +398 -0
  8. package/app/components/foundational/FoundationalSuppressions.vue +75 -0
  9. package/app/components/layout/AccountFoundationalSettings.vue +25 -0
  10. package/app/components/layout/BoardToolbar.vue +1 -1
  11. package/app/components/layout/CommandBar.vue +8 -2
  12. package/app/components/layout/SideBar.vue +24 -3
  13. package/app/components/settings/AccountSettingsPanel.vue +17 -1
  14. package/app/components/settings/WorkspaceMetadataSettings.vue +151 -0
  15. package/app/components/settings/WorkspaceSettingsPanel.vue +27 -0
  16. package/app/composables/api/foundationalServices.ts +131 -0
  17. package/app/composables/useApi.ts +2 -0
  18. package/app/composables/useNavContributions.ts +92 -1
  19. package/app/composables/usePipelineErrorToast.ts +4 -0
  20. package/app/docs/consumer-extensions.md +76 -10
  21. package/app/modular/external-tools.spec.ts +281 -0
  22. package/app/modular/external-tools.ts +265 -0
  23. package/app/modular/nav-contributions.spec.ts +38 -14
  24. package/app/modular/nav-contributions.ts +58 -1
  25. package/app/modular/registry.ts +2 -0
  26. package/app/modular/slots.ts +15 -0
  27. package/app/modular/workspace-metadata.spec.ts +160 -0
  28. package/app/modular/workspace-metadata.ts +173 -0
  29. package/app/pages/index.vue +4 -0
  30. package/app/stores/foundationalServices.spec.ts +121 -0
  31. package/app/stores/foundationalServices.ts +276 -0
  32. package/app/stores/ui/modals.ts +12 -0
  33. package/app/stores/workspaceSettings.ts +3 -0
  34. package/app/types/domain.ts +2 -0
  35. package/app/types/foundationalServices.ts +32 -0
  36. package/i18n/locales/de.json +162 -6
  37. package/i18n/locales/en.json +162 -6
  38. package/i18n/locales/es.json +162 -6
  39. package/i18n/locales/fr.json +162 -6
  40. package/i18n/locales/he.json +162 -6
  41. package/i18n/locales/it.json +162 -6
  42. package/i18n/locales/ja.json +162 -6
  43. package/i18n/locales/pl.json +162 -6
  44. package/i18n/locales/tr.json +162 -6
  45. package/i18n/locales/uk.json +162 -6
  46. package/package.json +2 -2
@@ -119,13 +119,15 @@
119
119
  "kaizen": "Kaizen",
120
120
  "workspaceContext": "Контекст робочого простору",
121
121
  "contextFragments": "Фрагменти контексту",
122
+ "externalTools": "Зовнішні інструменти",
122
123
  "configuration": "Конфігурація",
123
124
  "workspaceSettings": "Налаштування робочого простору",
124
125
  "modelConfiguration": "Конфігурація моделі",
125
126
  "accountSettings": "Налаштування облікового запису",
126
127
  "operatorDashboard": "Спостережуваність платформи",
127
128
  "reports": "Звіти",
128
- "infrastructure": "Інфраструктура"
129
+ "infrastructure": "Інфраструктура",
130
+ "foundationalServices": "Базові сервіси"
129
131
  },
130
132
  "board": {
131
133
  "toast": {
@@ -543,7 +545,8 @@
543
545
  "pipeline_schedule_attached": "Повторюваний розклад використовує цей конвеєр",
544
546
  "pipeline_schedule_requires_recurring": "Повторюваний розклад потребує цього конвеєра",
545
547
  "pipeline_schedule_intake_unconfigured": "У розкладі немає збору звернень",
546
- "foundational_service_exists": "Базовий сервіс уже існує"
548
+ "foundational_service_exists": "Базовий сервіс уже існує",
549
+ "foundational_service_not_inherited": "Цей сервіс зареєструвала ця дошка"
547
550
  },
548
551
  "description": {
549
552
  "dependencies_unmet": "Це завдання залежить від інших, які ще не завершені. Заверши або розблокуй їх, а потім запусти його знову.",
@@ -572,7 +575,8 @@
572
575
  "pipeline_schedule_attached": "Повторюваний розклад досі посилається на цей конвеєр, і кожен запуск знаходить його за ідентифікатором. Спершу відʼєднайте або видаліть цей розклад, а потім вилучіть конвеєр.",
573
576
  "pipeline_schedule_requires_recurring": "Повторюваний розклад досі посилається на цей конвеєр, тож зробити його лише одноразовим зламало б кожен майбутній запуск. Спершу відʼєднайте цей розклад.",
574
577
  "pipeline_schedule_intake_unconfigured": "Крок збору помилок бере роботу з налаштувань збору звернень у розкладі, а привʼязаний розклад їх не має. Спершу налаштуйте збір звернень у розкладі.",
575
- "foundational_service_exists": "Базовий сервіс із цим ідентифікатором уже зареєстровано в цій області. Відкрийте наявний запис і відредагуйте його — два сервіси не можуть мати спільний ідентифікатор, бо саме його архітектор називає у своєму проєкті."
578
+ "foundational_service_exists": "Базовий сервіс із цим ідентифікатором уже зареєстровано в цій області. Відкрийте наявний запис і відредагуйте його — два сервіси не можуть мати спільний ідентифікатор, бо саме його архітектор називає у своєму проєкті.",
579
+ "foundational_service_not_inherited": "Вимкнення стосується сервісу, успадкованого від облікового запису. Цей ідентифікатор зареєстровано цією дошкою, тож вимикати нічого - натомість видаліть власний запис дошки."
576
580
  },
577
581
  "action": {
578
582
  "connectGitHub": "Під'єднати GitHub",
@@ -2049,6 +2053,7 @@
2049
2053
  "create": "Створити",
2050
2054
  "repositories": "Репозиторії",
2051
2055
  "integrations": "Інтеграції",
2056
+ "externalTools": "Зовнішні інструменти",
2052
2057
  "workspace": "Робочий простір",
2053
2058
  "account": "Обліковий запис"
2054
2059
  },
@@ -2075,7 +2080,8 @@
2075
2080
  "shortcuts": "Комбінації клавіш",
2076
2081
  "bugHunt": "Полювання на помилки",
2077
2082
  "toggleUiMode": "Змінити режим інтерфейсу",
2078
- "tutorial": "Пройти тур"
2083
+ "tutorial": "Пройти тур",
2084
+ "foundationalServices": "Базові сервіси"
2079
2085
  },
2080
2086
  "keywords": {
2081
2087
  "newPipeline": "конвеєр агенти ланцюг pipeline",
@@ -2098,7 +2104,8 @@
2098
2104
  "shortcuts": "комбінації клавіатура клавіші довідка",
2099
2105
  "bugHunt": "помилка баг полювання сортування беклог запити не призначені",
2100
2106
  "toggleUiMode": "інтерфейс режим базовий розширений показати сховати",
2101
- "tutorial": "навчання тур посібник довідка допомога знайомство"
2107
+ "tutorial": "навчання тур посібник довідка допомога знайомство",
2108
+ "foundationalServices": "спільна можливість платформа сервіс api контракт openapi каталог"
2102
2109
  }
2103
2110
  },
2104
2111
  "integrationsHub": {
@@ -2258,6 +2265,9 @@
2258
2265
  "title": "Оберіть типове тестове середовище",
2259
2266
  "body": "Ця дошка ще не визначила, як її сервіси отримують тестове середовище. Оберіть типове значення, і кожен доданий надалі сервіс починатиме з нього, замість налаштування по одному. Для окремого сервісу це завжди можна змінити.",
2260
2267
  "action": "Обрати типове"
2268
+ },
2269
+ "accountFoundational": {
2270
+ "intro": "Спільні можливості, які ця організація вже підтримує - сховище файлів, сповіщення, аудит - разом з їхніми контрактами API. Кожна дошка успадковує їх, а архітектору вказано використовувати їх, а не пропонувати будувати заново."
2261
2271
  }
2262
2272
  },
2263
2273
  "settings": {
@@ -2312,7 +2322,8 @@
2312
2322
  "tabs": {
2313
2323
  "team": "Команда та доступ",
2314
2324
  "fragments": "Фрагменти контексту",
2315
- "skills": "Навички"
2325
+ "skills": "Навички",
2326
+ "foundational": "Базові сервіси"
2316
2327
  }
2317
2328
  },
2318
2329
  "providerConnection": {
@@ -2901,6 +2912,7 @@
2901
2912
  "merge": "Політики ризику",
2902
2913
  "tracker": "Трекер задач",
2903
2914
  "fragments": "Найкращі практики сервісу",
2915
+ "metadata": "Метадані",
2904
2916
  "members": "Учасники"
2905
2917
  },
2906
2918
  "waiting": {
@@ -2966,6 +2978,12 @@
2966
2978
  "body": "Після завершення кожного запуску агент Kaizen оцінює, як пройшов кожен крок агента, від плавного й ефективного до заплутаного й хаотичного, і рекомендує покращення промпту/моделі. Комбінація промпт + агент + модель, яка п'ять разів поспіль отримує високу оцінку без рекомендацій, позначається як перевірена й більше не оцінюється. Оцінювання виконується у фоновому режимі й показується в деталях запуску та на екрані Kaizen. Налаштуйте модель оцінювача в Конфігурації моделей (агент \"Kaizen\").",
2967
2979
  "toggle": "Оцінювати запуски агентів за допомогою Kaizen"
2968
2980
  },
2981
+ "metadata": {
2982
+ "heading": "Метадані робочого простору",
2983
+ "body": "Значення власних полів, які визначає це розгортання. Зовнішні інструменти читають їх, щоб відкрити потрібний проєкт для цього робочого простору.",
2984
+ "empty": "Це розгортання не визначає власних полів робочого простору.",
2985
+ "unset": "Не задано"
2986
+ },
2969
2987
  "budget": {
2970
2988
  "heading": "Місячний бюджет витрат",
2971
2989
  "body": "Використання токенів вимірюється за кожен виклик LLM, оцінюється та обмежується цими бюджетами. Запуск призупиняється, коли вичерпано будь-який рівень, до якого він належить. Залиште поле порожнім, щоб не встановлювати ліміт для цього рівня (рівень робочого простору тоді успадковує вбудоване значення за замовчуванням, близько 100 EUR/місяць).",
@@ -5156,6 +5174,135 @@
5156
5174
  },
5157
5175
  "unavailable": "Бібліотека фрагментів промптів не ввімкнена для цього розгортання."
5158
5176
  },
5177
+ "foundational": {
5178
+ "unavailable": "Каталог базових сервісів не увімкнено в цьому розгортанні.",
5179
+ "owner": {
5180
+ "workspace": "Ця дошка",
5181
+ "account": "Цей обліковий запис"
5182
+ },
5183
+ "tab": {
5184
+ "catalog": "Каталог",
5185
+ "sources": "Приєднані репозиторії"
5186
+ },
5187
+ "panel": {
5188
+ "title": "Базові сервіси",
5189
+ "subtitle": "Спільні можливості, які ваша організація вже підтримує, щоб проєкт використовував їх, а не будував заново."
5190
+ },
5191
+ "tier": {
5192
+ "account": "Обліковий запис",
5193
+ "workspace": "Дошка"
5194
+ },
5195
+ "format": {
5196
+ "openapi": "OpenAPI",
5197
+ "toadContract": "toad-contracts",
5198
+ "lokaliseApiContract": "lokalise/api-contract"
5199
+ },
5200
+ "contracts": {
5201
+ "omitted": "+{count} інших не наведено",
5202
+ "none": "Контракт API не додано. Агенту повідомлять, що інтерфейс невідомий, замість того щоб він його вгадував."
5203
+ },
5204
+ "catalog": {
5205
+ "intro": "Те, що отримує архітектор, який проєктує на цій дошці: ідентичність, теги можливостей і назви операцій. Документи контрактів читаються лише тоді, коли проєкт декларує сервіс.",
5206
+ "empty": "Базових сервісів ще немає. Зареєструйте один нижче або приєднайте репозиторій, який їх описує.",
5207
+ "suppress": "Не пропонувати цей сервіс на цій дошці",
5208
+ "showDocuments": "Показати документи контрактів",
5209
+ "hideDocuments": "Сховати документи контрактів"
5210
+ },
5211
+ "suppressions": {
5212
+ "title": "Вимкнено на цій дошці",
5213
+ "intro": "Ці сервіси облікового запису приховано від проєктів на цій дошці. Нічого не видалено, і обліковий запис зберігає їх для всіх інших дошок.",
5214
+ "restore": "Пропонувати знову",
5215
+ "shadowsNothing": "Наразі під цим ідентифікатором нічого не успадковується, тож це вимкнення зараз нічого не приховує."
5216
+ },
5217
+ "registry": {
5218
+ "empty": "У цій області ще нічого не зареєстровано.",
5219
+ "add": "Зареєструвати сервіс",
5220
+ "addTitle": "Зареєструвати базовий сервіс",
5221
+ "editTitle": "Редагувати базовий сервіс",
5222
+ "edit": "Редагувати",
5223
+ "delete": "Видалити",
5224
+ "save": "Зберегти",
5225
+ "cancel": "Скасувати",
5226
+ "fromSource": "Синхронізовано з приєднаного репозиторію ({path}). Редагуйте його в репозиторії; наступна синхронізація перезапише зміни, зроблені тут.",
5227
+ "idFixed": "ідентифікатор, який архітектор пише у своєму проєкті - незмінний після реєстрації",
5228
+ "idPlaceholder": "ідентифікатор (малі літери й дефіси, напр. file-storage)",
5229
+ "namePlaceholder": "назва (напр. File Storage)",
5230
+ "summaryPlaceholder": "однорядковий опис - для чого він",
5231
+ "descriptionPlaceholder": "що робить, коли його використовувати і чого він НЕ охоплює",
5232
+ "capabilitiesPlaceholder": "теги можливостей через кому (напр. file-storage, cdn)",
5233
+ "contractsTitle": "Контракти API",
5234
+ "contractsKeep": "Залиште без змін, щоб зберегти збережені документи.",
5235
+ "contractsReplace": "Збереження ЗАМІНИТЬ увесь збережений набір тим, що наведено тут.",
5236
+ "addContract": "Додати контракт",
5237
+ "removeContract": "Вилучити цей контракт",
5238
+ "contractIdPlaceholder": "ідентифікатор контракту (малі літери й дефіси, напр. openapi)",
5239
+ "contractTitlePlaceholder": "заголовок (напр. HTTP API)",
5240
+ "contractBodyPlaceholder": "вставте документ: файл OpenAPI 3.x або вихідний код модуля контракту"
5241
+ },
5242
+ "sources": {
5243
+ "empty": "Немає приєднаних репозиторіїв. Приєднайте один нижче, щоб синхронізувати визначення сервісів та їхні файли контрактів.",
5244
+ "linkTitle": "Приєднати репозиторій",
5245
+ "link": "Приєднати та синхронізувати",
5246
+ "metaSynced": "синхронізовано {date} · ref {ref}",
5247
+ "metaNever": "ніколи не синхронізовано · ref {ref}",
5248
+ "metaFiles": "{service} · {count} файлів контрактів",
5249
+ "metaDirectory": "один сервіс на підкаталог",
5250
+ "changes": "Зміни",
5251
+ "check": "Перевірити зміни",
5252
+ "sync": "Синхронізувати знову",
5253
+ "unlink": "Від'єднати",
5254
+ "selectedDir": "Каталог:",
5255
+ "selectedFiles": "Обрані файли: {count}",
5256
+ "wholeRepo": "Увесь репозиторій (корінь).",
5257
+ "ownerPlaceholder": "власник",
5258
+ "repoPlaceholder": "репозиторій",
5259
+ "dirPlaceholder": "шлях каталогу (напр. foundational)",
5260
+ "filePathsPlaceholder": "шляхи до файлів контрактів, по одному в рядку",
5261
+ "refPlaceholder": "ref (типово HEAD)",
5262
+ "githubRequired": "Приєднання репозиторію потребує інтеграції з системою контролю версій. Спершу підключіть її на дошці.",
5263
+ "serviceIdPlaceholder": "ідентифікатор сервісу (малі літери й дефіси)",
5264
+ "serviceNamePlaceholder": "назва сервісу",
5265
+ "serviceSummaryPlaceholder": "однорядковий опис (необов'язково)",
5266
+ "mode": {
5267
+ "directory": "Каталог із сервісами",
5268
+ "files": "Окремі файли, один сервіс",
5269
+ "directoryHint": "Кожен підкаталог приєднаного шляху - це один сервіс, описаний файлом service.md, поруч з яким лежать його файли контрактів.",
5270
+ "filesHint": "Усі перелічені файли описують той єдиний сервіс, який ви тут називаєте. Використовуйте це, коли немає угоди про каталоги."
5271
+ }
5272
+ },
5273
+ "confirmUnlinkSource": {
5274
+ "title": "Від'єднати цей репозиторій?",
5275
+ "body": "\"{repo}\" і синхронізовані з нього сервіси буде вилучено з каталогу. Ви зможете приєднати його пізніше.",
5276
+ "confirm": "Від'єднати"
5277
+ },
5278
+ "confirmDelete": {
5279
+ "title": "Видалити цей сервіс?",
5280
+ "body": "\"{name}\" і завантажені для нього документи контрактів буде вилучено з цієї області.",
5281
+ "bodyWorkspace": "\"{name}\" і завантажені для нього документи контрактів буде вилучено з цієї дошки. Якщо обліковий запис реєструє службу з тим самим id, ця дошка також перестане її успадковувати; скасувати це можна в розділі \"Вимкнено на цій дошці\".",
5282
+ "confirm": "Видалити"
5283
+ },
5284
+ "toast": {
5285
+ "created": "Сервіс зареєстровано",
5286
+ "updated": "Сервіс оновлено",
5287
+ "deleted": "Сервіс видалено",
5288
+ "saveFailed": "Не вдалося зберегти сервіс",
5289
+ "deleteFailed": "Не вдалося видалити сервіс",
5290
+ "suppressed": "Приховано від проєктів на цій дошці",
5291
+ "suppressFailed": "Не вдалося приховати сервіс",
5292
+ "restored": "Знову пропонується на цій дошці",
5293
+ "restoreFailed": "Не вдалося відновити сервіс",
5294
+ "contractsFailed": "Не вдалося завантажити документи контрактів",
5295
+ "sourceLinked": "Репозиторій приєднано та синхронізовано",
5296
+ "linkSourceFailed": "Не вдалося приєднати репозиторій",
5297
+ "synced": "Синхронізовано: {updated} оновлено, {removed} вилучено",
5298
+ "syncFailed": "Не вдалося синхронізувати репозиторій",
5299
+ "changesAvailable": "У джерелі є зміни",
5300
+ "upToDate": "Уже актуально",
5301
+ "checkSourceFailed": "Не вдалося перевірити репозиторій",
5302
+ "sourceUnlinked": "Репозиторій від'єднано",
5303
+ "unlinkSourceFailed": "Не вдалося від'єднати репозиторій"
5304
+ }
5305
+ },
5159
5306
  "sandbox": {
5160
5307
  "title": "Пісочниця: тестування промптів і моделей",
5161
5308
  "description": "Випробовуйте версії промптів і моделі на оцінюваних фікстурах, які оцінює модель-суддя.",
@@ -6103,5 +6250,14 @@
6103
6250
  }
6104
6251
  }
6105
6252
  }
6253
+ },
6254
+ "externalTools": {
6255
+ "unavailable": {
6256
+ "title": "Не вдається відкрити {tool}",
6257
+ "missingMetadata": "Спочатку заповніть {fields} на вкладці Метадані в налаштуваннях робочого простору.",
6258
+ "unresolved": "Цей інструмент не повернув адресу для поточного робочого простору.",
6259
+ "resolverFailed": "Цей інструмент завершився помилкою під час визначення своєї адреси. Причина є в консолі браузера, для тих, хто підтримує це розгортання.",
6260
+ "unsafeUrl": "Цей інструмент повернув адресу, яка не є вебпосиланням, тому її не відкрито."
6261
+ }
6106
6262
  }
6107
6263
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.198.1",
3
+ "version": "0.200.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.204.0"
43
+ "@cat-factory/contracts": "0.206.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",