@cat-factory/app 0.248.0 → 0.249.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 (33) hide show
  1. package/app/components/board/AddTaskModal.vue +1 -0
  2. package/app/components/board/nodes/BlockNode.vue +24 -0
  3. package/app/components/context/ContextAttachmentFields.vue +102 -0
  4. package/app/components/context/pastedLinkOffer.logic.spec.ts +35 -0
  5. package/app/components/context/pastedLinkOffer.logic.ts +50 -0
  6. package/app/components/documents/DocumentSourceConnectModal.vue +50 -0
  7. package/app/components/documents/SpawnPreviewModal.vue +92 -16
  8. package/app/components/documents/StartFromDesignModal.vue +237 -0
  9. package/app/components/layout/AccountDeploymentSettings.vue +122 -0
  10. package/app/composables/api/documents.ts +17 -6
  11. package/app/composables/useDocumentSourceConnect.ts +88 -0
  12. package/app/modular/external-tools.spec.ts +1 -0
  13. package/app/modular/nav-contributions.spec.ts +2 -0
  14. package/app/modular/nav-contributions.ts +10 -0
  15. package/app/modular/nav-gates.ts +4 -0
  16. package/app/modular/registry.spec.ts +1 -0
  17. package/app/modular/tutorial-tours.spec.ts +5 -0
  18. package/app/modular/tutorial-tours.ts +77 -0
  19. package/app/pages/index.vue +4 -0
  20. package/app/stores/documents.spec.ts +60 -0
  21. package/app/stores/documents.ts +52 -24
  22. package/app/stores/ui/modals.ts +15 -0
  23. package/i18n/locales/de.json +82 -6
  24. package/i18n/locales/en.json +82 -6
  25. package/i18n/locales/es.json +82 -6
  26. package/i18n/locales/fr.json +82 -6
  27. package/i18n/locales/he.json +82 -6
  28. package/i18n/locales/it.json +82 -6
  29. package/i18n/locales/ja.json +82 -6
  30. package/i18n/locales/pl.json +82 -6
  31. package/i18n/locales/tr.json +82 -6
  32. package/i18n/locales/uk.json +82 -6
  33. package/package.json +2 -2
@@ -430,7 +430,8 @@
430
430
  "accessDenied": {
431
431
  "title": "Permiso denegado",
432
432
  "hint": "No tienes acceso al repositorio que respalda este servicio."
433
- }
433
+ },
434
+ "startFromDesignTitle": "Empezar desde un diseño"
434
435
  },
435
436
  "decisionBadge": {
436
437
  "decisionNeeded": "Decisión necesaria",
@@ -502,7 +503,11 @@
502
503
  "attachIssueDisabledConnect": "Conecta primero un gestor de incidencias (Integraciones)",
503
504
  "attachIssueDisabledEnable": "Activa primero la integración del gestor de incidencias",
504
505
  "importsOnAdd": "se importa al añadir",
505
- "unreadable": "No se pudo obtener: {error}"
506
+ "unreadable": "No se pudo obtener: {error}",
507
+ "pastedLink": {
508
+ "offer": "Esta descripción enlaza una página de {source}. ¿Adjuntarla como contexto?",
509
+ "attach": "Adjuntar"
510
+ }
506
511
  },
507
512
  "errors": {
508
513
  "generic": {
@@ -2031,6 +2036,18 @@
2031
2036
  "keysValidation": "Introduce el id de clave de acceso y el secreto de S3",
2032
2037
  "saved": "Almacenamiento de contenido guardado",
2033
2038
  "saveFailed": "No se pudo guardar el almacenamiento de contenido"
2039
+ },
2040
+ "figma": {
2041
+ "title": "App de Figma (OAuth)",
2042
+ "description": "Habilita el flujo «Conectar con Figma». Sin él, los espacios de trabajo aún pueden conectar Figma pegando un token de acceso personal.",
2043
+ "clientId": "ID de cliente",
2044
+ "clientSecret": "Secreto de cliente",
2045
+ "redirectUrl": "URL de redirección",
2046
+ "validation": "Introduce el id de cliente, el secreto y la URL de redirección",
2047
+ "saved": "OAuth de Figma guardado",
2048
+ "saveFailed": "No se pudo guardar el OAuth de Figma",
2049
+ "cleared": "OAuth de Figma borrado",
2050
+ "clearFailed": "No se pudo borrar el OAuth de Figma"
2034
2051
  }
2035
2052
  },
2036
2053
  "accountFragments": {
@@ -4306,13 +4323,19 @@
4306
4323
  "connect": {
4307
4324
  "title": "Conectar fuente",
4308
4325
  "sourceFallback": "Fuente",
4309
- "intro": "Conecta {source} para importar requisitos, RFC y PRD, y luego generar la estructura del tablero o adjuntarlos a las tareas como contexto para los agentes.",
4326
+ "intro": "Conecta {source} para traer sus páginas y diseños a este tablero: impórtalos, conviértelos en estructura del tablero o adjúntalos a una tarea como contexto para los agentes.",
4310
4327
  "disconnect": "Desconectar",
4311
4328
  "connect": "Conectar",
4312
4329
  "update": "Actualizar conexión",
4313
4330
  "connected": "{source} conectado",
4314
4331
  "disconnected": "{source} desconectado",
4315
- "connectFailed": "No se pudo conectar"
4332
+ "connectFailed": "No se pudo conectar",
4333
+ "oauth": {
4334
+ "action": "Conectar con {source}",
4335
+ "scopes": "Se te pedirán estos permisos: {scopes}",
4336
+ "fallback": "¿Prefieres un token? Usa los campos de abajo.",
4337
+ "failed": "No se pudo iniciar el acceso a {source}"
4338
+ }
4316
4339
  },
4317
4340
  "spawn": {
4318
4341
  "title": "Previsualizar estructura",
@@ -4327,7 +4350,15 @@
4327
4350
  "summary": "{frames} · {modules} · {tasks}",
4328
4351
  "frameCount": "{count} marco | {count} marcos",
4329
4352
  "moduleCount": "{count} módulo | {count} módulos",
4330
- "taskCount": "{count} tarea | {count} tareas"
4353
+ "taskCount": "{count} tarea | {count} tareas",
4354
+ "reusedCount": "{count} módulo reutilizado | {count} módulos reutilizados",
4355
+ "intoService": "dentro del servicio elegido",
4356
+ "target": {
4357
+ "label": "Añadir al servicio",
4358
+ "help": "Un diseño describe pantallas, no una arquitectura, así que el plan propone trabajo dentro de un servicio que ya existe.",
4359
+ "placeholder": "Elige un servicio",
4360
+ "required": "Elige el servicio al que pertenece este diseño."
4361
+ }
4331
4362
  },
4332
4363
  "taskDocs": {
4333
4364
  "heading": "Documentos de contexto",
@@ -4360,6 +4391,20 @@
4360
4391
  "remove": "Quitar",
4361
4392
  "linkFailed": "No se pudo actualizar el vínculo del documento",
4362
4393
  "loadFailed": "No se pudieron cargar las plantillas de documentos"
4394
+ },
4395
+ "startFromDesign": {
4396
+ "title": "Empezar desde un diseño",
4397
+ "intro": "Pega el enlace a un frame o a un archivo completo. Se adjunta a la nueva tarea y el agente lee su maquetación, textos, componentes y tokens.",
4398
+ "noSource": "Todavía no hay ninguna fuente de diseño conectada. Un administrador puede conectar Figma o Zeplin desde Integraciones.",
4399
+ "linkLabel": "Enlace de diseño",
4400
+ "linkPlaceholder": "https://www.figma.com/design/…?node-id=1-2",
4401
+ "checking": "Comprobando el enlace…",
4402
+ "trimmed": "Recortado a la forma admitida de este enlace.",
4403
+ "widened": "No se pudo leer el frame {scope}, así que se adjunta el archivo completo.",
4404
+ "unchecked": "El enlace no se ha podido comprobar ahora mismo. Se descargará al crear la tarea.",
4405
+ "uncheckedAmbiguous": "No se pudo comprobar el enlace y hay más de una fuente de diseño conectada, así que no se sabe a cuál pertenece. Inténtalo de nuevo.",
4406
+ "rejected": "Ninguna fuente de diseño conectada reconoce este enlace.",
4407
+ "continue": "Continuar"
4363
4408
  }
4364
4409
  },
4365
4410
  "tasks": {
@@ -6969,7 +7014,8 @@
6969
7014
  "library": "La biblioteca de fragmentos de contexto habilitada en este despliegue",
6970
7015
  "failedRun": "Una ejecución que ha fallado",
6971
7016
  "infrastructure": "Un backend de ejecución conectado a este espacio de trabajo",
6972
- "advancedTier": "El modo de interfaz avanzado"
7017
+ "advancedTier": "El modo de interfaz avanzado",
7018
+ "designSource": "Una fuente de diseño conectada"
6973
7019
  },
6974
7020
  "overlay": {
6975
7021
  "next": "Siguiente",
@@ -7349,6 +7395,36 @@
7349
7395
  "body": "Un diseño que declara cuáles de estos usa recibe sus contratos completos en el paso siguiente. Uno que no declara nada no recibe nada: mantener esto al día es lo que lo hace funcionar."
7350
7396
  }
7351
7397
  }
7398
+ },
7399
+ "startFromDesign": {
7400
+ "title": "Empezar desde un diseño",
7401
+ "description": "Convierte un frame de diseño en una tarea que un agente pueda construir.",
7402
+ "steps": {
7403
+ "intro": {
7404
+ "title": "Trabajar desde el diseño",
7405
+ "body": "Cuando el trabajo empieza en una herramienta de diseño, el frame es el encargo. Este recorrido adjunta uno a una tarea nueva."
7406
+ },
7407
+ "open": {
7408
+ "title": "Empezar desde un diseño",
7409
+ "body": "Todo marco de servicio muestra este botón en cuanto hay una fuente de diseño conectada."
7410
+ },
7411
+ "paste": {
7412
+ "title": "Pega el enlace",
7413
+ "body": "Copia en tu herramienta de diseño el enlace a un frame o a un archivo completo y pégalo aquí."
7414
+ },
7415
+ "resolved": {
7416
+ "title": "Comprueba lo que se adjuntó",
7417
+ "body": "El enlace se recorta a su forma admitida. Si el frame en sí no se pudo leer, se adjunta el archivo completo y aquí se dice."
7418
+ },
7419
+ "continue": {
7420
+ "title": "Sigue hasta la tarea",
7421
+ "body": "El diseño queda preparado en la nueva tarea. Describe el resultado que quieres y créala."
7422
+ },
7423
+ "finish": {
7424
+ "title": "Lista para ejecutarse",
7425
+ "body": "El agente lee la maquetación, los textos, los componentes y los tokens del diseño, y cada ejecución vuelve a contrastarlo con la fuente."
7426
+ }
7427
+ }
7352
7428
  }
7353
7429
  },
7354
7430
  "nudge": {
@@ -430,7 +430,8 @@
430
430
  "accessDenied": {
431
431
  "title": "Autorisation refusée",
432
432
  "hint": "Vous n'avez pas accès au dépôt sur lequel repose ce service."
433
- }
433
+ },
434
+ "startFromDesignTitle": "Partir d'une maquette"
434
435
  },
435
436
  "decisionBadge": {
436
437
  "decisionNeeded": "Décision requise",
@@ -502,7 +503,11 @@
502
503
  "attachIssueDisabledConnect": "Connectez d’abord un suivi de tickets (Intégrations)",
503
504
  "attachIssueDisabledEnable": "Activez d’abord l’intégration du suivi de tickets",
504
505
  "importsOnAdd": "importé à l’ajout",
505
- "unreadable": "Récupération impossible : {error}"
506
+ "unreadable": "Récupération impossible : {error}",
507
+ "pastedLink": {
508
+ "offer": "Cette description renvoie à une page {source}. L’attacher comme contexte ?",
509
+ "attach": "Attacher"
510
+ }
506
511
  },
507
512
  "errors": {
508
513
  "generic": {
@@ -2031,6 +2036,18 @@
2031
2036
  "keysValidation": "Saisissez l’id de clé d’accès et le secret S3",
2032
2037
  "saved": "Stockage de contenu enregistré",
2033
2038
  "saveFailed": "Impossible d’enregistrer le stockage de contenu"
2039
+ },
2040
+ "figma": {
2041
+ "title": "Application Figma (OAuth)",
2042
+ "description": "Active le parcours « Se connecter avec Figma ». Sans lui, les espaces de travail peuvent toujours connecter Figma en collant un jeton d'accès personnel.",
2043
+ "clientId": "Identifiant client",
2044
+ "clientSecret": "Secret client",
2045
+ "redirectUrl": "URL de redirection",
2046
+ "validation": "Saisissez l'identifiant client, le secret et l'URL de redirection",
2047
+ "saved": "OAuth Figma enregistré",
2048
+ "saveFailed": "Impossible d'enregistrer l'OAuth Figma",
2049
+ "cleared": "OAuth Figma effacé",
2050
+ "clearFailed": "Impossible d'effacer l'OAuth Figma"
2034
2051
  }
2035
2052
  },
2036
2053
  "accountFragments": {
@@ -4306,13 +4323,19 @@
4306
4323
  "connect": {
4307
4324
  "title": "Connecter une source",
4308
4325
  "sourceFallback": "Source",
4309
- "intro": "Connectez {source} pour importer des exigences, des RFC et des PRD, puis générer la structure du tableau ou les joindre aux tâches comme contexte pour les agents.",
4326
+ "intro": "Connecte {source} pour amener ses pages et ses maquettes sur ce tableau : importe-les, déplie-les en structure de tableau, ou attache-les à une tâche comme contexte pour les agents.",
4310
4327
  "disconnect": "Déconnecter",
4311
4328
  "connect": "Connecter",
4312
4329
  "update": "Mettre à jour la connexion",
4313
4330
  "connected": "{source} connecté",
4314
4331
  "disconnected": "{source} déconnecté",
4315
- "connectFailed": "Connexion impossible"
4332
+ "connectFailed": "Connexion impossible",
4333
+ "oauth": {
4334
+ "action": "Se connecter avec {source}",
4335
+ "scopes": "Les autorisations demandées seront : {scopes}",
4336
+ "fallback": "Vous préférez un jeton ? Utilisez plutôt les champs ci-dessous.",
4337
+ "failed": "Impossible de lancer la connexion à {source}"
4338
+ }
4316
4339
  },
4317
4340
  "spawn": {
4318
4341
  "title": "Aperçu de la structure",
@@ -4327,7 +4350,15 @@
4327
4350
  "summary": "{frames} · {modules} · {tasks}",
4328
4351
  "frameCount": "{count} cadre | {count} cadres",
4329
4352
  "moduleCount": "{count} module | {count} modules",
4330
- "taskCount": "{count} tâche | {count} tâches"
4353
+ "taskCount": "{count} tâche | {count} tâches",
4354
+ "reusedCount": "{count} module réutilisé | {count} modules réutilisés",
4355
+ "intoService": "dans le service choisi",
4356
+ "target": {
4357
+ "label": "Ajouter au service",
4358
+ "help": "Une maquette décrit des écrans, pas une architecture : le plan propose donc du travail à l'intérieur d'un service qui existe déjà.",
4359
+ "placeholder": "Choisir un service",
4360
+ "required": "Choisissez le service auquel appartient cette maquette."
4361
+ }
4331
4362
  },
4332
4363
  "taskDocs": {
4333
4364
  "heading": "Documents de contexte",
@@ -4360,6 +4391,20 @@
4360
4391
  "remove": "Retirer",
4361
4392
  "linkFailed": "Impossible de mettre à jour le lien du document",
4362
4393
  "loadFailed": "Impossible de charger les modèles de documents"
4394
+ },
4395
+ "startFromDesign": {
4396
+ "title": "Partir d'une maquette",
4397
+ "intro": "Collez le lien vers un frame ou un fichier entier. Il est attaché à la nouvelle tâche, et l'agent en lit la mise en page, les textes, les composants et les tokens.",
4398
+ "noSource": "Aucune source de design n'est connectée. Un administrateur peut connecter Figma ou Zeplin depuis les intégrations.",
4399
+ "linkLabel": "Lien de maquette",
4400
+ "linkPlaceholder": "https://www.figma.com/design/…?node-id=1-2",
4401
+ "checking": "Vérification du lien…",
4402
+ "trimmed": "Réduit à la forme prise en charge de ce lien.",
4403
+ "widened": "Le frame {scope} n'a pas pu être lu : c'est le fichier entier qui est attaché.",
4404
+ "unchecked": "Le lien n'a pas pu être vérifié pour l'instant. Il sera récupéré à la création de la tâche.",
4405
+ "uncheckedAmbiguous": "Le lien n'a pas pu être vérifié, et plusieurs sources de design sont connectées : impossible de savoir de laquelle il vient. Réessayez.",
4406
+ "rejected": "Aucune source de design connectée ne reconnaît ce lien.",
4407
+ "continue": "Continuer"
4363
4408
  }
4364
4409
  },
4365
4410
  "tasks": {
@@ -6969,7 +7014,8 @@
6969
7014
  "library": "La bibliothèque de fragments de contexte activée sur ce déploiement",
6970
7015
  "failedRun": "Une exécution en échec",
6971
7016
  "infrastructure": "Un backend d’exécution connecté à cet espace de travail",
6972
- "advancedTier": "Le mode d’interface avancé"
7017
+ "advancedTier": "Le mode d’interface avancé",
7018
+ "designSource": "Une source de design connectée"
6973
7019
  },
6974
7020
  "overlay": {
6975
7021
  "next": "Suivant",
@@ -7349,6 +7395,36 @@
7349
7395
  "body": "Une conception qui déclare lesquels elle utilise reçoit leurs contrats complets à l’étape suivante. Celle qui ne déclare rien ne reçoit rien : tenir ceci à jour est ce qui fait que cela marche."
7350
7396
  }
7351
7397
  }
7398
+ },
7399
+ "startFromDesign": {
7400
+ "title": "Partir d'une maquette",
7401
+ "description": "Transformez un frame de maquette en tâche qu'un agent peut réaliser.",
7402
+ "steps": {
7403
+ "intro": {
7404
+ "title": "Travailler depuis la maquette",
7405
+ "body": "Quand le travail commence dans un outil de design, le frame est le brief. Cette visite en attache un à une nouvelle tâche."
7406
+ },
7407
+ "open": {
7408
+ "title": "Partir d'une maquette",
7409
+ "body": "Chaque cadre de service porte ce bouton dès qu'une source de design est connectée."
7410
+ },
7411
+ "paste": {
7412
+ "title": "Collez le lien",
7413
+ "body": "Copiez dans votre outil de design le lien vers un frame ou un fichier entier, et collez-le ici."
7414
+ },
7415
+ "resolved": {
7416
+ "title": "Vérifiez ce qui a été attaché",
7417
+ "body": "Le lien est réduit à sa forme prise en charge. Si le frame lui-même n'a pas pu être lu, c'est le fichier entier qui est attaché, et c'est dit ici."
7418
+ },
7419
+ "continue": {
7420
+ "title": "Passez à la tâche",
7421
+ "body": "La maquette est prête sur la nouvelle tâche. Décrivez le résultat attendu et créez-la."
7422
+ },
7423
+ "finish": {
7424
+ "title": "Prêt à lancer",
7425
+ "body": "L'agent lit la mise en page, les textes, les composants et les tokens de la maquette, et chaque exécution la revérifie auprès de la source."
7426
+ }
7427
+ }
7352
7428
  }
7353
7429
  },
7354
7430
  "nudge": {
@@ -430,7 +430,8 @@
430
430
  "accessDenied": {
431
431
  "title": "הגישה נדחתה",
432
432
  "hint": "אין לך גישה למאגר שעליו מבוסס שירות זה."
433
- }
433
+ },
434
+ "startFromDesignTitle": "להתחיל מעיצוב"
434
435
  },
435
436
  "decisionBadge": {
436
437
  "decisionNeeded": "נדרשת החלטה",
@@ -502,7 +503,11 @@
502
503
  "attachIssueDisabledConnect": "חבר תחילה מערכת לניהול אישיו (אינטגרציות)",
503
504
  "attachIssueDisabledEnable": "הפעל תחילה את אינטגרציית מערכת האישיו",
504
505
  "importsOnAdd": "מיובא בעת ההוספה",
505
- "unreadable": "לא ניתן לאחזר: {error}"
506
+ "unreadable": "לא ניתן לאחזר: {error}",
507
+ "pastedLink": {
508
+ "offer": "התיאור הזה מקשר לדף {source}. לצרף אותו כהקשר?",
509
+ "attach": "צרף"
510
+ }
506
511
  },
507
512
  "errors": {
508
513
  "generic": {
@@ -2031,6 +2036,18 @@
2031
2036
  "keysValidation": "הזן את מזהה מפתח הגישה והסוד של S3",
2032
2037
  "saved": "אחסון התוכן נשמר",
2033
2038
  "saveFailed": "לא ניתן היה לשמור את אחסון התוכן"
2039
+ },
2040
+ "figma": {
2041
+ "title": "אפליקציית Figma‏ (OAuth)",
2042
+ "description": "מפעיל את התהליך «התחברות באמצעות Figma». בלעדיו סביבות עבודה עדיין יכולות לחבר את Figma בהדבקת אסימון גישה אישי.",
2043
+ "clientId": "מזהה לקוח",
2044
+ "clientSecret": "סוד לקוח",
2045
+ "redirectUrl": "כתובת הפניה",
2046
+ "validation": "הזינו מזהה לקוח, סוד וכתובת הפניה",
2047
+ "saved": "OAuth של Figma נשמר",
2048
+ "saveFailed": "לא ניתן היה לשמור את ה-OAuth של Figma",
2049
+ "cleared": "OAuth של Figma נוקה",
2050
+ "clearFailed": "לא ניתן היה לנקות את ה-OAuth של Figma"
2034
2051
  }
2035
2052
  },
2036
2053
  "accountFragments": {
@@ -4306,13 +4323,19 @@
4306
4323
  "connect": {
4307
4324
  "title": "חבר מקור",
4308
4325
  "sourceFallback": "מקור",
4309
- "intro": "חבר את {source} כדי לייבא דרישות, RFC ו-PRD, ואז צור מבנה לוח או צרף אותם למשימות כהקשר סוכן.",
4326
+ "intro": "חברו את {source} כדי להביא את הדפים והעיצובים שלו ללוח הזה: לייבא, לפרוש למבנה לוח, או לצרף למשימה כהקשר לסוכנים.",
4310
4327
  "disconnect": "נתק",
4311
4328
  "connect": "חבר",
4312
4329
  "update": "עדכן חיבור",
4313
4330
  "connected": "{source} מחובר",
4314
4331
  "disconnected": "{source} נותק",
4315
- "connectFailed": "לא ניתן להתחבר"
4332
+ "connectFailed": "לא ניתן להתחבר",
4333
+ "oauth": {
4334
+ "action": "התחברות באמצעות {source}",
4335
+ "scopes": "תתבקשו לאשר את ההרשאות: {scopes}",
4336
+ "fallback": "מעדיפים אסימון? השתמשו בשדות שלמטה.",
4337
+ "failed": "לא ניתן היה להתחיל את ההתחברות ל-{source}"
4338
+ }
4316
4339
  },
4317
4340
  "spawn": {
4318
4341
  "title": "תצוגה מקדימה של מבנה",
@@ -4327,7 +4350,15 @@
4327
4350
  "summary": "{frames} · {modules} · {tasks}",
4328
4351
  "frameCount": "מסגרת אחת | שתי מסגרות | {count} מסגרות",
4329
4352
  "moduleCount": "מודול אחד | שני מודולים | {count} מודולים",
4330
- "taskCount": "משימה אחת | שתי משימות | {count} משימות"
4353
+ "taskCount": "משימה אחת | שתי משימות | {count} משימות",
4354
+ "reusedCount": "מודול אחד נוצל מחדש | שני מודולים נוצלו מחדש | {count} מודולים נוצלו מחדש",
4355
+ "intoService": "בתוך השירות שנבחר",
4356
+ "target": {
4357
+ "label": "הוספה לשירות",
4358
+ "help": "עיצוב מתאר מסכים ולא ארכיטקטורה, ולכן התוכנית מציעה עבודה בתוך שירות שכבר קיים.",
4359
+ "placeholder": "בחרו שירות",
4360
+ "required": "בחרו את השירות שאליו שייך העיצוב הזה."
4361
+ }
4331
4362
  },
4332
4363
  "taskDocs": {
4333
4364
  "heading": "מסמכי הקשר",
@@ -4360,6 +4391,20 @@
4360
4391
  "remove": "הסר",
4361
4392
  "linkFailed": "לא ניתן לעדכן את קישור המסמך",
4362
4393
  "loadFailed": "לא ניתן היה לטעון את תבניות המסמכים"
4394
+ },
4395
+ "startFromDesign": {
4396
+ "title": "להתחיל מעיצוב",
4397
+ "intro": "הדביקו קישור למסגרת או לקובץ שלם. הוא יצורף למשימה החדשה, והסוכן יקרא את הפריסה, הטקסטים, הרכיבים והטוקנים שלו.",
4398
+ "noSource": "עדיין לא חובר מקור עיצוב. מנהל יכול לחבר את Figma או Zeplin דרך האינטגרציות.",
4399
+ "linkLabel": "קישור לעיצוב",
4400
+ "linkPlaceholder": "https://www.figma.com/design/…?node-id=1-2",
4401
+ "checking": "בודקים את הקישור…",
4402
+ "trimmed": "קוצר לצורה הנתמכת של הקישור הזה.",
4403
+ "widened": "לא ניתן היה לקרוא את המסגרת {scope}, ולכן צורף הקובץ כולו.",
4404
+ "unchecked": "לא ניתן היה לבדוק את הקישור כרגע. הוא יימשך בעת יצירת המשימה.",
4405
+ "uncheckedAmbiguous": "לא ניתן היה לבדוק את הקישור, ומחובר יותר ממקור עיצוב אחד, ולכן לא ידוע לאיזה מהם הוא שייך. נסו שוב.",
4406
+ "rejected": "אף מקור עיצוב מחובר לא מזהה את הקישור הזה.",
4407
+ "continue": "המשך"
4363
4408
  }
4364
4409
  },
4365
4410
  "tasks": {
@@ -6969,7 +7014,8 @@
6969
7014
  "library": "ספריית מקטעי ההקשר מופעלת בפריסה הזו",
6970
7015
  "failedRun": "ריצה שנכשלה",
6971
7016
  "infrastructure": "עורף הרצה המחובר למרחב העבודה הזה",
6972
- "advancedTier": "מצב הממשק המתקדם"
7017
+ "advancedTier": "מצב הממשק המתקדם",
7018
+ "designSource": "מקור עיצוב מחובר"
6973
7019
  },
6974
7020
  "overlay": {
6975
7021
  "next": "הבא",
@@ -7349,6 +7395,36 @@
7349
7395
  "body": "תכנון שמצהיר באילו מהם הוא משתמש מקבל את החוזים המלאים שלהם בשלב הבא. אחד שאינו מצהיר על דבר אינו מקבל דבר, ולכן שמירה על עדכניות כאן היא מה שמאפשר לזה לעבוד."
7350
7396
  }
7351
7397
  }
7398
+ },
7399
+ "startFromDesign": {
7400
+ "title": "להתחיל מעיצוב",
7401
+ "description": "הפכו מסגרת עיצוב למשימה שסוכן יכול לבנות.",
7402
+ "steps": {
7403
+ "intro": {
7404
+ "title": "לעבוד מתוך העיצוב",
7405
+ "body": "כשהעבודה מתחילה בכלי עיצוב, המסגרת היא התדריך. הסיור הזה מצרף אחת למשימה חדשה."
7406
+ },
7407
+ "open": {
7408
+ "title": "להתחיל מעיצוב",
7409
+ "body": "בכל מסגרת שירות מופיע הכפתור הזה ברגע שמחובר מקור עיצוב."
7410
+ },
7411
+ "paste": {
7412
+ "title": "הדביקו את הקישור",
7413
+ "body": "העתיקו בכלי העיצוב את הקישור למסגרת או לקובץ שלם והדביקו אותו כאן."
7414
+ },
7415
+ "resolved": {
7416
+ "title": "בדקו מה צורף",
7417
+ "body": "הקישור מקוצר לצורתו הנתמכת. אם לא ניתן היה לקרוא את המסגרת עצמה, מצורף הקובץ כולו, וזה נאמר כאן."
7418
+ },
7419
+ "continue": {
7420
+ "title": "המשיכו למשימה",
7421
+ "body": "העיצוב מוכן על המשימה החדשה. תארו את התוצאה הרצויה וצרו אותה."
7422
+ },
7423
+ "finish": {
7424
+ "title": "מוכן להרצה",
7425
+ "body": "הסוכן קורא את הפריסה, הטקסטים, הרכיבים והטוקנים של העיצוב, וכל הרצה בודקת אותם מחדש מול המקור."
7426
+ }
7427
+ }
7352
7428
  }
7353
7429
  },
7354
7430
  "nudge": {
@@ -2198,6 +2198,18 @@
2198
2198
  "keysValidation": "Inserire l'access key id e il secret S3",
2199
2199
  "saved": "Archiviazione dei contenuti salvata",
2200
2200
  "saveFailed": "Impossibile salvare l'archiviazione dei contenuti"
2201
+ },
2202
+ "figma": {
2203
+ "title": "App Figma (OAuth)",
2204
+ "description": "Abilita il flusso «Collega con Figma». Senza, gli spazi di lavoro possono comunque collegare Figma incollando un token di accesso personale.",
2205
+ "clientId": "Client ID",
2206
+ "clientSecret": "Client secret",
2207
+ "redirectUrl": "URL di redirect",
2208
+ "validation": "Inserisci client id, secret e URL di redirect",
2209
+ "saved": "OAuth Figma salvato",
2210
+ "saveFailed": "Impossibile salvare l’OAuth Figma",
2211
+ "cleared": "OAuth Figma cancellato",
2212
+ "clearFailed": "Impossibile cancellare l’OAuth Figma"
2201
2213
  }
2202
2214
  },
2203
2215
  "accountFragments": {
@@ -3003,7 +3015,8 @@
3003
3015
  "accessDenied": {
3004
3016
  "title": "Autorizzazione negata",
3005
3017
  "hint": "Non hai accesso al repository che supporta questo servizio."
3006
- }
3018
+ },
3019
+ "startFromDesignTitle": "Parti da un design"
3007
3020
  },
3008
3021
  "decisionBadge": {
3009
3022
  "decisionNeeded": "Decisione necessaria",
@@ -3075,7 +3088,11 @@
3075
3088
  "attachIssueDisabledConnect": "Connetti prima un issue tracker (Integrazioni)",
3076
3089
  "attachIssueDisabledEnable": "Abilita prima l'integrazione dell'issue tracker",
3077
3090
  "importsOnAdd": "importa all'aggiunta",
3078
- "unreadable": "Impossibile recuperarlo: {error}"
3091
+ "unreadable": "Impossibile recuperarlo: {error}",
3092
+ "pastedLink": {
3093
+ "offer": "Questa descrizione rimanda a una pagina {source}. Allegarla come contesto?",
3094
+ "attach": "Allega"
3095
+ }
3079
3096
  },
3080
3097
  "providers": {
3081
3098
  "presetMismatch": {
@@ -3921,13 +3938,19 @@
3921
3938
  "connect": {
3922
3939
  "title": "Collega sorgente",
3923
3940
  "sourceFallback": "Sorgente",
3924
- "intro": "Collega {source} per importare requisiti, RFC e PRD, poi genera la struttura della board o allegali alle attività come contesto per l'agente.",
3941
+ "intro": "Collega {source} per portare le sue pagine e i suoi design su questa board: importali, espandili in struttura della board oppure allegali a un task come contesto per gli agenti.",
3925
3942
  "disconnect": "Disconnetti",
3926
3943
  "connect": "Collega",
3927
3944
  "update": "Aggiorna connessione",
3928
3945
  "connected": "{source} collegato",
3929
3946
  "disconnected": "{source} disconnesso",
3930
- "connectFailed": "Impossibile collegare"
3947
+ "connectFailed": "Impossibile collegare",
3948
+ "oauth": {
3949
+ "action": "Collega con {source}",
3950
+ "scopes": "Ti verranno chiesti questi permessi: {scopes}",
3951
+ "fallback": "Preferisci un token? Usa i campi qui sotto.",
3952
+ "failed": "Impossibile avviare l'accesso a {source}"
3953
+ }
3931
3954
  },
3932
3955
  "spawn": {
3933
3956
  "title": "Anteprima struttura",
@@ -3942,7 +3965,15 @@
3942
3965
  "summary": "{frames} · {modules} · {tasks}",
3943
3966
  "frameCount": "{count} frame | {count} frame",
3944
3967
  "moduleCount": "{count} modulo | {count} moduli",
3945
- "taskCount": "{count} attività | {count} attività"
3968
+ "taskCount": "{count} attività | {count} attività",
3969
+ "reusedCount": "{count} modulo riutilizzato | {count} moduli riutilizzati",
3970
+ "intoService": "dentro il servizio scelto",
3971
+ "target": {
3972
+ "label": "Aggiungi al servizio",
3973
+ "help": "Un design descrive schermate, non un’architettura: il piano propone quindi lavoro dentro un servizio che esiste già.",
3974
+ "placeholder": "Scegli un servizio",
3975
+ "required": "Scegli il servizio a cui appartiene questo design."
3976
+ }
3946
3977
  },
3947
3978
  "taskDocs": {
3948
3979
  "heading": "Documenti di contesto",
@@ -3975,6 +4006,20 @@
3975
4006
  "remove": "Rimuovi",
3976
4007
  "linkFailed": "Impossibile aggiornare il collegamento del documento",
3977
4008
  "loadFailed": "Impossibile caricare i modelli di documento"
4009
+ },
4010
+ "startFromDesign": {
4011
+ "title": "Parti da un design",
4012
+ "intro": "Incolla il link a un frame o a un intero file. Viene allegato al nuovo task e l’agente ne legge layout, testi, componenti e token.",
4013
+ "noSource": "Nessuna sorgente di design collegata. Un amministratore può collegare Figma o Zeplin dalle integrazioni.",
4014
+ "linkLabel": "Link al design",
4015
+ "linkPlaceholder": "https://www.figma.com/design/…?node-id=1-2",
4016
+ "checking": "Controllo del link…",
4017
+ "trimmed": "Ridotto alla forma supportata di questo link.",
4018
+ "widened": "Il frame {scope} non è leggibile, quindi viene allegato l’intero file.",
4019
+ "unchecked": "Al momento il link non è verificabile. Verrà scaricato alla creazione del task.",
4020
+ "uncheckedAmbiguous": "Il link non è verificabile e sono collegate più sorgenti di design, quindi non si sa a quale appartenga. Riprova.",
4021
+ "rejected": "Nessuna sorgente di design collegata riconosce questo link.",
4022
+ "continue": "Continua"
3978
4023
  }
3979
4024
  },
3980
4025
  "tasks": {
@@ -6969,7 +7014,8 @@
6969
7014
  "library": "La libreria dei frammenti di contesto abilitata su questo deployment",
6970
7015
  "failedRun": "Un’esecuzione fallita",
6971
7016
  "infrastructure": "Un backend di esecuzione collegato a questo workspace",
6972
- "advancedTier": "La modalità interfaccia avanzata"
7017
+ "advancedTier": "La modalità interfaccia avanzata",
7018
+ "designSource": "Una sorgente di design collegata"
6973
7019
  },
6974
7020
  "overlay": {
6975
7021
  "next": "Avanti",
@@ -7349,6 +7395,36 @@
7349
7395
  "body": "Un progetto che dichiara quali di questi usa riceve i loro contratti completi al passo successivo. Uno che non dichiara nulla non riceve nulla: tenere questo aggiornato è ciò che lo fa funzionare."
7350
7396
  }
7351
7397
  }
7398
+ },
7399
+ "startFromDesign": {
7400
+ "title": "Parti da un design",
7401
+ "description": "Trasforma un frame di design in un task che un agente può realizzare.",
7402
+ "steps": {
7403
+ "intro": {
7404
+ "title": "Lavorare dal design",
7405
+ "body": "Quando il lavoro nasce in uno strumento di design, il frame è il brief. Questo tour ne allega uno a un nuovo task."
7406
+ },
7407
+ "open": {
7408
+ "title": "Parti da un design",
7409
+ "body": "Ogni frame di servizio mostra questo pulsante non appena una sorgente di design è collegata."
7410
+ },
7411
+ "paste": {
7412
+ "title": "Incolla il link",
7413
+ "body": "Copia dal tuo strumento di design il link a un frame o a un intero file e incollalo qui."
7414
+ },
7415
+ "resolved": {
7416
+ "title": "Controlla cosa è stato allegato",
7417
+ "body": "Il link viene ridotto alla forma supportata. Se il frame non è leggibile viene allegato l’intero file, e qui lo si dice."
7418
+ },
7419
+ "continue": {
7420
+ "title": "Prosegui verso il task",
7421
+ "body": "Il design è pronto sul nuovo task. Descrivi il risultato che vuoi e crealo."
7422
+ },
7423
+ "finish": {
7424
+ "title": "Pronto per l’esecuzione",
7425
+ "body": "L’agente legge layout, testi, componenti e token del design, e ogni esecuzione lo riverifica con la sorgente."
7426
+ }
7427
+ }
7352
7428
  }
7353
7429
  },
7354
7430
  "nudge": {