Skip to content

PromptScript API


Class: Validator

Defined in: validator/src/validator.ts:40

AST validator for PromptScript files.

Validates resolved AST for semantic correctness and compliance.

Example

import { Validator } from '@promptscript/validator';

const validator = new Validator({
  requiredGuards: ['@core/guards/compliance'],
  rules: { 'empty-block': 'warning' },
});

const result = validator.validate(ast);
if (!result.valid) {
  for (const err of result.errors) {
    console.error(`${err.ruleId}: ${err.message}`);
  }
}

Constructors

Constructor

new Validator(config?): Validator

Defined in: validator/src/validator.ts:51

Create a new validator instance.

Parameters

config?

ValidatorConfig = {}

Validator configuration

Returns

Validator

Methods

addRule()

addRule(rule): void

Defined in: validator/src/validator.ts:155

Add a custom validation rule.

Parameters

rule

ValidationRule

The rule to add

Returns

void


getConfig()

getConfig(): ValidatorConfig

Defined in: validator/src/validator.ts:177

Get the current configuration.

Returns

ValidatorConfig


getRules()

getRules(): ValidationRule[]

Defined in: validator/src/validator.ts:184

Get all registered rules.

Returns

ValidationRule[]


removeRule()

removeRule(ruleNameOrId): boolean

Defined in: validator/src/validator.ts:165

Remove a validation rule by name or id.

Parameters

ruleNameOrId

string

The rule name or id to remove

Returns

boolean

True if the rule was found and removed


updateConfig()

updateConfig(partial): void

Defined in: validator/src/validator.ts:72

Update validator configuration after construction. Allows the compiler to inject runtime data (registry references, lockfile, etc.) that becomes available only after resolution.

Parameters

partial

Partial\<ValidatorConfig>

Returns

void


validate()

validate(input): ValidationResult

Defined in: validator/src/validator.ts:86

Validate an AST.

Parameters

input

ProgramInput

Returns

ValidationResult

Validation result with all messages