Developer Guide

VAIRES Developer Guide

Welcome! This guide provides everything you need to package, version, and deploy your assets on the VAIRES platform.

How it Works: The `vaires.json` File

Every asset you deploy is defined by a single manifest file named vaires.json. This file contains all the metadata our system needs to register, version, and display your work.

Deployment Steps

Step 1: Git Workflow (Recommended)

Simply commit your files to a linked GitHub repository to deploy.

First, go to your integrations dashboard to link a GitHub repository.
Tip: Clone our Sample Agent Repository to see a real example.
git add vaires.json your-prompt.json
git commit -m "feat: add my new prompt v1.0.0"
git push origin main

Step 2: Prepare Your Files

Example `vaires.json`

This is an illustrative manifest. You will need this for both deployment methods.

vaires.json
{
  "name": "Professional Email Crafter",
  "kind": "prompt",
  "version": "1.0.0",
  "author": "Vaires Corp.",
  "license": "MIT",
  "description": "A prompt that generates professional marketing emails.",
  "tags": ["email", "marketing", "professional"],
  "entrypoint": "email-crafter.prompt.json",
  "pricePlan": {
    "type": "free"
  }
}

Example Prompt Content

This is the entrypoint file, `email-crafter.prompt.json`, referenced in the manifest above.

email-crafter.prompt.json
{
  "objective": "To transform a long-form blog article into a concise and engaging social media post.",
  "instructions": "You are a senior social media manager. Your goal is to distill the core message of a provided blog article into a compelling social media post. 1. Identify the single most interesting takeaway. 2. Craft a 'hook' to grab attention. 3. Summarize the key point in 2-3 sentences. 4. Include 3-5 relevant hashtags. 5. End with a clear call-to-action (CTA) to read the full article.",
  "input_format": "A JSON object with a single key: {\"article_text\": \"<full text of the blog article>\"}",
  "expected_output": "A single block of text representing the social media post, ready to be copied.",
  "examples": [
    {
      "input": "{\"article_text\": \"The future of remote work is hybrid. A recent study shows that 74% of employees prefer a mix of in-office and remote days. This model boosts productivity by allowing for deep, focused work at home and collaborative sessions at the office...\"}",
      "output": "Is the 5-day office week a thing of the past? 🤔\n\nA new study reveals that 74% of employees want a hybrid model. The right balance can lead to a huge boost in both productivity and happiness.\n\nFind out how top companies are making it work. Read the full analysis here: [Link to Blog Post]\n\n#FutureOfWork #HybridWork #WorkplaceCulture #Productivity",
      "description": "An example of converting a business article into a LinkedIn post."
    }
  ]
}

Alternative: Manual Upload

If you prefer not to use Git, you can use the files from Step 2 to upload your asset directly.

  1. Navigate to 'Manage My Assets' and click 'Deploy asset'.
  2. Paste the content of your `vaires.json` file into the manifest text area.
  3. Upload your entrypoint file (e.g., `email-crafter.prompt.json`) or a `.zip` archive.
  4. Click 'Submit'. Your asset will be uploaded and placed in review.
Manifest Reference

Manifest Fields Explained

Here is a complete list of all supported fields for the `vaires.json` file.

nameRequired
The display name of your asset (3-60 characters).
kindRequired
The type of asset. Must be one of: 'prompt', 'model', or 'agent'.
versionRequired
The semantic version of your asset (e.g., '1.0.0').
pricePlanRequired
A structured object defining the pricing. 'type' is required and can be 'free', 'oneOff', 'subscription', or 'ads'.
descriptionOptional
A brief explanation of what your asset does (max 5000 characters).
authorOptional
The name of the individual or organization that created the asset.
licenseOptional
The software license for the asset (e.g., 'MIT', 'Apache-2.0').
tagsOptional
An array of keywords to help users discover your asset. Required for 'prompt' and 'model' kinds.
entrypointOptional
For prompts, the relative path to the JSON file containing the prompt's content.
testingOptional
An array of structured test cases to validate the prompt's behavior.