@vibe80/vibe80 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +52 -0
- package/bin/vibe80.js +176 -0
- package/client/dist/assets/DiffPanel-C_IGzKI5.js +1 -0
- package/client/dist/assets/ExplorerPanel-BtlyAT00.js +11 -0
- package/client/dist/assets/LogsPanel-BW79JWzR.js +1 -0
- package/client/dist/assets/SettingsPanel-b9B7ygP_.js +1 -0
- package/client/dist/assets/TerminalPanel-C3fc1HbK.js +1 -0
- package/client/dist/assets/browser-e3WgtMs-.js +8 -0
- package/client/dist/assets/index-CgqGyssr.css +32 -0
- package/client/dist/assets/index-DnwKjoj7.js +706 -0
- package/client/dist/assets/vibe80_dark-D7OVPKcU.svg +51 -0
- package/client/dist/assets/vibe80_light-BJK37ybI.svg +50 -0
- package/client/dist/favicon.ico +0 -0
- package/client/dist/favicon.png +0 -0
- package/client/dist/favicon.svg +35 -0
- package/client/dist/index.html +14 -0
- package/client/index.html +16 -0
- package/client/package.json +34 -0
- package/client/public/favicon.ico +0 -0
- package/client/public/favicon.png +0 -0
- package/client/public/favicon.svg +35 -0
- package/client/public/pwa-192x192.png +0 -0
- package/client/public/pwa-512x512.png +0 -0
- package/client/src/App.jsx +3131 -0
- package/client/src/assets/logo_small.png +0 -0
- package/client/src/assets/vibe80_dark.svg +51 -0
- package/client/src/assets/vibe80_light.svg +50 -0
- package/client/src/components/Chat/ChatComposer.jsx +228 -0
- package/client/src/components/Chat/ChatMessages.jsx +811 -0
- package/client/src/components/Chat/ChatToolbar.jsx +109 -0
- package/client/src/components/Chat/useChatComposer.js +462 -0
- package/client/src/components/Diff/DiffPanel.jsx +129 -0
- package/client/src/components/Explorer/ExplorerPanel.jsx +449 -0
- package/client/src/components/Logs/LogsPanel.jsx +80 -0
- package/client/src/components/SessionGate/SessionGate.jsx +874 -0
- package/client/src/components/Settings/SettingsPanel.jsx +212 -0
- package/client/src/components/Terminal/TerminalPanel.jsx +39 -0
- package/client/src/components/Topbar/Topbar.jsx +101 -0
- package/client/src/components/WorktreeTabs.css +419 -0
- package/client/src/components/WorktreeTabs.jsx +604 -0
- package/client/src/hooks/useAttachments.jsx +125 -0
- package/client/src/hooks/useBacklog.js +254 -0
- package/client/src/hooks/useChatClear.js +90 -0
- package/client/src/hooks/useChatCollapse.js +42 -0
- package/client/src/hooks/useChatCommands.js +294 -0
- package/client/src/hooks/useChatExport.js +144 -0
- package/client/src/hooks/useChatMessagesState.js +69 -0
- package/client/src/hooks/useChatSend.js +158 -0
- package/client/src/hooks/useChatSocket.js +1239 -0
- package/client/src/hooks/useDiffNavigation.js +19 -0
- package/client/src/hooks/useExplorerActions.js +1184 -0
- package/client/src/hooks/useGitIdentity.js +114 -0
- package/client/src/hooks/useLayoutMode.js +31 -0
- package/client/src/hooks/useLocalPreferences.js +131 -0
- package/client/src/hooks/useMessageSync.js +30 -0
- package/client/src/hooks/useNotifications.js +132 -0
- package/client/src/hooks/usePaneNavigation.js +67 -0
- package/client/src/hooks/usePanelState.js +13 -0
- package/client/src/hooks/useProviderSelection.js +70 -0
- package/client/src/hooks/useRepoBranchesModels.js +218 -0
- package/client/src/hooks/useRepoStatus.js +350 -0
- package/client/src/hooks/useRpcLogActions.js +19 -0
- package/client/src/hooks/useRpcLogView.js +58 -0
- package/client/src/hooks/useSessionHandoff.js +97 -0
- package/client/src/hooks/useSessionLifecycle.js +287 -0
- package/client/src/hooks/useSessionReset.js +63 -0
- package/client/src/hooks/useSessionResync.js +77 -0
- package/client/src/hooks/useTerminalSession.js +328 -0
- package/client/src/hooks/useToolbarExport.js +27 -0
- package/client/src/hooks/useTurnInterrupt.js +43 -0
- package/client/src/hooks/useVibe80Forms.js +128 -0
- package/client/src/hooks/useWorkspaceAuth.js +932 -0
- package/client/src/hooks/useWorktreeCloseConfirm.js +46 -0
- package/client/src/hooks/useWorktrees.js +396 -0
- package/client/src/i18n.jsx +87 -0
- package/client/src/index.css +5147 -0
- package/client/src/locales/en.json +37 -0
- package/client/src/locales/fr.json +321 -0
- package/client/src/main.jsx +16 -0
- package/client/vite.config.js +62 -0
- package/docs/api/asyncapi.json +1511 -0
- package/docs/api/openapi.json +3242 -0
- package/git_hooks/prepare-commit-msg +35 -0
- package/package.json +36 -0
- package/server/package.json +29 -0
- package/server/scripts/rotate-workspace-secret.js +101 -0
- package/server/src/claudeClient.js +454 -0
- package/server/src/clientEvents.js +594 -0
- package/server/src/clientFactory.js +164 -0
- package/server/src/codexClient.js +468 -0
- package/server/src/config.js +27 -0
- package/server/src/helpers.js +138 -0
- package/server/src/index.js +1641 -0
- package/server/src/middleware/auth.js +93 -0
- package/server/src/middleware/debug.js +89 -0
- package/server/src/middleware/errorTypes.js +60 -0
- package/server/src/providerLogger.js +60 -0
- package/server/src/routes/files.js +114 -0
- package/server/src/routes/git.js +183 -0
- package/server/src/routes/health.js +13 -0
- package/server/src/routes/sessions.js +407 -0
- package/server/src/routes/workspaces.js +296 -0
- package/server/src/routes/worktrees.js +993 -0
- package/server/src/runAs.js +458 -0
- package/server/src/runtimeStore.js +32 -0
- package/server/src/services/auth.js +157 -0
- package/server/src/services/claudeThreadDirectory.js +33 -0
- package/server/src/services/session.js +918 -0
- package/server/src/services/workspace.js +858 -0
- package/server/src/storage/index.js +17 -0
- package/server/src/storage/redis.js +412 -0
- package/server/src/storage/sqlite.js +649 -0
- package/server/src/worktreeManager.js +717 -0
- package/server/tests/README.md +13 -0
- package/server/tests/factories/workspaceFactory.js +13 -0
- package/server/tests/fixtures/workspaceCredentials.json +4 -0
- package/server/tests/integration/routes/workspaces-routes.test.js +626 -0
- package/server/tests/setup/env.js +9 -0
- package/server/tests/unit/helpers.test.js +95 -0
- package/server/tests/unit/services/auth.test.js +181 -0
- package/server/tests/unit/services/workspace.test.js +115 -0
- package/server/vitest.config.js +23 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Provider cannot be disabled: active sessions use it.": "Provider cannot be disabled: active sessions use it.",
|
|
3
|
+
"New file": "New file",
|
|
4
|
+
"Rename": "Rename",
|
|
5
|
+
"File path": "File path",
|
|
6
|
+
"e.g. src/new-file.ts": "e.g. src/new-file.ts",
|
|
7
|
+
"Unable to rename.": "Unable to rename.",
|
|
8
|
+
"Unable to create file.": "Unable to create file.",
|
|
9
|
+
"Unable to delete.": "Unable to delete.",
|
|
10
|
+
"Renamed.": "Renamed.",
|
|
11
|
+
"File created.": "File created.",
|
|
12
|
+
"New folder": "New folder",
|
|
13
|
+
"Folder path": "Folder path",
|
|
14
|
+
"e.g. src/new-folder": "e.g. src/new-folder",
|
|
15
|
+
"Folder created.": "Folder created.",
|
|
16
|
+
"Unable to create folder.": "Unable to create folder.",
|
|
17
|
+
"Deleted.": "Deleted.",
|
|
18
|
+
"Delete \"{{path}}\"? This action is irreversible.": "Delete \"{{path}}\"? This action is irreversible.",
|
|
19
|
+
"Stopped": "Stopped",
|
|
20
|
+
"New worktree": "New worktree",
|
|
21
|
+
"Worktree is stopped. Wake it up before sending a message.": "Worktree is stopped. Wake it up before sending a message.",
|
|
22
|
+
"Claude Code does not natively support forked sessions with directory changes. This feature is experimental.": "Claude Code does not natively support forked sessions with directory changes. This feature is experimental.",
|
|
23
|
+
"binary data": "binary data",
|
|
24
|
+
"Loading untracked files...": "Loading untracked files...",
|
|
25
|
+
"Unable to load file.": "Unable to load file.",
|
|
26
|
+
"User command : {{command}}": "User command : {{command}}",
|
|
27
|
+
"Toggle annotation mode": "Toggle annotation mode",
|
|
28
|
+
"Toggle annotation mode (EXPERIMENTAL)": "Toggle annotation mode (EXPERIMENTAL)",
|
|
29
|
+
"Annotation mode enabled.": "Annotation mode enabled.",
|
|
30
|
+
"Annotation mode disabled.": "Annotation mode disabled.",
|
|
31
|
+
"Usage: /annotation on|off": "Usage: /annotation on|off",
|
|
32
|
+
"Annotate line": "Annotate line",
|
|
33
|
+
"Annotations": "Annotations",
|
|
34
|
+
"Only sent with the next message.": "Only sent with the next message.",
|
|
35
|
+
"No annotations yet.": "No annotations yet.",
|
|
36
|
+
"Write annotation...": "Write annotation..."
|
|
37
|
+
}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
{
|
|
2
|
+
"-----BEGIN OPENSSH PRIVATE KEY-----": "-----BEGIN OPENSSH PRIVATE KEY-----",
|
|
3
|
+
"Access an existing space with your credentials": "Accedez a un espace existant avec vos identifiants",
|
|
4
|
+
"Add to backlog": "Ajouter au backlog",
|
|
5
|
+
"Add attachment": "Ajouter une pièce jointe",
|
|
6
|
+
"AI providers": "Providers IA",
|
|
7
|
+
"AI providers (required)": "Providers IA (obligatoire)",
|
|
8
|
+
"AI providers updated.": "Providers IA mis a jour.",
|
|
9
|
+
"All": "Tout",
|
|
10
|
+
"All changes will be lost. What would you like to do?": "Toutes les modifications seront perdues. Que souhaitez-vous faire ?",
|
|
11
|
+
"Allow default internet access for this session.": "Autoriser l'accès internet par defaut pour cette session.",
|
|
12
|
+
"Allow sharing the Git folder for the main branch by default.": "Autoriser le partage du dossier Git pour la branche principale par defaut.",
|
|
13
|
+
"api_key": "api_key",
|
|
14
|
+
"Applying changes...": "Application de modifications...",
|
|
15
|
+
"Assistant": "Assistant",
|
|
16
|
+
"Attached image": "Image jointe",
|
|
17
|
+
"Added to backlog.": "Ajouté au backlog.",
|
|
18
|
+
"Attachments": "Pièces jointes",
|
|
19
|
+
"Auth {{provider}}": "Auth {{provider}}",
|
|
20
|
+
"auth_json_b64": "auth_json_b64",
|
|
21
|
+
"Authentication failed.": "Echec de l'authentification.",
|
|
22
|
+
"Back": "Revenir",
|
|
23
|
+
"Back to previous view": "Revenir à la vue précédente",
|
|
24
|
+
"Backlog": "Backlog",
|
|
25
|
+
"Show backlog": "Afficher le backlog",
|
|
26
|
+
"Binary file not displayed.": "Fichier binaire non affiche.",
|
|
27
|
+
"Cancel": "Annuler",
|
|
28
|
+
"Chat history": "Historique du chat",
|
|
29
|
+
"Chat tools": "Outils du chat",
|
|
30
|
+
"Claude": "Claude",
|
|
31
|
+
"Clear": "Clear",
|
|
32
|
+
"Clone": "Cloner",
|
|
33
|
+
"Clone a repository to start a new session": "Cloner un depot pour demarrer une nouvelle session",
|
|
34
|
+
"Start a session": "Démarrer une session",
|
|
35
|
+
"Click here to learn more.": "Cliquez ici pour en savoir plus.",
|
|
36
|
+
"Cloning repository...": "Clonage du depot...",
|
|
37
|
+
"Close": "Fermer",
|
|
38
|
+
"Close panel": "Fermer le panneau",
|
|
39
|
+
"Close the worktree?": "Fermer le worktree ?",
|
|
40
|
+
"Codex": "Codex",
|
|
41
|
+
"Codex (OpenAI)": "Codex (OpenAI)",
|
|
42
|
+
"Command": "Commande",
|
|
43
|
+
"Command required.": "Commande requise.",
|
|
44
|
+
"Capture screenshot": "Capturer une capture d'ecran",
|
|
45
|
+
"Screenshot failed.": "Echec de la capture d'ecran.",
|
|
46
|
+
"Screenshot captured.": "Capture d'ecran ajoutee.",
|
|
47
|
+
"Git command required.": "Commande git requise.",
|
|
48
|
+
"Command: {{command}}": "Commande: {{command}}",
|
|
49
|
+
"Commit": "Commit",
|
|
50
|
+
"Commit & Push": "Commit & Push",
|
|
51
|
+
"Completed": "Termine",
|
|
52
|
+
"Configure AI providers": "Configurer les providers IA",
|
|
53
|
+
"Configure AI providers for this workspace.": "Configurez les providers IA pour ce workspace.",
|
|
54
|
+
"Configure the workspace": "Configurer le workspace",
|
|
55
|
+
"Connected": "Connecte",
|
|
56
|
+
"Connecting...": "Connexion...",
|
|
57
|
+
"Continue": "Continuer",
|
|
58
|
+
"Continue on mobile": "Continuer sur mobile",
|
|
59
|
+
"Copy": "Copier",
|
|
60
|
+
"Copy code": "Copier le code",
|
|
61
|
+
"Copy workspace ID": "Copier le workspace ID",
|
|
62
|
+
"Copy workspace secret": "Copier le workspace secret",
|
|
63
|
+
"Create": "Créer",
|
|
64
|
+
"Create a new space for you or your team": "Creez un nouvel espace pour vous ou votre equipe",
|
|
65
|
+
"Create a workspace": "Creer un workspace",
|
|
66
|
+
"Creating": "Creation",
|
|
67
|
+
"Dark mode": "Mode sombre",
|
|
68
|
+
"Debug mode": "Mode débug",
|
|
69
|
+
"Default model": "Modele par defaut",
|
|
70
|
+
"Default reasoning": "Reasoning par defaut",
|
|
71
|
+
"Delete": "Supprimer",
|
|
72
|
+
"Delete session \"{{title}}\"? This action is irreversible.": "Supprimer la session \"{{title}}\" ? Cette action est irreversible.",
|
|
73
|
+
"Delete worktree": "Supprimer le worktree",
|
|
74
|
+
"Deleting...": "Suppression...",
|
|
75
|
+
"Diff": "Diff",
|
|
76
|
+
"Disconnected": "Deconnecte",
|
|
77
|
+
"e.g. refactor-auth": "ex: refactor-auth",
|
|
78
|
+
"Edit": "Éditer",
|
|
79
|
+
"Enable access to logs and Markdown/JSON export.": "Active l'accès aux logs et à l'export Markdown/JSON.",
|
|
80
|
+
"Enable the dark theme for the interface.": "Active le thème sombre pour l'interface.",
|
|
81
|
+
"English": "Anglais",
|
|
82
|
+
"Error": "Erreur",
|
|
83
|
+
"Error during generation.": "Erreur lors de la generation.",
|
|
84
|
+
"Error during loading.": "Erreur lors du chargement.",
|
|
85
|
+
"Error: {{message}}": "Erreur: {{message}}",
|
|
86
|
+
"Execution in progress": "Execution en cours",
|
|
87
|
+
"Existing sessions": "Sessions existantes",
|
|
88
|
+
"Expires in {{seconds}}s": "Expire dans {{seconds}}s",
|
|
89
|
+
"Explorer": "Explorateur",
|
|
90
|
+
"Export": "Exporter",
|
|
91
|
+
"FILE": "FILE",
|
|
92
|
+
"File truncated for display.": "Fichier tronque pour l'affichage.",
|
|
93
|
+
"Form": "Formulaire",
|
|
94
|
+
"French": "Français",
|
|
95
|
+
"Full name": "Nom complet",
|
|
96
|
+
"Generating QR code...": "Generation du QR code...",
|
|
97
|
+
"Generating response...": "Generation de reponse...",
|
|
98
|
+
"Git authentication failed{{suffix}}.": "Echec d'authentification Git{{suffix}}.",
|
|
99
|
+
"Git identity for this repository": "Identité Git pour ce dépôt",
|
|
100
|
+
"Git repository not found{{suffix}}.": "Depot Git introuvable{{suffix}}.",
|
|
101
|
+
"git@gitea.devops:my-org/my-repo.git": "git@gitea.devops:mon-org/mon-repo.git",
|
|
102
|
+
"Global values: {{name}} / {{email}}.": "Valeurs globales: {{name}} / {{email}}.",
|
|
103
|
+
"In progress": "En cours",
|
|
104
|
+
"Internet access": "Internet access",
|
|
105
|
+
"Internet access enabled": "Accès internet activé",
|
|
106
|
+
"Invalid resume token.": "Token de reprise invalide.",
|
|
107
|
+
"Invalid workspace token. Please sign in again.": "Token workspace invalide. Merci de vous reconnecter.",
|
|
108
|
+
"Join a workspace": "Rejoindre un workspace",
|
|
109
|
+
"JSON": "JSON",
|
|
110
|
+
"JSON credentials": "JSON credentials",
|
|
111
|
+
"JSON-RPC": "JSON-RPC",
|
|
112
|
+
"Key or token": "Cle ou token",
|
|
113
|
+
"Key required for {{provider}}.": "Cle requise pour {{provider}}.",
|
|
114
|
+
"Language": "Langue",
|
|
115
|
+
"Last activity: {{date}}": "Derniere activite: {{date}}",
|
|
116
|
+
"Launch": "Lancer",
|
|
117
|
+
"Leave session": "Quitter la session",
|
|
118
|
+
"Leave workspace": "Quitter le workspace",
|
|
119
|
+
"List truncated after {{count}} entries.": "Liste tronquee apres {{count}} entrees.",
|
|
120
|
+
"Loading sessions...": "Chargement des sessions...",
|
|
121
|
+
"Loading...": "Chargement...",
|
|
122
|
+
"Logs": "Logs",
|
|
123
|
+
"Main": "Main",
|
|
124
|
+
"Markdown": "Markdown",
|
|
125
|
+
"Merge into {{branch}}": "Merge vers {{branch}}",
|
|
126
|
+
"Messages": "Messages",
|
|
127
|
+
"Model": "Modele",
|
|
128
|
+
"Name (optional)": "Nom (optionnel)",
|
|
129
|
+
"Name and email required.": "Nom et email requis.",
|
|
130
|
+
"New message": "Nouveau message",
|
|
131
|
+
"New file": "Nouveau fichier",
|
|
132
|
+
"New folder": "Nouveau dossier",
|
|
133
|
+
"New worktree": "Nouveau worktree",
|
|
134
|
+
"New session": "Nouvelle session",
|
|
135
|
+
"No": "Non",
|
|
136
|
+
"No changes detected.": "Aucun changement detecte.",
|
|
137
|
+
"No file found.": "Aucun fichier trouve.",
|
|
138
|
+
"No file selected": "Aucun fichier selectionne",
|
|
139
|
+
"binary data": "données binaires",
|
|
140
|
+
"Loading untracked files...": "Chargement des fichiers non suivis...",
|
|
141
|
+
"Unable to load file.": "Impossible de charger le fichier.",
|
|
142
|
+
"Claude Code does not natively support forked sessions with directory changes. This feature is experimental.": "Claude Code ne supporte pas nativement les sessions forkées avec changement de répertoire, cette feature est expérimentale.",
|
|
143
|
+
"No logs yet.": "Aucun log pour le moment.",
|
|
144
|
+
"No options": "Aucune option",
|
|
145
|
+
"No options.": "Aucune option.",
|
|
146
|
+
"No pending tasks at the moment.": "Aucune tâche en attente pour le moment.",
|
|
147
|
+
"No repository-specific values.": "Aucune valeur spécifique au dépôt.",
|
|
148
|
+
"No sessions available.": "Aucune session disponible.",
|
|
149
|
+
"No commands found.": "Aucune commande trouvée.",
|
|
150
|
+
"Next": "Suivant",
|
|
151
|
+
"No tasks": "Aucune tâche",
|
|
152
|
+
"None": "Aucune",
|
|
153
|
+
"Not set": "Non défini",
|
|
154
|
+
"Notifications": "Notifications",
|
|
155
|
+
"Open form": "Ouvrir le formulaire",
|
|
156
|
+
"Open path": "Ouvrir un chemin",
|
|
157
|
+
"Open settings": "Ouvrir les paramètres",
|
|
158
|
+
"Open diff view": "Ouvrir la vue diff",
|
|
159
|
+
"Run shell command": "Executer une commande shell",
|
|
160
|
+
"Run git command": "Executer une commande git",
|
|
161
|
+
"OpenAI authentication failed.": "Echec de l'authentification OpenAI.",
|
|
162
|
+
"Password or PAT": "Mot de passe ou PAT",
|
|
163
|
+
"Path required.": "Le chemin est requis.",
|
|
164
|
+
"Path not found.": "Chemin introuvable.",
|
|
165
|
+
"Preview": "Aperçu",
|
|
166
|
+
"Private SSH key (not recommended)": "Cle SSH privee (non recommande)",
|
|
167
|
+
"Previous": "Precedent",
|
|
168
|
+
"Processing...": "Traitement en cours...",
|
|
169
|
+
"Provide user.name and user.email for repository commits.": "Renseignez user.name et user.email pour les commits du dépôt.",
|
|
170
|
+
"Provider": "Provider",
|
|
171
|
+
"QR code": "QR code",
|
|
172
|
+
"QR code expired": "QR code expire",
|
|
173
|
+
"QR code unavailable.": "QR code indisponible.",
|
|
174
|
+
"Ready": "Pret",
|
|
175
|
+
"Reasoning": "Reasoning",
|
|
176
|
+
"Reasoning...": "Raisonnement...",
|
|
177
|
+
"Refresh": "Rafraichir",
|
|
178
|
+
"Rename": "Renommer",
|
|
179
|
+
"Renamed.": "Renomme.",
|
|
180
|
+
"Stopped": "Arrete",
|
|
181
|
+
"Regenerate": "Regenerer",
|
|
182
|
+
"Remove {{label}}": "Retirer {{label}}",
|
|
183
|
+
"Repository authentication (optional)": "Authentification depot (optionnelle)",
|
|
184
|
+
"Repository diff": "Diff du repository",
|
|
185
|
+
"Repository Git identity updated.": "Identité Git du dépôt mise à jour.",
|
|
186
|
+
"Repository values: {{name}} / {{email}}.": "Valeurs du dépôt: {{name}} / {{email}}.",
|
|
187
|
+
"Resume": "Reprendre",
|
|
188
|
+
"Resume an already configured worktree": "Reprendre un worktree deja configure",
|
|
189
|
+
"Resume an existing session": "Reprendre une session existante",
|
|
190
|
+
"Resume on mobile": "Reprendre sur mobile",
|
|
191
|
+
"Save": "Sauver",
|
|
192
|
+
"Saving...": "Sauvegarde...",
|
|
193
|
+
"Scan this QR code in the Android app to resume the current session.": "Scannez ce QR code dans l'application Android pour reprendre la session en cours.",
|
|
194
|
+
"Secret": "Secret",
|
|
195
|
+
"Select a branch": "Selectionner une branche",
|
|
196
|
+
"Select a file in the tree.": "Selectionnez un fichier dans l'arborescence.",
|
|
197
|
+
"File path": "Chemin du fichier",
|
|
198
|
+
"Folder path": "Chemin du dossier",
|
|
199
|
+
"e.g. src/new-file.ts": "ex: src/nouveau-fichier.ts",
|
|
200
|
+
"e.g. src/new-folder": "ex: src/nouveau-dossier",
|
|
201
|
+
"Select a language": "Selectionner une langue",
|
|
202
|
+
"Select a valid remote branch.": "Selectionnez une branche distante valide.",
|
|
203
|
+
"Select an existing workspace or create a new one.": "Selectionnez un workspace existant ou creez-en un nouveau.",
|
|
204
|
+
"Select at least one provider.": "Selectionnez au moins un provider.",
|
|
205
|
+
"Selected attachments": "Pièces sélectionnées",
|
|
206
|
+
"Send": "Envoyer",
|
|
207
|
+
"Send 'Commit & Push' in chat": "Envoyer 'Commit & Push' dans le chat",
|
|
208
|
+
"Send 'Commit' in chat": "Envoyer 'Commit' dans le chat",
|
|
209
|
+
"Send a message to start a session.": "Envoyez un message pour demarrer une session.",
|
|
210
|
+
"Session": "Session",
|
|
211
|
+
"Session \"{{title}}\" deleted.": "Session \"{{title}}\" supprimee.",
|
|
212
|
+
"Session name (optional)": "Nom de la session (optionnel)",
|
|
213
|
+
"Session not found.": "Session introuvable.",
|
|
214
|
+
"Settings": "Paramètres",
|
|
215
|
+
"setup_token": "setup_token",
|
|
216
|
+
"Deny git credentials access": "Refuser l'accès aux identifiants Git",
|
|
217
|
+
"Provider cannot be disabled: active sessions use it.": "Impossible de désactiver ce provider : des sessions l'utilisent.",
|
|
218
|
+
"Show a notification and sound when a new message arrives.": "Affiche une notification et un son quand un nouveau message arrive.",
|
|
219
|
+
"Show commands in chat": "Afficher les commandes dans le chat",
|
|
220
|
+
"Show executed command blocks in the conversation.": "Affiche les blocs de commandes exécutées dans la conversation.",
|
|
221
|
+
"Show tool results in chat": "Afficher les tool results dans le chat",
|
|
222
|
+
"Show tool_result blocks in the conversation.": "Affiche les blocs tool_result dans la conversation.",
|
|
223
|
+
"Source branch": "Branche source",
|
|
224
|
+
"Start a session to open the terminal.": "Demarrez une session pour ouvrir le terminal.",
|
|
225
|
+
"Stdin": "Stdin",
|
|
226
|
+
"stdin": "stdin",
|
|
227
|
+
"Stdout": "Stdout",
|
|
228
|
+
"stdout": "stdout",
|
|
229
|
+
"Stop": "Stop",
|
|
230
|
+
"Switching to {{provider}}...": "Basculement vers {{provider}}...",
|
|
231
|
+
"Tab": "Onglet",
|
|
232
|
+
"Terminal": "Terminal",
|
|
233
|
+
"The key is stored in ~/.ssh for cloning.": "La cle est stockee dans ~/.ssh pour le clonage.",
|
|
234
|
+
"The password can be replaced by a PAT.": "Le mot de passe peut etre remplace par un PAT.",
|
|
235
|
+
"These settings are stored in your browser.": "Ces réglages sont stockés dans votre navigateur.",
|
|
236
|
+
"Vibe80 can run Codex or Claude Code. To continue, provide your Anthropic and/or OpenAI credentials. If you use pay-as-you-go billing, supply an API key.": "Vibe80 peut piloter Codex ou Claude Code. Pour continuer, fournissez vos identifiants Anthropic et/ou OpenAI. Si vous utilisez une facturation a l'usage, fournissez une API key.",
|
|
237
|
+
"For subscription plans, use auth.json from the Codex CLI login (ChatGPT) or a long-lived token from `claude setup-token` (Claude).": "Pour les abonnements, utilisez auth.json apres login Codex en CLI (ChatGPT) ou un token longue duree via `claude setup-token` (Claude).",
|
|
238
|
+
"Vibe80 opens Git-based work sessions. Even in a secure environment, we recommend short-lived and revocable PATs or keys.": "Vibe80 ouvre des sessions de travail basees sur des depots Git. Meme dans un environnement securise, nous recommandons des jetons PAT/cles ephemeres et revocables.",
|
|
239
|
+
"Vibe80 strictly controls access to resources (Git credentials and internet) using sandboxing. ": "Vibe80 controle strictement l'acces aux ressources (identifiants Git et internet) via le sandboxing. ",
|
|
240
|
+
"A workspace is an isolated, secured environment accessible only with credentials. It lets you reuse AI credentials for all future sessions.": "Un workspace est un espace isole et securise, accessible uniquement avec des identifiants. Il permet de reutiliser vos identifiants IA pour toutes vos futures sessions.",
|
|
241
|
+
"You can create multiple workspaces to separate teams, projects, or security boundaries.": "Vous pouvez creer plusieurs workspaces pour separer equipes, projets ou perimetres de securite.",
|
|
242
|
+
"Tool": "Tool",
|
|
243
|
+
"Tool result": "Tool result",
|
|
244
|
+
"Tool: {{tool}}": "Outil: {{tool}}",
|
|
245
|
+
"User command : {{command}}": "Commande utilisateur : {{command}}",
|
|
246
|
+
"Toggle annotation mode": "Activer le mode annotation",
|
|
247
|
+
"Toggle annotation mode (EXPERIMENTAL)": "Activer le mode annotation (EXPERIMENTAL)",
|
|
248
|
+
"Annotation mode enabled.": "Mode annotation activé.",
|
|
249
|
+
"Annotation mode disabled.": "Mode annotation désactivé.",
|
|
250
|
+
"Usage: /annotation on|off": "Usage : /annotation on|off",
|
|
251
|
+
"Annotate line": "Annoter la ligne",
|
|
252
|
+
"Annotations": "Annotations",
|
|
253
|
+
"Only sent with the next message.": "Envoyées uniquement avec le prochain message.",
|
|
254
|
+
"No annotations yet.": "Pas encore d'annotations.",
|
|
255
|
+
"Write annotation...": "Écrire une annotation...",
|
|
256
|
+
"Todo text required.": "Texte de la todo requis.",
|
|
257
|
+
"Unable to change branch.": "Impossible de changer de branche.",
|
|
258
|
+
"Unable to create the attachment session (HTTP {{status}}{{statusText}}){{suffix}}.": "Impossible de creer la session de pieces jointes (HTTP {{status}}{{statusText}}){{suffix}}.",
|
|
259
|
+
"Unable to create the attachment session.": "Impossible de creer la session de pieces jointes.",
|
|
260
|
+
"Unable to delete the session.": "Impossible de supprimer la session.",
|
|
261
|
+
"Unable to delete the session{{suffix}}.": "Impossible de supprimer la session{{suffix}}.",
|
|
262
|
+
"Unable to generate the QR code.": "Impossible de generer le QR code.",
|
|
263
|
+
"Unable to load branches.": "Impossible de charger les branches.",
|
|
264
|
+
"Unable to load Git identity.": "Impossible de charger l'identité Git.",
|
|
265
|
+
"Unable to load Git status.": "Impossible de charger le statut Git.",
|
|
266
|
+
"Unable to load models.": "Impossible de charger les modeles.",
|
|
267
|
+
"Unable to load sessions.": "Impossible de charger les sessions.",
|
|
268
|
+
"Unable to load the commit.": "Impossible de charger le commit.",
|
|
269
|
+
"Unable to load the explorer.": "Impossible de charger l'explorateur.",
|
|
270
|
+
"Unable to load the file.": "Impossible de charger le fichier.",
|
|
271
|
+
"Unable to load tree.": "Impossible de charger l'arborescence.",
|
|
272
|
+
"Unable to load the latest commit.": "Impossible de charger le dernier commit.",
|
|
273
|
+
"Unable to resume the session.": "Impossible de reprendre la session.",
|
|
274
|
+
"Unable to rename.": "Impossible de renommer.",
|
|
275
|
+
"Unable to delete.": "Impossible de supprimer.",
|
|
276
|
+
"Unable to save the file.": "Impossible d'enregistrer le fichier.",
|
|
277
|
+
"Unable to create file.": "Impossible de creer le fichier.",
|
|
278
|
+
"Unable to create folder.": "Impossible de creer le dossier.",
|
|
279
|
+
"Unable to upload attachments.": "Impossible d'uploader les pieces jointes.",
|
|
280
|
+
"Unable to update backlog.": "Impossible de mettre à jour le backlog.",
|
|
281
|
+
"Unexpected error": "Erreur inattendue",
|
|
282
|
+
"Update failed.": "Echec de la mise à jour.",
|
|
283
|
+
"Usage limit reached. Please try again later.": "Limite d'usage atteinte. Merci de reessayer plus tard.",
|
|
284
|
+
"User settings": "Paramètres utilisateur",
|
|
285
|
+
"user.email": "user.email",
|
|
286
|
+
"user.name": "user.name",
|
|
287
|
+
"Username": "Utilisateur",
|
|
288
|
+
"Username + password": "Identifiant + mot de passe",
|
|
289
|
+
"Username and password required.": "Identifiant et mot de passe requis.",
|
|
290
|
+
"Validating...": "Validation...",
|
|
291
|
+
"View previous messages ({{count}})": "Voir les messages precedents ({{count}})",
|
|
292
|
+
"Workspace configuration failed.": "Echec de la configuration du workspace.",
|
|
293
|
+
"Workspace created": "Workspace cree",
|
|
294
|
+
"Workspace created hint": "Votre workspace a ete cree avec succes. Gardez ces identifiants scrupuleusement pour un futur acces.",
|
|
295
|
+
"Workspace creation failed.": "Echec de creation du workspace.",
|
|
296
|
+
"Workspace ID": "Workspace ID",
|
|
297
|
+
"Workspace ID and secret are required.": "Workspace ID et secret requis.",
|
|
298
|
+
"Workspace ID required.": "Workspace ID requis.",
|
|
299
|
+
"Workspace Secret": "Workspace Secret",
|
|
300
|
+
"Workspace update failed.": "Echec de mise a jour du workspace.",
|
|
301
|
+
"workspaceId (e.g. w...)": "workspaceId (ex: w...)",
|
|
302
|
+
"workspaceSecret": "workspaceSecret",
|
|
303
|
+
"Worktree": "Worktree",
|
|
304
|
+
"Worktree diff": "Diff du worktree",
|
|
305
|
+
"Worktree is stopped. Wake it up before sending a message.": "Le worktree est arrete. Relancez-le avant d'envoyer un message.",
|
|
306
|
+
"File created.": "Fichier cree.",
|
|
307
|
+
"Folder created.": "Dossier cree.",
|
|
308
|
+
"Deleted.": "Supprime.",
|
|
309
|
+
"Delete \"{{path}}\"? This action is irreversible.": "Supprimer \"{{path}}\" ? Cette action est irreversible.",
|
|
310
|
+
"Write your message…": "Écris ton message…",
|
|
311
|
+
"Yes": "Oui",
|
|
312
|
+
"You have unsaved changes. Continue without saving?": "Vous avez des modifications non sauvegardees. Continuer sans sauvegarder ?",
|
|
313
|
+
"your.email@example.com": "ton.email@exemple.com",
|
|
314
|
+
"{{count}} attachment(s)": "{{count}} pièce(s) jointe(s)",
|
|
315
|
+
"{{count}} B": "{{count}} o",
|
|
316
|
+
"{{count}} files modified": "{{count}} fichiers modifies",
|
|
317
|
+
"{{count}} item(s)": "{{count}} élément(s)",
|
|
318
|
+
"{{count}} KB": "{{count}} Ko",
|
|
319
|
+
"{{count}} lines": "{{count}} lignes",
|
|
320
|
+
"{{count}} MB": "{{count}} Mo"
|
|
321
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import { registerSW } from "virtual:pwa-register";
|
|
4
|
+
import App from "./App.jsx";
|
|
5
|
+
import { I18nProvider } from "./i18n.jsx";
|
|
6
|
+
import "./index.css";
|
|
7
|
+
|
|
8
|
+
registerSW({ immediate: true });
|
|
9
|
+
|
|
10
|
+
createRoot(document.getElementById("root")).render(
|
|
11
|
+
<React.StrictMode>
|
|
12
|
+
<I18nProvider>
|
|
13
|
+
<App />
|
|
14
|
+
</I18nProvider>
|
|
15
|
+
</React.StrictMode>
|
|
16
|
+
);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react";
|
|
3
|
+
import { VitePWA } from "vite-plugin-pwa";
|
|
4
|
+
|
|
5
|
+
export default defineConfig({
|
|
6
|
+
plugins: [
|
|
7
|
+
react(),
|
|
8
|
+
VitePWA({
|
|
9
|
+
registerType: "autoUpdate",
|
|
10
|
+
includeAssets: ["favicon.ico", "favicon.svg", "favicon.png"],
|
|
11
|
+
manifest: {
|
|
12
|
+
name: "Vibe80",
|
|
13
|
+
short_name: "Vibe80",
|
|
14
|
+
description: "Vibe80 web client",
|
|
15
|
+
theme_color: "#ee5d3b",
|
|
16
|
+
background_color: "#f2ede3",
|
|
17
|
+
display: "standalone",
|
|
18
|
+
start_url: "/",
|
|
19
|
+
scope: "/",
|
|
20
|
+
icons: [
|
|
21
|
+
{
|
|
22
|
+
src: "/pwa-192x192.png",
|
|
23
|
+
sizes: "192x192",
|
|
24
|
+
type: "image/png",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
src: "/pwa-512x512.png",
|
|
28
|
+
sizes: "512x512",
|
|
29
|
+
type: "image/png",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
src: "/pwa-512x512.png",
|
|
33
|
+
sizes: "512x512",
|
|
34
|
+
type: "image/png",
|
|
35
|
+
purpose: "maskable",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
workbox: {
|
|
40
|
+
cleanupOutdatedCaches: true,
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
],
|
|
44
|
+
server: {
|
|
45
|
+
port: 5173,
|
|
46
|
+
proxy: {
|
|
47
|
+
"/ws": {
|
|
48
|
+
target: "ws://localhost:5179",
|
|
49
|
+
ws: true,
|
|
50
|
+
},
|
|
51
|
+
"/terminal": {
|
|
52
|
+
target: "ws://localhost:5179",
|
|
53
|
+
ws: true,
|
|
54
|
+
},
|
|
55
|
+
"/terminal-ws": {
|
|
56
|
+
target: "ws://localhost:5179",
|
|
57
|
+
ws: true,
|
|
58
|
+
},
|
|
59
|
+
"/api/v1": "http://localhost:5179",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
});
|