### Manual Development Environment Setup Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md Installs necessary Node.js packages (ajv, ajv-cli, ajv-formats) manually for local development if flox is not used. ```sh git clone https://github.com/inference-gateway/adl cd adl npm install --no-save ajv@8 ajv-cli@5 ajv-formats@3 ``` -------------------------------- ### ADL Agent Manifest Example Source: https://github.com/inference-gateway/adl/blob/main/README.md This YAML manifest defines an AI agent named 'customer-support' with specified capabilities, AI model, system prompt, tools, skills, and server configuration. It includes a 'knowledge_search' tool with a JSON schema for its input and an 'incident-response' skill. ```yaml apiVersion: adl.inference-gateway.com/v1 kind: Agent metadata: name: customer-support description: AI agent for handling customer inquiries version: "1.0.0" spec: capabilities: streaming: true pushNotifications: true stateTransitionHistory: true agent: provider: deepseek model: deepseek-v4-flash systemPrompt: | You are a professional customer support agent. maxTokens: 4096 temperature: 0.3 tools: - id: knowledge_search name: knowledge_search description: Search the company knowledge base tags: - knowledge - search schema: type: object properties: query: type: string description: The search query required: - query skills: - id: incident-response bare: true name: incident-response description: How to triage a paged production incident, draft an initial response, and notify stakeholders. tags: - operations - incident server: port: 8080 debug: false language: go: module: github.com/company/customer-support-agent version: "1.26" ``` -------------------------------- ### Conventional Commit Message Example Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md An example of a commit message following the Conventional Commits specification, used for automated versioning and changelog generation. ```text feat(schema): Add optional `metadata.labels` map to Agent Allows consumers to attach arbitrary key/value labels at the manifest level, mirroring Kubernetes-style metadata. Purely additive. ``` -------------------------------- ### List Available Tasks Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Display a list of all available tasks defined in the Taskfile.yml. ```sh task --list ``` -------------------------------- ### Schema Versioning Model Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Illustrates the schema versioning strategy where apiVersion strings and directory names correspond, and only backwards-compatible changes are allowed within a major version. ```text adl.inference-gateway.com/v1 ←→ schema/v1/schema.json adl.inference-gateway.com/v2 ←→ schema/v2/schema.json (future) ``` -------------------------------- ### Activate Development Environment with flox Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md Activates the reproducible development environment provided by flox, which includes Node.js, go-task, and ajv. ```sh flox activate ``` -------------------------------- ### Flox Environment Activation Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Command to activate the flox environment, which automatically provisions Node.js, go-task, and ajv, making them available on the PATH. ```sh # Install flox first: https://flox.dev/docs/install-flox/ flox activate ``` -------------------------------- ### ADL Repository Structure Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Overview of the ADL repository's directory structure, highlighting key files and their purposes. ```tree adl/ ├── .flox/env/manifest.toml # Flox environment definition (Node.js, go-task, ajv) ├── .github/ │ ├── workflows/ │ │ ├── validate-schema.yml # CI: compiles schema on push/PR to main │ │ └── release.yml # Manual release workflow (workflow_dispatch) │ ├── CODEOWNERS # @inference-gateway/a2a owns all files │ └── dependabot.yml # Weekly GitHub Actions updates ├── .releaserc.yaml # semantic-release configuration ├── .gitignore # Ignores /node_modules and **/.env ├── schema/ │ └── v1/ │ └── schema.json # 🔑 The only shipped artifact — the ADL schema ├── Taskfile.yml # go-task tasks (compile, validate) ├── CLAUDE.md # Claude Code guidance (read this first) ├── CONTRIBUTING.md # Full contributing guide ├── CHANGELOG.md # Auto-generated by semantic-release ├── README.md # Project documentation & example manifest ├── LICENSE # MIT License └── AGENTS.md # This file ``` -------------------------------- ### Compile ADL Schema (npx) Source: https://github.com/inference-gateway/adl/blob/main/CLAUDE.md Compiles the ADL schema using npx and ajv-cli. This command is an alternative to using go-task for schema compilation. ```sh npx ajv compile --spec=draft7 -c ajv-formats -s schema/v1/schema.json ``` -------------------------------- ### Validate ADL Manifest Source: https://github.com/inference-gateway/adl/blob/main/CLAUDE.md Validates a manifest file against the ADL schema using the go-task build tool. Specify the path to the manifest file to be validated. ```sh task validate -- path/to/manifest.yaml ``` -------------------------------- ### Downstream Integration Testing Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Optional step to test the downstream effect of schema changes on 'adl-cli'. Involves pointing 'adl-cli' Taskfile.yml to a local schema copy and regenerating a project. ```sh # Example: Modify Taskfile.yml to point to local schema # Then regenerate a sample project ``` -------------------------------- ### Validate ADL Manifest (npx) Source: https://github.com/inference-gateway/adl/blob/main/CLAUDE.md Validates a manifest file against the ADL schema using npx, ajv-cli, and ajv-formats. This command is an alternative to using go-task for manifest validation. ```sh npx ajv validate --spec=draft7 -c ajv-formats -s schema/v1/schema.json -d path/to/manifest.yaml ``` -------------------------------- ### Compile ADL Schema Locally Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md Compiles the ADL schema locally using the 'task compile' command or directly with npx ajv. This command mirrors the validation performed by CI. ```sh task compile ``` ```sh npx ajv compile --spec=draft7 -c ajv-formats -s schema/v1/schema.json ``` -------------------------------- ### Compile ADL Schema Source: https://github.com/inference-gateway/adl/blob/main/CLAUDE.md Compiles the ADL schema using the go-task build tool. This is the exact check performed in the CI validation process. ```sh task compile ``` -------------------------------- ### Create a New Git Branch Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md Creates a new branch for making changes to the ADL schema. ```sh git checkout -b my-change ``` -------------------------------- ### ADL Schema Top-Level Manifest Structure Source: https://github.com/inference-gateway/adl/blob/main/AGENTS.md Defines the expected structure for an ADL manifest, including apiVersion, kind, metadata, and various spec fields for agent capabilities, configuration, and services. ```yaml apiVersion: adl.inference-gateway.com/v1 (const string) kind: Agent (const string) metadata: name (lowercase + hyphens) description (free text) version (semver) spec: capabilities: { streaming, pushNotifications, stateTransitionHistory } card: { protocolVersion, url, preferredTransport, input/outputModes, docs/icon URLs } agent: { provider (enum), model, systemPrompt, maxTokens, temperature } config: arbitrary key/value maps services: named service definitions (type, interface, factory, description) acronyms: string list skills: [{ id, name, description, schema, examples, input/outputModes, implementation, inject }] server: { port, scheme, debug, auth } language: { go, typescript, rust } (at least one required) artifacts: { enabled } hooks: { post: [commands] } scm: { provider, url, github_app, issue_templates } sandbox: { flox, devcontainer, dockerCompose } deployment: { type, cloudrun } ``` -------------------------------- ### Validate ADL Manifest Locally Source: https://github.com/inference-gateway/adl/blob/main/CONTRIBUTING.md Validates a specific manifest file against the updated ADL schema using 'task validate' or npx ajv. This is useful for testing changes that affect manifest authoring. ```sh task validate -- path/to/manifest.yaml ``` ```sh npx ajv validate --spec=draft7 -c ajv-formats -s schema/v1/schema.json -d path/to/manifest.yaml ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.