@cat-factory/app 0.119.1 → 0.121.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/app/components/board/AddTaskModal.vue +78 -12
- package/app/components/layout/IntegrationsHub.vue +28 -16
- package/app/components/settings/ApiTokensPanel.vue +205 -0
- package/app/composables/api/publicApiKeys.ts +26 -0
- package/app/composables/useApi.ts +2 -0
- package/app/pages/index.vue +4 -0
- package/app/stores/publicApiKeys.spec.ts +105 -0
- package/app/stores/publicApiKeys.ts +72 -0
- package/app/stores/ui.ts +13 -0
- package/app/types/publicApiKeys.ts +10 -0
- package/app/utils/catalog.spec.ts +1 -0
- package/app/utils/catalog.ts +13 -0
- package/i18n/locales/de.json +48 -0
- package/i18n/locales/en.json +48 -0
- package/i18n/locales/es.json +48 -0
- package/i18n/locales/fr.json +48 -0
- package/i18n/locales/he.json +48 -0
- package/i18n/locales/it.json +48 -0
- package/i18n/locales/ja.json +48 -0
- package/i18n/locales/pl.json +48 -0
- package/i18n/locales/tr.json +48 -0
- package/i18n/locales/uk.json +48 -0
- package/package.json +2 -2
package/app/stores/ui.ts
CHANGED
|
@@ -168,6 +168,9 @@ export const useUiStore = defineStore('ui', () => {
|
|
|
168
168
|
// Private package registries: the workspace's npm/GitHub-Packages entries agent
|
|
169
169
|
// containers install with. Opened from the Integrations hub.
|
|
170
170
|
const packageRegistriesOpen = ref(false)
|
|
171
|
+
// API access tokens: the workspace's inbound public-API keys external systems present to
|
|
172
|
+
// the `/api/v1` surface. Opened from the Integrations hub.
|
|
173
|
+
const apiTokensOpen = ref(false)
|
|
171
174
|
// The single tabbed Infrastructure window — a TOP-LEVEL navbar destination (no longer
|
|
172
175
|
// reached via the Integrations hub). Two topical tabs: "Agent containers" (the execution
|
|
173
176
|
// backend + self-hosted runner pool, plus the local-mode warm pool/checkout) and "Test
|
|
@@ -618,6 +621,13 @@ export const useUiStore = defineStore('ui', () => {
|
|
|
618
621
|
function closePackageRegistries() {
|
|
619
622
|
packageRegistriesOpen.value = false
|
|
620
623
|
}
|
|
624
|
+
function openApiTokens() {
|
|
625
|
+
resetHubReturn()
|
|
626
|
+
apiTokensOpen.value = true
|
|
627
|
+
}
|
|
628
|
+
function closeApiTokens() {
|
|
629
|
+
apiTokensOpen.value = false
|
|
630
|
+
}
|
|
621
631
|
// Top-level navbar entry into the Infrastructure window. No hub-return marker (it isn't
|
|
622
632
|
// reached from the Integrations hub), so the window shows no "Back to Integrations" control.
|
|
623
633
|
function openInfrastructure(tab: 'environment' | 'runner-pool' = 'runner-pool') {
|
|
@@ -923,6 +933,7 @@ export const useUiStore = defineStore('ui', () => {
|
|
|
923
933
|
accountSettingsScrollTarget,
|
|
924
934
|
observabilityConnectionOpen,
|
|
925
935
|
packageRegistriesOpen,
|
|
936
|
+
apiTokensOpen,
|
|
926
937
|
infrastructureOpen,
|
|
927
938
|
infrastructureTab,
|
|
928
939
|
openInfrastructure,
|
|
@@ -1021,6 +1032,8 @@ export const useUiStore = defineStore('ui', () => {
|
|
|
1021
1032
|
closeObservabilityConnection,
|
|
1022
1033
|
openPackageRegistries,
|
|
1023
1034
|
closePackageRegistries,
|
|
1035
|
+
openApiTokens,
|
|
1036
|
+
closeApiTokens,
|
|
1024
1037
|
openProviderConnection,
|
|
1025
1038
|
closeProviderConnection,
|
|
1026
1039
|
k3sSetupPrefill,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Inbound public-API keys — the "API access tokens" external systems present to the
|
|
2
|
+
// `/api/v1` surface (`Authorization: Bearer cf_live_…`). Workspace-scoped; the raw secret
|
|
3
|
+
// is returned exactly once on create and never again, so the list only ever holds metadata.
|
|
4
|
+
// Re-exported from the shared contracts package (the single source of truth).
|
|
5
|
+
export type {
|
|
6
|
+
PublicApiKey,
|
|
7
|
+
PublicApiKeyListResult,
|
|
8
|
+
CreatePublicApiKeyInput,
|
|
9
|
+
CreatedPublicApiKey,
|
|
10
|
+
} from '@cat-factory/contracts'
|
package/app/utils/catalog.ts
CHANGED
|
@@ -64,6 +64,19 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
64
64
|
'Read-only, multi-repo codebase investigation that traces the bug to its root cause and decides whether the report is fixable as-is or needs the reporter to clarify (no code changes).',
|
|
65
65
|
resultView: 'generic-structured',
|
|
66
66
|
},
|
|
67
|
+
{
|
|
68
|
+
// A timeboxed read-only research/investigation agent. Its structured findings open in the
|
|
69
|
+
// shared generic viewer; the findings document is committed by a backend post-op (delivered
|
|
70
|
+
// as a pull request by default, or straight to base via the direct pipeline).
|
|
71
|
+
kind: 'spike',
|
|
72
|
+
label: 'Spike',
|
|
73
|
+
icon: 'i-lucide-flask-conical',
|
|
74
|
+
color: '#22d3ee',
|
|
75
|
+
category: 'design',
|
|
76
|
+
description:
|
|
77
|
+
'Timeboxed read-only investigation that answers a research question against the context and codebase, and delivers a findings document (as a pull request by default; no code).',
|
|
78
|
+
resultView: 'generic-structured',
|
|
79
|
+
},
|
|
67
80
|
{
|
|
68
81
|
kind: 'task-estimator',
|
|
69
82
|
label: 'Task Estimator',
|
package/i18n/locales/de.json
CHANGED
|
@@ -519,6 +519,36 @@
|
|
|
519
519
|
"removeFailed": "Der Registry-Eintrag konnte nicht entfernt werden"
|
|
520
520
|
}
|
|
521
521
|
},
|
|
522
|
+
"apiTokens": {
|
|
523
|
+
"title": "API-Zugriffstokens",
|
|
524
|
+
"intro": "Erstelle Tokens, die externe Systeme der cat-factory-API vorlegen. Jedes Token authentifiziert sich als dieser Arbeitsbereich an den /api/v1-Endpunkten. Das Geheimnis wird nur einmal bei der Erstellung angezeigt und kann nicht wiederhergestellt werden. Speichere es daher sofort.",
|
|
525
|
+
"secret": {
|
|
526
|
+
"heading": "Kopiere dein Token jetzt",
|
|
527
|
+
"warning": "Dies ist das einzige Mal, dass das vollständige Token angezeigt wird. Bewahre es sicher auf; es kann nicht wiederhergestellt werden.",
|
|
528
|
+
"copy": "Token kopieren",
|
|
529
|
+
"done": "Fertig"
|
|
530
|
+
},
|
|
531
|
+
"list": {
|
|
532
|
+
"heading": "Aktive Tokens",
|
|
533
|
+
"created": "Erstellt am {date}",
|
|
534
|
+
"lastUsed": "zuletzt verwendet am {date}",
|
|
535
|
+
"neverUsed": "nie verwendet",
|
|
536
|
+
"revoke": "Token widerrufen"
|
|
537
|
+
},
|
|
538
|
+
"add": {
|
|
539
|
+
"heading": "Token erstellen",
|
|
540
|
+
"label": "Bezeichnung",
|
|
541
|
+
"labelHelp": "Ein Name, um dieses Token später wiederzuerkennen.",
|
|
542
|
+
"labelPlaceholder": "z. B. CI-Pipeline",
|
|
543
|
+
"create": "Token erstellen"
|
|
544
|
+
},
|
|
545
|
+
"toast": {
|
|
546
|
+
"loadFailed": "API-Tokens konnten nicht geladen werden",
|
|
547
|
+
"created": "Token erstellt",
|
|
548
|
+
"createFailed": "Token konnte nicht erstellt werden",
|
|
549
|
+
"revokeFailed": "Token konnte nicht widerrufen werden"
|
|
550
|
+
}
|
|
551
|
+
},
|
|
522
552
|
"sharedStacks": {
|
|
523
553
|
"tab": "Gemeinsame Stacks",
|
|
524
554
|
"intro": "Langlebige Compose-Infrastruktur (Datenbanken, Broker, Suche, Mail), die einmal pro Workspace hochgefahren und über Ausführungen und Pull Requests hinweg wiederverwendet wird. Eine Testumgebung verbindet sich mit dem verwalteten Netzwerk eines Stacks. Das Hochfahren eines Stacks läuft auf einem lokalen Docker-Deployment; auf anderen Backends kannst du die Definition dennoch verwalten.",
|
|
@@ -1916,6 +1946,10 @@
|
|
|
1916
1946
|
"label": "Private Package-Registries",
|
|
1917
1947
|
"description": "npm- und GitHub-Packages-Tokens, mit denen Agenten private Abhängigkeiten installieren."
|
|
1918
1948
|
},
|
|
1949
|
+
"apiTokens": {
|
|
1950
|
+
"label": "API-Zugriffstokens",
|
|
1951
|
+
"description": "Tokens, die externe Systeme vorlegen, um die cat-factory-API aufzurufen."
|
|
1952
|
+
},
|
|
1919
1953
|
"githubPat": {
|
|
1920
1954
|
"label": "Mein GitHub-Token",
|
|
1921
1955
|
"description": "Ein Personal Access Token, der für von Ihnen gestartete Läufe verwendet wird (Pushes, PRs, CI, Merge)."
|
|
@@ -2064,6 +2098,20 @@
|
|
|
2064
2098
|
"placeholder": "Die Endpoints oder die Oberfläche im Geltungsbereich"
|
|
2065
2099
|
}
|
|
2066
2100
|
},
|
|
2101
|
+
"spikeFields": {
|
|
2102
|
+
"researchQuestion": {
|
|
2103
|
+
"label": "Forschungsfrage",
|
|
2104
|
+
"placeholder": "Die Frage oder Hypothese, die der Spike beantworten soll"
|
|
2105
|
+
},
|
|
2106
|
+
"successCriteria": {
|
|
2107
|
+
"label": "Erfolgskriterien",
|
|
2108
|
+
"placeholder": "Die Akzeptanzkriterien oder die Entscheidung, die die Ergebnisse stützen sollen"
|
|
2109
|
+
},
|
|
2110
|
+
"optionsToCompare": {
|
|
2111
|
+
"label": "Zu vergleichende Optionen",
|
|
2112
|
+
"placeholder": "Die gegeneinander abzuwägenden Optionen"
|
|
2113
|
+
}
|
|
2114
|
+
},
|
|
2067
2115
|
"optional": "optional",
|
|
2068
2116
|
"pipeline": "Pipeline",
|
|
2069
2117
|
"chooseAtRunTime": "Zur Laufzeit auswählen",
|
package/i18n/locales/en.json
CHANGED
|
@@ -258,6 +258,20 @@
|
|
|
258
258
|
"placeholder": "The endpoints or surface in scope"
|
|
259
259
|
}
|
|
260
260
|
},
|
|
261
|
+
"spikeFields": {
|
|
262
|
+
"researchQuestion": {
|
|
263
|
+
"label": "Research question",
|
|
264
|
+
"placeholder": "The question or hypothesis the spike must answer"
|
|
265
|
+
},
|
|
266
|
+
"successCriteria": {
|
|
267
|
+
"label": "Success criteria",
|
|
268
|
+
"placeholder": "The acceptance criteria or the decision the findings must inform"
|
|
269
|
+
},
|
|
270
|
+
"optionsToCompare": {
|
|
271
|
+
"label": "Options to compare",
|
|
272
|
+
"placeholder": "The options to weigh against each other"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
261
275
|
"optional": "optional",
|
|
262
276
|
"pipeline": "Pipeline",
|
|
263
277
|
"chooseAtRunTime": "Choose at run time",
|
|
@@ -1845,6 +1859,10 @@
|
|
|
1845
1859
|
"label": "Private package registries",
|
|
1846
1860
|
"description": "npm and GitHub Packages tokens agents use to install private dependencies."
|
|
1847
1861
|
},
|
|
1862
|
+
"apiTokens": {
|
|
1863
|
+
"label": "API access tokens",
|
|
1864
|
+
"description": "Tokens external systems present to call the cat-factory API."
|
|
1865
|
+
},
|
|
1848
1866
|
"githubPat": {
|
|
1849
1867
|
"label": "My GitHub token",
|
|
1850
1868
|
"description": "A personal access token used for runs you start (pushes, PRs, CI, merge)."
|
|
@@ -2382,6 +2400,36 @@
|
|
|
2382
2400
|
"removeFailed": "Could not remove the registry entry"
|
|
2383
2401
|
}
|
|
2384
2402
|
},
|
|
2403
|
+
"apiTokens": {
|
|
2404
|
+
"title": "API access tokens",
|
|
2405
|
+
"intro": "Create tokens that external systems present to the cat-factory API. Each token authenticates as this workspace on the /api/v1 endpoints. The secret is shown only once, when you create it, and cannot be recovered, so store it right away.",
|
|
2406
|
+
"secret": {
|
|
2407
|
+
"heading": "Copy your token now",
|
|
2408
|
+
"warning": "This is the only time the full token is shown. Store it somewhere safe; it cannot be recovered.",
|
|
2409
|
+
"copy": "Copy token",
|
|
2410
|
+
"done": "Done"
|
|
2411
|
+
},
|
|
2412
|
+
"list": {
|
|
2413
|
+
"heading": "Active tokens",
|
|
2414
|
+
"created": "Created {date}",
|
|
2415
|
+
"lastUsed": "last used {date}",
|
|
2416
|
+
"neverUsed": "never used",
|
|
2417
|
+
"revoke": "Revoke token"
|
|
2418
|
+
},
|
|
2419
|
+
"add": {
|
|
2420
|
+
"heading": "Create a token",
|
|
2421
|
+
"label": "Label",
|
|
2422
|
+
"labelHelp": "A name to recognize this token by later.",
|
|
2423
|
+
"labelPlaceholder": "e.g. CI pipeline",
|
|
2424
|
+
"create": "Create token"
|
|
2425
|
+
},
|
|
2426
|
+
"toast": {
|
|
2427
|
+
"loadFailed": "Could not load API tokens",
|
|
2428
|
+
"created": "Token created",
|
|
2429
|
+
"createFailed": "Could not create the token",
|
|
2430
|
+
"revokeFailed": "Could not revoke the token"
|
|
2431
|
+
}
|
|
2432
|
+
},
|
|
2385
2433
|
"sharedStacks": {
|
|
2386
2434
|
"tab": "Shared stacks",
|
|
2387
2435
|
"intro": "Long-lived compose infrastructure (databases, brokers, search, mail) brought up once per workspace and reused across runs and pull requests. A test environment attaches to a stack's managed network. Bringing a stack up runs on a local Docker deployment; on other backends you can still manage the definition.",
|
package/i18n/locales/es.json
CHANGED
|
@@ -240,6 +240,20 @@
|
|
|
240
240
|
"placeholder": "Los endpoints o la superficie dentro del alcance"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"spikeFields": {
|
|
244
|
+
"researchQuestion": {
|
|
245
|
+
"label": "Pregunta de investigación",
|
|
246
|
+
"placeholder": "La pregunta o hipótesis que el spike debe responder"
|
|
247
|
+
},
|
|
248
|
+
"successCriteria": {
|
|
249
|
+
"label": "Criterios de éxito",
|
|
250
|
+
"placeholder": "Los criterios de aceptación o la decisión que deben fundamentar los hallazgos"
|
|
251
|
+
},
|
|
252
|
+
"optionsToCompare": {
|
|
253
|
+
"label": "Opciones a comparar",
|
|
254
|
+
"placeholder": "Las opciones a sopesar entre sí"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
243
257
|
"optional": "opcional",
|
|
244
258
|
"pipeline": "Pipeline",
|
|
245
259
|
"chooseAtRunTime": "Elegir al ejecutar",
|
|
@@ -1778,6 +1792,10 @@
|
|
|
1778
1792
|
"label": "Registros privados de paquetes",
|
|
1779
1793
|
"description": "Tokens de npm y GitHub Packages que los agentes usan para instalar dependencias privadas."
|
|
1780
1794
|
},
|
|
1795
|
+
"apiTokens": {
|
|
1796
|
+
"label": "Tokens de acceso a la API",
|
|
1797
|
+
"description": "Tokens que los sistemas externos presentan para llamar a la API de cat-factory."
|
|
1798
|
+
},
|
|
1781
1799
|
"githubPat": {
|
|
1782
1800
|
"label": "Mi token de GitHub",
|
|
1783
1801
|
"description": "Un token de acceso personal usado para las ejecuciones que inicias (pushes, PR, CI, fusión)."
|
|
@@ -2197,6 +2215,36 @@
|
|
|
2197
2215
|
"removeFailed": "No se pudo eliminar la entrada del registro"
|
|
2198
2216
|
}
|
|
2199
2217
|
},
|
|
2218
|
+
"apiTokens": {
|
|
2219
|
+
"title": "Tokens de acceso a la API",
|
|
2220
|
+
"intro": "Crea tokens que los sistemas externos presentan a la API de cat-factory. Cada token se autentica como este espacio de trabajo en los endpoints /api/v1. El secreto se muestra una sola vez, al crearlo, y no se puede recuperar, así que guárdalo de inmediato.",
|
|
2221
|
+
"secret": {
|
|
2222
|
+
"heading": "Copia tu token ahora",
|
|
2223
|
+
"warning": "Esta es la única vez que se muestra el token completo. Guárdalo en un lugar seguro; no se puede recuperar.",
|
|
2224
|
+
"copy": "Copiar token",
|
|
2225
|
+
"done": "Listo"
|
|
2226
|
+
},
|
|
2227
|
+
"list": {
|
|
2228
|
+
"heading": "Tokens activos",
|
|
2229
|
+
"created": "Creado el {date}",
|
|
2230
|
+
"lastUsed": "usado por última vez el {date}",
|
|
2231
|
+
"neverUsed": "nunca usado",
|
|
2232
|
+
"revoke": "Revocar token"
|
|
2233
|
+
},
|
|
2234
|
+
"add": {
|
|
2235
|
+
"heading": "Crear un token",
|
|
2236
|
+
"label": "Etiqueta",
|
|
2237
|
+
"labelHelp": "Un nombre para reconocer este token más adelante.",
|
|
2238
|
+
"labelPlaceholder": "p. ej. pipeline de CI",
|
|
2239
|
+
"create": "Crear token"
|
|
2240
|
+
},
|
|
2241
|
+
"toast": {
|
|
2242
|
+
"loadFailed": "No se pudieron cargar los tokens de la API",
|
|
2243
|
+
"created": "Token creado",
|
|
2244
|
+
"createFailed": "No se pudo crear el token",
|
|
2245
|
+
"revokeFailed": "No se pudo revocar el token"
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2200
2248
|
"sharedStacks": {
|
|
2201
2249
|
"tab": "Stacks compartidos",
|
|
2202
2250
|
"intro": "Infraestructura de Compose de larga duración (bases de datos, brokers, búsqueda, correo) que se levanta una vez por espacio de trabajo y se reutiliza en todas las ejecuciones y pull requests. Un entorno de pruebas se conecta a la red gestionada de un stack. Levantar un stack requiere un despliegue local de Docker; en otros backends puedes gestionar igualmente la definición.",
|
package/i18n/locales/fr.json
CHANGED
|
@@ -240,6 +240,20 @@
|
|
|
240
240
|
"placeholder": "Les endpoints ou la surface concernés"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"spikeFields": {
|
|
244
|
+
"researchQuestion": {
|
|
245
|
+
"label": "Question de recherche",
|
|
246
|
+
"placeholder": "La question ou l'hypothèse à laquelle le spike doit répondre"
|
|
247
|
+
},
|
|
248
|
+
"successCriteria": {
|
|
249
|
+
"label": "Critères de réussite",
|
|
250
|
+
"placeholder": "Les critères d'acceptation ou la décision que les conclusions doivent éclairer"
|
|
251
|
+
},
|
|
252
|
+
"optionsToCompare": {
|
|
253
|
+
"label": "Options à comparer",
|
|
254
|
+
"placeholder": "Les options à mettre en balance"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
243
257
|
"optional": "optionnel",
|
|
244
258
|
"pipeline": "Pipeline",
|
|
245
259
|
"chooseAtRunTime": "Choisir au lancement",
|
|
@@ -1778,6 +1792,10 @@
|
|
|
1778
1792
|
"label": "Registres de paquets privés",
|
|
1779
1793
|
"description": "Jetons npm et GitHub Packages que les agents utilisent pour installer les dépendances privées."
|
|
1780
1794
|
},
|
|
1795
|
+
"apiTokens": {
|
|
1796
|
+
"label": "Jetons d'accès à l'API",
|
|
1797
|
+
"description": "Jetons que les systèmes externes présentent pour appeler l'API cat-factory."
|
|
1798
|
+
},
|
|
1781
1799
|
"githubPat": {
|
|
1782
1800
|
"label": "Mon jeton GitHub",
|
|
1783
1801
|
"description": "Un jeton d'accès personnel utilisé pour les exécutions que vous lancez (pushes, PR, CI, fusion)."
|
|
@@ -2197,6 +2215,36 @@
|
|
|
2197
2215
|
"removeFailed": "Impossible de supprimer l'entrée du registre"
|
|
2198
2216
|
}
|
|
2199
2217
|
},
|
|
2218
|
+
"apiTokens": {
|
|
2219
|
+
"title": "Jetons d'accès à l'API",
|
|
2220
|
+
"intro": "Créez des jetons que les systèmes externes présentent à l'API cat-factory. Chaque jeton s'authentifie en tant que cet espace de travail sur les points de terminaison /api/v1. Le secret n'est affiché qu'une seule fois, à sa création, et ne peut pas être récupéré, alors conservez-le immédiatement.",
|
|
2221
|
+
"secret": {
|
|
2222
|
+
"heading": "Copiez votre jeton maintenant",
|
|
2223
|
+
"warning": "C'est la seule fois où le jeton complet est affiché. Conservez-le en lieu sûr ; il ne peut pas être récupéré.",
|
|
2224
|
+
"copy": "Copier le jeton",
|
|
2225
|
+
"done": "Terminé"
|
|
2226
|
+
},
|
|
2227
|
+
"list": {
|
|
2228
|
+
"heading": "Jetons actifs",
|
|
2229
|
+
"created": "Créé le {date}",
|
|
2230
|
+
"lastUsed": "dernière utilisation le {date}",
|
|
2231
|
+
"neverUsed": "jamais utilisé",
|
|
2232
|
+
"revoke": "Révoquer le jeton"
|
|
2233
|
+
},
|
|
2234
|
+
"add": {
|
|
2235
|
+
"heading": "Créer un jeton",
|
|
2236
|
+
"label": "Libellé",
|
|
2237
|
+
"labelHelp": "Un nom pour reconnaître ce jeton plus tard.",
|
|
2238
|
+
"labelPlaceholder": "ex. pipeline CI",
|
|
2239
|
+
"create": "Créer le jeton"
|
|
2240
|
+
},
|
|
2241
|
+
"toast": {
|
|
2242
|
+
"loadFailed": "Impossible de charger les jetons d'API",
|
|
2243
|
+
"created": "Jeton créé",
|
|
2244
|
+
"createFailed": "Impossible de créer le jeton",
|
|
2245
|
+
"revokeFailed": "Impossible de révoquer le jeton"
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2200
2248
|
"sharedStacks": {
|
|
2201
2249
|
"tab": "Stacks partagés",
|
|
2202
2250
|
"intro": "Infrastructure Compose de longue durée (bases de données, brokers, recherche, e-mail) démarrée une fois par espace de travail et réutilisée pour toutes les exécutions et pull requests. Un environnement de test se connecte au réseau géré d'un stack. Démarrer un stack nécessite un déploiement Docker local ; sur les autres backends, vous pouvez tout de même gérer la définition.",
|
package/i18n/locales/he.json
CHANGED
|
@@ -240,6 +240,20 @@
|
|
|
240
240
|
"placeholder": "נקודות הקצה או המשטח שבתחום"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"spikeFields": {
|
|
244
|
+
"researchQuestion": {
|
|
245
|
+
"label": "שאלת מחקר",
|
|
246
|
+
"placeholder": "השאלה או ההשערה שעל הספייק לענות עליה"
|
|
247
|
+
},
|
|
248
|
+
"successCriteria": {
|
|
249
|
+
"label": "קריטריוני הצלחה",
|
|
250
|
+
"placeholder": "קריטריוני הקבלה או ההחלטה שהממצאים צריכים לבסס"
|
|
251
|
+
},
|
|
252
|
+
"optionsToCompare": {
|
|
253
|
+
"label": "אפשרויות להשוואה",
|
|
254
|
+
"placeholder": "האפשרויות שיש לשקול זו מול זו"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
243
257
|
"optional": "אופציונלי",
|
|
244
258
|
"pipeline": "צינור",
|
|
245
259
|
"chooseAtRunTime": "בחר בזמן הריצה",
|
|
@@ -1778,6 +1792,10 @@
|
|
|
1778
1792
|
"label": "מאגרי חבילות פרטיים",
|
|
1779
1793
|
"description": "אסימוני npm ו-GitHub Packages שסוכנים משתמשים בהם להתקנת תלויות פרטיות."
|
|
1780
1794
|
},
|
|
1795
|
+
"apiTokens": {
|
|
1796
|
+
"label": "אסימוני גישה ל-API",
|
|
1797
|
+
"description": "אסימונים שמערכות חיצוניות מציגות כדי לקרוא ל-API של cat-factory."
|
|
1798
|
+
},
|
|
1781
1799
|
"githubPat": {
|
|
1782
1800
|
"label": "אסימון ה-GitHub שלי",
|
|
1783
1801
|
"description": "אסימון גישה אישי המשמש להרצות שאתה מתחיל (דחיפות, PR, CI, מיזוג)."
|
|
@@ -2318,6 +2336,36 @@
|
|
|
2318
2336
|
"removeFailed": "הסרת רשומת המאגר נכשלה"
|
|
2319
2337
|
}
|
|
2320
2338
|
},
|
|
2339
|
+
"apiTokens": {
|
|
2340
|
+
"title": "אסימוני גישה ל-API",
|
|
2341
|
+
"intro": "צור אסימונים שמערכות חיצוניות מציגות ל-API של cat-factory. כל אסימון מאמת את עצמו כמרחב העבודה הזה בנקודות הקצה /api/v1. הסוד מוצג פעם אחת בלבד, בעת היצירה, ולא ניתן לשחזרו, לכן שמור אותו מיד.",
|
|
2342
|
+
"secret": {
|
|
2343
|
+
"heading": "העתק את האסימון שלך עכשיו",
|
|
2344
|
+
"warning": "זו הפעם היחידה שבה מוצג האסימון המלא. שמור אותו במקום בטוח; לא ניתן לשחזרו.",
|
|
2345
|
+
"copy": "העתק אסימון",
|
|
2346
|
+
"done": "סיום"
|
|
2347
|
+
},
|
|
2348
|
+
"list": {
|
|
2349
|
+
"heading": "אסימונים פעילים",
|
|
2350
|
+
"created": "נוצר בתאריך {date}",
|
|
2351
|
+
"lastUsed": "שימוש אחרון בתאריך {date}",
|
|
2352
|
+
"neverUsed": "מעולם לא היה בשימוש",
|
|
2353
|
+
"revoke": "בטל אסימון"
|
|
2354
|
+
},
|
|
2355
|
+
"add": {
|
|
2356
|
+
"heading": "צור אסימון",
|
|
2357
|
+
"label": "תווית",
|
|
2358
|
+
"labelHelp": "שם שיעזור לך לזהות את האסימון הזה בהמשך.",
|
|
2359
|
+
"labelPlaceholder": "לדוגמה, צינור CI",
|
|
2360
|
+
"create": "צור אסימון"
|
|
2361
|
+
},
|
|
2362
|
+
"toast": {
|
|
2363
|
+
"loadFailed": "לא ניתן לטעון את אסימוני ה-API",
|
|
2364
|
+
"created": "האסימון נוצר",
|
|
2365
|
+
"createFailed": "לא ניתן ליצור את האסימון",
|
|
2366
|
+
"revokeFailed": "לא ניתן לבטל את האסימון"
|
|
2367
|
+
}
|
|
2368
|
+
},
|
|
2321
2369
|
"sharedStacks": {
|
|
2322
2370
|
"tab": "מקבצים משותפים",
|
|
2323
2371
|
"intro": "תשתית Compose ארוכת-טווח (מסדי נתונים, ברוקרים, חיפוש, דואר) שמופעלת פעם אחת לכל סביבת עבודה ומשמשת מחדש בכל ההרצות ובקשות המשיכה. סביבת בדיקה מתחברת לרשת המנוהלת של מקבץ. הפעלת מקבץ מחייבת פריסת Docker מקומית; ב-backends אחרים עדיין ניתן לנהל את ההגדרה.",
|
package/i18n/locales/it.json
CHANGED
|
@@ -519,6 +519,36 @@
|
|
|
519
519
|
"removeFailed": "Impossibile rimuovere la voce del registry"
|
|
520
520
|
}
|
|
521
521
|
},
|
|
522
|
+
"apiTokens": {
|
|
523
|
+
"title": "Token di accesso API",
|
|
524
|
+
"intro": "Crea token che i sistemi esterni presentano all'API di cat-factory. Ogni token si autentica come questo spazio di lavoro sugli endpoint /api/v1. Il segreto viene mostrato una sola volta, al momento della creazione, e non può essere recuperato, quindi conservalo subito.",
|
|
525
|
+
"secret": {
|
|
526
|
+
"heading": "Copia il tuo token ora",
|
|
527
|
+
"warning": "Questa è l'unica volta in cui viene mostrato il token completo. Conservalo in un luogo sicuro; non può essere recuperato.",
|
|
528
|
+
"copy": "Copia token",
|
|
529
|
+
"done": "Fatto"
|
|
530
|
+
},
|
|
531
|
+
"list": {
|
|
532
|
+
"heading": "Token attivi",
|
|
533
|
+
"created": "Creato il {date}",
|
|
534
|
+
"lastUsed": "ultimo utilizzo il {date}",
|
|
535
|
+
"neverUsed": "mai utilizzato",
|
|
536
|
+
"revoke": "Revoca token"
|
|
537
|
+
},
|
|
538
|
+
"add": {
|
|
539
|
+
"heading": "Crea un token",
|
|
540
|
+
"label": "Etichetta",
|
|
541
|
+
"labelHelp": "Un nome per riconoscere questo token in seguito.",
|
|
542
|
+
"labelPlaceholder": "es. pipeline CI",
|
|
543
|
+
"create": "Crea token"
|
|
544
|
+
},
|
|
545
|
+
"toast": {
|
|
546
|
+
"loadFailed": "Impossibile caricare i token API",
|
|
547
|
+
"created": "Token creato",
|
|
548
|
+
"createFailed": "Impossibile creare il token",
|
|
549
|
+
"revokeFailed": "Impossibile revocare il token"
|
|
550
|
+
}
|
|
551
|
+
},
|
|
522
552
|
"sharedStacks": {
|
|
523
553
|
"tab": "Stack condivisi",
|
|
524
554
|
"intro": "Infrastruttura compose a lunga durata (database, broker, ricerca, mail) avviata una volta per workspace e riutilizzata tra run e pull request. Un ambiente di test si collega alla rete gestita di uno stack. L'avvio di uno stack viene eseguito su un deployment Docker locale; su altri backend puoi comunque gestire la definizione.",
|
|
@@ -1916,6 +1946,10 @@
|
|
|
1916
1946
|
"label": "Registry di pacchetti privati",
|
|
1917
1947
|
"description": "Token npm e GitHub Packages che gli agenti usano per installare dipendenze private."
|
|
1918
1948
|
},
|
|
1949
|
+
"apiTokens": {
|
|
1950
|
+
"label": "Token di accesso API",
|
|
1951
|
+
"description": "Token che i sistemi esterni presentano per chiamare l'API di cat-factory."
|
|
1952
|
+
},
|
|
1919
1953
|
"githubPat": {
|
|
1920
1954
|
"label": "Il mio token GitHub",
|
|
1921
1955
|
"description": "Un personal access token usato per le esecuzioni che avvii tu (push, PR, CI, merge)."
|
|
@@ -2064,6 +2098,20 @@
|
|
|
2064
2098
|
"placeholder": "Gli endpoint o la superficie in ambito"
|
|
2065
2099
|
}
|
|
2066
2100
|
},
|
|
2101
|
+
"spikeFields": {
|
|
2102
|
+
"researchQuestion": {
|
|
2103
|
+
"label": "Domanda di ricerca",
|
|
2104
|
+
"placeholder": "La domanda o l'ipotesi a cui lo spike deve rispondere"
|
|
2105
|
+
},
|
|
2106
|
+
"successCriteria": {
|
|
2107
|
+
"label": "Criteri di successo",
|
|
2108
|
+
"placeholder": "I criteri di accettazione o la decisione che i risultati devono supportare"
|
|
2109
|
+
},
|
|
2110
|
+
"optionsToCompare": {
|
|
2111
|
+
"label": "Opzioni da confrontare",
|
|
2112
|
+
"placeholder": "Le opzioni da valutare l'una rispetto all'altra"
|
|
2113
|
+
}
|
|
2114
|
+
},
|
|
2067
2115
|
"optional": "opzionale",
|
|
2068
2116
|
"pipeline": "Pipeline",
|
|
2069
2117
|
"chooseAtRunTime": "Scegli al momento dell'esecuzione",
|
package/i18n/locales/ja.json
CHANGED
|
@@ -240,6 +240,20 @@
|
|
|
240
240
|
"placeholder": "対象となるエンドポイントや範囲"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"spikeFields": {
|
|
244
|
+
"researchQuestion": {
|
|
245
|
+
"label": "調査課題",
|
|
246
|
+
"placeholder": "スパイクで答えるべき問いや仮説"
|
|
247
|
+
},
|
|
248
|
+
"successCriteria": {
|
|
249
|
+
"label": "成功基準",
|
|
250
|
+
"placeholder": "受け入れ基準、または調査結果が判断材料とすべき決定事項"
|
|
251
|
+
},
|
|
252
|
+
"optionsToCompare": {
|
|
253
|
+
"label": "比較する選択肢",
|
|
254
|
+
"placeholder": "互いに比較検討する選択肢"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
243
257
|
"optional": "任意",
|
|
244
258
|
"pipeline": "パイプライン",
|
|
245
259
|
"chooseAtRunTime": "実行時に選択",
|
|
@@ -1778,6 +1792,10 @@
|
|
|
1778
1792
|
"label": "プライベートパッケージレジストリ",
|
|
1779
1793
|
"description": "エージェントがプライベート依存関係のインストールに使う npm と GitHub Packages のトークン。"
|
|
1780
1794
|
},
|
|
1795
|
+
"apiTokens": {
|
|
1796
|
+
"label": "APIアクセストークン",
|
|
1797
|
+
"description": "外部システムが cat-factory API を呼び出すために提示するトークン。"
|
|
1798
|
+
},
|
|
1781
1799
|
"githubPat": {
|
|
1782
1800
|
"label": "マイ GitHub トークン",
|
|
1783
1801
|
"description": "自分が開始した実行 (push、PR、CI、マージ) に使用するパーソナルアクセストークン。"
|
|
@@ -2319,6 +2337,36 @@
|
|
|
2319
2337
|
"removeFailed": "レジストリエントリを削除できませんでした"
|
|
2320
2338
|
}
|
|
2321
2339
|
},
|
|
2340
|
+
"apiTokens": {
|
|
2341
|
+
"title": "APIアクセストークン",
|
|
2342
|
+
"intro": "外部システムが cat-factory API に提示するトークンを作成します。各トークンは /api/v1 エンドポイントでこのワークスペースとして認証されます。シークレットは作成時に一度だけ表示され、復元できないため、すぐに保存してください。",
|
|
2343
|
+
"secret": {
|
|
2344
|
+
"heading": "今すぐトークンをコピーしてください",
|
|
2345
|
+
"warning": "完全なトークンが表示されるのはこの一度だけです。安全な場所に保管してください。復元はできません。",
|
|
2346
|
+
"copy": "トークンをコピー",
|
|
2347
|
+
"done": "完了"
|
|
2348
|
+
},
|
|
2349
|
+
"list": {
|
|
2350
|
+
"heading": "有効なトークン",
|
|
2351
|
+
"created": "{date} に作成",
|
|
2352
|
+
"lastUsed": "最終使用 {date}",
|
|
2353
|
+
"neverUsed": "未使用",
|
|
2354
|
+
"revoke": "トークンを取り消す"
|
|
2355
|
+
},
|
|
2356
|
+
"add": {
|
|
2357
|
+
"heading": "トークンを作成",
|
|
2358
|
+
"label": "ラベル",
|
|
2359
|
+
"labelHelp": "後でこのトークンを識別するための名前。",
|
|
2360
|
+
"labelPlaceholder": "例: CI パイプライン",
|
|
2361
|
+
"create": "トークンを作成"
|
|
2362
|
+
},
|
|
2363
|
+
"toast": {
|
|
2364
|
+
"loadFailed": "APIトークンを読み込めませんでした",
|
|
2365
|
+
"created": "トークンを作成しました",
|
|
2366
|
+
"createFailed": "トークンを作成できませんでした",
|
|
2367
|
+
"revokeFailed": "トークンを取り消せませんでした"
|
|
2368
|
+
}
|
|
2369
|
+
},
|
|
2322
2370
|
"sharedStacks": {
|
|
2323
2371
|
"tab": "共有スタック",
|
|
2324
2372
|
"intro": "ワークスペースごとに一度だけ起動され、すべての実行とプルリクエストで再利用される長期稼働の Compose インフラ(データベース、ブローカー、検索、メール)です。テスト環境はスタックのマネージドネットワークに接続します。スタックの起動にはローカルの Docker デプロイが必要です。他のバックエンドでも定義の管理は可能です。",
|
package/i18n/locales/pl.json
CHANGED
|
@@ -240,6 +240,20 @@
|
|
|
240
240
|
"placeholder": "Endpointy lub zakres objęty dokumentem"
|
|
241
241
|
}
|
|
242
242
|
},
|
|
243
|
+
"spikeFields": {
|
|
244
|
+
"researchQuestion": {
|
|
245
|
+
"label": "Pytanie badawcze",
|
|
246
|
+
"placeholder": "Pytanie lub hipoteza, na które ma odpowiedzieć spike"
|
|
247
|
+
},
|
|
248
|
+
"successCriteria": {
|
|
249
|
+
"label": "Kryteria sukcesu",
|
|
250
|
+
"placeholder": "Kryteria akceptacji lub decyzja, którą mają uzasadnić wyniki"
|
|
251
|
+
},
|
|
252
|
+
"optionsToCompare": {
|
|
253
|
+
"label": "Opcje do porównania",
|
|
254
|
+
"placeholder": "Opcje do rozważenia względem siebie"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
243
257
|
"optional": "opcjonalne",
|
|
244
258
|
"pipeline": "Pipeline",
|
|
245
259
|
"chooseAtRunTime": "Wybierz przy uruchomieniu",
|
|
@@ -1778,6 +1792,10 @@
|
|
|
1778
1792
|
"label": "Prywatne rejestry pakietów",
|
|
1779
1793
|
"description": "Tokeny npm i GitHub Packages, których agenci używają do instalowania prywatnych zależności."
|
|
1780
1794
|
},
|
|
1795
|
+
"apiTokens": {
|
|
1796
|
+
"label": "Tokeny dostępu do API",
|
|
1797
|
+
"description": "Tokeny, które systemy zewnętrzne przedstawiają, aby wywołać API cat-factory."
|
|
1798
|
+
},
|
|
1781
1799
|
"githubPat": {
|
|
1782
1800
|
"label": "Mój token GitHub",
|
|
1783
1801
|
"description": "Osobisty token dostępu używany do uruchomień, które rozpoczynasz (pushe, PR-y, CI, scalanie)."
|
|
@@ -2197,6 +2215,36 @@
|
|
|
2197
2215
|
"removeFailed": "Nie udało się usunąć wpisu rejestru"
|
|
2198
2216
|
}
|
|
2199
2217
|
},
|
|
2218
|
+
"apiTokens": {
|
|
2219
|
+
"title": "Tokeny dostępu do API",
|
|
2220
|
+
"intro": "Twórz tokeny, które systemy zewnętrzne przedstawiają API cat-factory. Każdy token uwierzytelnia się jako ten obszar roboczy w punktach końcowych /api/v1. Sekret jest wyświetlany tylko raz, podczas tworzenia, i nie można go odzyskać, więc zapisz go od razu.",
|
|
2221
|
+
"secret": {
|
|
2222
|
+
"heading": "Skopiuj token teraz",
|
|
2223
|
+
"warning": "To jedyny raz, gdy wyświetlany jest pełny token. Przechowuj go w bezpiecznym miejscu; nie można go odzyskać.",
|
|
2224
|
+
"copy": "Kopiuj token",
|
|
2225
|
+
"done": "Gotowe"
|
|
2226
|
+
},
|
|
2227
|
+
"list": {
|
|
2228
|
+
"heading": "Aktywne tokeny",
|
|
2229
|
+
"created": "Utworzono {date}",
|
|
2230
|
+
"lastUsed": "ostatnio użyto {date}",
|
|
2231
|
+
"neverUsed": "nigdy nie użyto",
|
|
2232
|
+
"revoke": "Unieważnij token"
|
|
2233
|
+
},
|
|
2234
|
+
"add": {
|
|
2235
|
+
"heading": "Utwórz token",
|
|
2236
|
+
"label": "Etykieta",
|
|
2237
|
+
"labelHelp": "Nazwa, po której później rozpoznasz ten token.",
|
|
2238
|
+
"labelPlaceholder": "np. potok CI",
|
|
2239
|
+
"create": "Utwórz token"
|
|
2240
|
+
},
|
|
2241
|
+
"toast": {
|
|
2242
|
+
"loadFailed": "Nie udało się załadować tokenów API",
|
|
2243
|
+
"created": "Token utworzony",
|
|
2244
|
+
"createFailed": "Nie udało się utworzyć tokenu",
|
|
2245
|
+
"revokeFailed": "Nie udało się unieważnić tokenu"
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2200
2248
|
"sharedStacks": {
|
|
2201
2249
|
"tab": "Współdzielone stosy",
|
|
2202
2250
|
"intro": "Długo działająca infrastruktura Compose (bazy danych, brokery, wyszukiwanie, poczta) uruchamiana raz na przestrzeń roboczą i wykorzystywana ponownie we wszystkich uruchomieniach i pull requestach. Środowisko testowe łączy się z zarządzaną siecią stosu. Uruchomienie stosu wymaga lokalnego wdrożenia Dockera; w innych backendach nadal możesz zarządzać definicją.",
|