Files
awesome-copilot/.schemas/tools.schema.json
Aaron Powell c8d342cc62 Add tools catalog with YAML schema and website page
- Create website/data/tools.yml with 6 tools:
  - Awesome Copilot MCP Server
  - Awesome GitHub Copilot Browser (VS Code extension)
  - APM - Agent Package Manager (CLI)
  - Workspace Architect (npm CLI)
  - Prompt Registry (VS Code extension)
  - GitHub Node for Visual Studio

- Add .schemas/tools.schema.json for YAML validation
- Update eng/generate-website-data.mjs to generate tools.json
- Add parseYamlFile() to eng/yaml-parser.mjs
- Refactor tools.astro to use external TypeScript module
- Create website/src/scripts/pages/tools.ts with:
  - FuzzySearch integration for search
  - Category filtering
  - Copy configuration functionality
2026-01-29 13:48:42 +11:00

152 lines
4.8 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Tools Catalog",
"description": "Schema for the awesome-copilot tools catalog (website/data/tools.yml)",
"type": "object",
"required": ["tools"],
"additionalProperties": false,
"properties": {
"tools": {
"type": "array",
"description": "List of tools in the catalog",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "name", "description", "category"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the tool",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 50
},
"name": {
"type": "string",
"description": "Display name for the tool",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"description": "Description of what this tool does",
"minLength": 1,
"maxLength": 1000
},
"category": {
"type": "string",
"description": "Category for grouping tools",
"minLength": 1,
"maxLength": 50,
"examples": ["MCP Servers", "VS Code Extensions", "CLI Tools", "Visual Studio Extensions"]
},
"featured": {
"type": "boolean",
"description": "Whether this tool is featured (shown first)",
"default": false
},
"requirements": {
"type": "array",
"description": "List of requirements to use this tool",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 10
},
"features": {
"type": "array",
"description": "List of key features",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 20
},
"links": {
"type": "object",
"description": "Links related to this tool",
"additionalProperties": false,
"properties": {
"blog": {
"type": "string",
"description": "Link to a blog post about the tool",
"format": "uri"
},
"documentation": {
"type": "string",
"description": "Link to documentation",
"format": "uri"
},
"github": {
"type": "string",
"description": "Link to GitHub repository",
"format": "uri"
},
"marketplace": {
"type": "string",
"description": "Link to VS Code or Visual Studio Marketplace",
"format": "uri"
},
"npm": {
"type": "string",
"description": "Link to npm package",
"format": "uri"
},
"pypi": {
"type": "string",
"description": "Link to PyPI package",
"format": "uri"
},
"vscode": {
"type": "string",
"description": "VS Code install link (vscode: URI or aka.ms link)"
},
"vscode-insiders": {
"type": "string",
"description": "VS Code Insiders install link"
},
"visual-studio": {
"type": "string",
"description": "Visual Studio install link"
}
}
},
"configuration": {
"type": "object",
"description": "Configuration snippet for the tool",
"required": ["type", "content"],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "Type of configuration (for syntax highlighting)",
"enum": ["json", "yaml", "bash", "toml", "ini"]
},
"content": {
"type": "string",
"description": "The configuration content"
}
}
},
"tags": {
"type": "array",
"description": "Tags for filtering and discovery",
"items": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 30
},
"uniqueItems": true,
"maxItems": 15
}
}
}
}
}
}