Module: AgentsSkillVault::Vault::ResourceValidator

Included in:
AgentsSkillVault::Vault
Defined in:
lib/agents_skill_vault/vault/resource_validator.rb

Overview

Module for validating resources in vault.

Instance Method Summary collapse

Instance Method Details

#cleanup_invalid_skillsInteger

Removes all invalid skills from the vault.

Deletes local files and removes from manifest for all resources with validation_status == :invalid_skill.

Returns:

  • (Integer)

    Number of skills removed



70
71
72
73
74
75
76
77
78
79
# File 'lib/agents_skill_vault/vault/resource_validator.rb', line 70

def cleanup_invalid_skills
  invalid_resources = list_invalid_skills

  invalid_resources.each do |resource|
    FileUtils.rm_rf(resource.local_path) if resource.local_path
    manifest.remove_resource(resource.label)
  end

  invalid_resources.size
end

#validate_allHash

Validates all resources in the vault.

Re-validates all resources and updates their validation status.

Returns:

  • (Hash)

    Summary of validation results

    • :valid [Integer] Count of valid skills
    • :invalid [Integer] Count of invalid skills
    • :not_a_skill [Integer] Count of non-skill resources
    • :unvalidated [Integer] Count of resources that couldn't be validated


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/agents_skill_vault/vault/resource_validator.rb', line 42

def validate_all
  results = { valid: 0, invalid: 0, not_a_skill: 0, unvalidated: 0 }

  list.each do |resource|
    validate_resource(resource.label)

    case resource.validation_status
    when :valid_skill
      results[:valid] += 1
    when :invalid_skill
      results[:invalid] += 1
    when :not_a_skill
      results[:not_a_skill] += 1
    else
      results[:unvalidated] += 1
    end
  end

  results
end

#validate_resource(label) ⇒ Resource

Validates a specific resource.

Re-validates the skill file and updates the validation status.

Parameters:

  • label (String)

    The label of the resource to validate

Returns:

Raises:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/agents_skill_vault/vault/resource_validator.rb', line 16

def validate_resource(label)
  resource = fetch(label)

  updated_resource = if resource.is_skill
                       validate_skill_resource(resource)
                     else
                       Resource.from_h(
                         resource.to_h.merge(validation_status: :not_a_skill),
                         storage_path: storage_path
                       )
                     end

  manifest.update_resource(updated_resource)
  updated_resource
end