Skip to main content

Validator for dialekt agent manifests (spec v1.0.1)

Project description

dialekt-manifest-validator

Catch broken agent manifests before they reach runtime.

A Python library and CLI that validates dialekt .agent.yaml manifest files against spec v1.0.1. Structural errors, semantic inconsistencies, and hardcoded secrets — all caught before import.


30-second start

pip install dialekt-manifest-validator
dialekt-validate-manifest my-agent.agent.yaml

Valid:

✓ my-agent.agent.yaml: "SQL Analyst" (1.0.0)

Invalid:

✗ my-agent.agent.yaml — 2 errors, 1 warning

  ✗ [security.openai_key] line 14: OpenAI API key detected
    → Remove this key. Declare it in `secrets_required` and store in OS keychain.

  ✗ [semantic.variable_undefined] system_prompt references {{company}} but it is not declared in `variables`
    → Add `company` to the `variables` section.

  ⚠ [semantic.streaming_image] output.streaming should be false for image format
    → Set output.streaming=false for image output.

What it validates

Layer Examples
Structure Required fields, correct types, UUID v4, semver, ISO 8601 timestamps
Semantic Undeclared {{variables}}, broken environments, autonomy ordering, cron frequency
Security OpenAI/Anthropic/GitHub/AWS/Telegram/Slack tokens, private keys, JWT, DB connection strings with credentials, high-entropy strings
Paths Output paths targeting /etc, ~/.ssh, Windows system dirs
Capabilities filesystem destination without filesystem_write capability, etc.

CLI

# Validate one or more files
dialekt-validate-manifest agent.yaml
dialekt-validate-manifest agents/**/*.yaml

# JSON output (for CI pipelines)
dialekt-validate-manifest --format json agent.yaml

# Strict: treat warnings as errors
dialekt-validate-manifest --strict agent.yaml

# Schema only: skip security and semantic checks
dialekt-validate-manifest --schema-only agent.yaml

# Export JSON Schema for IDE autocompletion
dialekt-validate-manifest --emit-schema > schema.json

Exit codes: 0 = valid, 1 = warnings only, 2 = errors


Python API

from dialekt_manifest import validate

result = validate("my-agent.agent.yaml")

result.valid       # bool
result.errors      # list[Issue]
result.warnings    # list[Issue]
result.manifest    # parsed AgentManifest | None
from dialekt_manifest import ManifestValidator

v = ManifestValidator(strict=True)
result = v.validate_file("agent.yaml")
result = v.validate_string(yaml_string)
result = v.validate_dict(data_dict)
# JSON Schema for IDE integration
from dialekt_manifest import export_json_schema
import json

schema = export_json_schema()
print(json.dumps(schema, indent=2))

IDE autocompletion (VSCode)

Install the YAML extension, then add to .vscode/settings.json:

{
  "yaml.schemas": {
    "https://raw.githubusercontent.com/dialektai/dialekt-manifest-validator/main/schemas/agent-manifest-v1.0.1.json": [
      "*.agent.yaml",
      "*.agent.yml"
    ]
  }
}

CI integration

GitHub Actions:

- name: Validate agent manifests
  run: |
    pip install dialekt-manifest-validator==0.1.0
    dialekt-validate-manifest --strict agents/**/*.yaml

pre-commit:

repos:
  - repo: local
    hooks:
      - id: dialekt-validate
        name: Validate agent manifests
        language: python
        additional_dependencies: [dialekt-manifest-validator==0.1.0]
        entry: dialekt-validate-manifest --strict
        files: \.agent\.(yaml|yml)$

Spec

Agent manifest spec v1.0.1: AGENT_MANIFEST_SPEC.md


License

GNU Affero General Public License v3.0

For commercial use without AGPL obligations: hello@dias.now

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dialekt_manifest_validator-0.1.0.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dialekt_manifest_validator-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file dialekt_manifest_validator-0.1.0.tar.gz.

File metadata

  • Download URL: dialekt_manifest_validator-0.1.0.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dialekt_manifest_validator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8715f6b6f9c33d05ed2453c452b1a713c1b9089bebb47155adce58f1a57da9cb
MD5 e230d4cc1315c7461b278b34fdfc8d4e
BLAKE2b-256 3a4dc36727d47655cab064f0eddb102928196de4c6c4732ebaa01772c015c3e5

See more details on using hashes here.

File details

Details for the file dialekt_manifest_validator-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dialekt_manifest_validator-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dialekt_manifest_validator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8fa2967624a5b246ac4850fa0d5a983722679cb26ff73f45d8792d235f5311a
MD5 2dcb4dd2d4d7ac8d966a888908bb3a3b
BLAKE2b-256 b98ea478fec85fd6c25620e6af970b92a3072ad40ff5baa79e00bb19ffa0b04f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page