@cat-factory/app 0.7.3 → 0.7.4
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.
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { AgentState } from '~/types/domain'
|
|
3
3
|
import { agentKindMeta } from '~/utils/catalog'
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
subtaskIconClass,
|
|
6
|
+
isFailedStep,
|
|
7
|
+
FAILED_STEP_META,
|
|
8
|
+
gateCompanionFor,
|
|
9
|
+
COMPANION_STATE_META,
|
|
10
|
+
} from '~/utils/pipelineRender'
|
|
5
11
|
import { lodAtLeast } from '~/composables/useSemanticZoom'
|
|
6
12
|
|
|
7
13
|
// Spatial drill-down inside a task card: at the `steps` zoom band the task's
|
|
@@ -24,6 +30,13 @@ const steps = computed(() => instance.value?.steps ?? [])
|
|
|
24
30
|
// `working`) must stop spinning, matching the failure card the task card shows.
|
|
25
31
|
const runFailed = computed(() => instance.value?.status === 'failed')
|
|
26
32
|
|
|
33
|
+
// The conditionally-run companion (if any) each step drives — the polling gates'
|
|
34
|
+
// helper (ci → ci-fixer, conflicts → conflict-resolver) or the Tester's fixer — with
|
|
35
|
+
// its possible/running/completed/skipped state. The board drill-down shows it the same
|
|
36
|
+
// way the inspector + focus pipeline do, so a gate working its helper reads as active
|
|
37
|
+
// (spinning "Running") rather than a frozen subtask list.
|
|
38
|
+
const companionByStep = computed(() => steps.value.map((s) => gateCompanionFor(s, runFailed.value)))
|
|
39
|
+
|
|
27
40
|
// Expand the pipeline list only when zoomed in far enough AND the board driver
|
|
28
41
|
// permits this card — on-screen, and the centre-most of any cards that would
|
|
29
42
|
// otherwise overlap (see useTaskExpansion) — so deep-zoom expansions don't pile up.
|
|
@@ -132,6 +145,29 @@ const ITEM_ICON: Record<string, string> = {
|
|
|
132
145
|
/>
|
|
133
146
|
</div>
|
|
134
147
|
|
|
148
|
+
<!-- conditionally-run companion (the gate's ci-fixer / conflict-resolver, or the
|
|
149
|
+
Tester's fixer): a compact running/ran/skipped line, so a gate that's working
|
|
150
|
+
its helper reads as actively fixing rather than a frozen subtask list. -->
|
|
151
|
+
<div v-if="companionByStep[i]" class="mt-1 flex items-center gap-1 text-[9px]">
|
|
152
|
+
<UIcon
|
|
153
|
+
:name="agentKindMeta(companionByStep[i]!.kind).icon"
|
|
154
|
+
class="h-2.5 w-2.5 shrink-0"
|
|
155
|
+
:class="[
|
|
156
|
+
COMPANION_STATE_META[companionByStep[i]!.state].text,
|
|
157
|
+
companionByStep[i]!.state === 'running' ? 'animate-spin' : '',
|
|
158
|
+
]"
|
|
159
|
+
/>
|
|
160
|
+
<span class="truncate text-slate-400">
|
|
161
|
+
{{ agentKindMeta(companionByStep[i]!.kind).label }}
|
|
162
|
+
</span>
|
|
163
|
+
<span
|
|
164
|
+
class="ml-auto shrink-0"
|
|
165
|
+
:class="COMPANION_STATE_META[companionByStep[i]!.state].text"
|
|
166
|
+
>
|
|
167
|
+
{{ COMPANION_STATE_META[companionByStep[i]!.state].label }}
|
|
168
|
+
</span>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
135
171
|
<!-- deepest band: the actual todo list (done / in-progress / pending) -->
|
|
136
172
|
<ul v-if="showItems && s.subtasks?.items?.length" class="mt-1 space-y-0.5">
|
|
137
173
|
<li
|