@cat-factory/app 0.291.1 → 0.292.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/nodes/BlockNode.vue +27 -0
- package/app/components/bootstrap/AdoptionReviewModal.vue +301 -0
- package/app/components/bootstrap/BootstrapModal.vue +129 -13
- package/app/composables/api/bootstrap.ts +10 -0
- package/app/composables/usePipelineErrorToast.ts +15 -0
- package/app/stores/agentRuns.spec.ts +5 -0
- package/app/stores/agentRuns.ts +31 -0
- package/app/types/bootstrap.ts +10 -0
- package/i18n/locales/de.json +100 -4
- package/i18n/locales/en.json +100 -4
- package/i18n/locales/es.json +100 -4
- package/i18n/locales/fr.json +100 -4
- package/i18n/locales/he.json +100 -4
- package/i18n/locales/it.json +100 -4
- package/i18n/locales/ja.json +100 -4
- package/i18n/locales/pl.json +100 -4
- package/i18n/locales/tr.json +100 -4
- package/i18n/locales/uk.json +100 -4
- package/package.json +2 -2
package/app/stores/agentRuns.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineStore } from 'pinia'
|
|
2
2
|
import { computed, ref } from 'vue'
|
|
3
3
|
import type {
|
|
4
|
+
AdoptionReviewInput,
|
|
4
5
|
AgentFailure,
|
|
5
6
|
AgentRunKind,
|
|
6
7
|
BootstrapJob,
|
|
@@ -157,6 +158,34 @@ export const useAgentRunsStore = defineStore('agentRuns', () => {
|
|
|
157
158
|
return map
|
|
158
159
|
})
|
|
159
160
|
|
|
161
|
+
/**
|
|
162
|
+
* The parked monorepo bootstrap for a block, when it is waiting on an adoption review.
|
|
163
|
+
*
|
|
164
|
+
* Read off the stored run rather than off `byBlock`, because the review needs the PLAN and
|
|
165
|
+
* `byBlock` is deliberately the coarse cross-flow summary (status + failure + progress) that a
|
|
166
|
+
* card renders. Newest-first, so a retried run's park wins over a stale one's.
|
|
167
|
+
*/
|
|
168
|
+
function awaitingReview(blockId: string): BootstrapJob | undefined {
|
|
169
|
+
return bootstrapJobs.value.find(
|
|
170
|
+
(job) => job.blockId === blockId && job.status === 'awaiting_review',
|
|
171
|
+
)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Settle a parked monorepo bootstrap's adoption decisions and resume the run.
|
|
176
|
+
*
|
|
177
|
+
* The returned job is patched in immediately (it comes back `running`/`apply`), so the board
|
|
178
|
+
* card flips out of "waiting for you" on the response rather than on the next event: the
|
|
179
|
+
* reviewer just acted, and a card that still says it is waiting for them is the one state this
|
|
180
|
+
* whole surface cannot afford to show.
|
|
181
|
+
*/
|
|
182
|
+
async function submitAdoptionReview(jobId: string, input: AdoptionReviewInput) {
|
|
183
|
+
const workspaceId = useWorkspaceStore().requireId()
|
|
184
|
+
const job = await api.submitAdoptionReview(workspaceId, jobId, input)
|
|
185
|
+
upsertBootstrap(job)
|
|
186
|
+
return job
|
|
187
|
+
}
|
|
188
|
+
|
|
160
189
|
/**
|
|
161
190
|
* Retry a failed run (bootstrap or execution) via the unified endpoint, then
|
|
162
191
|
* refresh the snapshot so both stores rehydrate — the card flips from failed
|
|
@@ -192,6 +221,8 @@ export const useAgentRunsStore = defineStore('agentRuns', () => {
|
|
|
192
221
|
|
|
193
222
|
return {
|
|
194
223
|
bootstrapJobs,
|
|
224
|
+
awaitingReview,
|
|
225
|
+
submitAdoptionReview,
|
|
195
226
|
hydrate,
|
|
196
227
|
upsertBootstrap,
|
|
197
228
|
envConfigRepairJobs,
|
package/app/types/bootstrap.ts
CHANGED
|
@@ -17,5 +17,15 @@ export type {
|
|
|
17
17
|
BootstrapFailureKind,
|
|
18
18
|
BootstrapFailure,
|
|
19
19
|
BootstrapJob,
|
|
20
|
+
BootstrapPhase,
|
|
20
21
|
BootstrapRepoInput,
|
|
22
|
+
MonorepoBootstrapTarget,
|
|
23
|
+
MonorepoBootstrapRef,
|
|
24
|
+
AdoptionArea,
|
|
25
|
+
AdoptionSource,
|
|
26
|
+
AdoptionDecision,
|
|
27
|
+
AdoptionPlan,
|
|
28
|
+
AdoptionChoice,
|
|
29
|
+
AdoptionReviewInput,
|
|
30
|
+
ResolvedAdoption,
|
|
21
31
|
} from '@cat-factory/contracts'
|
package/i18n/locales/de.json
CHANGED
|
@@ -5070,7 +5070,8 @@
|
|
|
5070
5070
|
"pending": "ausstehend",
|
|
5071
5071
|
"running": "läuft",
|
|
5072
5072
|
"succeeded": "erfolgreich",
|
|
5073
|
-
"failed": "fehlgeschlagen"
|
|
5073
|
+
"failed": "fehlgeschlagen",
|
|
5074
|
+
"awaitingReview": "wartet auf Prüfung"
|
|
5074
5075
|
},
|
|
5075
5076
|
"arch": {
|
|
5076
5077
|
"title": "Referenzarchitekturen",
|
|
@@ -5104,7 +5105,96 @@
|
|
|
5104
5105
|
"startedDesc": "Ein Container bootstrappt {repo}; verfolgen Sie den Fortschritt auf dem Board.",
|
|
5105
5106
|
"bootstrapFailed": "Bootstrapping fehlgeschlagen",
|
|
5106
5107
|
"saveArchFailed": "Referenzarchitektur konnte nicht gespeichert werden",
|
|
5107
|
-
"deleteFailed": "Löschen fehlgeschlagen"
|
|
5108
|
+
"deleteFailed": "Löschen fehlgeschlagen",
|
|
5109
|
+
"startedMonorepoDesc": "Das Monorepo wird untersucht; bevor etwas geschrieben wird, wirst du gefragt, was {directory} übernehmen soll."
|
|
5110
|
+
},
|
|
5111
|
+
"target": {
|
|
5112
|
+
"label": "Wo der Service entsteht",
|
|
5113
|
+
"newRepo": {
|
|
5114
|
+
"label": "Ein neues Repository",
|
|
5115
|
+
"description": "Ein eigenes Repository anlegen und den Service als ersten Commit pushen."
|
|
5116
|
+
},
|
|
5117
|
+
"monorepo": {
|
|
5118
|
+
"label": "Ein Verzeichnis in einem bestehenden Monorepo",
|
|
5119
|
+
"description": "Den Service einem vorhandenen Repository hinzufügen und einen Pull Request öffnen."
|
|
5120
|
+
}
|
|
5121
|
+
},
|
|
5122
|
+
"serviceName": {
|
|
5123
|
+
"label": "Servicename",
|
|
5124
|
+
"description": "Benennt den Service auf dem Board und schlägt sein Verzeichnis vor."
|
|
5125
|
+
},
|
|
5126
|
+
"monorepo": {
|
|
5127
|
+
"intro": "Der Service wird in ein Verzeichnis eines bestehenden Repositories geschrieben und als Pull Request geliefert. Es wird nichts für dich gemergt und nichts außerhalb des neuen Verzeichnisses geändert.",
|
|
5128
|
+
"repo": {
|
|
5129
|
+
"label": "Monorepo",
|
|
5130
|
+
"description": "Das Repository, in dem der neue Service liegt. Es muss bereits mit diesem Workspace verknüpft sein.",
|
|
5131
|
+
"placeholder": "Repository auswählen",
|
|
5132
|
+
"empty": "Mit diesem Workspace ist noch kein Repository verknüpft. Verknüpfe zuerst eines."
|
|
5133
|
+
},
|
|
5134
|
+
"directory": {
|
|
5135
|
+
"label": "Serviceverzeichnis",
|
|
5136
|
+
"description": "Wo der Service liegt, relativ zum Repository-Wurzelverzeichnis. Es darf noch nicht existieren.",
|
|
5137
|
+
"placeholder": "services/payments",
|
|
5138
|
+
"error": {
|
|
5139
|
+
"empty": "Gib ein Verzeichnis innerhalb des Repositories an.",
|
|
5140
|
+
"escapes": "Das Verzeichnis muss innerhalb des Repositories bleiben."
|
|
5141
|
+
}
|
|
5142
|
+
}
|
|
5143
|
+
},
|
|
5144
|
+
"adoption": {
|
|
5145
|
+
"title": "Was soll dieser Service übernehmen?",
|
|
5146
|
+
"subtitle": "Der neue Service unter {directory} in {target}.",
|
|
5147
|
+
"intro": "Entscheide für jeden Bereich, ob der neue Service dem umgebenden Monorepo folgt oder das behält, was die Vorlage mitbringt. Bis zu deiner Entscheidung wird nichts geschrieben.",
|
|
5148
|
+
"acceptAll": "Alle Vorschläge übernehmen",
|
|
5149
|
+
"needsYou": "Deine Entscheidung fehlt",
|
|
5150
|
+
"overridden": "Weicht vom Vorschlag ab",
|
|
5151
|
+
"evidence": "Gelesen aus:",
|
|
5152
|
+
"notePlaceholder": "Was der Agent zu diesem Bereich wissen sollte (optional)",
|
|
5153
|
+
"remaining": "Für {count} Entscheidung fehlt noch deine Antwort | Für {count} Entscheidungen fehlt noch deine Antwort",
|
|
5154
|
+
"approve": "Freigeben und bauen",
|
|
5155
|
+
"cardPrompt": "Dieses Bootstrap wartet auf dich: entscheide, was der neue Service aus dem Monorepo übernimmt.",
|
|
5156
|
+
"cardAction": "Prüfen",
|
|
5157
|
+
"side": {
|
|
5158
|
+
"monorepo": "Im Monorepo",
|
|
5159
|
+
"template": "In der Vorlage",
|
|
5160
|
+
"nothing": "Nichts für diesen Bereich"
|
|
5161
|
+
},
|
|
5162
|
+
"source": {
|
|
5163
|
+
"monorepo": "Dem Monorepo folgen",
|
|
5164
|
+
"template": "Vorlage behalten",
|
|
5165
|
+
"both": "Beides kombinieren",
|
|
5166
|
+
"neither": "Keines von beiden"
|
|
5167
|
+
},
|
|
5168
|
+
"area": {
|
|
5169
|
+
"build-tooling": "Build-Werkzeuge",
|
|
5170
|
+
"dependencies": "Abhängigkeiten",
|
|
5171
|
+
"lint-format": "Linting und Formatierung",
|
|
5172
|
+
"typecheck": "Typprüfung",
|
|
5173
|
+
"testing": "Tests",
|
|
5174
|
+
"ci": "CI",
|
|
5175
|
+
"containerization": "Containerisierung",
|
|
5176
|
+
"runtime-config": "Laufzeitkonfiguration",
|
|
5177
|
+
"observability": "Observability",
|
|
5178
|
+
"source-layout": "Quellcode-Struktur",
|
|
5179
|
+
"docs": "Dokumentation",
|
|
5180
|
+
"other": "Sonstiges"
|
|
5181
|
+
},
|
|
5182
|
+
"unavailable": {
|
|
5183
|
+
"model_unavailable": "Für die Analyse ist kein Modell konfiguriert, daher gibt es keinen Vorschlag. Die Entscheidungen bleiben deine: beschreibe unten, was du möchtest.",
|
|
5184
|
+
"repo_unreadable": "Das Monorepo konnte nicht gelesen werden, daher entstand kein Vorschlag. Prüfe, ob dieser Workspace das Repository erreicht.",
|
|
5185
|
+
"budget_exhausted": "Dieser Workspace hat sein Modell-Budget überschritten, daher hat die Plattform keinen Übernahmevorschlag bezahlt. Die Entscheidungen liegen weiterhin bei dir: beschreibe unten in den Notizen, was du möchtest, oder erhöhe das Budget und starte den Lauf erneut.",
|
|
5186
|
+
"analysis_unusable": "Die Analyse lieferte keinen brauchbaren Vorschlag. Du kannst unten trotzdem beschreiben, was du möchtest."
|
|
5187
|
+
},
|
|
5188
|
+
"notes": {
|
|
5189
|
+
"label": "Hinweise zum gesamten Service",
|
|
5190
|
+
"description": "Wird zusammen mit deinen Entscheidungen wörtlich an den Agenten übergeben.",
|
|
5191
|
+
"unavailableDescription": "Es gibt keinen Vorschlag zu beantworten, also arbeitet der Agent hiermit. Wird ihm wörtlich übergeben."
|
|
5192
|
+
},
|
|
5193
|
+
"toast": {
|
|
5194
|
+
"approved": "Entscheidungen freigegeben",
|
|
5195
|
+
"approvedDesc": "Der Agent schreibt jetzt {directory} und öffnet einen Pull Request.",
|
|
5196
|
+
"failed": "Prüfung konnte nicht abgeschickt werden"
|
|
5197
|
+
}
|
|
5108
5198
|
}
|
|
5109
5199
|
},
|
|
5110
5200
|
"fragments": {
|
|
@@ -6000,7 +6090,10 @@
|
|
|
6000
6090
|
"webhook_limit_reached": "Webhook-Limit erreicht",
|
|
6001
6091
|
"risk_policy_inherited": "Diese Richtlinie gehört zum Konto",
|
|
6002
6092
|
"risk_policy_not_inherited": "Diese Richtlinie gehört zu diesem Board",
|
|
6003
|
-
"kaizen_entry_not_settled": "Der Kaizen-Eintrag wurde noch nicht bewertet"
|
|
6093
|
+
"kaizen_entry_not_settled": "Der Kaizen-Eintrag wurde noch nicht bewertet",
|
|
6094
|
+
"bootstrap_not_awaiting_review": "Dieses Bootstrap wartet auf keine Prüfung",
|
|
6095
|
+
"adoption_plan_unavailable": "Es gibt keinen Plan zum Freigeben",
|
|
6096
|
+
"monorepo_directory_taken": "Dieses Verzeichnis existiert bereits"
|
|
6004
6097
|
},
|
|
6005
6098
|
"description": {
|
|
6006
6099
|
"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.",
|
|
@@ -6042,7 +6135,10 @@
|
|
|
6042
6135
|
"webhook_limit_reached": "Für diesen Workspace ist bereits die maximale Anzahl ausgehender Webhooks registriert. Entfernen Sie einen nicht mehr benötigten und registrieren Sie diesen erneut.",
|
|
6043
6136
|
"risk_policy_inherited": "Sie gilt für alle Boards des Kontos und kann daher nicht von hier geändert werden. Klone sie in dieses Board und bearbeite die Kopie.",
|
|
6044
6137
|
"risk_policy_not_inherited": "Sie ist bereits die eigene Richtlinie dieses Boards: bearbeite sie direkt oder lösche sie, wenn sie nicht mehr angeboten werden soll.",
|
|
6045
|
-
"kaizen_entry_not_settled": "Die Bewertung steht noch aus oder läuft gerade, es gibt also keine Empfehlungen zum Bestätigen. Versuchen Sie es erneut, sobald sie abgeschlossen ist."
|
|
6138
|
+
"kaizen_entry_not_settled": "Die Bewertung steht noch aus oder läuft gerade, es gibt also keine Empfehlungen zum Bestätigen. Versuchen Sie es erneut, sobald sie abgeschlossen ist.",
|
|
6139
|
+
"bootstrap_not_awaiting_review": "Der Lauf ist weitergegangen, seit diese Prüfung geöffnet wurde. Lade das Board neu.",
|
|
6140
|
+
"adoption_plan_unavailable": "Die Analyse konnte keinen erstellen, also gibt es keine Entscheidungen zum Absenden.",
|
|
6141
|
+
"monorepo_directory_taken": "Ein Bootstrap legt einen neuen Service an. Wähle ein noch nicht vorhandenes Verzeichnis oder importiere das bestehende als Service."
|
|
6046
6142
|
},
|
|
6047
6143
|
"action": {
|
|
6048
6144
|
"connectGitHub": "GitHub verbinden",
|
package/i18n/locales/en.json
CHANGED
|
@@ -762,7 +762,10 @@
|
|
|
762
762
|
"webhook_limit_reached": "Webhook limit reached",
|
|
763
763
|
"risk_policy_inherited": "This policy belongs to the account",
|
|
764
764
|
"risk_policy_not_inherited": "This policy belongs to this board",
|
|
765
|
-
"kaizen_entry_not_settled": "The Kaizen entry has not been graded yet"
|
|
765
|
+
"kaizen_entry_not_settled": "The Kaizen entry has not been graded yet",
|
|
766
|
+
"bootstrap_not_awaiting_review": "This bootstrap is not waiting for a review",
|
|
767
|
+
"adoption_plan_unavailable": "There is no adoption plan to approve",
|
|
768
|
+
"monorepo_directory_taken": "That directory already exists"
|
|
766
769
|
},
|
|
767
770
|
"description": {
|
|
768
771
|
"dependencies_unmet": "This task depends on others that aren't finished yet. Complete or unblock them, then start it again.",
|
|
@@ -807,7 +810,10 @@
|
|
|
807
810
|
"webhook_limit_reached": "This workspace already has the maximum number of outbound webhooks registered. Remove one you no longer need, then register this again.",
|
|
808
811
|
"risk_policy_inherited": "It is shared with every board in the account, so it cannot be changed from here. Clone it to this board and edit the copy.",
|
|
809
812
|
"risk_policy_not_inherited": "It is already this board's own policy: edit it directly, or delete it if you no longer want it offered.",
|
|
810
|
-
"kaizen_entry_not_settled": "Its grading is still queued or running, so there are no recommendations to acknowledge. Try again once it finishes."
|
|
813
|
+
"kaizen_entry_not_settled": "Its grading is still queued or running, so there are no recommendations to acknowledge. Try again once it finishes.",
|
|
814
|
+
"bootstrap_not_awaiting_review": "The run has moved on since this review was opened. Reload the board to see where it is now.",
|
|
815
|
+
"adoption_plan_unavailable": "The survey could not produce one, so there are no decisions to submit.",
|
|
816
|
+
"monorepo_directory_taken": "Bootstrapping creates a new service. Pick a directory that does not exist yet, or import the existing one as a service."
|
|
811
817
|
},
|
|
812
818
|
"action": {
|
|
813
819
|
"connectGitHub": "Connect GitHub",
|
|
@@ -7246,7 +7252,8 @@
|
|
|
7246
7252
|
"pending": "pending",
|
|
7247
7253
|
"running": "running",
|
|
7248
7254
|
"succeeded": "succeeded",
|
|
7249
|
-
"failed": "failed"
|
|
7255
|
+
"failed": "failed",
|
|
7256
|
+
"awaitingReview": "waiting for review"
|
|
7250
7257
|
},
|
|
7251
7258
|
"arch": {
|
|
7252
7259
|
"title": "Reference architectures",
|
|
@@ -7280,7 +7287,96 @@
|
|
|
7280
7287
|
"startedDesc": "A container is bootstrapping {repo}; watch its progress on the board.",
|
|
7281
7288
|
"bootstrapFailed": "Could not bootstrap",
|
|
7282
7289
|
"saveArchFailed": "Could not save reference architecture",
|
|
7283
|
-
"deleteFailed": "Could not delete"
|
|
7290
|
+
"deleteFailed": "Could not delete",
|
|
7291
|
+
"startedMonorepoDesc": "Surveying the monorepo; you will be asked what {directory} should adopt before anything is written."
|
|
7292
|
+
},
|
|
7293
|
+
"target": {
|
|
7294
|
+
"label": "Where the service goes",
|
|
7295
|
+
"newRepo": {
|
|
7296
|
+
"label": "A new repository",
|
|
7297
|
+
"description": "Create a repository of its own and push the service as its first commit."
|
|
7298
|
+
},
|
|
7299
|
+
"monorepo": {
|
|
7300
|
+
"label": "A directory in an existing monorepo",
|
|
7301
|
+
"description": "Add the service to a repository you already have, and open a pull request."
|
|
7302
|
+
}
|
|
7303
|
+
},
|
|
7304
|
+
"serviceName": {
|
|
7305
|
+
"label": "Service name",
|
|
7306
|
+
"description": "Names the service on the board and seeds its directory."
|
|
7307
|
+
},
|
|
7308
|
+
"monorepo": {
|
|
7309
|
+
"intro": "The service is written into a directory of an existing repository and delivered as a pull request. Nothing is merged for you, and nothing outside the new directory is changed.",
|
|
7310
|
+
"repo": {
|
|
7311
|
+
"label": "Monorepo",
|
|
7312
|
+
"description": "The repository the new service lives in. It must already be linked to this workspace.",
|
|
7313
|
+
"placeholder": "Pick a repository",
|
|
7314
|
+
"empty": "No repositories are linked to this workspace yet. Link one first, then bootstrap into it."
|
|
7315
|
+
},
|
|
7316
|
+
"directory": {
|
|
7317
|
+
"label": "Service directory",
|
|
7318
|
+
"description": "Where the service lives, relative to the repository root. It must not exist yet.",
|
|
7319
|
+
"placeholder": "services/payments",
|
|
7320
|
+
"error": {
|
|
7321
|
+
"empty": "Name a directory inside the repository.",
|
|
7322
|
+
"escapes": "The directory must stay inside the repository."
|
|
7323
|
+
}
|
|
7324
|
+
}
|
|
7325
|
+
},
|
|
7326
|
+
"adoption": {
|
|
7327
|
+
"title": "What should this service adopt?",
|
|
7328
|
+
"subtitle": "The new service at {directory} in {target}.",
|
|
7329
|
+
"intro": "For each area below, decide whether the new service follows the surrounding monorepo or keeps what the reference template ships. Nothing is written until you decide.",
|
|
7330
|
+
"acceptAll": "Accept all suggestions",
|
|
7331
|
+
"needsYou": "Needs your decision",
|
|
7332
|
+
"overridden": "Overrides the suggestion",
|
|
7333
|
+
"evidence": "Read from:",
|
|
7334
|
+
"notePlaceholder": "Anything the agent should know about this area (optional)",
|
|
7335
|
+
"remaining": "{count} decision still needs your answer | {count} decisions still need your answer",
|
|
7336
|
+
"approve": "Approve and build",
|
|
7337
|
+
"cardPrompt": "This bootstrap is waiting on you: decide what the new service adopts from the monorepo.",
|
|
7338
|
+
"cardAction": "Review",
|
|
7339
|
+
"side": {
|
|
7340
|
+
"monorepo": "In the monorepo",
|
|
7341
|
+
"template": "In the template",
|
|
7342
|
+
"nothing": "Nothing for this area"
|
|
7343
|
+
},
|
|
7344
|
+
"source": {
|
|
7345
|
+
"monorepo": "Follow the monorepo",
|
|
7346
|
+
"template": "Keep the template",
|
|
7347
|
+
"both": "Compose both",
|
|
7348
|
+
"neither": "Take neither"
|
|
7349
|
+
},
|
|
7350
|
+
"area": {
|
|
7351
|
+
"build-tooling": "Build tooling",
|
|
7352
|
+
"dependencies": "Dependencies",
|
|
7353
|
+
"lint-format": "Linting and formatting",
|
|
7354
|
+
"typecheck": "Type checking",
|
|
7355
|
+
"testing": "Testing",
|
|
7356
|
+
"ci": "CI",
|
|
7357
|
+
"containerization": "Containerization",
|
|
7358
|
+
"runtime-config": "Runtime configuration",
|
|
7359
|
+
"observability": "Observability",
|
|
7360
|
+
"source-layout": "Source layout",
|
|
7361
|
+
"docs": "Documentation",
|
|
7362
|
+
"other": "Other"
|
|
7363
|
+
},
|
|
7364
|
+
"unavailable": {
|
|
7365
|
+
"model_unavailable": "No model is configured for the adoption survey, so there is no suggestion to review. The decisions are still yours: describe what you want in the notes below.",
|
|
7366
|
+
"repo_unreadable": "The monorepo could not be read, so no suggestion could be produced. Check that this workspace can reach the repository.",
|
|
7367
|
+
"budget_exhausted": "This workspace is over its model budget, so the platform did not pay for an adoption suggestion. The decisions are still yours: describe what you want in the notes below, or raise the budget and retry the run.",
|
|
7368
|
+
"analysis_unusable": "The adoption survey did not return a usable suggestion. You can still describe what you want in the notes below."
|
|
7369
|
+
},
|
|
7370
|
+
"notes": {
|
|
7371
|
+
"label": "Notes for the whole service",
|
|
7372
|
+
"description": "Passed to the agent verbatim, alongside your decisions.",
|
|
7373
|
+
"unavailableDescription": "There is no suggestion to answer, so this is what the agent works from. Passed to it verbatim."
|
|
7374
|
+
},
|
|
7375
|
+
"toast": {
|
|
7376
|
+
"approved": "Adoption decisions approved",
|
|
7377
|
+
"approvedDesc": "The agent is now writing {directory} and will open a pull request.",
|
|
7378
|
+
"failed": "Could not submit the review"
|
|
7379
|
+
}
|
|
7284
7380
|
}
|
|
7285
7381
|
},
|
|
7286
7382
|
"initiative": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -687,7 +687,10 @@
|
|
|
687
687
|
"webhook_limit_reached": "Límite de webhooks alcanzado",
|
|
688
688
|
"risk_policy_inherited": "Esta política pertenece a la cuenta",
|
|
689
689
|
"risk_policy_not_inherited": "Esta política pertenece a este tablero",
|
|
690
|
-
"kaizen_entry_not_settled": "La entrada de Kaizen aún no se ha evaluado"
|
|
690
|
+
"kaizen_entry_not_settled": "La entrada de Kaizen aún no se ha evaluado",
|
|
691
|
+
"bootstrap_not_awaiting_review": "Este bootstrap no está esperando una revisión",
|
|
692
|
+
"adoption_plan_unavailable": "No hay ningún plan que aprobar",
|
|
693
|
+
"monorepo_directory_taken": "Ese directorio ya existe"
|
|
691
694
|
},
|
|
692
695
|
"description": {
|
|
693
696
|
"dependencies_unmet": "Esta tarea depende de otras que aún no están terminadas. Complétalas o desbloquéalas y vuelve a iniciarla.",
|
|
@@ -729,7 +732,10 @@
|
|
|
729
732
|
"webhook_limit_reached": "Este espacio de trabajo ya tiene registrado el número máximo de webhooks salientes. Elimina uno que ya no necesites y vuelve a registrar este.",
|
|
730
733
|
"risk_policy_inherited": "Se comparte con todos los tableros de la cuenta, así que no puede cambiarse desde aquí. Clónala en este tablero y edita la copia.",
|
|
731
734
|
"risk_policy_not_inherited": "Ya es la política propia de este tablero: edítala directamente o elimínala si no quieres que se ofrezca.",
|
|
732
|
-
"kaizen_entry_not_settled": "Su evaluación sigue en cola o en curso, así que no hay recomendaciones que confirmar. Inténtalo de nuevo cuando termine."
|
|
735
|
+
"kaizen_entry_not_settled": "Su evaluación sigue en cola o en curso, así que no hay recomendaciones que confirmar. Inténtalo de nuevo cuando termine.",
|
|
736
|
+
"bootstrap_not_awaiting_review": "La ejecución avanzó desde que se abrió esta revisión. Recarga el tablero.",
|
|
737
|
+
"adoption_plan_unavailable": "El análisis no pudo producir uno, así que no hay decisiones que enviar.",
|
|
738
|
+
"monorepo_directory_taken": "Un bootstrap crea un servicio nuevo. Elige un directorio que aún no exista, o importa el existente como servicio."
|
|
733
739
|
},
|
|
734
740
|
"action": {
|
|
735
741
|
"connectGitHub": "Conectar GitHub",
|
|
@@ -6922,7 +6928,8 @@
|
|
|
6922
6928
|
"pending": "pendiente",
|
|
6923
6929
|
"running": "en ejecución",
|
|
6924
6930
|
"succeeded": "completado",
|
|
6925
|
-
"failed": "fallido"
|
|
6931
|
+
"failed": "fallido",
|
|
6932
|
+
"awaitingReview": "esperando revisión"
|
|
6926
6933
|
},
|
|
6927
6934
|
"arch": {
|
|
6928
6935
|
"title": "Arquitecturas de referencia",
|
|
@@ -6956,11 +6963,100 @@
|
|
|
6956
6963
|
"startedDesc": "Un contenedor está inicializando {repo}; sigue su progreso en el tablero.",
|
|
6957
6964
|
"bootstrapFailed": "No se pudo inicializar",
|
|
6958
6965
|
"saveArchFailed": "No se pudo guardar la arquitectura de referencia",
|
|
6959
|
-
"deleteFailed": "No se pudo eliminar"
|
|
6966
|
+
"deleteFailed": "No se pudo eliminar",
|
|
6967
|
+
"startedMonorepoDesc": "Analizando el monorepo; antes de escribir nada te preguntaremos qué debe adoptar {directory}."
|
|
6960
6968
|
},
|
|
6961
6969
|
"repoType": {
|
|
6962
6970
|
"label": "Tipo de repositorio",
|
|
6963
6971
|
"help": "Qué es este repositorio: un servicio backend, una aplicación frontend, una biblioteca compartida o un repositorio de documentación (solo documentos/spikes)."
|
|
6972
|
+
},
|
|
6973
|
+
"target": {
|
|
6974
|
+
"label": "Dónde va el servicio",
|
|
6975
|
+
"newRepo": {
|
|
6976
|
+
"label": "Un repositorio nuevo",
|
|
6977
|
+
"description": "Crear un repositorio propio y subir el servicio como su primer commit."
|
|
6978
|
+
},
|
|
6979
|
+
"monorepo": {
|
|
6980
|
+
"label": "Un directorio de un monorepo existente",
|
|
6981
|
+
"description": "Añadir el servicio a un repositorio que ya tienes y abrir un pull request."
|
|
6982
|
+
}
|
|
6983
|
+
},
|
|
6984
|
+
"serviceName": {
|
|
6985
|
+
"label": "Nombre del servicio",
|
|
6986
|
+
"description": "Nombra el servicio en el tablero y propone su directorio."
|
|
6987
|
+
},
|
|
6988
|
+
"monorepo": {
|
|
6989
|
+
"intro": "El servicio se escribe en un directorio de un repositorio existente y se entrega como pull request. No se fusiona nada por ti ni se cambia nada fuera del nuevo directorio.",
|
|
6990
|
+
"repo": {
|
|
6991
|
+
"label": "Monorepo",
|
|
6992
|
+
"description": "El repositorio donde vivirá el nuevo servicio. Ya debe estar vinculado a este espacio de trabajo.",
|
|
6993
|
+
"placeholder": "Elige un repositorio",
|
|
6994
|
+
"empty": "Aún no hay repositorios vinculados a este espacio de trabajo. Vincula uno primero."
|
|
6995
|
+
},
|
|
6996
|
+
"directory": {
|
|
6997
|
+
"label": "Directorio del servicio",
|
|
6998
|
+
"description": "Dónde vive el servicio, relativo a la raíz del repositorio. Todavía no debe existir.",
|
|
6999
|
+
"placeholder": "services/payments",
|
|
7000
|
+
"error": {
|
|
7001
|
+
"empty": "Indica un directorio dentro del repositorio.",
|
|
7002
|
+
"escapes": "El directorio debe quedarse dentro del repositorio."
|
|
7003
|
+
}
|
|
7004
|
+
}
|
|
7005
|
+
},
|
|
7006
|
+
"adoption": {
|
|
7007
|
+
"title": "¿Qué debe adoptar este servicio?",
|
|
7008
|
+
"subtitle": "El nuevo servicio en {directory}, dentro de {target}.",
|
|
7009
|
+
"intro": "Para cada área, decide si el nuevo servicio sigue al monorepo que lo rodea o conserva lo que trae la plantilla. No se escribe nada hasta que decidas.",
|
|
7010
|
+
"acceptAll": "Aceptar todas las sugerencias",
|
|
7011
|
+
"needsYou": "Falta tu decisión",
|
|
7012
|
+
"overridden": "Cambia la sugerencia",
|
|
7013
|
+
"evidence": "Leído de:",
|
|
7014
|
+
"notePlaceholder": "Lo que el agente debería saber sobre esta área (opcional)",
|
|
7015
|
+
"remaining": "Falta tu respuesta en {count} decisión | Faltan tus respuestas en {count} decisiones",
|
|
7016
|
+
"approve": "Aprobar y construir",
|
|
7017
|
+
"cardPrompt": "Este bootstrap te está esperando: decide qué adopta el nuevo servicio del monorepo.",
|
|
7018
|
+
"cardAction": "Revisar",
|
|
7019
|
+
"side": {
|
|
7020
|
+
"monorepo": "En el monorepo",
|
|
7021
|
+
"template": "En la plantilla",
|
|
7022
|
+
"nothing": "Nada para esta área"
|
|
7023
|
+
},
|
|
7024
|
+
"source": {
|
|
7025
|
+
"monorepo": "Seguir el monorepo",
|
|
7026
|
+
"template": "Conservar la plantilla",
|
|
7027
|
+
"both": "Combinar ambos",
|
|
7028
|
+
"neither": "Ninguno de los dos"
|
|
7029
|
+
},
|
|
7030
|
+
"area": {
|
|
7031
|
+
"build-tooling": "Herramientas de compilación",
|
|
7032
|
+
"dependencies": "Dependencias",
|
|
7033
|
+
"lint-format": "Linting y formato",
|
|
7034
|
+
"typecheck": "Comprobación de tipos",
|
|
7035
|
+
"testing": "Pruebas",
|
|
7036
|
+
"ci": "CI",
|
|
7037
|
+
"containerization": "Contenedores",
|
|
7038
|
+
"runtime-config": "Configuración de ejecución",
|
|
7039
|
+
"observability": "Observabilidad",
|
|
7040
|
+
"source-layout": "Estructura del código",
|
|
7041
|
+
"docs": "Documentación",
|
|
7042
|
+
"other": "Otros"
|
|
7043
|
+
},
|
|
7044
|
+
"unavailable": {
|
|
7045
|
+
"model_unavailable": "No hay ningún modelo configurado para el análisis, así que no hay sugerencia que revisar. Las decisiones siguen siendo tuyas: descríbelas en las notas.",
|
|
7046
|
+
"repo_unreadable": "No se pudo leer el monorepo, así que no se produjo ninguna sugerencia. Comprueba que este espacio de trabajo alcanza el repositorio.",
|
|
7047
|
+
"budget_exhausted": "Este espacio de trabajo ha superado su presupuesto de modelos, así que la plataforma no pagó por una sugerencia de adopción. Las decisiones siguen siendo tuyas: describe lo que quieres en las notas de abajo, o aumenta el presupuesto y reintenta la ejecución.",
|
|
7048
|
+
"analysis_unusable": "El análisis no devolvió una sugerencia utilizable. Aun así puedes describir lo que quieres en las notas."
|
|
7049
|
+
},
|
|
7050
|
+
"notes": {
|
|
7051
|
+
"label": "Notas para todo el servicio",
|
|
7052
|
+
"description": "Se pasan al agente literalmente, junto con tus decisiones.",
|
|
7053
|
+
"unavailableDescription": "No hay ninguna sugerencia que responder, así que esto es lo que usará el agente. Se le pasa literalmente."
|
|
7054
|
+
},
|
|
7055
|
+
"toast": {
|
|
7056
|
+
"approved": "Decisiones aprobadas",
|
|
7057
|
+
"approvedDesc": "El agente está escribiendo {directory} y abrirá un pull request.",
|
|
7058
|
+
"failed": "No se pudo enviar la revisión"
|
|
7059
|
+
}
|
|
6964
7060
|
}
|
|
6965
7061
|
},
|
|
6966
7062
|
"riskPolicy": {
|
package/i18n/locales/fr.json
CHANGED
|
@@ -687,7 +687,10 @@
|
|
|
687
687
|
"webhook_limit_reached": "Limite de webhooks atteinte",
|
|
688
688
|
"risk_policy_inherited": "Cette politique appartient au compte",
|
|
689
689
|
"risk_policy_not_inherited": "Cette politique appartient à ce tableau",
|
|
690
|
-
"kaizen_entry_not_settled": "L'entrée Kaizen n'a pas encore été évaluée"
|
|
690
|
+
"kaizen_entry_not_settled": "L'entrée Kaizen n'a pas encore été évaluée",
|
|
691
|
+
"bootstrap_not_awaiting_review": "Ce bootstrap n’attend pas de revue",
|
|
692
|
+
"adoption_plan_unavailable": "Aucun plan à approuver",
|
|
693
|
+
"monorepo_directory_taken": "Ce répertoire existe déjà"
|
|
691
694
|
},
|
|
692
695
|
"description": {
|
|
693
696
|
"dependencies_unmet": "Cette tâche dépend d'autres qui ne sont pas encore terminées. Terminez-les ou débloquez-les, puis relancez-la.",
|
|
@@ -729,7 +732,10 @@
|
|
|
729
732
|
"webhook_limit_reached": "Cet espace de travail a déjà enregistré le nombre maximal de webhooks sortants. Supprimez-en un dont vous n’avez plus besoin, puis enregistrez celui-ci à nouveau.",
|
|
730
733
|
"risk_policy_inherited": "Elle est partagée par tous les tableaux du compte et ne peut donc pas être modifiée ici. Clonez-la vers ce tableau et modifiez la copie.",
|
|
731
734
|
"risk_policy_not_inherited": "C'est déjà la politique propre à ce tableau : modifiez-la directement, ou supprimez-la si vous ne voulez plus qu'elle soit proposée.",
|
|
732
|
-
"kaizen_entry_not_settled": "Son évaluation est encore en attente ou en cours, il n'y a donc aucune recommandation à accuser réception. Réessayez une fois qu'elle sera terminée."
|
|
735
|
+
"kaizen_entry_not_settled": "Son évaluation est encore en attente ou en cours, il n'y a donc aucune recommandation à accuser réception. Réessayez une fois qu'elle sera terminée.",
|
|
736
|
+
"bootstrap_not_awaiting_review": "L’exécution a avancé depuis l’ouverture de cette revue. Rechargez le tableau.",
|
|
737
|
+
"adoption_plan_unavailable": "L’analyse n’a pas pu en produire, il n’y a donc aucune décision à envoyer.",
|
|
738
|
+
"monorepo_directory_taken": "Un bootstrap crée un nouveau service. Choisissez un répertoire qui n’existe pas encore, ou importez l’existant comme service."
|
|
733
739
|
},
|
|
734
740
|
"action": {
|
|
735
741
|
"connectGitHub": "Connecter GitHub",
|
|
@@ -6922,7 +6928,8 @@
|
|
|
6922
6928
|
"pending": "en attente",
|
|
6923
6929
|
"running": "en cours",
|
|
6924
6930
|
"succeeded": "réussi",
|
|
6925
|
-
"failed": "échoué"
|
|
6931
|
+
"failed": "échoué",
|
|
6932
|
+
"awaitingReview": "en attente de revue"
|
|
6926
6933
|
},
|
|
6927
6934
|
"arch": {
|
|
6928
6935
|
"title": "Architectures de référence",
|
|
@@ -6956,11 +6963,100 @@
|
|
|
6956
6963
|
"startedDesc": "Un conteneur initialise {repo} ; suivez sa progression sur le tableau.",
|
|
6957
6964
|
"bootstrapFailed": "Impossible d'initialiser",
|
|
6958
6965
|
"saveArchFailed": "Impossible d'enregistrer l'architecture de référence",
|
|
6959
|
-
"deleteFailed": "Impossible de supprimer"
|
|
6966
|
+
"deleteFailed": "Impossible de supprimer",
|
|
6967
|
+
"startedMonorepoDesc": "Analyse du monorepo en cours ; avant toute écriture, vous serez consulté sur ce que {directory} doit adopter."
|
|
6960
6968
|
},
|
|
6961
6969
|
"repoType": {
|
|
6962
6970
|
"label": "Type de dépôt",
|
|
6963
6971
|
"help": "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)."
|
|
6972
|
+
},
|
|
6973
|
+
"target": {
|
|
6974
|
+
"label": "Où va le service",
|
|
6975
|
+
"newRepo": {
|
|
6976
|
+
"label": "Un nouveau dépôt",
|
|
6977
|
+
"description": "Créer un dépôt dédié et pousser le service comme premier commit."
|
|
6978
|
+
},
|
|
6979
|
+
"monorepo": {
|
|
6980
|
+
"label": "Un répertoire d’un monorepo existant",
|
|
6981
|
+
"description": "Ajouter le service à un dépôt que vous avez déjà et ouvrir une pull request."
|
|
6982
|
+
}
|
|
6983
|
+
},
|
|
6984
|
+
"serviceName": {
|
|
6985
|
+
"label": "Nom du service",
|
|
6986
|
+
"description": "Nomme le service sur le tableau et propose son répertoire."
|
|
6987
|
+
},
|
|
6988
|
+
"monorepo": {
|
|
6989
|
+
"intro": "Le service est écrit dans un répertoire d’un dépôt existant et livré sous forme de pull request. Rien n’est fusionné à votre place et rien n’est modifié hors du nouveau répertoire.",
|
|
6990
|
+
"repo": {
|
|
6991
|
+
"label": "Monorepo",
|
|
6992
|
+
"description": "Le dépôt qui hébergera le nouveau service. Il doit déjà être lié à cet espace de travail.",
|
|
6993
|
+
"placeholder": "Choisissez un dépôt",
|
|
6994
|
+
"empty": "Aucun dépôt n’est encore lié à cet espace de travail. Liez-en un d’abord."
|
|
6995
|
+
},
|
|
6996
|
+
"directory": {
|
|
6997
|
+
"label": "Répertoire du service",
|
|
6998
|
+
"description": "Où vit le service, relativement à la racine du dépôt. Il ne doit pas encore exister.",
|
|
6999
|
+
"placeholder": "services/payments",
|
|
7000
|
+
"error": {
|
|
7001
|
+
"empty": "Indiquez un répertoire à l’intérieur du dépôt.",
|
|
7002
|
+
"escapes": "Le répertoire doit rester à l’intérieur du dépôt."
|
|
7003
|
+
}
|
|
7004
|
+
}
|
|
7005
|
+
},
|
|
7006
|
+
"adoption": {
|
|
7007
|
+
"title": "Que doit adopter ce service ?",
|
|
7008
|
+
"subtitle": "Le nouveau service dans {directory}, au sein de {target}.",
|
|
7009
|
+
"intro": "Pour chaque domaine, décidez si le nouveau service suit le monorepo qui l’entoure ou conserve ce que fournit le modèle. Rien n’est écrit avant votre décision.",
|
|
7010
|
+
"acceptAll": "Accepter toutes les suggestions",
|
|
7011
|
+
"needsYou": "Votre décision manque",
|
|
7012
|
+
"overridden": "S’écarte de la suggestion",
|
|
7013
|
+
"evidence": "Lu depuis :",
|
|
7014
|
+
"notePlaceholder": "Ce que l’agent devrait savoir sur ce domaine (facultatif)",
|
|
7015
|
+
"remaining": "{count} décision attend encore votre réponse | {count} décisions attendent encore votre réponse",
|
|
7016
|
+
"approve": "Approuver et construire",
|
|
7017
|
+
"cardPrompt": "Ce bootstrap vous attend : décidez ce que le nouveau service reprend du monorepo.",
|
|
7018
|
+
"cardAction": "Examiner",
|
|
7019
|
+
"side": {
|
|
7020
|
+
"monorepo": "Dans le monorepo",
|
|
7021
|
+
"template": "Dans le modèle",
|
|
7022
|
+
"nothing": "Rien pour ce domaine"
|
|
7023
|
+
},
|
|
7024
|
+
"source": {
|
|
7025
|
+
"monorepo": "Suivre le monorepo",
|
|
7026
|
+
"template": "Conserver le modèle",
|
|
7027
|
+
"both": "Combiner les deux",
|
|
7028
|
+
"neither": "Ni l’un ni l’autre"
|
|
7029
|
+
},
|
|
7030
|
+
"area": {
|
|
7031
|
+
"build-tooling": "Outils de build",
|
|
7032
|
+
"dependencies": "Dépendances",
|
|
7033
|
+
"lint-format": "Lint et formatage",
|
|
7034
|
+
"typecheck": "Vérification de types",
|
|
7035
|
+
"testing": "Tests",
|
|
7036
|
+
"ci": "CI",
|
|
7037
|
+
"containerization": "Conteneurisation",
|
|
7038
|
+
"runtime-config": "Configuration d’exécution",
|
|
7039
|
+
"observability": "Observabilité",
|
|
7040
|
+
"source-layout": "Organisation du code",
|
|
7041
|
+
"docs": "Documentation",
|
|
7042
|
+
"other": "Autre"
|
|
7043
|
+
},
|
|
7044
|
+
"unavailable": {
|
|
7045
|
+
"model_unavailable": "Aucun modèle n’est configuré pour l’analyse, il n’y a donc pas de suggestion à examiner. Les décisions restent les vôtres : décrivez-les dans les notes.",
|
|
7046
|
+
"repo_unreadable": "Le monorepo n’a pas pu être lu, aucune suggestion n’a donc été produite. Vérifiez que cet espace de travail atteint le dépôt.",
|
|
7047
|
+
"budget_exhausted": "Cet espace de travail a dépassé son budget de modèles, la plateforme n'a donc pas payé de suggestion d'adoption. Les décisions vous appartiennent toujours : décrivez ce que vous voulez dans les notes ci-dessous, ou augmentez le budget et relancez l'exécution.",
|
|
7048
|
+
"analysis_unusable": "L’analyse n’a pas renvoyé de suggestion exploitable. Vous pouvez tout de même décrire ce que vous voulez dans les notes."
|
|
7049
|
+
},
|
|
7050
|
+
"notes": {
|
|
7051
|
+
"label": "Notes pour l’ensemble du service",
|
|
7052
|
+
"description": "Transmises telles quelles à l’agent, avec vos décisions.",
|
|
7053
|
+
"unavailableDescription": "Il n'y a aucune suggestion à trancher : c'est donc ce dont l'agent partira. Transmis mot pour mot."
|
|
7054
|
+
},
|
|
7055
|
+
"toast": {
|
|
7056
|
+
"approved": "Décisions approuvées",
|
|
7057
|
+
"approvedDesc": "L’agent écrit {directory} et ouvrira une pull request.",
|
|
7058
|
+
"failed": "Impossible d’envoyer la revue"
|
|
7059
|
+
}
|
|
6964
7060
|
}
|
|
6965
7061
|
},
|
|
6966
7062
|
"riskPolicy": {
|