@cat-factory/app 0.124.0 → 0.125.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.
@@ -345,8 +345,12 @@ watch(
345
345
  >
346
346
  {{ t('platformObservability.durations.empty') }}
347
347
  </div>
348
- <dl v-else class="flex items-center justify-between gap-2 text-center">
349
- <div class="flex-1">
348
+ <dl
349
+ v-else
350
+ class="grid grid-cols-3 gap-y-3 text-center"
351
+ data-testid="operator-durations"
352
+ >
353
+ <div>
350
354
  <dt class="text-[11px] text-slate-500">
351
355
  {{ t('platformObservability.durations.avg') }}
352
356
  </dt>
@@ -354,7 +358,7 @@ watch(
354
358
  {{ view.durations.avgMs == null ? '—' : formatMs(view.durations.avgMs) }}
355
359
  </dd>
356
360
  </div>
357
- <div class="flex-1">
361
+ <div>
358
362
  <dt class="text-[11px] text-slate-500">
359
363
  {{ t('platformObservability.durations.min') }}
360
364
  </dt>
@@ -362,7 +366,7 @@ watch(
362
366
  {{ view.durations.minMs == null ? '—' : formatMs(view.durations.minMs) }}
363
367
  </dd>
364
368
  </div>
365
- <div class="flex-1">
369
+ <div>
366
370
  <dt class="text-[11px] text-slate-500">
367
371
  {{ t('platformObservability.durations.max') }}
368
372
  </dt>
@@ -370,6 +374,39 @@ watch(
370
374
  {{ view.durations.maxMs == null ? '—' : formatMs(view.durations.maxMs) }}
371
375
  </dd>
372
376
  </div>
377
+ <div>
378
+ <dt class="text-[11px] text-slate-500">
379
+ {{ t('platformObservability.durations.p50') }}
380
+ </dt>
381
+ <dd
382
+ class="font-semibold text-slate-300"
383
+ data-testid="operator-duration-p50"
384
+ >
385
+ {{ view.durations.p50Ms == null ? '—' : formatMs(view.durations.p50Ms) }}
386
+ </dd>
387
+ </div>
388
+ <div>
389
+ <dt class="text-[11px] text-slate-500">
390
+ {{ t('platformObservability.durations.p90') }}
391
+ </dt>
392
+ <dd
393
+ class="font-semibold text-slate-300"
394
+ data-testid="operator-duration-p90"
395
+ >
396
+ {{ view.durations.p90Ms == null ? '—' : formatMs(view.durations.p90Ms) }}
397
+ </dd>
398
+ </div>
399
+ <div>
400
+ <dt class="text-[11px] text-slate-500">
401
+ {{ t('platformObservability.durations.p99') }}
402
+ </dt>
403
+ <dd
404
+ class="font-semibold text-slate-300"
405
+ data-testid="operator-duration-p99"
406
+ >
407
+ {{ view.durations.p99Ms == null ? '—' : formatMs(view.durations.p99Ms) }}
408
+ </dd>
409
+ </div>
373
410
  </dl>
374
411
  </div>
375
412
  </div>
@@ -2801,6 +2801,9 @@
2801
2801
  "avg": "Durchschnitt",
2802
2802
  "min": "Min.",
2803
2803
  "max": "Max.",
2804
+ "p50": "p50",
2805
+ "p90": "p90",
2806
+ "p99": "p99",
2804
2807
  "empty": "Keine abgeschlossenen Läufe in diesem Zeitraum."
2805
2808
  },
2806
2809
  "live": {
@@ -1416,6 +1416,9 @@
1416
1416
  "avg": "Average",
1417
1417
  "min": "Min",
1418
1418
  "max": "Max",
1419
+ "p50": "p50",
1420
+ "p90": "p90",
1421
+ "p99": "p99",
1419
1422
  "empty": "No completed runs in this window."
1420
1423
  },
1421
1424
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "Media",
1360
1360
  "min": "Mín.",
1361
1361
  "max": "Máx.",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "No hay ejecuciones completadas en este periodo."
1363
1366
  },
1364
1367
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "Moyenne",
1360
1360
  "min": "Min.",
1361
1361
  "max": "Max.",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "Aucune exécution terminée sur cette période."
1363
1366
  },
1364
1367
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "ממוצע",
1360
1360
  "min": "מינימום",
1361
1361
  "max": "מקסימום",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "אין הרצות שהושלמו בטווח זה."
1363
1366
  },
1364
1367
  "live": {
@@ -2801,6 +2801,9 @@
2801
2801
  "avg": "Media",
2802
2802
  "min": "Min",
2803
2803
  "max": "Max",
2804
+ "p50": "p50",
2805
+ "p90": "p90",
2806
+ "p99": "p99",
2804
2807
  "empty": "Nessuna esecuzione completata in questo periodo."
2805
2808
  },
2806
2809
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "平均",
1360
1360
  "min": "最小",
1361
1361
  "max": "最大",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "この期間に完了した実行はありません。"
1363
1366
  },
1364
1367
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "Średnia",
1360
1360
  "min": "Min",
1361
1361
  "max": "Maks",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "Brak ukończonych uruchomień w tym okresie."
1363
1366
  },
1364
1367
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "Ortalama",
1360
1360
  "min": "En düşük",
1361
1361
  "max": "En yüksek",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "Bu aralıkta tamamlanmış çalıştırma yok."
1363
1366
  },
1364
1367
  "live": {
@@ -1359,6 +1359,9 @@
1359
1359
  "avg": "Середня",
1360
1360
  "min": "Мін",
1361
1361
  "max": "Макс",
1362
+ "p50": "p50",
1363
+ "p90": "p90",
1364
+ "p99": "p99",
1362
1365
  "empty": "У цьому періоді немає завершених запусків."
1363
1366
  },
1364
1367
  "live": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.124.0",
3
+ "version": "0.125.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.141.0"
37
+ "@cat-factory/contracts": "0.142.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",