@cat-factory/app 0.167.1 → 0.169.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 (42) hide show
  1. package/README.md +45 -2
  2. package/app/components/auth/UserMenu.vue +9 -2
  3. package/app/components/board/AddTaskModal.vue +28 -9
  4. package/app/components/layout/BoardSwitcher.vue +21 -4
  5. package/app/components/layout/CommandBar.vue +3 -1
  6. package/app/components/layout/LanguageSwitcher.vue +9 -2
  7. package/app/components/layout/SideBar.vue +68 -15
  8. package/app/components/layout/UiModeSwitcher.vue +90 -0
  9. package/app/components/observability/StepMetricsBar.vue +36 -20
  10. package/app/components/panels/ObservabilityPanel.vue +60 -23
  11. package/app/components/panels/inspector/TaskRunSettings.vue +35 -8
  12. package/app/components/tasks/BugHuntModal.vue +3 -1
  13. package/app/components/tasks/ContextIssuePicker.vue +22 -5
  14. package/app/components/tasks/TaskImportModal.vue +1 -1
  15. package/app/composables/api/errors.ts +16 -0
  16. package/app/composables/api/tasks.ts +5 -2
  17. package/app/composables/useNavContributions.ts +3 -0
  18. package/app/docs/consumer-extensions.md +6 -1
  19. package/app/modular/nav-contributions.spec.ts +59 -1
  20. package/app/modular/nav-contributions.ts +62 -4
  21. package/app/modular/nav-gates.ts +7 -1
  22. package/app/modular/registry.spec.ts +1 -0
  23. package/app/stores/bugHunt.ts +2 -10
  24. package/app/stores/tasks.ts +7 -4
  25. package/app/stores/uiMode.spec.ts +151 -0
  26. package/app/stores/uiMode.ts +88 -0
  27. package/app/utils/observability.spec.ts +18 -18
  28. package/app/utils/observability.ts +19 -22
  29. package/app/utils/uiMode.spec.ts +67 -0
  30. package/app/utils/uiMode.ts +71 -0
  31. package/i18n/locales/de.json +35 -10
  32. package/i18n/locales/en.json +38 -10
  33. package/i18n/locales/es.json +35 -10
  34. package/i18n/locales/fr.json +35 -10
  35. package/i18n/locales/he.json +35 -10
  36. package/i18n/locales/it.json +35 -10
  37. package/i18n/locales/ja.json +35 -10
  38. package/i18n/locales/pl.json +35 -10
  39. package/i18n/locales/tr.json +35 -10
  40. package/i18n/locales/uk.json +35 -10
  41. package/nuxt.config.ts +5 -0
  42. package/package.json +2 -2
@@ -23,6 +23,14 @@
23
23
  "dismiss": "Закрити"
24
24
  }
25
25
  },
26
+ "uiMode": {
27
+ "switcher": "Інтерфейс",
28
+ "basic": "Базовий",
29
+ "advanced": "Розширений",
30
+ "basicHint": "Лише щоденні інструменти. Перейдіть на розширений, щоб побачити все.",
31
+ "advancedHint": "Усі розділи та всі параметри запуску.",
32
+ "pinned": "Визначено цим розгортанням"
33
+ },
26
34
  "common": {
27
35
  "loading": "Завантаження…",
28
36
  "save": "Зберегти",
@@ -95,6 +103,8 @@
95
103
  "menu": "Меню навігації",
96
104
  "openMenu": "Відкрити меню",
97
105
  "closeMenu": "Закрити меню",
106
+ "expandSidebar": "Розгорнути бічну панель",
107
+ "collapseSidebar": "Згорнути бічну панель",
98
108
  "commandBar": "Знайти або виконати команду…",
99
109
  "create": "Створити",
100
110
  "buildPipeline": "Створити конвеєр",
@@ -1358,13 +1368,23 @@
1358
1368
  "transportOverhead": "Накладні витрати транспорту",
1359
1369
  "modelExecution": "Виконання моделі",
1360
1370
  "truncated": "{count} обрізаний | {count} обрізані | {count} обрізаних",
1361
- "cached": "{tokens} з кешу"
1371
+ "inputTokensHint": "Загальна кількість токенів входу / виходу. Вхід враховує й токени з кешу: вони так само займають вікно контексту, точно як їх рахує індикатор контексту в Claude Code.",
1372
+ "fresh": "{tokens} нових",
1373
+ "freshHint": "Вхід, оброблений з нуля, без жодної частини з кешу",
1374
+ "cacheRead": "{tokens} прочитано з кешу",
1375
+ "cacheReadHint": "Вхідні токени, надані з кешу провайдера (приблизно 0,1 ціни нових вхідних токенів)",
1376
+ "cacheWrite": "{tokens} записано в кеш",
1377
+ "cacheWriteHint": "Вхідні токени, записані в кеш провайдера (від 1,25 до 2 разів ціна нових вхідних токенів)"
1362
1378
  },
1363
1379
  "metricsBar": {
1364
1380
  "calls": "{count} виклик | {count} виклики | {count} викликів",
1365
- "promptCompletionTokens": "Нові (некешовані) токени запиту / завершення",
1366
- "cachedTokens": "({tokens} з кешу)",
1367
- "cachedTokensHint": "Токени запиту, надані з кешу провайдера",
1381
+ "inputCompletionTokens": "Загальна кількість токенів входу / виходу. Вхід враховує й токени з кешу: вони так само займають вікно контексту, точно як їх рахує індикатор контексту в Claude Code.",
1382
+ "fresh": "{tokens} нових",
1383
+ "freshHint": "Вхід, оброблений з нуля, без жодної частини з кешу",
1384
+ "cacheRead": "{tokens} прочитано з кешу",
1385
+ "cacheReadHint": "Вхідні токени, надані з кешу провайдера (приблизно 0,1 ціни нових вхідних токенів)",
1386
+ "cacheWrite": "{tokens} записано в кеш",
1387
+ "cacheWriteHint": "Вхідні токени, записані в кеш провайдера (від 1,25 до 2 разів ціна нових вхідних токенів)",
1368
1388
  "errors": "{count} помилка | {count} помилки | {count} помилок",
1369
1389
  "warnings": "{count} попередження | {count} попередження | {count} попереджень",
1370
1390
  "outputLimit": "Ліміт виводу",
@@ -1374,7 +1394,7 @@
1374
1394
  "modelExecution": "Виконання моделі"
1375
1395
  },
1376
1396
  "call": {
1377
- "tokensTitle": "{prompt} токенів запиту / {completion} токенів завершення",
1397
+ "tokensTitle": "{input} токенів входу (з них {fresh} нових) / {completion} токенів виходу",
1378
1398
  "outputUsedVsLimit": "Використано виводу проти ліміту",
1379
1399
  "transportVsExecution": "Накладні витрати транспорту / виконання моделі",
1380
1400
  "error": "помилка",
@@ -1384,7 +1404,9 @@
1384
1404
  "streamed": "потоково",
1385
1405
  "buffered": "буферизовано",
1386
1406
  "maxTokens": "max_tokens {value}",
1387
- "promptCached": "{cached}/{prompt} запиту з кешу",
1407
+ "fresh": "{tokens} нових",
1408
+ "cacheRead": "{tokens} прочитано з кешу",
1409
+ "cacheWrite": "{tokens} записано в кеш",
1388
1410
  "total": "усього {duration}",
1389
1411
  "prompt": "Запит",
1390
1412
  "promptPrefixOmitted": "(лише нові повідомлення: {count} раніших пропущено)",
@@ -1940,7 +1962,8 @@
1940
1962
  "localModels": "Мої локальні виконавці",
1941
1963
  "sandbox": "Відкрити пісочницю",
1942
1964
  "shortcuts": "Комбінації клавіш",
1943
- "bugHunt": "Полювання на помилки"
1965
+ "bugHunt": "Полювання на помилки",
1966
+ "toggleUiMode": "Змінити режим інтерфейсу"
1944
1967
  },
1945
1968
  "keywords": {
1946
1969
  "newPipeline": "конвеєр агенти ланцюг pipeline",
@@ -1961,7 +1984,8 @@
1961
1984
  "localModels": "модель локальна виконавець ollama lm studio llamacpp vllm endpoint",
1962
1985
  "sandbox": "пісочниця prompt модель тест експеримент суддя fixture benchmark оцінка",
1963
1986
  "shortcuts": "комбінації клавіатура клавіші довідка",
1964
- "bugHunt": "помилка баг полювання сортування беклог запити не призначені"
1987
+ "bugHunt": "помилка баг полювання сортування беклог запити не призначені",
1988
+ "toggleUiMode": "інтерфейс режим базовий розширений показати сховати"
1965
1989
  }
1966
1990
  },
1967
1991
  "integrationsHub": {
@@ -3541,10 +3565,11 @@
3541
3565
  "searchPlaceholder": "Шукайте завдання або вставте URL/ключ…",
3542
3566
  "refPlaceholder": "Вставте URL або ключ завдання…",
3543
3567
  "searchFailed": "Не вдалося виконати пошук: {error}",
3568
+ "searchNeedsRepo": "Цю службу ще не пов'язано з репозиторієм, тому шукати немає де. Пов'яжіть її з репозиторієм або вставте URL завдання, щоб прикріпити його напряму.",
3544
3569
  "imported": "імпортовано",
3545
3570
  "attachByReference": "Прикріпити {ref} за посиланням",
3546
- "noMatches": "Немає відповідних завдань.",
3547
- "emptySearchable": "Шукайте за назвою або виберіть імпортоване завдання.",
3571
+ "noMatches": "Немає відповідних завдань у репозиторії цієї служби. Вставте URL завдання, щоб прикріпити завдання з іншого репозиторію.",
3572
+ "emptySearchable": "Шукайте за назвою в репозиторії цієї служби або виберіть імпортоване завдання.",
3548
3573
  "emptyRefOnly": "Вставте URL або ключ завдання, щоб прикріпити його.",
3549
3574
  "sourceLabel": "Джерело",
3550
3575
  "noSource": "Виберіть джерело",
package/nuxt.config.ts CHANGED
@@ -29,6 +29,11 @@ export default defineNuxtConfig({
29
29
  // Base URL of the cat-factory worker API. Defaults to the local wrangler
30
30
  // dev server; override per-environment with NUXT_PUBLIC_API_BASE.
31
31
  apiBase: 'http://localhost:8787',
32
+ // Interface tier the SPA starts in: 'basic' (the default) or 'advanced'.
33
+ // Set with NUXT_PUBLIC_UI_MODE; like `apiBase` this is baked in at build
34
+ // time (`ssr: false`). An empty value means "no deployment pin", so the
35
+ // user's own browser-stored choice decides — see `stores/uiMode.ts`.
36
+ uiMode: '',
32
37
  },
33
38
  },
34
39
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.167.1",
3
+ "version": "0.169.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.180.0"
43
+ "@cat-factory/contracts": "0.182.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",