@cat-factory/app 0.178.0 → 0.178.1
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/documents/DocumentImportModal.vue +3 -17
- package/app/components/documents/DocumentTemplatesModal.vue +1 -1
- package/app/components/documents/SpawnPreviewModal.vue +9 -19
- package/app/components/layout/CommandBar.vue +1 -1
- package/app/components/layout/IntegrationsHub.vue +1 -1
- package/app/components/panels/InspectorPanel.vue +2 -19
- package/app/stores/documents.ts +9 -6
- package/app/stores/ui/modals.ts +11 -21
- package/i18n/locales/de.json +0 -3
- package/i18n/locales/en.json +0 -3
- package/i18n/locales/es.json +0 -3
- package/i18n/locales/fr.json +0 -3
- package/i18n/locales/he.json +0 -3
- package/i18n/locales/it.json +0 -3
- package/i18n/locales/ja.json +0 -3
- package/i18n/locales/pl.json +0 -3
- package/i18n/locales/tr.json +0 -3
- package/i18n/locales/uk.json +0 -3
- package/package.json +2 -2
|
@@ -4,12 +4,11 @@ import IntegrationBackTitle from '~/components/layout/IntegrationBackTitle.vue'
|
|
|
4
4
|
|
|
5
5
|
// Import pages from a connected document source and pick one to expand into
|
|
6
6
|
// board structure. A source selector lets the user choose which connected source
|
|
7
|
-
// to import from (Confluence, Notion, …).
|
|
8
|
-
//
|
|
7
|
+
// to import from (Confluence, Notion, …). "Preview & spawn" always creates new
|
|
8
|
+
// top-level frames — see `SpawnPreviewModal` for why there is no frame target.
|
|
9
9
|
const { t } = useI18n()
|
|
10
10
|
const ui = useUiStore()
|
|
11
11
|
const documents = useDocumentsStore()
|
|
12
|
-
const board = useBoardStore()
|
|
13
12
|
const toast = useToast()
|
|
14
13
|
|
|
15
14
|
const open = computed({
|
|
@@ -20,11 +19,6 @@ const open = computed({
|
|
|
20
19
|
})
|
|
21
20
|
const back = useIntegrationBack(open)
|
|
22
21
|
|
|
23
|
-
const targetFrameId = computed(() => ui.documentImport?.targetFrameId ?? null)
|
|
24
|
-
const targetFrameTitle = computed(() =>
|
|
25
|
-
targetFrameId.value ? board.getBlock(targetFrameId.value)?.title : null,
|
|
26
|
-
)
|
|
27
|
-
|
|
28
22
|
/** Which connected source we're importing from (defaults to the first). */
|
|
29
23
|
const source = ref<DocumentSourceKind | undefined>(undefined)
|
|
30
24
|
const ref_ = ref('')
|
|
@@ -78,7 +72,7 @@ async function doImport() {
|
|
|
78
72
|
}
|
|
79
73
|
|
|
80
74
|
function preview(externalId: string) {
|
|
81
|
-
if (source.value) ui.openSpawnPreview(source.value, externalId
|
|
75
|
+
if (source.value) ui.openSpawnPreview(source.value, externalId)
|
|
82
76
|
}
|
|
83
77
|
</script>
|
|
84
78
|
|
|
@@ -106,14 +100,6 @@ function preview(externalId: string) {
|
|
|
106
100
|
</div>
|
|
107
101
|
|
|
108
102
|
<div v-else class="space-y-4">
|
|
109
|
-
<p v-if="targetFrameTitle" class="text-xs text-slate-400">
|
|
110
|
-
<i18n-t keypath="documents.import.spawningInto" scope="global">
|
|
111
|
-
<template #frame>
|
|
112
|
-
<span class="font-medium text-slate-200">{{ targetFrameTitle }}</span>
|
|
113
|
-
</template>
|
|
114
|
-
</i18n-t>
|
|
115
|
-
</p>
|
|
116
|
-
|
|
117
103
|
<UFormField v-if="sourceItems.length > 1" :label="t('documents.import.sourceLabel')">
|
|
118
104
|
<USelect v-model="source" :items="sourceItems" class="w-full" />
|
|
119
105
|
</UFormField>
|
|
@@ -117,7 +117,7 @@ async function unlink(doc: SourceDocument) {
|
|
|
117
117
|
color="primary"
|
|
118
118
|
variant="soft"
|
|
119
119
|
icon="i-lucide-file-down"
|
|
120
|
-
@click="ui.openDocumentImport(
|
|
120
|
+
@click="ui.openDocumentImport()"
|
|
121
121
|
>
|
|
122
122
|
{{ t('documents.templates.importButton') }}
|
|
123
123
|
</UButton>
|
|
@@ -4,10 +4,16 @@ import type { DocumentBoardPlan } from '~/types/domain'
|
|
|
4
4
|
// Preview the structure an imported document expands into, then spawn it. The
|
|
5
5
|
// plan is fetched fresh on open; a badge makes clear whether an LLM or the
|
|
6
6
|
// deterministic heading parser produced it.
|
|
7
|
+
//
|
|
8
|
+
// A spawn always creates new top-level frames. The planner's job is to decompose a
|
|
9
|
+
// document into services, so spawning into an existing frame could only flatten the
|
|
10
|
+
// planned frames into it — silently discarding the frame titles and types rendered
|
|
11
|
+
// below, i.e. producing something other than what this preview showed. Scoping a
|
|
12
|
+
// spawn to one service needs a target-aware PLAN (a prompt that yields modules and
|
|
13
|
+
// tasks for an existing service), not a target-aware write.
|
|
7
14
|
const { t } = useI18n()
|
|
8
15
|
const ui = useUiStore()
|
|
9
16
|
const documents = useDocumentsStore()
|
|
10
|
-
const board = useBoardStore()
|
|
11
17
|
const toast = useToast()
|
|
12
18
|
|
|
13
19
|
const open = computed({
|
|
@@ -17,11 +23,6 @@ const open = computed({
|
|
|
17
23
|
},
|
|
18
24
|
})
|
|
19
25
|
|
|
20
|
-
const targetFrameId = computed(() => ui.spawnPreview?.targetFrameId ?? null)
|
|
21
|
-
const targetFrameTitle = computed(() =>
|
|
22
|
-
targetFrameId.value ? board.getBlock(targetFrameId.value)?.title : null,
|
|
23
|
-
)
|
|
24
|
-
|
|
25
26
|
const plan = ref<DocumentBoardPlan | null>(null)
|
|
26
27
|
const loadingPlan = ref(false)
|
|
27
28
|
const spawning = ref(false)
|
|
@@ -54,11 +55,7 @@ async function spawn() {
|
|
|
54
55
|
if (!preview) return
|
|
55
56
|
spawning.value = true
|
|
56
57
|
try {
|
|
57
|
-
const result = await documents.spawn(
|
|
58
|
-
preview.source,
|
|
59
|
-
preview.externalId,
|
|
60
|
-
targetFrameId.value ?? undefined,
|
|
61
|
-
)
|
|
58
|
+
const result = await documents.spawn(preview.source, preview.externalId)
|
|
62
59
|
toast.add({
|
|
63
60
|
title: t('documents.spawn.spawned'),
|
|
64
61
|
description: t('documents.spawn.summary', {
|
|
@@ -100,14 +97,7 @@ async function spawn() {
|
|
|
100
97
|
: t('documents.spawn.plannerHeadings')
|
|
101
98
|
}}
|
|
102
99
|
</UBadge>
|
|
103
|
-
<span
|
|
104
|
-
<i18n-t keypath="documents.spawn.intoFrame" scope="global">
|
|
105
|
-
<template #frame>
|
|
106
|
-
<span class="font-medium text-slate-200">{{ targetFrameTitle }}</span>
|
|
107
|
-
</template>
|
|
108
|
-
</i18n-t>
|
|
109
|
-
</span>
|
|
110
|
-
<span v-else class="text-xs text-slate-400">{{ t('documents.spawn.asTopLevel') }}</span>
|
|
100
|
+
<span class="text-xs text-slate-400">{{ t('documents.spawn.asTopLevel') }}</span>
|
|
111
101
|
</div>
|
|
112
102
|
|
|
113
103
|
<div v-if="loadingPlan" class="flex items-center gap-2 text-sm text-slate-400">
|
|
@@ -92,7 +92,7 @@ const dynamicIntegrationCommands = computed<Command[]>(() => {
|
|
|
92
92
|
group: groupIntegrations,
|
|
93
93
|
icon: 'i-lucide-file-down',
|
|
94
94
|
keywords: t('layout.commandBar.keywords.documentImport'),
|
|
95
|
-
run: () => ui.openDocumentImport(
|
|
95
|
+
run: () => ui.openDocumentImport(),
|
|
96
96
|
})
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -176,7 +176,7 @@ const groups = computed<IntegrationGroup[]>(() => {
|
|
|
176
176
|
icon: 'i-lucide-file-down',
|
|
177
177
|
label: t('layout.integrationsHub.items.documentImport.label'),
|
|
178
178
|
description: t('layout.integrationsHub.items.documentImport.description'),
|
|
179
|
-
onClick: () => go(() => ui.openDocumentImport(
|
|
179
|
+
onClick: () => go(() => ui.openDocumentImport()),
|
|
180
180
|
})
|
|
181
181
|
}
|
|
182
182
|
// Per-DocKind template + exemplar links are workspace CONFIG over the imported corpus, not an
|
|
@@ -12,7 +12,6 @@ const board = useBoardStore()
|
|
|
12
12
|
const pipelines = usePipelinesStore()
|
|
13
13
|
const execution = useExecutionStore()
|
|
14
14
|
const ui = useUiStore()
|
|
15
|
-
const documents = useDocumentsStore()
|
|
16
15
|
const fragments = useFragmentsStore()
|
|
17
16
|
const agentRuns = useAgentRunsStore()
|
|
18
17
|
const github = useGitHubStore()
|
|
@@ -30,13 +29,6 @@ onMounted(() => {
|
|
|
30
29
|
github.ensureLoaded()
|
|
31
30
|
})
|
|
32
31
|
|
|
33
|
-
/** Open the document import/spawn flow, targeting this container's frame. */
|
|
34
|
-
function spawnFromDocument() {
|
|
35
|
-
if (!block.value) return
|
|
36
|
-
const frameId = isFrame.value ? block.value.id : (board.serviceOf(block.value)?.id ?? null)
|
|
37
|
-
ui.openDocumentImport(frameId)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
32
|
const block = computed<Block | undefined>(() =>
|
|
41
33
|
ui.selectedBlockId ? board.getBlock(ui.selectedBlockId) : undefined,
|
|
42
34
|
)
|
|
@@ -451,17 +443,8 @@ const showOriginalDescription = ref(false)
|
|
|
451
443
|
</UButton>
|
|
452
444
|
<!-- Tracker entry points (import an issue, hunt bugs) live on the service frame's
|
|
453
445
|
header, where they are already scoped to a frame — the inspector doesn't
|
|
454
|
-
duplicate them.
|
|
455
|
-
|
|
456
|
-
v-if="isContainer && documents.available && documents.anyConnected"
|
|
457
|
-
color="neutral"
|
|
458
|
-
variant="soft"
|
|
459
|
-
size="xs"
|
|
460
|
-
icon="i-lucide-wand-sparkles"
|
|
461
|
-
@click="spawnFromDocument"
|
|
462
|
-
>
|
|
463
|
-
{{ t('panels.inspector.spawnFromDocument') }}
|
|
464
|
-
</UButton>
|
|
446
|
+
duplicate them. Document spawn is board-level only (command bar, Integrations
|
|
447
|
+
hub, templates modal), since planning is target-blind. -->
|
|
465
448
|
</div>
|
|
466
449
|
|
|
467
450
|
<!-- service (frame): navigate the prescriptive spec tree (+ Gherkin scenarios when
|
package/app/stores/documents.ts
CHANGED
|
@@ -106,12 +106,15 @@ export const useDocumentsStore = defineStore('documents', () => {
|
|
|
106
106
|
return api.planDocument(workspace.requireId(), source, externalId)
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
/**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
/**
|
|
110
|
+
* Apply a page's structure to the board as new top-level frames, then refresh the
|
|
111
|
+
* board snapshot. The endpoint also accepts a `frameId` that flattens the planned
|
|
112
|
+
* frames into an existing service; the SPA deliberately never sends one, because the
|
|
113
|
+
* planner is target-blind and that path discards the frame titles/types the preview
|
|
114
|
+
* shows. Scoping a spawn to a service needs a target-aware plan first.
|
|
115
|
+
*/
|
|
116
|
+
async function spawn(source: DocumentSourceKind, externalId: string) {
|
|
117
|
+
const { result } = await api.spawnDocument(workspace.requireId(), source, { externalId })
|
|
115
118
|
await workspace.refresh()
|
|
116
119
|
return result
|
|
117
120
|
}
|
package/app/stores/ui/modals.ts
CHANGED
|
@@ -156,23 +156,20 @@ function createMiscModals() {
|
|
|
156
156
|
* came-from markers (they can be reached from the Integrations hub).
|
|
157
157
|
*/
|
|
158
158
|
function createDocumentTaskModals(resetHubReturn: ResetHubReturn) {
|
|
159
|
-
// Document-source integration modals, keyed by source.
|
|
160
|
-
//
|
|
161
|
-
// frame
|
|
162
|
-
//
|
|
163
|
-
// `documentImport`'s source may be null to let the modal pick a
|
|
159
|
+
// Document-source integration modals, keyed by source. A spawn always creates new
|
|
160
|
+
// top-level frames: the planner decomposes a document into services, so spawning
|
|
161
|
+
// into an existing frame could only flatten those away (discarding the frame titles
|
|
162
|
+
// and types the preview shows). `documentConnect` carries the source whose connect
|
|
163
|
+
// form to show; `documentImport`'s source may be null to let the modal pick a
|
|
164
|
+
// connected one.
|
|
164
165
|
const documentConnect = ref<{ source: DocumentSourceKind } | null>(null)
|
|
165
|
-
const documentImport = ref<{
|
|
166
|
-
source: DocumentSourceKind | null
|
|
167
|
-
targetFrameId: string | null
|
|
168
|
-
} | null>(null)
|
|
166
|
+
const documentImport = ref<{ source: DocumentSourceKind | null } | null>(null)
|
|
169
167
|
// The workspace+DocKind template / exemplar management modal (WS1). A single boolean —
|
|
170
168
|
// it manages every kind's links in one place.
|
|
171
169
|
const documentTemplates = ref(false)
|
|
172
170
|
const spawnPreview = ref<{
|
|
173
171
|
source: DocumentSourceKind
|
|
174
172
|
externalId: string
|
|
175
|
-
targetFrameId: string | null
|
|
176
173
|
} | null>(null)
|
|
177
174
|
|
|
178
175
|
// Task-source integration modals, keyed by source. `taskConnect` carries the
|
|
@@ -222,12 +219,9 @@ function createDocumentTaskModals(resetHubReturn: ResetHubReturn) {
|
|
|
222
219
|
function closeDocumentConnect() {
|
|
223
220
|
documentConnect.value = null
|
|
224
221
|
}
|
|
225
|
-
function openDocumentImport(
|
|
226
|
-
targetFrameId: string | null = null,
|
|
227
|
-
source: DocumentSourceKind | null = null,
|
|
228
|
-
) {
|
|
222
|
+
function openDocumentImport(source: DocumentSourceKind | null = null) {
|
|
229
223
|
resetHubReturn()
|
|
230
|
-
documentImport.value = { source
|
|
224
|
+
documentImport.value = { source }
|
|
231
225
|
}
|
|
232
226
|
function closeDocumentImport() {
|
|
233
227
|
documentImport.value = null
|
|
@@ -239,12 +233,8 @@ function createDocumentTaskModals(resetHubReturn: ResetHubReturn) {
|
|
|
239
233
|
function closeDocumentTemplates() {
|
|
240
234
|
documentTemplates.value = false
|
|
241
235
|
}
|
|
242
|
-
function openSpawnPreview(
|
|
243
|
-
source
|
|
244
|
-
externalId: string,
|
|
245
|
-
targetFrameId: string | null = null,
|
|
246
|
-
) {
|
|
247
|
-
spawnPreview.value = { source, externalId, targetFrameId }
|
|
236
|
+
function openSpawnPreview(source: DocumentSourceKind, externalId: string) {
|
|
237
|
+
spawnPreview.value = { source, externalId }
|
|
248
238
|
}
|
|
249
239
|
function closeSpawnPreview() {
|
|
250
240
|
spawnPreview.value = null
|
package/i18n/locales/de.json
CHANGED
|
@@ -1711,7 +1711,6 @@
|
|
|
1711
1711
|
"lastIncorporatedRequirements": "Zuletzt eingearbeitete Anforderungen",
|
|
1712
1712
|
"priorDocHint": "Aus der vorherigen Prüfung. Verwende es als Basis: bearbeite die Beschreibung oben und reiche erneut ein.",
|
|
1713
1713
|
"bootstrapping": "Wird initialisiert…",
|
|
1714
|
-
"spawnFromDocument": "Aus Dokument erzeugen",
|
|
1715
1714
|
"viewRequirements": "Anforderungen anzeigen",
|
|
1716
1715
|
"reRun": "Erneut ausführen",
|
|
1717
1716
|
"run": "Ausführen",
|
|
@@ -3286,7 +3285,6 @@
|
|
|
3286
3285
|
"title": "Aus einer Dokumentquelle importieren",
|
|
3287
3286
|
"connectFirst": "Verbinden Sie zuerst eine Dokumentquelle.",
|
|
3288
3287
|
"connectSource": "{source} verbinden",
|
|
3289
|
-
"spawningInto": "Wird in {frame} erzeugt",
|
|
3290
3288
|
"sourceLabel": "Quelle",
|
|
3291
3289
|
"refLabel": "Seiten-URL oder -ID",
|
|
3292
3290
|
"importButton": "Importieren",
|
|
@@ -3311,7 +3309,6 @@
|
|
|
3311
3309
|
"title": "Struktur-Vorschau",
|
|
3312
3310
|
"plannerLlm": "KI-generiert",
|
|
3313
3311
|
"plannerHeadings": "Aus Überschriften",
|
|
3314
|
-
"intoFrame": "in {frame}",
|
|
3315
3312
|
"asTopLevel": "als neue Frames auf oberster Ebene",
|
|
3316
3313
|
"buildingPlan": "Plan wird erstellt…",
|
|
3317
3314
|
"spawnOntoBoard": "Auf dem Board erzeugen",
|
package/i18n/locales/en.json
CHANGED
|
@@ -1433,7 +1433,6 @@
|
|
|
1433
1433
|
"lastIncorporatedRequirements": "Last incorporated requirements",
|
|
1434
1434
|
"priorDocHint": "From the previous review. Use it as a base: edit the description above and resubmit.",
|
|
1435
1435
|
"bootstrapping": "Bootstrapping…",
|
|
1436
|
-
"spawnFromDocument": "Spawn from document",
|
|
1437
1436
|
"viewRequirements": "View Requirements",
|
|
1438
1437
|
"reRun": "Re-run",
|
|
1439
1438
|
"run": "Run",
|
|
@@ -3706,7 +3705,6 @@
|
|
|
3706
3705
|
"title": "Import from a document source",
|
|
3707
3706
|
"connectFirst": "Connect a document source first.",
|
|
3708
3707
|
"connectSource": "Connect {source}",
|
|
3709
|
-
"spawningInto": "Spawning into {frame}",
|
|
3710
3708
|
"sourceLabel": "Source",
|
|
3711
3709
|
"refLabel": "Page URL or ID",
|
|
3712
3710
|
"importButton": "Import",
|
|
@@ -3731,7 +3729,6 @@
|
|
|
3731
3729
|
"title": "Preview structure",
|
|
3732
3730
|
"plannerLlm": "AI-generated",
|
|
3733
3731
|
"plannerHeadings": "From headings",
|
|
3734
|
-
"intoFrame": "into {frame}",
|
|
3735
3732
|
"asTopLevel": "as new top-level frames",
|
|
3736
3733
|
"buildingPlan": "Building plan…",
|
|
3737
3734
|
"spawnOntoBoard": "Spawn onto board",
|
package/i18n/locales/es.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "Últimos requisitos incorporados",
|
|
1348
1348
|
"priorDocHint": "De la revisión anterior. Úsalo como base: edita la descripción de arriba y reenvíala.",
|
|
1349
1349
|
"bootstrapping": "Inicializando…",
|
|
1350
|
-
"spawnFromDocument": "Generar desde documento",
|
|
1351
1350
|
"viewRequirements": "Ver requisitos",
|
|
1352
1351
|
"reRun": "Reejecutar",
|
|
1353
1352
|
"run": "Ejecutar",
|
|
@@ -3598,7 +3597,6 @@
|
|
|
3598
3597
|
"title": "Importar desde una fuente de documentos",
|
|
3599
3598
|
"connectFirst": "Conecta primero una fuente de documentos.",
|
|
3600
3599
|
"connectSource": "Conectar {source}",
|
|
3601
|
-
"spawningInto": "Generando dentro de {frame}",
|
|
3602
3600
|
"sourceLabel": "Fuente",
|
|
3603
3601
|
"refLabel": "URL o ID de la página",
|
|
3604
3602
|
"importButton": "Importar",
|
|
@@ -3623,7 +3621,6 @@
|
|
|
3623
3621
|
"title": "Previsualizar estructura",
|
|
3624
3622
|
"plannerLlm": "Generado por IA",
|
|
3625
3623
|
"plannerHeadings": "A partir de los encabezados",
|
|
3626
|
-
"intoFrame": "en {frame}",
|
|
3627
3624
|
"asTopLevel": "como nuevos marcos de nivel superior",
|
|
3628
3625
|
"buildingPlan": "Creando el plan…",
|
|
3629
3626
|
"spawnOntoBoard": "Generar en el tablero",
|
package/i18n/locales/fr.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "Dernières exigences intégrées",
|
|
1348
1348
|
"priorDocHint": "Issu de la revue précédente. Utilisez-le comme base : modifiez la description ci-dessus et resoumettez.",
|
|
1349
1349
|
"bootstrapping": "Initialisation…",
|
|
1350
|
-
"spawnFromDocument": "Créer à partir d'un document",
|
|
1351
1350
|
"viewRequirements": "Voir les exigences",
|
|
1352
1351
|
"reRun": "Relancer",
|
|
1353
1352
|
"run": "Exécuter",
|
|
@@ -3598,7 +3597,6 @@
|
|
|
3598
3597
|
"title": "Importer depuis une source de documents",
|
|
3599
3598
|
"connectFirst": "Connectez d'abord une source de documents.",
|
|
3600
3599
|
"connectSource": "Connecter {source}",
|
|
3601
|
-
"spawningInto": "Génération dans {frame}",
|
|
3602
3600
|
"sourceLabel": "Source",
|
|
3603
3601
|
"refLabel": "URL ou ID de la page",
|
|
3604
3602
|
"importButton": "Importer",
|
|
@@ -3623,7 +3621,6 @@
|
|
|
3623
3621
|
"title": "Aperçu de la structure",
|
|
3624
3622
|
"plannerLlm": "Généré par l'IA",
|
|
3625
3623
|
"plannerHeadings": "À partir des titres",
|
|
3626
|
-
"intoFrame": "dans {frame}",
|
|
3627
3624
|
"asTopLevel": "en nouveaux cadres de premier niveau",
|
|
3628
3625
|
"buildingPlan": "Création du plan…",
|
|
3629
3626
|
"spawnOntoBoard": "Générer sur le tableau",
|
package/i18n/locales/he.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "הדרישות האחרונות ששולבו",
|
|
1348
1348
|
"priorDocHint": "מהסקירה הקודמת. השתמש בו כבסיס: ערוך את התיאור למעלה ושלח מחדש.",
|
|
1349
1349
|
"bootstrapping": "מאתחל…",
|
|
1350
|
-
"spawnFromDocument": "צור ממסמך",
|
|
1351
1350
|
"viewRequirements": "הצג דרישות",
|
|
1352
1351
|
"reRun": "הרץ מחדש",
|
|
1353
1352
|
"run": "הרץ",
|
|
@@ -3609,7 +3608,6 @@
|
|
|
3609
3608
|
"title": "ייבא ממקור מסמכים",
|
|
3610
3609
|
"connectFirst": "חבר תחילה מקור מסמכים.",
|
|
3611
3610
|
"connectSource": "חבר את {source}",
|
|
3612
|
-
"spawningInto": "יוצר בתוך {frame}",
|
|
3613
3611
|
"sourceLabel": "מקור",
|
|
3614
3612
|
"refLabel": "כתובת URL או מזהה של דף",
|
|
3615
3613
|
"importButton": "ייבא",
|
|
@@ -3634,7 +3632,6 @@
|
|
|
3634
3632
|
"title": "תצוגה מקדימה של מבנה",
|
|
3635
3633
|
"plannerLlm": "נוצר ע״י AI",
|
|
3636
3634
|
"plannerHeadings": "מתוך כותרות",
|
|
3637
|
-
"intoFrame": "לתוך {frame}",
|
|
3638
3635
|
"asTopLevel": "כמסגרות חדשות ברמה העליונה",
|
|
3639
3636
|
"buildingPlan": "בונה תוכנית…",
|
|
3640
3637
|
"spawnOntoBoard": "צור על הלוח",
|
package/i18n/locales/it.json
CHANGED
|
@@ -1711,7 +1711,6 @@
|
|
|
1711
1711
|
"lastIncorporatedRequirements": "Ultimi requisiti incorporati",
|
|
1712
1712
|
"priorDocHint": "Dalla revisione precedente. Usalo come base: modifica la descrizione sopra e reinvia.",
|
|
1713
1713
|
"bootstrapping": "Bootstrap in corso…",
|
|
1714
|
-
"spawnFromDocument": "Genera da documento",
|
|
1715
1714
|
"viewRequirements": "Visualizza requisiti",
|
|
1716
1715
|
"reRun": "Riesegui",
|
|
1717
1716
|
"run": "Esegui",
|
|
@@ -3286,7 +3285,6 @@
|
|
|
3286
3285
|
"title": "Importa da una sorgente di documenti",
|
|
3287
3286
|
"connectFirst": "Collega prima una sorgente di documenti.",
|
|
3288
3287
|
"connectSource": "Collega {source}",
|
|
3289
|
-
"spawningInto": "Generazione in {frame}",
|
|
3290
3288
|
"sourceLabel": "Sorgente",
|
|
3291
3289
|
"refLabel": "URL o ID della pagina",
|
|
3292
3290
|
"importButton": "Importa",
|
|
@@ -3311,7 +3309,6 @@
|
|
|
3311
3309
|
"title": "Anteprima struttura",
|
|
3312
3310
|
"plannerLlm": "Generato dall'AI",
|
|
3313
3311
|
"plannerHeadings": "Dai titoli",
|
|
3314
|
-
"intoFrame": "in {frame}",
|
|
3315
3312
|
"asTopLevel": "come nuovi frame di primo livello",
|
|
3316
3313
|
"buildingPlan": "Creazione del piano…",
|
|
3317
3314
|
"spawnOntoBoard": "Genera sulla board",
|
package/i18n/locales/ja.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "最後に取り込まれた要件",
|
|
1348
1348
|
"priorDocHint": "前回のレビューより。これをベースに、上の説明を編集して再送信してください。",
|
|
1349
1349
|
"bootstrapping": "ブートストラップ中…",
|
|
1350
|
-
"spawnFromDocument": "ドキュメントから生成",
|
|
1351
1350
|
"viewRequirements": "要件を表示",
|
|
1352
1351
|
"reRun": "再実行",
|
|
1353
1352
|
"run": "実行",
|
|
@@ -3610,7 +3609,6 @@
|
|
|
3610
3609
|
"title": "ドキュメントソースからインポート",
|
|
3611
3610
|
"connectFirst": "先にドキュメントソースを接続してください。",
|
|
3612
3611
|
"connectSource": "{source} を接続",
|
|
3613
|
-
"spawningInto": "{frame} に生成中",
|
|
3614
3612
|
"sourceLabel": "ソース",
|
|
3615
3613
|
"refLabel": "ページの URL または ID",
|
|
3616
3614
|
"importButton": "インポート",
|
|
@@ -3635,7 +3633,6 @@
|
|
|
3635
3633
|
"title": "構造をプレビュー",
|
|
3636
3634
|
"plannerLlm": "AI 生成",
|
|
3637
3635
|
"plannerHeadings": "見出しから",
|
|
3638
|
-
"intoFrame": "{frame} に",
|
|
3639
3636
|
"asTopLevel": "新しいトップレベルフレームとして",
|
|
3640
3637
|
"buildingPlan": "プランを作成中…",
|
|
3641
3638
|
"spawnOntoBoard": "ボードに生成",
|
package/i18n/locales/pl.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "Ostatnie włączone wymagania",
|
|
1348
1348
|
"priorDocHint": "Z poprzedniej recenzji. Użyj go jako bazy: edytuj opis powyżej i prześlij ponownie.",
|
|
1349
1349
|
"bootstrapping": "Inicjowanie…",
|
|
1350
|
-
"spawnFromDocument": "Utwórz z dokumentu",
|
|
1351
1350
|
"viewRequirements": "Wyświetl wymagania",
|
|
1352
1351
|
"reRun": "Uruchom ponownie",
|
|
1353
1352
|
"run": "Uruchom",
|
|
@@ -3598,7 +3597,6 @@
|
|
|
3598
3597
|
"title": "Importuj ze źródła dokumentów",
|
|
3599
3598
|
"connectFirst": "Najpierw połącz źródło dokumentów.",
|
|
3600
3599
|
"connectSource": "Połącz {source}",
|
|
3601
|
-
"spawningInto": "Tworzenie w {frame}",
|
|
3602
3600
|
"sourceLabel": "Źródło",
|
|
3603
3601
|
"refLabel": "Adres URL lub identyfikator strony",
|
|
3604
3602
|
"importButton": "Importuj",
|
|
@@ -3623,7 +3621,6 @@
|
|
|
3623
3621
|
"title": "Podgląd struktury",
|
|
3624
3622
|
"plannerLlm": "Wygenerowane przez SI",
|
|
3625
3623
|
"plannerHeadings": "Na podstawie nagłówków",
|
|
3626
|
-
"intoFrame": "do {frame}",
|
|
3627
3624
|
"asTopLevel": "jako nowe ramki najwyższego poziomu",
|
|
3628
3625
|
"buildingPlan": "Tworzenie planu…",
|
|
3629
3626
|
"spawnOntoBoard": "Utwórz na tablicy",
|
package/i18n/locales/tr.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "Son dahil edilen gereksinimler",
|
|
1348
1348
|
"priorDocHint": "Önceki incelemeden. Bir temel olarak kullanın: yukarıdaki açıklamayı düzenleyip yeniden gönderin.",
|
|
1349
1349
|
"bootstrapping": "Önyükleniyor…",
|
|
1350
|
-
"spawnFromDocument": "Belgeden oluştur",
|
|
1351
1350
|
"viewRequirements": "Gereksinimleri Görüntüle",
|
|
1352
1351
|
"reRun": "Yeniden çalıştır",
|
|
1353
1352
|
"run": "Çalıştır",
|
|
@@ -3610,7 +3609,6 @@
|
|
|
3610
3609
|
"title": "Bir belge kaynağından içe aktar",
|
|
3611
3610
|
"connectFirst": "Önce bir belge kaynağı bağla.",
|
|
3612
3611
|
"connectSource": "{source} bağla",
|
|
3613
|
-
"spawningInto": "{frame} içine oluşturuluyor",
|
|
3614
3612
|
"sourceLabel": "Kaynak",
|
|
3615
3613
|
"refLabel": "Sayfa URL'si veya ID'si",
|
|
3616
3614
|
"importButton": "İçe aktar",
|
|
@@ -3635,7 +3633,6 @@
|
|
|
3635
3633
|
"title": "Yapıyı önizle",
|
|
3636
3634
|
"plannerLlm": "Yapay zeka tarafından oluşturuldu",
|
|
3637
3635
|
"plannerHeadings": "Başlıklardan",
|
|
3638
|
-
"intoFrame": "{frame} içine",
|
|
3639
3636
|
"asTopLevel": "yeni üst düzey çerçeveler olarak",
|
|
3640
3637
|
"buildingPlan": "Plan oluşturuluyor…",
|
|
3641
3638
|
"spawnOntoBoard": "Panoya oluştur",
|
package/i18n/locales/uk.json
CHANGED
|
@@ -1347,7 +1347,6 @@
|
|
|
1347
1347
|
"lastIncorporatedRequirements": "Останні внесені вимоги",
|
|
1348
1348
|
"priorDocHint": "З попереднього огляду. Використайте його як основу: відредагуйте опис вище та надішліть повторно.",
|
|
1349
1349
|
"bootstrapping": "Ініціалізація…",
|
|
1350
|
-
"spawnFromDocument": "Створити з документа",
|
|
1351
1350
|
"viewRequirements": "Переглянути вимоги",
|
|
1352
1351
|
"reRun": "Перезапустити",
|
|
1353
1352
|
"run": "Запустити",
|
|
@@ -3598,7 +3597,6 @@
|
|
|
3598
3597
|
"title": "Імпорт із джерела документів",
|
|
3599
3598
|
"connectFirst": "Спершу підключіть джерело документів.",
|
|
3600
3599
|
"connectSource": "Підключити {source}",
|
|
3601
|
-
"spawningInto": "Створення в {frame}",
|
|
3602
3600
|
"sourceLabel": "Джерело",
|
|
3603
3601
|
"refLabel": "URL або ідентифікатор сторінки",
|
|
3604
3602
|
"importButton": "Імпортувати",
|
|
@@ -3623,7 +3621,6 @@
|
|
|
3623
3621
|
"title": "Перегляд структури",
|
|
3624
3622
|
"plannerLlm": "Згенеровано ШІ",
|
|
3625
3623
|
"plannerHeadings": "За заголовками",
|
|
3626
|
-
"intoFrame": "до {frame}",
|
|
3627
3624
|
"asTopLevel": "як нові фрейми верхнього рівня",
|
|
3628
3625
|
"buildingPlan": "Створення плану…",
|
|
3629
3626
|
"spawnOntoBoard": "Створити на дошці",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.178.
|
|
3
|
+
"version": "0.178.1",
|
|
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",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"valibot": "^1.4.2",
|
|
41
41
|
"vue": "3.5.40",
|
|
42
42
|
"wretch": "^3.0.9",
|
|
43
|
-
"@cat-factory/contracts": "0.
|
|
43
|
+
"@cat-factory/contracts": "0.188.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@toad-contracts/testing": "0.3.2",
|