UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

23 lines (22 loc) • 1.31 kB
import { y as uniqueStrings } from "./string-normalization-CECOqf64.mjs"; import { d as markMigrationItemSkipped, y as summarizeMigrationItems } from "./migration-BeM6IrM8.mjs"; //#region src/commands/migrate/item-selection.ts /** Exact migration item selection for embedded and non-interactive callers. */ const MIGRATION_NOT_SELECTED_REASON = "not selected for migration"; /** Applies an exact item-id selection to planned/conflicting migration items. */ function applyMigrationItemSelection(plan, selectedItemIds) { if (selectedItemIds === void 0) return plan; const selectable = plan.items.filter((item) => item.status === "planned" || item.status === "conflict"); const selectableIds = new Set(selectable.map((item) => item.id)); const unknown = uniqueStrings(selectedItemIds).filter((id) => !selectableIds.has(id)); if (unknown.length > 0) throw new Error(`Unknown or unavailable migration item ids: ${unknown.map((id) => `"${id}"`).join(", ")}.`); const selected = new Set(selectedItemIds); const items = plan.items.map((item) => selectableIds.has(item.id) && !selected.has(item.id) ? markMigrationItemSkipped(item, MIGRATION_NOT_SELECTED_REASON) : item); return { ...plan, items, summary: summarizeMigrationItems(items) }; } //#endregion export { applyMigrationItemSelection as t };