mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-14 01:50:39 +09:00
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:
parent
685c7549e1
commit
51ca713181
18 changed files with 1166 additions and 96 deletions
|
|
@ -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(),
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue