@cat-factory/app 0.46.9 → 0.46.11
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.
- package/app/components/board/AddTaskModal.vue +106 -88
- package/app/components/board/AgentFailureCard.vue +8 -5
- package/app/components/board/AgentStopButton.vue +8 -5
- package/app/components/board/BoardCanvas.vue +13 -9
- package/app/components/board/RecurringPipelineModal.vue +33 -23
- package/app/components/board/nodes/BlockNode.vue +50 -34
- package/app/components/board/nodes/DecisionBadge.vue +6 -3
- package/app/components/board/nodes/DraggableTask.vue +2 -1
- package/app/components/board/nodes/EpicNode.vue +10 -3
- package/app/components/board/nodes/ModuleFrame.vue +6 -5
- package/app/components/board/nodes/TaskCard.vue +40 -22
- package/app/components/board/nodes/TaskPipelineMini.vue +4 -3
- package/app/components/layout/BoardToolbar.vue +26 -19
- package/app/components/observability/StepMetricsBar.vue +31 -11
- package/app/components/observability/StepModelActivity.vue +3 -2
- package/app/components/panels/AgentStepDetail.vue +52 -39
- package/app/components/panels/DecisionModal.vue +12 -5
- package/app/components/panels/GenericStructuredResultView.vue +16 -6
- package/app/components/panels/InspectorPanel.vue +35 -28
- package/app/components/panels/ObservabilityPanel.vue +92 -49
- package/app/components/panels/StepMetadataCard.vue +87 -30
- package/app/components/panels/StepRestartControl.vue +4 -3
- package/app/components/panels/StepRunMeta.vue +23 -10
- package/app/components/panels/StepTestReport.vue +14 -11
- package/app/components/panels/inspector/ContainerSummary.vue +25 -14
- package/app/components/panels/inspector/EpicChildren.vue +7 -4
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +60 -19
- package/app/components/panels/inspector/ServiceFragments.vue +3 -2
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +18 -13
- package/app/components/panels/inspector/ServiceTestConfig.vue +50 -39
- package/app/components/panels/inspector/TaskAgentConfig.vue +6 -5
- package/app/components/panels/inspector/TaskDependencies.vue +9 -4
- package/app/components/panels/inspector/TaskEstimateBadge.vue +14 -13
- package/app/components/panels/inspector/TaskExecution.vue +65 -31
- package/app/components/panels/inspector/TaskRunSettings.vue +93 -56
- package/app/components/panels/inspector/TaskStructure.vue +5 -4
- package/i18n/locales/en.json +606 -0
- package/i18n/locales/es.json +596 -2
- package/i18n/locales/fr.json +596 -2
- package/i18n/locales/pl.json +596 -2
- package/i18n/locales/uk.json +596 -2
- package/package.json +1 -1
package/i18n/locales/fr.json
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"cancel": "Annuler",
|
|
14
14
|
"retry": "Réessayer",
|
|
15
15
|
"actionFailed": "Échec de l’action",
|
|
16
|
-
"close": "Fermer"
|
|
16
|
+
"close": "Fermer",
|
|
17
|
+
"block": "Bloc"
|
|
17
18
|
},
|
|
18
19
|
"nav": {
|
|
19
20
|
"menu": "Menu de navigation",
|
|
@@ -38,7 +39,198 @@
|
|
|
38
39
|
"board": {
|
|
39
40
|
"toolbar": {
|
|
40
41
|
"addService": "Ajouter un service",
|
|
41
|
-
"decisionWord": "décision | décisions"
|
|
42
|
+
"decisionWord": "décision | décisions",
|
|
43
|
+
"lod": {
|
|
44
|
+
"far": "Vue d’ensemble",
|
|
45
|
+
"mid": "Résumé",
|
|
46
|
+
"close": "Détail",
|
|
47
|
+
"steps": "Étapes de build",
|
|
48
|
+
"subtasks": "Sous-tâches"
|
|
49
|
+
},
|
|
50
|
+
"spendTitle": "Dépense de tokens ce mois-ci",
|
|
51
|
+
"spendLimitReached": "Limite de dépense atteinte : exécutions en pause",
|
|
52
|
+
"serviceAdded": "{title} ajouté",
|
|
53
|
+
"serviceAddFailed": "Impossible d’ajouter le service"
|
|
54
|
+
},
|
|
55
|
+
"canvas": {
|
|
56
|
+
"emptyTitle": "Votre tableau est vide",
|
|
57
|
+
"emptyBody": "Ajoutez un service pour commencer : initialisez un nouveau dépôt ou importez-en un existant.",
|
|
58
|
+
"addBlockFailedTitle": "Impossible d’ajouter le bloc",
|
|
59
|
+
"addBlockFailedBody": "Le backend a rejeté la requête.",
|
|
60
|
+
"dropOntoTaskTitle": "Déposez sur une tâche",
|
|
61
|
+
"dropOntoTaskBody": "Les pipelines s’exécutent sur des tâches, pas sur des services.",
|
|
62
|
+
"taskBlockedTitle": "La tâche est bloquée",
|
|
63
|
+
"taskBlockedBody": "Ses dépendances n’ont pas encore été fusionnées."
|
|
64
|
+
},
|
|
65
|
+
"addTask": {
|
|
66
|
+
"title": "Ajouter une tâche",
|
|
67
|
+
"newTaskIn": "Nouvelle tâche dans {container}",
|
|
68
|
+
"typeLabel": "Type",
|
|
69
|
+
"types": {
|
|
70
|
+
"feature": "Fonctionnalité",
|
|
71
|
+
"bug": "Bug",
|
|
72
|
+
"document": "Document",
|
|
73
|
+
"spike": "Spike",
|
|
74
|
+
"recurring": "Récurrent"
|
|
75
|
+
},
|
|
76
|
+
"recurringWithFrame": "Une tâche récurrente exécute une pipeline selon une cadence. Continuez pour définir le calendrier et le prompt.",
|
|
77
|
+
"recurringNoFrame": "Une tâche récurrente doit appartenir à un service. Ajoutez-la depuis un cadre de service (ou un module à l’intérieur).",
|
|
78
|
+
"titleField": "Titre",
|
|
79
|
+
"titlePlaceholder": "Que faut-il faire ?",
|
|
80
|
+
"issueIncluded": "{title} (depuis le ticket, incluse)",
|
|
81
|
+
"loadingIssue": "Chargement de la description du ticket lié…",
|
|
82
|
+
"additionalNotes": "Notes supplémentaires",
|
|
83
|
+
"description": "Description",
|
|
84
|
+
"notesPlaceholder": "Ajoutez tout ce que l’agent devrait savoir ; ce sera ajouté à la description du ticket ci-dessus…",
|
|
85
|
+
"descriptionPlaceholder": "Décrivez le travail : contexte, critères d’acceptation, tout ce que l’agent devrait savoir…",
|
|
86
|
+
"technical": "Tâche technique",
|
|
87
|
+
"technicalHint": "Un refactor / changement non fonctionnel / interne. L’implémenteur traite la définition de la tâche comme principale et la spec comme référence de régression ; laissez désactivé pour laisser la phase de spec décider.",
|
|
88
|
+
"severity": "Gravité",
|
|
89
|
+
"stepsToReproduce": "Étapes de reproduction",
|
|
90
|
+
"stepsToReproducePlaceholder": "Observé vs attendu, et comment reproduire…",
|
|
91
|
+
"timebox": "Limite de temps (heures)",
|
|
92
|
+
"timeboxPlaceholder": "ex. 8",
|
|
93
|
+
"documentKind": "Type de document",
|
|
94
|
+
"audience": "Public",
|
|
95
|
+
"audiencePlaceholder": "ex. ingénieurs plateforme",
|
|
96
|
+
"targetPath": "Chemin cible",
|
|
97
|
+
"targetPathPlaceholder": "ex. docs/rfcs/0001-foo.md",
|
|
98
|
+
"outlineHints": "Indications de plan",
|
|
99
|
+
"outlineHintsPlaceholder": "Sections ou points que le document devrait couvrir",
|
|
100
|
+
"optional": "optionnel",
|
|
101
|
+
"pipeline": "Pipeline",
|
|
102
|
+
"chooseAtRunTime": "Choisir au lancement",
|
|
103
|
+
"mergePolicy": "Politique de fusion",
|
|
104
|
+
"workspaceDefault": "Valeur par défaut de l’espace",
|
|
105
|
+
"defaultPreset": "Par défaut ({name}) : {thresholds}",
|
|
106
|
+
"defaultModelPreset": "Par défaut ({name})",
|
|
107
|
+
"modelPreset": "Préréglage de modèle",
|
|
108
|
+
"agentConfiguration": "Configuration de l’agent",
|
|
109
|
+
"contextDocuments": "Documents de contexte",
|
|
110
|
+
"contextIssues": "Tickets de contexte",
|
|
111
|
+
"attach": "Joindre",
|
|
112
|
+
"done": "Terminé",
|
|
113
|
+
"attachDocDisabledConnect": "Connectez d’abord une source de documents (Intégrations)",
|
|
114
|
+
"attachDocDisabledEnable": "Activez d’abord l’intégration de documents",
|
|
115
|
+
"attachIssueDisabledConnect": "Connectez d’abord un suivi de tickets (Intégrations)",
|
|
116
|
+
"attachIssueDisabledEnable": "Activez d’abord l’intégration du suivi de tickets",
|
|
117
|
+
"importsOnAdd": "importé à l’ajout",
|
|
118
|
+
"noDocsHint": "Joignez une exigence, un RFC ou un PRD pour que les agents le voient en implémentant cette tâche.",
|
|
119
|
+
"noIssuesHint": "Joignez un ticket du suivi pour que les agents voient sa description et ses commentaires en implémentant cette tâche.",
|
|
120
|
+
"plannedHint": "La tâche est ajoutée à l’état planifié. Elle ne s’exécutera pas tant que vous n’aurez pas lancé une pipeline dessus ; vous pouvez la modifier jusque-là.",
|
|
121
|
+
"continue": "Continuer",
|
|
122
|
+
"submit": "Ajouter la tâche",
|
|
123
|
+
"addFailedTitle": "Impossible d’ajouter la tâche",
|
|
124
|
+
"linkFailed": "Tâche ajoutée, mais {count} pièce jointe n’a pas pu être liée | Tâche ajoutée, mais {count} pièces jointes n’ont pas pu être liées"
|
|
125
|
+
},
|
|
126
|
+
"recurring": {
|
|
127
|
+
"title": "Ajouter une pipeline récurrente",
|
|
128
|
+
"on": "Pipeline récurrente sur {frame}",
|
|
129
|
+
"name": "Nom",
|
|
130
|
+
"namePlaceholder": "ex. Mises à jour hebdomadaires des dépendances",
|
|
131
|
+
"pipeline": "Pipeline",
|
|
132
|
+
"pickPipeline": "Choisir une pipeline",
|
|
133
|
+
"prompt": "Prompt",
|
|
134
|
+
"promptPlaceholder": "Que doit faire chaque exécution ? Décrivez le travail, le même prompt qu’une tâche normale. Laissez vide pour utiliser la valeur par défaut de la pipeline.",
|
|
135
|
+
"issueTracker": "Suivi de tickets",
|
|
136
|
+
"issueTrackerHint": "La pipeline de dette technique crée un ticket à partir de son analyse avant d’implémenter. Choisissez où (enregistré pour tout l’espace de travail).",
|
|
137
|
+
"githubIssues": "GitHub Issues",
|
|
138
|
+
"jira": "Jira",
|
|
139
|
+
"linear": "Linear",
|
|
140
|
+
"jiraProjectKey": "Clé du projet Jira",
|
|
141
|
+
"jiraProjectKeyPlaceholder": "ex. ENG",
|
|
142
|
+
"linearTeamId": "ID d’équipe Linear",
|
|
143
|
+
"footerHint": "Une seule tâche récurrente est ajoutée dans le service ; chaque exécution remplace la précédente. Son historique d’exécutions est visible dans l’inspecteur.",
|
|
144
|
+
"submit": "Ajouter la pipeline récurrente",
|
|
145
|
+
"addFailedTitle": "Impossible d’ajouter la pipeline récurrente"
|
|
146
|
+
},
|
|
147
|
+
"failure": {
|
|
148
|
+
"containerFailedToStart": "Le conteneur n’a pas pu démarrer",
|
|
149
|
+
"bootstrapFailed": "L’initialisation a échoué",
|
|
150
|
+
"runFailed": "L’exécution a échoué",
|
|
151
|
+
"retryBootstrap": "Relancer l’initialisation",
|
|
152
|
+
"retryRun": "Relancer l’exécution",
|
|
153
|
+
"showDetail": "Afficher le détail",
|
|
154
|
+
"retrying": "Nouvelle tentative…"
|
|
155
|
+
},
|
|
156
|
+
"stop": {
|
|
157
|
+
"label": "Arrêter",
|
|
158
|
+
"bootstrapStopped": "Initialisation arrêtée",
|
|
159
|
+
"runStopped": "Exécution arrêtée",
|
|
160
|
+
"stoppedDescription": "Le conteneur a été tué et l’exécution annulée.",
|
|
161
|
+
"stopFailed": "Échec de l’arrêt"
|
|
162
|
+
},
|
|
163
|
+
"frame": {
|
|
164
|
+
"status": {
|
|
165
|
+
"planned": "Aucune tâche",
|
|
166
|
+
"ready": "En ligne",
|
|
167
|
+
"in_progress": "Actif",
|
|
168
|
+
"blocked": "Nécessite une action",
|
|
169
|
+
"pr_ready": "Actif",
|
|
170
|
+
"done": "En ligne"
|
|
171
|
+
},
|
|
172
|
+
"shared": "Partagé",
|
|
173
|
+
"sharedTitle": "Partagé entre les espaces de travail de cette organisation",
|
|
174
|
+
"bootstrapping": "Initialisation…",
|
|
175
|
+
"bootstrappingRepository": "Initialisation du dépôt…",
|
|
176
|
+
"bootstrapStepsCount": "{completed}/{total} étapes",
|
|
177
|
+
"runFailed": "L’exécution a échoué",
|
|
178
|
+
"mergedOfTotal": "{merged}/{total} fusionnées",
|
|
179
|
+
"noTasksYet": "Pas encore de tâches",
|
|
180
|
+
"prCount": "{count} PR",
|
|
181
|
+
"implemented": "{merged}/{total} implémentées",
|
|
182
|
+
"prReadyCount": "{count} PR prêtes",
|
|
183
|
+
"taskCount": "{count} tâche | {count} tâches",
|
|
184
|
+
"moduleCount": "{count} module | {count} modules",
|
|
185
|
+
"addTaskTitle": "Ajouter une tâche",
|
|
186
|
+
"createTaskFromIssueTitle": "Créer une tâche depuis un ticket",
|
|
187
|
+
"addRecurringTitle": "Ajouter une pipeline récurrente",
|
|
188
|
+
"collapseTitle": "Réduire",
|
|
189
|
+
"dragService": "Faire glisser le service",
|
|
190
|
+
"dragTask": "Faire glisser la tâche",
|
|
191
|
+
"dragToResize": "Glisser pour redimensionner",
|
|
192
|
+
"addFirstTask": "Ajouter la première tâche"
|
|
193
|
+
},
|
|
194
|
+
"decisionBadge": {
|
|
195
|
+
"decisionNeeded": "Décision requise",
|
|
196
|
+
"approvalNeeded": "Approbation requise"
|
|
197
|
+
},
|
|
198
|
+
"task": {
|
|
199
|
+
"recurringPipeline": "Pipeline récurrente",
|
|
200
|
+
"recurringPipelinePaused": "Pipeline récurrente (en pause)",
|
|
201
|
+
"dragToConnect": "Faites glisser sur une autre tâche pour la rendre dépendante de celle-ci",
|
|
202
|
+
"failed": "Échouée",
|
|
203
|
+
"decisionNeeded": "Décision requise",
|
|
204
|
+
"approvalNeeded": "Approbation requise",
|
|
205
|
+
"resolve": "Résoudre",
|
|
206
|
+
"approve": "Approuver",
|
|
207
|
+
"incorporatingAnswers": "Intégration des réponses…",
|
|
208
|
+
"reReviewing": "Nouvelle revue…",
|
|
209
|
+
"recommending": "Recommandation…",
|
|
210
|
+
"starting": "Démarrage…",
|
|
211
|
+
"start": "Démarrer",
|
|
212
|
+
"blocked": "Bloquée",
|
|
213
|
+
"startPipeline": "Démarrer {name}",
|
|
214
|
+
"pipelineFallback": "pipeline",
|
|
215
|
+
"waitingOn": "En attente de : {deps}",
|
|
216
|
+
"blockedByDependenciesTitle": "Bloquée par des dépendances",
|
|
217
|
+
"noPipelineTitle": "Aucune pipeline définie",
|
|
218
|
+
"noPipelineBody": "Créez-en une dans le constructeur d’abord.",
|
|
219
|
+
"pr": "PR",
|
|
220
|
+
"prNumber": "PR n° {number}",
|
|
221
|
+
"openPrOnGithub": "Ouvrir {pr} sur GitHub",
|
|
222
|
+
"review": "Revoir",
|
|
223
|
+
"merge": "Fusionner",
|
|
224
|
+
"implemented": "implémentée",
|
|
225
|
+
"module": "Module : {name}",
|
|
226
|
+
"buildSteps": "Étapes de build",
|
|
227
|
+
"reviewAndApprove": "Revoir et approuver",
|
|
228
|
+
"clickToViewStep": "Cliquez pour voir les détails et la sortie de l’étape"
|
|
229
|
+
},
|
|
230
|
+
"epic": {
|
|
231
|
+
"label": "Épopée",
|
|
232
|
+
"activeCount": "{count} actives",
|
|
233
|
+
"noTasksYet": "Pas encore de tâches"
|
|
42
234
|
}
|
|
43
235
|
},
|
|
44
236
|
"errors": {
|
|
@@ -116,5 +308,407 @@
|
|
|
116
308
|
"step3": "Copiez tout le contenu de auth.json, collez-le ci-dessous et choisissez un mot de passe personnel pour le protéger."
|
|
117
309
|
}
|
|
118
310
|
}
|
|
311
|
+
},
|
|
312
|
+
"inspector": {
|
|
313
|
+
"container": {
|
|
314
|
+
"modules": "Modules ({count})",
|
|
315
|
+
"taskCount": "{count} tâche | {count} tâches",
|
|
316
|
+
"allTasks": "Toutes les tâches ({count})",
|
|
317
|
+
"tasks": "Tâches ({count})",
|
|
318
|
+
"addTask": "Ajouter une tâche",
|
|
319
|
+
"noTasks": "Aucune tâche pour le moment. Ajoutez-en une pour commencer.",
|
|
320
|
+
"servicesHint": "Les services sont permanents et ne se terminent pas. Le travail se fait dans leurs tâches et modules."
|
|
321
|
+
},
|
|
322
|
+
"epicChildren": {
|
|
323
|
+
"title": "Tâches de l'epic",
|
|
324
|
+
"doneCount": "{done}/{total} terminées",
|
|
325
|
+
"empty": "Aucune tâche n'appartient encore à cet epic. Importez les enfants d'un epic, ou définissez l'epic d'une tâche.",
|
|
326
|
+
"unassigned": "Non assigné"
|
|
327
|
+
},
|
|
328
|
+
"recurring": {
|
|
329
|
+
"title": "Pipeline récurrent",
|
|
330
|
+
"active": "Actif",
|
|
331
|
+
"paused": "En pause",
|
|
332
|
+
"intervalDays": "{count}j",
|
|
333
|
+
"intervalHours": "{count}h",
|
|
334
|
+
"anyDay": "n'importe quel jour",
|
|
335
|
+
"cadence": "Tous les {every} · {days}{window} · {timezone}",
|
|
336
|
+
"weekdays": {
|
|
337
|
+
"sun": "Dim",
|
|
338
|
+
"mon": "Lun",
|
|
339
|
+
"tue": "Mar",
|
|
340
|
+
"wed": "Mer",
|
|
341
|
+
"thu": "Jeu",
|
|
342
|
+
"fri": "Ven",
|
|
343
|
+
"sat": "Sam"
|
|
344
|
+
},
|
|
345
|
+
"nextRun": "Prochaine exécution : {time}",
|
|
346
|
+
"runNow": "Exécuter maintenant",
|
|
347
|
+
"pause": "Mettre en pause",
|
|
348
|
+
"resume": "Reprendre",
|
|
349
|
+
"editCadence": "Modifier la cadence",
|
|
350
|
+
"recentRuns": "Exécutions récentes",
|
|
351
|
+
"runStatus": {
|
|
352
|
+
"running": "En cours",
|
|
353
|
+
"done": "Terminé",
|
|
354
|
+
"failed": "Échoué",
|
|
355
|
+
"skipped": "Ignoré"
|
|
356
|
+
},
|
|
357
|
+
"updateFailed": "Impossible de mettre à jour la planification",
|
|
358
|
+
"runNowFailed": "Impossible d'exécuter maintenant"
|
|
359
|
+
},
|
|
360
|
+
"fragments": {
|
|
361
|
+
"serviceTitle": "Bonnes pratiques du service",
|
|
362
|
+
"serviceEmpty": "Aucune. Les agents conscients du code sur ce service suivent leurs consignes par défaut."
|
|
363
|
+
},
|
|
364
|
+
"releaseHealth": {
|
|
365
|
+
"title": "Santé post-déploiement",
|
|
366
|
+
"clear": "Effacer",
|
|
367
|
+
"connectPrompt": "Connectez une intégration d'observabilité pour surveiller ce service après les déploiements.",
|
|
368
|
+
"connectFirst": "Connectez d'abord une intégration d'observabilité",
|
|
369
|
+
"connect": "Connecter",
|
|
370
|
+
"hint": "Les monitors et SLO que la gate surveille après le déploiement de ce service. Séparez les ids par des virgules.",
|
|
371
|
+
"monitorIds": "Ids de monitors",
|
|
372
|
+
"sloIds": "Ids de SLO",
|
|
373
|
+
"envTag": "Tag d'environnement (facultatif)",
|
|
374
|
+
"saveMonitoring": "Enregistrer la surveillance",
|
|
375
|
+
"savedToast": "Surveillance enregistrée",
|
|
376
|
+
"saveFailed": "Impossible d'enregistrer le mappage",
|
|
377
|
+
"clearFailed": "Impossible d'effacer le mappage"
|
|
378
|
+
},
|
|
379
|
+
"testConfig": {
|
|
380
|
+
"title": "Infrastructure de test",
|
|
381
|
+
"defaultEnv": "Environnement de test par défaut",
|
|
382
|
+
"defaultEnvHint": "Celui avec lequel les tâches par défaut de ce service sont créées. Chaque tâche peut le remplacer dans ses paramètres d'agent.",
|
|
383
|
+
"env": {
|
|
384
|
+
"ephemeral": "Environnement éphémère",
|
|
385
|
+
"ephemeralHint": "les tests s'exécutent sur un environnement provisionné",
|
|
386
|
+
"local": "Local (docker-compose)",
|
|
387
|
+
"localHint": "le Testeur met en place les dépendances localement"
|
|
388
|
+
},
|
|
389
|
+
"composePath": "Chemin docker-compose",
|
|
390
|
+
"browseRepo": "Parcourir le dépôt pour trouver le fichier compose",
|
|
391
|
+
"composeHint": "Utilisé par le Testeur pour mettre en place les dépendances du service localement.",
|
|
392
|
+
"selectComposeTitle": "Sélectionner le fichier docker-compose",
|
|
393
|
+
"selectComposeHint": "Choisissez le fichier compose dans le dépôt. Son chemin est stocké relativement à la racine du dépôt.",
|
|
394
|
+
"selected": "Sélectionné : {path}",
|
|
395
|
+
"noFileSelected": "Aucun fichier sélectionné.",
|
|
396
|
+
"useThisFile": "Utiliser ce fichier",
|
|
397
|
+
"noInfra": "Aucune dépendance d'infrastructure (le Testeur ne met rien en place)",
|
|
398
|
+
"missingInfra": "Définissez un chemin docker-compose ou activez l'absence de dépendances d'infrastructure, sinon un pipeline avec un Testeur ne démarrera pas.",
|
|
399
|
+
"provisioningTitle": "Provisionnement de l'environnement éphémère",
|
|
400
|
+
"provisioningHint": "Une indication pour provisionner l'environnement de test éphémère de ce service : quel fournisseur cloud cibler et quelle taille d'instance demander. Ignoré pour les tests locaux (docker-compose).",
|
|
401
|
+
"cloudProvider": "Fournisseur cloud",
|
|
402
|
+
"instanceSize": "Taille d'instance",
|
|
403
|
+
"providers": {
|
|
404
|
+
"docker": "Docker (local)",
|
|
405
|
+
"custom": "Personnalisé"
|
|
406
|
+
},
|
|
407
|
+
"sizes": {
|
|
408
|
+
"small": "Petite",
|
|
409
|
+
"medium": "Moyenne",
|
|
410
|
+
"large": "Grande",
|
|
411
|
+
"xlarge": "Très grande"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"agentConfig": {
|
|
415
|
+
"title": "Configuration de l'agent",
|
|
416
|
+
"inherited": "hérité du service",
|
|
417
|
+
"frozen": "Figé : l'agent a démarré"
|
|
418
|
+
},
|
|
419
|
+
"dependencies": {
|
|
420
|
+
"title": "Dépend de",
|
|
421
|
+
"merged": "Fusionné",
|
|
422
|
+
"notMerged": "Pas encore fusionné",
|
|
423
|
+
"empty": "Aucune dépendance. Peut s'exécuter à tout moment.",
|
|
424
|
+
"blocked": "Bloqué jusqu'à la fusion des dépendances."
|
|
425
|
+
},
|
|
426
|
+
"estimate": {
|
|
427
|
+
"title": "Estimation",
|
|
428
|
+
"complexity": "Complexité",
|
|
429
|
+
"risk": "Risque",
|
|
430
|
+
"impact": "Impact"
|
|
431
|
+
},
|
|
432
|
+
"execution": {
|
|
433
|
+
"stage": {
|
|
434
|
+
"incorporating": "Intégration en cours…",
|
|
435
|
+
"reviewing": "Nouvelle revue en cours…",
|
|
436
|
+
"recommending": "Recommandation en cours…"
|
|
437
|
+
},
|
|
438
|
+
"prNumber": "PR n° {number}",
|
|
439
|
+
"pullRequest": "Pull request",
|
|
440
|
+
"stepState": {
|
|
441
|
+
"pending": "En attente",
|
|
442
|
+
"working": "En cours",
|
|
443
|
+
"waiting_decision": "Décision requise",
|
|
444
|
+
"done": "Terminé"
|
|
445
|
+
},
|
|
446
|
+
"failed": "Échoué",
|
|
447
|
+
"needsDecision": "Décision requise",
|
|
448
|
+
"needsApproval": "Approbation requise",
|
|
449
|
+
"spinningUp": "Démarrage…",
|
|
450
|
+
"stop": "Arrêter",
|
|
451
|
+
"stopTooltip": "Arrêter l'exécution mais la conserver (lisible et relançable)",
|
|
452
|
+
"reset": "Réinitialiser",
|
|
453
|
+
"resetTooltip": "Abandonner cette exécution et réinitialiser la tâche à planifiée",
|
|
454
|
+
"viewDetailsOutput": "Voir les détails et lire la sortie",
|
|
455
|
+
"viewDetails": "Voir les détails de l'étape",
|
|
456
|
+
"companion": "Compagnon",
|
|
457
|
+
"companionTooltip": "Compagnon d'une étape de production",
|
|
458
|
+
"subtasksProgress": "{completed} sur {total} sous-tâches terminées, {inProgress} en cours",
|
|
459
|
+
"subtasksDone": "{completed} sur {total} sous-tâches terminées",
|
|
460
|
+
"resolve": "Résoudre",
|
|
461
|
+
"decide": "Décider",
|
|
462
|
+
"review": "Réviser",
|
|
463
|
+
"approve": "Approuver",
|
|
464
|
+
"fragmentsTooltip": "Fragments de bonnes pratiques intégrés à cette étape : {fragments}",
|
|
465
|
+
"standardsApplied": "{count} standard appliqué | {count} standards appliqués",
|
|
466
|
+
"companionOf": "{label} (compagnon)",
|
|
467
|
+
"merged": "Fusionné",
|
|
468
|
+
"open": "Ouvert",
|
|
469
|
+
"mergePr": "Fusionner la PR"
|
|
470
|
+
},
|
|
471
|
+
"structure": {
|
|
472
|
+
"module": "Module",
|
|
473
|
+
"modulePlaceholder": "ex. Sessions (créé lors de l'implémentation s'il est nouveau)",
|
|
474
|
+
"bestPractices": "Bonnes pratiques",
|
|
475
|
+
"bestPracticesEmpty": "Aucune. Les agents suivent leurs consignes par défaut."
|
|
476
|
+
},
|
|
477
|
+
"runSettings": {
|
|
478
|
+
"unassigned": "Non assigné",
|
|
479
|
+
"workspaceDefault": "Valeur par défaut de l'espace de travail",
|
|
480
|
+
"workspaceDefaultParen": "(valeur par défaut de l'espace de travail)",
|
|
481
|
+
"defaultPresetThresholds": "Par défaut ({name}) : {thresholds}",
|
|
482
|
+
"defaultPreset": "Par défaut ({name})",
|
|
483
|
+
"noDefault": "Aucune valeur par défaut",
|
|
484
|
+
"inheritWorkspace": "Hériter de l'espace de travail",
|
|
485
|
+
"on": "Activé",
|
|
486
|
+
"off": "Désactivé",
|
|
487
|
+
"inheritOn": "Hériter (activé)",
|
|
488
|
+
"inheritOff": "Hériter (désactivé)",
|
|
489
|
+
"technical": {
|
|
490
|
+
"unset": "Non défini (détection automatique)",
|
|
491
|
+
"technical": "Technique",
|
|
492
|
+
"business": "Métier"
|
|
493
|
+
},
|
|
494
|
+
"pipeline": "Pipeline",
|
|
495
|
+
"pipelineEmpty": "Aucune valeur par défaut. Choisissez un pipeline lorsque vous exécutez cette tâche.",
|
|
496
|
+
"mergePolicy": "Politique de fusion",
|
|
497
|
+
"mergePresetDetail": "{name} : fusion automatique lorsque la complexité ≤ {complexity}, le risque ≤ {risk}, l'impact ≤ {impact} ; jusqu'à {attempts} tentatives de correction CI.",
|
|
498
|
+
"mergePresetEmpty": "Aucun preset configuré. Le fusionneur déclenche une notification de revue pour chaque PR.",
|
|
499
|
+
"modelPreset": "Preset de modèle",
|
|
500
|
+
"modelPresetBase": "base {model}",
|
|
501
|
+
"modelPresetOverrides": ", {count} remplacement | , {count} remplacements",
|
|
502
|
+
"modelPresetEmpty": "Aucun preset configuré. Les agents s'exécutent avec le routage par défaut du déploiement.",
|
|
503
|
+
"unavailableModels": "Non disponible avec la configuration actuelle : {models}. Cette tâche échouerait à ces étapes.",
|
|
504
|
+
"editPresets": "Modifier les presets",
|
|
505
|
+
"configureVendors": "Configurer les fournisseurs",
|
|
506
|
+
"modelPresetChangeHint": "Ce changement n'affecte que les étapes qui n'ont pas encore démarré.",
|
|
507
|
+
"taskKind": "Type de tâche",
|
|
508
|
+
"technicalHint": {
|
|
509
|
+
"technical": "Technique : l'implémenteur traite la définition de la tâche comme primaire et la spec comme référence de régression ; le rédacteur de spec peut ne produire aucune spec métier.",
|
|
510
|
+
"business": "Métier : la spécification mène, comme d'habitude.",
|
|
511
|
+
"unset": "Détection automatique : déduit de la phase de spec. Définissez-le explicitement pour le remplacer."
|
|
512
|
+
},
|
|
513
|
+
"issueWriteback": "Réécriture d'issue",
|
|
514
|
+
"commentOnPrOpen": "Commenter à l'ouverture de la PR",
|
|
515
|
+
"closeOnMerge": "Fermer à la fusion",
|
|
516
|
+
"writebackHint": "Réécrit dans l'issue de tracker liée à cette tâche. Remplace la valeur par défaut de l'espace de travail.",
|
|
517
|
+
"responsibleProduct": "Produit responsable",
|
|
518
|
+
"responsibleEmpty": "Non assigné. Définissez un responsable produit pour le notifier lorsque la revue d'exigences signale cette tâche.",
|
|
519
|
+
"autoStartDependents": "Démarrer automatiquement les dépendants",
|
|
520
|
+
"autoStartHint": "Lorsque cette tâche est fusionnée, démarrer automatiquement les tâches qui en dépendent (une fois que leurs autres dépendances sont également terminées)."
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"panels": {
|
|
524
|
+
"decision": {
|
|
525
|
+
"title": "Décision requise",
|
|
526
|
+
"agentOnBlock": "{agent} sur {block}",
|
|
527
|
+
"visualizationHint": "Ceci est une visualisation. Tout choix reprend simplement le pipeline."
|
|
528
|
+
},
|
|
529
|
+
"stepRestart": {
|
|
530
|
+
"restartFromStep": "Redémarrer le pipeline à partir de cette étape",
|
|
531
|
+
"restartFromHere": "Redémarrer à partir d'ici"
|
|
532
|
+
},
|
|
533
|
+
"structuredResult": {
|
|
534
|
+
"fallbackTitle": "Résultat de l'agent",
|
|
535
|
+
"titleWithBlock": "{label} : {title}",
|
|
536
|
+
"fallbackDescription": "Sortie structurée de l'agent",
|
|
537
|
+
"structuredOutput": "Sortie structurée",
|
|
538
|
+
"noResult": "Pas encore de résultat.",
|
|
539
|
+
"noResultHint": "La sortie structurée apparaît une fois que cet agent a terminé. Pendant son exécution, l'étape affiche sa progression en direct sur le tableau."
|
|
540
|
+
},
|
|
541
|
+
"testReport": {
|
|
542
|
+
"title": "Rapport de test",
|
|
543
|
+
"greenlit": "Validé",
|
|
544
|
+
"needsFixes": "Corrections nécessaires",
|
|
545
|
+
"fixAttempts": "{count}/{max} tentatives de correction",
|
|
546
|
+
"fixing": "· correction…",
|
|
547
|
+
"tested": "Testé",
|
|
548
|
+
"outcomes": "Résultats",
|
|
549
|
+
"concerns": "Préoccupations"
|
|
550
|
+
},
|
|
551
|
+
"stepMeta": {
|
|
552
|
+
"stateLabel": "État",
|
|
553
|
+
"duration": "Durée",
|
|
554
|
+
"elapsed": "écoulé",
|
|
555
|
+
"step": "Étape",
|
|
556
|
+
"stepOf": "{number} sur {total}",
|
|
557
|
+
"started": "Démarré",
|
|
558
|
+
"finished": "Terminé",
|
|
559
|
+
"model": "Modèle",
|
|
560
|
+
"notRecorded": "Non enregistré",
|
|
561
|
+
"run": "Exécution",
|
|
562
|
+
"clickToCopy": "{id} (cliquer pour copier)",
|
|
563
|
+
"spinningUpContainer": "Démarrage du conteneur…",
|
|
564
|
+
"subtasks": "Sous-tâches · {completed}/{total}",
|
|
565
|
+
"standardsApplied": "Standards appliqués",
|
|
566
|
+
"decision": "Décision",
|
|
567
|
+
"awaitingChoice": "En attente d'un choix humain",
|
|
568
|
+
"approvalGate": "Gate d'approbation",
|
|
569
|
+
"companionReview": "Revue du compagnon",
|
|
570
|
+
"correctionIterations": "{count} itération de correction. | {count} itérations de correction.",
|
|
571
|
+
"state": {
|
|
572
|
+
"pending": "En attente",
|
|
573
|
+
"working": "En cours",
|
|
574
|
+
"waiting_decision": "Saisie requise",
|
|
575
|
+
"done": "Terminé",
|
|
576
|
+
"failed": "Échoué"
|
|
577
|
+
},
|
|
578
|
+
"approvalStatus": {
|
|
579
|
+
"pending": "En attente",
|
|
580
|
+
"approved": "Approuvé",
|
|
581
|
+
"changes_requested": "Modifications demandées",
|
|
582
|
+
"rejected": "Rejeté"
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
"stepDetail": {
|
|
586
|
+
"contents": "Contenu",
|
|
587
|
+
"details": "Détails",
|
|
588
|
+
"approvalRequired": "Approbation requise",
|
|
589
|
+
"decisionRequired": "Décision requise",
|
|
590
|
+
"expandAll": "Développer toutes les sections",
|
|
591
|
+
"collapseAll": "Réduire toutes les sections",
|
|
592
|
+
"copyRawOutput": "Copier la sortie brute",
|
|
593
|
+
"closeEsc": "Fermer (Esc)",
|
|
594
|
+
"companionCapHeading": "{agent} a atteint sa limite de {attempts} tentatives de retravail, toujours en dessous du seuil {threshold}.",
|
|
595
|
+
"companionCapDetail": "Effectuer un tour de retravail automatique supplémentaire, passer à l'étape suivante en acceptant la sortie actuelle, ou arrêter et réinitialiser la tâche pour modifier les entrées et la resoumettre.",
|
|
596
|
+
"infraAttempts": "Tentatives d'infrastructure",
|
|
597
|
+
"hideInfraAttempts": "Masquer les tentatives d'infrastructure",
|
|
598
|
+
"editingConclusions": "Modification des conclusions",
|
|
599
|
+
"editConclusionsPlaceholder": "Modifiez les conclusions de l'agent ; vos modifications sont enregistrées lorsque vous approuvez…",
|
|
600
|
+
"noProseOutput": "Cet agent n'a produit aucune sortie en texte libre.",
|
|
601
|
+
"approveWithCorrections": "Approuver avec corrections",
|
|
602
|
+
"reviewAndApprove": "Réviser et approuver",
|
|
603
|
+
"editHint": "Modifiez les conclusions à gauche ; vos modifications sont enregistrées lorsque vous approuvez.",
|
|
604
|
+
"reviewHint": "Cliquez sur n'importe quel bloc de la sortie pour le commenter, ou laissez un retour global ci-dessous.",
|
|
605
|
+
"editingNotice": "Vous modifiez les conclusions directement. Les modifications manuelles ne peuvent pas être combinées avec des commentaires par bloc. Approuvez pour les enregistrer, ou annulez pour revenir à la revue.",
|
|
606
|
+
"commentingOn": "Commentaire sur",
|
|
607
|
+
"commentPlaceholder": "Laissez un commentaire sur ce bloc…",
|
|
608
|
+
"addComment": "Ajouter un commentaire",
|
|
609
|
+
"commentN": "Commentaire {number}",
|
|
610
|
+
"removeComment": "Supprimer le commentaire",
|
|
611
|
+
"overallFeedback": "Retour global / motif de rejet",
|
|
612
|
+
"overallFeedbackPlaceholder": "Décrivez les modifications que l'agent devrait apporter (facultatif si vous avez laissé des commentaires par bloc)…",
|
|
613
|
+
"approveWithEdits": "Approuver avec ces modifications",
|
|
614
|
+
"cancelEdits": "Annuler les modifications",
|
|
615
|
+
"approveAndProceed": "Approuver et continuer",
|
|
616
|
+
"rejectConfirmPrompt": "Rejeter cette proposition et arrêter complètement l'exécution ?",
|
|
617
|
+
"confirmReject": "Confirmer le rejet",
|
|
618
|
+
"requestChanges": "Demander des modifications",
|
|
619
|
+
"reject": "Rejeter",
|
|
620
|
+
"requestChangesHint": "Demander des modifications relance cette étape avec votre retour et vos commentaires. Rejeter arrête complètement l'exécution."
|
|
621
|
+
},
|
|
622
|
+
"inspector": {
|
|
623
|
+
"frameStatus": {
|
|
624
|
+
"planned": "Aucune tâche",
|
|
625
|
+
"ready": "En ligne",
|
|
626
|
+
"in_progress": "Actif",
|
|
627
|
+
"blocked": "Attention requise",
|
|
628
|
+
"pr_ready": "Actif",
|
|
629
|
+
"done": "En ligne"
|
|
630
|
+
},
|
|
631
|
+
"deleteRecurringPipeline": "Supprimer le pipeline récurrent",
|
|
632
|
+
"deleteTask": "Supprimer la tâche",
|
|
633
|
+
"deleteModule": "Supprimer le module",
|
|
634
|
+
"deleteService": "Supprimer le service",
|
|
635
|
+
"titlePlaceholder": "Titre…",
|
|
636
|
+
"reworkedRequirements": "Exigences retravaillées",
|
|
637
|
+
"agentStepsUseDocument": "Les étapes d'agent utilisent ce document.",
|
|
638
|
+
"open": "Ouvrir",
|
|
639
|
+
"originalDescriptionFrozen": "Description originale (figée)",
|
|
640
|
+
"noDescription": "Aucune description",
|
|
641
|
+
"describeBlock": "Décrivez ce bloc…",
|
|
642
|
+
"taskStartedLocked": "Cette tâche a démarré. Ses détails sont verrouillés.",
|
|
643
|
+
"lastIncorporatedRequirements": "Dernières exigences intégrées",
|
|
644
|
+
"priorDocHint": "Issu de la revue précédente. Utilisez-le comme base : modifiez la description ci-dessus et resoumettez.",
|
|
645
|
+
"bootstrapping": "Initialisation…",
|
|
646
|
+
"importIssue": "Importer une issue",
|
|
647
|
+
"connectTracker": "Connecter un tracker",
|
|
648
|
+
"spawnFromDocument": "Créer à partir d'un document",
|
|
649
|
+
"viewRequirements": "Voir les exigences",
|
|
650
|
+
"reRun": "Relancer",
|
|
651
|
+
"run": "Exécuter",
|
|
652
|
+
"focus": "Cibler"
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
"observability": {
|
|
656
|
+
"modelActivity": "Activité du modèle",
|
|
657
|
+
"viewAllCalls": "Voir tous les appels →",
|
|
658
|
+
"providedContext": "Contexte fourni",
|
|
659
|
+
"exportJson": "Exporter en JSON",
|
|
660
|
+
"exportHint": "Télécharger un export JSON de cette exécution adapté aux LLM",
|
|
661
|
+
"closeEsc": "Fermer (Esc)",
|
|
662
|
+
"loadingActivity": "Chargement de l'activité du modèle…",
|
|
663
|
+
"loadingContext": "Chargement du contexte fourni…",
|
|
664
|
+
"noCalls": "Aucun appel de modèle enregistré pour cette exécution.",
|
|
665
|
+
"noContext": "Aucun contexte d'agent stocké pour cette exécution. Il est capturé à chaque dispatch lorsque l'espace de travail a activé 'Stocker le contexte complet de l'agent'.",
|
|
666
|
+
"summary": {
|
|
667
|
+
"calls": "Appels",
|
|
668
|
+
"tokensInOut": "Tokens (entrée / sortie)",
|
|
669
|
+
"transportOverhead": "Surcoût de transport",
|
|
670
|
+
"modelExecution": "Exécution du modèle",
|
|
671
|
+
"truncated": "{count} tronqué | {count} tronqués"
|
|
672
|
+
},
|
|
673
|
+
"metricsBar": {
|
|
674
|
+
"calls": "{count} appel | {count} appels",
|
|
675
|
+
"promptCompletionTokens": "Tokens de prompt / complétion",
|
|
676
|
+
"cachedTokens": "({tokens} en cache)",
|
|
677
|
+
"cachedTokensHint": "Tokens de prompt servis depuis le cache du fournisseur",
|
|
678
|
+
"errors": "{count} erreur | {count} erreurs",
|
|
679
|
+
"warnings": "{count} avertissement | {count} avertissements",
|
|
680
|
+
"outputLimit": "Limite de sortie",
|
|
681
|
+
"truncatedCalls": "{count} appel tronqué à la limite | {count} appels tronqués à la limite",
|
|
682
|
+
"transportVsExecution": "Transport vs exécution",
|
|
683
|
+
"transportOverhead": "Surcoût de transport / proxy",
|
|
684
|
+
"modelExecution": "Exécution du modèle"
|
|
685
|
+
},
|
|
686
|
+
"call": {
|
|
687
|
+
"tokensTitle": "{prompt} tokens de prompt / {completion} de complétion",
|
|
688
|
+
"outputUsedVsLimit": "Sortie utilisée vs limite",
|
|
689
|
+
"transportVsExecution": "Surcoût de transport / exécution du modèle",
|
|
690
|
+
"error": "erreur",
|
|
691
|
+
"ok": "ok",
|
|
692
|
+
"messages": "{count} messages",
|
|
693
|
+
"tools": "{count} outils",
|
|
694
|
+
"streamed": "en streaming",
|
|
695
|
+
"buffered": "en mémoire tampon",
|
|
696
|
+
"maxTokens": "max_tokens {value}",
|
|
697
|
+
"promptCached": "{cached}/{prompt} prompt en cache",
|
|
698
|
+
"total": "total {duration}",
|
|
699
|
+
"prompt": "Prompt",
|
|
700
|
+
"promptPrefixOmitted": "(nouveaux messages uniquement : {count} antérieurs omis)",
|
|
701
|
+
"response": "Réponse",
|
|
702
|
+
"reasoning": "Raisonnement"
|
|
703
|
+
},
|
|
704
|
+
"context": {
|
|
705
|
+
"injectedFiles": "Fichiers de contexte injectés",
|
|
706
|
+
"bestPracticeFragments": "Fragments de bonnes pratiques",
|
|
707
|
+
"filesCount": "{count} fichiers",
|
|
708
|
+
"fragmentsCount": "{count} fragments",
|
|
709
|
+
"systemPrompt": "Prompt système",
|
|
710
|
+
"userPrompt": "Prompt utilisateur",
|
|
711
|
+
"details": "Détails"
|
|
712
|
+
}
|
|
119
713
|
}
|
|
120
714
|
}
|