feat: restore dispatch confirmation flows

This commit is contained in:
kris
2026-03-30 17:11:07 +08:00
parent 40861c63da
commit 5eb1246f02
15 changed files with 823 additions and 9 deletions

View File

@@ -0,0 +1,35 @@
export type DispatchPlanUiTarget = {
projectId: string;
threadDisplayName: string;
};
export type DispatchPlanUiPayload = {
planId: string;
status?: string;
summary?: string;
targets?: DispatchPlanUiTarget[];
};
export function latestPendingDispatchPlan(plans: DispatchPlanUiPayload[] | null | undefined) {
return (plans ?? []).find((plan) => plan.status === "pending_user_confirmation") ?? null;
}
export function summarizeDispatchPlan(plan: DispatchPlanUiPayload | null | undefined) {
if (!plan) {
return "主 Agent 暂未生成推荐线程。";
}
const summary = plan.summary?.trim() || "主 Agent 已生成推荐线程。";
const titles = (plan.targets ?? [])
.map((target) => target.threadDisplayName?.trim() || "")
.filter(Boolean);
if (!titles.length) {
return summary;
}
return `${summary}\n推荐线程${titles.join("、")}`;
}
export function extractApprovedTargetProjectIds(plan: DispatchPlanUiPayload | null | undefined) {
return (plan?.targets ?? [])
.map((target) => target.projectId?.trim() || "")
.filter(Boolean);
}