@cat-factory/app 0.47.0 → 0.47.2

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.
@@ -1609,5 +1609,166 @@
1609
1609
  "removeFailed": "Impossible de supprimer le runner"
1610
1610
  }
1611
1611
  }
1612
+ },
1613
+ "providers": {
1614
+ "presetMismatch": {
1615
+ "title": "Le préréglage utilise des modèles indisponibles",
1616
+ "intro": "Le préréglage de modèle par défaut de l'espace de travail \"{name}\" affecte des modèles indisponibles avec la configuration actuelle. Les tâches qui utilisent ce préréglage échoueraient en atteignant ces étapes.",
1617
+ "unavailable": "Indisponibles",
1618
+ "advice": "Réorientez le préréglage vers des modèles que vous avez configurés, ou ajoutez le fournisseur manquant.",
1619
+ "later": "Plus tard",
1620
+ "configureVendors": "Configurer les fournisseurs",
1621
+ "editPresets": "Modifier les préréglages",
1622
+ "defaultPresetName": "préréglage par défaut"
1623
+ },
1624
+ "onboarding": {
1625
+ "title": "Configurer un fournisseur de modèles d'IA",
1626
+ "noModelTitle": "Aucun modèle d'IA n'est encore disponible sur cet espace de travail.",
1627
+ "noModelBody": "Les agents ont besoin d'un modèle pour s'exécuter. L'IA fonctionne d'emblée uniquement sur un déploiement Cloudflare avec Workers AI activé ; sinon, connectez au moins une source ci-dessous.",
1628
+ "operatorNote": "AWS Bedrock et Cloudflare Workers AI sont activés par l'opérateur du déploiement via la configuration de l'environnement, pas depuis cet écran.",
1629
+ "routes": {
1630
+ "keys": {
1631
+ "title": "Clés et abonnements des fournisseurs",
1632
+ "body": "Ajoutez une clé d'API directe d'un fournisseur (OpenAI, Anthropic, Qwen, …) ou connectez un abonnement commercial à un plan de codage (Kimi, DeepSeek) ou personnel (Claude, GLM, Codex).",
1633
+ "cta": "Ouvrir les fournisseurs de LLM"
1634
+ },
1635
+ "openrouter": {
1636
+ "title": "Passerelle OpenRouter",
1637
+ "body": "Activez des modèles via la passerelle OpenRouter avec une seule clé. Parcourez et activez les modèles que vous voulez.",
1638
+ "cta": "Parcourir les modèles OpenRouter"
1639
+ },
1640
+ "local": {
1641
+ "title": "Mes exécuteurs locaux",
1642
+ "body": "Pointez cat-factory vers un modèle que vous exécutez vous-même (Ollama, LM Studio, llama.cpp, vLLM, …). Sans clé d'API ni dépense.",
1643
+ "cta": "Configurer les exécuteurs locaux"
1644
+ }
1645
+ }
1646
+ },
1647
+ "personalCredential": {
1648
+ "titleWrongPassword": "Mot de passe personnel incorrect",
1649
+ "titleNoSubscription": "Connectez votre abonnement {vendor}",
1650
+ "titleExpired": "Votre abonnement {vendor} a expiré",
1651
+ "titleDefault": "Saisissez votre mot de passe personnel",
1652
+ "fallbackVendor": "abonnement",
1653
+ "connectBody": "Cette tâche utilise un modèle {vendor}, qui s'exécute sur votre propre abonnement {vendor}. Connectez-le (ou renouvelez-le) d'abord, puis relancez l'exécution.",
1654
+ "connectCta": "Connecter l'abonnement",
1655
+ "passwordBody": "Saisissez le mot de passe personnel qui protège votre abonnement {vendor}. Il déverrouille votre identifiant pour cette exécution uniquement et est mis en cache dans ce navigateur un certain temps pour ne pas vous le redemander tout de suite.",
1656
+ "passwordField": "Mot de passe personnel",
1657
+ "passwordPlaceholder": "votre mot de passe personnel",
1658
+ "submit": "Déverrouiller et exécuter",
1659
+ "cancel": "Annuler",
1660
+ "toast": {
1661
+ "started": "Exécution démarrée",
1662
+ "startFailed": "Impossible de démarrer l'exécution"
1663
+ },
1664
+ "vendors": {
1665
+ "claude": "Claude",
1666
+ "glm": "GLM (Z.ai)",
1667
+ "codex": "ChatGPT (Codex)"
1668
+ }
1669
+ },
1670
+ "apiKeys": {
1671
+ "directHeading": "Clés d'API des fournisseurs directs",
1672
+ "proxyHeading": "Clés d'API de proxy / passerelle",
1673
+ "directAccountIntro": "Connectez une clé d'API de fournisseur partagée par tous les espaces de travail de ce compte. Les clés sont stockées chiffrées, mutualisées et alternées selon l'usage. Les clés de compte sont gérées par un administrateur.",
1674
+ "directIntro": "Connectez une clé d'API de fournisseur pour que les modèles s'exécutent directement chez ce fournisseur. Les clés sont stockées chiffrées, mutualisées et alternées selon l'usage. Définissez la portée d'une clé sur cet espace de travail (partagée avec l'équipe) ou sur vous (votre propre pool, utilisable partout).",
1675
+ "proxyAccountIntro": "Connectez une clé de proxy (OpenRouter, LiteLLM) partagée par tous les espaces de travail de ce compte. Un proxy est un intermédiaire qui donne accès à de nombreux fournisseurs derrière une seule clé. Les clés sont stockées chiffrées, mutualisées et alternées selon l'usage.",
1676
+ "proxyIntro": "Connectez une clé de proxy (OpenRouter, LiteLLM). Un proxy est un intermédiaire qui atteint les modèles de nombreux fournisseurs via une seule passerelle, plutôt qu'un fournisseur direct. Les clés sont stockées chiffrées, mutualisées et alternées selon l'usage. Définissez la portée d'une clé sur cet espace de travail (partagée avec l'équipe) ou sur vous (votre propre pool, utilisable partout).",
1677
+ "scopeField": "Portée",
1678
+ "scopeWorkspace": "Cet espace de travail",
1679
+ "scopeUser": "Mes clés (moi uniquement)",
1680
+ "providerField": "Fournisseur",
1681
+ "proxyField": "Proxy",
1682
+ "openKeys": "Ouvrir les clés {provider} ↗",
1683
+ "cachingNote": "Active la mise en cache du prompt pour les modèles {provider}, de sorte qu'une longue exécution multi-tours réutilise son préfixe de prompt en cache au lieu de le renvoyer à chaque tour.",
1684
+ "labelField": "Libellé (facultatif)",
1685
+ "labelPlaceholder": "p. ex. clé de l'équipe",
1686
+ "defaultLabel": "Clé {provider}",
1687
+ "keyField": "Clé d'API",
1688
+ "keyPlaceholder": "collez la clé d'API",
1689
+ "connect": "Connecter",
1690
+ "connected": "Connectées ({count})",
1691
+ "usage": "{tokens} tok cette fenêtre · {count} appel | {tokens} tok cette fenêtre · {count} appels",
1692
+ "toast": {
1693
+ "connected": "Clé d'API connectée",
1694
+ "connectFailed": "Impossible de connecter la clé",
1695
+ "removeFailed": "Impossible de supprimer la clé"
1696
+ },
1697
+ "providers": {
1698
+ "openai": {
1699
+ "label": "OpenAI",
1700
+ "step1": "Ouvrez platform.openai.com → API keys et créez une nouvelle clé secrète.",
1701
+ "step2": "Copiez la clé (commence par sk-…) ; elle n'est affichée qu'une seule fois."
1702
+ },
1703
+ "anthropic": {
1704
+ "label": "Anthropic (API Claude)",
1705
+ "step1": "Ouvrez console.anthropic.com → Settings → API Keys et créez une clé.",
1706
+ "step2": "Copiez la clé (commence par sk-ant-…)."
1707
+ },
1708
+ "qwen": {
1709
+ "label": "Qwen (Alibaba DashScope)",
1710
+ "step1": "Ouvrez la console DashScope (internationale) → API-KEY et créez une clé.",
1711
+ "step2": "Copiez la clé ; elle authentifie l'endpoint Qwen compatible OpenAI."
1712
+ },
1713
+ "deepseek": {
1714
+ "label": "DeepSeek",
1715
+ "step1": "Ouvrez platform.deepseek.com → API keys et créez une clé.",
1716
+ "step2": "Copiez la clé (commence par sk-…)."
1717
+ },
1718
+ "moonshot": {
1719
+ "label": "Moonshot (API Kimi)",
1720
+ "step1": "Ouvrez platform.moonshot.ai → API Keys et créez une clé.",
1721
+ "step2": "Copiez la clé ; elle authentifie l'endpoint Moonshot compatible OpenAI."
1722
+ },
1723
+ "openrouter": {
1724
+ "label": "OpenRouter",
1725
+ "step1": "Ouvrez openrouter.ai → Keys et créez une clé d'API.",
1726
+ "step2": "Copiez la clé (commence par sk-or-…) ; elle atteint plus de 300 modèles via une seule passerelle."
1727
+ },
1728
+ "litellm": {
1729
+ "label": "LiteLLM (passerelle auto-hébergée)",
1730
+ "step1": "Générez une clé virtuelle sur votre passerelle LiteLLM (ou utilisez sa clé maîtresse).",
1731
+ "step2": "L'URL de base de la passerelle est définie par l'opérateur de votre déploiement (LITELLM_BASE_URL), pas ici."
1732
+ }
1733
+ }
1734
+ },
1735
+ "vendorCredentials": {
1736
+ "title": "Fournisseurs de LLM",
1737
+ "tabs": {
1738
+ "pool": "Pool de l'espace de travail",
1739
+ "direct": "Fournisseurs directs",
1740
+ "proxy": "Proxys",
1741
+ "personal": "Abonnements personnels"
1742
+ },
1743
+ "poolIntro": "Connectez un abonnement commercial à un plan de codage (Kimi, DeepSeek) qui autorise un usage équipe/organisation pour exécuter les étapes d'agent sur le harness Claude Code au lieu d'une clé d'API. Les tokens sont stockés chiffrés, mutualisés et alternés selon l'usage. Les modèles d'abonnement sont à quota forfaitaire, donc ils n'entament pas votre budget de dépense. Les abonnements à usage individuel (Claude, GLM, ChatGPT/Codex) se connectent par utilisateur dans l'onglet Abonnements personnels.",
1744
+ "vendorField": "Fournisseur",
1745
+ "labelField": "Libellé (facultatif)",
1746
+ "labelPlaceholder": "p. ex. compte pro",
1747
+ "defaultLabel": "Token {vendor}",
1748
+ "tokenField": "Token",
1749
+ "tokenPlaceholder": "votre clé d'API de plan de codage",
1750
+ "connect": "Connecter",
1751
+ "connected": "Connectés ({count})",
1752
+ "usage": "{tokens} tok cette fenêtre · {count} exécution | {tokens} tok cette fenêtre · {count} exécutions",
1753
+ "toast": {
1754
+ "connected": "Token connecté",
1755
+ "connectFailed": "Impossible de connecter le token",
1756
+ "removeFailed": "Impossible de supprimer le token"
1757
+ },
1758
+ "vendors": {
1759
+ "kimi": {
1760
+ "label": "Kimi (plan de codage Moonshot)",
1761
+ "step1": "Ouvrez la console de votre plan de codage Moonshot (Kimi) et créez une clé d'API pour l'endpoint compatible Anthropic.",
1762
+ "step2": "Copiez la clé d'API. Les étapes d'agent s'exécuteront via Claude Code sur l'endpoint Anthropic de Moonshot avec le contexte complet.",
1763
+ "step3": "Collez la clé ci-dessous."
1764
+ },
1765
+ "deepseek": {
1766
+ "label": "DeepSeek (plan de codage)",
1767
+ "step1": "Ouvrez la console de votre plan de codage DeepSeek et créez une clé d'API pour l'endpoint compatible Anthropic.",
1768
+ "step2": "Copiez la clé d'API. Les étapes d'agent s'exécuteront via Claude Code sur l'endpoint Anthropic de DeepSeek avec le contexte complet.",
1769
+ "step3": "Collez la clé ci-dessous."
1770
+ }
1771
+ }
1772
+ }
1612
1773
  }
1613
1774
  }
@@ -1609,5 +1609,166 @@
1609
1609
  "removeFailed": "Nie udało się usunąć runnera"
1610
1610
  }
1611
1611
  }
1612
+ },
1613
+ "providers": {
1614
+ "presetMismatch": {
1615
+ "title": "Preset używa niedostępnych modeli",
1616
+ "intro": "Domyślny preset modeli przestrzeni roboczej \"{name}\" przypisuje modele niedostępne w obecnej konfiguracji. Zadania korzystające z tego presetu zakończyłyby się błędem po dotarciu do tych kroków.",
1617
+ "unavailable": "Niedostępne",
1618
+ "advice": "Przekieruj preset na skonfigurowane modele albo dodaj brakującego dostawcę.",
1619
+ "later": "Później",
1620
+ "configureVendors": "Skonfiguruj dostawców",
1621
+ "editPresets": "Edytuj presety",
1622
+ "defaultPresetName": "domyślny preset"
1623
+ },
1624
+ "onboarding": {
1625
+ "title": "Skonfiguruj dostawcę modeli AI",
1626
+ "noModelTitle": "W tej przestrzeni roboczej nie ma jeszcze dostępnego modelu AI.",
1627
+ "noModelBody": "Agenci potrzebują modelu do działania. AI działa od razu tylko we wdrożeniu Cloudflare z włączonym Workers AI; w przeciwnym razie podłącz poniżej co najmniej jedno źródło.",
1628
+ "operatorNote": "AWS Bedrock i Cloudflare Workers AI włącza operator wdrożenia w konfiguracji środowiska, a nie z tego ekranu.",
1629
+ "routes": {
1630
+ "keys": {
1631
+ "title": "Klucze i subskrypcje dostawców",
1632
+ "body": "Dodaj bezpośredni klucz API dostawcy (OpenAI, Anthropic, Qwen, …) albo podłącz komercyjną subskrypcję planu programistycznego (Kimi, DeepSeek) lub osobistą (Claude, GLM, Codex).",
1633
+ "cta": "Otwórz dostawców LLM"
1634
+ },
1635
+ "openrouter": {
1636
+ "title": "Brama OpenRouter",
1637
+ "body": "Włącz modele przez bramę OpenRouter jednym kluczem. Przeglądaj i włączaj modele, których chcesz.",
1638
+ "cta": "Przeglądaj modele OpenRouter"
1639
+ },
1640
+ "local": {
1641
+ "title": "Moje lokalne wykonawcze",
1642
+ "body": "Wskaż cat-factory model, który uruchamiasz samodzielnie (Ollama, LM Studio, llama.cpp, vLLM, …). Bez klucza API, bez kosztów.",
1643
+ "cta": "Skonfiguruj lokalne wykonawcze"
1644
+ }
1645
+ }
1646
+ },
1647
+ "personalCredential": {
1648
+ "titleWrongPassword": "Nieprawidłowe hasło osobiste",
1649
+ "titleNoSubscription": "Podłącz swoją subskrypcję {vendor}",
1650
+ "titleExpired": "Twoja subskrypcja {vendor} wygasła",
1651
+ "titleDefault": "Wprowadź swoje hasło osobiste",
1652
+ "fallbackVendor": "subskrypcja",
1653
+ "connectBody": "To zadanie używa modelu {vendor}, który działa na Twojej własnej subskrypcji {vendor}. Najpierw ją podłącz (lub odnów), a następnie uruchom ponownie.",
1654
+ "connectCta": "Podłącz subskrypcję",
1655
+ "passwordBody": "Wprowadź hasło osobiste chroniące Twoją subskrypcję {vendor}. Odblokowuje ono Twoje poświadczenie tylko dla tego uruchomienia i jest buforowane w tej przeglądarce przez pewien czas, aby nie pytać Cię ponownie zbyt szybko.",
1656
+ "passwordField": "Hasło osobiste",
1657
+ "passwordPlaceholder": "Twoje hasło osobiste",
1658
+ "submit": "Odblokuj i uruchom",
1659
+ "cancel": "Anuluj",
1660
+ "toast": {
1661
+ "started": "Uruchomienie rozpoczęte",
1662
+ "startFailed": "Nie udało się rozpocząć uruchomienia"
1663
+ },
1664
+ "vendors": {
1665
+ "claude": "Claude",
1666
+ "glm": "GLM (Z.ai)",
1667
+ "codex": "ChatGPT (Codex)"
1668
+ }
1669
+ },
1670
+ "apiKeys": {
1671
+ "directHeading": "Klucze API dostawców bezpośrednich",
1672
+ "proxyHeading": "Klucze API proxy / bramy",
1673
+ "directAccountIntro": "Podłącz klucz API dostawcy współdzielony przez wszystkie przestrzenie robocze na tym koncie. Klucze są przechowywane zaszyfrowane, łączone w pulę i rotowane według użycia. Kluczami konta zarządza administrator.",
1674
+ "directIntro": "Podłącz klucz API dostawcy, aby modele działały bezpośrednio u tego dostawcy. Klucze są przechowywane zaszyfrowane, łączone w pulę i rotowane według użycia. Określ zakres klucza dla tej przestrzeni roboczej (współdzielony z zespołem) lub dla Ciebie (Twoja własna pula, używalna wszędzie).",
1675
+ "proxyAccountIntro": "Podłącz klucz proxy (OpenRouter, LiteLLM) współdzielony przez wszystkie przestrzenie robocze na tym koncie. Proxy to pośrednik dający dostęp do wielu dostawców za jednym kluczem. Klucze są przechowywane zaszyfrowane, łączone w pulę i rotowane według użycia.",
1676
+ "proxyIntro": "Podłącz klucz proxy (OpenRouter, LiteLLM). Proxy to pośrednik docierający do modeli wielu dostawców przez jedną bramę, zamiast jednego dostawcy bezpośrednio. Klucze są przechowywane zaszyfrowane, łączone w pulę i rotowane według użycia. Określ zakres klucza dla tej przestrzeni roboczej (współdzielony z zespołem) lub dla Ciebie (Twoja własna pula, używalna wszędzie).",
1677
+ "scopeField": "Zakres",
1678
+ "scopeWorkspace": "Ta przestrzeń robocza",
1679
+ "scopeUser": "Moje klucze (tylko ja)",
1680
+ "providerField": "Dostawca",
1681
+ "proxyField": "Proxy",
1682
+ "openKeys": "Otwórz klucze {provider} ↗",
1683
+ "cachingNote": "Włącza buforowanie promptu dla modeli {provider}, dzięki czemu długie wielokrokowe uruchomienie ponownie wykorzystuje zbuforowany prefiks promptu zamiast wysyłać go ponownie w każdej turze.",
1684
+ "labelField": "Etykieta (opcjonalnie)",
1685
+ "labelPlaceholder": "np. klucz zespołu",
1686
+ "defaultLabel": "Klucz {provider}",
1687
+ "keyField": "Klucz API",
1688
+ "keyPlaceholder": "wklej klucz API",
1689
+ "connect": "Podłącz",
1690
+ "connected": "Podłączone ({count})",
1691
+ "usage": "{tokens} tok w tym oknie · {count} wywołanie | {tokens} tok w tym oknie · {count} wywołania | {tokens} tok w tym oknie · {count} wywołań",
1692
+ "toast": {
1693
+ "connected": "Klucz API podłączony",
1694
+ "connectFailed": "Nie udało się podłączyć klucza",
1695
+ "removeFailed": "Nie udało się usunąć klucza"
1696
+ },
1697
+ "providers": {
1698
+ "openai": {
1699
+ "label": "OpenAI",
1700
+ "step1": "Otwórz platform.openai.com → API keys i utwórz nowy tajny klucz.",
1701
+ "step2": "Skopiuj klucz (zaczyna się od sk-…); jest pokazywany tylko raz."
1702
+ },
1703
+ "anthropic": {
1704
+ "label": "Anthropic (API Claude)",
1705
+ "step1": "Otwórz console.anthropic.com → Settings → API Keys i utwórz klucz.",
1706
+ "step2": "Skopiuj klucz (zaczyna się od sk-ant-…)."
1707
+ },
1708
+ "qwen": {
1709
+ "label": "Qwen (Alibaba DashScope)",
1710
+ "step1": "Otwórz konsolę DashScope (międzynarodową) → API-KEY i utwórz klucz.",
1711
+ "step2": "Skopiuj klucz; uwierzytelnia on zgodny z OpenAI endpoint Qwen."
1712
+ },
1713
+ "deepseek": {
1714
+ "label": "DeepSeek",
1715
+ "step1": "Otwórz platform.deepseek.com → API keys i utwórz klucz.",
1716
+ "step2": "Skopiuj klucz (zaczyna się od sk-…)."
1717
+ },
1718
+ "moonshot": {
1719
+ "label": "Moonshot (API Kimi)",
1720
+ "step1": "Otwórz platform.moonshot.ai → API Keys i utwórz klucz.",
1721
+ "step2": "Skopiuj klucz; uwierzytelnia on zgodny z OpenAI endpoint Moonshot."
1722
+ },
1723
+ "openrouter": {
1724
+ "label": "OpenRouter",
1725
+ "step1": "Otwórz openrouter.ai → Keys i utwórz klucz API.",
1726
+ "step2": "Skopiuj klucz (zaczyna się od sk-or-…); sięga ponad 300 modeli przez jedną bramę."
1727
+ },
1728
+ "litellm": {
1729
+ "label": "LiteLLM (brama self-hosted)",
1730
+ "step1": "Wygeneruj klucz wirtualny na swojej bramie LiteLLM (lub użyj jej klucza głównego).",
1731
+ "step2": "Bazowy URL bramy ustawia operator Twojego wdrożenia (LITELLM_BASE_URL), nie tutaj."
1732
+ }
1733
+ }
1734
+ },
1735
+ "vendorCredentials": {
1736
+ "title": "Dostawcy LLM",
1737
+ "tabs": {
1738
+ "pool": "Pula przestrzeni roboczej",
1739
+ "direct": "Dostawcy bezpośredni",
1740
+ "proxy": "Proxy",
1741
+ "personal": "Subskrypcje osobiste"
1742
+ },
1743
+ "poolIntro": "Podłącz komercyjną subskrypcję planu programistycznego (Kimi, DeepSeek) zezwalającą na użycie zespołowe/organizacyjne, aby uruchamiać kroki agenta na harnessie Claude Code zamiast klucza API. Tokeny są przechowywane zaszyfrowane, łączone w pulę i rotowane według użycia. Modele subskrypcyjne mają ryczałtowy limit, więc nie obciążają Twojego budżetu wydatków. Subskrypcje do użytku indywidualnego (Claude, GLM, ChatGPT/Codex) podłącza się per użytkownik na karcie Subskrypcje osobiste.",
1744
+ "vendorField": "Dostawca",
1745
+ "labelField": "Etykieta (opcjonalnie)",
1746
+ "labelPlaceholder": "np. konto służbowe",
1747
+ "defaultLabel": "Token {vendor}",
1748
+ "tokenField": "Token",
1749
+ "tokenPlaceholder": "Twój klucz API planu programistycznego",
1750
+ "connect": "Podłącz",
1751
+ "connected": "Podłączone ({count})",
1752
+ "usage": "{tokens} tok w tym oknie · {count} uruchomienie | {tokens} tok w tym oknie · {count} uruchomienia | {tokens} tok w tym oknie · {count} uruchomień",
1753
+ "toast": {
1754
+ "connected": "Token podłączony",
1755
+ "connectFailed": "Nie udało się podłączyć tokenu",
1756
+ "removeFailed": "Nie udało się usunąć tokenu"
1757
+ },
1758
+ "vendors": {
1759
+ "kimi": {
1760
+ "label": "Kimi (plan programistyczny Moonshot)",
1761
+ "step1": "Otwórz konsolę swojego planu programistycznego Moonshot (Kimi) i utwórz klucz API dla endpointu zgodnego z Anthropic.",
1762
+ "step2": "Skopiuj klucz API. Kroki agenta będą działać przez Claude Code na endpoincie Anthropic firmy Moonshot z pełnym kontekstem.",
1763
+ "step3": "Wklej klucz poniżej."
1764
+ },
1765
+ "deepseek": {
1766
+ "label": "DeepSeek (plan programistyczny)",
1767
+ "step1": "Otwórz konsolę swojego planu programistycznego DeepSeek i utwórz klucz API dla endpointu zgodnego z Anthropic.",
1768
+ "step2": "Skopiuj klucz API. Kroki agenta będą działać przez Claude Code na endpoincie Anthropic firmy DeepSeek z pełnym kontekstem.",
1769
+ "step3": "Wklej klucz poniżej."
1770
+ }
1771
+ }
1772
+ }
1612
1773
  }
1613
1774
  }
@@ -1609,5 +1609,166 @@
1609
1609
  "removeFailed": "Не вдалося видалити раннер"
1610
1610
  }
1611
1611
  }
1612
+ },
1613
+ "providers": {
1614
+ "presetMismatch": {
1615
+ "title": "Пресет використовує недоступні моделі",
1616
+ "intro": "Стандартний пресет моделей робочого простору \"{name}\" призначає моделі, недоступні за поточної конфігурації. Завдання, що використовують цей пресет, завершилися б помилкою, дійшовши до цих кроків.",
1617
+ "unavailable": "Недоступні",
1618
+ "advice": "Переспрямуйте пресет на налаштовані моделі або додайте відсутнього постачальника.",
1619
+ "later": "Пізніше",
1620
+ "configureVendors": "Налаштувати постачальників",
1621
+ "editPresets": "Редагувати пресети",
1622
+ "defaultPresetName": "стандартний пресет"
1623
+ },
1624
+ "onboarding": {
1625
+ "title": "Налаштувати постачальника моделей ШІ",
1626
+ "noModelTitle": "У цьому робочому просторі ще немає доступної моделі ШІ.",
1627
+ "noModelBody": "Агентам потрібна модель для роботи. ШІ працює одразу лише у розгортанні Cloudflare з увімкненим Workers AI; інакше підключіть щонайменше одне джерело нижче.",
1628
+ "operatorNote": "AWS Bedrock і Cloudflare Workers AI вмикає оператор розгортання через конфігурацію середовища, а не з цього екрана.",
1629
+ "routes": {
1630
+ "keys": {
1631
+ "title": "Ключі та підписки постачальників",
1632
+ "body": "Додайте прямий ключ API постачальника (OpenAI, Anthropic, Qwen, …) або підключіть комерційну підписку плану програмування (Kimi, DeepSeek) чи особисту (Claude, GLM, Codex).",
1633
+ "cta": "Відкрити постачальників LLM"
1634
+ },
1635
+ "openrouter": {
1636
+ "title": "Шлюз OpenRouter",
1637
+ "body": "Увімкніть моделі через шлюз OpenRouter одним ключем. Переглядайте й вмикайте потрібні моделі.",
1638
+ "cta": "Переглянути моделі OpenRouter"
1639
+ },
1640
+ "local": {
1641
+ "title": "Мої локальні виконавці",
1642
+ "body": "Спрямуйте cat-factory на модель, яку запускаєте самостійно (Ollama, LM Studio, llama.cpp, vLLM, …). Без ключа API, без витрат.",
1643
+ "cta": "Налаштувати локальні виконавці"
1644
+ }
1645
+ }
1646
+ },
1647
+ "personalCredential": {
1648
+ "titleWrongPassword": "Неправильний особистий пароль",
1649
+ "titleNoSubscription": "Підключіть свою підписку {vendor}",
1650
+ "titleExpired": "Термін вашої підписки {vendor} минув",
1651
+ "titleDefault": "Введіть свій особистий пароль",
1652
+ "fallbackVendor": "підписка",
1653
+ "connectBody": "Це завдання використовує модель {vendor}, що працює на вашій власній підписці {vendor}. Спершу підключіть (або поновіть) її, а потім запустіть знову.",
1654
+ "connectCta": "Підключити підписку",
1655
+ "passwordBody": "Введіть особистий пароль, що захищає вашу підписку {vendor}. Він розблоковує ваші облікові дані лише для цього запуску і кешується в цьому браузері на деякий час, щоб не запитувати вас знову надто скоро.",
1656
+ "passwordField": "Особистий пароль",
1657
+ "passwordPlaceholder": "ваш особистий пароль",
1658
+ "submit": "Розблокувати й запустити",
1659
+ "cancel": "Скасувати",
1660
+ "toast": {
1661
+ "started": "Запуск розпочато",
1662
+ "startFailed": "Не вдалося розпочати запуск"
1663
+ },
1664
+ "vendors": {
1665
+ "claude": "Claude",
1666
+ "glm": "GLM (Z.ai)",
1667
+ "codex": "ChatGPT (Codex)"
1668
+ }
1669
+ },
1670
+ "apiKeys": {
1671
+ "directHeading": "Ключі API прямих постачальників",
1672
+ "proxyHeading": "Ключі API проксі / шлюзу",
1673
+ "directAccountIntro": "Підключіть ключ API постачальника, спільний для всіх робочих просторів цього облікового запису. Ключі зберігаються зашифрованими, об'єднуються в пул і ротуються за використанням. Ключами облікового запису керує адміністратор.",
1674
+ "directIntro": "Підключіть ключ API постачальника, щоб моделі працювали безпосередньо в цього постачальника. Ключі зберігаються зашифрованими, об'єднуються в пул і ротуються за використанням. Задайте область ключа для цього робочого простору (спільний з командою) або для вас (ваш власний пул, придатний скрізь).",
1675
+ "proxyAccountIntro": "Підключіть ключ проксі (OpenRouter, LiteLLM), спільний для всіх робочих просторів цього облікового запису. Проксі — це посередник, що дає доступ до багатьох постачальників за одним ключем. Ключі зберігаються зашифрованими, об'єднуються в пул і ротуються за використанням.",
1676
+ "proxyIntro": "Підключіть ключ проксі (OpenRouter, LiteLLM). Проксі — це посередник, що дістається моделей багатьох постачальників через один шлюз, а не одного постачальника безпосередньо. Ключі зберігаються зашифрованими, об'єднуються в пул і ротуються за використанням. Задайте область ключа для цього робочого простору (спільний з командою) або для вас (ваш власний пул, придатний скрізь).",
1677
+ "scopeField": "Область",
1678
+ "scopeWorkspace": "Цей робочий простір",
1679
+ "scopeUser": "Мої ключі (лише я)",
1680
+ "providerField": "Постачальник",
1681
+ "proxyField": "Проксі",
1682
+ "openKeys": "Відкрити ключі {provider} ↗",
1683
+ "cachingNote": "Вмикає кешування промпту для моделей {provider}, тож тривалий багатокроковий запуск повторно використовує кешований префікс промпту замість надсилати його щоразу.",
1684
+ "labelField": "Мітка (необов'язково)",
1685
+ "labelPlaceholder": "напр. ключ команди",
1686
+ "defaultLabel": "Ключ {provider}",
1687
+ "keyField": "Ключ API",
1688
+ "keyPlaceholder": "вставте ключ API",
1689
+ "connect": "Підключити",
1690
+ "connected": "Підключено ({count})",
1691
+ "usage": "{tokens} ток у цьому вікні · {count} виклик | {tokens} ток у цьому вікні · {count} виклики | {tokens} ток у цьому вікні · {count} викликів",
1692
+ "toast": {
1693
+ "connected": "Ключ API підключено",
1694
+ "connectFailed": "Не вдалося підключити ключ",
1695
+ "removeFailed": "Не вдалося видалити ключ"
1696
+ },
1697
+ "providers": {
1698
+ "openai": {
1699
+ "label": "OpenAI",
1700
+ "step1": "Відкрийте platform.openai.com → API keys і створіть новий секретний ключ.",
1701
+ "step2": "Скопіюйте ключ (починається з sk-…); його показано лише раз."
1702
+ },
1703
+ "anthropic": {
1704
+ "label": "Anthropic (API Claude)",
1705
+ "step1": "Відкрийте console.anthropic.com → Settings → API Keys і створіть ключ.",
1706
+ "step2": "Скопіюйте ключ (починається з sk-ant-…)."
1707
+ },
1708
+ "qwen": {
1709
+ "label": "Qwen (Alibaba DashScope)",
1710
+ "step1": "Відкрийте консоль DashScope (міжнародну) → API-KEY і створіть ключ.",
1711
+ "step2": "Скопіюйте ключ; він автентифікує сумісний з OpenAI endpoint Qwen."
1712
+ },
1713
+ "deepseek": {
1714
+ "label": "DeepSeek",
1715
+ "step1": "Відкрийте platform.deepseek.com → API keys і створіть ключ.",
1716
+ "step2": "Скопіюйте ключ (починається з sk-…)."
1717
+ },
1718
+ "moonshot": {
1719
+ "label": "Moonshot (API Kimi)",
1720
+ "step1": "Відкрийте platform.moonshot.ai → API Keys і створіть ключ.",
1721
+ "step2": "Скопіюйте ключ; він автентифікує сумісний з OpenAI endpoint Moonshot."
1722
+ },
1723
+ "openrouter": {
1724
+ "label": "OpenRouter",
1725
+ "step1": "Відкрийте openrouter.ai → Keys і створіть ключ API.",
1726
+ "step2": "Скопіюйте ключ (починається з sk-or-…); він сягає понад 300 моделей через один шлюз."
1727
+ },
1728
+ "litellm": {
1729
+ "label": "LiteLLM (самостійно розміщений шлюз)",
1730
+ "step1": "Згенеруйте віртуальний ключ на своєму шлюзі LiteLLM (або використайте його головний ключ).",
1731
+ "step2": "Базову URL-адресу шлюзу задає оператор вашого розгортання (LITELLM_BASE_URL), а не тут."
1732
+ }
1733
+ }
1734
+ },
1735
+ "vendorCredentials": {
1736
+ "title": "Постачальники LLM",
1737
+ "tabs": {
1738
+ "pool": "Пул робочого простору",
1739
+ "direct": "Прямі постачальники",
1740
+ "proxy": "Проксі",
1741
+ "personal": "Особисті підписки"
1742
+ },
1743
+ "poolIntro": "Підключіть комерційну підписку плану програмування (Kimi, DeepSeek), що дозволяє командне/організаційне використання, щоб виконувати кроки агента на harness Claude Code замість ключа API. Токени зберігаються зашифрованими, об'єднуються в пул і ротуються за використанням. Підписочні моделі мають фіксовану квоту, тож не витрачають ваш бюджет. Підписки для індивідуального використання (Claude, GLM, ChatGPT/Codex) підключають для кожного користувача на вкладці Особисті підписки.",
1744
+ "vendorField": "Постачальник",
1745
+ "labelField": "Мітка (необов'язково)",
1746
+ "labelPlaceholder": "напр. робочий обліковий запис",
1747
+ "defaultLabel": "Токен {vendor}",
1748
+ "tokenField": "Токен",
1749
+ "tokenPlaceholder": "ваш ключ API плану програмування",
1750
+ "connect": "Підключити",
1751
+ "connected": "Підключено ({count})",
1752
+ "usage": "{tokens} ток у цьому вікні · {count} запуск | {tokens} ток у цьому вікні · {count} запуски | {tokens} ток у цьому вікні · {count} запусків",
1753
+ "toast": {
1754
+ "connected": "Токен підключено",
1755
+ "connectFailed": "Не вдалося підключити токен",
1756
+ "removeFailed": "Не вдалося видалити токен"
1757
+ },
1758
+ "vendors": {
1759
+ "kimi": {
1760
+ "label": "Kimi (план програмування Moonshot)",
1761
+ "step1": "Відкрийте консоль свого плану програмування Moonshot (Kimi) і створіть ключ API для сумісного з Anthropic endpoint.",
1762
+ "step2": "Скопіюйте ключ API. Кроки агента виконуватимуться через Claude Code на endpoint Anthropic від Moonshot із повним контекстом.",
1763
+ "step3": "Вставте ключ нижче."
1764
+ },
1765
+ "deepseek": {
1766
+ "label": "DeepSeek (план програмування)",
1767
+ "step1": "Відкрийте консоль свого плану програмування DeepSeek і створіть ключ API для сумісного з Anthropic endpoint.",
1768
+ "step2": "Скопіюйте ключ API. Кроки агента виконуватимуться через Claude Code на endpoint Anthropic від DeepSeek із повним контекстом.",
1769
+ "step3": "Вставте ключ нижче."
1770
+ }
1771
+ }
1772
+ }
1612
1773
  }
1613
1774
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.47.0",
3
+ "version": "0.47.2",
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",