@cat-factory/app 0.259.3 → 0.261.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.
- package/README.md +34 -0
- package/app/components/auth/LoginScreen.vue +4 -3
- package/app/components/board/BoardCanvas.vue +9 -1
- package/app/components/board/TaskDependencyEdges.vue +35 -26
- package/app/components/github/AddServiceFromRepoModal.vue +132 -29
- package/app/components/settings/McpAuthorizeScreen.vue +262 -0
- package/app/composables/api/mcpAuthorization.ts +30 -0
- package/app/composables/useApi.ts +2 -0
- package/app/composables/useBoardActivity.ts +111 -0
- package/app/composables/useSettlingRaf.ts +32 -0
- package/app/composables/useTaskExpansion.ts +29 -11
- package/app/pages/mcp-authorize.vue +7 -0
- package/app/stores/auth/session.ts +14 -2
- package/app/stores/board/placement.ts +12 -3
- package/app/stores/board.spec.ts +22 -2
- package/app/utils/edgeSegments.spec.ts +49 -0
- package/app/utils/edgeSegments.ts +49 -0
- package/app/utils/monorepoImport.spec.ts +120 -0
- package/app/utils/monorepoImport.ts +154 -0
- package/app/utils/postSignIn.spec.ts +29 -0
- package/app/utils/postSignIn.ts +29 -0
- package/app/utils/settlingLoop.spec.ts +236 -0
- package/app/utils/settlingLoop.ts +101 -0
- package/i18n/locales/de.json +45 -1
- package/i18n/locales/en.json +45 -1
- package/i18n/locales/es.json +45 -1
- package/i18n/locales/fr.json +45 -1
- package/i18n/locales/he.json +45 -1
- package/i18n/locales/it.json +45 -1
- package/i18n/locales/ja.json +45 -1
- package/i18n/locales/pl.json +45 -1
- package/i18n/locales/tr.json +45 -1
- package/i18n/locales/uk.json +45 -1
- package/package.json +2 -2
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A frame loop that stops itself once its output stops changing.
|
|
3
|
+
*
|
|
4
|
+
* The board's DOM-measuring drivers (dependency edges, task expansion) have to follow
|
|
5
|
+
* animations they cannot observe directly: a CSS height transition, a Vue Flow pan, a card
|
|
6
|
+
* reflowing after its text changed. Running them unconditionally every frame makes an idle
|
|
7
|
+
* board pay O(edges) forced layout reads 60 times a second; running them only on a change
|
|
8
|
+
* signal makes them stop mid-transition, because the signal fires when the transition
|
|
9
|
+
* STARTS and says nothing about the frames that follow.
|
|
10
|
+
*
|
|
11
|
+
* This resolves both: an external signal `poke()`s the loop awake, and the loop keeps
|
|
12
|
+
* running while `compute()` reports it changed something. Once the output has held still
|
|
13
|
+
* for `settleFrames` frames the animation is over and the loop parks at zero cost until the
|
|
14
|
+
* next poke.
|
|
15
|
+
*
|
|
16
|
+
* The scheduler is injected so the behaviour is testable without a browser frame clock.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/** `requestAnimationFrame` / `cancelAnimationFrame`, injected so tests can drive frames by hand. */
|
|
20
|
+
export type FrameScheduler = {
|
|
21
|
+
schedule: (run: () => void) => number
|
|
22
|
+
cancel: (handle: number) => void
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type SettlingLoop = {
|
|
26
|
+
/** Wake the loop, and reset the settle countdown if it is already awake. */
|
|
27
|
+
poke: () => void
|
|
28
|
+
/** Park the loop and drop the pending frame. Idempotent. */
|
|
29
|
+
stop: () => void
|
|
30
|
+
/**
|
|
31
|
+
* Whether the loop still owns the frame stream: a frame is scheduled, or `compute()` is
|
|
32
|
+
* running right now. The two are deliberately not the same fact, and only this one decides
|
|
33
|
+
* whether a `poke()` has to schedule anything.
|
|
34
|
+
*/
|
|
35
|
+
awake: () => boolean
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* How many unchanged frames end a run. A signal fires when a style or class changes, one
|
|
40
|
+
* frame BEFORE the transition it starts produces any geometry, so parking on the first
|
|
41
|
+
* unchanged frame would miss every animation. Four frames (~66ms at 60Hz) clears that gap
|
|
42
|
+
* while keeping a false wake-up cheap.
|
|
43
|
+
*/
|
|
44
|
+
export const DEFAULT_SETTLE_FRAMES = 4
|
|
45
|
+
|
|
46
|
+
export function createSettlingLoop(options: {
|
|
47
|
+
/** Runs one frame; returns whether it changed anything the user can see. */
|
|
48
|
+
compute: () => boolean
|
|
49
|
+
scheduler: FrameScheduler
|
|
50
|
+
settleFrames?: number
|
|
51
|
+
}): SettlingLoop {
|
|
52
|
+
const { compute, scheduler } = options
|
|
53
|
+
const settleFrames = options.settleFrames ?? DEFAULT_SETTLE_FRAMES
|
|
54
|
+
/** The scheduled frame's handle, and ONLY that: null the whole time `compute()` runs. */
|
|
55
|
+
let pending: number | null = null
|
|
56
|
+
/** Whether the loop owns the frame stream, which stays true across `compute()`. */
|
|
57
|
+
let isAwake = false
|
|
58
|
+
let unchangedFrames = 0
|
|
59
|
+
|
|
60
|
+
function frame() {
|
|
61
|
+
// This callback's own handle is spent the moment it runs, so nothing may cancel it later;
|
|
62
|
+
// `isAwake` is what carries "the loop is running" across the compute below.
|
|
63
|
+
pending = null
|
|
64
|
+
let changed: boolean
|
|
65
|
+
try {
|
|
66
|
+
changed = compute()
|
|
67
|
+
} catch (error) {
|
|
68
|
+
// Park before letting the error reach the frame callback, where the browser reports it.
|
|
69
|
+
// Staying awake with no frame scheduled would make every later `poke()` a no-op, so one
|
|
70
|
+
// throwing frame would freeze the board for the rest of the session; rescheduling would
|
|
71
|
+
// be worse still, since a compute that threw on this frame throws on the next one too
|
|
72
|
+
// and a 60Hz error storm costs more than an arrow that waits for the next pulse.
|
|
73
|
+
isAwake = false
|
|
74
|
+
throw error
|
|
75
|
+
}
|
|
76
|
+
// A `stop()` that ran during `compute()` (an unmount driven by the compute's own store
|
|
77
|
+
// write) parks the loop for good: it must not be resurrected by the frame below.
|
|
78
|
+
if (!isAwake) return
|
|
79
|
+
unchangedFrames = changed ? 0 : unchangedFrames + 1
|
|
80
|
+
if (unchangedFrames < settleFrames) pending = scheduler.schedule(frame)
|
|
81
|
+
else isAwake = false
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
poke() {
|
|
86
|
+
unchangedFrames = 0
|
|
87
|
+
// A poke triggered by the compute's own store write (a watcher, a re-render) resets the
|
|
88
|
+
// countdown and nothing more: `isAwake` is still set, so it cannot schedule a second
|
|
89
|
+
// frame beside the one `frame()` is about to schedule itself.
|
|
90
|
+
if (isAwake) return
|
|
91
|
+
isAwake = true
|
|
92
|
+
pending = scheduler.schedule(frame)
|
|
93
|
+
},
|
|
94
|
+
stop() {
|
|
95
|
+
isAwake = false
|
|
96
|
+
if (pending !== null) scheduler.cancel(pending)
|
|
97
|
+
pending = null
|
|
98
|
+
},
|
|
99
|
+
awake: () => isAwake,
|
|
100
|
+
}
|
|
101
|
+
}
|
package/i18n/locales/de.json
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
1
|
{
|
|
2
|
+
"mcpAuthorize": {
|
|
3
|
+
"title": "{client} verbinden?",
|
|
4
|
+
"subtitle": "Die Anwendung gibt an, {client} zu sein, und diese Installation leitet sie zurück an {origin}.",
|
|
5
|
+
"workspace": {
|
|
6
|
+
"label": "Board, auf dem sie handeln darf"
|
|
7
|
+
},
|
|
8
|
+
"scopeLabel": "Was sie tun darf",
|
|
9
|
+
"scopeHint": "Jede Stufe schließt die darüberliegenden ein.",
|
|
10
|
+
"scope": {
|
|
11
|
+
"read": {
|
|
12
|
+
"label": "Nur lesen",
|
|
13
|
+
"description": "Services, Aufgaben, Pipelines und Läufe ansehen."
|
|
14
|
+
},
|
|
15
|
+
"write": {
|
|
16
|
+
"label": "Lesen und schreiben",
|
|
17
|
+
"description": "Zusätzlich Aufgaben anlegen und starten."
|
|
18
|
+
},
|
|
19
|
+
"decide": {
|
|
20
|
+
"label": "Lesen, schreiben und entscheiden",
|
|
21
|
+
"description": "Zusätzlich die Fragen beantworten, auf die ein pausierter Lauf wartet."
|
|
22
|
+
},
|
|
23
|
+
"admin": {
|
|
24
|
+
"label": "Voller Zugriff",
|
|
25
|
+
"description": "Zusätzlich Aufgaben löschen und auf Benachrichtigungen reagieren, was einen Pull Request zusammenführen kann."
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"requestedScope": "{client} hat {scope} angefragt. Wählen Sie das oben nur, wenn Sie es wirklich gewähren möchten.",
|
|
29
|
+
"approve": "Verbinden",
|
|
30
|
+
"deny": "Abbrechen",
|
|
31
|
+
"back": "Zurück zur App",
|
|
32
|
+
"noWorkspaces": "Sie haben noch kein Board, mit dem sich das verbinden ließe.",
|
|
33
|
+
"revokeHint": "Dabei wird ein API-Schlüssel ausgestellt, den Sie jederzeit in den Board-Einstellungen widerrufen können.",
|
|
34
|
+
"error": {
|
|
35
|
+
"title": "Diese Verbindung konnte nicht eingerichtet werden",
|
|
36
|
+
"noRequest": "Diese Seite wurde ohne Autorisierungsanfrage geöffnet. Starten Sie die Verbindung in Ihrem MCP-Host.",
|
|
37
|
+
"expired": "Diese Autorisierungsanfrage ist ungültig oder abgelaufen. Starten Sie die Verbindung in Ihrem MCP-Host erneut.",
|
|
38
|
+
"failed": "Die Entscheidung konnte nicht gespeichert werden. Starten Sie die Verbindung in Ihrem MCP-Host erneut."
|
|
39
|
+
}
|
|
40
|
+
},
|
|
2
41
|
"settings": {
|
|
3
42
|
"modelConfiguration": {
|
|
4
43
|
"title": "Modellkonfiguration",
|
|
@@ -3403,6 +3442,9 @@
|
|
|
3403
3442
|
"monorepoBrowseHint": "Durchsuchen Sie das Repository und wählen Sie die Verzeichnisse der Services aus, die Sie hinzufügen möchten – aus jedem beliebigen Ordner. Agents, die an einem Service arbeiten, laufen innerhalb seines Unterverzeichnisses.",
|
|
3404
3443
|
"selectedServices": "Ausgewählte Services",
|
|
3405
3444
|
"noServicesSelected": "Noch keine Services ausgewählt. Wählen Sie oben Verzeichnisse aus.",
|
|
3445
|
+
"frontendLabel": "Frontend-App (optional)",
|
|
3446
|
+
"frontendHint": "Markieren Sie eines der ausgewählten Verzeichnisse als Frontend für die übrigen. Es wird als Frontend-App angelegt, auf dieses Unterverzeichnis festgelegt und mit jedem daneben hinzugefügten Backend-Service verknüpft. Die Umgebungsvariablen für die Backend-URLs benennen Sie anschließend im Inspector des Frontends.",
|
|
3447
|
+
"frontendNone": "Keines: alle Auswahlen sind Backend-Services",
|
|
3406
3448
|
"addServices": "{count} Service hinzufügen | {count} Services hinzufügen",
|
|
3407
3449
|
"removeService": "{directory} entfernen",
|
|
3408
3450
|
"addedConfigure": "{title} hinzugefügt, konfigurieren Sie es",
|
|
@@ -3416,7 +3458,9 @@
|
|
|
3416
3458
|
"addedDescription": "{title} ist auf dem Board, konfigurieren Sie es unten.",
|
|
3417
3459
|
"addFailedTitle": "Service konnte nicht hinzugefügt werden",
|
|
3418
3460
|
"servicesAddedTitle": "Services hinzugefügt",
|
|
3419
|
-
"servicesAddedDescription": "{count} Service zum Board hinzugefügt. | {count} Services zum Board hinzugefügt."
|
|
3461
|
+
"servicesAddedDescription": "{count} Service zum Board hinzugefügt. | {count} Services zum Board hinzugefügt.",
|
|
3462
|
+
"frontendLinkedNote": "{directory} wurde als Frontend hinzugefügt und mit den übrigen verknüpft. Benennen Sie die Umgebungsvariablen für die Backend-URLs im Inspector.",
|
|
3463
|
+
"frontendWiringFailedNote": "Die Frontend-Einstellungen wurden nicht gespeichert. Öffnen Sie den Inspector jeder Frontend-App, um ihr Unterverzeichnis und ihre Backend-Services zu setzen."
|
|
3420
3464
|
}
|
|
3421
3465
|
},
|
|
3422
3466
|
"repoTree": {
|
package/i18n/locales/en.json
CHANGED
|
@@ -2682,6 +2682,45 @@
|
|
|
2682
2682
|
}
|
|
2683
2683
|
}
|
|
2684
2684
|
},
|
|
2685
|
+
"mcpAuthorize": {
|
|
2686
|
+
"title": "Connect {client}?",
|
|
2687
|
+
"subtitle": "It says it is {client}, and this deployment will send it back to {origin}.",
|
|
2688
|
+
"workspace": {
|
|
2689
|
+
"label": "Board it may act on"
|
|
2690
|
+
},
|
|
2691
|
+
"scopeLabel": "What it may do",
|
|
2692
|
+
"scopeHint": "Each level includes the ones above it.",
|
|
2693
|
+
"scope": {
|
|
2694
|
+
"read": {
|
|
2695
|
+
"label": "Read only",
|
|
2696
|
+
"description": "See services, tasks, pipelines and runs."
|
|
2697
|
+
},
|
|
2698
|
+
"write": {
|
|
2699
|
+
"label": "Read and write",
|
|
2700
|
+
"description": "Also create and start tasks."
|
|
2701
|
+
},
|
|
2702
|
+
"decide": {
|
|
2703
|
+
"label": "Read, write and decide",
|
|
2704
|
+
"description": "Also answer the questions a parked run is waiting on."
|
|
2705
|
+
},
|
|
2706
|
+
"admin": {
|
|
2707
|
+
"label": "Full access",
|
|
2708
|
+
"description": "Also delete tasks and act on notifications, which can merge a pull request."
|
|
2709
|
+
}
|
|
2710
|
+
},
|
|
2711
|
+
"requestedScope": "{client} asked for {scope}. Choose it above only if you mean to grant that.",
|
|
2712
|
+
"approve": "Connect",
|
|
2713
|
+
"deny": "Cancel",
|
|
2714
|
+
"back": "Back to the app",
|
|
2715
|
+
"noWorkspaces": "You have no boards to connect this to yet.",
|
|
2716
|
+
"revokeHint": "This issues an API key you can revoke at any time from the board's settings.",
|
|
2717
|
+
"error": {
|
|
2718
|
+
"title": "This connection could not be set up",
|
|
2719
|
+
"noRequest": "This page was opened without an authorization request. Start the connection from your MCP host.",
|
|
2720
|
+
"expired": "This authorization request is invalid or has expired. Start the connection again from your MCP host.",
|
|
2721
|
+
"failed": "The decision could not be recorded. Start the connection again from your MCP host."
|
|
2722
|
+
}
|
|
2723
|
+
},
|
|
2685
2724
|
"settings": {
|
|
2686
2725
|
"modelConfiguration": {
|
|
2687
2726
|
"title": "Model Configuration",
|
|
@@ -4271,6 +4310,9 @@
|
|
|
4271
4310
|
"monorepoBrowseHint": "Browse the repository and select the directories of the services you want to add — from any folder. Agents working on a service run within its subdirectory.",
|
|
4272
4311
|
"selectedServices": "Selected services",
|
|
4273
4312
|
"noServicesSelected": "No services selected yet. Pick directories above.",
|
|
4313
|
+
"frontendLabel": "Frontend app (optional)",
|
|
4314
|
+
"frontendHint": "Mark one of the selected directories as the frontend for the rest. It is added as a frontend app pinned to that subdirectory and linked to every backend service added beside it. Name each backend URL environment variable afterwards in the frontend's inspector.",
|
|
4315
|
+
"frontendNone": "None: every selection is a backend service",
|
|
4274
4316
|
"addServices": "Add {count} service | Add {count} services",
|
|
4275
4317
|
"@addServices": {
|
|
4276
4318
|
"description": "Count-driven button label; resolved via t(key, { count }, count) so {count} also drives the plural choice. Provide ALL plural forms your language needs (English has 2; Polish/Ukrainian need 3 - one/few/many - via the custom pluralRules in i18n.config.ts)."
|
|
@@ -4290,7 +4332,9 @@
|
|
|
4290
4332
|
"servicesAddedDescription": "{count} service added to the board. | {count} services added to the board.",
|
|
4291
4333
|
"@servicesAddedDescription": {
|
|
4292
4334
|
"description": "Count-driven toast; resolved via t(key, { count }, count) so {count} also drives the plural choice. Provide ALL plural forms your language needs (Polish/Ukrainian need 3 - one/few/many)."
|
|
4293
|
-
}
|
|
4335
|
+
},
|
|
4336
|
+
"frontendLinkedNote": "{directory} was added as the frontend and linked to the others. Name its backend URL environment variables in its inspector.",
|
|
4337
|
+
"frontendWiringFailedNote": "The frontend settings did not save. Open each frontend app's inspector to set its subdirectory and its backend services."
|
|
4294
4338
|
}
|
|
4295
4339
|
},
|
|
4296
4340
|
"repoTree": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -2575,6 +2575,45 @@
|
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
|
+
"mcpAuthorize": {
|
|
2579
|
+
"title": "¿Conectar {client}?",
|
|
2580
|
+
"subtitle": "Dice ser {client}, y esta instalación lo devolverá a {origin}.",
|
|
2581
|
+
"workspace": {
|
|
2582
|
+
"label": "Tablero en el que podrá actuar"
|
|
2583
|
+
},
|
|
2584
|
+
"scopeLabel": "Lo que podrá hacer",
|
|
2585
|
+
"scopeHint": "Cada nivel incluye los anteriores.",
|
|
2586
|
+
"scope": {
|
|
2587
|
+
"read": {
|
|
2588
|
+
"label": "Solo lectura",
|
|
2589
|
+
"description": "Ver servicios, tareas, pipelines y ejecuciones."
|
|
2590
|
+
},
|
|
2591
|
+
"write": {
|
|
2592
|
+
"label": "Lectura y escritura",
|
|
2593
|
+
"description": "Además, crear e iniciar tareas."
|
|
2594
|
+
},
|
|
2595
|
+
"decide": {
|
|
2596
|
+
"label": "Lectura, escritura y decisión",
|
|
2597
|
+
"description": "Además, responder a las preguntas que espera una ejecución detenida."
|
|
2598
|
+
},
|
|
2599
|
+
"admin": {
|
|
2600
|
+
"label": "Acceso completo",
|
|
2601
|
+
"description": "Además, eliminar tareas y actuar sobre notificaciones, lo que puede fusionar un pull request."
|
|
2602
|
+
}
|
|
2603
|
+
},
|
|
2604
|
+
"requestedScope": "{client} solicitó {scope}. Elige esa opción arriba solo si de verdad quieres concederla.",
|
|
2605
|
+
"approve": "Conectar",
|
|
2606
|
+
"deny": "Cancelar",
|
|
2607
|
+
"back": "Volver a la aplicación",
|
|
2608
|
+
"noWorkspaces": "Todavía no tienes ningún tablero al que conectarlo.",
|
|
2609
|
+
"revokeHint": "Esto emite una clave de API que puedes revocar cuando quieras desde los ajustes del tablero.",
|
|
2610
|
+
"error": {
|
|
2611
|
+
"title": "No se pudo establecer esta conexión",
|
|
2612
|
+
"noRequest": "Esta página se abrió sin una solicitud de autorización. Inicia la conexión desde tu host MCP.",
|
|
2613
|
+
"expired": "Esta solicitud de autorización no es válida o ha caducado. Vuelve a iniciar la conexión desde tu host MCP.",
|
|
2614
|
+
"failed": "No se pudo registrar la decisión. Vuelve a iniciar la conexión desde tu host MCP."
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2578
2617
|
"settings": {
|
|
2579
2618
|
"modelConfiguration": {
|
|
2580
2619
|
"title": "Configuración de modelos",
|
|
@@ -4138,6 +4177,9 @@
|
|
|
4138
4177
|
"monorepoBrowseHint": "Explora el repositorio y selecciona los directorios de los servicios que quieres añadir, de cualquier carpeta. Los agentes que trabajen en un servicio se ejecutarán dentro de su subdirectorio.",
|
|
4139
4178
|
"selectedServices": "Servicios seleccionados",
|
|
4140
4179
|
"noServicesSelected": "Aún no hay servicios seleccionados. Elige directorios arriba.",
|
|
4180
|
+
"frontendLabel": "Aplicación frontend (opcional)",
|
|
4181
|
+
"frontendHint": "Marca uno de los directorios seleccionados como el frontend de los demás. Se añade como aplicación frontend anclada a ese subdirectorio y se enlaza con cada servicio backend añadido junto a él. Después, asigna en el inspector del frontend el nombre de cada variable de entorno con la URL del backend.",
|
|
4182
|
+
"frontendNone": "Ninguno: todas las selecciones son servicios backend",
|
|
4141
4183
|
"addServices": "Añadir {count} servicio | Añadir {count} servicios",
|
|
4142
4184
|
"removeService": "Quitar {directory}",
|
|
4143
4185
|
"addedConfigure": "{title} añadido, configúralo",
|
|
@@ -4151,7 +4193,9 @@
|
|
|
4151
4193
|
"addedDescription": "{title} está en el tablero, configúralo abajo.",
|
|
4152
4194
|
"addFailedTitle": "No se pudo añadir el servicio",
|
|
4153
4195
|
"servicesAddedTitle": "Servicios añadidos",
|
|
4154
|
-
"servicesAddedDescription": "{count} servicio añadido al tablero. | {count} servicios añadidos al tablero."
|
|
4196
|
+
"servicesAddedDescription": "{count} servicio añadido al tablero. | {count} servicios añadidos al tablero.",
|
|
4197
|
+
"frontendLinkedNote": "{directory} se añadió como frontend y se enlazó con los demás. Asigna el nombre de sus variables de entorno con las URL de backend en su inspector.",
|
|
4198
|
+
"frontendWiringFailedNote": "Los ajustes del frontend no se guardaron. Abre el inspector de cada aplicación frontend para definir su subdirectorio y sus servicios backend."
|
|
4155
4199
|
},
|
|
4156
4200
|
"repoType": "Tipo de repositorio",
|
|
4157
4201
|
"repoTypeHint": "Qué es este repositorio: un servicio backend, una aplicación frontend, una biblioteca compartida o un repositorio de documentación (solo documentos/spikes)."
|
package/i18n/locales/fr.json
CHANGED
|
@@ -2575,6 +2575,45 @@
|
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
|
+
"mcpAuthorize": {
|
|
2579
|
+
"title": "Connecter {client} ?",
|
|
2580
|
+
"subtitle": "Il se présente comme {client}, et ce déploiement le renverra vers {origin}.",
|
|
2581
|
+
"workspace": {
|
|
2582
|
+
"label": "Tableau sur lequel il pourra agir"
|
|
2583
|
+
},
|
|
2584
|
+
"scopeLabel": "Ce qu'il pourra faire",
|
|
2585
|
+
"scopeHint": "Chaque niveau inclut les précédents.",
|
|
2586
|
+
"scope": {
|
|
2587
|
+
"read": {
|
|
2588
|
+
"label": "Lecture seule",
|
|
2589
|
+
"description": "Voir les services, les tâches, les pipelines et les exécutions."
|
|
2590
|
+
},
|
|
2591
|
+
"write": {
|
|
2592
|
+
"label": "Lecture et écriture",
|
|
2593
|
+
"description": "Et aussi créer et lancer des tâches."
|
|
2594
|
+
},
|
|
2595
|
+
"decide": {
|
|
2596
|
+
"label": "Lecture, écriture et décision",
|
|
2597
|
+
"description": "Et aussi répondre aux questions qu'attend une exécution en pause."
|
|
2598
|
+
},
|
|
2599
|
+
"admin": {
|
|
2600
|
+
"label": "Accès complet",
|
|
2601
|
+
"description": "Et aussi supprimer des tâches et agir sur les notifications, ce qui peut fusionner une pull request."
|
|
2602
|
+
}
|
|
2603
|
+
},
|
|
2604
|
+
"requestedScope": "{client} a demandé {scope}. Ne choisissez cette option ci-dessus que si vous voulez vraiment l'accorder.",
|
|
2605
|
+
"approve": "Connecter",
|
|
2606
|
+
"deny": "Annuler",
|
|
2607
|
+
"back": "Retour à l'application",
|
|
2608
|
+
"noWorkspaces": "Vous n'avez encore aucun tableau auquel le connecter.",
|
|
2609
|
+
"revokeHint": "Cela émet une clé d'API que vous pouvez révoquer à tout moment depuis les réglages du tableau.",
|
|
2610
|
+
"error": {
|
|
2611
|
+
"title": "Cette connexion n'a pas pu être établie",
|
|
2612
|
+
"noRequest": "Cette page a été ouverte sans demande d'autorisation. Lancez la connexion depuis votre hôte MCP.",
|
|
2613
|
+
"expired": "Cette demande d'autorisation est invalide ou a expiré. Relancez la connexion depuis votre hôte MCP.",
|
|
2614
|
+
"failed": "La décision n'a pas pu être enregistrée. Relancez la connexion depuis votre hôte MCP."
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2578
2617
|
"settings": {
|
|
2579
2618
|
"modelConfiguration": {
|
|
2580
2619
|
"title": "Configuration des modèles",
|
|
@@ -4138,6 +4177,9 @@
|
|
|
4138
4177
|
"monorepoBrowseHint": "Parcourez le dépôt et sélectionnez les répertoires des services que vous voulez ajouter, depuis n'importe quel dossier. Les agents travaillant sur un service s'exécutent dans son sous-répertoire.",
|
|
4139
4178
|
"selectedServices": "Services sélectionnés",
|
|
4140
4179
|
"noServicesSelected": "Aucun service sélectionné pour le moment. Choisissez des répertoires ci-dessus.",
|
|
4180
|
+
"frontendLabel": "Application frontend (facultatif)",
|
|
4181
|
+
"frontendHint": "Désignez l'un des répertoires sélectionnés comme le frontend des autres. Il est ajouté en tant qu'application frontend rattachée à ce sous-répertoire et relié à chaque service backend ajouté à ses côtés. Nommez ensuite chaque variable d'environnement d'URL backend dans l'inspecteur du frontend.",
|
|
4182
|
+
"frontendNone": "Aucun : toutes les sélections sont des services backend",
|
|
4141
4183
|
"addServices": "Ajouter {count} service | Ajouter {count} services",
|
|
4142
4184
|
"removeService": "Retirer {directory}",
|
|
4143
4185
|
"addedConfigure": "{title} ajouté, configurez-le",
|
|
@@ -4151,7 +4193,9 @@
|
|
|
4151
4193
|
"addedDescription": "{title} est sur le tableau, configurez-le ci-dessous.",
|
|
4152
4194
|
"addFailedTitle": "Impossible d'ajouter le service",
|
|
4153
4195
|
"servicesAddedTitle": "Services ajoutés",
|
|
4154
|
-
"servicesAddedDescription": "{count} service ajouté au tableau. | {count} services ajoutés au tableau."
|
|
4196
|
+
"servicesAddedDescription": "{count} service ajouté au tableau. | {count} services ajoutés au tableau.",
|
|
4197
|
+
"frontendLinkedNote": "{directory} a été ajouté comme frontend et relié aux autres. Nommez ses variables d'environnement d'URL backend dans son inspecteur.",
|
|
4198
|
+
"frontendWiringFailedNote": "Les réglages du frontend n'ont pas été enregistrés. Ouvrez l'inspecteur de chaque application frontend pour définir son sous-répertoire et ses services backend."
|
|
4155
4199
|
},
|
|
4156
4200
|
"repoType": "Type de dépôt",
|
|
4157
4201
|
"repoTypeHint": "Ce qu'est ce dépôt : un service backend, une application frontend, une bibliothèque partagée ou un dépôt de documentation (documents/spikes uniquement)."
|
package/i18n/locales/he.json
CHANGED
|
@@ -2575,6 +2575,45 @@
|
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
|
+
"mcpAuthorize": {
|
|
2579
|
+
"title": "לחבר את {client}?",
|
|
2580
|
+
"subtitle": "הוא מציג את עצמו כ־{client}, והפריסה הזו תחזיר אותו אל {origin}.",
|
|
2581
|
+
"workspace": {
|
|
2582
|
+
"label": "הלוח שבו יורשה לפעול"
|
|
2583
|
+
},
|
|
2584
|
+
"scopeLabel": "מה יורשה לעשות",
|
|
2585
|
+
"scopeHint": "כל רמה כוללת את הרמות שמעליה.",
|
|
2586
|
+
"scope": {
|
|
2587
|
+
"read": {
|
|
2588
|
+
"label": "קריאה בלבד",
|
|
2589
|
+
"description": "לראות שירותים, משימות, פייפליינים והרצות."
|
|
2590
|
+
},
|
|
2591
|
+
"write": {
|
|
2592
|
+
"label": "קריאה וכתיבה",
|
|
2593
|
+
"description": "וגם ליצור משימות ולהפעיל אותן."
|
|
2594
|
+
},
|
|
2595
|
+
"decide": {
|
|
2596
|
+
"label": "קריאה, כתיבה והכרעה",
|
|
2597
|
+
"description": "וגם לענות על השאלות שהרצה ממתינה להן."
|
|
2598
|
+
},
|
|
2599
|
+
"admin": {
|
|
2600
|
+
"label": "גישה מלאה",
|
|
2601
|
+
"description": "וגם למחוק משימות ולפעול על התראות, מה שעשוי למזג בקשת משיכה."
|
|
2602
|
+
}
|
|
2603
|
+
},
|
|
2604
|
+
"requestedScope": "{client} ביקש {scope}. בחרו באפשרות הזו למעלה רק אם אתם באמת מתכוונים להעניק אותה.",
|
|
2605
|
+
"approve": "חיבור",
|
|
2606
|
+
"deny": "ביטול",
|
|
2607
|
+
"back": "חזרה לאפליקציה",
|
|
2608
|
+
"noWorkspaces": "אין לך עדיין לוח שאפשר לחבר אליו.",
|
|
2609
|
+
"revokeHint": "פעולה זו מנפיקה מפתח API שאפשר לבטל בכל עת מהגדרות הלוח.",
|
|
2610
|
+
"error": {
|
|
2611
|
+
"title": "לא ניתן היה להקים את החיבור",
|
|
2612
|
+
"noRequest": "הדף נפתח ללא בקשת הרשאה. התחילו את החיבור מתוך מארח ה־MCP שלכם.",
|
|
2613
|
+
"expired": "בקשת ההרשאה אינה תקפה או שפג תוקפה. התחילו את החיבור שוב מתוך מארח ה־MCP שלכם.",
|
|
2614
|
+
"failed": "לא ניתן היה לרשום את ההחלטה. התחילו את החיבור שוב מתוך מארח ה־MCP שלכם."
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2578
2617
|
"settings": {
|
|
2579
2618
|
"modelConfiguration": {
|
|
2580
2619
|
"title": "הגדרת מודלים",
|
|
@@ -4138,6 +4177,9 @@
|
|
|
4138
4177
|
"monorepoBrowseHint": "עיין במאגר ובחר את הספריות של השירותים שברצונך להוסיף — מכל תיקייה. סוכנים העובדים על שירות ירוצו בתוך תת-הספרייה שלו.",
|
|
4139
4178
|
"selectedServices": "שירותים נבחרים",
|
|
4140
4179
|
"noServicesSelected": "עדיין לא נבחרו שירותים. בחר ספריות למעלה.",
|
|
4180
|
+
"frontendLabel": "אפליקציית פרונט-אנד (אופציונלי)",
|
|
4181
|
+
"frontendHint": "סמן אחת מהספריות שנבחרו כפרונט-אנד עבור השאר. היא תתווסף כאפליקציית פרונט-אנד המוצמדת לתת-הספרייה הזו ותקושר לכל שירות בק-אנד שנוסף לצידה. את שמות משתני הסביבה של כתובות הבק-אנד הגדר לאחר מכן באינספקטור של הפרונט-אנד.",
|
|
4182
|
+
"frontendNone": "ללא: כל הבחירות הן שירותי בק-אנד",
|
|
4141
4183
|
"addServices": "הוסף שירות אחד | הוסף שני שירותים | הוסף {count} שירותים",
|
|
4142
4184
|
"removeService": "הסר {directory}",
|
|
4143
4185
|
"addedConfigure": "{title} נוסף, הגדר אותו",
|
|
@@ -4151,7 +4193,9 @@
|
|
|
4151
4193
|
"addedDescription": "{title} על הלוח, הגדר אותו למטה.",
|
|
4152
4194
|
"addFailedTitle": "לא ניתן היה להוסיף שירות",
|
|
4153
4195
|
"servicesAddedTitle": "השירותים נוספו",
|
|
4154
|
-
"servicesAddedDescription": "שירות אחד נוסף ללוח. | שני שירותים נוספו ללוח. | {count} שירותים נוספו ללוח."
|
|
4196
|
+
"servicesAddedDescription": "שירות אחד נוסף ללוח. | שני שירותים נוספו ללוח. | {count} שירותים נוספו ללוח.",
|
|
4197
|
+
"frontendLinkedNote": "{directory} נוספה כפרונט-אנד וקושרה לשאר. הגדר את שמות משתני הסביבה של כתובות הבק-אנד באינספקטור שלה.",
|
|
4198
|
+
"frontendWiringFailedNote": "הגדרות הפרונט-אנד לא נשמרו. פתח את האינספקטור של כל אפליקציית פרונט-אנד כדי להגדיר את תת-הספרייה ואת שירותי הבק-אנד שלה."
|
|
4155
4199
|
},
|
|
4156
4200
|
"repoType": "סוג המאגר",
|
|
4157
4201
|
"repoTypeHint": "מה המאגר הזה: שירות בק-אנד, אפליקציית פרונט-אנד, ספרייה משותפת או מאגר תיעוד (מסמכים/ספייקים בלבד)."
|
package/i18n/locales/it.json
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
1
|
{
|
|
2
|
+
"mcpAuthorize": {
|
|
3
|
+
"title": "Collegare {client}?",
|
|
4
|
+
"subtitle": "Dichiara di essere {client}, e questa installazione lo rimanderà a {origin}.",
|
|
5
|
+
"workspace": {
|
|
6
|
+
"label": "Bacheca su cui potrà agire"
|
|
7
|
+
},
|
|
8
|
+
"scopeLabel": "Cosa potrà fare",
|
|
9
|
+
"scopeHint": "Ogni livello include quelli precedenti.",
|
|
10
|
+
"scope": {
|
|
11
|
+
"read": {
|
|
12
|
+
"label": "Sola lettura",
|
|
13
|
+
"description": "Vedere servizi, attività, pipeline ed esecuzioni."
|
|
14
|
+
},
|
|
15
|
+
"write": {
|
|
16
|
+
"label": "Lettura e scrittura",
|
|
17
|
+
"description": "Inoltre creare e avviare attività."
|
|
18
|
+
},
|
|
19
|
+
"decide": {
|
|
20
|
+
"label": "Lettura, scrittura e decisione",
|
|
21
|
+
"description": "Inoltre rispondere alle domande su cui un'esecuzione è in attesa."
|
|
22
|
+
},
|
|
23
|
+
"admin": {
|
|
24
|
+
"label": "Accesso completo",
|
|
25
|
+
"description": "Inoltre eliminare attività e agire sulle notifiche, il che può unire una pull request."
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"requestedScope": "{client} ha richiesto {scope}. Seleziona quell'opzione qui sopra solo se intendi davvero concederla.",
|
|
29
|
+
"approve": "Collega",
|
|
30
|
+
"deny": "Annulla",
|
|
31
|
+
"back": "Torna all'app",
|
|
32
|
+
"noWorkspaces": "Non hai ancora una bacheca a cui collegarlo.",
|
|
33
|
+
"revokeHint": "Questo emette una chiave API che puoi revocare in qualsiasi momento dalle impostazioni della bacheca.",
|
|
34
|
+
"error": {
|
|
35
|
+
"title": "Non è stato possibile creare questo collegamento",
|
|
36
|
+
"noRequest": "Questa pagina è stata aperta senza una richiesta di autorizzazione. Avvia il collegamento dal tuo host MCP.",
|
|
37
|
+
"expired": "Questa richiesta di autorizzazione non è valida o è scaduta. Riavvia il collegamento dal tuo host MCP.",
|
|
38
|
+
"failed": "Non è stato possibile registrare la decisione. Riavvia il collegamento dal tuo host MCP."
|
|
39
|
+
}
|
|
40
|
+
},
|
|
2
41
|
"settings": {
|
|
3
42
|
"modelConfiguration": {
|
|
4
43
|
"title": "Configurazione del modello",
|
|
@@ -3403,6 +3442,9 @@
|
|
|
3403
3442
|
"monorepoBrowseHint": "Sfoglia il repository e seleziona le directory dei servizi che vuoi aggiungere, da qualsiasi cartella. Gli agenti che lavorano su un servizio verranno eseguiti all'interno della sua sottodirectory.",
|
|
3404
3443
|
"selectedServices": "Servizi selezionati",
|
|
3405
3444
|
"noServicesSelected": "Nessun servizio ancora selezionato. Scegli le directory sopra.",
|
|
3445
|
+
"frontendLabel": "App frontend (facoltativo)",
|
|
3446
|
+
"frontendHint": "Indica una delle directory selezionate come frontend delle altre. Viene aggiunta come app frontend ancorata a quella sottodirectory e collegata a ogni servizio backend aggiunto accanto. Assegna poi il nome a ciascuna variabile d'ambiente con l'URL del backend nell'inspector del frontend.",
|
|
3447
|
+
"frontendNone": "Nessuna: tutte le selezioni sono servizi backend",
|
|
3406
3448
|
"addServices": "Aggiungi {count} servizio | Aggiungi {count} servizi",
|
|
3407
3449
|
"removeService": "Rimuovi {directory}",
|
|
3408
3450
|
"addedConfigure": "{title} aggiunto, configuralo",
|
|
@@ -3416,7 +3458,9 @@
|
|
|
3416
3458
|
"addedDescription": "{title} è sulla board, configuralo qui sotto.",
|
|
3417
3459
|
"addFailedTitle": "Impossibile aggiungere il servizio",
|
|
3418
3460
|
"servicesAddedTitle": "Servizi aggiunti",
|
|
3419
|
-
"servicesAddedDescription": "{count} servizio aggiunto alla board. | {count} servizi aggiunti alla board."
|
|
3461
|
+
"servicesAddedDescription": "{count} servizio aggiunto alla board. | {count} servizi aggiunti alla board.",
|
|
3462
|
+
"frontendLinkedNote": "{directory} è stata aggiunta come frontend e collegata alle altre. Assegna il nome alle sue variabili d'ambiente con gli URL dei backend nel suo inspector.",
|
|
3463
|
+
"frontendWiringFailedNote": "Le impostazioni del frontend non sono state salvate. Apri l'inspector di ogni app frontend per impostarne la sottodirectory e i servizi backend."
|
|
3420
3464
|
}
|
|
3421
3465
|
},
|
|
3422
3466
|
"repoTree": {
|
package/i18n/locales/ja.json
CHANGED
|
@@ -2575,6 +2575,45 @@
|
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
|
+
"mcpAuthorize": {
|
|
2579
|
+
"title": "{client} を接続しますか?",
|
|
2580
|
+
"subtitle": "{client} を名乗っており、このデプロイは接続後に {origin} へ戻します。",
|
|
2581
|
+
"workspace": {
|
|
2582
|
+
"label": "操作を許可するボード"
|
|
2583
|
+
},
|
|
2584
|
+
"scopeLabel": "許可する操作",
|
|
2585
|
+
"scopeHint": "各レベルは上位のレベルを含みます。",
|
|
2586
|
+
"scope": {
|
|
2587
|
+
"read": {
|
|
2588
|
+
"label": "読み取りのみ",
|
|
2589
|
+
"description": "サービス、タスク、パイプライン、実行を閲覧します。"
|
|
2590
|
+
},
|
|
2591
|
+
"write": {
|
|
2592
|
+
"label": "読み取りと書き込み",
|
|
2593
|
+
"description": "加えて、タスクの作成と開始ができます。"
|
|
2594
|
+
},
|
|
2595
|
+
"decide": {
|
|
2596
|
+
"label": "読み取り、書き込み、判断",
|
|
2597
|
+
"description": "加えて、停止中の実行が待っている質問に回答できます。"
|
|
2598
|
+
},
|
|
2599
|
+
"admin": {
|
|
2600
|
+
"label": "フルアクセス",
|
|
2601
|
+
"description": "加えて、タスクの削除と通知への対応ができ、プルリクエストがマージされることもあります。"
|
|
2602
|
+
}
|
|
2603
|
+
},
|
|
2604
|
+
"requestedScope": "{client} は {scope} を要求しました。本当に許可する場合のみ、上でその項目を選んでください。",
|
|
2605
|
+
"approve": "接続",
|
|
2606
|
+
"deny": "キャンセル",
|
|
2607
|
+
"back": "アプリに戻る",
|
|
2608
|
+
"noWorkspaces": "接続できるボードがまだありません。",
|
|
2609
|
+
"revokeHint": "これにより API キーが発行されます。ボードの設定からいつでも無効化できます。",
|
|
2610
|
+
"error": {
|
|
2611
|
+
"title": "この接続を設定できませんでした",
|
|
2612
|
+
"noRequest": "認可リクエストなしでこのページが開かれました。MCP ホストから接続を開始してください。",
|
|
2613
|
+
"expired": "この認可リクエストは無効か、有効期限が切れています。MCP ホストから接続をやり直してください。",
|
|
2614
|
+
"failed": "判断を記録できませんでした。MCP ホストから接続をやり直してください。"
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2578
2617
|
"settings": {
|
|
2579
2618
|
"modelConfiguration": {
|
|
2580
2619
|
"title": "モデル設定",
|
|
@@ -4138,6 +4177,9 @@
|
|
|
4138
4177
|
"monorepoBrowseHint": "リポジトリを参照し、追加したいサービスのディレクトリを任意のフォルダから選択してください。サービスで作業するエージェントは、そのサブディレクトリ内で実行されます。",
|
|
4139
4178
|
"selectedServices": "選択したサービス",
|
|
4140
4179
|
"noServicesSelected": "サービスがまだ選択されていません。上でディレクトリを選択してください。",
|
|
4180
|
+
"frontendLabel": "フロントエンドアプリ(任意)",
|
|
4181
|
+
"frontendHint": "選択したディレクトリのいずれか1つを、残りのフロントエンドとして指定します。そのサブディレクトリに固定されたフロントエンドアプリとして追加され、一緒に追加される各バックエンドサービスにリンクされます。バックエンドURLの環境変数名は、あとでフロントエンドのインスペクターで設定してください。",
|
|
4182
|
+
"frontendNone": "なし: 選択はすべてバックエンドサービス",
|
|
4141
4183
|
"addServices": "{count}件のサービスを追加 | {count}件のサービスを追加",
|
|
4142
4184
|
"removeService": "{directory} を削除",
|
|
4143
4185
|
"addedConfigure": "{title}を追加しました。設定してください",
|
|
@@ -4151,7 +4193,9 @@
|
|
|
4151
4193
|
"addedDescription": "{title}がボードに追加されました。以下で設定してください。",
|
|
4152
4194
|
"addFailedTitle": "サービスを追加できませんでした",
|
|
4153
4195
|
"servicesAddedTitle": "サービスを追加しました",
|
|
4154
|
-
"servicesAddedDescription": "{count}件のサービスをボードに追加しました。 | {count}件のサービスをボードに追加しました。"
|
|
4196
|
+
"servicesAddedDescription": "{count}件のサービスをボードに追加しました。 | {count}件のサービスをボードに追加しました。",
|
|
4197
|
+
"frontendLinkedNote": "{directory} をフロントエンドとして追加し、ほかのサービスにリンクしました。バックエンドURLの環境変数名はインスペクターで設定してください。",
|
|
4198
|
+
"frontendWiringFailedNote": "フロントエンドの設定を保存できませんでした。各フロントエンドアプリのインスペクターを開き、サブディレクトリとバックエンドサービスを設定してください。"
|
|
4155
4199
|
},
|
|
4156
4200
|
"repoType": "リポジトリの種類",
|
|
4157
4201
|
"repoTypeHint": "このリポジトリの種類: バックエンドサービス、フロントエンドアプリ、共有ライブラリ、またはドキュメントリポジトリ(ドキュメント/スパイクのみ)。"
|
package/i18n/locales/pl.json
CHANGED
|
@@ -2575,6 +2575,45 @@
|
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
|
+
"mcpAuthorize": {
|
|
2579
|
+
"title": "Połączyć {client}?",
|
|
2580
|
+
"subtitle": "Podaje się za {client}, a ta instalacja odeśle go do {origin}.",
|
|
2581
|
+
"workspace": {
|
|
2582
|
+
"label": "Tablica, na której będzie działać"
|
|
2583
|
+
},
|
|
2584
|
+
"scopeLabel": "Co będzie mógł robić",
|
|
2585
|
+
"scopeHint": "Każdy poziom obejmuje poprzednie.",
|
|
2586
|
+
"scope": {
|
|
2587
|
+
"read": {
|
|
2588
|
+
"label": "Tylko odczyt",
|
|
2589
|
+
"description": "Podgląd usług, zadań, potoków i uruchomień."
|
|
2590
|
+
},
|
|
2591
|
+
"write": {
|
|
2592
|
+
"label": "Odczyt i zapis",
|
|
2593
|
+
"description": "Dodatkowo tworzenie i uruchamianie zadań."
|
|
2594
|
+
},
|
|
2595
|
+
"decide": {
|
|
2596
|
+
"label": "Odczyt, zapis i decyzje",
|
|
2597
|
+
"description": "Dodatkowo odpowiadanie na pytania, na które czeka wstrzymane uruchomienie."
|
|
2598
|
+
},
|
|
2599
|
+
"admin": {
|
|
2600
|
+
"label": "Pełny dostęp",
|
|
2601
|
+
"description": "Dodatkowo usuwanie zadań i reagowanie na powiadomienia, co może scalić pull request."
|
|
2602
|
+
}
|
|
2603
|
+
},
|
|
2604
|
+
"requestedScope": "{client} poprosił o {scope}. Wybierz tę opcję powyżej tylko wtedy, gdy naprawdę chcesz jej udzielić.",
|
|
2605
|
+
"approve": "Połącz",
|
|
2606
|
+
"deny": "Anuluj",
|
|
2607
|
+
"back": "Powrót do aplikacji",
|
|
2608
|
+
"noWorkspaces": "Nie masz jeszcze tablicy, z którą można to połączyć.",
|
|
2609
|
+
"revokeHint": "Zostanie wydany klucz API, który w każdej chwili możesz unieważnić w ustawieniach tablicy.",
|
|
2610
|
+
"error": {
|
|
2611
|
+
"title": "Nie udało się skonfigurować tego połączenia",
|
|
2612
|
+
"noRequest": "Ta strona została otwarta bez żądania autoryzacji. Rozpocznij łączenie w swoim hoście MCP.",
|
|
2613
|
+
"expired": "To żądanie autoryzacji jest nieprawidłowe lub wygasło. Rozpocznij łączenie ponownie w swoim hoście MCP.",
|
|
2614
|
+
"failed": "Nie udało się zapisać decyzji. Rozpocznij łączenie ponownie w swoim hoście MCP."
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2578
2617
|
"settings": {
|
|
2579
2618
|
"modelConfiguration": {
|
|
2580
2619
|
"title": "Konfiguracja modeli",
|
|
@@ -4138,6 +4177,9 @@
|
|
|
4138
4177
|
"monorepoBrowseHint": "Przeglądaj repozytorium i wybierz katalogi usług, które chcesz dodać — z dowolnego folderu. Agenci pracujący nad usługą działają w obrębie jej podkatalogu.",
|
|
4139
4178
|
"selectedServices": "Wybrane usługi",
|
|
4140
4179
|
"noServicesSelected": "Nie wybrano jeszcze żadnych usług. Wybierz katalogi powyżej.",
|
|
4180
|
+
"frontendLabel": "Aplikacja frontendowa (opcjonalnie)",
|
|
4181
|
+
"frontendHint": "Oznacz jeden z wybranych katalogów jako frontend dla pozostałych. Zostanie dodany jako aplikacja frontendowa przypięta do tego podkatalogu i powiązany z każdą usługą backendową dodaną obok. Nazwy zmiennych środowiskowych z adresami URL backendów uzupełnij następnie w inspektorze frontendu.",
|
|
4182
|
+
"frontendNone": "Brak: wszystkie wybrane pozycje to usługi backendowe",
|
|
4141
4183
|
"addServices": "Dodaj {count} usługę | Dodaj {count} usługi | Dodaj {count} usług",
|
|
4142
4184
|
"removeService": "Usuń {directory}",
|
|
4143
4185
|
"addedConfigure": "Dodano {title}, skonfiguruj",
|
|
@@ -4151,7 +4193,9 @@
|
|
|
4151
4193
|
"addedDescription": "{title} jest na tablicy, skonfiguruj ją poniżej.",
|
|
4152
4194
|
"addFailedTitle": "Nie udało się dodać usługi",
|
|
4153
4195
|
"servicesAddedTitle": "Dodano usługi",
|
|
4154
|
-
"servicesAddedDescription": "Dodano {count} usługę do tablicy. | Dodano {count} usługi do tablicy. | Dodano {count} usług do tablicy."
|
|
4196
|
+
"servicesAddedDescription": "Dodano {count} usługę do tablicy. | Dodano {count} usługi do tablicy. | Dodano {count} usług do tablicy.",
|
|
4197
|
+
"frontendLinkedNote": "{directory} dodano jako frontend i powiązano z pozostałymi. Nazwy jego zmiennych środowiskowych z adresami URL backendów uzupełnij w inspektorze.",
|
|
4198
|
+
"frontendWiringFailedNote": "Ustawienia frontendu nie zostały zapisane. Otwórz inspektor każdej aplikacji frontendowej, aby ustawić jej podkatalog i usługi backendowe."
|
|
4155
4199
|
},
|
|
4156
4200
|
"repoType": "Typ repozytorium",
|
|
4157
4201
|
"repoTypeHint": "Czym jest to repozytorium: usługą backendową, aplikacją frontendową, współdzieloną biblioteką lub repozytorium dokumentacji (tylko dokumenty/spike'i)."
|