Base config input applied in every environment.
Optionalai?: {OptionalanthropicApiKey?: stringOptionalapiKey?: stringOptionalapiVersion?: stringOptionaldeployment?: stringOptionalendpoint?: unknownOptionalincludeAriaSnapshot?: booleanInclude an aria snapshot in pramanAI.buildContext() output (Playwright 1.60+). On unless set to false.
OptionalmaxTokens?: numberOptionalmodel?: stringOptionalprovider?: unknownOptionaltemperature?: numberOptionalauth?: {OptionalbaseUrl?: unknownOptionalclient?: stringOptionallanguage?: stringOptionalpassword?: stringOptionalstrategy?: unknownAuth strategy for SAP login.
basic: On-premise form-based login (onprem-strategy)btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)office365: Microsoft 365 / Azure AD SSO (office365-strategy)custom: User-provided login functionFor API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.
Optionalusername?: stringOptionalcaptureFailureArtifacts?: booleanWhether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.
OptionalcontrolDiscoveryTimeout?: numberOptionalcontrolTreeCapture?: { enabled?: boolean; maxControls?: number; maxDepth?: number }OptionaldefaultMatchSubclasses?: booleanDefault value for matchSubclasses on selectors that don't specify it.
OptionaldiscoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[]OptionalignoreAutoWaitUrls?: string[]OptionalinteractionStrategy?: "ui5-native" | "dom-first" | "opa5"OptionallogLevel?: "error" | "debug" | "warn" | "info" | "verbose"OptionalodataTracing?: { enabled?: boolean; urlPatterns?: string[] }Optionalopa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number }Optionaloverlays?: { enabled?: boolean }Optionalenabled?: booleanWhether to register the built-in overlay rules.
OptionalpreferVisibleControls?: booleanOptionalselectors?: {OptionaldefaultTimeout?: numberOptionalpreferVisibleControls?: booleanOptionalskipStabilityWait?: booleanOptionalskipPostFillWait?: booleanWhen true, fill() will not call waitForUI5() after entering text.
Useful for rapid sequential fills where intermediate stability waits are unnecessary.
OptionalskipStabilityWait?: booleanOptionaltelemetry?: {OptionalbatchTimeout?: numberOptionalconnectionString?: stringAzure Monitor connection string. Required when exporter is 'azure-monitor'.
Optionalendpoint?: stringOptionalexporter?: "otlp" | "azure-monitor" | "jaeger"OptionalmaxQueueSize?: numberOptionalmetrics?: booleanOptionalopenTelemetry?: booleanOptionalprotocol?: "http" | "grpc"OptionalresourceAttributes?: Record<string, string>OptionalserviceName?: stringOptionalui5WaitTimeout?: numberOptionalenvironments: Record<Optional map of environment names to partial config
overrides. The active environment is read from PRAMAN_ENV first, then
NODE_ENV.
The resolved config input for the current environment.
Optionalai?: {OptionalanthropicApiKey?: stringOptionalapiKey?: stringOptionalapiVersion?: stringOptionaldeployment?: stringOptionalendpoint?: unknownOptionalincludeAriaSnapshot?: booleanInclude an aria snapshot in pramanAI.buildContext() output (Playwright 1.60+). On unless set to false.
OptionalmaxTokens?: numberOptionalmodel?: stringOptionalprovider?: unknownOptionaltemperature?: numberOptionalauth?: {OptionalbaseUrl?: unknownOptionalclient?: stringOptionallanguage?: stringOptionalpassword?: stringOptionalstrategy?: unknownAuth strategy for SAP login.
basic: On-premise form-based login (onprem-strategy)btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)office365: Microsoft 365 / Azure AD SSO (office365-strategy)custom: User-provided login functionFor API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.
Optionalusername?: stringOptionalcaptureFailureArtifacts?: booleanWhether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.
OptionalcontrolDiscoveryTimeout?: numberOptionalcontrolTreeCapture?: { enabled?: boolean; maxControls?: number; maxDepth?: number }OptionaldefaultMatchSubclasses?: booleanDefault value for matchSubclasses on selectors that don't specify it.
OptionaldiscoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[]OptionalignoreAutoWaitUrls?: string[]OptionalinteractionStrategy?: "ui5-native" | "dom-first" | "opa5"OptionallogLevel?: "error" | "debug" | "warn" | "info" | "verbose"OptionalodataTracing?: { enabled?: boolean; urlPatterns?: string[] }Optionalopa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number }Optionaloverlays?: { enabled?: boolean }Optionalenabled?: booleanWhether to register the built-in overlay rules.
OptionalpreferVisibleControls?: booleanOptionalselectors?: {OptionaldefaultTimeout?: numberOptionalpreferVisibleControls?: booleanOptionalskipStabilityWait?: booleanOptionalskipPostFillWait?: booleanWhen true, fill() will not call waitForUI5() after entering text.
Useful for rapid sequential fills where intermediate stability waits are unnecessary.
OptionalskipStabilityWait?: booleanOptionaltelemetry?: {OptionalbatchTimeout?: numberOptionalconnectionString?: stringAzure Monitor connection string. Required when exporter is 'azure-monitor'.
Optionalendpoint?: stringOptionalexporter?: "otlp" | "azure-monitor" | "jaeger"OptionalmaxQueueSize?: numberOptionalmetrics?: booleanOptionalopenTelemetry?: booleanOptionalprotocol?: "http" | "grpc"OptionalresourceAttributes?: Record<string, string>OptionalserviceName?: stringOptionalui5WaitTimeout?: numberUsed in praman.config.ts for IDE autocomplete and type checking.
When environments is provided, the active environment is determined by
PRAMAN_ENV (takes precedence) or NODE_ENV. If the active environment
matches a key in environments, that override is shallow-merged onto
base — nested objects such as auth or ai are replaced entirely,
not deep-merged.
Type helper for Praman config files with optional environment-specific overrides.