@cat-factory/app 0.126.1 → 0.127.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.
@@ -70,6 +70,9 @@ const META: Record<Notification['type'], { icon: string; color: Accent }> = {
70
70
  // The initiative loop needs attention (a blocked task, or completion). Clicking the title
71
71
  // opens the initiative tracker window; "act" just marks it read.
72
72
  initiative: { icon: 'i-lucide-milestone', color: 'primary' },
73
+ // Runs were paused by the spend safeguard. Workspace-scoped (no block to reveal); "act" just
74
+ // marks it read (the human raises the budget then resumes from the spend panel).
75
+ budget_paused: { icon: 'i-lucide-wallet', color: 'warning' },
73
76
  }
74
77
 
75
78
  // Per-type primary-action label. An exhaustive Record keyed off the notification
@@ -91,6 +94,7 @@ const ACTION_KEYS: Record<Notification['type'], string> = {
91
94
  fork_decision_pending: 'layout.notifications.action.fork_decision_pending',
92
95
  pr_review_ready: 'layout.notifications.action.pr_review_ready',
93
96
  initiative: 'layout.notifications.action.initiative',
97
+ budget_paused: 'layout.notifications.action.budget_paused',
94
98
  }
95
99
 
96
100
  /** The localized primary-action label for a notification (te()-guarded against a
@@ -67,6 +67,7 @@ const routes = reactive<Record<NotificationType, SlackRoute>>({
67
67
  fork_decision_pending: { enabled: false, channel: '' },
68
68
  pr_review_ready: { enabled: false, channel: '' },
69
69
  initiative: { enabled: false, channel: '' },
70
+ budget_paused: { enabled: false, channel: '' },
70
71
  })
71
72
  const mentionsEnabled = ref(false)
72
73
  // Editable member rows carry a client-only stable `uid` (see `slackMemberMapping`) so
@@ -1737,7 +1737,8 @@
1737
1737
  "initiative": "Als gelesen markieren",
1738
1738
  "markRead": "Als gelesen markieren",
1739
1739
  "fork_decision_pending": "Als gelesen markieren",
1740
- "pr_review_ready": "Als gelesen markieren"
1740
+ "pr_review_ready": "Als gelesen markieren",
1741
+ "budget_paused": "Als gelesen markieren"
1741
1742
  }
1742
1743
  },
1743
1744
  "aiProvidersBanner": {
@@ -1704,7 +1704,8 @@
1704
1704
  "initiative": "Mark read",
1705
1705
  "markRead": "Mark read",
1706
1706
  "fork_decision_pending": "Mark read",
1707
- "pr_review_ready": "Mark read"
1707
+ "pr_review_ready": "Mark read",
1708
+ "budget_paused": "Mark read"
1708
1709
  }
1709
1710
  },
1710
1711
  "aiProvidersBanner": {
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "Marcar como leída",
1639
1639
  "markRead": "Marcar como leída",
1640
1640
  "fork_decision_pending": "Marcar como leído",
1641
- "pr_review_ready": "Marcar como leída"
1641
+ "pr_review_ready": "Marcar como leída",
1642
+ "budget_paused": "Marcar como leída"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "Marcado como resuelto",
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "Marquer comme lu",
1639
1639
  "markRead": "Marquer comme lu",
1640
1640
  "fork_decision_pending": "Marquer comme lu",
1641
- "pr_review_ready": "Marquer comme lu"
1641
+ "pr_review_ready": "Marquer comme lu",
1642
+ "budget_paused": "Marquer comme lu"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "Marqué comme traité",
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "סמן כנקרא",
1639
1639
  "markRead": "סמן כנקרא",
1640
1640
  "fork_decision_pending": "סמן כנקרא",
1641
- "pr_review_ready": "סמן כנקרא"
1641
+ "pr_review_ready": "סמן כנקרא",
1642
+ "budget_paused": "סמן כנקרא"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "סומן כטופל",
@@ -1737,7 +1737,8 @@
1737
1737
  "initiative": "Segna come letto",
1738
1738
  "markRead": "Segna come letto",
1739
1739
  "fork_decision_pending": "Segna come letto",
1740
- "pr_review_ready": "Segna come letto"
1740
+ "pr_review_ready": "Segna come letto",
1741
+ "budget_paused": "Segna come letto"
1741
1742
  }
1742
1743
  },
1743
1744
  "aiProvidersBanner": {
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "既読にする",
1639
1639
  "markRead": "既読にする",
1640
1640
  "fork_decision_pending": "既読にする",
1641
- "pr_review_ready": "既読にする"
1641
+ "pr_review_ready": "既読にする",
1642
+ "budget_paused": "既読にする"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "対応済みにしました",
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "Oznacz jako przeczytane",
1639
1639
  "markRead": "Oznacz jako przeczytane",
1640
1640
  "fork_decision_pending": "Oznacz jako przeczytane",
1641
- "pr_review_ready": "Oznacz jako przeczytane"
1641
+ "pr_review_ready": "Oznacz jako przeczytane",
1642
+ "budget_paused": "Oznacz jako przeczytane"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "Oznaczono jako obsłużone",
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "Okundu işaretle",
1639
1639
  "markRead": "Okundu işaretle",
1640
1640
  "fork_decision_pending": "Okundu olarak işaretle",
1641
- "pr_review_ready": "Okundu işaretle"
1641
+ "pr_review_ready": "Okundu işaretle",
1642
+ "budget_paused": "Okundu işaretle"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "İşlendi olarak işaretlendi",
@@ -1638,7 +1638,8 @@
1638
1638
  "initiative": "Позначити прочитаним",
1639
1639
  "markRead": "Позначити прочитаним",
1640
1640
  "fork_decision_pending": "Позначити прочитаним",
1641
- "pr_review_ready": "Позначити прочитаним"
1641
+ "pr_review_ready": "Позначити прочитаним",
1642
+ "budget_paused": "Позначити прочитаним"
1642
1643
  },
1643
1644
  "toast": {
1644
1645
  "acted": "Позначено як опрацьоване",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.126.1",
3
+ "version": "0.127.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.144.0"
37
+ "@cat-factory/contracts": "0.146.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",