@cat-factory/app 0.294.0 → 0.295.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/bootstrap/BootstrapModal.logic.spec.ts +11 -0
- package/app/components/bootstrap/BootstrapModal.logic.ts +16 -0
- package/app/components/bootstrap/BootstrapModal.vue +73 -1
- package/app/stores/agentRuns.spec.ts +1 -0
- package/app/types/bootstrap.ts +1 -0
- package/i18n/locales/de.json +18 -4
- package/i18n/locales/en.json +18 -4
- package/i18n/locales/es.json +18 -4
- package/i18n/locales/fr.json +18 -4
- package/i18n/locales/he.json +18 -4
- package/i18n/locales/it.json +18 -4
- package/i18n/locales/ja.json +18 -4
- package/i18n/locales/pl.json +18 -4
- package/i18n/locales/tr.json +18 -4
- package/i18n/locales/uk.json +18 -4
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest'
|
|
2
2
|
import {
|
|
3
|
+
defaultBootstrapDelivery,
|
|
3
4
|
serviceDirectoryLeaf,
|
|
4
5
|
serviceDirectoryParent,
|
|
5
6
|
} from '~/components/bootstrap/BootstrapModal.logic'
|
|
@@ -41,3 +42,13 @@ describe('serviceDirectoryParent', () => {
|
|
|
41
42
|
expect(serviceDirectoryParent('')).toBe('')
|
|
42
43
|
})
|
|
43
44
|
})
|
|
45
|
+
|
|
46
|
+
describe('defaultBootstrapDelivery', () => {
|
|
47
|
+
it('reviews a monorepo and pushes a repository being created', () => {
|
|
48
|
+
// The form has to SHOW the default it is about to send, and the two targets want opposite
|
|
49
|
+
// ones, so a constant would render the wrong answer for one of them and ask the person to
|
|
50
|
+
// correct a choice they never made. Same rule the backend applies to a request naming none.
|
|
51
|
+
expect(defaultBootstrapDelivery(true)).toBe('pull_request')
|
|
52
|
+
expect(defaultBootstrapDelivery(false)).toBe('direct_push')
|
|
53
|
+
})
|
|
54
|
+
})
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BootstrapDelivery } from '~/types/domain'
|
|
1
2
|
import { repoPathSegments } from '~/utils/repoPath'
|
|
2
3
|
|
|
3
4
|
// The pure half of the bootstrap launch form's monorepo service-directory field. That field
|
|
@@ -26,3 +27,18 @@ export function serviceDirectoryLeaf(directory: string, serviceName: string): st
|
|
|
26
27
|
export function serviceDirectoryParent(directory: string): string {
|
|
27
28
|
return repoPathSegments(directory).slice(0, -1).join('/')
|
|
28
29
|
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The delivery a target takes when nobody has answered the question.
|
|
33
|
+
*
|
|
34
|
+
* The backend applies the same rule for a request that names none, and it is stated on both
|
|
35
|
+
* sides deliberately: the form has to SHOW the default it is about to send, and a control
|
|
36
|
+
* rendering the wrong one asks the person to correct something they never chose. The two targets
|
|
37
|
+
* want opposite answers, which is why it is a function of the target rather than a constant.
|
|
38
|
+
*
|
|
39
|
+
* Also what the form RESETS to after a launch: an explicit choice binds the run it was made for,
|
|
40
|
+
* never every later one, so the reset restores the default for whatever target is still selected.
|
|
41
|
+
*/
|
|
42
|
+
export function defaultBootstrapDelivery(intoMonorepo: boolean): BootstrapDelivery {
|
|
43
|
+
return intoMonorepo ? 'pull_request' : 'direct_push'
|
|
44
|
+
}
|
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
// adapt it (in a sandbox container) — either by cloning a chosen reference
|
|
5
5
|
// architecture, or from scratch following a freeform prompt. The modal pairs the
|
|
6
6
|
// launch form with the managed base list.
|
|
7
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
BootstrapDelivery,
|
|
9
|
+
BootstrapStatus,
|
|
10
|
+
FrameRepoType,
|
|
11
|
+
ReferenceArchitecture,
|
|
12
|
+
} from '~/types/domain'
|
|
8
13
|
import {
|
|
14
|
+
defaultBootstrapDelivery,
|
|
9
15
|
serviceDirectoryLeaf,
|
|
10
16
|
serviceDirectoryParent,
|
|
11
17
|
} from '~/components/bootstrap/BootstrapModal.logic'
|
|
@@ -105,6 +111,42 @@ const targetItems = computed(() => [
|
|
|
105
111
|
])
|
|
106
112
|
const intoMonorepo = computed(() => target.value === 'monorepo')
|
|
107
113
|
|
|
114
|
+
// ---- how the work LANDS ----------------------------------------------------
|
|
115
|
+
// A third axis, orthogonal to both of the above: the same service, written the same way, either
|
|
116
|
+
// arrives as a pull request somebody reviews or straight on the default branch. The two targets
|
|
117
|
+
// want opposite defaults (a repository being created has nobody to review its first commit; a
|
|
118
|
+
// monorepo's default branch is the branch every other service builds from), which is exactly why
|
|
119
|
+
// this is a control and not a constant.
|
|
120
|
+
const delivery = ref<BootstrapDelivery>(defaultBootstrapDelivery(false))
|
|
121
|
+
// Whether the person has answered this question themselves. Until they have, switching target
|
|
122
|
+
// re-defaults; once they have, their answer stands, because re-defaulting over an explicit
|
|
123
|
+
// choice is how a run they asked to review lands unreviewed. Cleared after a launch, so the
|
|
124
|
+
// answer binds the run it was given for rather than every later one (see `launch`).
|
|
125
|
+
const deliveryTouched = ref(false)
|
|
126
|
+
watch(intoMonorepo, (into) => {
|
|
127
|
+
if (!deliveryTouched.value) delivery.value = defaultBootstrapDelivery(into)
|
|
128
|
+
})
|
|
129
|
+
function chooseDelivery(value: BootstrapDelivery) {
|
|
130
|
+
deliveryTouched.value = true
|
|
131
|
+
delivery.value = value
|
|
132
|
+
}
|
|
133
|
+
const deliveryItems = computed(() => [
|
|
134
|
+
{
|
|
135
|
+
label: t('bootstrap.delivery.pullRequest.label'),
|
|
136
|
+
value: 'pull_request' as const,
|
|
137
|
+
description: intoMonorepo.value
|
|
138
|
+
? t('bootstrap.delivery.pullRequest.descMonorepo')
|
|
139
|
+
: t('bootstrap.delivery.pullRequest.descNewRepo'),
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
label: t('bootstrap.delivery.directPush.label'),
|
|
143
|
+
value: 'direct_push' as const,
|
|
144
|
+
description: intoMonorepo.value
|
|
145
|
+
? t('bootstrap.delivery.directPush.descMonorepo')
|
|
146
|
+
: t('bootstrap.delivery.directPush.descNewRepo'),
|
|
147
|
+
},
|
|
148
|
+
])
|
|
149
|
+
|
|
108
150
|
/** The projected repo the new service lands in, by numeric id. */
|
|
109
151
|
const monorepoRepoId = ref<number | undefined>(undefined)
|
|
110
152
|
const monorepoDirectory = ref('')
|
|
@@ -323,6 +365,7 @@ async function launch() {
|
|
|
323
365
|
private: isPrivate.value,
|
|
324
366
|
instructions: instructions.value.trim(),
|
|
325
367
|
type: selectedType.value,
|
|
368
|
+
delivery: delivery.value,
|
|
326
369
|
...(intoMonorepo.value && monorepoRepoId.value
|
|
327
370
|
? {
|
|
328
371
|
monorepo: {
|
|
@@ -363,6 +406,12 @@ async function launch() {
|
|
|
363
406
|
browsingDirectory.value = false
|
|
364
407
|
// Reset the repo role too, so a later bootstrap doesn't silently inherit this one's type.
|
|
365
408
|
selectedType.value = 'service'
|
|
409
|
+
// And the delivery, which has to reset the ANSWERED flag with it: leaving that set disarms
|
|
410
|
+
// the per-target default for good, so a "push directly" picked deliberately for one
|
|
411
|
+
// monorepo would go on governing the next bootstrap, into a different repository, without
|
|
412
|
+
// the person having been asked about that one. Back to the current target's own default.
|
|
413
|
+
deliveryTouched.value = false
|
|
414
|
+
delivery.value = defaultBootstrapDelivery(intoMonorepo.value)
|
|
366
415
|
// The provisional frame arrived (bootstrap() refreshed the board). Re-home it to
|
|
367
416
|
// free space so it never overlaps an existing service — the backend places it on a
|
|
368
417
|
// fixed diagonal stagger that can land on top of a large neighbour — then centre the
|
|
@@ -553,6 +602,17 @@ const statusLabel = computed<Record<BootstrapStatus, string>>(() => ({
|
|
|
553
602
|
<URadioGroup v-model="target" :items="targetItems" />
|
|
554
603
|
</UFormField>
|
|
555
604
|
|
|
605
|
+
<!-- Where the service goes and how it gets there are two questions, and the second
|
|
606
|
+
has no answer that is right for both targets. Its descriptions therefore change
|
|
607
|
+
with the target rather than the control being duplicated per target. -->
|
|
608
|
+
<UFormField :label="t('bootstrap.delivery.label')" required>
|
|
609
|
+
<URadioGroup
|
|
610
|
+
:model-value="delivery"
|
|
611
|
+
:items="deliveryItems"
|
|
612
|
+
@update:model-value="chooseDelivery($event as BootstrapDelivery)"
|
|
613
|
+
/>
|
|
614
|
+
</UFormField>
|
|
615
|
+
|
|
556
616
|
<!-- Landing in an existing monorepo: pick the repository and the subdirectory. The
|
|
557
617
|
run surveys the monorepo's conventions against the template's and PARKS for a
|
|
558
618
|
human adoption review before it writes anything. -->
|
|
@@ -800,6 +860,18 @@ const statusLabel = computed<Record<BootstrapStatus, string>>(() => ({
|
|
|
800
860
|
>
|
|
801
861
|
{{ t('bootstrap.recent.open') }}
|
|
802
862
|
</ULink>
|
|
863
|
+
<!-- The deliverable of a `pull_request` run, and the only thing it produced that
|
|
864
|
+
the user still has to act on. A monorepo run has no `repoUrl` at all, so
|
|
865
|
+
without this the run's whole output is unreachable from the list that
|
|
866
|
+
offered the choice. -->
|
|
867
|
+
<ULink
|
|
868
|
+
v-if="job.prUrl"
|
|
869
|
+
:to="job.prUrl"
|
|
870
|
+
target="_blank"
|
|
871
|
+
class="text-[11px] text-indigo-400 hover:underline"
|
|
872
|
+
>
|
|
873
|
+
{{ t('bootstrap.recent.openPr') }}
|
|
874
|
+
</ULink>
|
|
803
875
|
<UBadge :color="statusColor[job.status]" variant="subtle" size="sm">
|
|
804
876
|
{{ statusLabel[job.status] }}
|
|
805
877
|
</UBadge>
|
package/app/types/bootstrap.ts
CHANGED
package/i18n/locales/de.json
CHANGED
|
@@ -5086,7 +5086,8 @@
|
|
|
5086
5086
|
"title": "Letzte Läufe",
|
|
5087
5087
|
"fromArch": "aus {name}",
|
|
5088
5088
|
"fromScratch": "von Grund auf",
|
|
5089
|
-
"open": "Öffnen"
|
|
5089
|
+
"open": "Öffnen",
|
|
5090
|
+
"openPr": "Pull Request"
|
|
5090
5091
|
},
|
|
5091
5092
|
"status": {
|
|
5092
5093
|
"pending": "ausstehend",
|
|
@@ -5134,11 +5135,24 @@
|
|
|
5134
5135
|
"label": "Wo der Service entsteht",
|
|
5135
5136
|
"newRepo": {
|
|
5136
5137
|
"label": "Ein neues Repository",
|
|
5137
|
-
"description": "Ein eigenes Repository anlegen und den Service
|
|
5138
|
+
"description": "Ein eigenes Repository anlegen und den Service hineinschreiben."
|
|
5138
5139
|
},
|
|
5139
5140
|
"monorepo": {
|
|
5140
5141
|
"label": "Ein Verzeichnis in einem bestehenden Monorepo",
|
|
5141
|
-
"description": "Den Service einem
|
|
5142
|
+
"description": "Den Service einem Repository hinzufügen, das du bereits hast."
|
|
5143
|
+
}
|
|
5144
|
+
},
|
|
5145
|
+
"delivery": {
|
|
5146
|
+
"label": "Wie die Arbeit ankommt",
|
|
5147
|
+
"pullRequest": {
|
|
5148
|
+
"label": "Pull Request öffnen",
|
|
5149
|
+
"descNewRepo": "Einen Branch pushen und einen Pull Request gegen den ersten Commit des Repositories öffnen, damit jemand das Gerüst prüft, bevor es zum Default-Branch wird. Das Repository muss bereits einen Commit haben.",
|
|
5150
|
+
"descMonorepo": "Einen Branch pushen und einen Pull Request öffnen. Es wird nichts für dich gemergt."
|
|
5151
|
+
},
|
|
5152
|
+
"directPush": {
|
|
5153
|
+
"label": "Direkt pushen",
|
|
5154
|
+
"descNewRepo": "Den Service direkt als ersten Commit auf den Default-Branch schreiben.",
|
|
5155
|
+
"descMonorepo": "Während der Agent arbeitet, direkt auf den Default-Branch committen. Bei einem Fehlschlag bleibt liegen, was bereits geschrieben wurde."
|
|
5142
5156
|
}
|
|
5143
5157
|
},
|
|
5144
5158
|
"serviceName": {
|
|
@@ -5146,7 +5160,7 @@
|
|
|
5146
5160
|
"description": "Benennt den Service auf dem Board und schlägt sein Verzeichnis vor."
|
|
5147
5161
|
},
|
|
5148
5162
|
"monorepo": {
|
|
5149
|
-
"intro": "Der Service wird in ein Verzeichnis eines bestehenden Repositories geschrieben
|
|
5163
|
+
"intro": "Der Service wird in ein Verzeichnis eines bestehenden Repositories geschrieben; außerhalb dieses Verzeichnisses wird nichts geändert.",
|
|
5150
5164
|
"repo": {
|
|
5151
5165
|
"label": "Monorepo",
|
|
5152
5166
|
"description": "Das Repository, in dem der neue Service liegt. Es muss bereits mit diesem Workspace verknüpft sein.",
|
package/i18n/locales/en.json
CHANGED
|
@@ -7276,7 +7276,8 @@
|
|
|
7276
7276
|
"title": "Recent runs",
|
|
7277
7277
|
"fromArch": "from {name}",
|
|
7278
7278
|
"fromScratch": "from scratch",
|
|
7279
|
-
"open": "Open"
|
|
7279
|
+
"open": "Open",
|
|
7280
|
+
"openPr": "Pull request"
|
|
7280
7281
|
},
|
|
7281
7282
|
"status": {
|
|
7282
7283
|
"pending": "pending",
|
|
@@ -7324,11 +7325,24 @@
|
|
|
7324
7325
|
"label": "Where the service goes",
|
|
7325
7326
|
"newRepo": {
|
|
7326
7327
|
"label": "A new repository",
|
|
7327
|
-
"description": "Create a repository of its own and
|
|
7328
|
+
"description": "Create a repository of its own and write the service into it."
|
|
7328
7329
|
},
|
|
7329
7330
|
"monorepo": {
|
|
7330
7331
|
"label": "A directory in an existing monorepo",
|
|
7331
|
-
"description": "Add the service to a repository you already have
|
|
7332
|
+
"description": "Add the service to a repository you already have."
|
|
7333
|
+
}
|
|
7334
|
+
},
|
|
7335
|
+
"delivery": {
|
|
7336
|
+
"label": "How the work lands",
|
|
7337
|
+
"pullRequest": {
|
|
7338
|
+
"label": "Open a pull request",
|
|
7339
|
+
"descNewRepo": "Push a branch and open a pull request against the repository's first commit, so someone reviews the scaffold before it becomes the default branch. The repository must already have a commit.",
|
|
7340
|
+
"descMonorepo": "Push a branch and open a pull request. Nothing is merged for you."
|
|
7341
|
+
},
|
|
7342
|
+
"directPush": {
|
|
7343
|
+
"label": "Push directly",
|
|
7344
|
+
"descNewRepo": "Write the service straight onto the default branch as the repository's first commit.",
|
|
7345
|
+
"descMonorepo": "Commit onto the default branch as the agent works. A run that fails leaves what it had already written behind."
|
|
7332
7346
|
}
|
|
7333
7347
|
},
|
|
7334
7348
|
"serviceName": {
|
|
@@ -7336,7 +7350,7 @@
|
|
|
7336
7350
|
"description": "Names the service on the board and seeds its directory."
|
|
7337
7351
|
},
|
|
7338
7352
|
"monorepo": {
|
|
7339
|
-
"intro": "The service is written into a directory of an existing repository
|
|
7353
|
+
"intro": "The service is written into a directory of an existing repository, and nothing outside that directory is changed.",
|
|
7340
7354
|
"repo": {
|
|
7341
7355
|
"label": "Monorepo",
|
|
7342
7356
|
"description": "The repository the new service lives in. It must already be linked to this workspace.",
|
package/i18n/locales/es.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "Ejecuciones recientes",
|
|
6953
6953
|
"fromArch": "desde {name}",
|
|
6954
6954
|
"fromScratch": "desde cero",
|
|
6955
|
-
"open": "Abrir"
|
|
6955
|
+
"open": "Abrir",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "pendiente",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "Dónde va el servicio",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "Un repositorio nuevo",
|
|
7007
|
-
"description": "Crear un repositorio propio y
|
|
7008
|
+
"description": "Crear un repositorio propio y escribir el servicio en él."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "Un directorio de un monorepo existente",
|
|
7011
|
-
"description": "Añadir el servicio a un repositorio que ya tienes
|
|
7012
|
+
"description": "Añadir el servicio a un repositorio que ya tienes."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "Cómo se entrega el trabajo",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "Abrir un pull request",
|
|
7019
|
+
"descNewRepo": "Subir una rama y abrir un pull request contra el primer commit del repositorio, para que alguien revise el andamiaje antes de que sea la rama principal. El repositorio ya debe tener un commit.",
|
|
7020
|
+
"descMonorepo": "Subir una rama y abrir un pull request. No se fusiona nada por ti."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "Subir directamente",
|
|
7024
|
+
"descNewRepo": "Escribir el servicio directamente en la rama principal como primer commit del repositorio.",
|
|
7025
|
+
"descMonorepo": "Hacer commits en la rama principal mientras el agente trabaja. Si la ejecución falla, queda lo que ya se había escrito."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "Nombra el servicio en el tablero y propone su directorio."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "El servicio se escribe en un directorio de un repositorio existente y
|
|
7033
|
+
"intro": "El servicio se escribe en un directorio de un repositorio existente, y no se cambia nada fuera de ese directorio.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "Monorepo",
|
|
7022
7036
|
"description": "El repositorio donde vivirá el nuevo servicio. Ya debe estar vinculado a este espacio de trabajo.",
|
package/i18n/locales/fr.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "Exécutions récentes",
|
|
6953
6953
|
"fromArch": "depuis {name}",
|
|
6954
6954
|
"fromScratch": "à partir de zéro",
|
|
6955
|
-
"open": "Ouvrir"
|
|
6955
|
+
"open": "Ouvrir",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "en attente",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "Où va le service",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "Un nouveau dépôt",
|
|
7007
|
-
"description": "Créer un dépôt dédié et
|
|
7008
|
+
"description": "Créer un dépôt dédié et y écrire le service."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "Un répertoire d’un monorepo existant",
|
|
7011
|
-
"description": "Ajouter le service à un dépôt que vous avez
|
|
7012
|
+
"description": "Ajouter le service à un dépôt que vous avez déjà."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "Comment le travail est livré",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "Ouvrir une pull request",
|
|
7019
|
+
"descNewRepo": "Pousser une branche et ouvrir une pull request sur le premier commit du dépôt, pour qu’une personne relise l’ossature avant qu’elle ne devienne la branche par défaut. Le dépôt doit déjà avoir un commit.",
|
|
7020
|
+
"descMonorepo": "Pousser une branche et ouvrir une pull request. Rien n’est fusionné à votre place."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "Pousser directement",
|
|
7024
|
+
"descNewRepo": "Écrire le service directement sur la branche par défaut, comme premier commit du dépôt.",
|
|
7025
|
+
"descMonorepo": "Committer sur la branche par défaut pendant que l’agent travaille. Si l’exécution échoue, ce qui a déjà été écrit reste en place."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "Nomme le service sur le tableau et propose son répertoire."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "Le service est écrit dans un répertoire d’un dépôt existant et
|
|
7033
|
+
"intro": "Le service est écrit dans un répertoire d’un dépôt existant, et rien n’est modifié hors de ce répertoire.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "Monorepo",
|
|
7022
7036
|
"description": "Le dépôt qui hébergera le nouveau service. Il doit déjà être lié à cet espace de travail.",
|
package/i18n/locales/he.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "הרצות אחרונות",
|
|
6953
6953
|
"fromArch": "מתוך {name}",
|
|
6954
6954
|
"fromScratch": "מאפס",
|
|
6955
|
-
"open": "פתח"
|
|
6955
|
+
"open": "פתח",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "ממתין",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "לאן השירות ילך",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "מאגר חדש",
|
|
7007
|
-
"description": "ליצור מאגר משלו
|
|
7008
|
+
"description": "ליצור מאגר משלו ולכתוב אליו את השירות."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "תיקייה במונורפו קיים",
|
|
7011
|
-
"description": "להוסיף את השירות למאגר שכבר יש
|
|
7012
|
+
"description": "להוסיף את השירות למאגר שכבר יש לך."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "איך העבודה מגיעה",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "לפתוח pull request",
|
|
7019
|
+
"descNewRepo": "דוחף ענף ופותח pull request מול הקומיט הראשון של המאגר, כדי שמישהו יסקור את השלד לפני שהוא הופך לענף ברירת המחדל. למאגר חייב כבר להיות קומיט.",
|
|
7020
|
+
"descMonorepo": "דוחף ענף ופותח pull request. שום דבר לא ממוזג במקומך."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "לדחוף ישירות",
|
|
7024
|
+
"descNewRepo": "כותב את השירות ישירות לענף ברירת המחדל, כקומיט הראשון של המאגר.",
|
|
7025
|
+
"descMonorepo": "מבצע קומיטים לענף ברירת המחדל בזמן שהסוכן עובד. ריצה שנכשלת משאירה את מה שכבר נכתב."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "נותן שם לשירות בלוח ומציע את התיקייה שלו."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "השירות נכתב לתיקייה
|
|
7033
|
+
"intro": "השירות נכתב לתיקייה של מאגר קיים, ושום דבר מחוץ לתיקייה הזו לא משתנה.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "מונורפו",
|
|
7022
7036
|
"description": "המאגר שבו יחיה השירות החדש. הוא חייב להיות מקושר כבר למרחב העבודה הזה.",
|
package/i18n/locales/it.json
CHANGED
|
@@ -5086,7 +5086,8 @@
|
|
|
5086
5086
|
"title": "Esecuzioni recenti",
|
|
5087
5087
|
"fromArch": "da {name}",
|
|
5088
5088
|
"fromScratch": "da zero",
|
|
5089
|
-
"open": "Apri"
|
|
5089
|
+
"open": "Apri",
|
|
5090
|
+
"openPr": "Pull request"
|
|
5090
5091
|
},
|
|
5091
5092
|
"status": {
|
|
5092
5093
|
"pending": "in attesa",
|
|
@@ -5134,11 +5135,24 @@
|
|
|
5134
5135
|
"label": "Dove va il servizio",
|
|
5135
5136
|
"newRepo": {
|
|
5136
5137
|
"label": "Un nuovo repository",
|
|
5137
|
-
"description": "
|
|
5138
|
+
"description": "Crea un repository dedicato e ci scrive il servizio."
|
|
5138
5139
|
},
|
|
5139
5140
|
"monorepo": {
|
|
5140
5141
|
"label": "Una cartella di un monorepo esistente",
|
|
5141
|
-
"description": "
|
|
5142
|
+
"description": "Aggiunge il servizio a un repository che hai già."
|
|
5143
|
+
}
|
|
5144
|
+
},
|
|
5145
|
+
"delivery": {
|
|
5146
|
+
"label": "Come viene consegnato il lavoro",
|
|
5147
|
+
"pullRequest": {
|
|
5148
|
+
"label": "Apri una pull request",
|
|
5149
|
+
"descNewRepo": "Pubblica un branch e apre una pull request sul primo commit del repository, così qualcuno rivede l’impalcatura prima che diventi il branch predefinito. Il repository deve già avere un commit.",
|
|
5150
|
+
"descMonorepo": "Pubblica un branch e apre una pull request. Non viene unito nulla al posto tuo."
|
|
5151
|
+
},
|
|
5152
|
+
"directPush": {
|
|
5153
|
+
"label": "Pubblica direttamente",
|
|
5154
|
+
"descNewRepo": "Scrive il servizio direttamente sul branch predefinito, come primo commit del repository.",
|
|
5155
|
+
"descMonorepo": "Fa commit sul branch predefinito mentre l’agente lavora. Se l’esecuzione fallisce, resta quanto era già stato scritto."
|
|
5142
5156
|
}
|
|
5143
5157
|
},
|
|
5144
5158
|
"serviceName": {
|
|
@@ -5146,7 +5160,7 @@
|
|
|
5146
5160
|
"description": "Dà il nome al servizio sulla lavagna e propone la sua cartella."
|
|
5147
5161
|
},
|
|
5148
5162
|
"monorepo": {
|
|
5149
|
-
"intro": "Il servizio viene scritto in una
|
|
5163
|
+
"intro": "Il servizio viene scritto in una directory di un repository esistente e nulla al di fuori di quella directory viene modificato.",
|
|
5150
5164
|
"repo": {
|
|
5151
5165
|
"label": "Monorepo",
|
|
5152
5166
|
"description": "Il repository in cui vivrà il nuovo servizio. Deve essere già collegato a questo spazio di lavoro.",
|
package/i18n/locales/ja.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "最近の実行",
|
|
6953
6953
|
"fromArch": "{name} から",
|
|
6954
6954
|
"fromScratch": "ゼロから",
|
|
6955
|
-
"open": "開く"
|
|
6955
|
+
"open": "開く",
|
|
6956
|
+
"openPr": "プルリクエスト"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "保留中",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "サービスの配置先",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "新しいリポジトリ",
|
|
7007
|
-
"description": "
|
|
7008
|
+
"description": "専用のリポジトリを作成し、そこにサービスを書き込みます。"
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "既存モノレポ内のディレクトリ",
|
|
7011
|
-
"description": "
|
|
7012
|
+
"description": "すでにあるリポジトリにサービスを追加します。"
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "成果物の届け方",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "プルリクエストを開く",
|
|
7019
|
+
"descNewRepo": "ブランチをプッシュし、リポジトリの最初のコミットに対してプルリクエストを開きます。既定ブランチになる前に足場を人がレビューできます。リポジトリにはすでにコミットが必要です。",
|
|
7020
|
+
"descMonorepo": "ブランチをプッシュしてプルリクエストを開きます。マージは代わりに行いません。"
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "直接プッシュ",
|
|
7024
|
+
"descNewRepo": "サービスをリポジトリの最初のコミットとして既定ブランチに直接書き込みます。",
|
|
7025
|
+
"descMonorepo": "エージェントの作業中に既定ブランチへコミットします。失敗した実行は、そこまでに書いた内容を残します。"
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "ボード上のサービス名になり、ディレクトリの初期値にもなります。"
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "
|
|
7033
|
+
"intro": "サービスは既存リポジトリのディレクトリに書き込まれ、そのディレクトリの外は変更されません。",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "モノレポ",
|
|
7022
7036
|
"description": "新しいサービスを置くリポジトリ。このワークスペースにすでにリンクされている必要があります。",
|
package/i18n/locales/pl.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "Ostatnie uruchomienia",
|
|
6953
6953
|
"fromArch": "z {name}",
|
|
6954
6954
|
"fromScratch": "od zera",
|
|
6955
|
-
"open": "Otwórz"
|
|
6955
|
+
"open": "Otwórz",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "oczekuje",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "Gdzie trafi usługa",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "Nowe repozytorium",
|
|
7007
|
-
"description": "Utwórz osobne repozytorium i
|
|
7008
|
+
"description": "Utwórz osobne repozytorium i zapisz w nim usługę."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "Katalog w istniejącym monorepo",
|
|
7011
|
-
"description": "Dodaj usługę do repozytorium, które już masz
|
|
7012
|
+
"description": "Dodaj usługę do repozytorium, które już masz."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "Jak trafia praca",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "Otwórz pull request",
|
|
7019
|
+
"descNewRepo": "Wypchnij gałąź i otwórz pull request wobec pierwszego commita repozytorium, żeby ktoś przejrzał szkielet, zanim stanie się gałęzią domyślną. Repozytorium musi już mieć commit.",
|
|
7020
|
+
"descMonorepo": "Wypchnij gałąź i otwórz pull request. Nic nie zostanie scalone za ciebie."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "Wypchnij bezpośrednio",
|
|
7024
|
+
"descNewRepo": "Zapisz usługę prosto na gałęzi domyślnej, jako pierwszy commit repozytorium.",
|
|
7025
|
+
"descMonorepo": "Commituj na gałąź domyślną w trakcie pracy agenta. Nieudany przebieg zostawia to, co zdążył zapisać."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "Nazywa usługę na tablicy i podpowiada jej katalog."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "Usługa jest zapisywana w katalogu istniejącego repozytorium
|
|
7033
|
+
"intro": "Usługa jest zapisywana w katalogu istniejącego repozytorium; poza tym katalogiem nic się nie zmienia.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "Monorepo",
|
|
7022
7036
|
"description": "Repozytorium, w którym zamieszka nowa usługa. Musi być już powiązane z tą przestrzenią roboczą.",
|
package/i18n/locales/tr.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "Son çalıştırmalar",
|
|
6953
6953
|
"fromArch": "{name} kaynağından",
|
|
6954
6954
|
"fromScratch": "sıfırdan",
|
|
6955
|
-
"open": "Aç"
|
|
6955
|
+
"open": "Aç",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "beklemede",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "Servis nereye gidecek",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "Yeni bir depo",
|
|
7007
|
-
"description": "Kendine ait bir depo
|
|
7008
|
+
"description": "Kendine ait bir depo oluşturur ve servisi içine yazar."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "Mevcut bir monorepo içindeki dizin",
|
|
7011
|
-
"description": "Servisi hâlihazırda sahip olduğun bir depoya
|
|
7012
|
+
"description": "Servisi hâlihazırda sahip olduğun bir depoya ekler."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "İş nasıl teslim edilsin",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "Pull request aç",
|
|
7019
|
+
"descNewRepo": "Bir dal gönderir ve deponun ilk commit’ine karşı pull request açar; böylece iskelet varsayılan dal olmadan önce biri inceler. Deponun zaten bir commit’i olmalıdır.",
|
|
7020
|
+
"descMonorepo": "Bir dal gönderir ve pull request açar. Senin yerine hiçbir şey birleştirilmez."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "Doğrudan gönder",
|
|
7024
|
+
"descNewRepo": "Servisi doğrudan varsayılan dala, deponun ilk commit’i olarak yazar.",
|
|
7025
|
+
"descMonorepo": "Ajan çalışırken varsayılan dala commit atar. Başarısız bir çalıştırma, o ana kadar yazdıklarını geride bırakır."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "Servisi panoda adlandırır ve dizinini önerir."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "Servis mevcut bir deponun dizinine yazılır ve
|
|
7033
|
+
"intro": "Servis mevcut bir deponun bir dizinine yazılır ve o dizinin dışında hiçbir şey değiştirilmez.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "Monorepo",
|
|
7022
7036
|
"description": "Yeni servisin yaşayacağı depo. Bu çalışma alanına önceden bağlanmış olmalı.",
|
package/i18n/locales/uk.json
CHANGED
|
@@ -6952,7 +6952,8 @@
|
|
|
6952
6952
|
"title": "Нещодавні запуски",
|
|
6953
6953
|
"fromArch": "з {name}",
|
|
6954
6954
|
"fromScratch": "з нуля",
|
|
6955
|
-
"open": "Відкрити"
|
|
6955
|
+
"open": "Відкрити",
|
|
6956
|
+
"openPr": "Pull request"
|
|
6956
6957
|
},
|
|
6957
6958
|
"status": {
|
|
6958
6959
|
"pending": "очікує",
|
|
@@ -7004,11 +7005,24 @@
|
|
|
7004
7005
|
"label": "Куди піде сервіс",
|
|
7005
7006
|
"newRepo": {
|
|
7006
7007
|
"label": "Новий репозиторій",
|
|
7007
|
-
"description": "Створити окремий репозиторій і
|
|
7008
|
+
"description": "Створити окремий репозиторій і записати сервіс у нього."
|
|
7008
7009
|
},
|
|
7009
7010
|
"monorepo": {
|
|
7010
7011
|
"label": "Каталог у наявному монорепозиторії",
|
|
7011
|
-
"description": "Додати сервіс до репозиторію, який
|
|
7012
|
+
"description": "Додати сервіс до репозиторію, який ви вже маєте."
|
|
7013
|
+
}
|
|
7014
|
+
},
|
|
7015
|
+
"delivery": {
|
|
7016
|
+
"label": "Як потрапляє робота",
|
|
7017
|
+
"pullRequest": {
|
|
7018
|
+
"label": "Відкрити pull request",
|
|
7019
|
+
"descNewRepo": "Надіслати гілку й відкрити pull request щодо першого коміту репозиторію, щоб хтось переглянув каркас, перш ніж він стане типовою гілкою. Репозиторій уже має містити коміт.",
|
|
7020
|
+
"descMonorepo": "Надіслати гілку й відкрити pull request. Нічого не зливається за вас."
|
|
7021
|
+
},
|
|
7022
|
+
"directPush": {
|
|
7023
|
+
"label": "Надіслати напряму",
|
|
7024
|
+
"descNewRepo": "Записати сервіс одразу в типову гілку як перший коміт репозиторію.",
|
|
7025
|
+
"descMonorepo": "Комітити в типову гілку, поки агент працює. Невдалий запуск лишає те, що вже було записано."
|
|
7012
7026
|
}
|
|
7013
7027
|
},
|
|
7014
7028
|
"serviceName": {
|
|
@@ -7016,7 +7030,7 @@
|
|
|
7016
7030
|
"description": "Називає сервіс на дошці та підказує його каталог."
|
|
7017
7031
|
},
|
|
7018
7032
|
"monorepo": {
|
|
7019
|
-
"intro": "Сервіс записується в каталог наявного
|
|
7033
|
+
"intro": "Сервіс записується в каталог наявного репозиторію, і поза цим каталогом нічого не змінюється.",
|
|
7020
7034
|
"repo": {
|
|
7021
7035
|
"label": "Монорепозиторій",
|
|
7022
7036
|
"description": "Репозиторій, у якому житиме новий сервіс. Він має бути вже пов’язаний із цим робочим простором.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.295.0",
|
|
4
4
|
"description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cat-factory/contracts": "0.
|
|
21
|
+
"@cat-factory/contracts": "0.345.0",
|
|
22
22
|
"@modular-frontend/core": "0.6.0",
|
|
23
23
|
"@modular-vue/core": "^1.5.0",
|
|
24
24
|
"@modular-vue/journeys": "^1.4.0",
|