Class: SolidAgent::AgentManifest::Validator
- Inherits:
-
Object
- Object
- SolidAgent::AgentManifest::Validator
- Defined in:
- lib/solid_agent/agent_manifest/validator.rb
Overview
Validator provides comprehensive validation for Manifests.
Goes beyond ActiveModel validations to check semantic correctness, tool definitions, schema validity, and cross-field consistency.
Constant Summary collapse
- KNOWN_PROVIDERS =
Known model providers for validation
%w[anthropic openai google meta cohere mistral].freeze
- RESERVED_NAMES =
Reserved names that cannot be used
%w[agent manifest config settings default system].freeze
Class Method Summary collapse
-
.valid?(manifest, strict: false) ⇒ Boolean
Check if a manifest is valid.
-
.validate(manifest, strict: false) ⇒ Array<String>
Validate a manifest and return array of error messages.
-
.validate!(manifest, strict: false) ⇒ Manifest
Validate and raise if invalid.
Class Method Details
.valid?(manifest, strict: false) ⇒ Boolean
Check if a manifest is valid
58 59 60 |
# File 'lib/solid_agent/agent_manifest/validator.rb', line 58 def valid?(manifest, strict: false) validate(manifest, strict: strict).empty? end |
.validate(manifest, strict: false) ⇒ Array<String>
Validate a manifest and return array of error messages
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/solid_agent/agent_manifest/validator.rb', line 37 def validate(manifest, strict: false) errors = [] errors.concat((manifest)) errors.concat(validate_model(manifest)) errors.concat(validate_tools(manifest)) errors.concat(validate_resources(manifest)) errors.concat(validate_schemas(manifest)) errors.concat(validate_extensions(manifest)) errors.concat(validate_content(manifest)) errors.concat(validate_strict(manifest)) if strict errors end |
.validate!(manifest, strict: false) ⇒ Manifest
Validate and raise if invalid
68 69 70 71 72 73 |
# File 'lib/solid_agent/agent_manifest/validator.rb', line 68 def validate!(manifest, strict: false) errors = validate(manifest, strict: strict) raise ValidationError, "Invalid manifest: #{errors.join('; ')}" if errors.any? manifest end |