Files
root-at-skicandClaude Opus 5.5 22815a9940 Archify Diagram Viewer 0.1.0
VS Code extension that previews Archify diagrams from their JSON sources
(live, as you type) and opens rendered Archify HTML in a viewer tab.
Bundles the Archify 3.0.1 renderer and runs it on VS Code's Node runtime.
Adds validation diagnostics, JSON schema help, source-link navigation,
export saving, render-to-file and open-in-browser commands.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 12:44:15 +03:00

355 lines
7.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Archify Shared Definitions",
"$defs": {
"id": {
"type": "string",
"pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$"
},
"locale": {
"type": "string",
"pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
"maxLength": 35
},
"translations": {
"type": "object",
"propertyNames": {
"pattern": "^[a-z][a-zA-Z0-9]*(\\.[a-z][a-zA-Z0-9]*)*$"
},
"additionalProperties": {
"type": "string",
"minLength": 1,
"maxLength": 400
},
"maxProperties": 600
},
"animation": {
"enum": [
"trace",
"none"
]
},
"visualPreset": {
"enum": [
"classic",
"signal-flow",
"blueprint",
"editorial"
]
},
"qualityProfile": {
"enum": [
"standard",
"showcase"
]
},
"portableOutputPath": {
"description": "A portable POSIX-relative HTML output path. It must be safe to interpret identically on every supported host filesystem.",
"type": "string",
"minLength": 1,
"pattern": "^[^/]+(?:/[^/]+)*$",
"allOf": [
{
"pattern": "(?:^|/)[^/]+[.][Hh][Tt][Mm][Ll]$"
},
{
"not": {
"pattern": "[\\\\<>:\"|?*\\u0000-\\u001F\\u007F-\\u009F]"
}
},
{
"not": {
"pattern": "[\\uD800-\\uDFFF]"
}
},
{
"not": {
"pattern": "(^|/)[.]{1,2}(/|$)"
}
},
{
"not": {
"pattern": "[. ](/|$)"
}
},
{
"not": {
"pattern": "(^|/)[^/]{256}"
}
},
{
"not": {
"pattern": "(^|/)(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Oo][Nn][Ii][Nn][$]|[Cc][Oo][Nn][Oo][Uu][Tt][$]|[Cc][Oo][Mm][1-9¹²³]|[Ll][Pp][Tt][1-9¹²³])(?:[.]|/|$)"
}
},
{
"not": {
"pattern": "(^|/)[^/]*~[1-9][0-9]*(?:[.]|/|$)"
}
}
]
},
"side": {
"enum": [
"left",
"right",
"top",
"bottom"
]
},
"relationshipWidth": {
"type": "number",
"minimum": 0.5
},
"point": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
],
"items": false,
"minItems": 2,
"maxItems": 2
},
"componentType": {
"enum": [
"frontend",
"backend",
"database",
"cloud",
"security",
"messagebus",
"external"
]
},
"nodeIcon": {
"description": "Decorative corner icon. Omit the icon field for the type default; none hides it. Does not change type, color, or legend grouping.",
"enum": [
"calendar",
"clock",
"person",
"briefcase",
"flag",
"moon",
"frontend",
"backend",
"database",
"cloud",
"security",
"messagebus",
"external",
"start",
"active",
"waiting",
"success",
"failure",
"neutral",
"none"
]
},
"brandMark": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 2048,
"anyOf": [
{
"maxLength": 80,
"pattern": "^[^\\r\\n]+$"
},
{
"pattern": "^https?://"
}
]
},
{
"type": "object",
"additionalProperties": false,
"required": [
"url",
"sha256"
],
"properties": {
"url": {
"type": "string",
"minLength": 8,
"maxLength": 2048,
"pattern": "^https?://"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}
]
},
"variant": {
"enum": [
"default",
"emphasis",
"security",
"dashed"
]
},
"legendMode": {
"enum": [
"auto",
"all",
"hidden"
]
},
"legendEntry": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"visible": {
"type": "boolean"
}
}
},
"guidedViews": {
"type": "array",
"maxItems": 5,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"label",
"focus"
],
"properties": {
"id": {
"$ref": "#/$defs/id"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"focus": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/id"
}
},
"note": {
"type": "string",
"maxLength": 140
}
}
}
},
"repository": {
"type": "object",
"additionalProperties": false,
"required": [
"url",
"revision"
],
"properties": {
"url": {
"type": "string",
"minLength": 1
},
"provider": {
"enum": [
"github",
"gitee"
]
},
"link_mode": {
"enum": [
"web",
"local-only"
]
},
"revision": {
"type": "string",
"pattern": "^[a-fA-F0-9]{40}$"
}
}
},
"sourceReferences": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"line": {
"type": "integer",
"minimum": 1
},
"end_line": {
"type": "integer",
"minimum": 1
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 48
}
}
}
},
"cards": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"dot",
"title",
"items"
],
"properties": {
"dot": {
"enum": [
"cyan",
"emerald",
"violet",
"amber",
"rose",
"orange",
"slate"
]
},
"title": {
"type": "string",
"minLength": 1
},
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}