@pimzino/claude-code-spec-workflow
Version:
Automated workflows for Claude Code. Includes spec-driven development (Requirements → Design → Tasks → Implementation) with intelligent task execution, optional steering documents and streamlined bug fix workflow (Report → Analyze → Fix → Verify). We have
87 lines • 2.27 kB
TypeScript
export interface TunnelOptions {
provider?: string;
password?: string;
maxViewers?: number;
ttl?: number;
analytics?: boolean;
}
export interface TunnelInfo {
url: string;
provider: string;
expiresAt?: Date;
passwordProtected: boolean;
}
export interface TunnelStatus {
active: boolean;
info?: TunnelInfo;
viewers?: number;
error?: string;
}
export interface TunnelProvider {
name: string;
isAvailable(): Promise<boolean>;
createTunnel(_port: number, _options: ProviderOptions): Promise<TunnelInstance>;
validateConfig(): Promise<void>;
}
export interface ProviderOptions {
ttl?: number;
metadata?: Record<string, string>;
}
export interface TunnelInstance {
url: string;
status: 'active' | 'closing' | 'error';
provider: string;
createdAt: Date;
close(): Promise<void>;
getHealth(): Promise<HealthStatus>;
}
export interface HealthStatus {
healthy: boolean;
latency?: number;
error?: string;
}
export interface TunnelConfig {
providers: {
cloudflare?: {
accountId?: string;
tunnelName?: string;
};
ngrok?: {
authToken?: string;
region?: string;
};
};
defaults: {
provider: string;
ttl: number;
maxViewers: number;
};
security: {
requirePassword: boolean;
allowedOrigins: string[];
};
}
export declare class TunnelProviderError extends Error {
readonly provider: string;
readonly code: string;
readonly userMessage?: string | undefined;
readonly troubleshooting?: string[] | undefined;
constructor(provider: string, code: string, message: string, userMessage?: string | undefined, troubleshooting?: string[] | undefined);
/**
* Get user-friendly error message with troubleshooting steps
*/
getUserFriendlyMessage(): string;
}
export interface TunnelRecoveryOptions {
maxRetries?: number;
retryDelay?: number;
healthCheckInterval?: number;
enableAutoReconnect?: boolean;
}
export interface TunnelHealth {
status: 'healthy' | 'degraded' | 'unhealthy';
lastCheck: Date;
consecutiveFailures: number;
uptime: number;
}
//# sourceMappingURL=types.d.ts.map