zugzbot 1.0.26 → 1.0.28
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/.opencode/plugins/plugin_tui.tsx +41 -29
- package/package.json +1 -1
|
@@ -137,6 +137,7 @@ const PluginTuiSidebar: TuiPlugin = async (api) => {
|
|
|
137
137
|
|
|
138
138
|
const getContractName = (filePath: string): string => {
|
|
139
139
|
if (!filePath) return "Ninguno";
|
|
140
|
+
if (filePath.includes("fast-track")) return "Modo Libre (Fast-Track)";
|
|
140
141
|
const parts = filePath.split("/");
|
|
141
142
|
const folder = parts[parts.length - 2] || "";
|
|
142
143
|
const match = folder.match(/^\d{4}_\d+_(.+)$/);
|
|
@@ -553,35 +554,46 @@ const PluginTuiSidebar: TuiPlugin = async (api) => {
|
|
|
553
554
|
})()}
|
|
554
555
|
|
|
555
556
|
{/* Vertical roadmap list */}
|
|
556
|
-
|
|
557
|
-
{
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
557
|
+
{sddState()?.activeContract?.includes("fast-track") ? (
|
|
558
|
+
<box gap={0} paddingTop={0}>
|
|
559
|
+
<text fg="#5AC8FA" paddingTop={0}>
|
|
560
|
+
{"• Modo Libre de Edición"}
|
|
561
|
+
</text>
|
|
562
|
+
<text fg="#FF7300" paddingTop={0}>
|
|
563
|
+
{`• Agente activo: ${SUBAGENT_FOR_PHASE[sddState()?.phase || "F2_IMPLEMENTATION"] || "@coder"}`}
|
|
564
|
+
</text>
|
|
565
|
+
</box>
|
|
566
|
+
) : (
|
|
567
|
+
<box gap={0} paddingTop={0}>
|
|
568
|
+
{PHASE_ORDER.map((phase) => {
|
|
569
|
+
const current = sddState()?.phase ?? "F0_DETECT"
|
|
570
|
+
const curIdx = PHASE_ORDER.indexOf(current)
|
|
571
|
+
const myIdx = PHASE_ORDER.indexOf(phase)
|
|
572
|
+
|
|
573
|
+
const isActive = current === phase
|
|
574
|
+
const isCompleted = curIdx > myIdx
|
|
575
|
+
|
|
576
|
+
let prefix = "[ ]"
|
|
577
|
+
let color = api.theme.current.textMuted
|
|
578
|
+
if (isCompleted) {
|
|
579
|
+
prefix = "[✓]"
|
|
580
|
+
color = api.theme.current.success
|
|
581
|
+
} else if (isActive) {
|
|
582
|
+
prefix = "[O]"
|
|
583
|
+
color = "#FF7300"
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
const agentSuffix = isActive ? ` (${SUBAGENT_FOR_PHASE[phase]})` : ""
|
|
587
|
+
const lineText = `${prefix} ${PHASE_LABELS[phase]}${agentSuffix}`
|
|
588
|
+
|
|
589
|
+
return (
|
|
590
|
+
<text fg={color} paddingTop={0}>
|
|
591
|
+
{truncate(lineText, 34)}
|
|
592
|
+
</text>
|
|
593
|
+
)
|
|
594
|
+
})}
|
|
595
|
+
</box>
|
|
596
|
+
)}
|
|
585
597
|
|
|
586
598
|
{/* Git branch info */}
|
|
587
599
|
{(sddState()?.git?.branch && sddState()?.git?.branch !== "—") ? (
|