No content records exist yet.
+ ) : (
+ snapshot.contents.map((content) => {
+ const approval = snapshot.approvals.find(
+ (item) => item.contentId === content.id,
+ );
+ return (
+
+
+
+
{content.title}
+
{content.id}
+
+
+
+
+ void command(
+ "run_review",
+ { contentId: content.id },
+ "Compliance review completed.",
+ )
+ }
+ disabled={working !== null}
+ className="rounded-lg border border-white/10 px-3 py-2 text-xs font-semibold text-white hover:bg-white/[0.05] disabled:opacity-50"
+ >
+ Run review
+
+
+ void command(
+ "request_approval",
+ { contentId: content.id, requiredRole: "approver" },
+ "Human approval requested for the exact content version.",
+ )
+ }
+ disabled={working !== null}
+ className="rounded-lg border border-white/10 px-3 py-2 text-xs font-semibold text-white hover:bg-white/[0.05] disabled:opacity-50"
+ >
+ Request approval
+
+
+ void command(
+ "publish_preflight",
+ {
+ contentId: content.id,
+ connectorId: publishingConnector?.id,
+ },
+ "Publishing preflight completed. No external action occurred.",
+ )
+ }
+ disabled={working !== null}
+ className="rounded-lg border border-violet-500/30 bg-violet-500/10 px-3 py-2 text-xs font-semibold text-violet-200 hover:bg-violet-500/15 disabled:opacity-50"
+ >
+ Preflight
+
+
+
+ {approval?.state === "APPROVAL_REQUIRED" ? (
+
+ Approval {approval.id}
+
+ void command(
+ "decide_approval",
+ { approvalId: approval.id, decision: "approve", reason: "Approved in the controlled GEM Command Center." },
+ "Exact-version approval recorded.",
+ )
+ }
+ disabled={working !== null}
+ className="inline-flex items-center gap-1.5 rounded-lg bg-emerald-500 px-3 py-2 text-xs font-bold text-white disabled:opacity-50"
+ >
+ Approve
+
+
+ void command(
+ "decide_approval",
+ { approvalId: approval.id, decision: "reject", reason: "Rejected in the controlled GEM Command Center." },
+ "Approval rejection recorded.",
+ )
+ }
+ disabled={working !== null}
+ className="rounded-lg border border-rose-500/30 bg-rose-500/10 px-3 py-2 text-xs font-semibold text-rose-200 disabled:opacity-50"
+ >
+ Reject
+
+
+ ) : null}
+