@cat-factory/app 0.182.1 → 0.184.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 +9 -0
- package/app/components/layout/IntegrationsHub.vue +6 -19
- package/app/components/pipeline/AgentPromptEditor.logic.spec.ts +93 -0
- package/app/components/pipeline/AgentPromptEditor.logic.ts +60 -0
- package/app/components/pipeline/AgentPromptEditor.vue +298 -0
- package/app/components/pipeline/PipelineBuilder.vue +62 -0
- package/app/components/sandbox/SandboxPanel.vue +63 -5
- package/app/components/settings/InfrastructureWindow.logic.spec.ts +100 -0
- package/app/components/settings/InfrastructureWindow.logic.ts +78 -0
- package/app/components/settings/InfrastructureWindow.vue +65 -46
- package/app/components/settings/PackageRegistriesPanel.vue +131 -123
- package/app/composables/api/agentPrompts.ts +41 -0
- package/app/composables/useApi.ts +2 -0
- package/app/composables/usePipelineErrorToast.ts +8 -0
- package/app/pages/index.vue +0 -1
- package/app/stores/agentPrompts.ts +100 -0
- package/app/stores/packageRegistries.spec.ts +111 -0
- package/app/stores/packageRegistries.ts +21 -8
- package/app/stores/sandbox.ts +15 -0
- package/app/stores/ui/modals.ts +20 -21
- package/app/types/agent-prompts.ts +13 -0
- package/app/types/providerConnections.ts +12 -0
- package/i18n/locales/de.json +53 -11
- package/i18n/locales/en.json +68 -11
- package/i18n/locales/es.json +53 -11
- package/i18n/locales/fr.json +53 -11
- package/i18n/locales/he.json +53 -11
- package/i18n/locales/it.json +53 -11
- package/i18n/locales/ja.json +53 -11
- package/i18n/locales/pl.json +53 -11
- package/i18n/locales/tr.json +53 -11
- package/i18n/locales/uk.json +53 -11
- package/package.json +2 -2
package/app/stores/ui/modals.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ref } from 'vue'
|
|
2
2
|
import type { DocumentSourceKind, InfraSetupArea, TaskSourceKind } from '~/types/domain'
|
|
3
|
+
import type { InfrastructureTab, ProviderConnectionKind } from '~/types/providerConnections'
|
|
3
4
|
import type { PendingContext } from '~/composables/useContextLinking'
|
|
4
5
|
import {
|
|
5
6
|
DEFAULT_PROVISION_DEEP_LINK_PARAM,
|
|
@@ -452,9 +453,8 @@ function createIntegrationPanelModals(resetHubReturn: ResetHubReturn) {
|
|
|
452
453
|
// model / agent kind, spend + activity per workspace / service / task type). Admin-gated.
|
|
453
454
|
// Distinct from `operatorDashboardOpen`, which answers the deployment-HEALTH question.
|
|
454
455
|
const reportsOpen = ref(false)
|
|
455
|
-
//
|
|
456
|
-
//
|
|
457
|
-
const packageRegistriesOpen = ref(false)
|
|
456
|
+
// NOTE: private package registries are no longer a panel of their own — they are a tab of
|
|
457
|
+
// the Infrastructure window (`infrastructureOpen`), reached from the navbar.
|
|
458
458
|
// API access tokens: the workspace's inbound public-API keys external systems present to
|
|
459
459
|
// the `/api/v1` surface. Opened from the Integrations hub.
|
|
460
460
|
const apiTokensOpen = ref(false)
|
|
@@ -505,13 +505,6 @@ function createIntegrationPanelModals(resetHubReturn: ResetHubReturn) {
|
|
|
505
505
|
function closeReports() {
|
|
506
506
|
reportsOpen.value = false
|
|
507
507
|
}
|
|
508
|
-
function openPackageRegistries() {
|
|
509
|
-
resetHubReturn()
|
|
510
|
-
packageRegistriesOpen.value = true
|
|
511
|
-
}
|
|
512
|
-
function closePackageRegistries() {
|
|
513
|
-
packageRegistriesOpen.value = false
|
|
514
|
-
}
|
|
515
508
|
function openApiTokens() {
|
|
516
509
|
resetHubReturn()
|
|
517
510
|
apiTokensOpen.value = true
|
|
@@ -564,7 +557,6 @@ function createIntegrationPanelModals(resetHubReturn: ResetHubReturn) {
|
|
|
564
557
|
observabilityConnectionOpen,
|
|
565
558
|
operatorDashboardOpen,
|
|
566
559
|
reportsOpen,
|
|
567
|
-
packageRegistriesOpen,
|
|
568
560
|
apiTokensOpen,
|
|
569
561
|
modelConfigOpen,
|
|
570
562
|
vendorCredentialsOpen,
|
|
@@ -582,8 +574,6 @@ function createIntegrationPanelModals(resetHubReturn: ResetHubReturn) {
|
|
|
582
574
|
openReports,
|
|
583
575
|
closeReports,
|
|
584
576
|
closeOperatorDashboard,
|
|
585
|
-
openPackageRegistries,
|
|
586
|
-
closePackageRegistries,
|
|
587
577
|
openApiTokens,
|
|
588
578
|
closeApiTokens,
|
|
589
579
|
openModelConfig,
|
|
@@ -683,13 +673,19 @@ function createSettingsModals(resetHubReturn: ResetHubReturn) {
|
|
|
683
673
|
*/
|
|
684
674
|
function createInfraModals(resetHubReturn: ResetHubReturn) {
|
|
685
675
|
// The single tabbed Infrastructure window — a TOP-LEVEL navbar destination (no longer
|
|
686
|
-
// reached via the Integrations hub).
|
|
687
|
-
// backend + self-hosted runner pool, plus the local-mode warm pool/checkout)
|
|
688
|
-
// environments" (the ephemeral-environment provider)
|
|
689
|
-
//
|
|
690
|
-
//
|
|
676
|
+
// reached via the Integrations hub). Its topical tabs: "Agent containers" (the execution
|
|
677
|
+
// backend + self-hosted runner pool, plus the local-mode warm pool/checkout), "Test
|
|
678
|
+
// environments" (the ephemeral-environment provider), "Shared stacks" (long-lived Compose
|
|
679
|
+
// infra an environment attaches to) and "Package registries" (the private registries a
|
|
680
|
+
// checkout installs from). `infrastructureOpen` is the modal flag; `infrastructureTab`
|
|
681
|
+
// selects the tab. `openInfrastructure()` is the navbar entry; `openProviderConnection(kind)`
|
|
682
|
+
// remains for deep-links (a banner's "Configure…" button).
|
|
683
|
+
//
|
|
684
|
+
// The ref is typed against the FULL `InfrastructureTab` union, not the provider-connection
|
|
685
|
+
// kinds: a tab this cannot name is a tab nothing can deep-link to, which is how the
|
|
686
|
+
// non-connection tabs ended up reachable only by opening the window and clicking across.
|
|
691
687
|
const infrastructureOpen = ref(false)
|
|
692
|
-
const infrastructureTab = ref<
|
|
688
|
+
const infrastructureTab = ref<InfrastructureTab>('runner-pool')
|
|
693
689
|
// Non-secret prefill captured from the `cat-factory k3s` CLI deep-link (see
|
|
694
690
|
// `consumeK3sSetupDeepLink`). When set, the Test-environments tab's kube engine form seeds the
|
|
695
691
|
// `local-k3s` connection from it; the ServiceAccount token is deliberately NOT in the link (a
|
|
@@ -704,12 +700,15 @@ function createInfraModals(resetHubReturn: ResetHubReturn) {
|
|
|
704
700
|
|
|
705
701
|
// Top-level navbar entry into the Infrastructure window. No hub-return marker (it isn't
|
|
706
702
|
// reached from the Integrations hub), so the window shows no "Back to Integrations" control.
|
|
707
|
-
function openInfrastructure(tab:
|
|
703
|
+
function openInfrastructure(tab: InfrastructureTab = 'runner-pool') {
|
|
708
704
|
resetHubReturn()
|
|
709
705
|
infrastructureTab.value = tab
|
|
710
706
|
infrastructureOpen.value = true
|
|
711
707
|
}
|
|
712
|
-
|
|
708
|
+
// Deep-link into a PROVIDER's tab specifically (a config banner's "Configure…" button), so
|
|
709
|
+
// this one stays narrowed to the connection kinds — it means "connect this provider", not
|
|
710
|
+
// "open the window somewhere". Use `openInfrastructure(tab)` for any other tab.
|
|
711
|
+
function openProviderConnection(kind: ProviderConnectionKind) {
|
|
713
712
|
resetHubReturn()
|
|
714
713
|
infrastructureTab.value = kind
|
|
715
714
|
infrastructureOpen.value = true
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Per-workspace agent system-prompt overrides, mirroring `@cat-factory/contracts`
|
|
2
|
+
// (agent-prompts.ts). An append-only revision log per agent kind: the highest revision is what
|
|
3
|
+
// every run in the workspace sends, and a revision whose `text` is null is the deliberate way
|
|
4
|
+
// back to the prompt the product ships.
|
|
5
|
+
//
|
|
6
|
+
// All wire shapes are sourced from @cat-factory/contracts (single source of truth).
|
|
7
|
+
|
|
8
|
+
export type {
|
|
9
|
+
AgentPromptDetail,
|
|
10
|
+
AgentPromptRevision,
|
|
11
|
+
AgentPromptSummary,
|
|
12
|
+
SaveAgentPromptInput,
|
|
13
|
+
} from '@cat-factory/contracts'
|
|
@@ -17,6 +17,18 @@ export type {
|
|
|
17
17
|
/** The two infrastructure providers configured through the generic connect form. */
|
|
18
18
|
export type ProviderConnectionKind = 'environment' | 'runner-pool'
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* A tab of the Infrastructure window, and the vocabulary `ui.infrastructureTab` selects from.
|
|
22
|
+
*
|
|
23
|
+
* Deliberately WIDER than {@link ProviderConnectionKind}: the window also hosts tabs that are
|
|
24
|
+
* not a provider connection at all (long-lived shared Compose stacks, the workspace's private
|
|
25
|
+
* package registries). Typing the store's tab ref as the connection kinds alone is what made
|
|
26
|
+
* those tabs unreachable by deep link — a banner, a command-palette entry or an Integrations-hub
|
|
27
|
+
* pointer could open the window but never land the user on the tab it meant. Every tab
|
|
28
|
+
* `InfrastructureWindow.vue` can render must have a name here.
|
|
29
|
+
*/
|
|
30
|
+
export type InfrastructureTab = ProviderConnectionKind | 'shared-stacks' | 'package-registries'
|
|
31
|
+
|
|
20
32
|
/** A workspace's provider binding, as exposed to clients (never secret values). */
|
|
21
33
|
export interface ProviderConnection {
|
|
22
34
|
/** The runner-backend kind for a runner-pool connection (`manifest` | `kubernetes`). */
|
package/i18n/locales/de.json
CHANGED
|
@@ -537,20 +537,22 @@
|
|
|
537
537
|
"incidentNoun": "der Incident-Provider"
|
|
538
538
|
},
|
|
539
539
|
"packageRegistries": {
|
|
540
|
-
"
|
|
540
|
+
"tab": "Package-Registries",
|
|
541
541
|
"intro": "Verbinde die privaten Registries, aus denen deine Repositories installieren. Agenten erhalten sie beim Auschecken eines Repositorys, sodass private Abhängigkeiten während der Installation aufgelöst werden. Tokens sind nur schreibbar: um eines zu ändern, entferne den Eintrag und füge ihn erneut hinzu.",
|
|
542
542
|
"entryNoun": "Registry-Eintrag",
|
|
543
543
|
"list": {
|
|
544
544
|
"heading": "Verbundene Registries",
|
|
545
545
|
"tokenTail": "Token …{tail}",
|
|
546
|
-
"remove": "Eintrag entfernen"
|
|
546
|
+
"remove": "Eintrag entfernen",
|
|
547
|
+
"noScopes": "Keine Scopes (das Token authentifiziert nur dieses Registry)"
|
|
547
548
|
},
|
|
548
549
|
"add": {
|
|
549
550
|
"heading": "Eine Registry hinzufügen",
|
|
550
551
|
"vendor": "Registry",
|
|
551
552
|
"host": "Das Token wird nur an {host} gesendet.",
|
|
552
553
|
"scopes": "Package-Scopes",
|
|
553
|
-
"scopesHelp": "Kommagetrennte npm-Scopes",
|
|
554
|
+
"scopesHelp": "Optional. Kommagetrennte npm-Scopes.",
|
|
555
|
+
"scopesNote": "Optional. Ein hier eingetragener Scope leitet jedes Paket darunter an dieses Registry, sodass ein Scope, der auch öffentlich veröffentlichte Pakete enthält, nicht mehr aufgelöst wird. Lass das Feld leer, wenn das Repository eine eigene .npmrc enthält oder wenn einzelne Abhängigkeiten über ein benanntes Registry-Präfix wie gh: festgelegt werden (pnpm 11.1 oder neuer) - das Token authentifiziert das Registry ohnehin.",
|
|
554
556
|
"token": "Zugriffstoken",
|
|
555
557
|
"save": "Registry hinzufügen"
|
|
556
558
|
},
|
|
@@ -2147,10 +2149,6 @@
|
|
|
2147
2149
|
"label": "Post-Release-Health",
|
|
2148
2150
|
"description": "Überwachen Sie Monitore und SLOs, nachdem ein Release ausgeliefert wurde (Datadog)."
|
|
2149
2151
|
},
|
|
2150
|
-
"packageRegistries": {
|
|
2151
|
-
"label": "Private Package-Registries",
|
|
2152
|
-
"description": "npm- und GitHub-Packages-Tokens, mit denen Agenten private Abhängigkeiten installieren."
|
|
2153
|
-
},
|
|
2154
2152
|
"apiTokens": {
|
|
2155
2153
|
"label": "API-Zugriffstokens",
|
|
2156
2154
|
"description": "Tokens, die externe Systeme vorlegen, um die cat-factory-API aufzurufen."
|
|
@@ -3606,7 +3604,9 @@
|
|
|
3606
3604
|
"skillNoneAvailable": "Keine Skills verfügbar. Verknüpfe eine Skill-Quelle in den Kontoeinstellungen.",
|
|
3607
3605
|
"skillMissing": "Dieser Skill ist nicht mehr im Katalog; wähle einen anderen.",
|
|
3608
3606
|
"skillNeedsPick": "Ein Skill-Schritt braucht einen ausgewählten Skill, bevor du speichern kannst.",
|
|
3609
|
-
"purposeStepsConflict": "Dieser Zweck schreibt keinen Code und führt keine Tests aus, doch die Pipeline enthält noch Implementierungs- oder Testschritte. Entfernen Sie diese oder setzen Sie den Zweck auf Entwicklung."
|
|
3607
|
+
"purposeStepsConflict": "Dieser Zweck schreibt keinen Code und führt keine Tests aus, doch die Pipeline enthält noch Implementierungs- oder Testschritte. Entfernen Sie diese oder setzen Sie den Zweck auf Entwicklung.",
|
|
3608
|
+
"promptEditTooltip": "Systemprompt dieses Agenten bearbeiten",
|
|
3609
|
+
"promptEditedTooltip": "Der Systemprompt dieses Agenten ist für diesen Arbeitsbereich bearbeitet"
|
|
3610
3610
|
},
|
|
3611
3611
|
"progress": {
|
|
3612
3612
|
"status": {
|
|
@@ -3680,6 +3680,41 @@
|
|
|
3680
3680
|
}
|
|
3681
3681
|
}
|
|
3682
3682
|
},
|
|
3683
|
+
"agentPrompt": {
|
|
3684
|
+
"title": "Systemprompt: {agent}",
|
|
3685
|
+
"description": "Ersetzt die Anweisung dieses Agenten für alle Läufe in diesem Arbeitsbereich.",
|
|
3686
|
+
"customized": "Bearbeitet",
|
|
3687
|
+
"usingBuiltin": "Standard",
|
|
3688
|
+
"managedNotice": "Die Plattform hängt an alles, was Sie hier speichern, ihre eigenen, nicht bearbeitbaren Regeln an.",
|
|
3689
|
+
"showAppended": "Angehängten Text anzeigen",
|
|
3690
|
+
"hideAppended": "Angehängten Text ausblenden",
|
|
3691
|
+
"appendedHeading": "Von der Plattform angehängt (nicht bearbeitbar)",
|
|
3692
|
+
"placeholder": "Beschreiben Sie, was dieser Agent tun soll.",
|
|
3693
|
+
"save": "Als neue Version speichern",
|
|
3694
|
+
"revert": "Zurück zum Standard",
|
|
3695
|
+
"loadBuiltin": "Standardtext laden",
|
|
3696
|
+
"showBuiltin": "Mit Standard vergleichen",
|
|
3697
|
+
"hideBuiltin": "Standard ausblenden",
|
|
3698
|
+
"restoringFrom": "Aus Version {n} geladen. Speichern, um sie wieder aktiv zu setzen.",
|
|
3699
|
+
"builtinHeading": "Standardprompt",
|
|
3700
|
+
"historyHeading": "Versionsverlauf",
|
|
3701
|
+
"historyEmpty": "Dieser Agent wurde in diesem Arbeitsbereich noch nie bearbeitet.",
|
|
3702
|
+
"live": "Aktiv",
|
|
3703
|
+
"restore": "Laden",
|
|
3704
|
+
"restoreTooltip": "Diese Version in den Editor laden",
|
|
3705
|
+
"revision": {
|
|
3706
|
+
"edit": "Version {n} (bearbeitet)",
|
|
3707
|
+
"restored": "Version {n} (aus Version {from} wiederhergestellt)",
|
|
3708
|
+
"builtin": "Version {n} (zurück zum Standard)"
|
|
3709
|
+
},
|
|
3710
|
+
"toast": {
|
|
3711
|
+
"saved": "Prompt gespeichert",
|
|
3712
|
+
"reverted": "Zurück zum Standardprompt",
|
|
3713
|
+
"saveFailed": "Prompt konnte nicht gespeichert werden",
|
|
3714
|
+
"loadFailed": "Prompt konnte nicht geladen werden",
|
|
3715
|
+
"conflict": "Jemand anderes hat diesen Prompt geändert. Neu geladen - wenden Sie Ihre Änderung erneut an."
|
|
3716
|
+
}
|
|
3717
|
+
},
|
|
3683
3718
|
"requirements": {
|
|
3684
3719
|
"title": "Anforderungsprüfung",
|
|
3685
3720
|
"iteration": "Iteration {current} / {max}",
|
|
@@ -4522,7 +4557,8 @@
|
|
|
4522
4557
|
"env_test_infraless": "Nichts zu testen",
|
|
4523
4558
|
"env_test_not_provisionable": "Umgebungs-Handler nicht konfiguriert",
|
|
4524
4559
|
"env_test_no_vcs": "Git-Anbieter nicht verbunden",
|
|
4525
|
-
"env_test_connection_failed": "Umgebungsverbindung fehlgeschlagen"
|
|
4560
|
+
"env_test_connection_failed": "Umgebungsverbindung fehlgeschlagen",
|
|
4561
|
+
"prompt_revision_conflict": "Prompt von jemand anderem geändert"
|
|
4526
4562
|
},
|
|
4527
4563
|
"description": {
|
|
4528
4564
|
"dependencies_unmet": "Diese Aufgabe hängt von anderen ab, die noch nicht abgeschlossen sind. Schließe sie ab oder gib sie frei und starte dann erneut.",
|
|
@@ -4546,7 +4582,8 @@
|
|
|
4546
4582
|
"env_test_not_provisionable_type_mismatch": "Mehr als ein Umgebungs-Handler könnte auf den Bereitstellungstyp dieses Service passen. Lege für diesen Service eine manifest id fest, sodass genau einer aufgelöst wird, oder entferne den überlappenden Handler in Infrastruktur → Testumgebungen.",
|
|
4547
4583
|
"env_test_no_vcs": "Der Selbsttest benötigt einen Git-Anbieter, um seinen Wegwerf-Branch zu erstellen und zu löschen, aber dieser Workspace ist mit keinem verbunden.",
|
|
4548
4584
|
"env_test_connection_failed": "Der Umgebungs-Handler dieses Dienstes hat seinen Verbindungstest nicht bestanden. Prüfen Sie Endpunkt, Anmeldedaten und Projekteinstellungen und testen Sie die Verbindung erneut.",
|
|
4549
|
-
"env_test_connection_failed_detail": "Der Umgebungs-Handler dieses Dienstes hat seinen Verbindungstest nicht bestanden: {detail}. Prüfen Sie Endpunkt, Anmeldedaten und Projekteinstellungen und testen Sie die Verbindung erneut."
|
|
4585
|
+
"env_test_connection_failed_detail": "Der Umgebungs-Handler dieses Dienstes hat seinen Verbindungstest nicht bestanden: {detail}. Prüfen Sie Endpunkt, Anmeldedaten und Projekteinstellungen und testen Sie die Verbindung erneut.",
|
|
4586
|
+
"prompt_revision_conflict": "Eine andere Änderung an diesem Prompt war zuerst da. Laden Sie ihn neu und wenden Sie Ihre Änderung darauf erneut an."
|
|
4550
4587
|
},
|
|
4551
4588
|
"action": {
|
|
4552
4589
|
"connectGitHub": "GitHub verbinden",
|
|
@@ -5285,7 +5322,12 @@
|
|
|
5285
5322
|
"forkOf": "Fork · {name}",
|
|
5286
5323
|
"newVersionOf": "Neue Version von · {name}",
|
|
5287
5324
|
"saveVersion": "Neue Version speichern",
|
|
5288
|
-
"hint": "Wähle einen Prompt, um eine ausgelieferte Baseline zu forken oder einen Kandidaten zu versionieren. Jedes Speichern hängt eine unveränderliche Version an, die du testen kannst."
|
|
5325
|
+
"hint": "Wähle einen Prompt, um eine ausgelieferte Baseline zu forken oder einen Kandidaten zu versionieren. Jedes Speichern hängt eine unveränderliche Version an, die du testen kannst.",
|
|
5326
|
+
"liveInWorkspace": "Aktiv",
|
|
5327
|
+
"fromWorkspace": "Ihr Arbeitsbereich",
|
|
5328
|
+
"promoteTitle": "Diesen Prompt für diesen Agenten aktiv schalten",
|
|
5329
|
+
"promoted": "Jetzt der aktive Prompt für {agent}",
|
|
5330
|
+
"promoteFailed": "Prompt konnte nicht aktiviert werden"
|
|
5289
5331
|
},
|
|
5290
5332
|
"fixtureKind": {
|
|
5291
5333
|
"requirements": "Anforderungen",
|
package/i18n/locales/en.json
CHANGED
|
@@ -556,7 +556,8 @@
|
|
|
556
556
|
"env_test_infraless": "Nothing to test",
|
|
557
557
|
"env_test_not_provisionable": "Environment handler not configured",
|
|
558
558
|
"env_test_no_vcs": "Git provider not connected",
|
|
559
|
-
"env_test_connection_failed": "Environment connection failed"
|
|
559
|
+
"env_test_connection_failed": "Environment connection failed",
|
|
560
|
+
"prompt_revision_conflict": "Prompt changed by someone else"
|
|
560
561
|
},
|
|
561
562
|
"description": {
|
|
562
563
|
"dependencies_unmet": "This task depends on others that aren't finished yet. Complete or unblock them, then start it again.",
|
|
@@ -583,7 +584,8 @@
|
|
|
583
584
|
"env_test_connection_failed_detail": "The environment handler for this service failed its connection test: {detail}. Check its endpoint, credentials and project settings, then re-test the connection.",
|
|
584
585
|
"@env_test_connection_failed_detail": {
|
|
585
586
|
"description": "Keep the named placeholder for the failure detail intact (the environment provider's connection-test error message, injected at runtime)."
|
|
586
|
-
}
|
|
587
|
+
},
|
|
588
|
+
"prompt_revision_conflict": "Another edit to this prompt landed first. Reload it and re-apply your change on top."
|
|
587
589
|
},
|
|
588
590
|
"action": {
|
|
589
591
|
"connectGitHub": "Connect GitHub",
|
|
@@ -2163,10 +2165,6 @@
|
|
|
2163
2165
|
"label": "Post-release health",
|
|
2164
2166
|
"description": "Watch monitors and SLOs after a release ships (Datadog)."
|
|
2165
2167
|
},
|
|
2166
|
-
"packageRegistries": {
|
|
2167
|
-
"label": "Private package registries",
|
|
2168
|
-
"description": "npm and GitHub Packages tokens agents use to install private dependencies."
|
|
2169
|
-
},
|
|
2170
2168
|
"apiTokens": {
|
|
2171
2169
|
"label": "API access tokens",
|
|
2172
2170
|
"description": "Tokens external systems present to call the cat-factory API."
|
|
@@ -2813,20 +2811,22 @@
|
|
|
2813
2811
|
"incidentNoun": "the incident provider"
|
|
2814
2812
|
},
|
|
2815
2813
|
"packageRegistries": {
|
|
2816
|
-
"
|
|
2814
|
+
"tab": "Package registries",
|
|
2817
2815
|
"intro": "Connect the private registries your repositories install from. Agents receive them when they check out a repository, so private dependencies resolve during installs. Tokens are write-only: to change one, remove the entry and add it again.",
|
|
2818
2816
|
"entryNoun": "registry entry",
|
|
2819
2817
|
"list": {
|
|
2820
2818
|
"heading": "Connected registries",
|
|
2821
2819
|
"tokenTail": "token …{tail}",
|
|
2822
|
-
"remove": "Remove entry"
|
|
2820
|
+
"remove": "Remove entry",
|
|
2821
|
+
"noScopes": "No scopes (the token authenticates this registry only)"
|
|
2823
2822
|
},
|
|
2824
2823
|
"add": {
|
|
2825
2824
|
"heading": "Add a registry",
|
|
2826
2825
|
"vendor": "Registry",
|
|
2827
2826
|
"host": "The token is sent only to {host}.",
|
|
2828
2827
|
"scopes": "Package scopes",
|
|
2829
|
-
"scopesHelp": "Comma-separated npm scopes",
|
|
2828
|
+
"scopesHelp": "Optional. Comma-separated npm scopes.",
|
|
2829
|
+
"scopesNote": "Optional. A scope listed here routes every package under it to this registry, so a scope that also holds publicly published packages stops resolving. Leave it empty when the repository commits its own .npmrc, or when single dependencies are pinned with a named-registry prefix such as gh: (pnpm 11.1 or newer) - the token authenticates the registry either way.",
|
|
2830
2830
|
"token": "Access token",
|
|
2831
2831
|
"save": "Add registry"
|
|
2832
2832
|
},
|
|
@@ -4034,7 +4034,9 @@
|
|
|
4034
4034
|
"skillNoneAvailable": "No skills available. Link a skill source in account settings.",
|
|
4035
4035
|
"skillMissing": "This skill is no longer in the catalog; pick another.",
|
|
4036
4036
|
"skillNeedsPick": "A Skill step needs a skill selected before you can save.",
|
|
4037
|
-
"purposeStepsConflict": "This purpose writes no code and runs no tests, but the pipeline still has implementation or testing steps. Remove them or switch the purpose to Build."
|
|
4037
|
+
"purposeStepsConflict": "This purpose writes no code and runs no tests, but the pipeline still has implementation or testing steps. Remove them or switch the purpose to Build.",
|
|
4038
|
+
"promptEditTooltip": "Edit this agent's system prompt",
|
|
4039
|
+
"promptEditedTooltip": "This agent's system prompt is edited for this workspace"
|
|
4038
4040
|
},
|
|
4039
4041
|
"progress": {
|
|
4040
4042
|
"status": {
|
|
@@ -4108,6 +4110,50 @@
|
|
|
4108
4110
|
}
|
|
4109
4111
|
}
|
|
4110
4112
|
},
|
|
4113
|
+
"agentPrompt": {
|
|
4114
|
+
"title": "System prompt: {agent}",
|
|
4115
|
+
"description": "Replace what this agent is told to do, for every run in this workspace.",
|
|
4116
|
+
"customized": "Edited",
|
|
4117
|
+
"usingBuiltin": "Built-in",
|
|
4118
|
+
"@usingBuiltin": {
|
|
4119
|
+
"description": "Badge meaning this agent runs the prompt the product ships. \"Built-in\" refers to that shipped prompt specifically, not to a user-set default."
|
|
4120
|
+
},
|
|
4121
|
+
"managedNotice": "The platform appends its own non-editable rules to whatever you save here.",
|
|
4122
|
+
"showAppended": "Show what gets appended",
|
|
4123
|
+
"hideAppended": "Hide what gets appended",
|
|
4124
|
+
"appendedHeading": "Appended by the platform (not editable)",
|
|
4125
|
+
"placeholder": "Describe what this agent should do.",
|
|
4126
|
+
"save": "Save as new version",
|
|
4127
|
+
"revert": "Back to built-in",
|
|
4128
|
+
"loadBuiltin": "Load built-in text",
|
|
4129
|
+
"showBuiltin": "Compare with built-in",
|
|
4130
|
+
"hideBuiltin": "Hide built-in",
|
|
4131
|
+
"restoringFrom": "Loaded from version {n}. Save to make it live again.",
|
|
4132
|
+
"builtinHeading": "Built-in prompt",
|
|
4133
|
+
"historyHeading": "Version history",
|
|
4134
|
+
"historyEmpty": "This agent has never been edited in this workspace.",
|
|
4135
|
+
"live": "Live",
|
|
4136
|
+
"@live": {
|
|
4137
|
+
"description": "Adjective, not a verb: labels the revision that is currently in effect."
|
|
4138
|
+
},
|
|
4139
|
+
"restore": "Load",
|
|
4140
|
+
"@restore": {
|
|
4141
|
+
"description": "Verb, imperative: loads the chosen revision into the editor. It does NOT save it - the user still presses Save."
|
|
4142
|
+
},
|
|
4143
|
+
"restoreTooltip": "Load this version into the editor",
|
|
4144
|
+
"revision": {
|
|
4145
|
+
"edit": "Version {n} (edited)",
|
|
4146
|
+
"restored": "Version {n} (restored from version {from})",
|
|
4147
|
+
"builtin": "Version {n} (back to built-in)"
|
|
4148
|
+
},
|
|
4149
|
+
"toast": {
|
|
4150
|
+
"saved": "Prompt saved",
|
|
4151
|
+
"reverted": "Back to the built-in prompt",
|
|
4152
|
+
"saveFailed": "Couldn't save the prompt",
|
|
4153
|
+
"loadFailed": "Couldn't load the prompt",
|
|
4154
|
+
"conflict": "Someone else changed this prompt. Reloaded - re-apply your edit."
|
|
4155
|
+
}
|
|
4156
|
+
},
|
|
4111
4157
|
"riskPolicy": {
|
|
4112
4158
|
"health": {
|
|
4113
4159
|
"title": "Risk policy updates",
|
|
@@ -5241,7 +5287,18 @@
|
|
|
5241
5287
|
"forkOf": "Fork · {name}",
|
|
5242
5288
|
"newVersionOf": "New version of · {name}",
|
|
5243
5289
|
"saveVersion": "Save new version",
|
|
5244
|
-
"hint": "Pick a prompt to fork a shipped baseline or version a candidate. Each save appends an immutable version you can put under test."
|
|
5290
|
+
"hint": "Pick a prompt to fork a shipped baseline or version a candidate. Each save appends an immutable version you can put under test.",
|
|
5291
|
+
"liveInWorkspace": "Live",
|
|
5292
|
+
"@liveInWorkspace": {
|
|
5293
|
+
"description": "Adjective, not a verb: badges the prompt version this workspace is currently running."
|
|
5294
|
+
},
|
|
5295
|
+
"fromWorkspace": "Your workspace",
|
|
5296
|
+
"@fromWorkspace": {
|
|
5297
|
+
"description": "Badge on a prompt version that came from this workspace's own edits, as opposed to one the product ships."
|
|
5298
|
+
},
|
|
5299
|
+
"promoteTitle": "Make this the live prompt for this agent",
|
|
5300
|
+
"promoted": "Now the live prompt for {agent}",
|
|
5301
|
+
"promoteFailed": "Couldn't promote this prompt"
|
|
5245
5302
|
},
|
|
5246
5303
|
"fixtureKind": {
|
|
5247
5304
|
"requirements": "requirements",
|
package/i18n/locales/es.json
CHANGED
|
@@ -511,7 +511,8 @@
|
|
|
511
511
|
"env_test_infraless": "Nada que probar",
|
|
512
512
|
"env_test_not_provisionable": "Gestor de entorno no configurado",
|
|
513
513
|
"env_test_no_vcs": "Proveedor de Git no conectado",
|
|
514
|
-
"env_test_connection_failed": "Fallo de conexión del entorno"
|
|
514
|
+
"env_test_connection_failed": "Fallo de conexión del entorno",
|
|
515
|
+
"prompt_revision_conflict": "Otra persona cambió el prompt"
|
|
515
516
|
},
|
|
516
517
|
"description": {
|
|
517
518
|
"dependencies_unmet": "Esta tarea depende de otras que aún no están terminadas. Complétalas o desbloquéalas y vuelve a iniciarla.",
|
|
@@ -535,7 +536,8 @@
|
|
|
535
536
|
"env_test_not_provisionable_type_mismatch": "Más de un gestor de entorno podría coincidir con el tipo de aprovisionamiento de este servicio. Fija un manifest id para este servicio de modo que se resuelva exactamente uno, o elimina el gestor superpuesto en Infraestructura → Entornos de prueba.",
|
|
536
537
|
"env_test_no_vcs": "La autoprueba necesita un proveedor de Git para crear y eliminar su rama desechable, pero este espacio de trabajo no está conectado a ninguno.",
|
|
537
538
|
"env_test_connection_failed": "El gestor de entornos de este servicio no superó su prueba de conexión. Revisa su endpoint, sus credenciales y la configuración del proyecto, y vuelve a probar la conexión.",
|
|
538
|
-
"env_test_connection_failed_detail": "El gestor de entornos de este servicio no superó su prueba de conexión: {detail}. Revisa su endpoint, sus credenciales y la configuración del proyecto, y vuelve a probar la conexión."
|
|
539
|
+
"env_test_connection_failed_detail": "El gestor de entornos de este servicio no superó su prueba de conexión: {detail}. Revisa su endpoint, sus credenciales y la configuración del proyecto, y vuelve a probar la conexión.",
|
|
540
|
+
"prompt_revision_conflict": "Otra edición de este prompt llegó primero. Recárgalo y vuelve a aplicar tu cambio encima."
|
|
539
541
|
},
|
|
540
542
|
"action": {
|
|
541
543
|
"connectGitHub": "Conectar GitHub",
|
|
@@ -2087,10 +2089,6 @@
|
|
|
2087
2089
|
"label": "Salud posterior al lanzamiento",
|
|
2088
2090
|
"description": "Vigila los monitores y SLO después de publicar una versión (Datadog)."
|
|
2089
2091
|
},
|
|
2090
|
-
"packageRegistries": {
|
|
2091
|
-
"label": "Registros privados de paquetes",
|
|
2092
|
-
"description": "Tokens de npm y GitHub Packages que los agentes usan para instalar dependencias privadas."
|
|
2093
|
-
},
|
|
2094
2092
|
"apiTokens": {
|
|
2095
2093
|
"label": "Tokens de acceso a la API",
|
|
2096
2094
|
"description": "Tokens que los sistemas externos presentan para llamar a la API de cat-factory."
|
|
@@ -2594,20 +2592,22 @@
|
|
|
2594
2592
|
"incidentNoun": "el proveedor de incidencias"
|
|
2595
2593
|
},
|
|
2596
2594
|
"packageRegistries": {
|
|
2597
|
-
"
|
|
2595
|
+
"tab": "Registros de paquetes",
|
|
2598
2596
|
"intro": "Conecta los registros privados desde los que instalan tus repositorios. Los agentes los reciben al hacer checkout de un repositorio, de modo que las dependencias privadas se resuelven durante la instalación. Los tokens son de solo escritura: para cambiar uno, elimina la entrada y vuelve a agregarla.",
|
|
2599
2597
|
"entryNoun": "entrada de registro",
|
|
2600
2598
|
"list": {
|
|
2601
2599
|
"heading": "Registros conectados",
|
|
2602
2600
|
"tokenTail": "token …{tail}",
|
|
2603
|
-
"remove": "Eliminar entrada"
|
|
2601
|
+
"remove": "Eliminar entrada",
|
|
2602
|
+
"noScopes": "Sin ámbitos (el token solo autentica este registro)"
|
|
2604
2603
|
},
|
|
2605
2604
|
"add": {
|
|
2606
2605
|
"heading": "Agregar un registro",
|
|
2607
2606
|
"vendor": "Registro",
|
|
2608
2607
|
"host": "El token solo se envía a {host}.",
|
|
2609
2608
|
"scopes": "Ámbitos de paquetes",
|
|
2610
|
-
"scopesHelp": "Ámbitos de npm separados por comas",
|
|
2609
|
+
"scopesHelp": "Opcional. Ámbitos de npm separados por comas.",
|
|
2610
|
+
"scopesNote": "Opcional. Un ámbito indicado aquí dirige a este registro todos los paquetes que contiene, de modo que un ámbito que también incluye paquetes publicados publicamente deja de resolverse. Déjalo vacío cuando el repositorio incluya su propio .npmrc o cuando las dependencias individuales se fijen con un prefijo de registro con nombre como gh: (pnpm 11.1 o posterior); el token autentica el registro en cualquier caso.",
|
|
2611
2611
|
"token": "Token de acceso",
|
|
2612
2612
|
"save": "Agregar registro"
|
|
2613
2613
|
},
|
|
@@ -3920,7 +3920,9 @@
|
|
|
3920
3920
|
"skillNoneAvailable": "No hay habilidades disponibles. Vincula una fuente de habilidades en la configuración de la cuenta.",
|
|
3921
3921
|
"skillMissing": "Esta habilidad ya no está en el catálogo; elige otra.",
|
|
3922
3922
|
"skillNeedsPick": "Un paso Skill necesita una habilidad seleccionada antes de poder guardar.",
|
|
3923
|
-
"purposeStepsConflict": "Este propósito no escribe código ni ejecuta pruebas, pero la canalización todavía tiene pasos de implementación o de prueba. Quítalos o cambia el propósito a Desarrollo."
|
|
3923
|
+
"purposeStepsConflict": "Este propósito no escribe código ni ejecuta pruebas, pero la canalización todavía tiene pasos de implementación o de prueba. Quítalos o cambia el propósito a Desarrollo.",
|
|
3924
|
+
"promptEditTooltip": "Editar el prompt del sistema de este agente",
|
|
3925
|
+
"promptEditedTooltip": "El prompt del sistema de este agente está editado para este espacio de trabajo"
|
|
3924
3926
|
},
|
|
3925
3927
|
"progress": {
|
|
3926
3928
|
"status": {
|
|
@@ -3994,6 +3996,41 @@
|
|
|
3994
3996
|
}
|
|
3995
3997
|
}
|
|
3996
3998
|
},
|
|
3999
|
+
"agentPrompt": {
|
|
4000
|
+
"title": "Prompt del sistema: {agent}",
|
|
4001
|
+
"description": "Sustituye lo que se le pide a este agente en todas las ejecuciones de este espacio de trabajo.",
|
|
4002
|
+
"customized": "Editado",
|
|
4003
|
+
"usingBuiltin": "Predeterminado",
|
|
4004
|
+
"managedNotice": "La plataforma añade sus propias reglas, no editables, a todo lo que guardes aquí.",
|
|
4005
|
+
"showAppended": "Ver el texto añadido",
|
|
4006
|
+
"hideAppended": "Ocultar el texto añadido",
|
|
4007
|
+
"appendedHeading": "Añadido por la plataforma (no editable)",
|
|
4008
|
+
"placeholder": "Describe qué debe hacer este agente.",
|
|
4009
|
+
"save": "Guardar como versión nueva",
|
|
4010
|
+
"revert": "Volver al predeterminado",
|
|
4011
|
+
"loadBuiltin": "Cargar el texto predeterminado",
|
|
4012
|
+
"showBuiltin": "Comparar con el predeterminado",
|
|
4013
|
+
"hideBuiltin": "Ocultar el predeterminado",
|
|
4014
|
+
"restoringFrom": "Cargado desde la versión {n}. Guarda para volver a activarla.",
|
|
4015
|
+
"builtinHeading": "Prompt predeterminado",
|
|
4016
|
+
"historyHeading": "Historial de versiones",
|
|
4017
|
+
"historyEmpty": "Este agente nunca se ha editado en este espacio de trabajo.",
|
|
4018
|
+
"live": "Activa",
|
|
4019
|
+
"restore": "Cargar",
|
|
4020
|
+
"restoreTooltip": "Cargar esta versión en el editor",
|
|
4021
|
+
"revision": {
|
|
4022
|
+
"edit": "Versión {n} (editada)",
|
|
4023
|
+
"restored": "Versión {n} (restaurada desde la versión {from})",
|
|
4024
|
+
"builtin": "Versión {n} (vuelta al predeterminado)"
|
|
4025
|
+
},
|
|
4026
|
+
"toast": {
|
|
4027
|
+
"saved": "Prompt guardado",
|
|
4028
|
+
"reverted": "De vuelta al prompt predeterminado",
|
|
4029
|
+
"saveFailed": "No se pudo guardar el prompt",
|
|
4030
|
+
"loadFailed": "No se pudo cargar el prompt",
|
|
4031
|
+
"conflict": "Otra persona cambió este prompt. Se recargó: vuelve a aplicar tu edición."
|
|
4032
|
+
}
|
|
4033
|
+
},
|
|
3997
4034
|
"palette": {
|
|
3998
4035
|
"hint": "Haz clic en un agente para añadirlo al pipeline.",
|
|
3999
4036
|
"customAgents": "Agentes personalizados"
|
|
@@ -5022,7 +5059,12 @@
|
|
|
5022
5059
|
"forkOf": "Bifurcación · {name}",
|
|
5023
5060
|
"newVersionOf": "Nueva versión de · {name}",
|
|
5024
5061
|
"saveVersion": "Guardar nueva versión",
|
|
5025
|
-
"hint": "Elige un prompt para bifurcar una base publicada o versionar un candidato. Cada guardado añade una versión inmutable que puedes poner a prueba."
|
|
5062
|
+
"hint": "Elige un prompt para bifurcar una base publicada o versionar un candidato. Cada guardado añade una versión inmutable que puedes poner a prueba.",
|
|
5063
|
+
"liveInWorkspace": "Activo",
|
|
5064
|
+
"fromWorkspace": "Tu espacio de trabajo",
|
|
5065
|
+
"promoteTitle": "Convertir en el prompt activo de este agente",
|
|
5066
|
+
"promoted": "Ahora es el prompt activo de {agent}",
|
|
5067
|
+
"promoteFailed": "No se pudo activar este prompt"
|
|
5026
5068
|
},
|
|
5027
5069
|
"fixtureKind": {
|
|
5028
5070
|
"requirements": "requisitos",
|