Ship gated eye polish, fabric levels, and collection UI refresh.

Topology MCP adds pull/compact/bundle/suggest-hubs with a no-template skill path; API gains fabric level and NE collection policy; web list pages get paging and denser collect/network workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-12 16:13:05 +08:00
parent b1aee86701
commit b81e5869a6
91 changed files with 10395 additions and 1513 deletions

View file

@ -320,6 +320,7 @@ export type CollectionJobItem = {
id: string;
title: string;
commands: string;
trigger_mode?: string;
status: string;
ne_count: number;
success_count: number;
@ -336,6 +337,7 @@ export type CollectionJobSummary = {
id: string;
title: string;
status: string;
trigger_mode?: string;
ne_count: number;
success_count: number;
fail_count: number;
@ -345,11 +347,30 @@ export type CollectionJobSummary = {
last_run_at?: string | null;
};
export type CollectionTargetRef = {
source: "managed" | "ume" | string;
id: string;
};
export type CollectionPolicy = {
enabled: boolean;
interval_days: number;
interval_hours: number;
scope_mode: "all" | "selected" | string;
selected_targets: CollectionTargetRef[];
title: string;
commands: string;
history_keep: number;
updated_at?: string | null;
};
export type CollectionDashboard = {
job_count: number;
active_count: number;
running_job: CollectionJobSummary | null;
last_job: CollectionJobSummary | null;
next_due_at?: string | null;
policy?: CollectionPolicy | null;
};
export type CollectionRunItem = {
@ -480,6 +501,8 @@ export type FabricNodeSearchHit = {
vendor: string;
managed_ne_id?: string;
ume_ne_id?: string;
/** Layout rank major.minor; null/undefined = unclassified */
level?: number | null;
role?: string;
region_folder_id?: string | null;
world_x?: number | null;
@ -498,22 +521,6 @@ export type FabricNodeSearchHit = {
}>;
};
export type SliceGenerateResult = {
folder_id: string;
template: string;
dry_run: boolean;
map_count: number;
overlap_node_count: number;
created_view_ids: string[];
maps: Array<{
name: string;
role: string;
node_count: number;
seed_fabric_node_ids: string[];
member_fabric_node_ids: string[];
}>;
};
export type TopologyViewNodeItem = {
fabric_node_id: string;
managed_ne_id: string;