@bobmatnyc/claude-pm-portfolio-manager
Version:
Claude PM Portfolio Management Dashboard - React-based monitoring and reporting for Claude PM managed projects
84 lines (83 loc) • 2.19 kB
TypeScript
export interface VercelDeployment {
uid: string;
name: string;
url: string;
state: 'BUILDING' | 'ERROR' | 'INITIALIZING' | 'QUEUED' | 'READY' | 'CANCELED';
type: 'LAMBDAS';
target: 'production' | 'preview' | 'development';
aliasAssigned?: boolean;
aliasError?: any;
created: number;
createdAt: number;
ready?: number;
readyState: 'INITIALIZING' | 'BUILDING' | 'ERROR' | 'READY' | 'QUEUED' | 'CANCELED';
buildingAt?: number;
creator: {
uid: string;
username: string;
email: string;
};
meta?: {
githubCommitSha?: string;
githubCommitMessage?: string;
githubCommitRef?: string;
githubCommitAuthorName?: string;
githubOrg?: string;
githubRepo?: string;
};
inspectorUrl?: string;
project?: {
id: string;
name: string;
};
}
export interface VercelProject {
id: string;
name: string;
accountId: string;
createdAt: number;
updatedAt: number;
framework: string | null;
devCommand?: string;
buildCommand?: string;
outputDirectory?: string;
publicSource: boolean;
live: boolean;
link?: {
type: 'github';
repo: string;
repoId: number;
org?: string;
gitCredentialId: string;
productionBranch?: string;
};
latestDeployments: VercelDeployment[];
targets?: {
production?: {
alias?: string[];
aliasAssigned?: number;
createdAt?: number;
creator?: string;
deploymentHostname?: string;
forced?: boolean;
id?: string;
meta?: Record<string, any>;
plan?: string;
private?: boolean;
readyState?: string;
requestedAt?: number;
target?: string;
teamId?: string | null;
type?: string;
url?: string;
userId?: string;
};
};
}
export interface VercelDashboardState {
projects: VercelProject[];
deployments: VercelDeployment[];
loading: boolean;
error: string | null;
lastUpdate: string | null;
}