@dollhousemcp/mcp-server
Version:
DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.
194 lines • 9.46 kB
TypeScript
/**
* Centralized Environment Configuration
*
* This module provides type-safe access to environment variables with validation.
* All environment variables should be accessed through this module rather than
* directly via process.env to ensure type safety and validation.
*
* Usage:
* ```typescript
* import { env } from './config/env';
* const token = env.GITHUB_TOKEN; // Type: string
* ```
*/
import { z } from 'zod';
/**
* Environment variable schema with validation
*/
declare const envSchema: z.ZodObject<{
NODE_ENV: z.ZodDefault<z.ZodEnum<{
test: "test";
development: "development";
production: "production";
}>>;
GITHUB_TOKEN: z.ZodOptional<z.ZodString>;
GITHUB_USERNAME: z.ZodOptional<z.ZodString>;
GITHUB_REPOSITORY: z.ZodOptional<z.ZodString>;
GITHUB_TEST_TOKEN: z.ZodOptional<z.ZodString>;
GITHUB_TEST_USERNAME: z.ZodOptional<z.ZodString>;
GITHUB_TEST_REPOSITORY: z.ZodOptional<z.ZodString>;
PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
LOG_LEVEL: z.ZodDefault<z.ZodEnum<{
error: "error";
debug: "debug";
info: "info";
warn: "warn";
}>>;
TEST_BASE_DIR: z.ZodOptional<z.ZodString>;
TEST_PERSONAS_DIR: z.ZodOptional<z.ZodString>;
TEST_CACHE_DIR: z.ZodOptional<z.ZodString>;
TEST_CONFIG_DIR: z.ZodOptional<z.ZodString>;
DOLLHOUSE_AUTO_SUBMIT_TO_COLLECTION: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
ENABLE_DEBUG: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
TEST_VERBOSE_LOGGING: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
MCP_INTERFACE_MODE: z.ZodDefault<z.ZodEnum<{
discrete: "discrete";
mcpaql: "mcpaql";
}>>;
MCP_AQL_ENDPOINT_MODE: z.ZodDefault<z.ZodEnum<{
single: "single";
crude: "crude";
}>>;
MCP_AQL_MODE: z.ZodOptional<z.ZodEnum<{
single: "single";
crude: "crude";
}>>;
DOLLHOUSE_LOG_DIR: z.ZodDefault<z.ZodString>;
DOLLHOUSE_LOG_FORMAT: z.ZodDefault<z.ZodEnum<{
text: "text";
jsonl: "jsonl";
}>>;
DOLLHOUSE_LOG_RETENTION_DAYS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_SECURITY_RETENTION_DAYS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_FLUSH_INTERVAL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_BUFFER_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MEMORY_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MEMORY_APP_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MEMORY_SECURITY_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MEMORY_PERF_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MEMORY_TELEMETRY_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MAX_ENTRY_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_IMMEDIATE_FLUSH_RATE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_FILE_MAX_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MAX_DIR_SIZE_BYTES: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_LOG_MAX_FILES_PER_CATEGORY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_PERMISSION_SERVER: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_WEB_CONSOLE: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_WEB_CONSOLE_PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_WEB_AUTH_ENABLED: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_CONSOLE_TOKEN_FILE: z.ZodOptional<z.ZodString>;
DOLLHOUSE_CONSOLE_LEADER_LOCK_FILE: z.ZodOptional<z.ZodString>;
DOLLHOUSE_CONSOLE_BIND_RETRY_DELAYS: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number[] | undefined, string | undefined>>;
DOLLHOUSE_CONSOLE_MAX_FORWARD_FAILURES: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_CONSOLE_ROTATION_REQUIRE_CONFIRMATION: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_GATEKEEPER_ENABLED: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_GATEKEEPER_ELEMENT_POLICY_OVERRIDES: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_POLICY_EXPORT_ENABLED: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_SCAN_COOLDOWN_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_INDEX_DEBOUNCE_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_ELEMENT_CACHE_TTL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_PATH_CACHE_TTL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_TOOL_CACHE_TTL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_GLOBAL_CACHE_MEMORY_MB: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_CLI_APPROVAL_MAX: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_CLI_APPROVAL_TTL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_PERMISSION_PROMPT_RATE_LIMIT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_CLI_APPROVAL_RATE_LIMIT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_PERMISSION_RATE_WINDOW_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_METRICS_ENABLED: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_METRICS_COLLECTION_INTERVAL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_METRICS_MAX_SNAPSHOT_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_METRICS_COLLECTOR_FAILURE_THRESHOLD: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_METRICS_COLLECTION_DURATION_WARN_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_METRICS_MEMORY_SNAPSHOT_CAPACITY: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
DOLLHOUSE_DISABLE_ENCRYPTION: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
DOLLHOUSE_ENCRYPTION_SECRET: z.ZodOptional<z.ZodString>;
DOLLHOUSE_ENCRYPTION_SALT: z.ZodOptional<z.ZodString>;
DOLLHOUSE_TOKEN_SECRET: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
* Validated environment variables
* Type is automatically inferred from the schema
*/
export declare const env: {
NODE_ENV: "test" | "development" | "production";
PORT: number;
LOG_LEVEL: "error" | "debug" | "info" | "warn";
DOLLHOUSE_AUTO_SUBMIT_TO_COLLECTION: boolean;
ENABLE_DEBUG: boolean;
TEST_VERBOSE_LOGGING: boolean;
MCP_INTERFACE_MODE: "discrete" | "mcpaql";
MCP_AQL_ENDPOINT_MODE: "single" | "crude";
DOLLHOUSE_LOG_DIR: string;
DOLLHOUSE_LOG_FORMAT: "text" | "jsonl";
DOLLHOUSE_LOG_RETENTION_DAYS: number;
DOLLHOUSE_LOG_SECURITY_RETENTION_DAYS: number;
DOLLHOUSE_LOG_FLUSH_INTERVAL_MS: number;
DOLLHOUSE_LOG_BUFFER_SIZE: number;
DOLLHOUSE_LOG_MEMORY_CAPACITY: number;
DOLLHOUSE_LOG_MEMORY_APP_CAPACITY: number;
DOLLHOUSE_LOG_MEMORY_SECURITY_CAPACITY: number;
DOLLHOUSE_LOG_MEMORY_PERF_CAPACITY: number;
DOLLHOUSE_LOG_MEMORY_TELEMETRY_CAPACITY: number;
DOLLHOUSE_LOG_MAX_ENTRY_SIZE: number;
DOLLHOUSE_LOG_IMMEDIATE_FLUSH_RATE: number;
DOLLHOUSE_LOG_FILE_MAX_SIZE: number;
DOLLHOUSE_LOG_MAX_DIR_SIZE_BYTES: number;
DOLLHOUSE_LOG_MAX_FILES_PER_CATEGORY: number;
DOLLHOUSE_PERMISSION_SERVER: boolean;
DOLLHOUSE_WEB_CONSOLE: boolean;
DOLLHOUSE_WEB_CONSOLE_PORT: number;
DOLLHOUSE_WEB_AUTH_ENABLED: boolean;
DOLLHOUSE_CONSOLE_BIND_RETRY_DELAYS: number[] | undefined;
DOLLHOUSE_CONSOLE_MAX_FORWARD_FAILURES: number;
DOLLHOUSE_CONSOLE_ROTATION_REQUIRE_CONFIRMATION: boolean;
DOLLHOUSE_GATEKEEPER_ENABLED: boolean;
DOLLHOUSE_GATEKEEPER_ELEMENT_POLICY_OVERRIDES: boolean;
DOLLHOUSE_POLICY_EXPORT_ENABLED: boolean;
DOLLHOUSE_SCAN_COOLDOWN_MS: number;
DOLLHOUSE_INDEX_DEBOUNCE_MS: number;
DOLLHOUSE_ELEMENT_CACHE_TTL_MS: number;
DOLLHOUSE_PATH_CACHE_TTL_MS: number;
DOLLHOUSE_TOOL_CACHE_TTL_MS: number;
DOLLHOUSE_GLOBAL_CACHE_MEMORY_MB: number;
DOLLHOUSE_CLI_APPROVAL_MAX: number;
DOLLHOUSE_CLI_APPROVAL_TTL_MS: number;
DOLLHOUSE_PERMISSION_PROMPT_RATE_LIMIT: number;
DOLLHOUSE_CLI_APPROVAL_RATE_LIMIT: number;
DOLLHOUSE_PERMISSION_RATE_WINDOW_MS: number;
DOLLHOUSE_METRICS_ENABLED: boolean;
DOLLHOUSE_METRICS_COLLECTION_INTERVAL_MS: number;
DOLLHOUSE_METRICS_MAX_SNAPSHOT_SIZE: number;
DOLLHOUSE_METRICS_COLLECTOR_FAILURE_THRESHOLD: number;
DOLLHOUSE_METRICS_COLLECTION_DURATION_WARN_MS: number;
DOLLHOUSE_METRICS_MEMORY_SNAPSHOT_CAPACITY: number;
DOLLHOUSE_DISABLE_ENCRYPTION: boolean;
GITHUB_TOKEN?: string | undefined;
GITHUB_USERNAME?: string | undefined;
GITHUB_REPOSITORY?: string | undefined;
GITHUB_TEST_TOKEN?: string | undefined;
GITHUB_TEST_USERNAME?: string | undefined;
GITHUB_TEST_REPOSITORY?: string | undefined;
TEST_BASE_DIR?: string | undefined;
TEST_PERSONAS_DIR?: string | undefined;
TEST_CACHE_DIR?: string | undefined;
TEST_CONFIG_DIR?: string | undefined;
MCP_AQL_MODE?: "single" | "crude" | undefined;
DOLLHOUSE_CONSOLE_TOKEN_FILE?: string | undefined;
DOLLHOUSE_CONSOLE_LEADER_LOCK_FILE?: string | undefined;
DOLLHOUSE_ENCRYPTION_SECRET?: string | undefined;
DOLLHOUSE_ENCRYPTION_SALT?: string | undefined;
DOLLHOUSE_TOKEN_SECRET?: string | undefined;
};
/**
* Environment type (inferred from schema)
*/
export type Env = z.infer<typeof envSchema>;
/**
* Convenience helpers for environment detection
*/
export declare const isTest: boolean;
export declare const isDevelopment: boolean;
export declare const isProduction: boolean;
export {};
//# sourceMappingURL=env.d.ts.map