Refine portability export behavior and skill plans

This commit is contained in:
Dotta 2026-03-14 18:59:26 -05:00
parent 7e43020a28
commit b2c0f3f9a5
13 changed files with 1126 additions and 12 deletions

View file

@ -133,6 +133,7 @@ export type {
CompanyPortabilityEnvInput,
CompanyPortabilityCompanyManifestEntry,
CompanyPortabilityAgentManifestEntry,
CompanyPortabilitySkillManifestEntry,
CompanyPortabilityProjectManifestEntry,
CompanyPortabilityIssueManifestEntry,
CompanyPortabilityManifest,

View file

@ -59,6 +59,7 @@ export interface CompanyPortabilityAgentManifestEntry {
slug: string;
name: string;
path: string;
skills: string[];
role: string;
title: string | null;
icon: string | null;
@ -72,6 +73,23 @@ export interface CompanyPortabilityAgentManifestEntry {
metadata: Record<string, unknown> | null;
}
export interface CompanyPortabilitySkillManifestEntry {
slug: string;
name: string;
path: string;
description: string | null;
sourceType: string;
sourceLocator: string | null;
sourceRef: string | null;
trustLevel: string | null;
compatibility: string | null;
metadata: Record<string, unknown> | null;
fileInventory: Array<{
path: string;
kind: string;
}>;
}
export interface CompanyPortabilityManifest {
schemaVersion: number;
generatedAt: string;
@ -82,6 +100,7 @@ export interface CompanyPortabilityManifest {
includes: CompanyPortabilityInclude;
company: CompanyPortabilityCompanyManifestEntry | null;
agents: CompanyPortabilityAgentManifestEntry[];
skills: CompanyPortabilitySkillManifestEntry[];
projects: CompanyPortabilityProjectManifestEntry[];
issues: CompanyPortabilityIssueManifestEntry[];
envInputs: CompanyPortabilityEnvInput[];
@ -196,4 +215,5 @@ export interface CompanyPortabilityExportRequest {
projects?: string[];
issues?: string[];
projectIssues?: string[];
expandReferencedSkills?: boolean;
}

View file

@ -90,6 +90,7 @@ export type {
CompanyPortabilityEnvInput,
CompanyPortabilityCompanyManifestEntry,
CompanyPortabilityAgentManifestEntry,
CompanyPortabilitySkillManifestEntry,
CompanyPortabilityProjectManifestEntry,
CompanyPortabilityIssueManifestEntry,
CompanyPortabilityManifest,

View file

@ -31,6 +31,7 @@ export const portabilityAgentManifestEntrySchema = z.object({
slug: z.string().min(1),
name: z.string().min(1),
path: z.string().min(1),
skills: z.array(z.string().min(1)).default([]),
role: z.string().min(1),
title: z.string().nullable(),
icon: z.string().nullable(),
@ -44,6 +45,23 @@ export const portabilityAgentManifestEntrySchema = z.object({
metadata: z.record(z.unknown()).nullable(),
});
export const portabilitySkillManifestEntrySchema = z.object({
slug: z.string().min(1),
name: z.string().min(1),
path: z.string().min(1),
description: z.string().nullable(),
sourceType: z.string().min(1),
sourceLocator: z.string().nullable(),
sourceRef: z.string().nullable(),
trustLevel: z.string().nullable(),
compatibility: z.string().nullable(),
metadata: z.record(z.unknown()).nullable(),
fileInventory: z.array(z.object({
path: z.string().min(1),
kind: z.string().min(1),
})).default([]),
});
export const portabilityProjectManifestEntrySchema = z.object({
slug: z.string().min(1),
name: z.string().min(1),
@ -93,6 +111,7 @@ export const portabilityManifestSchema = z.object({
}),
company: portabilityCompanyManifestEntrySchema.nullable(),
agents: z.array(portabilityAgentManifestEntrySchema),
skills: z.array(portabilitySkillManifestEntrySchema).default([]),
projects: z.array(portabilityProjectManifestEntrySchema).default([]),
issues: z.array(portabilityIssueManifestEntrySchema).default([]),
envInputs: z.array(portabilityEnvInputSchema).default([]),
@ -137,6 +156,7 @@ export const companyPortabilityExportSchema = z.object({
projects: z.array(z.string().min(1)).optional(),
issues: z.array(z.string().min(1)).optional(),
projectIssues: z.array(z.string().min(1)).optional(),
expandReferencedSkills: z.boolean().optional(),
});
export type CompanyPortabilityExport = z.infer<typeof companyPortabilityExportSchema>;

View file

@ -36,6 +36,7 @@ export {
portabilityEnvInputSchema,
portabilityCompanyManifestEntrySchema,
portabilityAgentManifestEntrySchema,
portabilitySkillManifestEntrySchema,
portabilityManifestSchema,
portabilitySourceSchema,
portabilityTargetSchema,