specrails-desktop 2.49.2 → 2.50.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 (73) hide show
  1. package/client/dist/assets/{ActivityFeedPage-CyOxof-U.js → ActivityFeedPage-tWhhCACX.js} +1 -1
  2. package/client/dist/assets/{AgentBrowserCapture-DBGaKW4u.js → AgentBrowserCapture-CZeFRg-Y.js} +1 -1
  3. package/client/dist/assets/{AgentModeAnalyticsPane-WZpPaNMa.js → AgentModeAnalyticsPane-u4ux0xLJ.js} +2 -2
  4. package/client/dist/assets/{AgentModeCodePane-nHYnJUdP.js → AgentModeCodePane-wn1RDZ4y.js} +2 -2
  5. package/client/dist/assets/{AgentModeJobsPane-DkhcBtoZ.js → AgentModeJobsPane-CXLikWKG.js} +1 -1
  6. package/client/dist/assets/{AgentsPage-CX90q-nY.js → AgentsPage-zjVv7i9S.js} +1 -1
  7. package/client/dist/assets/{AnalyticsPage-DisrtBr7.js → AnalyticsPage-Bf2kyeeR.js} +1 -1
  8. package/client/dist/assets/{CodePage-ixqxftCT.js → CodePage-Db7jdyKI.js} +1 -1
  9. package/client/dist/assets/{DesktopAnalyticsPage-BFB-Pn-D.js → DesktopAnalyticsPage-CnF_SL4h.js} +1 -1
  10. package/client/dist/assets/{DocsDialog-BwiFrwEJ.js → DocsDialog-DJ0ATgNN.js} +1 -1
  11. package/client/dist/assets/{DocsPage-ByS0ZCco.js → DocsPage-I5217wRs.js} +1 -1
  12. package/client/dist/assets/{ExportDropdown-IPutNYvD.js → ExportDropdown-D1JqZXMo.js} +1 -1
  13. package/client/dist/assets/{InteractiveJobComposer-BEok7ntM.js → InteractiveJobComposer-Ccyfbaj1.js} +1 -1
  14. package/client/dist/assets/{JobDetailModal-BnO_V8KR.js → JobDetailModal-BV0oXeR1.js} +1 -1
  15. package/client/dist/assets/{JobDetailPage-BnS8aHKD.js → JobDetailPage-B6muzK7f.js} +1 -1
  16. package/client/dist/assets/{JobsPage-BC0mq-MF.js → JobsPage-z7YjsSNs.js} +1 -1
  17. package/client/dist/assets/{LoopBuilderPage-WmqNpDw2.js → LoopBuilderPage-cu6qiv41.js} +1 -1
  18. package/client/dist/assets/{LoopPreviewModal-BY5dDezY.js → LoopPreviewModal-Cz9CT647.js} +1 -1
  19. package/client/dist/assets/{LoopsPage-BcegqJyY.js → LoopsPage-C1PYYWno.js} +1 -1
  20. package/client/dist/assets/{MinimizedChatsContext-CX1i2kQ8.js → MinimizedChatsContext-D-wIfWD7.js} +1 -1
  21. package/client/dist/assets/{PluginsPage-BhG3qPda.js → PluginsPage-Bib-5fVd.js} +1 -1
  22. package/client/dist/assets/{ProjectSettingsDialog-JQdLwCy2.js → ProjectSettingsDialog-K5_ufJmm.js} +1 -1
  23. package/client/dist/assets/{RepositoryDeliveries-DqmlG0Zs.js → RepositoryDeliveries-BVROW9bi.js} +1 -1
  24. package/client/dist/assets/{RepositoryScopeSelector-DG8KKPrm.js → RepositoryScopeSelector-Qq2dUoCl.js} +1 -1
  25. package/client/dist/assets/ReviewPacketPage-tvI4dFpw.js +4 -0
  26. package/client/dist/assets/{TemplatePreviewModal-1AVv-hu4.js → TemplatePreviewModal-CV3fxeb1.js} +1 -1
  27. package/client/dist/assets/{TicketDetailModalContext-D2MEhRwJ.js → TicketDetailModalContext-BSpIHNsJ.js} +1 -1
  28. package/client/dist/assets/{Trans-BLljsfHR.js → Trans-BZWwRo1V.js} +1 -1
  29. package/client/dist/assets/{agent-D3jkMipn.js → agent-1Sh10wFp.js} +1 -1
  30. package/client/dist/assets/{agent-BII69Nc0.js → agent-BScqU3oM.js} +1 -1
  31. package/client/dist/assets/{agent-B76BhAyE.js → agent-Crfgp_yl.js} +1 -1
  32. package/client/dist/assets/{agent-CYFBDwFD.js → agent-CvaTFLGI.js} +1 -1
  33. package/client/dist/assets/{agent-CVeMLIu4.js → agent-DH5vUrkg.js} +1 -1
  34. package/client/dist/assets/{agent-BIO4q6b0.js → agent-DUuWo07e.js} +1 -1
  35. package/client/dist/assets/{agent-DSrflYFL.js → agent-MlnQFv-P.js} +1 -1
  36. package/client/dist/assets/{agent-ButS6kwl.js → agent-uG7w5crQ.js} +1 -1
  37. package/client/dist/assets/{formatDistanceToNow-CbQZkD8M.js → formatDistanceToNow-BHeWIeTB.js} +1 -1
  38. package/client/dist/assets/{getTimezoneOffsetInMilliseconds-pBVK3rJC.js → getTimezoneOffsetInMilliseconds-DTT9YgCB.js} +1 -1
  39. package/client/dist/assets/index-D7f-4Igx.css +2 -0
  40. package/client/dist/assets/{index-DEqG4WdV.js → index-DnVIArMT.js} +34 -34
  41. package/client/dist/assets/{jira-api-f-sYCIuX.js → jira-api-CbYLdWCi.js} +1 -1
  42. package/client/dist/assets/packet-B8gXENJV.js +1 -0
  43. package/client/dist/assets/{packet-DF-iwqqY.js → packet-BTfIuMol.js} +1 -1
  44. package/client/dist/assets/{packet-BsRimSfZ.js → packet-CFjk65pR.js} +1 -1
  45. package/client/dist/assets/{packet-C8qzvgrZ.js → packet-CYoLyZf9.js} +1 -1
  46. package/client/dist/assets/{packet-r7J14m89.js → packet-D-v2OxI7.js} +1 -1
  47. package/client/dist/assets/{packet-DQ_GnT2b.js → packet-Dg7Ij21z.js} +1 -1
  48. package/client/dist/assets/{packet-C0pcMd6x.js → packet-tLvSufRp.js} +1 -1
  49. package/client/dist/assets/{packet-Nb8BLI5h.js → packet-zdb1UItU.js} +1 -1
  50. package/client/dist/assets/{project-repositories-DAjJbFhm.js → project-repositories-DC4nyJi7.js} +1 -1
  51. package/client/dist/assets/{spending-DJBbdJyD.js → spending-BT4ahFx2.js} +1 -1
  52. package/client/dist/assets/{useDesktop-BJ8IRBRt.js → useDesktop-DvDdw7oq.js} +1 -1
  53. package/client/dist/assets/{useRuntimeRuns-Ch1KUc7k.js → useRuntimeRuns-C6qGuPG6.js} +1 -1
  54. package/client/dist/assets/{useSharedWebSocket-BN3Lmehi.js → useSharedWebSocket-DkwOZsMN.js} +2 -2
  55. package/client/dist/index.html +17 -17
  56. package/docs/internals/safe-pr-review-flow.md +72 -0
  57. package/package.json +1 -1
  58. package/server/dist/agent-operator-prompt.js +16 -0
  59. package/server/dist/db.js +11 -0
  60. package/server/dist/loop-run-manager.js +4 -1
  61. package/server/dist/mcp/tools/rails.js +24 -0
  62. package/server/dist/multi-repo-delivery.js +4 -0
  63. package/server/dist/pr-follow-up-scope.js +224 -0
  64. package/server/dist/pr-follow-up.js +75 -0
  65. package/server/dist/rail-isolated-launch.js +3 -0
  66. package/server/dist/rail-launch-parser.js +12 -0
  67. package/server/dist/rail-pr-decision.js +20 -3
  68. package/server/dist/rail-pr-store.js +24 -3
  69. package/server/dist/rails-router.js +30 -2
  70. package/server/dist/review-packet.js +41 -0
  71. package/client/dist/assets/ReviewPacketPage-DSSi3x16.js +0 -4
  72. package/client/dist/assets/index-UDzndadF.css +0 -2
  73. package/client/dist/assets/packet-BTRySHoQ.js +0 -1
@@ -1 +1 @@
1
- var e=`Contrôle des missions`,t=`Pilotez Specrails en discutant`,n=`Contrôle des missions`,r=`Demandez à l'agent ce que vous voulez…`,i=`Envoyer`,a=`Arrêter`,o=`Copier`,s={openPreview:`Prévisualiser {{name}}`,openDownload:`Télécharger {{name}}`,previewTitle:`Aperçu de {{name}}`,downloadTitle:`Télécharger le fichier ?`,downloadPrompt:`Ce fichier ne peut pas être prévisualisé ici. Voulez-vous le télécharger ?`,download:`Télécharger`,cancelDownload:`Pas maintenant`,loading:`Préparation du fichier…`,loadFailed:`Impossible de charger la pièce jointe`,loadError:`Impossible de charger la pièce jointe : {{error}}`},c=`Agrandir`,l=`Restaurer`,u=`Réduire`,d=`Fermer`,f=`Nouvelle mission`,p=`Quelle est la mission ?`,m=`Choisissez un projet, puis demandez. Le tableau se met à jour en direct pendant que l'agent travaille.`,h=`Réflexion…`,g=`Connexion…`,_=`Consultation de l'app…`,v={compact:`Compact`,comfortable:`Confortable`,max:`Agrandir`},y={label:`Modèle`,loading:`Chargement des modèles…`,unavailable:`Modèles indisponibles`},b={hint:`Parcours de l'historique — tapez pour modifier, ↑↓ pour naviguer`},x={queued:`En file d’attente`,send:`Envoyer le message`,sendHint:`Ajouté à la file pour le prochain tour. Choisissez « Orienter » sur un message en attente pour l’envoyer sans interrompre le modèle.`,placeholder:`Ajouter un message à la file…`,delivered:`Transmis à l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`,steer:`Orienter`,steerHint:`Envoyer sans interrompre le modèle`,steering:`Envoi à l’agent…`,remove:`Supprimer le message de la file`,more:`Options du message`,edit:`Modifier`,actionConflict:`Ce message est déjà en cours de transmission ou n’est plus dans la file.`,actionFailed:`Impossible de modifier le message en attente. Réessayez.`},S={sent:`Envoyé à l’agent`,received:`Transmis à l’agent`,read:`Lu par l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`},C={editing:`Modification du message en attente {{n}} sur {{m}}`,hint:`↑↓ pour naviguer · Entrée enregistre · Échap annule`,save:`Enregistrer le message en attente`,cancel:`Annuler la modification`,dispatched:`Ce message a déjà été transmis ; votre texte est conservé comme brouillon`,saveFailed:`Impossible d’enregistrer le message en attente`},w={branch:`Branche`,detached:`(détaché)`,dirty:`Modifications non commitées`,switched:`Basculé sur {{branch}}`,switchFailed:`Impossible de changer de branche`,lockedWhileWorking:`Branche verrouillée pendant que l'agent travaille`,searchPlaceholder:`Rechercher des branches…`,noMatches:`Aucune branche ne correspond`,worktrees:`Worktrees`,worktreePathCopied:`Chemin du worktree copié`,copyWorktreePath:`Copier le chemin du worktree`,repository:`Dépôt`,repositoryUnavailable:`Dépôt indisponible`,loadFailed:`État Git indisponible`,notGit:`Dossier de contexte · sans Git`,retry:`Réessayer`},T={label:`Fournisseur`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ pour changer`,observe:{name:`Observer`,desc:`Lecture seule — rien ne change`},edit:{name:`Modifier`,desc:`Créer et modifier (réversible)`},operate:{name:`Opérer`,desc:`Lancer l'IA — c'est payant`},autonomous:{name:`Autonome`,desc:`Supprimer et arrêter — irréversible`},lockedTitle:`Nécessite un niveau supérieur`,lockedBody:`Cette action nécessite le niveau « {{level}} ». Vous êtes sur « {{current}} ».`,raiseHint:`⇧⇥ pour augmenter le niveau, ou demandez autrement.`},D={title:`Confirmer l'action`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Approuver`,cancel:`Annuler`,dontAskAgain:`Ne plus demander durant cette session`,approved:`Approuvé`,cancelled:`Annulé`},O={home:`Accueil`,searchPlaceholder:`Parlez à Specrails…`,searchProjectsPlaceholder:`Rechercher des projets…`,recents:`Récents`,allProjects:`Tous les projets`,searchAll:`Rechercher dans tous les projets`,addProject:`Ajouter un projet…`,homeHint:`Aucun projet sélectionné — opération sur tous les projets.`,askCreateOrSearch:`Aucun projet n'est sélectionné. Voulez-vous créer un nouveau projet ou rechercher dans tous les projets ?`},k={remove:`Retirer {{label}}`,addContextAction:`Ajouter un contexte ou une action`,filtering:`Filtrage de "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Aucun résultat`,noMatchesFor:`Aucun résultat pour "{{query}}"`,mode:{reference:{title:`Référence`,hint:`@ projets, specs, missions`},trace:{title:`Trace`,hint:`# jobs, exécutions, IDs`},action:{title:`Action`,hint:`/ commandes pour ce contexte`}},plus:{reference:`Référence`,referenceHint:`Projets, specs, missions`,trace:`Trace`,traceHint:`Jobs, exécutions, IDs`,action:`Action`,actionHint:`Créer, lancer, inspecter`,fileAttachment:`Pièce jointe`,fileAttachmentHint:`Ajouter docs, images, logs`,browserCapture:`Capture navigateur`,browserCaptureHint:`Capturer une zone de page pour cette mission`},railGroup:`Rails`,railGroupInUse:`Rails en cours d’utilisation`},A={label:`Changer de mission`,untitled:`Nouvelle mission`,new:`Nouvelle mission`,searchPlaceholder:`Rechercher des missions…`,noMatches:`Aucune mission ne correspond`,working:`L'agent travaille`,queuedBadge:`{{n}} en file`,delete:`Supprimer la mission "{{title}}"`,deleteConfirm:`Supprimer ?`,deleteLiveConfirm:`L'agent travaille — supprimer quand même ?`,confirmDelete:`Confirmer la suppression`,cancelDelete:`Garder la mission`,deleteFailed:`Impossible de supprimer la mission`},j={title:`Aucun fournisseur d'IA installé`,body:`L'agent a besoin de Claude, Codex, Gemini ou Kimi sur votre machine. Installez-en un, puis rouvrez l'agent pour discuter.`,placeholder:`Installez un fournisseur d'IA pour utiliser l'agent…`},M={title:`Le MCP Specrails est désactivé`,body:`L'agent a besoin du serveur MCP intégré pour piloter l'app.`,enable:`Activer le MCP Specrails`,enabling:`Activation…`,enabled:`MCP activé`},N={live:`en direct`,queued:`en file`,running:`en cours`,done:`terminé`,failed:`échoué`},P={generic:`Une erreur est survenue. Réessayez.`,busy:`L'agent est occupé. Réessayez dans un instant.`},F={kindAgent:`Mission de l'agent`},I=`Nouvelle mission`,L=`Passer au Contrôle des missions`,R=`Passer au tableau`,z=`Rechercher`,B=`Accueil`,V=`Missions favorites`,H=`Sans titre`,U={title:`Espace de travail`,terminal:`Terminal`,files:`Fichiers`,browser:`Navigateur`,requiresProject:`Sélectionnez un projet pour utiliser cet outil`,resizeCode:`Redimensionner le volet de code`,closeFiles:`Fermer le code`,browserConfirm:`Ajouter à l'agent`,browserSelectStart:`Sélectionner pour ajouter à la mission`,browserCaptured:`Capture ajoutée`,uploadFailed:`Échec du téléversement`,requiresConversation:`Lancez une mission pour utiliser cet outil`,jobs:`Jobs`,closeJobs:`Fermer les jobs`,resizeJobs:`Redimensionner le panneau des jobs`,noJobs:`Aucun job pour l'instant — demandez à l'agent d'en lancer un`,analytics:`Analytique`,closeAnalytics:`Fermer l'analytique`,resizeAnalytics:`Redimensionner le panneau d'analytique`},W=`Joindre un fichier`,G=`Supprimer «\xA0{{title}}\xA0»`,K=`Confirmer la suppression de «\xA0{{title}}\xA0»`,q=`Ajouter «\xA0{{title}}\xA0» aux favorites`,J=`Retirer «\xA0{{title}}\xA0» des favorites`,Y=`confirmer\xA0?`,X=`Ce fournisseur ne lit pas encore les images — joignez plutôt des fichiers texte`,Z={label:`Effort`,minimal:`Minimal`,low:`Faible`,medium:`Moyen`,high:`Élevé`,xhigh:`Très élevé`,max:`Maximum`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Action en cours…","create-pr":"Création de la PR…","publish":"Publication…","discard":"Suppression…","dismiss":"Fermeture du suivi…","poll-merge":"Vérification de la fusion…","reopen":"Réouverture…","merge-local":"Intégration locale…","recover-and-retry":"Création du commit et nouvelle tentative d’envoi du résultat préservé…","acknowledge-no-changes":"Marquage comme terminé…"},"markDone":"Marquer comme terminées","refine":"Affiner","completedNote":"Confirmé — les specs sont passées à Terminé","partialSummary":"{{succeeded}} sur {{total}} terminées ; {{failed}} en échec","unit":{"failed":"échec de l’implémentation","blocked":"livraison bloquée","noChanges":"aucune modification","succeeded":"prête"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Branche de base","openPr":"Ouvrir la PR","existingPr":"PR existante","title":{"no_changes":"Aucune modification nécessaire","partial":"Implémentation partielle","delivery_blocked":"Implémentation terminée — la livraison requiert votre attention","update_failed":"Implémentation terminée — échec de la mise à jour","pr_closed":"PR fermée sans fusion","superseded":"Remplacée par une exécution plus récente","existing_pr_updated":"PR existante mise à jour","building":"Implémentation dans un worktree isolé…","buildingExistingPr":"Application des changements sur une PR existante…","paused":"Décision humaine requise","on_review":"Implémentation prête pour la revue","pr_draft":"PR en brouillon créée","pr_draft_degraded":"Livraison de la PR incomplète","pr_ready":"PR prête à être fusionnée","implementation_failed":"Échec de l’implémentation","pr_failed":"Échec de la création de la PR","merged":"PR fusionnée","discarded":"Abandonnée"},"buildingHint":"À la fin, il vous sera proposé de créer la PR.","buildingExistingPrHint":"Specrails travaille sur la branche de la PR existante et poussera les changements de revue vers cette même PR.","paused":"Implémentation en pause","pausedForRun":"En pause sur {{ref}}","resume":"Reprendre","stopExecution":"Arrêter l’exécution","stopExecutionSent":"Signal d’arrêt envoyé","stopExecutionFailed":"Impossible d’arrêter l’exécution","createPr":"Créer la PR","publish":"Publier","checkout":"Changer de branche","openReview":"Relire","openReviewTooltip":"Ouvrir la relecture en langage clair","checkoutTooltip":"Basculer le dossier principal du projet sur {{branch}}","checkoutSuccess":"Checkout effectué sur {{branch}}","checkoutFailed":"Impossible de basculer sur la branche d’implémentation","checkoutDirtyTitle":"Checkout bloqué pour protéger vos modifications","checkoutDirtyBody":"Le dossier principal du projet contient des modifications non validées. Créez un commit ou mettez-les de côté, puis réessayez. Aucun changement n’a été effectué.","checkoutSafetyUnknownTitle":"Checkout suspendu, car la sécurité n’a pas pu être vérifiée","checkoutSafetyUnknownBody":"Specrails n’a pas pu lire l’état Git du dossier principal du projet. Rien n’a été libéré ni modifié. Réessayez lorsque Git sera disponible.","checkoutNotDeliverableTitle":"Cette branche ne contient pas l’implémentation conservée","checkoutNotDeliverableBody":"Le commit exact de la livraison n’a pas encore été vérifié. Inspectez ou récupérez plutôt le résultat local.","inspectLocalResult":"Inspecter le résultat local","inspectLocalResultTooltip":"Afficher le worktree isolé préservé et copier son chemin","localResultPathCopied":"Chemin du résultat local copié","localResultPath":"Résultat local préservé","localResultUnavailableHere":"Aucun worktree récupérable n’est disponible sur cet ordinateur. Consultez le journal d’exécution depuis la machine où l’opération a été lancée.","recoverAndRetry":"Créer le commit et réessayer l’envoi","recoverAndRetryVerified":"Le commit récupéré {{sha}} est vérifié dans la PR","recoveryStillBlocked":"La récupération locale nécessite encore votre attention","recheckRecovery":"Vérifier à nouveau","recoveryUnavailable":"La récupération n’a pas pu être vérifiée sur cet ordinateur","recoveryUnavailableBody":"Specrails n’a pas pu prouver de manière sûre un résultat unique appartenant à la livraison dans ce clone. Rien n’a été modifié ou supprimé. Consultez le détail de l’étape et les journaux d’exécution. Si le run a été exécuté sur un autre ordinateur, ouvrez-y Specrails puis vérifiez à nouveau.","recoveryDetailSummary":"Détail technique de récupération","retry":"Réessayer","retryPr":"Réessayer la PR","checkMerge":"Vérifier le merge","verifyPr":"Vérifier la PR","discard":"Abandonner","confirmDiscard":"Confirmer l'abandon ?","mergedNote":"Fusionnée — specs passées en Terminé","discardedNote":"Abandonnée — specs renvoyées vers le backlog","implementationFailedNote":"Le run d’implémentation a échoué avant de produire quelque chose de livrable. Ouvrez le journal du run pour inspecter l’échec, puis abandonnez cette carte avant de relancer.","dismiss":"Fermer le suivi","discardLocalResult":"Supprimer le résultat local","retryPush":"Réessayer le push","retryPushVerified":"Push vérifié · le commit {{sha}} est dans la PR","commitAlreadyVerified":"Le commit {{sha}} est déjà vérifié dans la PR","deliveryCommit":"commit {{sha}}","reopen":"Rouvrir","createPartialPr":"Créer une PR avec {{count}}","supersededNote":"Une exécution d’implémentation plus récente a remplacé cette carte.","noChangesExisting":"Aucune nouvelle modification n’était nécessaire ; la PR existante reste inchangée.","noChangesNote":"Aucune modification de code n’était nécessaire. Marquez les specs comme terminées ou renvoyez-les dans le backlog pour les affiner.","deliveryNeedsAttention":"Implémentation terminée ; la livraison requiert votre attention","deliveryBlockedNote":"L’implémentation a réussi, mais la livraison est bloquée. Consultez le détail de l’étape et les journaux avant de supprimer le résultat local.","partialDeliveryBlockedNote":"Une partie de l’implémentation a réussi, mais rien ne peut encore être livré en toute sécurité. Consultez les éléments par unité et les journaux avant de choisir l’action suivante.","retryPushNote":"L’implémentation a réussi et les modifications sont en sécurité localement. Réessayez uniquement le push.","cleanupIncomplete_one":"Nettoyage incomplet ({{count}} avertissement)","cleanupIncomplete_other":"Nettoyage incomplet ({{count}} avertissements)","safetyArchiveTitle":"Archive de sécurité ({{count}})","safetyArchiveHint":"Des fichiers temporaires de l’espace de travail ont été conservés hors de la PR par précaution. Vous pouvez les examiner ou les supprimer manuellement.","confirm":{"recoverAndRetryTitle":"Créer le commit et envoyer le résultat préservé ?","recoverAndRetryBody":"Specrails utilisera uniquement le worktree isolé ou la branche enregistrée compatible avec une avance rapide pour {{branch}}. Si nécessaire, il créera un commit avec les fichiers livrables, puis enverra ce commit exact uniquement si la PR est toujours ouverte sur les branches source et cible attendues. Le dossier principal de votre projet et ses modifications non validées resteront intacts.","recheckRecoveryTitle":"Vérifier à nouveau cet ordinateur ?","recheckRecoveryBody":"Specrails réanalysera dans ce clone le worktree, la branche, les refs, les reflogs et les objets Git orphelins appartenant à la livraison de {{branch}}. S’il prouve un résultat unique, il pourra committer les changements isolés et retenter le push exact. Le dossier principal du projet ne sera pas touché.","noChangesDoneTitle":"Marquer ces specs comme terminées ?","noChangesDoneBody":"L’implémentation a confirmé qu’aucune modification de code n’est nécessaire. Les specs passeront à Terminé et le worktree sans changement sera nettoyé.","refineTitle":"Affiner ces specs ?","refineBody":"Le résultat sans modification sera fermé et les specs retourneront dans le backlog pour être affinées. Les journaux d’exécution resteront disponibles.","mergeLocalTitle":"Intégrer localement ?","mergeLocalBody":"Les branches livrées seront fusionnées dans {{base}} localement. Les modifications existantes sont préservées ; les modifications qui se chevauchent peuvent nécessiter une résolution avant l’intégration.","freshDiscardTitle":"Supprimer cette livraison ?","freshDiscardBody":"La PR sera fermée sans supprimer sa branche distante. Seuls les branches locales et les worktrees appartenant à SpecRails et toujours positionnés sur leur commit enregistré seront supprimés ; tout élément modifié sera conservé avec un avertissement. Les specs retourneront dans le backlog. Les ressources locales supprimées ne peuvent pas être récupérées.","implementationFailedDiscardTitle":"Abandonner cette livraison en échec ?","implementationFailedDiscardBody":"La carte sera fermée et ses specs retourneront dans le backlog. Le travail local et les branches seront conservés pour inspection. Seules les ressources dont le nettoyage est prouvé sûr pourront être supprimées.","dismissTitle":"Fermer ce suivi ?","dismissBody":"Cette carte de suivi sera fermée. Son worktree ne sera supprimé que si cela reste sans risque ; sinon, il sera conservé avec un avertissement. La PR existante, sa branche et son état de revue resteront inchangés.","discardLocalTitle":"Supprimer le résultat local ?","discardLocalBody":"L’itération locale récupérable ne sera supprimée que si cela reste sans risque ; si elle a changé, elle sera conservée avec un avertissement. Toute PR existante et sa branche resteront inchangées. Un résultat supprimé ne peut pas être récupéré."},"degraded":{"pushed":"La branche a été poussée mais la PR n'a pas pu être créée — réessayez pour terminer.","localOnly":"Les modifications ont été assemblées en local mais pas poussées — réessayez pour publier la PR."},"alreadyResolved":"Déjà résolue ailleurs","actionFailed":"L'action a échoué","notMergedYet":"Pas encore fusionnée","commitMissingRetry":"Le commit de livraison n’est plus présent dans la PR. Vous pouvez réessayer le push.","prVerifiedWaiting":"Commit {{sha}} vérifié · en attente du merge","viewLog":"Voir le journal d'exécution de {{ref}}","runElapsedAria":"{{elapsed}} écoulées","runCostAria":"{{cost}} dépensés","pinned":{"label":"Épinglée","marker":"Carte d’implémentation — épinglée ci-dessus","collapse":"Réduire la carte épinglée","expand":"Déployer la carte épinglée","expandCard":"Développer cette carte","collapseCard":"Réduire cette carte","collapsed_one":"Carte d’implémentation","collapsed_other":"{{count}} cartes d’implémentation","state":{"completed":"Terminée","no_changes":"Aucune modification","pr_closed":"Fermée","superseded":"Remplacée","building":"En cours","on_review":"Revue","pr_draft":"PR brouillon","pr_ready":"Publiée","implementation_failed":"Échec","pr_failed":"Échec","merged":"Fusionnée","discarded":"Abandonnée"}},"mergeLocal":"Intégrer en local","mergeLocalTooltip":"Fusionne les branches livrées dans {{base}} dans votre checkout local (sans GitHub)","mergeLocalBlockedDirty":"Intégration impossible : les modifications locales sur {{base}} chevauchent la livraison. Commitez ou remisez ces modifications, puis réessayez.","mergeLocalBlockedBranch":"Impossible d'intégrer : votre checkout est sur {{current}}, pas sur {{base}}. Passez sur {{base}}, puis réessayez.","mergedLocally":"Intégré dans {{base}} en local","discardStackedNote":"Les rails suivants de ce jalon ont été construits sur cette livraison. L'abandonner met la chaîne du jalon en pause ; les rails suivants conservent leur travail."}`),$={heading:`Brouillon de spec`,drafting:`Mise à jour du brouillon…`,acceptanceCriteria:`Critères d'acceptation`,untitled:`Spec sans titre`,expand:`Afficher la description complète`,collapse:`Réduire la description`},ee={heading:`Cadrage`,framing:`Cadrage de la demande…`,restated:`Ce que j'ai compris`,alternative:`Cela pourrait aussi signifier`,pick:`Répondre avec ceci`,touches:`Toucherait`,discriminator:`Laquelle des deux ?`,assumptions:`Ce que je suppose`,unknowns:`Encore ouvert`},te={openTicket:`Ouvrir la spec #{{id}}`,openPullRequest:`Ouvrir la PR #{{id}}`,openJob:`Ouvrir le job {{id}}`,openLoop:`Ouvrir la boucle {{id}}`,ticketNotFound:`Spec #{{id}} introuvable — elle a peut-être été supprimée`,pullRequestUrlMissing:`La PR #{{id}} est mentionnée sans URL`,pullRequestNotFound:`PR #{{id}} introuvable dans ce projet`,jobNotFound:`Job introuvable — il a peut-être été supprimé`,loopNotFound:`Boucle introuvable — elle a peut-être été supprimée`,lookupFailed:`Impossible de vérifier la référence — réessayez`},ne={untitled:`Mission sans titre`,menu:`Menu de la mission`,rename:`Renommer`,renamePlaceholder:`Nom de la mission`,renameHint:`Double-clic pour renommer`,renameFailed:`Renommage impossible`,addFavorite:`Ajouter aux favorites`,removeFavorite:`Retirer des favorites`,copyName:`Copier le nom de la mission`,copyId:`Copier l'ID de la mission`,copyProject:`Copier le nom du projet`,copyProjectPath:`Copier le chemin du projet`,copyFailed:`Copie impossible`,copyTranscript:`Copier la transcription`,copyTranscriptSuccess:`Transcription copiée`,copyTranscriptFailed:`Impossible de copier la transcription`,exportTranscript:`Exporter la transcription (.txt)`,exportTranscriptSuccess:`Export de la transcription lancé`,exportTranscriptFailed:`Impossible d'exporter la transcription`,delete:`Supprimer la mission`,deleteConfirm:`Supprimer cette mission ? Action irréversible.`,deleteFailed:`Impossible de supprimer la mission`},re=`Que doit-on construire maintenant ?`,ie={title:`Journal d'exécution`,live:`En direct`,empty:`Aucune activité d'outil dans ce tour pour l'instant.`,output:`Sortie`,error:`Erreur`,copyAll:`Copier tout le journal`,copyEntry:`Copier l'entrée`,copySuccess:`Journal copié dans le presse-papiers`,copyFailed:`Impossible de copier le journal`,openLog:`Voir le journal d'exécution`,close:`Fermer`},ae={open:`Voir les logs de {{command}}`,logsTitle:`Logs du processus`,logsDescription:`Sortie en direct et historique enregistré de ce processus.`,close:`Fermer les logs`,command:`Commande`,directory:`Répertoire`,exitCode:`Code de sortie : {{code}}`,signal:`Signal : {{signal}}`,search:`Rechercher dans les logs…`,source:`Source de sortie`,allSources:`Toutes les sorties`,pause:`Pause`,resume:`Reprendre`,follow:`Suivre`,copy:`Copier les logs visibles`,download:`Télécharger les logs visibles`,stop:`Arrêter le processus`,stopCommand:`Arrêter {{command}}`,stopFailed:`Impossible d’arrêter le processus. Réessayez.`,truncated:`La fenêtre de logs est limitée. Des sorties anciennes ou des lignes longues peuvent être omises. La copie et le téléchargement incluent seulement cette vue.`,paused:`Vue en pause. Le processus continue.`,loadFailed:`Impossible de charger les logs. Leur durée de conservation a peut-être expiré ; la sortie déjà chargée reste visible.`,retry:`Réessayer`,copied:`Logs visibles copiés.`,exportFailed:`Impossible d’exporter les logs. Réessayez.`,output:`Sortie du processus`,loading:`Chargement des logs…`,noMatches:`Aucune sortie correspondante.`,empty:`Aucune sortie pour le moment.`,lineCount:`{{count}} lignes sur {{total}}`,exportHint:`L’export inclut seulement le filtre actuel et la sortie conservée.`,status:{starting:`Démarrage`,running:`En cours`,stopping:`Arrêt en cours`,exited:`Terminé`,killed:`Arrêté`,failed:`Échec`,interrupted:`Déconnecté`},repository:`Dépôt`,history:{button:`Processus`,title:`Processus de la mission`,open:`Voir l’historique des processus`,description:`Consultez les processus actifs et les journaux enregistrés des exécutions précédentes.`,search:`Rechercher une commande ou un dépôt…`,refresh:`Actualiser l’historique`,close:`Fermer l’historique des processus`,back:`Retour aux processus`,loading:`Chargement de l’historique…`,empty:`Aucun processus n’a encore été enregistré pour cette mission.`,noMatches:`Aucun processus correspondant.`,loadFailed:`Impossible de charger l’historique. Les entrées déjà chargées restent disponibles.`,showMore:`Afficher plus`,count:`Processus : {{count}}`},interruptedHint:`Specrails ne supervise plus ce processus. Son état dans le système d’exploitation est inconnu ; les journaux enregistrés restent disponibles.`,persistenceFailed:`L’historique du processus n’a pas pu être enregistré. La sortie disponible reste visible.`},oe={detach:`Ouvrir dans une fenêtre séparée`,attach:`Revenir à la fenêtre principale`,detached:`Cette mission est ouverte dans une autre fenêtre.`,focus:`Afficher la fenêtre de la mission`,loading:`Déplacement de la mission…`,failed:`Impossible de déplacer cette mission. Votre brouillon est conservé.`,dismiss:`Fermer`,wrongMission:`Ouvrez cette mission avant de la déplacer.`,finishPending:`Terminez l’opération en cours, ou enregistrez ou annulez le message ou la capture avant de déplacer la mission.`},se={heading:`Lancement de rail`,rail:`Rail {{index}}`,newRail:`Nouveau rail`,play:`Play`,launching:`Lancement…`,dismiss:`Ignorer`,playHint:`Ajustez ce que vous voulez, puis appuyez sur Play pour lancer sous votre propre autorité.`,pending:`Préparation d’une proposition de lancement…`,unreadable_one:`La proposition de lancement de l’agent n’a pas pu être lue.`,unreadable_other:`{{count}} propositions de lancement n’ont pas pu être lues.`,pinnedMarker:`Proposition de lancement épinglée au-dessus du composeur`,effortDefault:`Effort par défaut`,profileNone:`Aucun profil`,status:{proposal:`Proposition`,ready:`Prêt`,blocked:`Attention requise`,loading:`Vérification…`},availability:{free:`libre`,busy:`en cours d’exécution`,pending_decision:`en attente d’une décision`,on_review:`en revue`},fields:{rail:`Rail`,newRailName:`Nom du nouveau rail (facultatif)`,railName:`Nom du rail`,addSpec:`Ajouter une spec`,removeSpec:`Retirer #{{id}}`,loop:`Loop`,engine:`Moteur IA`,model:`Modèle`,effort:`Effort de raisonnement`,profile:`Profil d’agents`,targetPr:`PR cible #`,baseBranch:`Branche de base`},notes:{railMissing:`Le Rail {{index}} n’existe plus — choisissez un autre rail ou créez-en un.`,railBusy:`Le Rail {{index}} est {{state}} — impossible de lancer ici.`,useFree:`Utiliser le Rail {{index}}`,specsDropped:`Ne font plus partie de ce projet : {{ids}}`,engineStale:`{{engine}} n’est pas détecté sur cette machine — {{fallback}} sera utilisé.`,modelStale:`{{model}} n’est pas disponible — {{fallback}} sera utilisé.`},block:{noProject:`Cette mission n’est épinglée à aucun projet.`,loadFailed:`Impossible de charger les rails du projet.`,noSpecs:`Ajoutez au moins une spec pour lancer.`,railLimit:`Les {{max}} rails existent déjà et aucun n’est libre.`},errors:{tickets_in_flight:`L’une de ces specs s’exécute déjà sur un autre rail.`,pr_decision_pending:`Ce rail attend une décision concernant la PR.`,rail_limit_reached:`Le projet a déjà atteint le nombre maximal de rails.`,invalid_base_branch:`Cette branche de base n’existe pas en local.`,base_branch_requires_isolation:`Une branche de base nécessite l’isolation par worktree (un dépôt git avec des commits).`,target_pr_requires_pr_mode:`Une PR cible nécessite l’isolation par worktree (un dépôt git avec des commits).`,invalid_response:`Réponse inattendue du serveur.`},stub:{launched:`Lancé → Rail {{rail}}`,dismissed:`Proposition ignorée`,viewRun:`Voir le run`,goToCard:`Aller à la carte`,goToCardTitle:`Aller à la carte d'implémentation de ce lancement`,viewRunTitle:`Ouvrir le journal en direct du run`}},ce={status:{running:`En cours`,paused:`En pause`,succeeded:`Réussi`,failed:`Échoué`,stalled:`Bloqué`,cancelled:`Annulé`,unknown:`Inconnu`},title:{running:`Implémentation dans le checkout du projet…`,paused:`Une décision humaine est nécessaire`,succeeded:`Implémentation terminée`,failed:`L’implémentation a échoué`,stalled:`L’implémentation est bloquée`,cancelled:`Run annulé`,unknown:`État du run inconnu`},noDeliveryNote:`Pas de phase PR — ce projet n’a ni dépôt git ni commits, le travail a donc été appliqué directement dans le dossier du projet.`,noDeliveryHint:`Exécution directe dans le dossier du projet (pas de dépôt git ni de commits — aucune PR ne sera proposée).`,failure:{title:`Pourquoi ça s’est arrêté`,step:`étape {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Reprendre`,approve:`Approuver`,recover:`Récupérer et réessayer`,relaunch:`Relancer`},relaunchSent:`Rail {{index}} relancé — une nouvelle carte suivra le run.`,relaunchFailed:`Impossible de relancer le rail`,relaunchBlockedActive:`Le rail a encore un run actif`},le={marker:`Le Rail {{rail}} a échoué : {{code}}`,openCard:`Ouvrir la carte`,briefing:{title:`Compte rendu automatique de l’échec`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};
1
+ var e=`Contrôle des missions`,t=`Pilotez Specrails en discutant`,n=`Contrôle des missions`,r=`Demandez à l'agent ce que vous voulez…`,i=`Envoyer`,a=`Arrêter`,o=`Copier`,s={openPreview:`Prévisualiser {{name}}`,openDownload:`Télécharger {{name}}`,previewTitle:`Aperçu de {{name}}`,downloadTitle:`Télécharger le fichier ?`,downloadPrompt:`Ce fichier ne peut pas être prévisualisé ici. Voulez-vous le télécharger ?`,download:`Télécharger`,cancelDownload:`Pas maintenant`,loading:`Préparation du fichier…`,loadFailed:`Impossible de charger la pièce jointe`,loadError:`Impossible de charger la pièce jointe : {{error}}`},c=`Agrandir`,l=`Restaurer`,u=`Réduire`,d=`Fermer`,f=`Nouvelle mission`,p=`Quelle est la mission ?`,m=`Choisissez un projet, puis demandez. Le tableau se met à jour en direct pendant que l'agent travaille.`,h=`Réflexion…`,g=`Connexion…`,_=`Consultation de l'app…`,v={compact:`Compact`,comfortable:`Confortable`,max:`Agrandir`},y={label:`Modèle`,loading:`Chargement des modèles…`,unavailable:`Modèles indisponibles`},b={hint:`Parcours de l'historique — tapez pour modifier, ↑↓ pour naviguer`},x={queued:`En file d’attente`,send:`Envoyer le message`,sendHint:`Ajouté à la file pour le prochain tour. Choisissez « Orienter » sur un message en attente pour l’envoyer sans interrompre le modèle.`,placeholder:`Ajouter un message à la file…`,delivered:`Transmis à l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`,steer:`Orienter`,steerHint:`Envoyer sans interrompre le modèle`,steering:`Envoi à l’agent…`,remove:`Supprimer le message de la file`,more:`Options du message`,edit:`Modifier`,actionConflict:`Ce message est déjà en cours de transmission ou n’est plus dans la file.`,actionFailed:`Impossible de modifier le message en attente. Réessayez.`},S={sent:`Envoyé à l’agent`,received:`Transmis à l’agent`,read:`Lu par l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`},C={editing:`Modification du message en attente {{n}} sur {{m}}`,hint:`↑↓ pour naviguer · Entrée enregistre · Échap annule`,save:`Enregistrer le message en attente`,cancel:`Annuler la modification`,dispatched:`Ce message a déjà été transmis ; votre texte est conservé comme brouillon`,saveFailed:`Impossible d’enregistrer le message en attente`},w={branch:`Branche`,detached:`(détaché)`,dirty:`Modifications non commitées`,switched:`Basculé sur {{branch}}`,switchFailed:`Impossible de changer de branche`,lockedWhileWorking:`Branche verrouillée pendant que l'agent travaille`,searchPlaceholder:`Rechercher des branches…`,noMatches:`Aucune branche ne correspond`,worktrees:`Worktrees`,worktreePathCopied:`Chemin du worktree copié`,copyWorktreePath:`Copier le chemin du worktree`,repository:`Dépôt`,repositoryUnavailable:`Dépôt indisponible`,loadFailed:`État Git indisponible`,notGit:`Dossier de contexte · sans Git`,retry:`Réessayer`},T={label:`Fournisseur`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ pour changer`,observe:{name:`Observer`,desc:`Lecture seule — rien ne change`},edit:{name:`Modifier`,desc:`Créer et modifier (réversible)`},operate:{name:`Opérer`,desc:`Lancer l'IA — c'est payant`},autonomous:{name:`Autonome`,desc:`Supprimer et arrêter — irréversible`},lockedTitle:`Nécessite un niveau supérieur`,lockedBody:`Cette action nécessite le niveau « {{level}} ». Vous êtes sur « {{current}} ».`,raiseHint:`⇧⇥ pour augmenter le niveau, ou demandez autrement.`},D={title:`Confirmer l'action`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Approuver`,cancel:`Annuler`,dontAskAgain:`Ne plus demander durant cette session`,approved:`Approuvé`,cancelled:`Annulé`},O={home:`Accueil`,searchPlaceholder:`Parlez à Specrails…`,searchProjectsPlaceholder:`Rechercher des projets…`,recents:`Récents`,allProjects:`Tous les projets`,searchAll:`Rechercher dans tous les projets`,addProject:`Ajouter un projet…`,homeHint:`Aucun projet sélectionné — opération sur tous les projets.`,askCreateOrSearch:`Aucun projet n'est sélectionné. Voulez-vous créer un nouveau projet ou rechercher dans tous les projets ?`},k={remove:`Retirer {{label}}`,addContextAction:`Ajouter un contexte ou une action`,filtering:`Filtrage de "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Aucun résultat`,noMatchesFor:`Aucun résultat pour "{{query}}"`,mode:{reference:{title:`Référence`,hint:`@ projets, specs, missions`},trace:{title:`Trace`,hint:`# jobs, exécutions, IDs`},action:{title:`Action`,hint:`/ commandes pour ce contexte`}},plus:{reference:`Référence`,referenceHint:`Projets, specs, missions`,trace:`Trace`,traceHint:`Jobs, exécutions, IDs`,action:`Action`,actionHint:`Créer, lancer, inspecter`,fileAttachment:`Pièce jointe`,fileAttachmentHint:`Ajouter docs, images, logs`,browserCapture:`Capture navigateur`,browserCaptureHint:`Capturer une zone de page pour cette mission`},railGroup:`Rails`,railGroupInUse:`Rails en cours d’utilisation`},A={label:`Changer de mission`,untitled:`Nouvelle mission`,new:`Nouvelle mission`,searchPlaceholder:`Rechercher des missions…`,noMatches:`Aucune mission ne correspond`,working:`L'agent travaille`,queuedBadge:`{{n}} en file`,delete:`Supprimer la mission "{{title}}"`,deleteConfirm:`Supprimer ?`,deleteLiveConfirm:`L'agent travaille — supprimer quand même ?`,confirmDelete:`Confirmer la suppression`,cancelDelete:`Garder la mission`,deleteFailed:`Impossible de supprimer la mission`},j={title:`Aucun fournisseur d'IA installé`,body:`L'agent a besoin de Claude, Codex, Gemini ou Kimi sur votre machine. Installez-en un, puis rouvrez l'agent pour discuter.`,placeholder:`Installez un fournisseur d'IA pour utiliser l'agent…`},M={title:`Le MCP Specrails est désactivé`,body:`L'agent a besoin du serveur MCP intégré pour piloter l'app.`,enable:`Activer le MCP Specrails`,enabling:`Activation…`,enabled:`MCP activé`},N={live:`en direct`,queued:`en file`,running:`en cours`,done:`terminé`,failed:`échoué`},P={generic:`Une erreur est survenue. Réessayez.`,busy:`L'agent est occupé. Réessayez dans un instant.`},F={kindAgent:`Mission de l'agent`},I=`Nouvelle mission`,L=`Passer au Contrôle des missions`,R=`Passer au tableau`,z=`Rechercher`,B=`Accueil`,V=`Missions favorites`,H=`Sans titre`,U={title:`Espace de travail`,terminal:`Terminal`,files:`Fichiers`,browser:`Navigateur`,requiresProject:`Sélectionnez un projet pour utiliser cet outil`,resizeCode:`Redimensionner le volet de code`,closeFiles:`Fermer le code`,browserConfirm:`Ajouter à l'agent`,browserSelectStart:`Sélectionner pour ajouter à la mission`,browserCaptured:`Capture ajoutée`,uploadFailed:`Échec du téléversement`,requiresConversation:`Lancez une mission pour utiliser cet outil`,jobs:`Jobs`,closeJobs:`Fermer les jobs`,resizeJobs:`Redimensionner le panneau des jobs`,noJobs:`Aucun job pour l'instant — demandez à l'agent d'en lancer un`,analytics:`Analytique`,closeAnalytics:`Fermer l'analytique`,resizeAnalytics:`Redimensionner le panneau d'analytique`},W=`Joindre un fichier`,G=`Supprimer «\xA0{{title}}\xA0»`,K=`Confirmer la suppression de «\xA0{{title}}\xA0»`,q=`Ajouter «\xA0{{title}}\xA0» aux favorites`,J=`Retirer «\xA0{{title}}\xA0» des favorites`,Y=`confirmer\xA0?`,X=`Ce fournisseur ne lit pas encore les images — joignez plutôt des fichiers texte`,Z={label:`Effort`,minimal:`Minimal`,low:`Faible`,medium:`Moyen`,high:`Élevé`,xhigh:`Très élevé`,max:`Maximum`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Action en cours…","create-pr":"Création de la PR…","publish":"Publication…","discard":"Suppression…","dismiss":"Fermeture du suivi…","poll-merge":"Vérification de la fusion…","reopen":"Réouverture…","merge-local":"Intégration locale…","recover-and-retry":"Création du commit et nouvelle tentative d’envoi du résultat préservé…","acknowledge-no-changes":"Marquage comme terminé…"},"markDone":"Marquer comme terminées","refine":"Affiner","completedNote":"Confirmé — les specs sont passées à Terminé","partialSummary":"{{succeeded}} sur {{total}} terminées ; {{failed}} en échec","unit":{"failed":"échec de l’implémentation","blocked":"livraison bloquée","noChanges":"aucune modification","succeeded":"prête"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Branche de base","openPr":"Ouvrir la PR","existingPr":"PR existante","title":{"no_changes":"Aucune modification nécessaire","partial":"Implémentation partielle","delivery_blocked":"Implémentation terminée — la livraison requiert votre attention","update_failed":"Implémentation terminée — échec de la mise à jour","pr_closed":"PR fermée sans fusion","superseded":"Remplacée par une exécution plus récente","existing_pr_updated":"PR existante mise à jour","building":"Implémentation dans un worktree isolé…","buildingExistingPr":"Application des changements sur une PR existante…","paused":"Décision humaine requise","on_review":"Implémentation prête pour la revue","pr_draft":"PR en brouillon créée","pr_draft_degraded":"Livraison de la PR incomplète","pr_ready":"PR prête à être fusionnée","implementation_failed":"Échec de l’implémentation","pr_failed":"Échec de la création de la PR","merged":"PR fusionnée","discarded":"Abandonnée"},"buildingHint":"À la fin, il vous sera proposé de créer la PR.","buildingExistingPrHint":"Specrails travaille sur la branche de la PR existante et poussera les changements de revue vers cette même PR.","paused":"Implémentation en pause","pausedForRun":"En pause sur {{ref}}","resume":"Reprendre","stopExecution":"Arrêter l’exécution","stopExecutionSent":"Signal d’arrêt envoyé","stopExecutionFailed":"Impossible d’arrêter l’exécution","createPr":"Créer la PR","publish":"Publier","checkout":"Changer de branche","openReview":"Relire","openReviewTooltip":"Ouvrir la relecture en langage clair","checkoutTooltip":"Basculer le dossier principal du projet sur {{branch}}","checkoutSuccess":"Checkout effectué sur {{branch}}","checkoutFailed":"Impossible de basculer sur la branche d’implémentation","checkoutDirtyTitle":"Checkout bloqué pour protéger vos modifications","checkoutDirtyBody":"Le dossier principal du projet contient des modifications non validées. Créez un commit ou mettez-les de côté, puis réessayez. Aucun changement n’a été effectué.","checkoutSafetyUnknownTitle":"Checkout suspendu, car la sécurité n’a pas pu être vérifiée","checkoutSafetyUnknownBody":"Specrails n’a pas pu lire l’état Git du dossier principal du projet. Rien n’a été libéré ni modifié. Réessayez lorsque Git sera disponible.","checkoutNotDeliverableTitle":"Cette branche ne contient pas l’implémentation conservée","checkoutNotDeliverableBody":"Le commit exact de la livraison n’a pas encore été vérifié. Inspectez ou récupérez plutôt le résultat local.","inspectLocalResult":"Inspecter le résultat local","inspectLocalResultTooltip":"Afficher le worktree isolé préservé et copier son chemin","localResultPathCopied":"Chemin du résultat local copié","localResultPath":"Résultat local préservé","localResultUnavailableHere":"Aucun worktree récupérable n’est disponible sur cet ordinateur. Consultez le journal d’exécution depuis la machine où l’opération a été lancée.","recoverAndRetry":"Créer le commit et réessayer l’envoi","recoverAndRetryVerified":"Le commit récupéré {{sha}} est vérifié dans la PR","recoveryStillBlocked":"La récupération locale nécessite encore votre attention","recheckRecovery":"Vérifier à nouveau","recoveryUnavailable":"La récupération n’a pas pu être vérifiée sur cet ordinateur","recoveryUnavailableBody":"Specrails n’a pas pu prouver de manière sûre un résultat unique appartenant à la livraison dans ce clone. Rien n’a été modifié ou supprimé. Consultez le détail de l’étape et les journaux d’exécution. Si le run a été exécuté sur un autre ordinateur, ouvrez-y Specrails puis vérifiez à nouveau.","recoveryDetailSummary":"Détail technique de récupération","retry":"Réessayer","retryPr":"Réessayer la PR","checkMerge":"Vérifier le merge","verifyPr":"Vérifier la PR","discard":"Abandonner","confirmDiscard":"Confirmer l'abandon ?","mergedNote":"Fusionnée — specs passées en Terminé","discardedNote":"Abandonnée — specs renvoyées vers le backlog","implementationFailedNote":"Le run d’implémentation a échoué avant de produire quelque chose de livrable. Ouvrez le journal du run pour inspecter l’échec, puis abandonnez cette carte avant de relancer.","dismiss":"Fermer le suivi","discardLocalResult":"Supprimer le résultat local","retryPush":"Réessayer le push","retryPushVerified":"Push vérifié · le commit {{sha}} est dans la PR","commitAlreadyVerified":"Le commit {{sha}} est déjà vérifié dans la PR","deliveryCommit":"commit {{sha}}","reopen":"Rouvrir","createPartialPr":"Créer une PR avec {{count}}","supersededNote":"Une exécution d’implémentation plus récente a remplacé cette carte.","noChangesExisting":"Aucune nouvelle modification n’était nécessaire ; la PR existante reste inchangée.","noChangesNote":"Aucune modification de code n’était nécessaire. Marquez les specs comme terminées ou renvoyez-les dans le backlog pour les affiner.","deliveryNeedsAttention":"Implémentation terminée ; la livraison requiert votre attention","deliveryBlockedNote":"L’implémentation a réussi, mais la livraison est bloquée. Consultez le détail de l’étape et les journaux avant de supprimer le résultat local.","partialDeliveryBlockedNote":"Une partie de l’implémentation a réussi, mais rien ne peut encore être livré en toute sécurité. Consultez les éléments par unité et les journaux avant de choisir l’action suivante.","retryPushNote":"L’implémentation a réussi et les modifications sont en sécurité localement. Réessayez uniquement le push.","cleanupIncomplete_one":"Nettoyage incomplet ({{count}} avertissement)","cleanupIncomplete_other":"Nettoyage incomplet ({{count}} avertissements)","safetyArchiveTitle":"Archive de sécurité ({{count}})","safetyArchiveHint":"Des fichiers temporaires de l’espace de travail ont été conservés hors de la PR par précaution. Vous pouvez les examiner ou les supprimer manuellement.","confirm":{"recoverAndRetryTitle":"Créer le commit et envoyer le résultat préservé ?","recoverAndRetryBody":"Specrails utilisera uniquement le worktree isolé ou la branche enregistrée compatible avec une avance rapide pour {{branch}}. Si nécessaire, il créera un commit avec les fichiers livrables, puis enverra ce commit exact uniquement si la PR est toujours ouverte sur les branches source et cible attendues. Le dossier principal de votre projet et ses modifications non validées resteront intacts.","recheckRecoveryTitle":"Vérifier à nouveau cet ordinateur ?","recheckRecoveryBody":"Specrails réanalysera dans ce clone le worktree, la branche, les refs, les reflogs et les objets Git orphelins appartenant à la livraison de {{branch}}. S’il prouve un résultat unique, il pourra committer les changements isolés et retenter le push exact. Le dossier principal du projet ne sera pas touché.","noChangesDoneTitle":"Marquer ces specs comme terminées ?","noChangesDoneBody":"L’implémentation a confirmé qu’aucune modification de code n’est nécessaire. Les specs passeront à Terminé et le worktree sans changement sera nettoyé.","refineTitle":"Affiner ces specs ?","refineBody":"Le résultat sans modification sera fermé et les specs retourneront dans le backlog pour être affinées. Les journaux d’exécution resteront disponibles.","mergeLocalTitle":"Intégrer localement ?","mergeLocalBody":"Les branches livrées seront fusionnées dans {{base}} localement. Les modifications existantes sont préservées ; les modifications qui se chevauchent peuvent nécessiter une résolution avant l’intégration.","freshDiscardTitle":"Supprimer cette livraison ?","freshDiscardBody":"La PR sera fermée sans supprimer sa branche distante. Seuls les branches locales et les worktrees appartenant à SpecRails et toujours positionnés sur leur commit enregistré seront supprimés ; tout élément modifié sera conservé avec un avertissement. Les specs retourneront dans le backlog. Les ressources locales supprimées ne peuvent pas être récupérées.","implementationFailedDiscardTitle":"Abandonner cette livraison en échec ?","implementationFailedDiscardBody":"La carte sera fermée et ses specs retourneront dans le backlog. Le travail local et les branches seront conservés pour inspection. Seules les ressources dont le nettoyage est prouvé sûr pourront être supprimées.","dismissTitle":"Fermer ce suivi ?","dismissBody":"Cette carte de suivi sera fermée. Son worktree ne sera supprimé que si cela reste sans risque ; sinon, il sera conservé avec un avertissement. La PR existante, sa branche et son état de revue resteront inchangés.","discardLocalTitle":"Supprimer le résultat local ?","discardLocalBody":"L’itération locale récupérable ne sera supprimée que si cela reste sans risque ; si elle a changé, elle sera conservée avec un avertissement. Toute PR existante et sa branche resteront inchangées. Un résultat supprimé ne peut pas être récupéré."},"degraded":{"pushed":"La branche a été poussée mais la PR n'a pas pu être créée — réessayez pour terminer.","localOnly":"Les modifications ont été assemblées en local mais pas poussées — réessayez pour publier la PR."},"alreadyResolved":"Déjà résolue ailleurs","actionFailed":"L'action a échoué","notMergedYet":"Pas encore fusionnée","commitMissingRetry":"Le commit de livraison n’est plus présent dans la PR. Vous pouvez réessayer le push.","prVerifiedWaiting":"Commit {{sha}} vérifié · en attente du merge","viewLog":"Voir le journal d'exécution de {{ref}}","runElapsedAria":"{{elapsed}} écoulées","runCostAria":"{{cost}} dépensés","pinned":{"label":"Épinglée","marker":"Carte d’implémentation — épinglée ci-dessus","collapse":"Réduire la carte épinglée","expand":"Déployer la carte épinglée","expandCard":"Développer cette carte","collapseCard":"Réduire cette carte","collapsed_one":"Carte d’implémentation","collapsed_other":"{{count}} cartes d’implémentation","state":{"completed":"Terminée","no_changes":"Aucune modification","pr_closed":"Fermée","superseded":"Remplacée","building":"En cours","on_review":"Revue","pr_draft":"PR brouillon","pr_ready":"Publiée","implementation_failed":"Échec","pr_failed":"Échec","merged":"Fusionnée","discarded":"Abandonnée"}},"mergeLocal":"Intégrer en local","mergeLocalTooltip":"Fusionne les branches livrées dans {{base}} dans votre checkout local (sans GitHub)","mergeLocalBlockedDirty":"Intégration impossible : les modifications locales sur {{base}} chevauchent la livraison. Commitez ou remisez ces modifications, puis réessayez.","mergeLocalBlockedBranch":"Impossible d'intégrer : votre checkout est sur {{current}}, pas sur {{base}}. Passez sur {{base}}, puis réessayez.","mergedLocally":"Intégré dans {{base}} en local","discardStackedNote":"Les rails suivants de ce jalon ont été construits sur cette livraison. L'abandonner met la chaîne du jalon en pause ; les rails suivants conservent leur travail."}`),$={heading:`Brouillon de spec`,drafting:`Mise à jour du brouillon…`,acceptanceCriteria:`Critères d'acceptation`,untitled:`Spec sans titre`,expand:`Afficher la description complète`,collapse:`Réduire la description`},ee={heading:`Cadrage`,framing:`Cadrage de la demande…`,restated:`Ce que j'ai compris`,alternative:`Cela pourrait aussi signifier`,pick:`Répondre avec ceci`,touches:`Toucherait`,discriminator:`Laquelle des deux ?`,assumptions:`Ce que je suppose`,unknowns:`Encore ouvert`},te={openTicket:`Ouvrir la spec #{{id}}`,openPullRequest:`Ouvrir la PR #{{id}}`,openJob:`Ouvrir le job {{id}}`,openLoop:`Ouvrir la boucle {{id}}`,ticketNotFound:`Spec #{{id}} introuvable — elle a peut-être été supprimée`,pullRequestUrlMissing:`La PR #{{id}} est mentionnée sans URL`,pullRequestNotFound:`PR #{{id}} introuvable dans ce projet`,jobNotFound:`Job introuvable — il a peut-être été supprimé`,loopNotFound:`Boucle introuvable — elle a peut-être été supprimée`,lookupFailed:`Impossible de vérifier la référence — réessayez`},ne={untitled:`Mission sans titre`,menu:`Menu de la mission`,rename:`Renommer`,renamePlaceholder:`Nom de la mission`,renameHint:`Double-clic pour renommer`,renameFailed:`Renommage impossible`,addFavorite:`Ajouter aux favorites`,removeFavorite:`Retirer des favorites`,copyName:`Copier le nom de la mission`,copyId:`Copier l'ID de la mission`,copyProject:`Copier le nom du projet`,copyProjectPath:`Copier le chemin du projet`,copyFailed:`Copie impossible`,copyTranscript:`Copier la transcription`,copyTranscriptSuccess:`Transcription copiée`,copyTranscriptFailed:`Impossible de copier la transcription`,exportTranscript:`Exporter la transcription (.txt)`,exportTranscriptSuccess:`Export de la transcription lancé`,exportTranscriptFailed:`Impossible d'exporter la transcription`,delete:`Supprimer la mission`,deleteConfirm:`Supprimer cette mission ? Action irréversible.`,deleteFailed:`Impossible de supprimer la mission`},re=`Que doit-on construire maintenant ?`,ie={title:`Journal d'exécution`,live:`En direct`,empty:`Aucune activité d'outil dans ce tour pour l'instant.`,output:`Sortie`,error:`Erreur`,copyAll:`Copier tout le journal`,copyEntry:`Copier l'entrée`,copySuccess:`Journal copié dans le presse-papiers`,copyFailed:`Impossible de copier le journal`,openLog:`Voir le journal d'exécution`,close:`Fermer`},ae={open:`Voir les logs de {{command}}`,logsTitle:`Logs du processus`,logsDescription:`Sortie en direct et historique enregistré de ce processus.`,close:`Fermer les logs`,command:`Commande`,directory:`Répertoire`,exitCode:`Code de sortie : {{code}}`,signal:`Signal : {{signal}}`,search:`Rechercher dans les logs…`,source:`Source de sortie`,allSources:`Toutes les sorties`,pause:`Pause`,resume:`Reprendre`,follow:`Suivre`,copy:`Copier les logs visibles`,download:`Télécharger les logs visibles`,stop:`Arrêter le processus`,stopCommand:`Arrêter {{command}}`,stopFailed:`Impossible d’arrêter le processus. Réessayez.`,truncated:`La fenêtre de logs est limitée. Des sorties anciennes ou des lignes longues peuvent être omises. La copie et le téléchargement incluent seulement cette vue.`,paused:`Vue en pause. Le processus continue.`,loadFailed:`Impossible de charger les logs. Leur durée de conservation a peut-être expiré ; la sortie déjà chargée reste visible.`,retry:`Réessayer`,copied:`Logs visibles copiés.`,exportFailed:`Impossible d’exporter les logs. Réessayez.`,output:`Sortie du processus`,loading:`Chargement des logs…`,noMatches:`Aucune sortie correspondante.`,empty:`Aucune sortie pour le moment.`,lineCount:`{{count}} lignes sur {{total}}`,exportHint:`L’export inclut seulement le filtre actuel et la sortie conservée.`,status:{starting:`Démarrage`,running:`En cours`,stopping:`Arrêt en cours`,exited:`Terminé`,killed:`Arrêté`,failed:`Échec`,interrupted:`Déconnecté`},repository:`Dépôt`,history:{button:`Processus`,title:`Processus de la mission`,open:`Voir l’historique des processus`,description:`Consultez les processus actifs et les journaux enregistrés des exécutions précédentes.`,search:`Rechercher une commande ou un dépôt…`,refresh:`Actualiser l’historique`,close:`Fermer l’historique des processus`,back:`Retour aux processus`,loading:`Chargement de l’historique…`,empty:`Aucun processus n’a encore été enregistré pour cette mission.`,noMatches:`Aucun processus correspondant.`,loadFailed:`Impossible de charger l’historique. Les entrées déjà chargées restent disponibles.`,showMore:`Afficher plus`,count:`Processus : {{count}}`},interruptedHint:`Specrails ne supervise plus ce processus. Son état dans le système d’exploitation est inconnu ; les journaux enregistrés restent disponibles.`,persistenceFailed:`L’historique du processus n’a pas pu être enregistré. La sortie disponible reste visible.`},oe={detach:`Ouvrir dans une fenêtre séparée`,attach:`Revenir à la fenêtre principale`,detached:`Cette mission est ouverte dans une autre fenêtre.`,focus:`Afficher la fenêtre de la mission`,loading:`Déplacement de la mission…`,failed:`Impossible de déplacer cette mission. Votre brouillon est conservé.`,dismiss:`Fermer`,wrongMission:`Ouvrez cette mission avant de la déplacer.`,finishPending:`Terminez l’opération en cours, ou enregistrez ou annulez le message ou la capture avant de déplacer la mission.`},se={heading:`Lancement de rail`,rail:`Rail {{index}}`,newRail:`Nouveau rail`,play:`Play`,launching:`Lancement…`,dismiss:`Ignorer`,playHint:`Ajustez ce que vous voulez, puis appuyez sur Play pour lancer sous votre propre autorité.`,pending:`Préparation d’une proposition de lancement…`,unreadable_one:`La proposition de lancement de l’agent n’a pas pu être lue.`,unreadable_other:`{{count}} propositions de lancement n’ont pas pu être lues.`,pinnedMarker:`Proposition de lancement épinglée au-dessus du composeur`,effortDefault:`Effort par défaut`,profileNone:`Aucun profil`,status:{proposal:`Proposition`,ready:`Prêt`,blocked:`Attention requise`,loading:`Vérification…`},availability:{free:`libre`,busy:`en cours d’exécution`,pending_decision:`en attente d’une décision`,on_review:`en revue`},fields:{rail:`Rail`,newRailName:`Nom du nouveau rail (facultatif)`,railName:`Nom du rail`,addSpec:`Ajouter une spec`,removeSpec:`Retirer #{{id}}`,loop:`Loop`,engine:`Moteur IA`,model:`Modèle`,effort:`Effort de raisonnement`,profile:`Profil d’agents`,targetPr:`PR cible #`,baseBranch:`Branche de base`},notes:{railMissing:`Le Rail {{index}} n’existe plus — choisissez un autre rail ou créez-en un.`,railBusy:`Le Rail {{index}} est {{state}} — impossible de lancer ici.`,useFree:`Utiliser le Rail {{index}}`,specsDropped:`Ne font plus partie de ce projet : {{ids}}`,engineStale:`{{engine}} n’est pas détecté sur cette machine — {{fallback}} sera utilisé.`,modelStale:`{{model}} n’est pas disponible — {{fallback}} sera utilisé.`},block:{noProject:`Cette mission n’est épinglée à aucun projet.`,loadFailed:`Impossible de charger les rails du projet.`,noSpecs:`Ajoutez au moins une spec pour lancer.`,railLimit:`Les {{max}} rails existent déjà et aucun n’est libre.`},errors:{tickets_in_flight:`L’une de ces specs s’exécute déjà sur un autre rail.`,pr_decision_pending:`Ce rail attend une décision concernant la PR.`,rail_limit_reached:`Le projet a déjà atteint le nombre maximal de rails.`,invalid_base_branch:`Cette branche de base n’existe pas en local.`,base_branch_requires_isolation:`Une branche de base nécessite l’isolation par worktree (un dépôt git avec des commits).`,target_pr_requires_pr_mode:`Une PR cible nécessite l’isolation par worktree (un dépôt git avec des commits).`,invalid_response:`Réponse inattendue du serveur.`},stub:{launched:`Lancé → Rail {{rail}}`,dismissed:`Proposition ignorée`,viewRun:`Voir le run`,goToCard:`Aller à la carte`,goToCardTitle:`Aller à la carte d'implémentation de ce lancement`,viewRunTitle:`Ouvrir le journal en direct du run`},followUp:{title:`Résoudre {{count}} commentaire(s) de revue de la PR`,excluded:`Ne pas modifier`,verification:`Vérifier`,specUntouched:`La spec et sa description Jira ne sont pas modifiées : le périmètre voyage avec l’exécution.`,source:{pasted:`collé`,github:`depuis GitHub`}}},ce={status:{running:`En cours`,paused:`En pause`,succeeded:`Réussi`,failed:`Échoué`,stalled:`Bloqué`,cancelled:`Annulé`,unknown:`Inconnu`},title:{running:`Implémentation dans le checkout du projet…`,paused:`Une décision humaine est nécessaire`,succeeded:`Implémentation terminée`,failed:`L’implémentation a échoué`,stalled:`L’implémentation est bloquée`,cancelled:`Run annulé`,unknown:`État du run inconnu`},noDeliveryNote:`Pas de phase PR — ce projet n’a ni dépôt git ni commits, le travail a donc été appliqué directement dans le dossier du projet.`,noDeliveryHint:`Exécution directe dans le dossier du projet (pas de dépôt git ni de commits — aucune PR ne sera proposée).`,failure:{title:`Pourquoi ça s’est arrêté`,step:`étape {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Reprendre`,approve:`Approuver`,recover:`Récupérer et réessayer`,relaunch:`Relancer`},relaunchSent:`Rail {{index}} relancé — une nouvelle carte suivra le run.`,relaunchFailed:`Impossible de relancer le rail`,relaunchBlockedActive:`Le rail a encore un run actif`},le={marker:`Le Rail {{rail}} a échoué : {{code}}`,openCard:`Ouvrir la carte`,briefing:{title:`Compte rendu automatique de l’échec`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};
@@ -1 +1 @@
1
- var e=`ミッションセンター`,t=`チャットで Specrails を操作`,n=`ミッションセンター`,r=`エージェントに何でも頼んでください…`,i=`送信`,a=`停止`,o=`コピー`,s={openPreview:`{{name}}をプレビュー`,openDownload:`{{name}}をダウンロード`,previewTitle:`{{name}}のプレビュー`,downloadTitle:`ファイルをダウンロードしますか?`,downloadPrompt:`このファイルはここではプレビューできません。ダウンロードしますか?`,download:`ダウンロード`,cancelDownload:`今はしない`,loading:`ファイルを準備中…`,loadFailed:`添付ファイルを読み込めませんでした`,loadError:`添付ファイルを読み込めませんでした: {{error}}`},c=`最大化`,l=`元に戻す`,u=`最小化`,d=`閉じる`,f=`新しいミッション`,p=`ミッションは何ですか?`,m=`プロジェクトを選んでから尋ねてください。エージェントの作業中、ボードはリアルタイムで更新されます。`,h=`考え中…`,g=`接続中…`,_=`アプリを確認中…`,v={compact:`コンパクト`,comfortable:`快適`,max:`最大化`},y={label:`モデル`,loading:`モデルを読み込み中…`,unavailable:`モデルを利用できません`},b={hint:`プロンプト履歴を表示中 — 入力で編集、↑↓ で移動`},x={queued:`キュー待ち`,send:`メッセージを送信`,sendHint:`次のターンに送信します。キュー内のメッセージで「方向修正」を選ぶと、モデルを中断せずに送信できます。`,placeholder:`キューにメッセージを追加…`,delivered:`エージェントに送信済み`,interrupted:`送信未確認`,cancelled:`送信前にキャンセル`,steer:`方向修正`,steerHint:`モデルを中断せずに送信`,steering:`エージェントに送信中…`,remove:`キューからメッセージを削除`,more:`メッセージのオプション`,edit:`編集`,actionConflict:`このメッセージはすでに送信中か、キューにありません。`,actionFailed:`キュー内のメッセージを更新できませんでした。もう一度お試しください。`},S={sent:`エージェントに送信済み`,received:`エージェントに配信済み`,read:`エージェントが既読`,interrupted:`送信未確認`,cancelled:`送信前にキャンセル`},C={editing:`保留中のメッセージ {{n}} / {{m}} を編集中`,hint:`↑↓ で移動 · Enter で保存 · Esc でキャンセル`,save:`保留中のメッセージを保存`,cancel:`編集をキャンセル`,dispatched:`このメッセージはすでに送信済みです。入力したテキストは下書きとして保存されます`,saveFailed:`保留中のメッセージを保存できませんでした`},w={branch:`ブランチ`,detached:`(detached)`,dirty:`未コミットの変更あり`,switched:`{{branch}} に切り替えました`,switchFailed:`ブランチを切り替えられませんでした`,lockedWhileWorking:`エージェントの作業中はブランチをロックしています`,searchPlaceholder:`ブランチを検索…`,noMatches:`一致するブランチがありません`,worktrees:`ワークツリー`,worktreePathCopied:`ワークツリーのパスをコピーしました`,copyWorktreePath:`ワークツリーのパスをコピー`,repository:`リポジトリ`,repositoryUnavailable:`リポジトリを利用できません`,loadFailed:`Git の状態を取得できません`,notGit:`コンテキストフォルダー · Git なし`,retry:`再試行`},T={label:`プロバイダー`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ で変更`,observe:{name:`観察`,desc:`読み取り専用 — 何も変更しません`},edit:{name:`編集`,desc:`作成と編集(取り消し可能)`},operate:{name:`操作`,desc:`AI を起動 — 費用がかかります`},autonomous:{name:`自律`,desc:`削除と停止 — 取り消し不可`},lockedTitle:`より高いレベルが必要です`,lockedBody:`その操作には「{{level}}」レベルが必要です。現在は「{{current}}」です。`,raiseHint:`⇧⇥ でレベルを上げるか、別の方法で尋ねてください。`},D={title:`操作を確認`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`承認`,cancel:`キャンセル`,dontAskAgain:`このセッションでは今後確認しない`,approved:`承認しました`,cancelled:`キャンセルしました`},O={home:`ホーム`,searchPlaceholder:`Specrails に話しかける…`,searchProjectsPlaceholder:`プロジェクトを検索…`,recents:`最近`,allProjects:`すべてのプロジェクト`,searchAll:`すべてのプロジェクトを検索`,addProject:`プロジェクトを追加…`,homeHint:`プロジェクトが未選択 — すべてのプロジェクトを横断して操作中。`,askCreateOrSearch:`プロジェクトが選択されていません。新しいプロジェクトを作成しますか、それともすべてのプロジェクトを検索しますか?`},k={remove:`{{label}} を削除`,addContextAction:`コンテキストまたはアクションを追加`,filtering:`"{{query}}" で絞り込み`,keyboard:`↑↓ Enter Esc`,noMatches:`一致なし`,noMatchesFor:`"{{query}}" の一致なし`,mode:{reference:{title:`参照`,hint:`@ プロジェクト、仕様、ミッション`},trace:{title:`トレース`,hint:`# ジョブ、実行、ID`},action:{title:`アクション`,hint:`/ このコンテキストのコマンド`}},plus:{reference:`参照`,referenceHint:`プロジェクト、仕様、ミッション`,trace:`トレース`,traceHint:`ジョブ、実行、ID`,action:`アクション`,actionHint:`作成、起動、確認`,fileAttachment:`ファイル添付`,fileAttachmentHint:`ドキュメント、画像、ログを追加`,browserCapture:`ブラウザーキャプチャ`,browserCaptureHint:`ページの領域をキャプチャしてこのミッションに追加`},railGroup:`レール`,railGroupInUse:`使用中のレール`},A={label:`ミッションを切り替え`,untitled:`新しいミッション`,new:`新しいミッション`,searchPlaceholder:`ミッションを検索…`,noMatches:`一致するミッションがありません`,working:`エージェントが作業中`,queuedBadge:`{{n}} 件キュー中`,delete:`ミッション "{{title}}" を削除`,deleteConfirm:`削除しますか?`,deleteLiveConfirm:`エージェントが作業中です — それでも削除しますか?`,confirmDelete:`削除を確定`,cancelDelete:`ミッションを残す`,deleteFailed:`ミッションを削除できませんでした`},j={title:`AIプロバイダーが未インストール`,body:`エージェントには Claude、Codex、Gemini、Kimi のいずれかが必要です。インストールしてからエージェントを再度開いてください。`,placeholder:`AIプロバイダーをインストールしてエージェントを利用…`},M={title:`Specrails MCP がオフです`,body:`エージェントがアプリを操作するには、組み込みの MCP サーバーが必要です。`,enable:`Specrails MCP を有効化`,enabling:`有効化中…`,enabled:`MCP を有効化しました`},N={live:`ライブ`,queued:`待機中`,running:`実行中`,done:`完了`,failed:`失敗`},P={generic:`問題が発生しました。もう一度お試しください。`,busy:`エージェントは処理中です。しばらくしてからお試しください。`},F={kindAgent:`エージェントのミッション`},I=`新しいミッション`,L=`ミッションセンターに切り替え`,R=`ボードに切り替え`,z=`検索`,B=`ホーム`,V=`お気に入りミッション`,H=`無題`,U={title:`ワークスペース`,terminal:`ターミナル`,files:`ファイル`,browser:`ブラウザ`,requiresProject:`このツールを使うにはプロジェクトを選択してください`,resizeCode:`コードペインをリサイズ`,closeFiles:`コードを閉じる`,browserConfirm:`エージェントに追加`,browserSelectStart:`ミッションに追加する要素を選択`,browserCaptured:`キャプチャを追加しました`,uploadFailed:`アップロードに失敗しました`,requiresConversation:`このツールを使うにはミッションを開始してください`,jobs:`ジョブ`,closeJobs:`ジョブを閉じる`,resizeJobs:`ジョブパネルのサイズ変更`,noJobs:`まだジョブがありません — エージェントに実行を頼んでみましょう`,analytics:`アナリティクス`,closeAnalytics:`アナリティクスを閉じる`,resizeAnalytics:`アナリティクスパネルをリサイズ`},W=`ファイルを添付`,G=`「{{title}}」を削除`,K=`「{{title}}」の削除を確認`,q=`「{{title}}」をお気に入りに追加`,J=`「{{title}}」をお気に入りから削除`,Y=`削除しますか?`,X=`このプロバイダーはまだ画像を読み取れません — テキストファイルを添付してください`,Z={label:`エフォート`,minimal:`最小`,low:`低`,medium:`中`,high:`高`,xhigh:`最高`,max:`最大`,ultra:`ウルトラ`},Q=JSON.parse(`{"operation":{"inProgress":"操作を実行中…","create-pr":"PR を作成中…","publish":"公開中…","discard":"破棄中…","dismiss":"フォローアップを閉じています…","poll-merge":"マージを確認中…","reopen":"再オープン中…","merge-local":"ローカルで統合中…","recover-and-retry":"保存された結果をコミットして再プッシュしています…","acknowledge-no-changes":"完了に変更中…"},"markDone":"完了にする","refine":"改善する","completedNote":"確認済み — spec を完了に移動しました","partialSummary":"{{total}} 件中 {{succeeded}} 件完了、{{failed}} 件失敗","unit":{"failed":"実装失敗","blocked":"配信ブロック","noChanges":"変更なし","succeeded":"準備完了"},"rail":"レール {{index}}","specCount_one":"スペック {{count}} 件","specCount_other":"スペック {{count}} 件","base":"ベースブランチ","openPr":"PR を開く","existingPr":"既存の PR","title":{"no_changes":"変更は不要でした","partial":"一部を実装しました","delivery_blocked":"実装完了 — 配信に対応が必要です","update_failed":"実装完了 — 更新に失敗しました","pr_closed":"PR はマージされずに閉じられました","superseded":"新しい実行に置き換えられました","existing_pr_updated":"既存の PR を更新しました","building":"分離されたワークツリーで実装中…","buildingExistingPr":"既存の PR に変更を適用中…","paused":"人の判断が必要です","on_review":"実装のレビュー準備完了","pr_draft":"ドラフト PR を作成しました","pr_draft_degraded":"PR の公開が未完了","pr_ready":"PR のマージ準備完了","implementation_failed":"実装に失敗しました","pr_failed":"PR の作成に失敗しました","merged":"PR がマージされました","discarded":"破棄済み"},"buildingHint":"完了すると PR を作成するか確認します。","buildingExistingPrHint":"Specrails は既存 PR のブランチで作業しており、レビュー変更を同じ PR に push します。","paused":"実装を一時停止中","pausedForRun":"{{ref}} で一時停止中","resume":"再開","stopExecution":"実行を停止","stopExecutionSent":"停止シグナルを送信しました","stopExecutionFailed":"実行を停止できませんでした","createPr":"PR を作成","publish":"公開","checkout":"ブランチをチェックアウト","openReview":"レビュー","openReviewTooltip":"わかりやすいレビューを開く","checkoutTooltip":"プロジェクトのメインフォルダで {{branch}} をチェックアウト","checkoutSuccess":"{{branch}} をチェックアウトしました","checkoutFailed":"実装ブランチをチェックアウトできませんでした","checkoutDirtyTitle":"変更を保護するためチェックアウトをブロックしました","checkoutDirtyBody":"プロジェクトのメインフォルダーに未コミットの変更があります。コミットまたは stash してから、もう一度お試しください。変更は一切加えられていません。","checkoutSafetyUnknownTitle":"安全性を確認できないためチェックアウトを一時停止しました","checkoutSafetyUnknownBody":"Specrails はプロジェクトのメインフォルダーの Git 状態を読み取れませんでした。解放や変更は行われていません。Git が利用可能になってから再試行してください。","checkoutNotDeliverableTitle":"このブランチには保持された実装がありません","checkoutNotDeliverableBody":"配信対象の正確なコミットはまだ検証されていません。代わりにローカルの結果を確認または復元してください。","inspectLocalResult":"ローカルの結果を確認","inspectLocalResultTooltip":"保存された隔離 worktree を表示してパスをコピー","localResultPathCopied":"ローカル結果のパスをコピーしました","localResultPath":"保存されたローカル結果","localResultUnavailableHere":"このコンピューターには復元可能な worktree がありません。実行したコンピューターで実行ログを確認してください。","recoverAndRetry":"コミットして push を再試行","recoverAndRetryVerified":"復元したコミット {{sha}} が PR 上で検証されました","recoveryStillBlocked":"ローカル復元には引き続き対応が必要です","recheckRecovery":"もう一度確認","recoveryUnavailable":"このコンピューターでは復旧を検証できませんでした","recoveryUnavailableBody":"Specrails は、このクローンで配信に属する結果を安全に 1 つへ特定できませんでした。変更や削除は行われていません。ステージの詳細と run ログを確認してください。run を別のコンピューターで実行した場合は、そちらで Specrails を開いて再確認してください。","recoveryDetailSummary":"復旧の技術的詳細","retry":"再試行","retryPr":"PR を再試行","checkMerge":"マージを確認","verifyPr":"PRを検証","discard":"破棄","confirmDiscard":"破棄しますか?","mergedNote":"マージ済み — スペックは完了に移動しました","discardedNote":"破棄済み — スペックはバックログに戻されました","implementationFailedNote":"実装の実行は、配信可能な成果物が生成される前に失敗しました。実行ログで失敗内容を確認し、再実行する前にこのカードを破棄してください。","dismiss":"フォローアップを閉じる","discardLocalResult":"ローカル結果を破棄","retryPush":"プッシュを再試行","retryPushVerified":"プッシュを検証しました · コミット {{sha}} はPRに含まれています","commitAlreadyVerified":"コミット {{sha}} はすでにPRで検証済みです","deliveryCommit":"コミット {{sha}}","reopen":"再オープン","createPartialPr":"{{count}} 件で PR を作成","supersededNote":"新しい実装実行がこのカードを置き換えました。","noChangesExisting":"新しい変更は不要でした。既存の PR は変更されていません。","noChangesNote":"コード変更は不要でした。spec を完了にするか、改善のためバックログに戻してください。","deliveryNeedsAttention":"実装完了。配信に対応が必要です","deliveryBlockedNote":"実装は成功しましたが、配信がブロックされています。ローカル結果を破棄する前に、ステージの詳細と実行ログを確認してください。","partialDeliveryBlockedNote":"実装の一部は成功しましたが、まだ安全に配信できるものはありません。次の操作を選ぶ前に、ユニットごとの結果と実行ログを確認してください。","retryPushNote":"実装は成功し、変更はローカルに安全に保存されています。プッシュのみ再試行してください。","cleanupIncomplete_one":"クリーンアップが不完全です(警告 {{count}} 件)","cleanupIncomplete_other":"クリーンアップが不完全です(警告 {{count}} 件)","safetyArchiveTitle":"安全アーカイブ({{count}})","safetyArchiveHint":"念のため、一時ワークスペースファイルを PR の外部に保存しました。内容を確認するか、手動で削除できます。","confirm":{"recoverAndRetryTitle":"保存された結果をコミットして push しますか?","recoverAndRetryBody":"Specrails は {{branch}} 用の隔離 worktree または記録済みの fast-forward 可能なブランチだけを使用します。必要に応じて配信対象ファイルをコミットし、PR が想定された head/base のまま開いている場合に限り、その正確なコミットだけを push します。メインのプロジェクトフォルダーと未コミットの変更には一切触れません。","recheckRecoveryTitle":"このコンピューターをもう一度確認しますか?","recheckRecoveryBody":"Specrails は、このクローンで {{branch}} の配信に属する worktree、ブランチ、refs、reflogs、孤立した Git オブジェクトを再スキャンします。結果を 1 つに特定できた場合、隔離された変更をコミットし、正確な push を再試行します。メインのプロジェクトフォルダーには触れません。","noChangesDoneTitle":"これらの spec を完了にしますか?","noChangesDoneBody":"コード変更が不要であることを実装が確認しました。spec を完了に移動し、変更のない worktree をクリーンアップします。","refineTitle":"これらの spec を改善しますか?","refineBody":"変更なしの結果を閉じ、改善できるよう spec をバックログに戻します。実行ログは引き続き利用できます。","mergeLocalTitle":"ローカルで統合しますか?","mergeLocalBody":"提供されたブランチをローカルの {{base}} にマージします。既存の変更は保持されます。変更が重なる場合は、統合前に解決が必要になることがあります。","freshDiscardTitle":"この配信を破棄しますか?","freshDiscardBody":"PR はリモートブランチを削除せずにクローズされます。SpecRails が所有し、記録済みコミットのままのローカルブランチと worktree だけが削除されます。変更されたものは警告とともに保持されます。spec はバックログに戻ります。削除されたローカルリソースは復旧できません。","implementationFailedDiscardTitle":"失敗した配信を破棄しますか?","implementationFailedDiscardBody":"カードを閉じ、spec をバックログに戻します。ローカルの作業とブランチは確認できるよう保持されます。安全にクリーンアップできることが確認されたリソースのみ削除される場合があります。","dismissTitle":"このフォローアップを閉じますか?","dismissBody":"このフォローアップカードを閉じます。専用 worktree は、安全に削除できる場合にのみ削除されます。安全でない場合は警告とともに保持されます。既存の PR、ブランチ、レビュー状態は変更されません。","discardLocalTitle":"ローカル結果を破棄しますか?","discardLocalBody":"復旧可能なローカル反復は、安全に削除できる場合にのみ削除されます。変更されている場合は警告とともに保持されます。既存の PR とブランチは変更されません。削除された結果は復旧できません。"},"degraded":{"pushed":"ブランチはプッシュされましたが、PR を作成できませんでした — 再試行して完了してください。","localOnly":"変更はローカルで組み立てられましたが、プッシュされていません — 再試行して PR を公開してください。"},"alreadyResolved":"すでに他の場所で解決済み","actionFailed":"操作に失敗しました","notMergedYet":"まだマージされていません","commitMissingRetry":"配信コミットは PR に含まれなくなりました。プッシュを再試行できます。","prVerifiedWaiting":"コミット {{sha}} を検証しました · マージ待ち","viewLog":"{{ref}} の実行ログを表示","runElapsedAria":"経過時間 {{elapsed}}","runCostAria":"消費コスト {{cost}}","pinned":{"label":"ピン留め","marker":"実装カード — 上部にピン留め中","collapse":"ピン留めカードを最小化","expand":"ピン留めカードを展開","expandCard":"このカードを展開","collapseCard":"このカードを最小化","collapsed_one":"実装カード","collapsed_other":"{{count}} 件の実装カード","state":{"completed":"完了","no_changes":"変更なし","pr_closed":"クローズ","superseded":"置換済み","building":"実装中","on_review":"レビュー","pr_draft":"ドラフト PR","pr_ready":"公開済み","implementation_failed":"失敗","pr_failed":"失敗","merged":"マージ済み","discarded":"破棄済み"}},"mergeLocal":"ローカルに統合","mergeLocalTooltip":"配信されたブランチをローカルチェックアウトの {{base}} にマージします(GitHub 不要)","mergeLocalBlockedDirty":"統合できません:{{base}} のローカル変更が実装と重なっています。該当する変更をコミットまたはスタッシュしてから再試行してください。","mergeLocalBlockedBranch":"統合できません:チェックアウトは {{current}} で、{{base}} ではありません。{{base}} に切り替えて再試行してください。","mergedLocally":"ローカルで {{base}} に統合しました","discardStackedNote":"このマイルストーンの後続レールはこの納品を基に構築されています。破棄するとマイルストーンのチェーンが一時停止します。後続レールの作業は保持されます。"}`),$={heading:`スペック下書き`,drafting:`下書きを更新中…`,acceptanceCriteria:`受け入れ基準`,untitled:`無題のスペック`,expand:`説明をすべて表示`,collapse:`説明を折りたたむ`},ee={heading:`認識の整理`,framing:`依頼を整理しています…`,restated:`理解した内容`,alternative:`こちらの意味かもしれません`,pick:`これで返信`,touches:`影響する範囲`,discriminator:`どちらでしょうか?`,assumptions:`前提としていること`,unknowns:`未確定のこと`},te={openTicket:`スペック #{{id}} を開く`,openPullRequest:`PR #{{id}} を開く`,openJob:`ジョブ {{id}} を開く`,openLoop:`ループ {{id}} を開く`,ticketNotFound:`スペック #{{id}} が見つかりません — 削除された可能性があります`,pullRequestUrlMissing:`PR #{{id}} は URL なしで参照されました`,pullRequestNotFound:`このプロジェクトで PR #{{id}} が見つかりません`,jobNotFound:`ジョブが見つかりません — 削除された可能性があります`,loopNotFound:`ループが見つかりません — 削除された可能性があります`,lookupFailed:`参照を確認できませんでした — もう一度お試しください`},ne={untitled:`無題のミッション`,menu:`ミッションメニュー`,rename:`名前を変更`,renamePlaceholder:`ミッション名`,renameHint:`ダブルクリックで名前を変更`,renameFailed:`名前を変更できませんでした`,addFavorite:`お気に入りに追加`,removeFavorite:`お気に入りから削除`,copyName:`ミッション名をコピー`,copyId:`ミッション ID をコピー`,copyProject:`プロジェクト名をコピー`,copyProjectPath:`プロジェクトパスをコピー`,copyFailed:`コピーできませんでした`,copyTranscript:`トランスクリプトをコピー`,copyTranscriptSuccess:`トランスクリプトをコピーしました`,copyTranscriptFailed:`トランスクリプトをコピーできませんでした`,exportTranscript:`トランスクリプトをエクスポート (.txt)`,exportTranscriptSuccess:`トランスクリプトのエクスポートを開始しました`,exportTranscriptFailed:`トランスクリプトをエクスポートできませんでした`,delete:`ミッションを削除`,deleteConfirm:`このミッションを削除しますか?元に戻せません。`,deleteFailed:`ミッションを削除できませんでした`},re=`次に何を作りますか?`,ie={title:`実行ログ`,live:`ライブ`,empty:`このターンにはまだツールの活動がありません。`,output:`出力`,error:`エラー`,copyAll:`ログ全体をコピー`,copyEntry:`エントリをコピー`,copySuccess:`ログをクリップボードにコピーしました`,copyFailed:`ログをコピーできませんでした`,openLog:`実行ログを表示`,close:`閉じる`},ae={open:`{{command}} のログを表示`,logsTitle:`プロセスログ`,logsDescription:`このプロセスのリアルタイム出力と保存済み履歴。`,close:`ログを閉じる`,command:`コマンド`,directory:`ディレクトリ`,exitCode:`終了コード:{{code}}`,signal:`シグナル:{{signal}}`,search:`ログを検索…`,source:`出力元`,allSources:`すべての出力`,pause:`一時停止`,resume:`再開`,follow:`追従`,copy:`表示中のログをコピー`,download:`表示中のログをダウンロード`,stop:`プロセスを停止`,stopCommand:`{{command}} を停止`,stopFailed:`プロセスを停止できませんでした。再試行してください。`,truncated:`表示するログには上限があります。過去の出力や長い行の一部が省略される場合があります。コピーとダウンロードにはこの表示のみが含まれます。`,paused:`表示を一時停止中です。プロセスは実行を続けています。`,loadFailed:`ログを読み込めませんでした。保存期間が終了した可能性があります。読み込み済みの出力は引き続き表示されます。`,retry:`再試行`,copied:`表示中のログをコピーしました。`,exportFailed:`ログをエクスポートできませんでした。再試行してください。`,output:`プロセス出力`,loading:`ログを読み込み中…`,noMatches:`一致する出力はありません。`,empty:`まだ出力がありません。`,lineCount:`{{total}} 行中 {{count}} 行`,exportHint:`エクスポートには現在のフィルターと保持中の出力のみが含まれます。`,status:{starting:`起動中`,running:`実行中`,stopping:`停止中`,exited:`終了`,killed:`停止済み`,failed:`失敗`,interrupted:`切断`},repository:`リポジトリ`,history:{button:`プロセス`,title:`ミッションのプロセス`,open:`プロセス履歴を表示`,description:`実行中のプロセスと過去の実行で保存されたログを確認できます。`,search:`コマンドまたはリポジトリを検索…`,refresh:`履歴を更新`,close:`プロセス履歴を閉じる`,back:`プロセスに戻る`,loading:`プロセス履歴を読み込み中…`,empty:`このミッションにはまだプロセスの記録がありません。`,noMatches:`一致するプロセスはありません。`,loadFailed:`履歴を読み込めませんでした。読み込み済みの項目は引き続き確認できます。`,showMore:`さらに表示`,count:`プロセス数:{{count}}`},interruptedHint:`Specrailsによるこのプロセスの監視は終了しました。OS上の状態は不明です。保存済みのログは引き続き確認できます。`,persistenceFailed:`プロセス履歴を保存できませんでした。取得済みの出力は引き続き表示されます。`},oe={detach:`別のウィンドウで開く`,attach:`メインウィンドウに戻す`,detached:`このミッションは別のウィンドウで開いています。`,focus:`ミッションのウィンドウを表示`,loading:`ミッションを移動中…`,failed:`ミッションを移動できませんでした。下書きは保持されています。`,dismiss:`閉じる`,wrongMission:`移動する前にこのミッションを開いてください。`,finishPending:`進行中の操作を完了するか、メッセージまたはキャプチャを保存またはキャンセルしてから、ミッションを移動してください。`},se={heading:`レールの起動`,rail:`レール {{index}}`,newRail:`新しいレール`,play:`Play`,launching:`起動中…`,dismiss:`閉じる`,playHint:`必要に応じて調整し、Play を押して自分の権限で起動します。`,pending:`起動の提案を準備しています…`,unreadable_one:`エージェントの起動提案を読み取れませんでした。`,unreadable_other:`{{count}} 件の起動提案を読み取れませんでした。`,pinnedMarker:`起動提案は入力欄の上に固定されています`,effortDefault:`デフォルトの推論強度`,profileNone:`プロファイルなし`,status:{proposal:`提案`,ready:`準備完了`,blocked:`要確認`,loading:`確認中…`},availability:{free:`空き`,busy:`実行中`,pending_decision:`判断待ち`,on_review:`レビュー中`},fields:{rail:`レール`,newRailName:`新しいレール名(任意)`,railName:`レール名`,addSpec:`スペックを追加`,removeSpec:`#{{id}} を削除`,loop:`ループ`,engine:`AI エンジン`,model:`モデル`,effort:`推論強度`,profile:`エージェントプロファイル`,targetPr:`対象 PR #`,baseBranch:`ベースブランチ`},notes:{railMissing:`レール {{index}} はもう存在しません — 別のレールを選ぶか、新しく作成してください。`,railBusy:`レール {{index}} は{{state}}です — ここでは起動できません。`,useFree:`レール {{index}} を使う`,specsDropped:`このプロジェクトに存在しません: {{ids}}`,engineStale:`このマシンで {{engine}} が検出されません — {{fallback}} を使用します。`,modelStale:`{{model}} は利用できません — {{fallback}} を使用します。`},block:{noProject:`このミッションはプロジェクトに固定されていません。`,loadFailed:`プロジェクトのレールを読み込めませんでした。`,noSpecs:`起動するにはスペックを 1 件以上追加してください。`,railLimit:`{{max}} 本のレールがすべて存在し、空きがありません。`},errors:{tickets_in_flight:`これらのスペックのいずれかはすでに別のレールで実行中です。`,pr_decision_pending:`このレールは PR の判断待ちです。`,rail_limit_reached:`プロジェクトのレール数はすでに上限です。`,invalid_base_branch:`そのベースブランチはローカルに存在しません。`,base_branch_requires_isolation:`ベースブランチには worktree による分離(コミットのある git リポジトリ)が必要です。`,target_pr_requires_pr_mode:`対象 PR には worktree による分離(コミットのある git リポジトリ)が必要です。`,invalid_response:`サーバーから予期しない応答がありました。`},stub:{launched:`起動しました → レール {{rail}}`,dismissed:`提案を閉じました`,viewRun:`実行を表示`,goToCard:`カードへ移動`,goToCardTitle:`この起動の実装カードへ移動`,viewRunTitle:`この run のライブログを開く`}},ce={status:{running:`実行中`,paused:`一時停止中`,succeeded:`成功`,failed:`失敗`,stalled:`停滞`,cancelled:`キャンセル済み`,unknown:`不明`},title:{running:`プロジェクトのチェックアウトで実装中…`,paused:`人の判断が必要です`,succeeded:`実装が完了しました`,failed:`実装に失敗しました`,stalled:`実装が停滞しています`,cancelled:`実行はキャンセルされました`,unknown:`実行状態は不明です`},noDeliveryNote:`PR フェーズなし — このプロジェクトには git リポジトリもコミットもないため、作業はプロジェクトフォルダーに直接反映されました。`,noDeliveryHint:`プロジェクトフォルダーで直接実行しています(git リポジトリもコミットもないため、PR は提案されません)。`,failure:{title:`停止した理由`,step:`ステップ {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`再開`,approve:`承認`,recover:`復旧して再試行`,relaunch:`再起動`},relaunchSent:`レール {{index}} を再起動しました — 新しいカードが実行を追跡します。`,relaunchFailed:`レールを再起動できませんでした`,relaunchBlockedActive:`レールにはまだ実行中の処理があります`},le={marker:`レール {{rail}} が失敗しました: {{code}}`,openCard:`カードを開く`,briefing:{title:`自動障害ブリーフィング`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};
1
+ var e=`ミッションセンター`,t=`チャットで Specrails を操作`,n=`ミッションセンター`,r=`エージェントに何でも頼んでください…`,i=`送信`,a=`停止`,o=`コピー`,s={openPreview:`{{name}}をプレビュー`,openDownload:`{{name}}をダウンロード`,previewTitle:`{{name}}のプレビュー`,downloadTitle:`ファイルをダウンロードしますか?`,downloadPrompt:`このファイルはここではプレビューできません。ダウンロードしますか?`,download:`ダウンロード`,cancelDownload:`今はしない`,loading:`ファイルを準備中…`,loadFailed:`添付ファイルを読み込めませんでした`,loadError:`添付ファイルを読み込めませんでした: {{error}}`},c=`最大化`,l=`元に戻す`,u=`最小化`,d=`閉じる`,f=`新しいミッション`,p=`ミッションは何ですか?`,m=`プロジェクトを選んでから尋ねてください。エージェントの作業中、ボードはリアルタイムで更新されます。`,h=`考え中…`,g=`接続中…`,_=`アプリを確認中…`,v={compact:`コンパクト`,comfortable:`快適`,max:`最大化`},y={label:`モデル`,loading:`モデルを読み込み中…`,unavailable:`モデルを利用できません`},b={hint:`プロンプト履歴を表示中 — 入力で編集、↑↓ で移動`},x={queued:`キュー待ち`,send:`メッセージを送信`,sendHint:`次のターンに送信します。キュー内のメッセージで「方向修正」を選ぶと、モデルを中断せずに送信できます。`,placeholder:`キューにメッセージを追加…`,delivered:`エージェントに送信済み`,interrupted:`送信未確認`,cancelled:`送信前にキャンセル`,steer:`方向修正`,steerHint:`モデルを中断せずに送信`,steering:`エージェントに送信中…`,remove:`キューからメッセージを削除`,more:`メッセージのオプション`,edit:`編集`,actionConflict:`このメッセージはすでに送信中か、キューにありません。`,actionFailed:`キュー内のメッセージを更新できませんでした。もう一度お試しください。`},S={sent:`エージェントに送信済み`,received:`エージェントに配信済み`,read:`エージェントが既読`,interrupted:`送信未確認`,cancelled:`送信前にキャンセル`},C={editing:`保留中のメッセージ {{n}} / {{m}} を編集中`,hint:`↑↓ で移動 · Enter で保存 · Esc でキャンセル`,save:`保留中のメッセージを保存`,cancel:`編集をキャンセル`,dispatched:`このメッセージはすでに送信済みです。入力したテキストは下書きとして保存されます`,saveFailed:`保留中のメッセージを保存できませんでした`},w={branch:`ブランチ`,detached:`(detached)`,dirty:`未コミットの変更あり`,switched:`{{branch}} に切り替えました`,switchFailed:`ブランチを切り替えられませんでした`,lockedWhileWorking:`エージェントの作業中はブランチをロックしています`,searchPlaceholder:`ブランチを検索…`,noMatches:`一致するブランチがありません`,worktrees:`ワークツリー`,worktreePathCopied:`ワークツリーのパスをコピーしました`,copyWorktreePath:`ワークツリーのパスをコピー`,repository:`リポジトリ`,repositoryUnavailable:`リポジトリを利用できません`,loadFailed:`Git の状態を取得できません`,notGit:`コンテキストフォルダー · Git なし`,retry:`再試行`},T={label:`プロバイダー`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ で変更`,observe:{name:`観察`,desc:`読み取り専用 — 何も変更しません`},edit:{name:`編集`,desc:`作成と編集(取り消し可能)`},operate:{name:`操作`,desc:`AI を起動 — 費用がかかります`},autonomous:{name:`自律`,desc:`削除と停止 — 取り消し不可`},lockedTitle:`より高いレベルが必要です`,lockedBody:`その操作には「{{level}}」レベルが必要です。現在は「{{current}}」です。`,raiseHint:`⇧⇥ でレベルを上げるか、別の方法で尋ねてください。`},D={title:`操作を確認`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`承認`,cancel:`キャンセル`,dontAskAgain:`このセッションでは今後確認しない`,approved:`承認しました`,cancelled:`キャンセルしました`},O={home:`ホーム`,searchPlaceholder:`Specrails に話しかける…`,searchProjectsPlaceholder:`プロジェクトを検索…`,recents:`最近`,allProjects:`すべてのプロジェクト`,searchAll:`すべてのプロジェクトを検索`,addProject:`プロジェクトを追加…`,homeHint:`プロジェクトが未選択 — すべてのプロジェクトを横断して操作中。`,askCreateOrSearch:`プロジェクトが選択されていません。新しいプロジェクトを作成しますか、それともすべてのプロジェクトを検索しますか?`},k={remove:`{{label}} を削除`,addContextAction:`コンテキストまたはアクションを追加`,filtering:`"{{query}}" で絞り込み`,keyboard:`↑↓ Enter Esc`,noMatches:`一致なし`,noMatchesFor:`"{{query}}" の一致なし`,mode:{reference:{title:`参照`,hint:`@ プロジェクト、仕様、ミッション`},trace:{title:`トレース`,hint:`# ジョブ、実行、ID`},action:{title:`アクション`,hint:`/ このコンテキストのコマンド`}},plus:{reference:`参照`,referenceHint:`プロジェクト、仕様、ミッション`,trace:`トレース`,traceHint:`ジョブ、実行、ID`,action:`アクション`,actionHint:`作成、起動、確認`,fileAttachment:`ファイル添付`,fileAttachmentHint:`ドキュメント、画像、ログを追加`,browserCapture:`ブラウザーキャプチャ`,browserCaptureHint:`ページの領域をキャプチャしてこのミッションに追加`},railGroup:`レール`,railGroupInUse:`使用中のレール`},A={label:`ミッションを切り替え`,untitled:`新しいミッション`,new:`新しいミッション`,searchPlaceholder:`ミッションを検索…`,noMatches:`一致するミッションがありません`,working:`エージェントが作業中`,queuedBadge:`{{n}} 件キュー中`,delete:`ミッション "{{title}}" を削除`,deleteConfirm:`削除しますか?`,deleteLiveConfirm:`エージェントが作業中です — それでも削除しますか?`,confirmDelete:`削除を確定`,cancelDelete:`ミッションを残す`,deleteFailed:`ミッションを削除できませんでした`},j={title:`AIプロバイダーが未インストール`,body:`エージェントには Claude、Codex、Gemini、Kimi のいずれかが必要です。インストールしてからエージェントを再度開いてください。`,placeholder:`AIプロバイダーをインストールしてエージェントを利用…`},M={title:`Specrails MCP がオフです`,body:`エージェントがアプリを操作するには、組み込みの MCP サーバーが必要です。`,enable:`Specrails MCP を有効化`,enabling:`有効化中…`,enabled:`MCP を有効化しました`},N={live:`ライブ`,queued:`待機中`,running:`実行中`,done:`完了`,failed:`失敗`},P={generic:`問題が発生しました。もう一度お試しください。`,busy:`エージェントは処理中です。しばらくしてからお試しください。`},F={kindAgent:`エージェントのミッション`},I=`新しいミッション`,L=`ミッションセンターに切り替え`,R=`ボードに切り替え`,z=`検索`,B=`ホーム`,V=`お気に入りミッション`,H=`無題`,U={title:`ワークスペース`,terminal:`ターミナル`,files:`ファイル`,browser:`ブラウザ`,requiresProject:`このツールを使うにはプロジェクトを選択してください`,resizeCode:`コードペインをリサイズ`,closeFiles:`コードを閉じる`,browserConfirm:`エージェントに追加`,browserSelectStart:`ミッションに追加する要素を選択`,browserCaptured:`キャプチャを追加しました`,uploadFailed:`アップロードに失敗しました`,requiresConversation:`このツールを使うにはミッションを開始してください`,jobs:`ジョブ`,closeJobs:`ジョブを閉じる`,resizeJobs:`ジョブパネルのサイズ変更`,noJobs:`まだジョブがありません — エージェントに実行を頼んでみましょう`,analytics:`アナリティクス`,closeAnalytics:`アナリティクスを閉じる`,resizeAnalytics:`アナリティクスパネルをリサイズ`},W=`ファイルを添付`,G=`「{{title}}」を削除`,K=`「{{title}}」の削除を確認`,q=`「{{title}}」をお気に入りに追加`,J=`「{{title}}」をお気に入りから削除`,Y=`削除しますか?`,X=`このプロバイダーはまだ画像を読み取れません — テキストファイルを添付してください`,Z={label:`エフォート`,minimal:`最小`,low:`低`,medium:`中`,high:`高`,xhigh:`最高`,max:`最大`,ultra:`ウルトラ`},Q=JSON.parse(`{"operation":{"inProgress":"操作を実行中…","create-pr":"PR を作成中…","publish":"公開中…","discard":"破棄中…","dismiss":"フォローアップを閉じています…","poll-merge":"マージを確認中…","reopen":"再オープン中…","merge-local":"ローカルで統合中…","recover-and-retry":"保存された結果をコミットして再プッシュしています…","acknowledge-no-changes":"完了に変更中…"},"markDone":"完了にする","refine":"改善する","completedNote":"確認済み — spec を完了に移動しました","partialSummary":"{{total}} 件中 {{succeeded}} 件完了、{{failed}} 件失敗","unit":{"failed":"実装失敗","blocked":"配信ブロック","noChanges":"変更なし","succeeded":"準備完了"},"rail":"レール {{index}}","specCount_one":"スペック {{count}} 件","specCount_other":"スペック {{count}} 件","base":"ベースブランチ","openPr":"PR を開く","existingPr":"既存の PR","title":{"no_changes":"変更は不要でした","partial":"一部を実装しました","delivery_blocked":"実装完了 — 配信に対応が必要です","update_failed":"実装完了 — 更新に失敗しました","pr_closed":"PR はマージされずに閉じられました","superseded":"新しい実行に置き換えられました","existing_pr_updated":"既存の PR を更新しました","building":"分離されたワークツリーで実装中…","buildingExistingPr":"既存の PR に変更を適用中…","paused":"人の判断が必要です","on_review":"実装のレビュー準備完了","pr_draft":"ドラフト PR を作成しました","pr_draft_degraded":"PR の公開が未完了","pr_ready":"PR のマージ準備完了","implementation_failed":"実装に失敗しました","pr_failed":"PR の作成に失敗しました","merged":"PR がマージされました","discarded":"破棄済み"},"buildingHint":"完了すると PR を作成するか確認します。","buildingExistingPrHint":"Specrails は既存 PR のブランチで作業しており、レビュー変更を同じ PR に push します。","paused":"実装を一時停止中","pausedForRun":"{{ref}} で一時停止中","resume":"再開","stopExecution":"実行を停止","stopExecutionSent":"停止シグナルを送信しました","stopExecutionFailed":"実行を停止できませんでした","createPr":"PR を作成","publish":"公開","checkout":"ブランチをチェックアウト","openReview":"レビュー","openReviewTooltip":"わかりやすいレビューを開く","checkoutTooltip":"プロジェクトのメインフォルダで {{branch}} をチェックアウト","checkoutSuccess":"{{branch}} をチェックアウトしました","checkoutFailed":"実装ブランチをチェックアウトできませんでした","checkoutDirtyTitle":"変更を保護するためチェックアウトをブロックしました","checkoutDirtyBody":"プロジェクトのメインフォルダーに未コミットの変更があります。コミットまたは stash してから、もう一度お試しください。変更は一切加えられていません。","checkoutSafetyUnknownTitle":"安全性を確認できないためチェックアウトを一時停止しました","checkoutSafetyUnknownBody":"Specrails はプロジェクトのメインフォルダーの Git 状態を読み取れませんでした。解放や変更は行われていません。Git が利用可能になってから再試行してください。","checkoutNotDeliverableTitle":"このブランチには保持された実装がありません","checkoutNotDeliverableBody":"配信対象の正確なコミットはまだ検証されていません。代わりにローカルの結果を確認または復元してください。","inspectLocalResult":"ローカルの結果を確認","inspectLocalResultTooltip":"保存された隔離 worktree を表示してパスをコピー","localResultPathCopied":"ローカル結果のパスをコピーしました","localResultPath":"保存されたローカル結果","localResultUnavailableHere":"このコンピューターには復元可能な worktree がありません。実行したコンピューターで実行ログを確認してください。","recoverAndRetry":"コミットして push を再試行","recoverAndRetryVerified":"復元したコミット {{sha}} が PR 上で検証されました","recoveryStillBlocked":"ローカル復元には引き続き対応が必要です","recheckRecovery":"もう一度確認","recoveryUnavailable":"このコンピューターでは復旧を検証できませんでした","recoveryUnavailableBody":"Specrails は、このクローンで配信に属する結果を安全に 1 つへ特定できませんでした。変更や削除は行われていません。ステージの詳細と run ログを確認してください。run を別のコンピューターで実行した場合は、そちらで Specrails を開いて再確認してください。","recoveryDetailSummary":"復旧の技術的詳細","retry":"再試行","retryPr":"PR を再試行","checkMerge":"マージを確認","verifyPr":"PRを検証","discard":"破棄","confirmDiscard":"破棄しますか?","mergedNote":"マージ済み — スペックは完了に移動しました","discardedNote":"破棄済み — スペックはバックログに戻されました","implementationFailedNote":"実装の実行は、配信可能な成果物が生成される前に失敗しました。実行ログで失敗内容を確認し、再実行する前にこのカードを破棄してください。","dismiss":"フォローアップを閉じる","discardLocalResult":"ローカル結果を破棄","retryPush":"プッシュを再試行","retryPushVerified":"プッシュを検証しました · コミット {{sha}} はPRに含まれています","commitAlreadyVerified":"コミット {{sha}} はすでにPRで検証済みです","deliveryCommit":"コミット {{sha}}","reopen":"再オープン","createPartialPr":"{{count}} 件で PR を作成","supersededNote":"新しい実装実行がこのカードを置き換えました。","noChangesExisting":"新しい変更は不要でした。既存の PR は変更されていません。","noChangesNote":"コード変更は不要でした。spec を完了にするか、改善のためバックログに戻してください。","deliveryNeedsAttention":"実装完了。配信に対応が必要です","deliveryBlockedNote":"実装は成功しましたが、配信がブロックされています。ローカル結果を破棄する前に、ステージの詳細と実行ログを確認してください。","partialDeliveryBlockedNote":"実装の一部は成功しましたが、まだ安全に配信できるものはありません。次の操作を選ぶ前に、ユニットごとの結果と実行ログを確認してください。","retryPushNote":"実装は成功し、変更はローカルに安全に保存されています。プッシュのみ再試行してください。","cleanupIncomplete_one":"クリーンアップが不完全です(警告 {{count}} 件)","cleanupIncomplete_other":"クリーンアップが不完全です(警告 {{count}} 件)","safetyArchiveTitle":"安全アーカイブ({{count}})","safetyArchiveHint":"念のため、一時ワークスペースファイルを PR の外部に保存しました。内容を確認するか、手動で削除できます。","confirm":{"recoverAndRetryTitle":"保存された結果をコミットして push しますか?","recoverAndRetryBody":"Specrails は {{branch}} 用の隔離 worktree または記録済みの fast-forward 可能なブランチだけを使用します。必要に応じて配信対象ファイルをコミットし、PR が想定された head/base のまま開いている場合に限り、その正確なコミットだけを push します。メインのプロジェクトフォルダーと未コミットの変更には一切触れません。","recheckRecoveryTitle":"このコンピューターをもう一度確認しますか?","recheckRecoveryBody":"Specrails は、このクローンで {{branch}} の配信に属する worktree、ブランチ、refs、reflogs、孤立した Git オブジェクトを再スキャンします。結果を 1 つに特定できた場合、隔離された変更をコミットし、正確な push を再試行します。メインのプロジェクトフォルダーには触れません。","noChangesDoneTitle":"これらの spec を完了にしますか?","noChangesDoneBody":"コード変更が不要であることを実装が確認しました。spec を完了に移動し、変更のない worktree をクリーンアップします。","refineTitle":"これらの spec を改善しますか?","refineBody":"変更なしの結果を閉じ、改善できるよう spec をバックログに戻します。実行ログは引き続き利用できます。","mergeLocalTitle":"ローカルで統合しますか?","mergeLocalBody":"提供されたブランチをローカルの {{base}} にマージします。既存の変更は保持されます。変更が重なる場合は、統合前に解決が必要になることがあります。","freshDiscardTitle":"この配信を破棄しますか?","freshDiscardBody":"PR はリモートブランチを削除せずにクローズされます。SpecRails が所有し、記録済みコミットのままのローカルブランチと worktree だけが削除されます。変更されたものは警告とともに保持されます。spec はバックログに戻ります。削除されたローカルリソースは復旧できません。","implementationFailedDiscardTitle":"失敗した配信を破棄しますか?","implementationFailedDiscardBody":"カードを閉じ、spec をバックログに戻します。ローカルの作業とブランチは確認できるよう保持されます。安全にクリーンアップできることが確認されたリソースのみ削除される場合があります。","dismissTitle":"このフォローアップを閉じますか?","dismissBody":"このフォローアップカードを閉じます。専用 worktree は、安全に削除できる場合にのみ削除されます。安全でない場合は警告とともに保持されます。既存の PR、ブランチ、レビュー状態は変更されません。","discardLocalTitle":"ローカル結果を破棄しますか?","discardLocalBody":"復旧可能なローカル反復は、安全に削除できる場合にのみ削除されます。変更されている場合は警告とともに保持されます。既存の PR とブランチは変更されません。削除された結果は復旧できません。"},"degraded":{"pushed":"ブランチはプッシュされましたが、PR を作成できませんでした — 再試行して完了してください。","localOnly":"変更はローカルで組み立てられましたが、プッシュされていません — 再試行して PR を公開してください。"},"alreadyResolved":"すでに他の場所で解決済み","actionFailed":"操作に失敗しました","notMergedYet":"まだマージされていません","commitMissingRetry":"配信コミットは PR に含まれなくなりました。プッシュを再試行できます。","prVerifiedWaiting":"コミット {{sha}} を検証しました · マージ待ち","viewLog":"{{ref}} の実行ログを表示","runElapsedAria":"経過時間 {{elapsed}}","runCostAria":"消費コスト {{cost}}","pinned":{"label":"ピン留め","marker":"実装カード — 上部にピン留め中","collapse":"ピン留めカードを最小化","expand":"ピン留めカードを展開","expandCard":"このカードを展開","collapseCard":"このカードを最小化","collapsed_one":"実装カード","collapsed_other":"{{count}} 件の実装カード","state":{"completed":"完了","no_changes":"変更なし","pr_closed":"クローズ","superseded":"置換済み","building":"実装中","on_review":"レビュー","pr_draft":"ドラフト PR","pr_ready":"公開済み","implementation_failed":"失敗","pr_failed":"失敗","merged":"マージ済み","discarded":"破棄済み"}},"mergeLocal":"ローカルに統合","mergeLocalTooltip":"配信されたブランチをローカルチェックアウトの {{base}} にマージします(GitHub 不要)","mergeLocalBlockedDirty":"統合できません:{{base}} のローカル変更が実装と重なっています。該当する変更をコミットまたはスタッシュしてから再試行してください。","mergeLocalBlockedBranch":"統合できません:チェックアウトは {{current}} で、{{base}} ではありません。{{base}} に切り替えて再試行してください。","mergedLocally":"ローカルで {{base}} に統合しました","discardStackedNote":"このマイルストーンの後続レールはこの納品を基に構築されています。破棄するとマイルストーンのチェーンが一時停止します。後続レールの作業は保持されます。"}`),$={heading:`スペック下書き`,drafting:`下書きを更新中…`,acceptanceCriteria:`受け入れ基準`,untitled:`無題のスペック`,expand:`説明をすべて表示`,collapse:`説明を折りたたむ`},ee={heading:`認識の整理`,framing:`依頼を整理しています…`,restated:`理解した内容`,alternative:`こちらの意味かもしれません`,pick:`これで返信`,touches:`影響する範囲`,discriminator:`どちらでしょうか?`,assumptions:`前提としていること`,unknowns:`未確定のこと`},te={openTicket:`スペック #{{id}} を開く`,openPullRequest:`PR #{{id}} を開く`,openJob:`ジョブ {{id}} を開く`,openLoop:`ループ {{id}} を開く`,ticketNotFound:`スペック #{{id}} が見つかりません — 削除された可能性があります`,pullRequestUrlMissing:`PR #{{id}} は URL なしで参照されました`,pullRequestNotFound:`このプロジェクトで PR #{{id}} が見つかりません`,jobNotFound:`ジョブが見つかりません — 削除された可能性があります`,loopNotFound:`ループが見つかりません — 削除された可能性があります`,lookupFailed:`参照を確認できませんでした — もう一度お試しください`},ne={untitled:`無題のミッション`,menu:`ミッションメニュー`,rename:`名前を変更`,renamePlaceholder:`ミッション名`,renameHint:`ダブルクリックで名前を変更`,renameFailed:`名前を変更できませんでした`,addFavorite:`お気に入りに追加`,removeFavorite:`お気に入りから削除`,copyName:`ミッション名をコピー`,copyId:`ミッション ID をコピー`,copyProject:`プロジェクト名をコピー`,copyProjectPath:`プロジェクトパスをコピー`,copyFailed:`コピーできませんでした`,copyTranscript:`トランスクリプトをコピー`,copyTranscriptSuccess:`トランスクリプトをコピーしました`,copyTranscriptFailed:`トランスクリプトをコピーできませんでした`,exportTranscript:`トランスクリプトをエクスポート (.txt)`,exportTranscriptSuccess:`トランスクリプトのエクスポートを開始しました`,exportTranscriptFailed:`トランスクリプトをエクスポートできませんでした`,delete:`ミッションを削除`,deleteConfirm:`このミッションを削除しますか?元に戻せません。`,deleteFailed:`ミッションを削除できませんでした`},re=`次に何を作りますか?`,ie={title:`実行ログ`,live:`ライブ`,empty:`このターンにはまだツールの活動がありません。`,output:`出力`,error:`エラー`,copyAll:`ログ全体をコピー`,copyEntry:`エントリをコピー`,copySuccess:`ログをクリップボードにコピーしました`,copyFailed:`ログをコピーできませんでした`,openLog:`実行ログを表示`,close:`閉じる`},ae={open:`{{command}} のログを表示`,logsTitle:`プロセスログ`,logsDescription:`このプロセスのリアルタイム出力と保存済み履歴。`,close:`ログを閉じる`,command:`コマンド`,directory:`ディレクトリ`,exitCode:`終了コード:{{code}}`,signal:`シグナル:{{signal}}`,search:`ログを検索…`,source:`出力元`,allSources:`すべての出力`,pause:`一時停止`,resume:`再開`,follow:`追従`,copy:`表示中のログをコピー`,download:`表示中のログをダウンロード`,stop:`プロセスを停止`,stopCommand:`{{command}} を停止`,stopFailed:`プロセスを停止できませんでした。再試行してください。`,truncated:`表示するログには上限があります。過去の出力や長い行の一部が省略される場合があります。コピーとダウンロードにはこの表示のみが含まれます。`,paused:`表示を一時停止中です。プロセスは実行を続けています。`,loadFailed:`ログを読み込めませんでした。保存期間が終了した可能性があります。読み込み済みの出力は引き続き表示されます。`,retry:`再試行`,copied:`表示中のログをコピーしました。`,exportFailed:`ログをエクスポートできませんでした。再試行してください。`,output:`プロセス出力`,loading:`ログを読み込み中…`,noMatches:`一致する出力はありません。`,empty:`まだ出力がありません。`,lineCount:`{{total}} 行中 {{count}} 行`,exportHint:`エクスポートには現在のフィルターと保持中の出力のみが含まれます。`,status:{starting:`起動中`,running:`実行中`,stopping:`停止中`,exited:`終了`,killed:`停止済み`,failed:`失敗`,interrupted:`切断`},repository:`リポジトリ`,history:{button:`プロセス`,title:`ミッションのプロセス`,open:`プロセス履歴を表示`,description:`実行中のプロセスと過去の実行で保存されたログを確認できます。`,search:`コマンドまたはリポジトリを検索…`,refresh:`履歴を更新`,close:`プロセス履歴を閉じる`,back:`プロセスに戻る`,loading:`プロセス履歴を読み込み中…`,empty:`このミッションにはまだプロセスの記録がありません。`,noMatches:`一致するプロセスはありません。`,loadFailed:`履歴を読み込めませんでした。読み込み済みの項目は引き続き確認できます。`,showMore:`さらに表示`,count:`プロセス数:{{count}}`},interruptedHint:`Specrailsによるこのプロセスの監視は終了しました。OS上の状態は不明です。保存済みのログは引き続き確認できます。`,persistenceFailed:`プロセス履歴を保存できませんでした。取得済みの出力は引き続き表示されます。`},oe={detach:`別のウィンドウで開く`,attach:`メインウィンドウに戻す`,detached:`このミッションは別のウィンドウで開いています。`,focus:`ミッションのウィンドウを表示`,loading:`ミッションを移動中…`,failed:`ミッションを移動できませんでした。下書きは保持されています。`,dismiss:`閉じる`,wrongMission:`移動する前にこのミッションを開いてください。`,finishPending:`進行中の操作を完了するか、メッセージまたはキャプチャを保存またはキャンセルしてから、ミッションを移動してください。`},se={heading:`レールの起動`,rail:`レール {{index}}`,newRail:`新しいレール`,play:`Play`,launching:`起動中…`,dismiss:`閉じる`,playHint:`必要に応じて調整し、Play を押して自分の権限で起動します。`,pending:`起動の提案を準備しています…`,unreadable_one:`エージェントの起動提案を読み取れませんでした。`,unreadable_other:`{{count}} 件の起動提案を読み取れませんでした。`,pinnedMarker:`起動提案は入力欄の上に固定されています`,effortDefault:`デフォルトの推論強度`,profileNone:`プロファイルなし`,status:{proposal:`提案`,ready:`準備完了`,blocked:`要確認`,loading:`確認中…`},availability:{free:`空き`,busy:`実行中`,pending_decision:`判断待ち`,on_review:`レビュー中`},fields:{rail:`レール`,newRailName:`新しいレール名(任意)`,railName:`レール名`,addSpec:`スペックを追加`,removeSpec:`#{{id}} を削除`,loop:`ループ`,engine:`AI エンジン`,model:`モデル`,effort:`推論強度`,profile:`エージェントプロファイル`,targetPr:`対象 PR #`,baseBranch:`ベースブランチ`},notes:{railMissing:`レール {{index}} はもう存在しません — 別のレールを選ぶか、新しく作成してください。`,railBusy:`レール {{index}} は{{state}}です — ここでは起動できません。`,useFree:`レール {{index}} を使う`,specsDropped:`このプロジェクトに存在しません: {{ids}}`,engineStale:`このマシンで {{engine}} が検出されません — {{fallback}} を使用します。`,modelStale:`{{model}} は利用できません — {{fallback}} を使用します。`},block:{noProject:`このミッションはプロジェクトに固定されていません。`,loadFailed:`プロジェクトのレールを読み込めませんでした。`,noSpecs:`起動するにはスペックを 1 件以上追加してください。`,railLimit:`{{max}} 本のレールがすべて存在し、空きがありません。`},errors:{tickets_in_flight:`これらのスペックのいずれかはすでに別のレールで実行中です。`,pr_decision_pending:`このレールは PR の判断待ちです。`,rail_limit_reached:`プロジェクトのレール数はすでに上限です。`,invalid_base_branch:`そのベースブランチはローカルに存在しません。`,base_branch_requires_isolation:`ベースブランチには worktree による分離(コミットのある git リポジトリ)が必要です。`,target_pr_requires_pr_mode:`対象 PR には worktree による分離(コミットのある git リポジトリ)が必要です。`,invalid_response:`サーバーから予期しない応答がありました。`},stub:{launched:`起動しました → レール {{rail}}`,dismissed:`提案を閉じました`,viewRun:`実行を表示`,goToCard:`カードへ移動`,goToCardTitle:`この起動の実装カードへ移動`,viewRunTitle:`この run のライブログを開く`},followUp:{title:`PR のレビューコメント {{count}} 件を解決`,excluded:`変更しない`,verification:`検証`,specUntouched:`スペックと Jira の説明は編集しません。スコープは実行と一緒に渡されます。`,source:{pasted:`貼り付け`,github:`GitHub から`}}},ce={status:{running:`実行中`,paused:`一時停止中`,succeeded:`成功`,failed:`失敗`,stalled:`停滞`,cancelled:`キャンセル済み`,unknown:`不明`},title:{running:`プロジェクトのチェックアウトで実装中…`,paused:`人の判断が必要です`,succeeded:`実装が完了しました`,failed:`実装に失敗しました`,stalled:`実装が停滞しています`,cancelled:`実行はキャンセルされました`,unknown:`実行状態は不明です`},noDeliveryNote:`PR フェーズなし — このプロジェクトには git リポジトリもコミットもないため、作業はプロジェクトフォルダーに直接反映されました。`,noDeliveryHint:`プロジェクトフォルダーで直接実行しています(git リポジトリもコミットもないため、PR は提案されません)。`,failure:{title:`停止した理由`,step:`ステップ {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`再開`,approve:`承認`,recover:`復旧して再試行`,relaunch:`再起動`},relaunchSent:`レール {{index}} を再起動しました — 新しいカードが実行を追跡します。`,relaunchFailed:`レールを再起動できませんでした`,relaunchBlockedActive:`レールにはまだ実行中の処理があります`},le={marker:`レール {{rail}} が失敗しました: {{code}}`,openCard:`カードを開く`,briefing:{title:`自動障害ブリーフィング`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};
@@ -1 +1 @@
1
- var e=`Controle de missões`,t=`Opere o Specrails conversando`,n=`Controle de missões`,r=`Peça ao agente o que quiser…`,i=`Enviar`,a=`Parar`,o=`Copiar`,s={openPreview:`Pré-visualizar {{name}}`,openDownload:`Transferir {{name}}`,previewTitle:`Pré-visualização de {{name}}`,downloadTitle:`Transferir ficheiro?`,downloadPrompt:`Este ficheiro não pode ser pré-visualizado aqui. Queres transferi-lo?`,download:`Transferir`,cancelDownload:`Agora não`,loading:`A preparar ficheiro…`,loadFailed:`Não foi possível carregar o anexo`,loadError:`Não foi possível carregar o anexo: {{error}}`},c=`Maximizar`,l=`Restaurar`,u=`Minimizar`,d=`Fechar`,f=`Nova missão`,p=`Qual é a missão?`,m=`Escolha um projeto e depois pergunte. O quadro é atualizado ao vivo enquanto o agente trabalha.`,h=`Pensando…`,g=`Conectando…`,_=`Consultando o app…`,v={compact:`Compacto`,comfortable:`Confortável`,max:`Maximizar`},y={label:`Modelo`,loading:`Carregando modelos…`,unavailable:`Modelos indisponíveis`},b={hint:`Explorando histórico — escreva para editar, ↑↓ para navegar`},x={queued:`Na fila`,send:`Enviar mensagem`,sendHint:`Enfileirar para o próximo turno. Escolha «Orientar» em uma mensagem na fila para enviá-la sem interromper o modelo.`,placeholder:`Adicionar uma mensagem à fila…`,delivered:`Entregue ao agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelada antes da entrega`,steer:`Orientar`,steerHint:`Enviar sem interromper o modelo`,steering:`Enviando ao agente…`,remove:`Excluir mensagem da fila`,more:`Opções da mensagem`,edit:`Editar`,actionConflict:`Esta mensagem já está sendo entregue ou não está mais na fila.`,actionFailed:`Não foi possível atualizar a mensagem na fila. Tente novamente.`},S={sent:`Enviado ao agente`,received:`Entregue ao agente`,read:`Lido pelo agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelado antes da entrega`},C={editing:`Editando mensagem pendente {{n}} de {{m}}`,hint:`↑↓ para navegar · Enter salva · Esc cancela`,save:`Salvar mensagem pendente`,cancel:`Cancelar edição`,dispatched:`Essa mensagem já foi entregue; seu texto foi mantido como rascunho`,saveFailed:`Não foi possível salvar a mensagem pendente`},w={branch:`Branch`,detached:`(detached)`,dirty:`Alterações sem commit`,switched:`Mudou para {{branch}}`,switchFailed:`Não foi possível trocar de branch`,lockedWhileWorking:`Branch bloqueada enquanto o agente trabalha`,searchPlaceholder:`Buscar branches…`,noMatches:`Nenhuma branch corresponde`,worktrees:`Worktrees`,worktreePathCopied:`Caminho do worktree copiado`,copyWorktreePath:`Copiar caminho do worktree`,repository:`Repositório`,repositoryUnavailable:`Repositório indisponível`,loadFailed:`Estado do Git indisponível`,notGit:`Pasta de contexto · sem Git`,retry:`Tentar novamente`},T={label:`Provedor`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ para mudar`,observe:{name:`Observa`,desc:`Somente leitura — nada muda`},edit:{name:`Edita`,desc:`Criar e editar (reversível)`},operate:{name:`Opera`,desc:`Lançar IA — tem custo`},autonomous:{name:`Autônomo`,desc:`Excluir e encerrar — irreversível`},lockedTitle:`Precisa de um nível superior`,lockedBody:`Essa ação precisa do nível "{{level}}". Você está no "{{current}}".`,raiseHint:`⇧⇥ para aumentar o nível, ou peça de outra forma.`},D={title:`Confirmar ação`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Aprovar`,cancel:`Cancelar`,dontAskAgain:`Não perguntar de novo nesta sessão`,approved:`Aprovado`,cancelled:`Cancelado`},O={home:`Início`,searchPlaceholder:`Fale com o Specrails…`,searchProjectsPlaceholder:`Buscar projetos…`,recents:`Recentes`,allProjects:`Todos os projetos`,searchAll:`Buscar em todos os projetos`,addProject:`Adicionar projeto…`,homeHint:`Nenhum projeto selecionado — operando em todos os projetos.`,askCreateOrSearch:`Nenhum projeto está selecionado. Você quer criar um novo projeto ou buscar em todos os projetos?`},k={remove:`Remover {{label}}`,addContextAction:`Adicionar contexto ou ação`,filtering:`Filtrando "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Sem resultados`,noMatchesFor:`Sem resultados para "{{query}}"`,mode:{reference:{title:`Referência`,hint:`@ projetos, specs, missões`},trace:{title:`Traço`,hint:`# jobs, execuções, IDs`},action:{title:`Ação`,hint:`/ comandos para este contexto`}},plus:{reference:`Referência`,referenceHint:`Projetos, specs, missões`,trace:`Traço`,traceHint:`Jobs, execuções, IDs`,action:`Ação`,actionHint:`Criar, lançar, inspecionar`,fileAttachment:`Anexo de arquivo`,fileAttachmentHint:`Adicionar docs, imagens, logs`,browserCapture:`Captura do navegador`,browserCaptureHint:`Capturar uma área da página para esta missão`},railGroup:`Rails`,railGroupInUse:`Rails em uso`},A={label:`Trocar de missão`,untitled:`Nova missão`,new:`Nova missão`,searchPlaceholder:`Pesquisar missões…`,noMatches:`Nenhuma missão corresponde`,working:`O agente está trabalhando`,queuedBadge:`{{n}} na fila`,delete:`Excluir missão "{{title}}"`,deleteConfirm:`Excluir?`,deleteLiveConfirm:`O agente está trabalhando — excluir mesmo assim?`,confirmDelete:`Confirmar exclusão`,cancelDelete:`Manter missão`,deleteFailed:`Não foi possível excluir a missão`},j={title:`Nenhum provedor de IA instalado`,body:`O agente precisa de Claude, Codex, Gemini ou Kimi na sua máquina. Instale um e reabra o agente para começar a conversar.`,placeholder:`Instale um provedor de IA para usar o agente…`},M={title:`O MCP do Specrails está desligado`,body:`O agente precisa do servidor MCP integrado para operar o app.`,enable:`Ativar o MCP do Specrails`,enabling:`Ativando…`,enabled:`MCP ativado`},N={live:`ao vivo`,queued:`na fila`,running:`em execução`,done:`concluído`,failed:`falhou`},P={generic:`Algo deu errado. Tente novamente.`,busy:`O agente está ocupado. Tente novamente em um instante.`},F={kindAgent:`Missão do agente`},I=`Nova missão`,L=`Mudar para o Controle de missões`,R=`Mudar para o quadro`,z=`Buscar`,B=`Início`,V=`Missões favoritas`,H=`Sem título`,U={title:`No workspace`,terminal:`Terminal`,files:`Arquivos`,browser:`Navegador`,requiresProject:`Selecione um projeto para usar esta ferramenta`,resizeCode:`Redimensionar painel de código`,closeFiles:`Fechar código`,browserConfirm:`Adicionar ao agente`,browserSelectStart:`Selecionar para adicionar à missão`,browserCaptured:`Captura adicionada`,uploadFailed:`Falha no upload`,requiresConversation:`Inicie uma missão para usar esta ferramenta`,jobs:`Jobs`,closeJobs:`Fechar jobs`,resizeJobs:`Redimensionar painel de jobs`,noJobs:`Ainda não há jobs — peça ao agente para lançar um`,analytics:`Analítica`,closeAnalytics:`Fechar analítica`,resizeAnalytics:`Redimensionar painel de analítica`},W=`Anexar arquivo`,G=`Excluir "{{title}}"`,K=`Confirmar exclusão de "{{title}}"`,q=`Adicionar "{{title}}" aos favoritos`,J=`Remover "{{title}}" dos favoritos`,Y=`confirmar?`,X=`Este provedor ainda não lê imagens — anexe arquivos de texto`,Z={label:`Esforço`,minimal:`Mínimo`,low:`Baixo`,medium:`Médio`,high:`Alto`,xhigh:`Extra alto`,max:`Máximo`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Ação em andamento…","create-pr":"Criando PR…","publish":"Publicando…","discard":"Descartando…","dismiss":"Encerrando acompanhamento…","poll-merge":"Verificando merge…","reopen":"Reabrindo…","merge-local":"Integrando localmente…","recover-and-retry":"A criar o commit e a tentar novamente o push do resultado preservado…","acknowledge-no-changes":"Marcando como concluído…"},"markDone":"Marcar como concluídas","refine":"Refinar","completedNote":"Confirmado — as specs foram movidas para Concluído","partialSummary":"{{succeeded}} de {{total}} concluídas; {{failed}} falharam","unit":{"failed":"implementação falhou","blocked":"entrega bloqueada","noChanges":"sem alterações","succeeded":"pronta"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Ramo base","openPr":"Abrir PR","existingPr":"PR existente","title":{"no_changes":"Nenhuma alteração necessária","partial":"Implementação parcial","delivery_blocked":"Implementação concluída — a entrega requer atenção","update_failed":"Implementação concluída — falha na atualização","pr_closed":"PR fechada sem merge","superseded":"Substituída por uma execução mais recente","existing_pr_updated":"PR existente atualizada","building":"A implementar num worktree isolado…","buildingExistingPr":"A aplicar alterações numa PR existente…","paused":"Precisa de decisão humana","on_review":"Implementação pronta para revisão","pr_draft":"PR em rascunho criada","pr_draft_degraded":"Entrega da PR incompleta","pr_ready":"PR pronta para merge","implementation_failed":"Implementação falhou","pr_failed":"Falha ao criar a PR","merged":"Merge da PR concluído","discarded":"Descartada"},"buildingHint":"Quando terminar, ser-lhe-á perguntado se quer criar a PR.","buildingExistingPrHint":"O Specrails está a trabalhar no ramo da PR existente e irá enviar as alterações de revisão para essa mesma PR.","paused":"Implementação em pausa","pausedForRun":"Em pausa em {{ref}}","resume":"Retomar","stopExecution":"Parar execução","stopExecutionSent":"Sinal de paragem enviado","stopExecutionFailed":"Não foi possível parar a execução","createPr":"Criar PR","publish":"Publicar","checkout":"Mudar para o branch","openReview":"Revisar","openReviewTooltip":"Abrir a revisão em linguagem clara","checkoutTooltip":"Fazer checkout de {{branch}} na pasta principal do projeto","checkoutSuccess":"Checkout feito em {{branch}}","checkoutFailed":"Não foi possível fazer checkout da branch de implementação","checkoutDirtyTitle":"Checkout bloqueado para proteger as suas alterações","checkoutDirtyBody":"A pasta principal do projeto contém alterações sem commit. Faça commit ou stash e tente novamente. Não foi feita qualquer alteração.","checkoutSafetyUnknownTitle":"Checkout em pausa porque não foi possível verificar a segurança","checkoutSafetyUnknownBody":"O Specrails não conseguiu ler o estado do Git na pasta principal do projeto. Nada foi libertado ou alterado. Tente novamente quando o Git estiver disponível.","checkoutNotDeliverableTitle":"Esta branch não contém a implementação preservada","checkoutNotDeliverableBody":"O commit exato da entrega ainda não foi verificado. Em alternativa, inspecione ou recupere o resultado local.","inspectLocalResult":"Inspecionar resultado local","inspectLocalResultTooltip":"Mostrar o worktree isolado preservado e copiar o respetivo caminho","localResultPathCopied":"Caminho do resultado local copiado","localResultPath":"Resultado local preservado","localResultUnavailableHere":"Não existe nenhum worktree recuperável neste computador. Consulte o log da execução no computador onde foi iniciada.","recoverAndRetry":"Fazer commit e tentar push novamente","recoverAndRetryVerified":"O commit recuperado {{sha}} está verificado na PR","recoveryStillBlocked":"A recuperação local ainda requer atenção","recheckRecovery":"Verificar novamente","recoveryUnavailable":"Não foi possível verificar a recuperação neste computador","recoveryUnavailableBody":"O Specrails não conseguiu comprovar com segurança um único resultado pertencente à entrega neste clone. Nada foi alterado ou removido. Consulte os detalhes da etapa e os registos de execução. Se o run foi executado noutro computador, abra o Specrails nele e verifique novamente.","recoveryDetailSummary":"Detalhe técnico da recuperação","retry":"Tentar novamente","retryPr":"Tentar PR novamente","checkMerge":"Verificar merge","verifyPr":"Verificar PR","discard":"Descartar","confirmDiscard":"Confirmar descarte?","mergedNote":"Merge concluído — specs movidas para Concluído","discardedNote":"Descartada — specs devolvidas ao backlog","implementationFailedNote":"A execução de implementação falhou antes de produzir algo entregável. Abra o log da execução para inspecionar a falha e descarte este cartão antes de relançar.","dismiss":"Encerrar acompanhamento","discardLocalResult":"Descartar resultado local","retryPush":"Tentar push novamente","retryPushVerified":"Push verificado · o commit {{sha}} está na PR","commitAlreadyVerified":"O commit {{sha}} já está verificado na PR","deliveryCommit":"commit {{sha}}","reopen":"Reabrir","createPartialPr":"Criar PR com {{count}}","supersededNote":"Uma execução de implementação mais recente substituiu este cartão.","noChangesExisting":"Nenhuma nova alteração foi necessária; a PR existente permanece inalterada.","noChangesNote":"Nenhuma alteração de código foi necessária. Marque as specs como concluídas ou devolva-as ao backlog para refinamento.","deliveryNeedsAttention":"Implementação concluída; a entrega requer atenção","deliveryBlockedNote":"A implementação foi concluída com sucesso, mas a entrega está bloqueada. Revise os detalhes da etapa e os logs antes de descartar o resultado local.","partialDeliveryBlockedNote":"Parte da implementação foi concluída com sucesso, mas ainda não há nada que possa ser entregue com segurança. Reveja as evidências por unidade e os logs antes de escolher a próxima ação.","retryPushNote":"A implementação foi concluída com sucesso e as alterações estão seguras localmente. Tente novamente apenas o push.","cleanupIncomplete_one":"Limpeza incompleta ({{count}} aviso)","cleanupIncomplete_other":"Limpeza incompleta ({{count}} avisos)","safetyArchiveTitle":"Arquivo de segurança ({{count}})","safetyArchiveHint":"Os ficheiros temporários do espaço de trabalho foram preservados fora da PR por precaução. Pode inspecioná-los ou removê-los manualmente.","confirm":{"recoverAndRetryTitle":"Fazer commit e enviar o resultado preservado?","recoverAndRetryBody":"O Specrails utilizará apenas o worktree isolado ou o ramo registado compatível com avanço rápido para {{branch}}. Se necessário, criará um commit com os ficheiros entregáveis e enviará esse commit exato apenas se a PR continuar aberta nos ramos de origem e destino esperados. A pasta principal do projeto e as respetivas alterações sem commit não serão afetadas.","recheckRecoveryTitle":"Verificar este computador novamente?","recheckRecoveryBody":"O Specrails examinará novamente neste clone o worktree, a branch, as refs, os reflogs e os objetos Git órfãos pertencentes à entrega de {{branch}}. Se comprovar um único resultado, poderá fazer commit das alterações isoladas e repetir o push exato. A pasta principal do projeto não será alterada.","noChangesDoneTitle":"Marcar estas specs como concluídas?","noChangesDoneBody":"A implementação confirmou que nenhuma alteração de código é necessária. As specs serão movidas para Concluído e o worktree sem alterações será limpo.","refineTitle":"Refinar estas specs?","refineBody":"O resultado sem alterações será fechado e as specs voltarão ao backlog para refinamento. Os logs de execução permanecerão disponíveis.","mergeLocalTitle":"Integrar localmente?","mergeLocalBody":"As branches entregues serão integradas em {{base}} localmente. As alterações existentes são preservadas; alterações sobrepostas podem precisar de resolução antes da integração.","freshDiscardTitle":"Descartar esta entrega?","freshDiscardBody":"A PR será fechada sem excluir o branch remoto. Apenas branches locais e worktrees pertencentes ao SpecRails que ainda estejam no commit registrado serão removidos; qualquer item alterado será preservado com um aviso. As specs voltarão ao backlog. Os recursos locais removidos não podem ser recuperados.","implementationFailedDiscardTitle":"Descartar esta entrega com falha?","implementationFailedDiscardBody":"O cartão será fechado e as specs voltarão ao backlog. O trabalho local e os branches serão preservados para inspeção. Apenas recursos comprovadamente seguros para limpeza poderão ser removidos.","dismissTitle":"Encerrar este acompanhamento?","dismissBody":"Este cartão de acompanhamento será encerrado. Seu worktree só será removido se isso ainda for seguro; caso contrário, será preservado com um aviso. A PR existente, seu branch e o estado da revisão permanecerão inalterados.","discardLocalTitle":"Descartar o resultado local?","discardLocalBody":"A iteração local recuperável só será removida se isso ainda for seguro; se tiver sido alterada, será preservada com um aviso. Qualquer PR existente e seu branch permanecerão inalterados. Um resultado removido não pode ser recuperado."},"degraded":{"pushed":"O ramo foi enviado mas não foi possível criar a PR — tente novamente para concluir.","localOnly":"As alterações foram montadas localmente mas não enviadas — tente novamente para publicar a PR."},"alreadyResolved":"Já resolvida noutro lugar","actionFailed":"A ação falhou","notMergedYet":"Ainda sem merge","commitMissingRetry":"O commit da entrega não está mais na PR. Você pode tentar o push novamente.","prVerifiedWaiting":"Commit {{sha}} verificado · aguardando merge","viewLog":"Ver o registro de execução de {{ref}}","runElapsedAria":"{{elapsed}} decorridos","runCostAria":"{{cost}} gastos","pinned":{"label":"Fixada","marker":"Cartão de implementação — fixado acima","collapse":"Minimizar cartão fixado","expand":"Expandir cartão fixado","expandCard":"Expandir este cartão","collapseCard":"Minimizar este cartão","collapsed_one":"Cartão de implementação","collapsed_other":"{{count}} cartões de implementação","state":{"completed":"Concluída","no_changes":"Sem alterações","pr_closed":"Fechada","superseded":"Substituída","building":"Em curso","on_review":"Revisão","pr_draft":"PR rascunho","pr_ready":"Publicada","implementation_failed":"Falhou","pr_failed":"Falhou","merged":"Integrada","discarded":"Descartada"}},"mergeLocal":"Integrar localmente","mergeLocalTooltip":"Faz merge dos branches entregues em {{base}} no seu checkout local (sem GitHub)","mergeLocalBlockedDirty":"Não é possível integrar: as alterações locais em {{base}} sobrepõem-se à entrega. Faça commit ou stash dessas alterações e tente novamente.","mergeLocalBlockedBranch":"Não é possível integrar: seu checkout está em {{current}}, não em {{base}}. Mude para {{base}} e tente de novo.","mergedLocally":"Integrado em {{base}} localmente","discardStackedNote":"Os rails seguintes deste marco foram construídos sobre esta entrega. Descartá-la pausa a cadeia do marco; os rails seguintes mantêm o seu trabalho."}`),$={heading:`Rascunho da spec`,drafting:`Atualizando rascunho…`,acceptanceCriteria:`Critérios de aceitação`,untitled:`Spec sem título`,expand:`Ver descrição completa`,collapse:`Recolher descrição`},ee={heading:`Enquadramento`,framing:`A enquadrar o pedido…`,restated:`O que entendi`,alternative:`Também poderia significar`,pick:`Responder com isto`,touches:`Tocaria em`,discriminator:`Qual das duas?`,assumptions:`O que estou a assumir`,unknowns:`Ainda em aberto`},te={openTicket:`Abrir spec #{{id}}`,openPullRequest:`Abrir PR #{{id}}`,openJob:`Abrir job {{id}}`,openLoop:`Abrir loop {{id}}`,ticketNotFound:`Spec #{{id}} não encontrada — pode ter sido excluída`,pullRequestUrlMissing:`A PR #{{id}} foi mencionada sem URL`,pullRequestNotFound:`A PR #{{id}} não foi encontrada neste projeto`,jobNotFound:`Job não encontrado — pode ter sido excluído`,loopNotFound:`Loop não encontrado — pode ter sido excluído`,lookupFailed:`Não foi possível verificar a referência — tente novamente`},ne={untitled:`Missão sem título`,menu:`Menu da missão`,rename:`Renomear`,renamePlaceholder:`Nome da missão`,renameHint:`Duplo clique para renomear`,renameFailed:`Não foi possível renomear`,addFavorite:`Adicionar aos favoritos`,removeFavorite:`Remover dos favoritos`,copyName:`Copiar nome da missão`,copyId:`Copiar ID da missão`,copyProject:`Copiar nome do projeto`,copyProjectPath:`Copiar caminho do projeto`,copyFailed:`Não foi possível copiar`,copyTranscript:`Copiar transcrição`,copyTranscriptSuccess:`Transcrição copiada`,copyTranscriptFailed:`Não foi possível copiar a transcrição`,exportTranscript:`Exportar transcrição (.txt)`,exportTranscriptSuccess:`Exportação da transcrição iniciada`,exportTranscriptFailed:`Não foi possível exportar a transcrição`,delete:`Excluir missão`,deleteConfirm:`Excluir esta missão? Não pode ser desfeito.`,deleteFailed:`Não foi possível excluir a missão`},re=`O que devemos construir agora?`,ie={title:`Log de execução`,live:`Ao vivo`,empty:`Ainda não há atividade de ferramentas neste turno.`,output:`Saída`,error:`Erro`,copyAll:`Copiar log completo`,copyEntry:`Copiar entrada`,copySuccess:`Log copiado para a área de transferência`,copyFailed:`Não foi possível copiar o log`,openLog:`Ver log de execução`,close:`Fechar`},ae={open:`Ver logs de {{command}}`,logsTitle:`Logs do processo`,logsDescription:`Saída ao vivo e histórico salvo deste processo.`,close:`Fechar logs`,command:`Comando`,directory:`Diretório`,exitCode:`Código de saída: {{code}}`,signal:`Sinal: {{signal}}`,search:`Pesquisar nos logs…`,source:`Origem da saída`,allSources:`Toda a saída`,pause:`Pausar`,resume:`Retomar`,follow:`Seguir`,copy:`Copiar logs visíveis`,download:`Descarregar logs visíveis`,stop:`Parar processo`,stopCommand:`Parar {{command}}`,stopFailed:`Não foi possível parar o processo. Tente novamente.`,truncated:`É apresentada uma janela limitada de logs. Saída anterior ou linhas longas podem ser omitidas. Copiar e descarregar incluem apenas esta vista.`,paused:`Vista em pausa. O processo continua a funcionar.`,loadFailed:`Não foi possível carregar os logs. A retenção pode ter expirado; a saída já carregada continua visível.`,retry:`Tentar novamente`,copied:`Logs visíveis copiados.`,exportFailed:`Não foi possível exportar os logs. Tente novamente.`,output:`Saída do processo`,loading:`A carregar logs…`,noMatches:`Nenhuma saída correspondente.`,empty:`Ainda não há saída.`,lineCount:`{{count}} de {{total}} linhas`,exportHint:`A exportação inclui apenas o filtro atual e a saída retida.`,status:{starting:`A iniciar`,running:`Em execução`,stopping:`A parar`,exited:`Terminado`,killed:`Parado`,failed:`Falhou`,interrupted:`Desconectado`},repository:`Repositório`,history:{button:`Processos`,title:`Processos da missão`,open:`Ver histórico de processos`,description:`Consulte processos ativos e logs salvos de execuções anteriores.`,search:`Buscar comando ou repositório…`,refresh:`Atualizar histórico`,close:`Fechar histórico de processos`,back:`Voltar aos processos`,loading:`Carregando histórico de processos…`,empty:`Ainda não há processos registrados nesta missão.`,noMatches:`Nenhum processo correspondente.`,loadFailed:`Não foi possível carregar o histórico. As entradas já carregadas continuam disponíveis.`,showMore:`Mostrar mais`,count:`Processos: {{count}}`},interruptedHint:`O Specrails deixou de monitorar este processo. Seu estado no sistema operacional é desconhecido; os logs salvos continuam disponíveis.`,persistenceFailed:`Não foi possível salvar o histórico do processo. A saída disponível continua visível.`},oe={detach:`Abrir numa janela separada`,attach:`Voltar à janela principal`,detached:`Esta missão está aberta noutra janela.`,focus:`Mostrar janela da missão`,loading:`A mover a missão…`,failed:`Não foi possível mover esta missão. O rascunho foi preservado.`,dismiss:`Fechar aviso`,wrongMission:`Abre esta missão antes de a mover.`,finishPending:`Conclui a operação em curso ou guarda ou cancela a mensagem ou a captura antes de mover a missão.`},se={heading:`Lançamento de rail`,rail:`Rail {{index}}`,newRail:`Novo rail`,play:`Play`,launching:`A lançar…`,dismiss:`Descartar`,playHint:`Ajuste o que quiser e depois prima Play para lançar sob a sua própria autoridade.`,pending:`A preparar uma proposta de lançamento…`,unreadable_one:`Não foi possível ler a proposta de lançamento do agente.`,unreadable_other:`Não foi possível ler {{count}} propostas de lançamento.`,pinnedMarker:`Proposta de lançamento fixada acima do compositor`,effortDefault:`Esforço padrão`,profileNone:`Sem perfil`,status:{proposal:`Proposta`,ready:`Pronto`,blocked:`Requer atenção`,loading:`A verificar…`},availability:{free:`livre`,busy:`em execução`,pending_decision:`a aguardar uma decisão`,on_review:`em revisão`},fields:{rail:`Rail`,newRailName:`Nome do novo rail (opcional)`,railName:`Nome do rail`,addSpec:`Adicionar spec`,removeSpec:`Remover #{{id}}`,loop:`Loop`,engine:`Motor de IA`,model:`Modelo`,effort:`Esforço de raciocínio`,profile:`Perfil de agentes`,targetPr:`PR de destino #`,baseBranch:`Branch base`},notes:{railMissing:`O Rail {{index}} já não existe — escolha outro rail ou crie um.`,railBusy:`O Rail {{index}} está {{state}} — não é possível lançar aí.`,useFree:`Usar o Rail {{index}}`,specsDropped:`Já não fazem parte deste projeto: {{ids}}`,engineStale:`{{engine}} não foi detetado nesta máquina — será usado {{fallback}}.`,modelStale:`{{model}} não está disponível — será usado {{fallback}}.`},block:{noProject:`Esta missão não está fixada a nenhum projeto.`,loadFailed:`Não foi possível carregar os rails do projeto.`,noSpecs:`Adicione pelo menos uma spec para lançar.`,railLimit:`Os {{max}} rails já existem e nenhum está livre.`},errors:{tickets_in_flight:`Uma destas specs já está em execução noutro rail.`,pr_decision_pending:`Este rail está a aguardar uma decisão sobre a PR.`,rail_limit_reached:`O projeto já tem o número máximo de rails.`,invalid_base_branch:`Essa branch base não existe localmente.`,base_branch_requires_isolation:`Uma branch base requer isolamento por worktree (um repositório git com commits).`,target_pr_requires_pr_mode:`Uma PR de destino requer isolamento por worktree (um repositório git com commits).`,invalid_response:`Resposta inesperada do servidor.`},stub:{launched:`Lançado → Rail {{rail}}`,dismissed:`Proposta descartada`,viewRun:`Ver run`,goToCard:`Ir para o card`,goToCardTitle:`Ir para o card de implementação deste lançamento`,viewRunTitle:`Abrir o log ao vivo do run`}},ce={status:{running:`Em execução`,paused:`Em pausa`,succeeded:`Concluído`,failed:`Falhou`,stalled:`Parado`,cancelled:`Cancelado`,unknown:`Desconhecido`},title:{running:`A implementar no checkout do projeto…`,paused:`Requer uma decisão humana`,succeeded:`Implementação concluída`,failed:`A implementação falhou`,stalled:`A implementação parou`,cancelled:`Run cancelado`,unknown:`Estado do run desconhecido`},noDeliveryNote:`Sem fase de PR — este projeto não tem repositório git nem commits, por isso o trabalho foi aplicado diretamente na pasta do projeto.`,noDeliveryHint:`A executar diretamente na pasta do projeto (sem repositório git nem commits — não será proposta nenhuma PR).`,failure:{title:`Porque parou`,step:`passo {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Retomar`,approve:`Aprovar`,recover:`Recuperar e tentar novamente`,relaunch:`Relançar`},relaunchSent:`Rail {{index}} relançado — um novo cartão acompanhará o run.`,relaunchFailed:`Não foi possível relançar o rail`,relaunchBlockedActive:`O rail ainda tem um run ativo`},le={marker:`O Rail {{rail}} falhou: {{code}}`,openCard:`Abrir cartão`,briefing:{title:`Relatório automático da falha`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};
1
+ var e=`Controle de missões`,t=`Opere o Specrails conversando`,n=`Controle de missões`,r=`Peça ao agente o que quiser…`,i=`Enviar`,a=`Parar`,o=`Copiar`,s={openPreview:`Pré-visualizar {{name}}`,openDownload:`Transferir {{name}}`,previewTitle:`Pré-visualização de {{name}}`,downloadTitle:`Transferir ficheiro?`,downloadPrompt:`Este ficheiro não pode ser pré-visualizado aqui. Queres transferi-lo?`,download:`Transferir`,cancelDownload:`Agora não`,loading:`A preparar ficheiro…`,loadFailed:`Não foi possível carregar o anexo`,loadError:`Não foi possível carregar o anexo: {{error}}`},c=`Maximizar`,l=`Restaurar`,u=`Minimizar`,d=`Fechar`,f=`Nova missão`,p=`Qual é a missão?`,m=`Escolha um projeto e depois pergunte. O quadro é atualizado ao vivo enquanto o agente trabalha.`,h=`Pensando…`,g=`Conectando…`,_=`Consultando o app…`,v={compact:`Compacto`,comfortable:`Confortável`,max:`Maximizar`},y={label:`Modelo`,loading:`Carregando modelos…`,unavailable:`Modelos indisponíveis`},b={hint:`Explorando histórico — escreva para editar, ↑↓ para navegar`},x={queued:`Na fila`,send:`Enviar mensagem`,sendHint:`Enfileirar para o próximo turno. Escolha «Orientar» em uma mensagem na fila para enviá-la sem interromper o modelo.`,placeholder:`Adicionar uma mensagem à fila…`,delivered:`Entregue ao agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelada antes da entrega`,steer:`Orientar`,steerHint:`Enviar sem interromper o modelo`,steering:`Enviando ao agente…`,remove:`Excluir mensagem da fila`,more:`Opções da mensagem`,edit:`Editar`,actionConflict:`Esta mensagem já está sendo entregue ou não está mais na fila.`,actionFailed:`Não foi possível atualizar a mensagem na fila. Tente novamente.`},S={sent:`Enviado ao agente`,received:`Entregue ao agente`,read:`Lido pelo agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelado antes da entrega`},C={editing:`Editando mensagem pendente {{n}} de {{m}}`,hint:`↑↓ para navegar · Enter salva · Esc cancela`,save:`Salvar mensagem pendente`,cancel:`Cancelar edição`,dispatched:`Essa mensagem já foi entregue; seu texto foi mantido como rascunho`,saveFailed:`Não foi possível salvar a mensagem pendente`},w={branch:`Branch`,detached:`(detached)`,dirty:`Alterações sem commit`,switched:`Mudou para {{branch}}`,switchFailed:`Não foi possível trocar de branch`,lockedWhileWorking:`Branch bloqueada enquanto o agente trabalha`,searchPlaceholder:`Buscar branches…`,noMatches:`Nenhuma branch corresponde`,worktrees:`Worktrees`,worktreePathCopied:`Caminho do worktree copiado`,copyWorktreePath:`Copiar caminho do worktree`,repository:`Repositório`,repositoryUnavailable:`Repositório indisponível`,loadFailed:`Estado do Git indisponível`,notGit:`Pasta de contexto · sem Git`,retry:`Tentar novamente`},T={label:`Provedor`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ para mudar`,observe:{name:`Observa`,desc:`Somente leitura — nada muda`},edit:{name:`Edita`,desc:`Criar e editar (reversível)`},operate:{name:`Opera`,desc:`Lançar IA — tem custo`},autonomous:{name:`Autônomo`,desc:`Excluir e encerrar — irreversível`},lockedTitle:`Precisa de um nível superior`,lockedBody:`Essa ação precisa do nível "{{level}}". Você está no "{{current}}".`,raiseHint:`⇧⇥ para aumentar o nível, ou peça de outra forma.`},D={title:`Confirmar ação`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Aprovar`,cancel:`Cancelar`,dontAskAgain:`Não perguntar de novo nesta sessão`,approved:`Aprovado`,cancelled:`Cancelado`},O={home:`Início`,searchPlaceholder:`Fale com o Specrails…`,searchProjectsPlaceholder:`Buscar projetos…`,recents:`Recentes`,allProjects:`Todos os projetos`,searchAll:`Buscar em todos os projetos`,addProject:`Adicionar projeto…`,homeHint:`Nenhum projeto selecionado — operando em todos os projetos.`,askCreateOrSearch:`Nenhum projeto está selecionado. Você quer criar um novo projeto ou buscar em todos os projetos?`},k={remove:`Remover {{label}}`,addContextAction:`Adicionar contexto ou ação`,filtering:`Filtrando "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Sem resultados`,noMatchesFor:`Sem resultados para "{{query}}"`,mode:{reference:{title:`Referência`,hint:`@ projetos, specs, missões`},trace:{title:`Traço`,hint:`# jobs, execuções, IDs`},action:{title:`Ação`,hint:`/ comandos para este contexto`}},plus:{reference:`Referência`,referenceHint:`Projetos, specs, missões`,trace:`Traço`,traceHint:`Jobs, execuções, IDs`,action:`Ação`,actionHint:`Criar, lançar, inspecionar`,fileAttachment:`Anexo de arquivo`,fileAttachmentHint:`Adicionar docs, imagens, logs`,browserCapture:`Captura do navegador`,browserCaptureHint:`Capturar uma área da página para esta missão`},railGroup:`Rails`,railGroupInUse:`Rails em uso`},A={label:`Trocar de missão`,untitled:`Nova missão`,new:`Nova missão`,searchPlaceholder:`Pesquisar missões…`,noMatches:`Nenhuma missão corresponde`,working:`O agente está trabalhando`,queuedBadge:`{{n}} na fila`,delete:`Excluir missão "{{title}}"`,deleteConfirm:`Excluir?`,deleteLiveConfirm:`O agente está trabalhando — excluir mesmo assim?`,confirmDelete:`Confirmar exclusão`,cancelDelete:`Manter missão`,deleteFailed:`Não foi possível excluir a missão`},j={title:`Nenhum provedor de IA instalado`,body:`O agente precisa de Claude, Codex, Gemini ou Kimi na sua máquina. Instale um e reabra o agente para começar a conversar.`,placeholder:`Instale um provedor de IA para usar o agente…`},M={title:`O MCP do Specrails está desligado`,body:`O agente precisa do servidor MCP integrado para operar o app.`,enable:`Ativar o MCP do Specrails`,enabling:`Ativando…`,enabled:`MCP ativado`},N={live:`ao vivo`,queued:`na fila`,running:`em execução`,done:`concluído`,failed:`falhou`},P={generic:`Algo deu errado. Tente novamente.`,busy:`O agente está ocupado. Tente novamente em um instante.`},F={kindAgent:`Missão do agente`},I=`Nova missão`,L=`Mudar para o Controle de missões`,R=`Mudar para o quadro`,z=`Buscar`,B=`Início`,V=`Missões favoritas`,H=`Sem título`,U={title:`No workspace`,terminal:`Terminal`,files:`Arquivos`,browser:`Navegador`,requiresProject:`Selecione um projeto para usar esta ferramenta`,resizeCode:`Redimensionar painel de código`,closeFiles:`Fechar código`,browserConfirm:`Adicionar ao agente`,browserSelectStart:`Selecionar para adicionar à missão`,browserCaptured:`Captura adicionada`,uploadFailed:`Falha no upload`,requiresConversation:`Inicie uma missão para usar esta ferramenta`,jobs:`Jobs`,closeJobs:`Fechar jobs`,resizeJobs:`Redimensionar painel de jobs`,noJobs:`Ainda não há jobs — peça ao agente para lançar um`,analytics:`Analítica`,closeAnalytics:`Fechar analítica`,resizeAnalytics:`Redimensionar painel de analítica`},W=`Anexar arquivo`,G=`Excluir "{{title}}"`,K=`Confirmar exclusão de "{{title}}"`,q=`Adicionar "{{title}}" aos favoritos`,J=`Remover "{{title}}" dos favoritos`,Y=`confirmar?`,X=`Este provedor ainda não lê imagens — anexe arquivos de texto`,Z={label:`Esforço`,minimal:`Mínimo`,low:`Baixo`,medium:`Médio`,high:`Alto`,xhigh:`Extra alto`,max:`Máximo`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Ação em andamento…","create-pr":"Criando PR…","publish":"Publicando…","discard":"Descartando…","dismiss":"Encerrando acompanhamento…","poll-merge":"Verificando merge…","reopen":"Reabrindo…","merge-local":"Integrando localmente…","recover-and-retry":"A criar o commit e a tentar novamente o push do resultado preservado…","acknowledge-no-changes":"Marcando como concluído…"},"markDone":"Marcar como concluídas","refine":"Refinar","completedNote":"Confirmado — as specs foram movidas para Concluído","partialSummary":"{{succeeded}} de {{total}} concluídas; {{failed}} falharam","unit":{"failed":"implementação falhou","blocked":"entrega bloqueada","noChanges":"sem alterações","succeeded":"pronta"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Ramo base","openPr":"Abrir PR","existingPr":"PR existente","title":{"no_changes":"Nenhuma alteração necessária","partial":"Implementação parcial","delivery_blocked":"Implementação concluída — a entrega requer atenção","update_failed":"Implementação concluída — falha na atualização","pr_closed":"PR fechada sem merge","superseded":"Substituída por uma execução mais recente","existing_pr_updated":"PR existente atualizada","building":"A implementar num worktree isolado…","buildingExistingPr":"A aplicar alterações numa PR existente…","paused":"Precisa de decisão humana","on_review":"Implementação pronta para revisão","pr_draft":"PR em rascunho criada","pr_draft_degraded":"Entrega da PR incompleta","pr_ready":"PR pronta para merge","implementation_failed":"Implementação falhou","pr_failed":"Falha ao criar a PR","merged":"Merge da PR concluído","discarded":"Descartada"},"buildingHint":"Quando terminar, ser-lhe-á perguntado se quer criar a PR.","buildingExistingPrHint":"O Specrails está a trabalhar no ramo da PR existente e irá enviar as alterações de revisão para essa mesma PR.","paused":"Implementação em pausa","pausedForRun":"Em pausa em {{ref}}","resume":"Retomar","stopExecution":"Parar execução","stopExecutionSent":"Sinal de paragem enviado","stopExecutionFailed":"Não foi possível parar a execução","createPr":"Criar PR","publish":"Publicar","checkout":"Mudar para o branch","openReview":"Revisar","openReviewTooltip":"Abrir a revisão em linguagem clara","checkoutTooltip":"Fazer checkout de {{branch}} na pasta principal do projeto","checkoutSuccess":"Checkout feito em {{branch}}","checkoutFailed":"Não foi possível fazer checkout da branch de implementação","checkoutDirtyTitle":"Checkout bloqueado para proteger as suas alterações","checkoutDirtyBody":"A pasta principal do projeto contém alterações sem commit. Faça commit ou stash e tente novamente. Não foi feita qualquer alteração.","checkoutSafetyUnknownTitle":"Checkout em pausa porque não foi possível verificar a segurança","checkoutSafetyUnknownBody":"O Specrails não conseguiu ler o estado do Git na pasta principal do projeto. Nada foi libertado ou alterado. Tente novamente quando o Git estiver disponível.","checkoutNotDeliverableTitle":"Esta branch não contém a implementação preservada","checkoutNotDeliverableBody":"O commit exato da entrega ainda não foi verificado. Em alternativa, inspecione ou recupere o resultado local.","inspectLocalResult":"Inspecionar resultado local","inspectLocalResultTooltip":"Mostrar o worktree isolado preservado e copiar o respetivo caminho","localResultPathCopied":"Caminho do resultado local copiado","localResultPath":"Resultado local preservado","localResultUnavailableHere":"Não existe nenhum worktree recuperável neste computador. Consulte o log da execução no computador onde foi iniciada.","recoverAndRetry":"Fazer commit e tentar push novamente","recoverAndRetryVerified":"O commit recuperado {{sha}} está verificado na PR","recoveryStillBlocked":"A recuperação local ainda requer atenção","recheckRecovery":"Verificar novamente","recoveryUnavailable":"Não foi possível verificar a recuperação neste computador","recoveryUnavailableBody":"O Specrails não conseguiu comprovar com segurança um único resultado pertencente à entrega neste clone. Nada foi alterado ou removido. Consulte os detalhes da etapa e os registos de execução. Se o run foi executado noutro computador, abra o Specrails nele e verifique novamente.","recoveryDetailSummary":"Detalhe técnico da recuperação","retry":"Tentar novamente","retryPr":"Tentar PR novamente","checkMerge":"Verificar merge","verifyPr":"Verificar PR","discard":"Descartar","confirmDiscard":"Confirmar descarte?","mergedNote":"Merge concluído — specs movidas para Concluído","discardedNote":"Descartada — specs devolvidas ao backlog","implementationFailedNote":"A execução de implementação falhou antes de produzir algo entregável. Abra o log da execução para inspecionar a falha e descarte este cartão antes de relançar.","dismiss":"Encerrar acompanhamento","discardLocalResult":"Descartar resultado local","retryPush":"Tentar push novamente","retryPushVerified":"Push verificado · o commit {{sha}} está na PR","commitAlreadyVerified":"O commit {{sha}} já está verificado na PR","deliveryCommit":"commit {{sha}}","reopen":"Reabrir","createPartialPr":"Criar PR com {{count}}","supersededNote":"Uma execução de implementação mais recente substituiu este cartão.","noChangesExisting":"Nenhuma nova alteração foi necessária; a PR existente permanece inalterada.","noChangesNote":"Nenhuma alteração de código foi necessária. Marque as specs como concluídas ou devolva-as ao backlog para refinamento.","deliveryNeedsAttention":"Implementação concluída; a entrega requer atenção","deliveryBlockedNote":"A implementação foi concluída com sucesso, mas a entrega está bloqueada. Revise os detalhes da etapa e os logs antes de descartar o resultado local.","partialDeliveryBlockedNote":"Parte da implementação foi concluída com sucesso, mas ainda não há nada que possa ser entregue com segurança. Reveja as evidências por unidade e os logs antes de escolher a próxima ação.","retryPushNote":"A implementação foi concluída com sucesso e as alterações estão seguras localmente. Tente novamente apenas o push.","cleanupIncomplete_one":"Limpeza incompleta ({{count}} aviso)","cleanupIncomplete_other":"Limpeza incompleta ({{count}} avisos)","safetyArchiveTitle":"Arquivo de segurança ({{count}})","safetyArchiveHint":"Os ficheiros temporários do espaço de trabalho foram preservados fora da PR por precaução. Pode inspecioná-los ou removê-los manualmente.","confirm":{"recoverAndRetryTitle":"Fazer commit e enviar o resultado preservado?","recoverAndRetryBody":"O Specrails utilizará apenas o worktree isolado ou o ramo registado compatível com avanço rápido para {{branch}}. Se necessário, criará um commit com os ficheiros entregáveis e enviará esse commit exato apenas se a PR continuar aberta nos ramos de origem e destino esperados. A pasta principal do projeto e as respetivas alterações sem commit não serão afetadas.","recheckRecoveryTitle":"Verificar este computador novamente?","recheckRecoveryBody":"O Specrails examinará novamente neste clone o worktree, a branch, as refs, os reflogs e os objetos Git órfãos pertencentes à entrega de {{branch}}. Se comprovar um único resultado, poderá fazer commit das alterações isoladas e repetir o push exato. A pasta principal do projeto não será alterada.","noChangesDoneTitle":"Marcar estas specs como concluídas?","noChangesDoneBody":"A implementação confirmou que nenhuma alteração de código é necessária. As specs serão movidas para Concluído e o worktree sem alterações será limpo.","refineTitle":"Refinar estas specs?","refineBody":"O resultado sem alterações será fechado e as specs voltarão ao backlog para refinamento. Os logs de execução permanecerão disponíveis.","mergeLocalTitle":"Integrar localmente?","mergeLocalBody":"As branches entregues serão integradas em {{base}} localmente. As alterações existentes são preservadas; alterações sobrepostas podem precisar de resolução antes da integração.","freshDiscardTitle":"Descartar esta entrega?","freshDiscardBody":"A PR será fechada sem excluir o branch remoto. Apenas branches locais e worktrees pertencentes ao SpecRails que ainda estejam no commit registrado serão removidos; qualquer item alterado será preservado com um aviso. As specs voltarão ao backlog. Os recursos locais removidos não podem ser recuperados.","implementationFailedDiscardTitle":"Descartar esta entrega com falha?","implementationFailedDiscardBody":"O cartão será fechado e as specs voltarão ao backlog. O trabalho local e os branches serão preservados para inspeção. Apenas recursos comprovadamente seguros para limpeza poderão ser removidos.","dismissTitle":"Encerrar este acompanhamento?","dismissBody":"Este cartão de acompanhamento será encerrado. Seu worktree só será removido se isso ainda for seguro; caso contrário, será preservado com um aviso. A PR existente, seu branch e o estado da revisão permanecerão inalterados.","discardLocalTitle":"Descartar o resultado local?","discardLocalBody":"A iteração local recuperável só será removida se isso ainda for seguro; se tiver sido alterada, será preservada com um aviso. Qualquer PR existente e seu branch permanecerão inalterados. Um resultado removido não pode ser recuperado."},"degraded":{"pushed":"O ramo foi enviado mas não foi possível criar a PR — tente novamente para concluir.","localOnly":"As alterações foram montadas localmente mas não enviadas — tente novamente para publicar a PR."},"alreadyResolved":"Já resolvida noutro lugar","actionFailed":"A ação falhou","notMergedYet":"Ainda sem merge","commitMissingRetry":"O commit da entrega não está mais na PR. Você pode tentar o push novamente.","prVerifiedWaiting":"Commit {{sha}} verificado · aguardando merge","viewLog":"Ver o registro de execução de {{ref}}","runElapsedAria":"{{elapsed}} decorridos","runCostAria":"{{cost}} gastos","pinned":{"label":"Fixada","marker":"Cartão de implementação — fixado acima","collapse":"Minimizar cartão fixado","expand":"Expandir cartão fixado","expandCard":"Expandir este cartão","collapseCard":"Minimizar este cartão","collapsed_one":"Cartão de implementação","collapsed_other":"{{count}} cartões de implementação","state":{"completed":"Concluída","no_changes":"Sem alterações","pr_closed":"Fechada","superseded":"Substituída","building":"Em curso","on_review":"Revisão","pr_draft":"PR rascunho","pr_ready":"Publicada","implementation_failed":"Falhou","pr_failed":"Falhou","merged":"Integrada","discarded":"Descartada"}},"mergeLocal":"Integrar localmente","mergeLocalTooltip":"Faz merge dos branches entregues em {{base}} no seu checkout local (sem GitHub)","mergeLocalBlockedDirty":"Não é possível integrar: as alterações locais em {{base}} sobrepõem-se à entrega. Faça commit ou stash dessas alterações e tente novamente.","mergeLocalBlockedBranch":"Não é possível integrar: seu checkout está em {{current}}, não em {{base}}. Mude para {{base}} e tente de novo.","mergedLocally":"Integrado em {{base}} localmente","discardStackedNote":"Os rails seguintes deste marco foram construídos sobre esta entrega. Descartá-la pausa a cadeia do marco; os rails seguintes mantêm o seu trabalho."}`),$={heading:`Rascunho da spec`,drafting:`Atualizando rascunho…`,acceptanceCriteria:`Critérios de aceitação`,untitled:`Spec sem título`,expand:`Ver descrição completa`,collapse:`Recolher descrição`},ee={heading:`Enquadramento`,framing:`A enquadrar o pedido…`,restated:`O que entendi`,alternative:`Também poderia significar`,pick:`Responder com isto`,touches:`Tocaria em`,discriminator:`Qual das duas?`,assumptions:`O que estou a assumir`,unknowns:`Ainda em aberto`},te={openTicket:`Abrir spec #{{id}}`,openPullRequest:`Abrir PR #{{id}}`,openJob:`Abrir job {{id}}`,openLoop:`Abrir loop {{id}}`,ticketNotFound:`Spec #{{id}} não encontrada — pode ter sido excluída`,pullRequestUrlMissing:`A PR #{{id}} foi mencionada sem URL`,pullRequestNotFound:`A PR #{{id}} não foi encontrada neste projeto`,jobNotFound:`Job não encontrado — pode ter sido excluído`,loopNotFound:`Loop não encontrado — pode ter sido excluído`,lookupFailed:`Não foi possível verificar a referência — tente novamente`},ne={untitled:`Missão sem título`,menu:`Menu da missão`,rename:`Renomear`,renamePlaceholder:`Nome da missão`,renameHint:`Duplo clique para renomear`,renameFailed:`Não foi possível renomear`,addFavorite:`Adicionar aos favoritos`,removeFavorite:`Remover dos favoritos`,copyName:`Copiar nome da missão`,copyId:`Copiar ID da missão`,copyProject:`Copiar nome do projeto`,copyProjectPath:`Copiar caminho do projeto`,copyFailed:`Não foi possível copiar`,copyTranscript:`Copiar transcrição`,copyTranscriptSuccess:`Transcrição copiada`,copyTranscriptFailed:`Não foi possível copiar a transcrição`,exportTranscript:`Exportar transcrição (.txt)`,exportTranscriptSuccess:`Exportação da transcrição iniciada`,exportTranscriptFailed:`Não foi possível exportar a transcrição`,delete:`Excluir missão`,deleteConfirm:`Excluir esta missão? Não pode ser desfeito.`,deleteFailed:`Não foi possível excluir a missão`},re=`O que devemos construir agora?`,ie={title:`Log de execução`,live:`Ao vivo`,empty:`Ainda não há atividade de ferramentas neste turno.`,output:`Saída`,error:`Erro`,copyAll:`Copiar log completo`,copyEntry:`Copiar entrada`,copySuccess:`Log copiado para a área de transferência`,copyFailed:`Não foi possível copiar o log`,openLog:`Ver log de execução`,close:`Fechar`},ae={open:`Ver logs de {{command}}`,logsTitle:`Logs do processo`,logsDescription:`Saída ao vivo e histórico salvo deste processo.`,close:`Fechar logs`,command:`Comando`,directory:`Diretório`,exitCode:`Código de saída: {{code}}`,signal:`Sinal: {{signal}}`,search:`Pesquisar nos logs…`,source:`Origem da saída`,allSources:`Toda a saída`,pause:`Pausar`,resume:`Retomar`,follow:`Seguir`,copy:`Copiar logs visíveis`,download:`Descarregar logs visíveis`,stop:`Parar processo`,stopCommand:`Parar {{command}}`,stopFailed:`Não foi possível parar o processo. Tente novamente.`,truncated:`É apresentada uma janela limitada de logs. Saída anterior ou linhas longas podem ser omitidas. Copiar e descarregar incluem apenas esta vista.`,paused:`Vista em pausa. O processo continua a funcionar.`,loadFailed:`Não foi possível carregar os logs. A retenção pode ter expirado; a saída já carregada continua visível.`,retry:`Tentar novamente`,copied:`Logs visíveis copiados.`,exportFailed:`Não foi possível exportar os logs. Tente novamente.`,output:`Saída do processo`,loading:`A carregar logs…`,noMatches:`Nenhuma saída correspondente.`,empty:`Ainda não há saída.`,lineCount:`{{count}} de {{total}} linhas`,exportHint:`A exportação inclui apenas o filtro atual e a saída retida.`,status:{starting:`A iniciar`,running:`Em execução`,stopping:`A parar`,exited:`Terminado`,killed:`Parado`,failed:`Falhou`,interrupted:`Desconectado`},repository:`Repositório`,history:{button:`Processos`,title:`Processos da missão`,open:`Ver histórico de processos`,description:`Consulte processos ativos e logs salvos de execuções anteriores.`,search:`Buscar comando ou repositório…`,refresh:`Atualizar histórico`,close:`Fechar histórico de processos`,back:`Voltar aos processos`,loading:`Carregando histórico de processos…`,empty:`Ainda não há processos registrados nesta missão.`,noMatches:`Nenhum processo correspondente.`,loadFailed:`Não foi possível carregar o histórico. As entradas já carregadas continuam disponíveis.`,showMore:`Mostrar mais`,count:`Processos: {{count}}`},interruptedHint:`O Specrails deixou de monitorar este processo. Seu estado no sistema operacional é desconhecido; os logs salvos continuam disponíveis.`,persistenceFailed:`Não foi possível salvar o histórico do processo. A saída disponível continua visível.`},oe={detach:`Abrir numa janela separada`,attach:`Voltar à janela principal`,detached:`Esta missão está aberta noutra janela.`,focus:`Mostrar janela da missão`,loading:`A mover a missão…`,failed:`Não foi possível mover esta missão. O rascunho foi preservado.`,dismiss:`Fechar aviso`,wrongMission:`Abre esta missão antes de a mover.`,finishPending:`Conclui a operação em curso ou guarda ou cancela a mensagem ou a captura antes de mover a missão.`},se={heading:`Lançamento de rail`,rail:`Rail {{index}}`,newRail:`Novo rail`,play:`Play`,launching:`A lançar…`,dismiss:`Descartar`,playHint:`Ajuste o que quiser e depois prima Play para lançar sob a sua própria autoridade.`,pending:`A preparar uma proposta de lançamento…`,unreadable_one:`Não foi possível ler a proposta de lançamento do agente.`,unreadable_other:`Não foi possível ler {{count}} propostas de lançamento.`,pinnedMarker:`Proposta de lançamento fixada acima do compositor`,effortDefault:`Esforço padrão`,profileNone:`Sem perfil`,status:{proposal:`Proposta`,ready:`Pronto`,blocked:`Requer atenção`,loading:`A verificar…`},availability:{free:`livre`,busy:`em execução`,pending_decision:`a aguardar uma decisão`,on_review:`em revisão`},fields:{rail:`Rail`,newRailName:`Nome do novo rail (opcional)`,railName:`Nome do rail`,addSpec:`Adicionar spec`,removeSpec:`Remover #{{id}}`,loop:`Loop`,engine:`Motor de IA`,model:`Modelo`,effort:`Esforço de raciocínio`,profile:`Perfil de agentes`,targetPr:`PR de destino #`,baseBranch:`Branch base`},notes:{railMissing:`O Rail {{index}} já não existe — escolha outro rail ou crie um.`,railBusy:`O Rail {{index}} está {{state}} — não é possível lançar aí.`,useFree:`Usar o Rail {{index}}`,specsDropped:`Já não fazem parte deste projeto: {{ids}}`,engineStale:`{{engine}} não foi detetado nesta máquina — será usado {{fallback}}.`,modelStale:`{{model}} não está disponível — será usado {{fallback}}.`},block:{noProject:`Esta missão não está fixada a nenhum projeto.`,loadFailed:`Não foi possível carregar os rails do projeto.`,noSpecs:`Adicione pelo menos uma spec para lançar.`,railLimit:`Os {{max}} rails já existem e nenhum está livre.`},errors:{tickets_in_flight:`Uma destas specs já está em execução noutro rail.`,pr_decision_pending:`Este rail está a aguardar uma decisão sobre a PR.`,rail_limit_reached:`O projeto já tem o número máximo de rails.`,invalid_base_branch:`Essa branch base não existe localmente.`,base_branch_requires_isolation:`Uma branch base requer isolamento por worktree (um repositório git com commits).`,target_pr_requires_pr_mode:`Uma PR de destino requer isolamento por worktree (um repositório git com commits).`,invalid_response:`Resposta inesperada do servidor.`},stub:{launched:`Lançado → Rail {{rail}}`,dismissed:`Proposta descartada`,viewRun:`Ver run`,goToCard:`Ir para o card`,goToCardTitle:`Ir para o card de implementação deste lançamento`,viewRunTitle:`Abrir o log ao vivo do run`},followUp:{title:`Resolver {{count}} comentário(s) de revisão do PR`,excluded:`Não alterar`,verification:`Verificar`,specUntouched:`A spec e a descrição no Jira não são editadas — o escopo viaja com a execução.`,source:{pasted:`colado`,github:`do GitHub`}}},ce={status:{running:`Em execução`,paused:`Em pausa`,succeeded:`Concluído`,failed:`Falhou`,stalled:`Parado`,cancelled:`Cancelado`,unknown:`Desconhecido`},title:{running:`A implementar no checkout do projeto…`,paused:`Requer uma decisão humana`,succeeded:`Implementação concluída`,failed:`A implementação falhou`,stalled:`A implementação parou`,cancelled:`Run cancelado`,unknown:`Estado do run desconhecido`},noDeliveryNote:`Sem fase de PR — este projeto não tem repositório git nem commits, por isso o trabalho foi aplicado diretamente na pasta do projeto.`,noDeliveryHint:`A executar diretamente na pasta do projeto (sem repositório git nem commits — não será proposta nenhuma PR).`,failure:{title:`Porque parou`,step:`passo {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Retomar`,approve:`Aprovar`,recover:`Recuperar e tentar novamente`,relaunch:`Relançar`},relaunchSent:`Rail {{index}} relançado — um novo cartão acompanhará o run.`,relaunchFailed:`Não foi possível relançar o rail`,relaunchBlockedActive:`O rail ainda tem um run ativo`},le={marker:`O Rail {{rail}} falhou: {{code}}`,openCard:`Abrir cartão`,briefing:{title:`Relatório automático da falha`}},ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,F as chip,d as close,r as composerPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,o as copy,ue as default,M as degraded,G as deleteConversation,Z as effort,m as emptyHint,p as emptyTitle,re as emptyTitleCodeRain,P as error,V as favoriteMissions,w as git,ne as header,b as history,B as home,X as imagesUnsupported,c as maximize,u as minimize,A as mission,y as model,I as newAgent,f as newConversation,j as noProvider,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,z as search,i as send,v as size,$ as specDraft,a as stop,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,H as untitled,oe as window,U as workspace};