summaryrefslogtreecommitdiff
path: root/makima/frontend/src/components/directives/DirectiveContractsTab.tsx
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-08 21:07:30 +0000
committersoryu <soryu@soryu.co>2026-02-08 21:07:30 +0000
commit3662b334dfd68cfdf00ed44ae88927c2e1b2aabe (patch)
treebff5ae1e189fb8bcc0211d97dab3b9acb4257038 /makima/frontend/src/components/directives/DirectiveContractsTab.tsx
parent87fa8c4af66745bd30bc84b6c5ef657dd4dec002 (diff)
downloadsoryu-3662b334dfd68cfdf00ed44ae88927c2e1b2aabe.tar.gz
soryu-3662b334dfd68cfdf00ed44ae88927c2e1b2aabe.zip
Remove directive mechanism
Diffstat (limited to 'makima/frontend/src/components/directives/DirectiveContractsTab.tsx')
-rw-r--r--makima/frontend/src/components/directives/DirectiveContractsTab.tsx148
1 files changed, 0 insertions, 148 deletions
diff --git a/makima/frontend/src/components/directives/DirectiveContractsTab.tsx b/makima/frontend/src/components/directives/DirectiveContractsTab.tsx
deleted file mode 100644
index 28da117..0000000
--- a/makima/frontend/src/components/directives/DirectiveContractsTab.tsx
+++ /dev/null
@@ -1,148 +0,0 @@
-import { useNavigate } from "react-router";
-import type {
- DirectiveWithChains,
- StepContractSummary,
- ContractPhase,
-} from "../../lib/api";
-import { PhaseProgressBarCompact } from "../contracts/PhaseProgressBar";
-
-interface DirectiveContractsTabProps {
- directive: DirectiveWithChains;
-}
-
-const statusColors: Record<string, string> = {
- active: "text-green-400",
- completed: "text-blue-400",
- archived: "text-[#555]",
-};
-
-function ContractCard({
- summary,
- label,
-}: {
- summary: StepContractSummary;
- label: string;
-}) {
- const navigate = useNavigate();
-
- const progressPct =
- summary.taskCount > 0
- ? Math.round((summary.tasksDone / summary.taskCount) * 100)
- : 0;
-
- return (
- <div
- className="border border-dashed border-[rgba(117,170,252,0.25)] bg-[rgba(117,170,252,0.03)] p-3 cursor-pointer hover:bg-[rgba(117,170,252,0.06)] transition-colors"
- onClick={() => navigate(`/contracts/${summary.id}`)}
- >
- <div className="flex items-center justify-between mb-1.5">
- <div className="flex items-center gap-2 min-w-0">
- <span className="font-mono text-[11px] text-[#dbe7ff] truncate">
- {summary.name}
- </span>
- <span className="font-mono text-[9px] text-[#7788aa] uppercase shrink-0">
- {summary.contractType}
- </span>
- </div>
- <div className="flex items-center gap-2 shrink-0">
- <span
- className={`font-mono text-[9px] uppercase ${statusColors[summary.status] || "text-[#888]"}`}
- >
- {summary.status}
- </span>
- <span className="font-mono text-[9px] text-[#75aafc]">&rarr;</span>
- </div>
- </div>
-
- <div className="flex items-center gap-2 mb-1.5">
- <span className="font-mono text-[9px] text-[#7788aa] uppercase shrink-0">
- {label}
- </span>
- <PhaseProgressBarCompact
- currentPhase={summary.phase as ContractPhase}
- />
- </div>
-
- {/* Task progress bar */}
- <div className="flex items-center gap-2">
- <div className="flex-1 h-1 bg-[rgba(117,170,252,0.1)] rounded-full overflow-hidden">
- <div
- className="h-full bg-[#3f6fb3] rounded-full transition-all"
- style={{ width: `${progressPct}%` }}
- />
- </div>
- <span className="font-mono text-[9px] text-[#7788aa] shrink-0">
- {summary.tasksDone}/{summary.taskCount} tasks
- </span>
- </div>
- </div>
- );
-}
-
-export function DirectiveContractsTab({
- directive,
-}: DirectiveContractsTabProps) {
- // Collect all contract summaries
- const contracts: { summary: StepContractSummary; label: string }[] = [];
-
- if (directive.orchestratorContractSummary) {
- contracts.push({
- summary: directive.orchestratorContractSummary,
- label: "Planning",
- });
- }
-
- for (const chain of directive.chains) {
- for (const step of chain.steps) {
- if (step.contractSummary) {
- contracts.push({
- summary: step.contractSummary,
- label: step.name,
- });
- }
- // Show monitoring/evaluation contracts
- if (step.monitoringContractId) {
- contracts.push({
- summary: {
- id: step.monitoringContractId,
- name: `${step.name} - Evaluation`,
- contractType: "monitoring",
- status: step.status === "evaluating" ? "active" : "completed",
- phase: "plan",
- taskCount: 1,
- tasksDone: step.status === "evaluating" ? 0 : 1,
- tasksRunning: step.status === "evaluating" ? 1 : 0,
- tasksFailed: 0,
- },
- label: `${step.name} eval`,
- });
- }
- }
- }
-
- if (contracts.length === 0) {
- return (
- <div className="text-center py-8">
- <p className="font-mono text-xs text-[#7788aa]">
- {directive.status === "draft"
- ? "No contracts yet. Start the directive to begin planning."
- : directive.status === "planning"
- ? "Planning in progress... contracts will appear when steps are created."
- : "No contracts associated with this directive."}
- </p>
- </div>
- );
- }
-
- return (
- <div className="space-y-2">
- {contracts.map((c) => (
- <ContractCard
- key={c.summary.id}
- summary={c.summary}
- label={c.label}
- />
- ))}
- </div>
- );
-}