@cat-factory/app 0.101.1 → 0.103.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.
@@ -439,6 +439,8 @@
439
439
  "provision_type_unhandled": "No handler for this provision type",
440
440
  "preset_unsatisfiable": "Model preset can't run this pipeline",
441
441
  "visual_pipeline_no_frontend": "No frontend to test",
442
+ "model_policy_blocked": "Model blocked by account policy",
443
+ "model_policy_unsupported": "Model policy not available here",
442
444
  "deployer_required_before_tester": "Add a Deployer before the Tester"
443
445
  },
444
446
  "fallbackMessage": "This action conflicts with the current state.",
@@ -2224,6 +2226,8 @@
2224
2226
  "cloneUrl": "Repository clone URL",
2225
2227
  "cloneUrlHelp": "The git repository the stack's compose files live in.",
2226
2228
  "gitRef": "Branch or tag (optional)",
2229
+ "directory": "Subdirectory (optional)",
2230
+ "directoryHelp": "Used only by Autodetect: the monorepo subdirectory the compose stack lives in.",
2227
2231
  "composeFiles": "Compose files",
2228
2232
  "composeFilesHelp": "Comma-separated, repo-relative, in override order.",
2229
2233
  "composeProfiles": "Compose profiles (optional)",
@@ -2232,6 +2236,15 @@
2232
2236
  "allowHostCommands": "Allow host-command setup steps",
2233
2237
  "save": "Add stack"
2234
2238
  },
2239
+ "detect": {
2240
+ "button": "Autodetect",
2241
+ "hint": "Read the repository and prefill the compose files, profiles, and networks.",
2242
+ "detected": "Detected stack configuration",
2243
+ "detectedBody": "Prefilled from the repository. Review the fields before saving.",
2244
+ "nothing": "Nothing to autodetect",
2245
+ "failed": "Autodetection failed",
2246
+ "envFiles": "Env templates to materialize before start:"
2247
+ },
2235
2248
  "edit": {
2236
2249
  "heading": "Edit shared stack",
2237
2250
  "save": "Save changes",
@@ -2431,6 +2444,65 @@
2431
2444
  "title": "Remove this runner?",
2432
2445
  "body": "\"{name}\" will be removed. This can't be undone."
2433
2446
  }
2447
+ },
2448
+ "modelPolicy": {
2449
+ "title": "Model access policy",
2450
+ "description": "Restrict which model families this account’s teams can run. Data-residency risk depends on the serving route, so a trusted (residency-guaranteed) route can exempt an otherwise-blocked family.",
2451
+ "regionLabel": "Operating region",
2452
+ "applyPreset": "Apply preset:",
2453
+ "modeLabel": "Policy mode",
2454
+ "modes": {
2455
+ "off": "No restriction",
2456
+ "blocklist": "Block listed families",
2457
+ "allowlist": "Allow only listed families"
2458
+ },
2459
+ "familiesBlockLabel": "Blocked families",
2460
+ "familiesAllowLabel": "Allowed families",
2461
+ "trustedLabel": "Trusted (residency-guaranteed) routes",
2462
+ "trustedHint": "A blocked family stays available when it is served over one of these routes.",
2463
+ "families": {
2464
+ "claude": "Claude (Anthropic)",
2465
+ "openai": "OpenAI / ChatGPT",
2466
+ "gemini": "Gemini (Google)",
2467
+ "llama": "Llama (Meta)",
2468
+ "qwen": "Qwen (Alibaba)",
2469
+ "kimi": "Kimi (Moonshot)",
2470
+ "deepseek": "DeepSeek",
2471
+ "glm": "GLM (Z.ai)"
2472
+ },
2473
+ "regions": {
2474
+ "usa": "United States",
2475
+ "europe": "Europe",
2476
+ "china": "China",
2477
+ "other": "Other"
2478
+ },
2479
+ "providers": {
2480
+ "bedrock": "AWS Bedrock"
2481
+ },
2482
+ "presets": {
2483
+ "us-block-cn": {
2484
+ "label": "Block China-hosted families",
2485
+ "description": "Block DeepSeek, Qwen, Kimi and GLM; allow them only over a residency-guaranteed route (e.g. Bedrock)."
2486
+ },
2487
+ "eu-block-cn": {
2488
+ "label": "EU: block China-hosted families",
2489
+ "description": "Block DeepSeek, Qwen, Kimi and GLM; a residency-guaranteed EU route (e.g. Bedrock) stays allowed."
2490
+ },
2491
+ "eu-guaranteed-only": {
2492
+ "label": "EU: residency-guaranteed routes only",
2493
+ "description": "Allow a model only when it is served over a residency-guaranteed route."
2494
+ },
2495
+ "cn-prefer-domestic": {
2496
+ "label": "Prefer China-hosted families",
2497
+ "description": "Allow China-hosted families (plus Llama) and any residency-guaranteed route."
2498
+ },
2499
+ "other-block-cn": {
2500
+ "label": "Block China-hosted families",
2501
+ "description": "Block DeepSeek, Qwen, Kimi and GLM; allow them only over a residency-guaranteed route."
2502
+ }
2503
+ },
2504
+ "saved": "Model access policy saved",
2505
+ "saveFailed": "Could not save the model access policy"
2434
2506
  }
2435
2507
  },
2436
2508
  "providers": {
@@ -399,6 +399,8 @@
399
399
  "bootstrap_reference_missing": "La arquitectura de referencia ha desaparecido",
400
400
  "preset_unsatisfiable": "El preajuste de modelo no puede ejecutar esta canalización",
401
401
  "visual_pipeline_no_frontend": "No hay frontend que probar",
402
+ "model_policy_blocked": "Modelo bloqueado por la política de la cuenta",
403
+ "model_policy_unsupported": "La política de modelos no está disponible aquí",
402
404
  "deployer_required_before_tester": "Añade un Deployer antes del Tester"
403
405
  },
404
406
  "fallbackMessage": "Esta acción entra en conflicto con el estado actual.",
@@ -2050,6 +2052,8 @@
2050
2052
  "cloneUrl": "URL de clonación del repositorio",
2051
2053
  "cloneUrlHelp": "El repositorio git donde viven los archivos de Compose del stack.",
2052
2054
  "gitRef": "Rama o etiqueta (opcional)",
2055
+ "directory": "Subdirectorio (opcional)",
2056
+ "directoryHelp": "Solo lo usa la detección automática: el subdirectorio del monorepo donde se encuentra el stack de compose.",
2053
2057
  "composeFiles": "Archivos de Compose",
2054
2058
  "composeFilesHelp": "Separados por comas, relativos al repositorio, en orden de anulación.",
2055
2059
  "composeProfiles": "Perfiles de Compose (opcional)",
@@ -2058,6 +2062,15 @@
2058
2062
  "allowHostCommands": "Permitir pasos de configuración con comandos del host",
2059
2063
  "save": "Añadir stack"
2060
2064
  },
2065
+ "detect": {
2066
+ "button": "Detectar automáticamente",
2067
+ "hint": "Lee el repositorio y rellena los archivos de compose, los perfiles y las redes.",
2068
+ "detected": "Configuración del stack detectada",
2069
+ "detectedBody": "Rellenado desde el repositorio. Revisa los campos antes de guardar.",
2070
+ "nothing": "No hay nada que detectar automáticamente",
2071
+ "failed": "La detección automática falló",
2072
+ "envFiles": "Plantillas de entorno que se materializarán antes de iniciar:"
2073
+ },
2061
2074
  "edit": {
2062
2075
  "heading": "Editar stack compartido",
2063
2076
  "save": "Guardar cambios",
@@ -2364,6 +2377,65 @@
2364
2377
  "kubeOverrideNoun": "la anulación de Kubernetes",
2365
2378
  "customNoun": "este controlador"
2366
2379
  }
2380
+ },
2381
+ "modelPolicy": {
2382
+ "title": "Política de acceso a modelos",
2383
+ "description": "Restringe qué familias de modelos pueden usar los equipos de esta cuenta. El riesgo de residencia de datos depende de la ruta de servicio, por lo que una ruta de confianza (con residencia garantizada) puede eximir a una familia que de otro modo estaría bloqueada.",
2384
+ "regionLabel": "Región de operación",
2385
+ "applyPreset": "Aplicar preajuste:",
2386
+ "modeLabel": "Modo de la política",
2387
+ "modes": {
2388
+ "off": "Sin restricción",
2389
+ "blocklist": "Bloquear las familias listadas",
2390
+ "allowlist": "Permitir solo las familias listadas"
2391
+ },
2392
+ "familiesBlockLabel": "Familias bloqueadas",
2393
+ "familiesAllowLabel": "Familias permitidas",
2394
+ "trustedLabel": "Rutas de confianza (con residencia garantizada)",
2395
+ "trustedHint": "Una familia bloqueada sigue disponible cuando se sirve a través de una de estas rutas.",
2396
+ "families": {
2397
+ "claude": "Claude (Anthropic)",
2398
+ "openai": "OpenAI / ChatGPT",
2399
+ "gemini": "Gemini (Google)",
2400
+ "llama": "Llama (Meta)",
2401
+ "qwen": "Qwen (Alibaba)",
2402
+ "kimi": "Kimi (Moonshot)",
2403
+ "deepseek": "DeepSeek",
2404
+ "glm": "GLM (Z.ai)"
2405
+ },
2406
+ "regions": {
2407
+ "usa": "Estados Unidos",
2408
+ "europe": "Europa",
2409
+ "china": "China",
2410
+ "other": "Otra"
2411
+ },
2412
+ "providers": {
2413
+ "bedrock": "AWS Bedrock"
2414
+ },
2415
+ "presets": {
2416
+ "us-block-cn": {
2417
+ "label": "Bloquear familias alojadas en China",
2418
+ "description": "Bloquea DeepSeek, Qwen, Kimi y GLM; permítelas solo a través de una ruta con residencia garantizada (p. ej. Bedrock)."
2419
+ },
2420
+ "eu-block-cn": {
2421
+ "label": "UE: bloquear familias alojadas en China",
2422
+ "description": "Bloquea DeepSeek, Qwen, Kimi y GLM; una ruta de la UE con residencia garantizada (p. ej. Bedrock) sigue permitida."
2423
+ },
2424
+ "eu-guaranteed-only": {
2425
+ "label": "UE: solo rutas con residencia garantizada",
2426
+ "description": "Permite un modelo solo cuando se sirve a través de una ruta con residencia garantizada."
2427
+ },
2428
+ "cn-prefer-domestic": {
2429
+ "label": "Preferir familias alojadas en China",
2430
+ "description": "Permite las familias alojadas en China (más Llama) y cualquier ruta con residencia garantizada."
2431
+ },
2432
+ "other-block-cn": {
2433
+ "label": "Bloquear familias alojadas en China",
2434
+ "description": "Bloquea DeepSeek, Qwen, Kimi y GLM; permítelas solo a través de una ruta con residencia garantizada."
2435
+ }
2436
+ },
2437
+ "saved": "Política de acceso a modelos guardada",
2438
+ "saveFailed": "No se pudo guardar la política de acceso a modelos"
2367
2439
  }
2368
2440
  },
2369
2441
  "providers": {
@@ -399,6 +399,8 @@
399
399
  "bootstrap_reference_missing": "L’architecture de référence a disparu",
400
400
  "preset_unsatisfiable": "Le préréglage de modèle ne peut pas exécuter ce pipeline",
401
401
  "visual_pipeline_no_frontend": "Aucun frontend à tester",
402
+ "model_policy_blocked": "Modèle bloqué par la politique du compte",
403
+ "model_policy_unsupported": "La politique de modèles n'est pas disponible ici",
402
404
  "deployer_required_before_tester": "Ajoutez un Deployer avant le Testeur"
403
405
  },
404
406
  "fallbackMessage": "Cette action est en conflit avec l’état actuel.",
@@ -2050,6 +2052,8 @@
2050
2052
  "cloneUrl": "URL de clonage du dépôt",
2051
2053
  "cloneUrlHelp": "Le dépôt git où se trouvent les fichiers Compose du stack.",
2052
2054
  "gitRef": "Branche ou tag (facultatif)",
2055
+ "directory": "Sous-répertoire (facultatif)",
2056
+ "directoryHelp": "Utilisé uniquement par la détection automatique : le sous-répertoire du monorepo où se trouve le stack compose.",
2053
2057
  "composeFiles": "Fichiers Compose",
2054
2058
  "composeFilesHelp": "Séparés par des virgules, relatifs au dépôt, dans l'ordre de surcharge.",
2055
2059
  "composeProfiles": "Profils Compose (facultatif)",
@@ -2058,6 +2062,15 @@
2058
2062
  "allowHostCommands": "Autoriser les étapes de configuration par commande hôte",
2059
2063
  "save": "Ajouter le stack"
2060
2064
  },
2065
+ "detect": {
2066
+ "button": "Détection automatique",
2067
+ "hint": "Lire le dépôt et préremplir les fichiers compose, les profils et les réseaux.",
2068
+ "detected": "Configuration de la pile détectée",
2069
+ "detectedBody": "Prérempli à partir du dépôt. Vérifiez les champs avant d'enregistrer.",
2070
+ "nothing": "Rien à détecter automatiquement",
2071
+ "failed": "Échec de la détection automatique",
2072
+ "envFiles": "Modèles d'environnement à matérialiser avant le démarrage :"
2073
+ },
2061
2074
  "edit": {
2062
2075
  "heading": "Modifier le stack partagé",
2063
2076
  "save": "Enregistrer les modifications",
@@ -2364,6 +2377,65 @@
2364
2377
  "kubeOverrideNoun": "le remplacement Kubernetes",
2365
2378
  "customNoun": "ce gestionnaire"
2366
2379
  }
2380
+ },
2381
+ "modelPolicy": {
2382
+ "title": "Politique d'accès aux modèles",
2383
+ "description": "Restreint les familles de modèles que les équipes de ce compte peuvent utiliser. Le risque lié à la résidence des données dépend de la route de service : une route de confiance (à résidence garantie) peut donc exempter une famille autrement bloquée.",
2384
+ "regionLabel": "Région d'exploitation",
2385
+ "applyPreset": "Appliquer un préréglage :",
2386
+ "modeLabel": "Mode de la politique",
2387
+ "modes": {
2388
+ "off": "Aucune restriction",
2389
+ "blocklist": "Bloquer les familles listées",
2390
+ "allowlist": "Autoriser uniquement les familles listées"
2391
+ },
2392
+ "familiesBlockLabel": "Familles bloquées",
2393
+ "familiesAllowLabel": "Familles autorisées",
2394
+ "trustedLabel": "Routes de confiance (à résidence garantie)",
2395
+ "trustedHint": "Une famille bloquée reste disponible lorsqu'elle est servie via l'une de ces routes.",
2396
+ "families": {
2397
+ "claude": "Claude (Anthropic)",
2398
+ "openai": "OpenAI / ChatGPT",
2399
+ "gemini": "Gemini (Google)",
2400
+ "llama": "Llama (Meta)",
2401
+ "qwen": "Qwen (Alibaba)",
2402
+ "kimi": "Kimi (Moonshot)",
2403
+ "deepseek": "DeepSeek",
2404
+ "glm": "GLM (Z.ai)"
2405
+ },
2406
+ "regions": {
2407
+ "usa": "États-Unis",
2408
+ "europe": "Europe",
2409
+ "china": "Chine",
2410
+ "other": "Autre"
2411
+ },
2412
+ "providers": {
2413
+ "bedrock": "AWS Bedrock"
2414
+ },
2415
+ "presets": {
2416
+ "us-block-cn": {
2417
+ "label": "Bloquer les familles hébergées en Chine",
2418
+ "description": "Bloque DeepSeek, Qwen, Kimi et GLM ; ne les autorise que via une route à résidence garantie (p. ex. Bedrock)."
2419
+ },
2420
+ "eu-block-cn": {
2421
+ "label": "UE : bloquer les familles hébergées en Chine",
2422
+ "description": "Bloque DeepSeek, Qwen, Kimi et GLM ; une route UE à résidence garantie (p. ex. Bedrock) reste autorisée."
2423
+ },
2424
+ "eu-guaranteed-only": {
2425
+ "label": "UE : routes à résidence garantie uniquement",
2426
+ "description": "N'autorise un modèle que lorsqu'il est servi via une route à résidence garantie."
2427
+ },
2428
+ "cn-prefer-domestic": {
2429
+ "label": "Préférer les familles hébergées en Chine",
2430
+ "description": "Autorise les familles hébergées en Chine (plus Llama) et toute route à résidence garantie."
2431
+ },
2432
+ "other-block-cn": {
2433
+ "label": "Bloquer les familles hébergées en Chine",
2434
+ "description": "Bloque DeepSeek, Qwen, Kimi et GLM ; ne les autorise que via une route à résidence garantie."
2435
+ }
2436
+ },
2437
+ "saved": "Politique d'accès aux modèles enregistrée",
2438
+ "saveFailed": "Impossible d'enregistrer la politique d'accès aux modèles"
2367
2439
  }
2368
2440
  },
2369
2441
  "providers": {
@@ -399,6 +399,8 @@
399
399
  "bootstrap_reference_missing": "ארכיטקטורת ההפניה נעלמה",
400
400
  "preset_unsatisfiable": "קדם‑הגדרת המודל אינה יכולה להריץ צנרת זו",
401
401
  "visual_pipeline_no_frontend": "אין frontend לבדיקה",
402
+ "model_policy_blocked": "המודל נחסם על ידי מדיניות החשבון",
403
+ "model_policy_unsupported": "מדיניות המודלים אינה זמינה כאן",
402
404
  "deployer_required_before_tester": "הוסף Deployer לפני ה-Tester"
403
405
  },
404
406
  "fallbackMessage": "פעולה זו מתנגשת עם המצב הנוכחי.",
@@ -2171,6 +2173,8 @@
2171
2173
  "cloneUrl": "כתובת שכפול של המאגר",
2172
2174
  "cloneUrlHelp": "מאגר ה-git שבו נמצאים קובצי ה-Compose של המקבץ.",
2173
2175
  "gitRef": "ענף או תג (אופציונלי)",
2176
+ "directory": "תת-ספרייה (אופציונלי)",
2177
+ "directoryHelp": "בשימוש רק על ידי הזיהוי האוטומטי: תת-הספרייה במונורפו שבה נמצא מקבץ ה-compose.",
2174
2178
  "composeFiles": "קובצי Compose",
2175
2179
  "composeFilesHelp": "מופרדים בפסיקים, יחסית למאגר, לפי סדר הדריסה.",
2176
2180
  "composeProfiles": "פרופילי Compose (אופציונלי)",
@@ -2179,6 +2183,15 @@
2179
2183
  "allowHostCommands": "אפשר שלבי הגדרה עם פקודות מארח",
2180
2184
  "save": "הוספת מקבץ"
2181
2185
  },
2186
+ "detect": {
2187
+ "button": "זיהוי אוטומטי",
2188
+ "hint": "קריאת המאגר ומילוי מראש של קובצי ה-compose, הפרופילים והרשתות.",
2189
+ "detected": "תצורת הסטאק זוהתה",
2190
+ "detectedBody": "מולא מראש מהמאגר. בדקו את השדות לפני השמירה.",
2191
+ "nothing": "אין מה לזהות אוטומטית",
2192
+ "failed": "הזיהוי האוטומטי נכשל",
2193
+ "envFiles": "תבניות env שיש לממש לפני ההפעלה:"
2194
+ },
2182
2195
  "edit": {
2183
2196
  "heading": "עריכת מקבץ משותף",
2184
2197
  "save": "שמירת שינויים",
@@ -2375,6 +2388,65 @@
2375
2388
  "title": "להסיר את ה־runner הזה?",
2376
2389
  "body": "\"{name}\" יימחק. לא ניתן לבטל פעולה זו."
2377
2390
  }
2391
+ },
2392
+ "modelPolicy": {
2393
+ "title": "מדיניות גישה למודלים",
2394
+ "description": "מגבילה אילו משפחות מודלים הצוותים של חשבון זה יכולים להריץ. סיכון תושבוּת הנתונים תלוי בנתיב השירות, ולכן נתיב מהימן (עם תושבוּת מובטחת) יכול לפטור משפחה שאחרת הייתה חסומה.",
2395
+ "regionLabel": "אזור הפעילות",
2396
+ "applyPreset": "החל תבנית:",
2397
+ "modeLabel": "מצב המדיניות",
2398
+ "modes": {
2399
+ "off": "ללא הגבלה",
2400
+ "blocklist": "חסום את המשפחות ברשימה",
2401
+ "allowlist": "אפשר רק את המשפחות ברשימה"
2402
+ },
2403
+ "familiesBlockLabel": "משפחות חסומות",
2404
+ "familiesAllowLabel": "משפחות מותרות",
2405
+ "trustedLabel": "נתיבים מהימנים (עם תושבוּת מובטחת)",
2406
+ "trustedHint": "משפחה חסומה נשארת זמינה כאשר היא מוגשת דרך אחד מהנתיבים האלה.",
2407
+ "families": {
2408
+ "claude": "Claude (Anthropic)",
2409
+ "openai": "OpenAI / ChatGPT",
2410
+ "gemini": "Gemini (Google)",
2411
+ "llama": "Llama (Meta)",
2412
+ "qwen": "Qwen (Alibaba)",
2413
+ "kimi": "Kimi (Moonshot)",
2414
+ "deepseek": "DeepSeek",
2415
+ "glm": "GLM (Z.ai)"
2416
+ },
2417
+ "regions": {
2418
+ "usa": "ארצות הברית",
2419
+ "europe": "אירופה",
2420
+ "china": "סין",
2421
+ "other": "אחר"
2422
+ },
2423
+ "providers": {
2424
+ "bedrock": "AWS Bedrock"
2425
+ },
2426
+ "presets": {
2427
+ "us-block-cn": {
2428
+ "label": "חסום משפחות המתארחות בסין",
2429
+ "description": "חוסם את DeepSeek, Qwen, Kimi ו-GLM; מתיר אותן רק דרך נתיב עם תושבוּת מובטחת (למשל Bedrock)."
2430
+ },
2431
+ "eu-block-cn": {
2432
+ "label": "האיחוד האירופי: חסום משפחות המתארחות בסין",
2433
+ "description": "חוסם את DeepSeek, Qwen, Kimi ו-GLM; נתיב של האיחוד האירופי עם תושבוּת מובטחת (למשל Bedrock) נשאר מותר."
2434
+ },
2435
+ "eu-guaranteed-only": {
2436
+ "label": "האיחוד האירופי: רק נתיבים עם תושבוּת מובטחת",
2437
+ "description": "מתיר מודל רק כאשר הוא מוגש דרך נתיב עם תושבוּת מובטחת."
2438
+ },
2439
+ "cn-prefer-domestic": {
2440
+ "label": "העדף משפחות המתארחות בסין",
2441
+ "description": "מתיר משפחות המתארחות בסין (וגם Llama) וכל נתיב עם תושבוּת מובטחת."
2442
+ },
2443
+ "other-block-cn": {
2444
+ "label": "חסום משפחות המתארחות בסין",
2445
+ "description": "חוסם את DeepSeek, Qwen, Kimi ו-GLM; מתיר אותן רק דרך נתיב עם תושבוּת מובטחת."
2446
+ }
2447
+ },
2448
+ "saved": "מדיניות הגישה למודלים נשמרה",
2449
+ "saveFailed": "לא ניתן היה לשמור את מדיניות הגישה למודלים"
2378
2450
  }
2379
2451
  },
2380
2452
  "providers": {
@@ -530,6 +530,8 @@
530
530
  "cloneUrl": "URL di clone del repository",
531
531
  "cloneUrlHelp": "Il repository git in cui risiedono i file compose dello stack.",
532
532
  "gitRef": "Branch o tag (facoltativo)",
533
+ "directory": "Sottodirectory (facoltativo)",
534
+ "directoryHelp": "Usato solo dal rilevamento automatico: la sottodirectory del monorepo in cui si trova lo stack compose.",
533
535
  "composeFiles": "File compose",
534
536
  "composeFilesHelp": "Separati da virgola, relativi al repository, in ordine di override.",
535
537
  "composeProfiles": "Profili compose (facoltativo)",
@@ -538,6 +540,15 @@
538
540
  "allowHostCommands": "Consenti passaggi di setup con comandi host",
539
541
  "save": "Aggiungi stack"
540
542
  },
543
+ "detect": {
544
+ "button": "Rilevamento automatico",
545
+ "hint": "Legge il repository e precompila i file compose, i profili e le reti.",
546
+ "detected": "Configurazione dello stack rilevata",
547
+ "detectedBody": "Precompilato dal repository. Controlla i campi prima di salvare.",
548
+ "nothing": "Niente da rilevare automaticamente",
549
+ "failed": "Rilevamento automatico non riuscito",
550
+ "envFiles": "Modelli di ambiente da materializzare prima dell'avvio:"
551
+ },
541
552
  "edit": {
542
553
  "heading": "Modifica stack condiviso",
543
554
  "save": "Salva le modifiche",
@@ -734,6 +745,65 @@
734
745
  "title": "Rimuovere questo runner?",
735
746
  "body": "\"{name}\" verra rimosso. Questa operazione non puo essere annullata."
736
747
  }
748
+ },
749
+ "modelPolicy": {
750
+ "title": "Policy di accesso ai modelli",
751
+ "description": "Limita quali famiglie di modelli possono usare i team di questo account. Il rischio di residenza dei dati dipende dalla rotta di servizio, quindi una rotta attendibile (con residenza garantita) può esentare una famiglia altrimenti bloccata.",
752
+ "regionLabel": "Regione operativa",
753
+ "applyPreset": "Applica preset:",
754
+ "modeLabel": "Modalità della policy",
755
+ "modes": {
756
+ "off": "Nessuna restrizione",
757
+ "blocklist": "Blocca le famiglie elencate",
758
+ "allowlist": "Consenti solo le famiglie elencate"
759
+ },
760
+ "familiesBlockLabel": "Famiglie bloccate",
761
+ "familiesAllowLabel": "Famiglie consentite",
762
+ "trustedLabel": "Rotte attendibili (con residenza garantita)",
763
+ "trustedHint": "Una famiglia bloccata resta disponibile quando viene servita tramite una di queste rotte.",
764
+ "families": {
765
+ "claude": "Claude (Anthropic)",
766
+ "openai": "OpenAI / ChatGPT",
767
+ "gemini": "Gemini (Google)",
768
+ "llama": "Llama (Meta)",
769
+ "qwen": "Qwen (Alibaba)",
770
+ "kimi": "Kimi (Moonshot)",
771
+ "deepseek": "DeepSeek",
772
+ "glm": "GLM (Z.ai)"
773
+ },
774
+ "regions": {
775
+ "usa": "Stati Uniti",
776
+ "europe": "Europa",
777
+ "china": "Cina",
778
+ "other": "Altro"
779
+ },
780
+ "providers": {
781
+ "bedrock": "AWS Bedrock"
782
+ },
783
+ "presets": {
784
+ "us-block-cn": {
785
+ "label": "Blocca le famiglie ospitate in Cina",
786
+ "description": "Blocca DeepSeek, Qwen, Kimi e GLM; consentile solo tramite una rotta con residenza garantita (es. Bedrock)."
787
+ },
788
+ "eu-block-cn": {
789
+ "label": "UE: blocca le famiglie ospitate in Cina",
790
+ "description": "Blocca DeepSeek, Qwen, Kimi e GLM; una rotta UE con residenza garantita (es. Bedrock) resta consentita."
791
+ },
792
+ "eu-guaranteed-only": {
793
+ "label": "UE: solo rotte con residenza garantita",
794
+ "description": "Consente un modello solo quando è servito tramite una rotta con residenza garantita."
795
+ },
796
+ "cn-prefer-domestic": {
797
+ "label": "Preferisci le famiglie ospitate in Cina",
798
+ "description": "Consente le famiglie ospitate in Cina (più Llama) e qualsiasi rotta con residenza garantita."
799
+ },
800
+ "other-block-cn": {
801
+ "label": "Blocca le famiglie ospitate in Cina",
802
+ "description": "Blocca DeepSeek, Qwen, Kimi e GLM; consentile solo tramite una rotta con residenza garantita."
803
+ }
804
+ },
805
+ "saved": "Policy di accesso ai modelli salvata",
806
+ "saveFailed": "Impossibile salvare la policy di accesso ai modelli"
737
807
  }
738
808
  },
739
809
  "inspector": {
@@ -3580,6 +3650,8 @@
3580
3650
  "provision_type_unhandled": "Nessun gestore per questo tipo di provisioning",
3581
3651
  "preset_unsatisfiable": "Il preset del modello non può eseguire questa pipeline",
3582
3652
  "visual_pipeline_no_frontend": "Nessun frontend da testare",
3653
+ "model_policy_blocked": "Modello bloccato dalla policy dell'account",
3654
+ "model_policy_unsupported": "Policy dei modelli non disponibile qui",
3583
3655
  "deployer_required_before_tester": "Aggiungi un Deployer prima del Tester"
3584
3656
  },
3585
3657
  "fallbackMessage": "Questa azione è in conflitto con lo stato attuale.",
@@ -399,6 +399,8 @@
399
399
  "bootstrap_reference_missing": "リファレンスアーキテクチャが見つかりません",
400
400
  "preset_unsatisfiable": "モデルプリセットではこのパイプラインを実行できません",
401
401
  "visual_pipeline_no_frontend": "テスト対象のフロントエンドがありません",
402
+ "model_policy_blocked": "アカウントのポリシーによりモデルがブロックされています",
403
+ "model_policy_unsupported": "モデルポリシーはここでは利用できません",
402
404
  "deployer_required_before_tester": "テスターの前にDeployerを追加してください"
403
405
  },
404
406
  "fallbackMessage": "この操作は現在の状態と競合します。",
@@ -2172,6 +2174,8 @@
2172
2174
  "cloneUrl": "リポジトリのクローン URL",
2173
2175
  "cloneUrlHelp": "スタックの Compose ファイルが置かれている git リポジトリ。",
2174
2176
  "gitRef": "ブランチまたはタグ(任意)",
2177
+ "directory": "サブディレクトリ(任意)",
2178
+ "directoryHelp": "自動検出でのみ使用されます。compose スタックが存在するモノレポのサブディレクトリです。",
2175
2179
  "composeFiles": "Compose ファイル",
2176
2180
  "composeFilesHelp": "カンマ区切り、リポジトリ相対、オーバーライド順。",
2177
2181
  "composeProfiles": "Compose プロファイル(任意)",
@@ -2180,6 +2184,15 @@
2180
2184
  "allowHostCommands": "ホストコマンドのセットアップ手順を許可する",
2181
2185
  "save": "スタックを追加"
2182
2186
  },
2187
+ "detect": {
2188
+ "button": "自動検出",
2189
+ "hint": "リポジトリを読み取り、compose ファイル、プロファイル、ネットワークを事前入力します。",
2190
+ "detected": "スタック構成を検出しました",
2191
+ "detectedBody": "リポジトリから事前入力しました。保存する前にフィールドを確認してください。",
2192
+ "nothing": "自動検出するものがありません",
2193
+ "failed": "自動検出に失敗しました",
2194
+ "envFiles": "起動前に生成される env テンプレート:"
2195
+ },
2183
2196
  "edit": {
2184
2197
  "heading": "共有スタックを編集",
2185
2198
  "save": "変更を保存",
@@ -2376,6 +2389,65 @@
2376
2389
  "title": "このランナーを削除しますか?",
2377
2390
  "body": "「{name}」が削除されます。 この操作は取り消せません。"
2378
2391
  }
2392
+ },
2393
+ "modelPolicy": {
2394
+ "title": "モデルアクセスポリシー",
2395
+ "description": "このアカウントのチームが実行できるモデルファミリーを制限します。データレジデンシーのリスクは提供経路に依存するため、信頼された(レジデンシー保証済みの)経路であれば、通常はブロックされるファミリーを除外できます。",
2396
+ "regionLabel": "運用リージョン",
2397
+ "applyPreset": "プリセットを適用:",
2398
+ "modeLabel": "ポリシーモード",
2399
+ "modes": {
2400
+ "off": "制限なし",
2401
+ "blocklist": "リストされたファミリーをブロック",
2402
+ "allowlist": "リストされたファミリーのみ許可"
2403
+ },
2404
+ "familiesBlockLabel": "ブロックするファミリー",
2405
+ "familiesAllowLabel": "許可するファミリー",
2406
+ "trustedLabel": "信頼された(レジデンシー保証済みの)経路",
2407
+ "trustedHint": "ブロックされたファミリーでも、これらの経路のいずれかで提供される場合は利用可能なままです。",
2408
+ "families": {
2409
+ "claude": "Claude (Anthropic)",
2410
+ "openai": "OpenAI / ChatGPT",
2411
+ "gemini": "Gemini (Google)",
2412
+ "llama": "Llama (Meta)",
2413
+ "qwen": "Qwen (Alibaba)",
2414
+ "kimi": "Kimi (Moonshot)",
2415
+ "deepseek": "DeepSeek",
2416
+ "glm": "GLM (Z.ai)"
2417
+ },
2418
+ "regions": {
2419
+ "usa": "アメリカ合衆国",
2420
+ "europe": "ヨーロッパ",
2421
+ "china": "中国",
2422
+ "other": "その他"
2423
+ },
2424
+ "providers": {
2425
+ "bedrock": "AWS Bedrock"
2426
+ },
2427
+ "presets": {
2428
+ "us-block-cn": {
2429
+ "label": "中国でホストされるファミリーをブロック",
2430
+ "description": "DeepSeek、Qwen、Kimi、GLM をブロックし、レジデンシー保証済みの経路(例: Bedrock)経由でのみ許可します。"
2431
+ },
2432
+ "eu-block-cn": {
2433
+ "label": "EU: 中国でホストされるファミリーをブロック",
2434
+ "description": "DeepSeek、Qwen、Kimi、GLM をブロックしますが、レジデンシー保証済みの EU 経路(例: Bedrock)は許可されたままです。"
2435
+ },
2436
+ "eu-guaranteed-only": {
2437
+ "label": "EU: レジデンシー保証済みの経路のみ",
2438
+ "description": "レジデンシー保証済みの経路で提供される場合にのみモデルを許可します。"
2439
+ },
2440
+ "cn-prefer-domestic": {
2441
+ "label": "中国でホストされるファミリーを優先",
2442
+ "description": "中国でホストされるファミリー(および Llama)と、レジデンシー保証済みの任意の経路を許可します。"
2443
+ },
2444
+ "other-block-cn": {
2445
+ "label": "中国でホストされるファミリーをブロック",
2446
+ "description": "DeepSeek、Qwen、Kimi、GLM をブロックし、レジデンシー保証済みの経路経由でのみ許可します。"
2447
+ }
2448
+ },
2449
+ "saved": "モデルアクセスポリシーを保存しました",
2450
+ "saveFailed": "モデルアクセスポリシーを保存できませんでした"
2379
2451
  }
2380
2452
  },
2381
2453
  "providers": {