@cat-factory/app 0.256.2 → 0.257.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/app/components/binaryCandidates/BinaryCandidatesWindow.vue +284 -0
- package/app/components/binaryOutput/BinaryOutputReport.vue +33 -0
- package/app/components/board/nodes/BlockNode.vue +3 -7
- package/app/components/board/nodes/InitiativeCard.vue +1 -1
- package/app/components/focus/BlockFocusView.vue +1 -1
- package/app/components/forkDecision/ForkDecisionWindow.vue +3 -1
- package/app/components/outcome/OutcomeSummaryWindow.vue +1 -2
- package/app/components/panels/AgentStepDetail.vue +42 -20
- package/app/components/panels/InspectorPanel.vue +6 -11
- package/app/components/panels/ResultWindowShell.logic.spec.ts +4 -0
- package/app/components/panels/inspector/TaskExecution.vue +34 -34
- package/app/components/pipeline/BinaryOutputStepPicker.logic.spec.ts +90 -1
- package/app/components/pipeline/BinaryOutputStepPicker.logic.ts +92 -1
- package/app/components/pipeline/BinaryOutputStepPicker.vue +354 -1
- package/app/components/pipeline/PipelineProgress.vue +48 -10
- package/app/components/settings/KubernetesEngineForm.vue +98 -46
- package/app/components/spec/ServiceSpecWindow.vue +5 -4
- package/app/composables/api/binaryCandidates.ts +36 -0
- package/app/composables/useApi.ts +2 -0
- package/app/docs/architecture.md +1 -1
- package/app/modular/panels/inspector.ts +3 -3
- package/app/modular/result-views.ts +4 -0
- package/app/stores/binaryCandidates.ts +89 -0
- package/app/stores/board/placement.ts +32 -8
- package/app/stores/ui/resultViews.ts +8 -6
- package/app/stores/ui/runStepOpeners.ts +23 -1
- package/app/types/execution.ts +5 -0
- package/app/utils/badge.ts +14 -0
- package/app/utils/binaryCandidates.spec.ts +110 -0
- package/app/utils/binaryCandidates.ts +126 -0
- package/app/utils/binaryOutput.ts +48 -2
- package/app/utils/catalog.ts +2 -1
- package/app/utils/initiative.ts +1 -4
- package/app/utils/pipelineRender.spec.ts +46 -1
- package/app/utils/pipelineRender.ts +70 -2
- package/i18n/locales/de.json +78 -2
- package/i18n/locales/en.json +78 -2
- package/i18n/locales/es.json +78 -2
- package/i18n/locales/fr.json +78 -2
- package/i18n/locales/he.json +78 -2
- package/i18n/locales/it.json +78 -2
- package/i18n/locales/ja.json +78 -2
- package/i18n/locales/pl.json +78 -2
- package/i18n/locales/tr.json +78 -2
- package/i18n/locales/uk.json +78 -2
- package/i18n/plural-forms.spec.ts +15 -0
- package/package.json +2 -2
|
@@ -43,9 +43,24 @@ const catalogs = new Map(
|
|
|
43
43
|
[SOURCE_LOCALE, ...LOCALES].map((locale) => [locale, loadCatalog(locale)] as const),
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* A pipe written as vue-i18n LITERAL INTERPOLATION (`{'|'}`) is a character the message renders,
|
|
48
|
+
* not a form separator: the compiler parses such a message as a plain Message rather than a
|
|
49
|
+
* Plural. So it is stripped before the split, or a message that legitimately shows a pipe (the
|
|
50
|
+
* reference-image field describes a `role|location|service` line) is measured as forms it does
|
|
51
|
+
* not have.
|
|
52
|
+
*
|
|
53
|
+
* Getting this wrong is not merely a false positive. Counting the escaped pipes made a two-pipe
|
|
54
|
+
* message read as three forms, which is a LEGAL count for every locale here, so the sibling key
|
|
55
|
+
* that happened to carry one pipe failed while the more visible one passed silently. A guard that
|
|
56
|
+
* mis-measures does not fail honestly; it fails somewhere else.
|
|
57
|
+
*/
|
|
58
|
+
const LITERAL_INTERPOLATION = /\{\s*'(?:[^'\\]|\\.)*'\s*\}/g
|
|
59
|
+
|
|
46
60
|
/** Pipe-separated plural entries only; a message with no pipe never reaches a selector. */
|
|
47
61
|
function pluralEntries(locale: string): [string, string[]][] {
|
|
48
62
|
return [...catalogs.get(locale)!]
|
|
63
|
+
.map(([key, value]) => [key, value.replace(LITERAL_INTERPOLATION, '')] as const)
|
|
49
64
|
.filter(([, value]) => value.includes('|'))
|
|
50
65
|
.map(([key, value]) => [key, value.split('|')])
|
|
51
66
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.257.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",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"valibot": "^1.4.2",
|
|
41
41
|
"vue": "3.5.41",
|
|
42
42
|
"wretch": "^3.0.9",
|
|
43
|
-
"@cat-factory/contracts": "0.
|
|
43
|
+
"@cat-factory/contracts": "0.285.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@toad-contracts/testing": "0.3.2",
|