@cat-factory/app 0.153.0 → 0.153.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.
@@ -29,8 +29,7 @@ const { t } = useI18n()
29
29
  <pre
30
30
  class="max-h-32 overflow-auto whitespace-pre-wrap rounded p-1.5 pe-9"
31
31
  :class="preClass"
32
- >{{ detail }}</pre
33
- >
32
+ >{{ detail }}</pre>
34
33
  </div>
35
34
  </details>
36
35
  </template>
@@ -68,8 +68,7 @@ const entries = computed<Entry[]>(() =>
68
68
  <CopyButton :text="entry.output.output" class="absolute end-1 top-1 z-10" />
69
69
  <pre
70
70
  class="max-h-40 overflow-auto whitespace-pre-wrap rounded bg-slate-950/80 p-1.5 pe-9 text-[10px] leading-snug text-slate-300"
71
- >{{ entry.output.output }}</pre
72
- >
71
+ >{{ entry.output.output }}</pre>
73
72
  </div>
74
73
  <p v-if="entry.output.truncated" class="mt-1 text-[10px] text-slate-500">
75
74
  {{ t('panels.stepDetail.outputTruncated') }}
@@ -111,8 +111,7 @@ const onProceed = () => flushThen((id) => docInterview.proceedInterview(id))
111
111
  <pre
112
112
  v-if="session.brief"
113
113
  class="whitespace-pre-wrap break-words text-[13px] leading-relaxed text-slate-300"
114
- >{{ session.brief }}</pre
115
- >
114
+ >{{ session.brief }}</pre>
116
115
  <p v-else class="text-[13px] text-slate-400">{{ t('docInterview.converged') }}</p>
117
116
  </div>
118
117
 
@@ -128,8 +128,7 @@ const ENV_STATUS_META = computed<
128
128
  (environment.status === 'failed' || environment.status === 'expired')
129
129
  "
130
130
  class="mt-1 max-h-32 overflow-auto whitespace-pre-wrap rounded border border-rose-900/60 bg-rose-950/40 p-1.5 text-[11px] text-rose-200/90"
131
- >{{ environment.lastError }}</pre
132
- >
131
+ >{{ environment.lastError }}</pre>
133
132
  </div>
134
133
  <p v-else class="text-[12px] text-slate-500">
135
134
  {{ degradedReason ?? t('environments.empty') }}
@@ -94,8 +94,7 @@ const PREFLIGHT_COLOR: Record<'pass' | 'warn' | 'fail', 'success' | 'warning' |
94
94
  <pre
95
95
  v-if="r.status !== 'pass' && r.remediation"
96
96
  class="mt-1 max-h-40 overflow-auto whitespace-pre-wrap rounded border border-amber-900/40 bg-amber-950/20 p-1.5 text-[11px] text-amber-200/90"
97
- >{{ r.remediation }}</pre
98
- >
97
+ >{{ r.remediation }}</pre>
99
98
  </li>
100
99
  </ul>
101
100
 
@@ -601,8 +601,7 @@ async function copyOutput() {
601
601
  </div>
602
602
  <pre
603
603
  class="mb-2 max-h-24 overflow-auto whitespace-pre-wrap rounded bg-slate-950/60 p-2 text-[11px] text-slate-300"
604
- >{{ draftTarget.quotedSource }}</pre
605
- >
604
+ >{{ draftTarget.quotedSource }}</pre>
606
605
  <UTextarea
607
606
  v-model="draftBody"
608
607
  :rows="3"
@@ -646,8 +645,7 @@ async function copyOutput() {
646
645
  </div>
647
646
  <pre
648
647
  class="mb-1 max-h-20 overflow-auto whitespace-pre-wrap rounded bg-slate-950/50 p-1.5 text-[10px] text-slate-400"
649
- >{{ c.quotedSource }}</pre
650
- >
648
+ >{{ c.quotedSource }}</pre>
651
649
  <p class="text-[12px] text-slate-200">{{ c.body }}</p>
652
650
  </div>
653
651
 
@@ -495,8 +495,7 @@ function exportJson() {
495
495
  </div>
496
496
  <pre
497
497
  class="max-h-72 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-300"
498
- >{{ prettyPrompt(c.promptText) }}</pre
499
- >
498
+ >{{ prettyPrompt(c.promptText) }}</pre>
500
499
  </div>
501
500
  <div>
502
501
  <div class="mb-1 text-[11px] uppercase tracking-wide text-slate-500">
@@ -504,8 +503,7 @@ function exportJson() {
504
503
  </div>
505
504
  <pre
506
505
  class="max-h-72 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-300"
507
- >{{ c.responseText || '—' }}</pre
508
- >
506
+ >{{ c.responseText || '—' }}</pre>
509
507
  </div>
510
508
  <div v-if="c.reasoningText">
511
509
  <div class="mb-1 text-[11px] uppercase tracking-wide text-slate-500">
@@ -513,8 +511,7 @@ function exportJson() {
513
511
  </div>
514
512
  <pre
515
513
  class="max-h-72 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-400"
516
- >{{ c.reasoningText }}</pre
517
- >
514
+ >{{ c.reasoningText }}</pre>
518
515
  </div>
519
516
  </div>
520
517
  </li>
@@ -597,8 +594,7 @@ function exportJson() {
597
594
  </div>
598
595
  <pre
599
596
  class="max-h-72 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-300"
600
- >{{ s.systemPrompt || '—' }}</pre
601
- >
597
+ >{{ s.systemPrompt || '—' }}</pre>
602
598
  </div>
603
599
  <div>
604
600
  <div class="mb-1 text-[11px] uppercase tracking-wide text-slate-500">
@@ -606,8 +602,7 @@ function exportJson() {
606
602
  </div>
607
603
  <pre
608
604
  class="max-h-72 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-300"
609
- >{{ s.userPrompt || '—' }}</pre
610
- >
605
+ >{{ s.userPrompt || '—' }}</pre>
611
606
  </div>
612
607
  <div v-if="s.fragments.length">
613
608
  <div class="mb-1 text-[11px] uppercase tracking-wide text-slate-500">
@@ -621,8 +616,7 @@ function exportJson() {
621
616
  <div class="mb-1 text-[11px] text-slate-400">{{ f.id }}</div>
622
617
  <pre
623
618
  class="max-h-48 overflow-auto text-[11px] leading-relaxed text-slate-300"
624
- >{{ f.body }}</pre
625
- >
619
+ >{{ f.body }}</pre>
626
620
  </div>
627
621
  </div>
628
622
  <div v-if="s.contextFiles.length">
@@ -640,8 +634,7 @@ function exportJson() {
640
634
  </div>
641
635
  <pre
642
636
  class="max-h-72 overflow-auto text-[11px] leading-relaxed text-slate-300"
643
- >{{ file.content }}</pre
644
- >
637
+ >{{ file.content }}</pre>
645
638
  </div>
646
639
  </div>
647
640
  <div>
@@ -650,8 +643,7 @@ function exportJson() {
650
643
  </div>
651
644
  <pre
652
645
  class="max-h-48 overflow-auto rounded-lg bg-slate-950/70 p-3 text-[11px] leading-relaxed text-slate-400"
653
- >{{ prettyExtras(s.extras) }}</pre
654
- >
646
+ >{{ prettyExtras(s.extras) }}</pre>
655
647
  </div>
656
648
  </div>
657
649
  </li>
@@ -156,8 +156,7 @@ function when(epochMs: number): string {
156
156
  <pre
157
157
  v-if="entry.error"
158
158
  class="mt-1 max-h-28 overflow-auto whitespace-pre-wrap rounded border border-rose-900/50 bg-rose-950/30 p-1.5 text-[11px] text-rose-200/90"
159
- >{{ entry.error }}</pre
160
- >
159
+ >{{ entry.error }}</pre>
161
160
  </li>
162
161
  </ul>
163
162
  </div>
@@ -147,8 +147,7 @@ const STATUS_META = computed<
147
147
  <CopyButton :text="ralph.lastValidationTail" class="absolute end-1 top-1" />
148
148
  <pre
149
149
  class="whitespace-pre-wrap pe-8 font-mono text-[11px] leading-relaxed text-slate-400"
150
- >{{ ralph.lastValidationTail }}</pre
151
- >
150
+ >{{ ralph.lastValidationTail }}</pre>
152
151
  </div>
153
152
  </template>
154
153
 
@@ -462,8 +462,7 @@ async function archive(prompt: SandboxPromptVersion) {
462
462
  <pre
463
463
  v-if="selectedRun.outputText"
464
464
  class="max-h-48 overflow-auto whitespace-pre-wrap rounded bg-slate-950/60 p-2 text-[11px] text-slate-300"
465
- >{{ selectedRun.outputText }}</pre
466
- >
465
+ >{{ selectedRun.outputText }}</pre>
467
466
  <div v-if="gradeByRun.get(selectedRun.id)" class="mt-2 space-y-0.5">
468
467
  <p
469
468
  v-for="d in gradeByRun.get(selectedRun.id)!.scores"
@@ -419,8 +419,7 @@ const GROUP_STATUS_META: Record<ScenarioGroup['status'], { icon: string; text: s
419
419
  v-if="showInfraSetupLogs"
420
420
  data-testid="tester-infra-setup-logs"
421
421
  class="mt-2 max-h-64 overflow-auto rounded bg-slate-950/70 p-2 font-mono text-[11px] leading-relaxed text-slate-300"
422
- >{{ infraSetup.logs }}</pre
423
- >
422
+ >{{ infraSetup.logs }}</pre>
424
423
  </template>
425
424
  </div>
426
425
 
@@ -35,15 +35,9 @@ export default defineNuxtPlugin(() => {
35
35
  version: '1.0.0',
36
36
  slots: {
37
37
  resultViews: [{ id: 'acme:security-report', component: AcmeSecurityReport }],
38
- agentKinds: [
39
- /* palette entries — see "Agent kinds" */
40
- ],
41
- nav: [
42
- /* sidebar / command-palette destinations — see "Navigation" */
43
- ],
44
- inspectorPanels: [
45
- /* per-block detail panels — see "Inspector panels" */
46
- ],
38
+ agentKinds: [/* palette entries — see "Agent kinds" */],
39
+ nav: [/* sidebar / command-palette destinations — see "Navigation" */],
40
+ inspectorPanels: [/* per-block detail panels — see "Inspector panels" */],
47
41
  },
48
42
  }),
49
43
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.153.0",
3
+ "version": "0.153.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",
@@ -21,11 +21,11 @@
21
21
  "@modular-frontend/core": "^0.6.0",
22
22
  "@modular-vue/core": "^1.5.0",
23
23
  "@modular-vue/journeys": "^1.4.0",
24
- "@modular-vue/nuxt": "^0.4.0",
24
+ "@modular-vue/nuxt": "^0.4.1",
25
25
  "@modular-vue/runtime": "^1.4.1",
26
- "@modular-vue/vue": "^1.4.0",
26
+ "@modular-vue/vue": "^1.4.1",
27
27
  "@nuxt/ui": "^4.10.0",
28
- "@nuxtjs/i18n": "^10.4.1",
28
+ "@nuxtjs/i18n": "^10.5.0",
29
29
  "@pinia/nuxt": "^1.0.1",
30
30
  "@toad-contracts/core": "0.4.0",
31
31
  "@toad-contracts/frontend-http-client": "0.3.2",
@@ -45,13 +45,13 @@
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",
47
47
  "@types/markdown-it": "^14.1.2",
48
- "happy-dom": "^20.10.6",
48
+ "happy-dom": "^20.11.1",
49
49
  "msw": "^2.15.0",
50
50
  "nuxt": "^4.5.0",
51
51
  "typescript": "^6.0.3",
52
52
  "vitest": "^4.1.10",
53
53
  "vue-i18n-extract": "^2.0.7",
54
- "vue-tsc": "^3.3.7"
54
+ "vue-tsc": "^3.3.8"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "nuxt": "^4.5.0"