{
"$defs": {
"Agent": {
"description": "Agent integration target for an installed skill.",
"oneOf": [
{
"const": "claude",
"description": "Claude skill directory layout.",
"type": "string"
},
{
"const": "opencode",
"description": "OpenCode skill directory layout.",
"type": "string"
}
]
},
"AptMirrorDef": {
"additionalProperties": false,
"description": "Default APT mirror values and platform-specific override rules.",
"properties": {
"architectures": {
"default": [],
"description": "Default repository architectures.",
"items": {
"type": "string"
},
"type": "array"
},
"components": {
"default": [],
"description": "Default repository components.",
"items": {
"type": "string"
},
"type": "array"
},
"rules": {
"default": [],
"description": "Ordered platform-specific overrides.",
"items": {
"$ref": "#/$defs/AptMirrorRuleDef"
},
"type": "array"
},
"signed_by": {
"default": null,
"description": "Default keyring path used by `Signed-By`.",
"type": [
"string",
"null"
]
},
"source_file": {
"default": null,
"description": "Default managed Deb822 source file.",
"type": [
"string",
"null"
]
},
"suites": {
"default": [],
"description": "Default distribution suites.",
"items": {
"type": "string"
},
"type": "array"
},
"uri": {
"default": null,
"description": "Default repository URI.",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"AptMirrorRuleDef": {
"additionalProperties": false,
"description": "Conditional APT mirror override matched against detected system attributes.",
"properties": {
"architecture": {
"default": null,
"description": "Optional APT architecture predicate.",
"type": [
"string",
"null"
]
},
"architectures": {
"default": [],
"description": "Repository architecture override.",
"items": {
"type": "string"
},
"type": "array"
},
"codename": {
"default": null,
"description": "Optional distribution codename predicate.",
"type": [
"string",
"null"
]
},
"components": {
"default": [],
"description": "Repository component override.",
"items": {
"type": "string"
},
"type": "array"
},
"distribution": {
"default": null,
"description": "Optional distribution identifier predicate.",
"type": [
"string",
"null"
]
},
"signed_by": {
"default": null,
"description": "`Signed-By` keyring override.",
"type": [
"string",
"null"
]
},
"source_file": {
"default": null,
"description": "Managed source file override.",
"type": [
"string",
"null"
]
},
"suites": {
"default": [],
"description": "Distribution suite override.",
"items": {
"type": "string"
},
"type": "array"
},
"uri": {
"default": null,
"description": "Repository URI override.",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"ArchiveFormat": {
"description": "Archive payload format understood by archive backends.",
"oneOf": [
{
"const": "file",
"description": "Single-file payload.",
"type": "string"
},
{
"const": "tar_gz",
"description": "Gzip-compressed tar archive.",
"type": "string"
},
{
"const": "tar_xz",
"description": "XZ-compressed tar archive.",
"type": "string"
},
{
"const": "zip",
"description": "ZIP archive.",
"type": "string"
}
]
},
"CargoToolDef": {
"additionalProperties": false,
"description": "Compact declaration expanded into a Cargo-backed component.",
"properties": {
"bin": {
"default": null,
"description": "Single expected binary name.",
"type": [
"string",
"null"
]
},
"bins": {
"default": [],
"description": "Expected binary names when the crate installs more than one executable.",
"items": {
"type": "string"
},
"type": "array"
},
"build_env_allow": {
"default": [],
"description": "Environment variable names forwarded into the Cargo build.",
"items": {
"type": "string"
},
"type": "array"
},
"conflicts": {
"default": [],
"description": "Components or capabilities that cannot be selected together.",
"items": {
"type": "string"
},
"type": "array"
},
"crate": {
"default": null,
"description": "Crate name when it differs from the declaration key.",
"type": [
"string",
"null"
]
},
"detect": {
"default": null,
"description": "Command vector used to detect an existing installation.",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"features": {
"default": [],
"description": "Cargo features enabled for the build.",
"items": {
"type": "string"
},
"type": "array"
},
"locked": {
"default": true,
"description": "Whether Cargo must install with lockfile enforcement.",
"type": "boolean"
},
"optional": {
"default": false,
"description": "Whether interactive selection may omit this component.",
"type": "boolean"
},
"platforms": {
"default": [],
"description": "Platform selectors on which the generated component is eligible.",
"items": {
"type": "string"
},
"type": "array"
},
"profile": {
"default": null,
"description": "Cargo build profile; defaults to `release` after expansion.",
"type": [
"string",
"null"
]
},
"provides": {
"default": [],
"description": "Capability names supplied by the generated component.",
"items": {
"type": "string"
},
"type": "array"
},
"requires": {
"default": [],
"description": "Component or capability dependencies.",
"items": {
"type": "string"
},
"type": "array"
},
"revision": {
"default": null,
"description": "Pinned source revision for Git-backed Cargo installs.",
"type": [
"string",
"null"
]
},
"source": {
"default": null,
"description": "Named Cargo registry or Git source reference.",
"type": [
"string",
"null"
]
},
"target": {
"default": null,
"description": "Optional Cargo compilation target.",
"type": [
"string",
"null"
]
},
"toolchain": {
"default": null,
"description": "Optional Rust toolchain used to invoke Cargo.",
"type": [
"string",
"null"
]
},
"version": {
"description": "Exact or normalized Cargo version requirement.",
"type": "string"
}
},
"required": [
"version"
],
"type": "object"
},
"CargoToolInput": {
"anyOf": [
{
"description": "Version-only shorthand using the map key as crate and component identity.",
"type": "string"
},
{
"$ref": "#/$defs/CargoToolDef",
"description": "Full compact Cargo tool declaration."
}
],
"description": "Compact Cargo tool declaration expanded before planning."
},
"CertificatePreflightDef": {
"additionalProperties": false,
"description": "Detect, install, and verify a certificate required for subsequent network access.",
"properties": {
"detect": {
"$ref": "#/$defs/CheckSpec",
"description": "Check that succeeds when the required certificate is already available."
},
"install": {
"$ref": "#/$defs/InstallSpec",
"description": "Policy-gated installation operation run only when detection fails."
},
"platforms": {
"default": [
"*"
],
"description": "Platform selectors on which this prerequisite applies.",
"items": {
"type": "string"
},
"type": "array"
},
"verify": {
"anyOf": [
{
"$ref": "#/$defs/CheckSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional stricter post-install check; detection is repeated when omitted."
}
},
"required": [
"detect",
"install"
],
"type": "object"
},
"CheckSpec": {
"description": "Typed predicate used for installation detection and post-install verification.",
"oneOf": [
{
"additionalProperties": false,
"description": "Execute a program directly and validate its status and optional stdout predicate.",
"properties": {
"args": {
"default": [],
"description": "Arguments passed without shell parsing.",
"items": {
"type": "string"
},
"type": "array"
},
"kind": {
"const": "command",
"type": "string"
},
"program": {
"description": "Program name or path.",
"type": "string"
},
"stdout_contains": {
"description": "Optional output predicate for commands whose exit status alone is insufficient.",
"type": [
"string",
"null"
]
},
"success_codes": {
"default": [
0
],
"description": "Exit codes accepted as success.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"timeout_secs": {
"default": 10,
"description": "Maximum execution duration in seconds; `None` disables the check timeout.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"kind",
"program"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Execute a shell expression when shell policy permits it.",
"properties": {
"command": {
"description": "Shell expression to execute.",
"type": "string"
},
"kind": {
"const": "shell",
"type": "string"
},
"timeout_secs": {
"default": 10,
"description": "Maximum execution duration in seconds; `None` disables the check timeout.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"kind",
"command"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Test whether a filesystem path exists.",
"properties": {
"kind": {
"const": "path",
"type": "string"
},
"path": {
"description": "Path whose existence indicates success.",
"type": "string"
}
},
"required": [
"kind",
"path"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Require every nested check to succeed.",
"properties": {
"checks": {
"description": "Checks evaluated as a conjunction.",
"items": {
"$ref": "#/$defs/CheckSpec"
},
"type": "array"
},
"kind": {
"const": "all",
"type": "string"
}
},
"required": [
"kind",
"checks"
],
"type": "object"
}
]
},
"CommandCheckInput": {
"anyOf": [
{
"description": "One program-and-arguments vector.",
"items": {
"type": "string"
},
"type": "array"
},
{
"description": "Conjunction of command vectors; all checks must succeed.",
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
}
],
"description": "Command detection shorthand accepted by compact declarations."
},
"ComponentDef": {
"additionalProperties": false,
"description": "Canonical component definition resolved by profiles and lowered into plan nodes.",
"properties": {
"agents": {
"default": [],
"description": "Agent destinations for skill components.",
"items": {
"$ref": "#/$defs/Agent"
},
"type": "array"
},
"allow_insecure_hosts": {
"default": [],
"description": "Hosts for which this component may allow insecure TLS/HTTP access. Supported by pip and\nuv-tool with concrete hosts or the `*` wildcard.",
"items": {
"type": "string"
},
"type": "array"
},
"conflicts": {
"default": [],
"description": "Components or capabilities that cannot be selected together.",
"items": {
"type": "string"
},
"type": "array"
},
"detect": {
"anyOf": [
{
"$ref": "#/$defs/CheckSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Check used to detect an existing installation."
},
"display_name": {
"default": null,
"description": "Optional human-readable name.",
"type": [
"string",
"null"
]
},
"id": {
"description": "Stable component identifier.",
"type": "string"
},
"install": {
"anyOf": [
{
"$ref": "#/$defs/InstallSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Typed installation operation."
},
"kind": {
"$ref": "#/$defs/InstallKind",
"default": "tool",
"description": "Whether the component installs a tool or an agent skill."
},
"optional": {
"default": false,
"description": "Whether interactive selection may omit this component.",
"type": "boolean"
},
"platforms": {
"default": [
"*"
],
"description": "Platform selectors on which the component is eligible.",
"items": {
"type": "string"
},
"type": "array"
},
"provides": {
"default": [],
"description": "Capabilities supplied by this component.",
"items": {
"type": "string"
},
"type": "array"
},
"requires": {
"default": [],
"description": "Component or capability dependencies.",
"items": {
"type": "string"
},
"type": "array"
},
"revision": {
"default": null,
"description": "Pinned upstream revision recorded with the installation.",
"type": [
"string",
"null"
]
},
"source": {
"default": null,
"description": "Named source reference consumed by the selected backend.",
"type": [
"string",
"null"
]
},
"variants": {
"default": [],
"description": "Platform-specific alternatives merged during resolution.",
"items": {
"$ref": "#/$defs/VariantDef"
},
"type": "array"
},
"verify": {
"anyOf": [
{
"$ref": "#/$defs/CheckSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Check required to accept a completed installation."
},
"version": {
"default": null,
"description": "Version supplied by this component, used to identify older existing installations.",
"type": [
"string",
"null"
]
}
},
"required": [
"id"
],
"type": "object"
},
"EnvironmentDef": {
"additionalProperties": false,
"description": "Named path values and ordered environment mutations.",
"properties": {
"mutations": {
"default": [],
"description": "Ordered environment changes applied after installation.",
"items": {
"$ref": "#/$defs/EnvironmentMutation"
},
"type": "array"
},
"paths": {
"additionalProperties": {
"type": "string"
},
"description": "Named path values referenced by environment mutations.",
"type": "object"
}
},
"type": "object"
},
"EnvironmentMutation": {
"description": "Typed environment mutation with explicit scope and platform selectors.",
"oneOf": [
{
"additionalProperties": false,
"description": "Set an environment variable.",
"properties": {
"id": {
"description": "Stable mutation identifier.",
"type": "string"
},
"kind": {
"const": "variable",
"type": "string"
},
"name": {
"description": "Environment variable name.",
"type": "string"
},
"platforms": {
"default": [
"*"
],
"description": "Eligible target selectors.",
"items": {
"type": "string"
},
"type": "array"
},
"scope": {
"$ref": "#/$defs/MutationScope",
"default": "user",
"description": "Process-only or persistent user scope."
},
"value": {
"description": "Value after path and environment expansion.",
"type": "string"
}
},
"required": [
"kind",
"id",
"name",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Prepend one value to the platform path variable.",
"properties": {
"id": {
"description": "Stable mutation identifier.",
"type": "string"
},
"kind": {
"const": "path-prepend",
"type": "string"
},
"platforms": {
"default": [
"*"
],
"description": "Eligible target selectors.",
"items": {
"type": "string"
},
"type": "array"
},
"scope": {
"$ref": "#/$defs/MutationScope",
"default": "user",
"description": "Process-only or persistent user scope."
},
"value": {
"description": "Path value after expansion.",
"type": "string"
}
},
"required": [
"kind",
"id",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Maintain a marked fragment in a text file.",
"properties": {
"id": {
"description": "Stable mutation identifier used for fragment markers.",
"type": "string"
},
"kind": {
"const": "file-fragment",
"type": "string"
},
"lines": {
"description": "Lines maintained inside the managed fragment.",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "File to update.",
"type": "string"
},
"platforms": {
"default": [
"*"
],
"description": "Eligible target selectors.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"kind",
"id",
"path",
"lines"
],
"type": "object"
}
]
},
"InstallKind": {
"description": "Whether a registry entry represents a tool or a skill.",
"oneOf": [
{
"const": "tool",
"description": "Executable or development tool.",
"type": "string"
},
{
"const": "skill",
"description": "Agent skill payload.",
"type": "string"
}
]
},
"InstallSpec": {
"description": "Typed installation operation selected for a component.",
"oneOf": [
{
"additionalProperties": false,
"description": "Managed Cargo build and activation.",
"properties": {
"backend": {
"const": "cargo",
"type": "string"
},
"bins": {
"default": [],
"description": "Expected executable names activated from the result.",
"items": {
"type": "string"
},
"type": "array"
},
"build_env_allow": {
"default": [],
"description": "Environment variable names forwarded into the build.",
"items": {
"type": "string"
},
"type": "array"
},
"crate": {
"description": "Crate package name.",
"type": "string"
},
"features": {
"default": [],
"description": "Cargo features enabled for the build.",
"items": {
"type": "string"
},
"type": "array"
},
"locked": {
"default": true,
"description": "Whether Cargo must honor the package lockfile.",
"type": "boolean"
},
"profile": {
"default": "release",
"description": "Cargo build profile.",
"type": "string"
},
"revision": {
"default": null,
"description": "Pinned revision for Git-backed sources.",
"type": [
"string",
"null"
]
},
"source": {
"default": null,
"description": "Optional named registry or Git source.",
"type": [
"string",
"null"
]
},
"target": {
"default": null,
"description": "Optional compilation target triple.",
"type": [
"string",
"null"
]
},
"toolchain": {
"default": null,
"description": "Optional Rust toolchain used to invoke Cargo.",
"type": [
"string",
"null"
]
},
"version": {
"description": "Cargo version requirement.",
"type": "string"
}
},
"required": [
"backend",
"crate",
"version"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "APT package installation.",
"properties": {
"backend": {
"const": "apt",
"type": "string"
},
"packages": {
"description": "Package names passed to APT.",
"items": {
"type": "string"
},
"type": "array"
},
"update": {
"default": false,
"description": "Whether to update package indexes before installation.",
"type": "boolean"
}
},
"required": [
"backend",
"packages"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Homebrew formula installation.",
"properties": {
"backend": {
"const": "brew",
"type": "string"
},
"formulae": {
"description": "Formula names passed to Homebrew.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"backend",
"formulae"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "rustup toolchain or component installation.",
"properties": {
"backend": {
"const": "rustup",
"type": "string"
},
"bootstrap": {
"anyOf": [
{
"$ref": "#/$defs/RustupBootstrap"
},
{
"type": "null"
}
],
"default": null,
"description": "Verified bootstrap used when rustup is unavailable."
},
"components": {
"default": [],
"description": "Components installed into the selected toolchain.",
"items": {
"type": "string"
},
"type": "array"
},
"default": {
"default": false,
"description": "Whether the toolchain becomes rustup's default.",
"type": "boolean"
},
"toolchain": {
"default": null,
"description": "Explicit toolchain name.",
"type": [
"string",
"null"
]
},
"toolchain-ref": {
"default": null,
"description": "Reference resolved through the configuration version map.",
"type": [
"string",
"null"
]
}
},
"required": [
"backend"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "npm global package installation.",
"properties": {
"backend": {
"const": "npm",
"type": "string"
},
"package": {
"description": "npm package name.",
"type": "string"
},
"source": {
"default": null,
"description": "Optional named npm registry source.",
"type": [
"string",
"null"
]
},
"version": {
"description": "Exact package version.",
"type": "string"
}
},
"required": [
"backend",
"package",
"version"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Python package installation into a managed virtual environment.",
"properties": {
"backend": {
"const": "pip",
"type": "string"
},
"environment": {
"description": "Managed virtual-environment path below `$BOT_FORGE_HOME`.",
"type": "string"
},
"index": {
"default": null,
"description": "Optional HTTPS Python package index.",
"type": [
"string",
"null"
]
},
"package": {
"description": "Python distribution package name.",
"type": "string"
},
"python": {
"default": "python3",
"description": "Python interpreter used to create the virtual environment.",
"type": "string"
},
"version": {
"description": "Exact package version.",
"type": "string"
}
},
"required": [
"backend",
"package",
"version",
"environment"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Python CLI installation through uv's isolated tool manager.",
"properties": {
"backend": {
"const": "uv-tool",
"type": "string"
},
"bins": {
"description": "Executables expected from the installed tool.",
"items": {
"type": "string"
},
"type": "array"
},
"force": {
"default": false,
"description": "Replace existing executable entries when necessary.",
"type": "boolean"
},
"index": {
"default": null,
"description": "Optional HTTPS Python package index.",
"type": [
"string",
"null"
]
},
"package": {
"description": "Package requirement accepted by `uv tool install`.",
"type": "string"
}
},
"required": [
"backend",
"package",
"bins"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Windows Package Manager installation.",
"properties": {
"arguments": {
"default": [],
"description": "Additional winget arguments.",
"items": {
"type": "string"
},
"type": "array"
},
"backend": {
"const": "winget",
"type": "string"
},
"package": {
"description": "winget package identifier.",
"type": "string"
}
},
"required": [
"backend",
"package"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Verified archive download and extraction.",
"properties": {
"allow_links": {
"default": false,
"description": "Permit TAR symlinks and hardlinks whose resolved targets remain inside the destination.",
"type": "boolean"
},
"backend": {
"const": "archive",
"type": "string"
},
"format": {
"$ref": "#/$defs/ArchiveFormat",
"default": "file",
"description": "Payload format."
},
"sha256": {
"description": "Expected lowercase SHA-256 digest.",
"type": "string"
},
"strip_components": {
"default": 0,
"description": "Leading archive path components removed during extraction.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"target": {
"description": "Managed destination path.",
"type": "string"
},
"url": {
"description": "Download URL.",
"type": "string"
}
},
"required": [
"backend",
"url",
"sha256",
"target"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Pinned Git source build and activation.",
"properties": {
"backend": {
"const": "git",
"type": "string"
},
"bins": {
"additionalProperties": {
"type": "string"
},
"default": {},
"description": "Activated binary name to repository-relative output path mappings.",
"type": "object"
},
"revision": {
"description": "Immutable commit or tag revision.",
"type": "string"
},
"subdirectory": {
"default": null,
"description": "Optional repository-relative build directory.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Repository URL.",
"type": "string"
}
},
"required": [
"backend",
"url",
"revision"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Explicitly authorized shell installation.",
"properties": {
"backend": {
"const": "shell",
"type": "string"
},
"command": {
"description": "Shell expression to execute.",
"type": "string"
},
"inactivity_timeout_secs": {
"default": null,
"description": "Maximum duration without captured output in seconds.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"resources": {
"default": [],
"description": "Additional named resources acquired for this operation.",
"items": {
"type": "string"
},
"type": "array"
},
"rollback": {
"default": null,
"description": "Optional rollback expression invoked after a failed transaction.",
"type": [
"string",
"null"
]
},
"timeout_secs": {
"default": null,
"description": "Maximum total execution duration in seconds.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"backend",
"command"
],
"type": "object"
}
]
},
"MutationScope": {
"description": "Persistence scope for an environment mutation.",
"oneOf": [
{
"const": "process",
"description": "Change only the current bot-forge process environment.",
"type": "string"
},
{
"const": "user",
"description": "Persist the change in the current user's environment configuration.",
"type": "string"
}
]
},
"NetworkPolicy": {
"description": "Whether execution may use the network or only local state.",
"oneOf": [
{
"const": "online",
"description": "Permit network access and local caches.",
"type": "string"
},
{
"const": "cache-only",
"description": "Forbid upstream access while permitting previously cached content.",
"type": "string"
},
{
"const": "offline",
"description": "Forbid both upstream access and operations that require network-backed cache resolution.",
"type": "string"
}
]
},
"PackageToolDef": {
"additionalProperties": false,
"description": "Compact cross-platform system-package declaration expanded into one canonical component.",
"properties": {
"apt": {
"default": [],
"description": "Debian/Ubuntu package names.",
"items": {
"type": "string"
},
"type": "array"
},
"apt_update": {
"default": false,
"description": "Whether the APT package index must be updated before installation.",
"type": "boolean"
},
"brew": {
"default": [],
"description": "Homebrew formula names.",
"items": {
"type": "string"
},
"type": "array"
},
"brew_detect": {
"anyOf": [
{
"$ref": "#/$defs/CommandCheckInput"
},
{
"type": "null"
}
],
"default": null,
"description": "Homebrew-specific detection override."
},
"conflicts": {
"default": [],
"description": "Components or capabilities that cannot be selected together.",
"items": {
"type": "string"
},
"type": "array"
},
"detect": {
"$ref": "#/$defs/CommandCheckInput",
"description": "Default command check shared by generated platform variants."
},
"display_name": {
"default": null,
"description": "Optional human-readable component name.",
"type": [
"string",
"null"
]
},
"optional": {
"default": false,
"description": "Whether interactive selection may omit this component.",
"type": "boolean"
},
"provides": {
"default": [],
"description": "Capabilities supplied by the generated component.",
"items": {
"type": "string"
},
"type": "array"
},
"requires": {
"default": [],
"description": "Component or capability dependencies.",
"items": {
"type": "string"
},
"type": "array"
},
"winget": {
"default": null,
"description": "winget package identifier.",
"type": [
"string",
"null"
]
},
"winget_arguments": {
"default": [],
"description": "Additional arguments passed to winget installation.",
"items": {
"type": "string"
},
"type": "array"
},
"winget_detect": {
"anyOf": [
{
"$ref": "#/$defs/CommandCheckInput"
},
{
"type": "null"
}
],
"default": null,
"description": "winget-specific detection override."
}
},
"required": [
"detect"
],
"type": "object"
},
"Policy": {
"additionalProperties": false,
"description": "Global execution and installation policy.",
"properties": {
"allow_shell": {
"default": false,
"description": "Whether arbitrary shell installation definitions are accepted.",
"type": "boolean"
},
"allow_unlocked_cargo": {
"default": false,
"description": "Whether Cargo installs may omit lockfile enforcement.",
"type": "boolean"
},
"max_downloads": {
"default": 4,
"description": "Maximum number of concurrent network transfers.",
"format": "uint",
"maximum": 256,
"minimum": 1,
"type": "integer"
},
"max_memory_mib": {
"default": null,
"description": "Optional memory budget shared by scheduled work, in MiB.",
"format": "uint64",
"maximum": 4294967295,
"minimum": 512,
"type": [
"integer",
"null"
]
},
"max_parallel": {
"default": 8,
"description": "Maximum number of concurrently scheduled nodes.",
"format": "uint",
"maximum": 256,
"minimum": 1,
"type": "integer"
},
"network": {
"$ref": "#/$defs/NetworkPolicy",
"default": "online",
"description": "Network access permitted during execution."
}
},
"type": "object"
},
"PreflightDef": {
"additionalProperties": false,
"description": "Installation prerequisites that must be satisfied before ordinary installation work begins.",
"properties": {
"certificate": {
"anyOf": [
{
"$ref": "#/$defs/CertificatePreflightDef"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional machine certificate prerequisite."
}
},
"type": "object"
},
"ProfileDef": {
"additionalProperties": false,
"description": "Profile inheritance and component membership changes.",
"properties": {
"add": {
"description": "Components to add to the fully expanded profile in this configuration layer.",
"items": {
"type": "string"
},
"type": "array"
},
"components": {
"default": [],
"description": "Base component or group references selected by the profile.",
"items": {
"type": "string"
},
"type": "array"
},
"inherits": {
"default": [],
"description": "Profiles expanded before this profile's own membership changes.",
"items": {
"type": "string"
},
"type": "array"
},
"remove": {
"description": "Components to remove from the fully expanded profile in this configuration layer.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"RustupBootstrap": {
"additionalProperties": false,
"description": "Platform-indexed verified rustup bootstrap download.",
"properties": {
"sha256": {
"additionalProperties": {
"type": "string"
},
"description": "SHA-256 digests keyed by target selector.",
"type": "object"
},
"url": {
"description": "Download URL, which may contain the selected target placeholder.",
"type": "string"
}
},
"required": [
"url",
"sha256"
],
"type": "object"
},
"RustupToolDef": {
"additionalProperties": false,
"description": "Compact declaration expanded into a rustup-backed component.",
"properties": {
"bootstrap": {
"anyOf": [
{
"$ref": "#/$defs/RustupBootstrap"
},
{
"type": "null"
}
],
"default": null,
"description": "Verified rustup bootstrap used when rustup is unavailable."
},
"components": {
"description": "rustup components to install.",
"items": {
"type": "string"
},
"type": "array"
},
"conflicts": {
"default": [],
"description": "Components or capabilities that cannot be selected together.",
"items": {
"type": "string"
},
"type": "array"
},
"default": {
"default": false,
"description": "Whether the selected toolchain becomes rustup's default.",
"type": "boolean"
},
"detect": {
"anyOf": [
{
"$ref": "#/$defs/CommandCheckInput"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional command detection override."
},
"detect-stdout-contains": {
"default": null,
"description": "Required substring in detection command stdout.",
"type": [
"string",
"null"
]
},
"display_name": {
"default": null,
"description": "Optional human-readable component name.",
"type": [
"string",
"null"
]
},
"optional": {
"default": false,
"description": "Whether interactive selection may omit this component.",
"type": "boolean"
},
"provides": {
"default": [],
"description": "Capabilities supplied by the generated component.",
"items": {
"type": "string"
},
"type": "array"
},
"requires": {
"default": [],
"description": "Component or capability dependencies.",
"items": {
"type": "string"
},
"type": "array"
},
"toolchain": {
"default": null,
"description": "Explicit toolchain name.",
"type": [
"string",
"null"
]
},
"toolchain-ref": {
"default": null,
"description": "Reference resolved through the document's version map.",
"type": [
"string",
"null"
]
}
},
"required": [
"components"
],
"type": "object"
},
"RustupToolInput": {
"anyOf": [
{
"description": "Single rustup component shorthand.",
"type": "string"
},
{
"$ref": "#/$defs/RustupToolDef",
"description": "Full compact rustup tool declaration."
}
],
"description": "String or detailed shorthand for a rustup-backed component."
},
"SourceDef": {
"description": "Named upstream source referenced by component installation definitions.",
"oneOf": [
{
"additionalProperties": false,
"description": "Alternative Cargo registry endpoint.",
"properties": {
"kind": {
"const": "cargo-registry",
"type": "string"
},
"url": {
"description": "Registry base URL.",
"type": "string"
}
},
"required": [
"kind",
"url"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Base URL prepended to relative archive paths.",
"properties": {
"base_url": {
"description": "Mirror base URL.",
"type": "string"
},
"kind": {
"const": "archive-mirror",
"type": "string"
}
},
"required": [
"kind",
"base_url"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Named Git repository endpoint.",
"properties": {
"kind": {
"const": "git",
"type": "string"
},
"url": {
"description": "Repository URL.",
"type": "string"
}
},
"required": [
"kind",
"url"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "Alternative npm registry endpoint.",
"properties": {
"kind": {
"const": "npm-registry",
"type": "string"
},
"url": {
"description": "Registry base URL.",
"type": "string"
}
},
"required": [
"kind",
"url"
],
"type": "object"
}
]
},
"VariantDef": {
"additionalProperties": false,
"description": "Platform-specific override merged into a canonical component.",
"properties": {
"conflicts": {
"default": [],
"description": "Additional conflicts introduced by this variant.",
"items": {
"type": "string"
},
"type": "array"
},
"detect": {
"anyOf": [
{
"$ref": "#/$defs/CheckSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Variant-specific detection override."
},
"id": {
"description": "Variant identifier recorded in resolved plans.",
"type": "string"
},
"install": {
"anyOf": [
{
"$ref": "#/$defs/InstallSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Variant-specific installation override."
},
"platforms": {
"default": [
"*"
],
"description": "Platform selectors that make the variant eligible.",
"items": {
"type": "string"
},
"type": "array"
},
"provides": {
"default": [],
"description": "Additional capabilities supplied by this variant.",
"items": {
"type": "string"
},
"type": "array"
},
"requires": {
"default": [],
"description": "Additional dependencies introduced by this variant.",
"items": {
"type": "string"
},
"type": "array"
},
"verify": {
"anyOf": [
{
"$ref": "#/$defs/CheckSpec"
},
{
"type": "null"
}
],
"default": null,
"description": "Variant-specific verification override."
},
"version": {
"default": null,
"description": "Variant-specific supplied version override.",
"type": [
"string",
"null"
]
}
},
"required": [
"id"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"description": "Canonical configuration document consumed by the planner.",
"properties": {
"apt_mirror": {
"anyOf": [
{
"$ref": "#/$defs/AptMirrorDef"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional APT mirror configuration."
},
"cargo-tools": {
"additionalProperties": {
"$ref": "#/$defs/CargoToolInput"
},
"description": "Short, typed declarations expanded into canonical components at load time.",
"type": "object"
},
"cargo-toolsets": {
"additionalProperties": {
"additionalProperties": {
"$ref": "#/$defs/CargoToolInput"
},
"type": "object"
},
"description": "Named Cargo tool collections expanded into components and a same-named group.",
"type": "object"
},
"catalog": {
"const": "rust-dev",
"type": "string"
},
"components": {
"default": [],
"description": "Canonical component definitions available to the planner.",
"items": {
"$ref": "#/$defs/ComponentDef"
},
"type": "array"
},
"environment": {
"$ref": "#/$defs/EnvironmentDef",
"default": {
"mutations": []
},
"description": "Environment paths and mutations applied after installation."
},
"groups": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Named component lists expanded by profiles and dependency references.",
"type": "object"
},
"include": {
"default": [],
"description": "Relative local configuration fragments merged after the primary file.",
"items": {
"type": "string"
},
"type": "array"
},
"package-tools": {
"additionalProperties": {
"$ref": "#/$defs/PackageToolDef"
},
"description": "Compact system-package declarations expanded into platform-specific components.",
"type": "object"
},
"policy": {
"$ref": "#/$defs/Policy",
"default": {
"allow_shell": false,
"allow_unlocked_cargo": false,
"max_downloads": 4,
"max_memory_mib": null,
"max_parallel": 8,
"network": "online"
},
"description": "Global security, network, and resource policy."
},
"preflight": {
"$ref": "#/$defs/PreflightDef",
"description": "Installation prerequisites executed before package mirrors and component detection."
},
"profiles": {
"additionalProperties": {
"$ref": "#/$defs/ProfileDef"
},
"default": {},
"description": "Named installation profiles.",
"type": "object"
},
"rustup-tools": {
"additionalProperties": {
"$ref": "#/$defs/RustupToolInput"
},
"description": "Compact rustup declarations expanded into canonical components.",
"type": "object"
},
"sources": {
"additionalProperties": {
"$ref": "#/$defs/SourceDef"
},
"default": {},
"description": "Named upstream source definitions.",
"type": "object"
},
"versions": {
"additionalProperties": {
"type": "string"
},
"description": "Named version values referenced by compact tool declarations.",
"type": "object"
}
},
"required": [
"catalog"
],
"title": "bot-forge configuration",
"type": "object"
}