UNPKG

@xec-sh/core

Version:

Universal shell execution engine

179 lines (178 loc) 8.28 kB
import { z } from 'zod'; import { ExecutionEngineConfig } from '../core/execution-engine.js'; import type { SSHAdapterOptions, DockerAdapterOptions, KubernetesAdapterOptions } from '../core/command.js'; declare const HostConfigSchema: z.ZodObject<{ host: z.ZodString; username: z.ZodOptional<z.ZodString>; password: z.ZodOptional<z.ZodString>; privateKey: z.ZodOptional<z.ZodString>; privateKeyPath: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; readyTimeout: z.ZodOptional<z.ZodNumber>; keepaliveInterval: z.ZodOptional<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>; declare const ContainerConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; image: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>; declare const PodConfigSchema: z.ZodObject<{ name: z.ZodString; namespace: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; context: z.ZodOptional<z.ZodString>; kubeconfig: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const ProfileSchema: z.ZodObject<{ extends: z.ZodOptional<z.ZodString>; defaults: z.ZodOptional<z.ZodObject<{ timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>; shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>; cwd: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; encoding: z.ZodOptional<z.ZodString>; throwOnNonZeroExit: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; hosts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ host: z.ZodString; username: z.ZodOptional<z.ZodString>; password: z.ZodOptional<z.ZodString>; privateKey: z.ZodOptional<z.ZodString>; privateKeyPath: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; readyTimeout: z.ZodOptional<z.ZodNumber>; keepaliveInterval: z.ZodOptional<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; containers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodOptional<z.ZodString>; image: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; pods: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodString; namespace: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; context: z.ZodOptional<z.ZodString>; kubeconfig: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>; declare const UnifiedConfigSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; version: z.ZodOptional<z.ZodString>; defaults: z.ZodOptional<z.ZodObject<{ timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>; shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>; cwd: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; encoding: z.ZodOptional<z.ZodString>; throwOnNonZeroExit: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; hosts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ host: z.ZodString; username: z.ZodOptional<z.ZodString>; password: z.ZodOptional<z.ZodString>; privateKey: z.ZodOptional<z.ZodString>; privateKeyPath: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; readyTimeout: z.ZodOptional<z.ZodNumber>; keepaliveInterval: z.ZodOptional<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; containers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodOptional<z.ZodString>; image: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; pods: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodString; namespace: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; context: z.ZodOptional<z.ZodString>; kubeconfig: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; aliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; profiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ extends: z.ZodOptional<z.ZodString>; defaults: z.ZodOptional<z.ZodObject<{ timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>; shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>; cwd: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; encoding: z.ZodOptional<z.ZodString>; throwOnNonZeroExit: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; hosts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ host: z.ZodString; username: z.ZodOptional<z.ZodString>; password: z.ZodOptional<z.ZodString>; privateKey: z.ZodOptional<z.ZodString>; privateKeyPath: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; readyTimeout: z.ZodOptional<z.ZodNumber>; keepaliveInterval: z.ZodOptional<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; containers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodOptional<z.ZodString>; image: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strip>>>; pods: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ name: z.ZodString; namespace: z.ZodOptional<z.ZodString>; container: z.ZodOptional<z.ZodString>; context: z.ZodOptional<z.ZodString>; kubeconfig: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>>>; plugins: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strip>; export type UnifiedConfig = z.infer<typeof UnifiedConfigSchema>; export type HostConfig = z.infer<typeof HostConfigSchema>; export type ContainerConfig = z.infer<typeof ContainerConfigSchema>; export type PodConfig = z.infer<typeof PodConfigSchema>; export type ProfileConfig = z.infer<typeof ProfileSchema>; export declare class UnifiedConfigLoader { private static instance; private config; private loadedPaths; private activeProfile?; private readonly searchPaths; private constructor(); static getInstance(): UnifiedConfigLoader; load(additionalPaths?: string[]): Promise<UnifiedConfig>; save(config: UnifiedConfig, filePath?: string): Promise<void>; get(): UnifiedConfig; getValue(path: string): any; setValue(path: string, value: any): void; applyProfile(profileName: string): void; getActiveProfile(): string | undefined; getHost(name: string): HostConfig | undefined; getContainer(name: string): ContainerConfig | undefined; getPod(name: string): PodConfig | undefined; resolveAlias(alias: string): string | undefined; listHosts(): string[]; listContainers(): string[]; listPods(): string[]; listProfiles(): string[]; toEngineConfig(): ExecutionEngineConfig; hostToSSHOptions(name: string): Promise<Partial<SSHAdapterOptions>>; containerToDockerOptions(name: string): Partial<DockerAdapterOptions>; podToK8sOptions(name: string): Partial<KubernetesAdapterOptions>; getLoadedPaths(): string[]; exists(): Promise<boolean>; private readPrivateKey; private applyEnvironmentOverrides; private mergeConfigs; private mergeDefaults; private parseTimeout; } export declare const unifiedConfig: UnifiedConfigLoader; export {};