Add CEO-safe company portability flows
Expose CEO-scoped import/export preview and apply routes, keep safe imports non-destructive, add export preview-first UI behavior, and document the new portability workflows. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -238,6 +238,8 @@ export type {
|
||||
CompanyPortabilityIssueManifestEntry,
|
||||
CompanyPortabilityManifest,
|
||||
CompanyPortabilityExportResult,
|
||||
CompanyPortabilityExportPreviewFile,
|
||||
CompanyPortabilityExportPreviewResult,
|
||||
CompanyPortabilitySource,
|
||||
CompanyPortabilityImportTarget,
|
||||
CompanyPortabilityAgentSelection,
|
||||
|
||||
@@ -115,6 +115,27 @@ export interface CompanyPortabilityExportResult {
|
||||
paperclipExtensionPath: string;
|
||||
}
|
||||
|
||||
export interface CompanyPortabilityExportPreviewFile {
|
||||
path: string;
|
||||
kind: "company" | "agent" | "skill" | "project" | "issue" | "extension" | "readme" | "other";
|
||||
}
|
||||
|
||||
export interface CompanyPortabilityExportPreviewResult {
|
||||
rootPath: string;
|
||||
manifest: CompanyPortabilityManifest;
|
||||
files: Record<string, string>;
|
||||
fileInventory: CompanyPortabilityExportPreviewFile[];
|
||||
counts: {
|
||||
files: number;
|
||||
agents: number;
|
||||
skills: number;
|
||||
projects: number;
|
||||
issues: number;
|
||||
};
|
||||
warnings: string[];
|
||||
paperclipExtensionPath: string;
|
||||
}
|
||||
|
||||
export type CompanyPortabilitySource =
|
||||
| {
|
||||
type: "inline";
|
||||
@@ -220,8 +241,11 @@ export interface CompanyPortabilityImportResult {
|
||||
|
||||
export interface CompanyPortabilityExportRequest {
|
||||
include?: Partial<CompanyPortabilityInclude>;
|
||||
agents?: string[];
|
||||
skills?: string[];
|
||||
projects?: string[];
|
||||
issues?: string[];
|
||||
projectIssues?: string[];
|
||||
selectedFiles?: string[];
|
||||
expandReferencedSkills?: boolean;
|
||||
}
|
||||
|
||||
@@ -136,6 +136,8 @@ export type {
|
||||
CompanyPortabilityIssueManifestEntry,
|
||||
CompanyPortabilityManifest,
|
||||
CompanyPortabilityExportResult,
|
||||
CompanyPortabilityExportPreviewFile,
|
||||
CompanyPortabilityExportPreviewResult,
|
||||
CompanyPortabilitySource,
|
||||
CompanyPortabilityImportTarget,
|
||||
CompanyPortabilityAgentSelection,
|
||||
|
||||
@@ -150,9 +150,12 @@ export const portabilityCollisionStrategySchema = z.enum(["rename", "skip", "rep
|
||||
|
||||
export const companyPortabilityExportSchema = z.object({
|
||||
include: portabilityIncludeSchema.optional(),
|
||||
agents: z.array(z.string().min(1)).optional(),
|
||||
skills: z.array(z.string().min(1)).optional(),
|
||||
projects: z.array(z.string().min(1)).optional(),
|
||||
issues: z.array(z.string().min(1)).optional(),
|
||||
projectIssues: z.array(z.string().min(1)).optional(),
|
||||
selectedFiles: z.array(z.string().min(1)).optional(),
|
||||
expandReferencedSkills: z.boolean().optional(),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user