Files
NetMesh/electron/plugins/generated/plugin-contract.schema.json

4309 lines
98 KiB
JSON
Raw Permalink Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://netcatty.com/schemas/plugins/0.1.0-internal/plugin-contract.schema.json",
"title": "Netcatty Plugin Contract",
"description": "Canonical public contract for Netcatty plugin manifests and host RPC messages.",
"$ref": "#/$defs/PluginManifest",
"$defs": {
"JsonPrimitive": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"JsonValue": {
"oneOf": [
{
"$ref": "#/$defs/JsonPrimitive"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/JsonValue"
}
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/JsonValue"
}
}
]
},
"JsonValueLimits": {
"description": "Host-enforced structural limits for every plugin protocol JSON value.",
"const": {
"maxDepth": 128,
"maxNodes": 100000
}
},
"WireIntegerLimits": {
"description": "Host-enforced integer precision limit for JSON protocol fields used in identity, ordering, and correlation.",
"const": {
"maxSafeInteger": 9007199254740991
}
},
"RpcLimits": {
"description": "Host-enforced byte limit for one JSON-RPC control message. Larger payloads must use a stream.",
"const": {
"maxJsonBytes": 1048576
}
},
"SafeUnsignedInteger": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"SafePositiveInteger": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"StreamLimits": {
"description": "Host-enforced identifier and byte limits for stream frames.",
"const": {
"maxStreamIdLength": 128,
"maxChunkBytes": 16777216,
"maxFrameJsonBytes": 25165824,
"minWindowBytes": 1024,
"maxWindowBytes": 16777216,
"maxCreditBytes": 16777216
}
},
"TerminalInterceptorLimits": {
"description": "Host-enforced byte and receive-window limits for the privileged direct terminal interceptor MessagePort.",
"const": {
"maxChunkBytes": 65536,
"maxWindowBytes": 262144
}
},
"ImporterLimits": {
"description": "Host-enforced byte and record limits for one importer operation.",
"const": {
"maxInputBytes": 67108864,
"maxOutputBytes": 67108864,
"maxRecordBytes": 67108864,
"maxRecords": 10000
}
},
"SyncLimits": {
"description": "Host-enforced byte and identifier limits for one encrypted sync-object operation. inlineObjectBytes is the maximum ciphertext size that may travel inline on the control plane (below the 128 KiB provider JSON budget after base64 expansion).",
"const": {
"maxObjectBytes": 67108864,
"maxObjectKeyLength": 1024,
"maxRevisionLength": 256,
"inlineObjectBytes": 92160
}
},
"StreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"StreamChunkByteLength": {
"type": "integer",
"minimum": 0,
"maximum": 16777216
},
"StreamWindowBytes": {
"type": "integer",
"minimum": 1024,
"maximum": 16777216
},
"StreamCreditBytes": {
"type": "integer",
"minimum": 1,
"maximum": 16777216
},
"RelativePackagePath": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*//)(?!.*\\\\)(?!.*[\\u0000-\\u001F<>:\"|?*])(?!\\.{1,2}(?:/|$))(?!.*\\/\\.{1,2}(?:/|$))(?!(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Oo][Mm][1-9]|[Ll][Pp][Tt][1-9])(?:\\.[^/]*)?(?:/|$))(?!.*\\/(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Oo][Mm][1-9]|[Ll][Pp][Tt][1-9])(?:\\.[^/]*)?(?:/|$))(?!.*[. ](?:/|$))[^/]+(?:/[^/]+)*$"
},
"PluginId": {
"type": "string",
"minLength": 3,
"maxLength": 128,
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+$"
},
"ContributionId": {
"type": "string",
"minLength": 5,
"maxLength": 192,
"description": "A globally unique contribution id. Semantic validation requires the exact '<pluginId>.' prefix.",
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+\\.[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$"
},
"PluginHostProtocol": {
"type": "string",
"minLength": 12,
"maxLength": 199,
"description": "A host protocol owned by a connection Provider contribution: plugin:<providerId>.",
"pattern": "^plugin:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+\\.[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$"
},
"FeatureId": {
"type": "string",
"minLength": 3,
"maxLength": 128,
"pattern": "^[a-z][a-z0-9-]*(?:\\.[a-z0-9][a-z0-9_-]*)+$"
},
"SecretRef": {
"description": "A host-issued reference to secret material. The random identifier is opaque and never sufficient authority on its own. The non-secret key binds permission authorization to the packaged manifest resource; privileged consumers must revalidate identifier ownership, key binding, and operation scope.",
"type": "object",
"required": [
"kind",
"id",
"key"
],
"properties": {
"kind": {
"const": "secret"
},
"id": {
"type": "string",
"minLength": 16,
"maxLength": 256
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\u0000]+$"
}
},
"additionalProperties": false
},
"CredentialRef": {
"description": "An opaque host-issued reference to a Netcatty-owned credential. The host validates ownership and provider-operation scope before issuing a plaintext lease.",
"type": "object",
"required": [
"kind",
"id"
],
"properties": {
"kind": {
"const": "credential"
},
"id": {
"type": "string",
"minLength": 16,
"maxLength": 256
}
},
"additionalProperties": false
},
"SecretLeaseRef": {
"description": "An opaque, operation-bound, single-consumption lease. Only a host capability broker can consume it after revalidating runtime identity and operation scope.",
"type": "object",
"required": [
"kind",
"id",
"operationId",
"expiresAt"
],
"properties": {
"kind": {
"const": "secret-lease"
},
"id": {
"type": "string",
"minLength": 32,
"maxLength": 256
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"expiresAt": {
"$ref": "#/$defs/SafePositiveInteger"
}
},
"additionalProperties": false
},
"SemanticVersion": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
},
"SemverRange": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "A node-semver compatible range. Official consumers must also run semantic validation.",
"pattern": "^(?! *$)[0-9A-Za-z<>=~^*xX|.\\-+ ]+$"
},
"LocalizedText": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 512
},
{
"type": "object",
"minProperties": 1,
"propertyNames": {
"pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
},
"additionalProperties": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
}
]
},
"PluginPermission": {
"type": "string",
"enum": [
"storage",
"runtime.advanced",
"settings.read",
"settings.write",
"commands",
"menus",
"views",
"clipboard.read",
"clipboard.write",
"terminal.metadata",
"terminal.output",
"terminal.input",
"terminal.decorate",
"terminal.complete",
"terminal.intercept.input",
"terminal.intercept.output",
"vault.metadata",
"vault.write",
"vault.credentials",
"sftp.read",
"sftp.write",
"network",
"filesystem.read",
"filesystem.write",
"secrets",
"companion.execute",
"provider.terminal",
"provider.connection",
"provider.authentication",
"provider.sync",
"provider.importer"
]
},
"NonResourceScopedPermission": {
"description": "A permission whose complete activation-time scope is represented by the permission name itself.",
"type": "string",
"enum": [
"storage",
"runtime.advanced",
"settings.read",
"settings.write",
"commands",
"menus",
"views",
"clipboard.read",
"clipboard.write",
"terminal.metadata",
"terminal.output",
"terminal.input",
"terminal.decorate",
"terminal.complete",
"terminal.intercept.input",
"terminal.intercept.output",
"vault.metadata",
"vault.write",
"vault.credentials",
"sftp.read",
"sftp.write",
"secrets",
"provider.terminal",
"provider.connection",
"provider.authentication",
"provider.sync",
"provider.importer"
]
},
"ResourceScopedPermission": {
"description": "A permission whose approval must be constrained to explicit canonical resources.",
"type": "string",
"enum": [
"network",
"filesystem.read",
"filesystem.write",
"companion.execute"
]
},
"PermissionResource": {
"description": "A host-canonicalized permission resource. Filesystem resources may be absolute platform paths; other permission kinds impose narrower runtime limits.",
"type": "string",
"minLength": 1,
"maxLength": 8192
},
"BoundedPermissionResource": {
"description": "An explicit resource bound; the all-resources wildcard is not an activation-time bound.",
"type": "string",
"minLength": 1,
"maxLength": 8192,
"not": {
"const": "*"
}
},
"PermissionResourceKind": {
"description": "Whether a canonical resource grant covers only that resource or a filesystem directory subtree.",
"type": "string",
"enum": [
"exact",
"directory"
]
},
"PermissionResourceDeclaration": {
"type": "object",
"required": [
"permission",
"resources"
],
"properties": {
"permission": {
"$ref": "#/$defs/PluginPermission"
},
"resources": {
"type": "array",
"minItems": 1,
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/PermissionResource"
}
},
"reason": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
},
"PermissionDeclaration": {
"oneOf": [
{
"$ref": "#/$defs/PluginPermission"
},
{
"$ref": "#/$defs/PermissionResourceDeclaration"
}
]
},
"RequiredPermissionResourceDeclaration": {
"type": "object",
"required": [
"permission",
"resources"
],
"properties": {
"permission": {
"$ref": "#/$defs/ResourceScopedPermission"
},
"resources": {
"type": "array",
"minItems": 1,
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/BoundedPermissionResource"
}
},
"reason": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
},
"RequiredPermissionDeclaration": {
"description": "Required resource-scoped permissions must name their complete activation-time approval bounds.",
"oneOf": [
{
"$ref": "#/$defs/NonResourceScopedPermission"
},
{
"$ref": "#/$defs/RequiredPermissionResourceDeclaration"
}
]
},
"PermissionSet": {
"type": "object",
"properties": {
"required": {
"type": "array",
"maxItems": 64,
"items": {
"$ref": "#/$defs/RequiredPermissionDeclaration"
}
},
"optional": {
"type": "array",
"maxItems": 64,
"items": {
"$ref": "#/$defs/PermissionDeclaration"
}
}
},
"additionalProperties": false
},
"PluginEntrypoints": {
"type": "object",
"properties": {
"browser": {
"$ref": "#/$defs/RelativePackagePath"
},
"node": {
"$ref": "#/$defs/RelativePackagePath"
}
},
"minProperties": 1,
"additionalProperties": false
},
"PluginEngines": {
"type": "object",
"required": [
"netcatty",
"api"
],
"properties": {
"netcatty": {
"$ref": "#/$defs/SemverRange"
},
"api": {
"$ref": "#/$defs/SemverRange"
}
},
"additionalProperties": false
},
"PluginEngineHeader": {
"type": "object",
"required": [
"netcatty",
"api"
],
"properties": {
"netcatty": {
"$ref": "#/$defs/SemverRange"
},
"api": {
"$ref": "#/$defs/SemverRange"
}
},
"additionalProperties": true
},
"PluginFeatures": {
"type": "object",
"properties": {
"required": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/FeatureId"
}
},
"optional": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/FeatureId"
}
}
},
"additionalProperties": false
},
"ActivationEvent": {
"oneOf": [
{
"const": "onStartupFinished"
},
{
"type": "string",
"maxLength": 256,
"pattern": "^on(?:Command|View|Provider):[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+\\.[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$"
}
]
},
"ContextKeyExpression": {
"type": "string",
"minLength": 1,
"maxLength": 1024,
"description": "A host-parsed Context Key expression. Plugins must not evaluate this string themselves."
},
"ThemeIcon": {
"type": "object",
"required": [
"kind",
"name"
],
"properties": {
"kind": {
"const": "theme"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-z][a-z0-9-]*$"
}
},
"additionalProperties": false
},
"PackageIcon": {
"type": "object",
"required": [
"kind",
"light"
],
"properties": {
"kind": {
"const": "package"
},
"light": {
"$ref": "#/$defs/RelativePackagePath"
},
"dark": {
"$ref": "#/$defs/RelativePackagePath"
}
},
"additionalProperties": false
},
"IconReference": {
"oneOf": [
{
"$ref": "#/$defs/ThemeIcon"
},
{
"$ref": "#/$defs/PackageIcon"
}
]
},
"SettingScope": {
"type": "string",
"enum": [
"application",
"workspace",
"host",
"session",
"device"
]
},
"SettingControl": {
"type": "string",
"enum": [
"switch",
"radio",
"select",
"multiselect",
"text",
"textarea",
"number",
"slider",
"password",
"color",
"font",
"file",
"directory",
"keybinding",
"list",
"table"
]
},
"SettingOption": {
"type": "object",
"required": [
"value",
"label"
],
"properties": {
"value": {
"type": "string",
"maxLength": 256
},
"label": {
"$ref": "#/$defs/LocalizedText"
},
"description": {
"$ref": "#/$defs/LocalizedText"
}
},
"additionalProperties": false
},
"SettingContribution": {
"type": "object",
"required": [
"id",
"label",
"control",
"scope"
],
"properties": {
"id": {
"$ref": "#/$defs/ContributionId"
},
"label": {
"$ref": "#/$defs/LocalizedText"
},
"description": {
"$ref": "#/$defs/LocalizedText"
},
"control": {
"$ref": "#/$defs/SettingControl"
},
"scope": {
"$ref": "#/$defs/SettingScope"
},
"default": {
"$ref": "#/$defs/JsonValue"
},
"secret": {
"type": "boolean",
"default": false
},
"required": {
"type": "boolean",
"default": false
},
"options": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/SettingOption"
}
},
"minimum": {
"type": "number"
},
"maximum": {
"type": "number"
},
"step": {
"type": "number",
"exclusiveMinimum": 0
},
"pattern": {
"type": "string",
"maxLength": 512
},
"placeholder": {
"$ref": "#/$defs/LocalizedText"
},
"when": {
"$ref": "#/$defs/ContextKeyExpression"
},
"restartRequired": {
"type": "boolean",
"default": false
},
"sync": {
"type": "boolean",
"default": false
},
"sortable": {
"type": "boolean",
"default": false
},
"valueSchema": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"CommandContribution": {
"type": "object",
"required": [
"id",
"title"
],
"properties": {
"id": {
"$ref": "#/$defs/ContributionId"
},
"title": {
"$ref": "#/$defs/LocalizedText"
},
"category": {
"$ref": "#/$defs/LocalizedText"
},
"description": {
"$ref": "#/$defs/LocalizedText"
},
"icon": {
"$ref": "#/$defs/IconReference"
},
"enablement": {
"$ref": "#/$defs/ContextKeyExpression"
}
},
"additionalProperties": false
},
"KeybindingContribution": {
"type": "object",
"required": [
"command",
"key"
],
"properties": {
"command": {
"$ref": "#/$defs/ContributionId"
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"mac": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"linux": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"windows": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"when": {
"$ref": "#/$defs/ContextKeyExpression"
},
"args": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"MenuLocation": {
"type": "string",
"enum": [
"commandPalette",
"application",
"host/context",
"terminal/context",
"terminal/toolbar",
"statusBar"
]
},
"MenuContribution": {
"type": "object",
"required": [
"command",
"location"
],
"properties": {
"command": {
"$ref": "#/$defs/ContributionId"
},
"alt": {
"$ref": "#/$defs/ContributionId"
},
"location": {
"$ref": "#/$defs/MenuLocation"
},
"title": {
"$ref": "#/$defs/LocalizedText"
},
"icon": {
"$ref": "#/$defs/IconReference"
},
"group": {
"type": "string",
"maxLength": 128
},
"order": {
"type": "number"
},
"when": {
"$ref": "#/$defs/ContextKeyExpression"
},
"enablement": {
"$ref": "#/$defs/ContextKeyExpression"
},
"checked": {
"$ref": "#/$defs/ContextKeyExpression"
},
"showKeybinding": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"ViewLocation": {
"type": "string",
"enum": [
"aside",
"panel",
"tab",
"modal",
"settings"
]
},
"ViewContribution": {
"type": "object",
"required": [
"id",
"title",
"location",
"entry"
],
"properties": {
"id": {
"$ref": "#/$defs/ContributionId"
},
"title": {
"$ref": "#/$defs/LocalizedText"
},
"location": {
"$ref": "#/$defs/ViewLocation"
},
"entry": {
"$ref": "#/$defs/RelativePackagePath"
},
"icon": {
"$ref": "#/$defs/IconReference"
},
"order": {
"type": "number"
},
"when": {
"$ref": "#/$defs/ContextKeyExpression"
},
"retainContextWhenHidden": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"ProviderKind": {
"type": "string",
"enum": [
"terminal.completion",
"terminal.decoration",
"terminal.link",
"terminal.hover",
"terminal.matcher",
"terminal.semantic",
"terminal.prompt",
"terminal.background",
"terminal.theme",
"terminal.interceptor.input",
"terminal.interceptor.output",
"connection",
"authentication",
"sync",
"importer"
]
},
"ProviderContribution": {
"type": "object",
"required": [
"id",
"label",
"kind"
],
"properties": {
"id": {
"$ref": "#/$defs/ContributionId"
},
"label": {
"$ref": "#/$defs/LocalizedText"
},
"description": {
"$ref": "#/$defs/LocalizedText"
},
"kind": {
"$ref": "#/$defs/ProviderKind"
},
"capabilities": {
"type": "array",
"maxItems": 64,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/FeatureId"
}
},
"configurationSchema": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"ProviderValidationIssue": {
"type": "object",
"required": [
"severity",
"message"
],
"properties": {
"path": {
"type": "string",
"maxLength": 1024
},
"severity": {
"type": "string",
"enum": [
"warning",
"error"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"additionalProperties": false
},
"ConnectionConfigurationPayload": {
"type": "object",
"required": [
"configuration"
],
"properties": {
"configuration": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"ConnectionValidateResult": {
"type": "object",
"required": [
"valid",
"issues"
],
"properties": {
"valid": {
"type": "boolean"
},
"issues": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/ProviderValidationIssue"
}
}
},
"additionalProperties": false
},
"ConnectionProbeResult": {
"type": "object",
"required": [
"available"
],
"properties": {
"available": {
"type": "boolean"
},
"message": {
"type": "string",
"maxLength": 2048
},
"capabilities": {
"type": "object",
"maxProperties": 64,
"additionalProperties": {
"$ref": "#/$defs/JsonValue"
}
}
},
"additionalProperties": false
},
"ConnectionOpenPayload": {
"type": "object",
"required": [
"configuration",
"operationId",
"columns",
"rows",
"inputStreamId",
"outputStreamId",
"windowBytes"
],
"properties": {
"configuration": {
"$ref": "#/$defs/JsonValue"
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"columns": {
"type": "integer",
"minimum": 1,
"maximum": 16384
},
"rows": {
"type": "integer",
"minimum": 1,
"maximum": 16384
},
"inputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"outputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"windowBytes": {
"type": "integer",
"minimum": 1024,
"maximum": 16777216
},
"credential": {
"oneOf": [
{
"$ref": "#/$defs/SecretRef"
},
{
"$ref": "#/$defs/CredentialRef"
},
{
"$ref": "#/$defs/SecretLeaseRef"
}
]
},
"authenticationProviderId": {
"$ref": "#/$defs/ContributionId"
}
},
"additionalProperties": false
},
"ConnectionOpenResult": {
"type": "object",
"required": [
"connectionId",
"status"
],
"properties": {
"connectionId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"status": {
"type": "string",
"enum": [
"connecting",
"connected"
]
},
"diagnostics": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/ProviderValidationIssue"
}
}
},
"additionalProperties": false
},
"ConnectionControlPayload": {
"type": "object",
"required": [
"connectionId",
"operationId"
],
"properties": {
"connectionId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"ConnectionResizePayload": {
"type": "object",
"required": [
"connectionId",
"operationId",
"columns",
"rows"
],
"properties": {
"connectionId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"columns": {
"type": "integer",
"minimum": 1,
"maximum": 16384
},
"rows": {
"type": "integer",
"minimum": 1,
"maximum": 16384
}
},
"additionalProperties": false
},
"ConnectionSignalPayload": {
"type": "object",
"required": [
"connectionId",
"operationId",
"signal"
],
"properties": {
"connectionId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"signal": {
"type": "string",
"enum": [
"interrupt",
"terminate",
"kill",
"eof",
"break"
]
}
},
"additionalProperties": false
},
"ConnectionControlResult": {
"description": "resize, signal, reconnect, and close are acknowledged by returning JSON null. Any object result is rejected.",
"const": null
},
"ConnectionStatusResult": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"enum": [
"connecting",
"connected",
"reconnecting",
"closed",
"error"
]
},
"message": {
"type": "string",
"maxLength": 2048
},
"retryable": {
"type": "boolean"
},
"diagnostics": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/ProviderValidationIssue"
}
}
},
"additionalProperties": false
},
"AuthenticationChallenge": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"kind",
"title"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"type": "string",
"enum": [
"text",
"password",
"otp"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"message": {
"type": "string",
"maxLength": 2048
},
"placeholder": {
"type": "string",
"maxLength": 512
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"kind",
"title",
"choices"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "choice"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"message": {
"type": "string",
"maxLength": 2048
},
"choices": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"description": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
}
},
"multiple": {
"type": "boolean"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"kind",
"title"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "confirmation"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"message": {
"type": "string",
"maxLength": 2048
},
"confirmLabel": {
"type": "string",
"maxLength": 128
},
"cancelLabel": {
"type": "string",
"maxLength": 128
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"kind",
"title",
"url"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "browser"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"callbackUri": {
"type": "string",
"format": "uri",
"maxLength": 8192
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"kind",
"title",
"verificationUri",
"userCode",
"expiresAt"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"const": "deviceCode"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"verificationUri": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"userCode": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"expiresAt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"intervalMs": {
"type": "integer",
"minimum": 100,
"maximum": 300000
}
},
"additionalProperties": false
}
]
},
"AuthenticationBeginPayload": {
"type": "object",
"required": [
"operationId",
"connectionProviderId",
"configuration"
],
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"connectionProviderId": {
"$ref": "#/$defs/ContributionId"
},
"configuration": {
"$ref": "#/$defs/JsonValue"
},
"credential": {
"oneOf": [
{
"$ref": "#/$defs/SecretRef"
},
{
"$ref": "#/$defs/CredentialRef"
},
{
"$ref": "#/$defs/SecretLeaseRef"
}
]
}
},
"additionalProperties": false
},
"AuthenticationResponsePayload": {
"type": "object",
"required": [
"operationId",
"challengeId",
"response"
],
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"challengeId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"response": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 8192
},
{
"type": "boolean"
},
{
"type": "array",
"maxItems": 64,
"uniqueItems": true,
"items": {
"type": "string",
"maxLength": 128
}
},
{
"$ref": "#/$defs/SecretLeaseRef"
}
]
}
},
"additionalProperties": false
},
"AuthenticationResult": {
"oneOf": [
{
"type": "object",
"required": [
"status",
"challenge"
],
"properties": {
"status": {
"const": "challenge"
},
"challenge": {
"$ref": "#/$defs/AuthenticationChallenge"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"const": "authenticated"
},
"credential": {
"oneOf": [
{
"$ref": "#/$defs/SecretRef"
},
{
"$ref": "#/$defs/CredentialRef"
}
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"const": "cancelled"
},
"message": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"const": "failed"
},
"message": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
}
]
},
"ImporterDetectPayload": {
"type": "object",
"required": [
"sample"
],
"properties": {
"fileName": {
"type": "string",
"maxLength": 1024
},
"mediaType": {
"type": "string",
"maxLength": 256
},
"sample": {
"type": "object",
"required": [
"encoding",
"data"
],
"properties": {
"encoding": {
"const": "base64"
},
"data": {
"type": "string",
"maxLength": 174764
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"ImporterDetectResult": {
"type": "object",
"required": [
"confidence"
],
"properties": {
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"format": {
"type": "string",
"maxLength": 256
},
"reason": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
},
"ImporterParsePayload": {
"type": "object",
"required": [
"operationId",
"inputStreamId",
"outputStreamId",
"windowBytes"
],
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"fileName": {
"type": "string",
"maxLength": 1024
},
"mediaType": {
"type": "string",
"maxLength": 256
},
"inputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"outputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"windowBytes": {
"type": "integer",
"minimum": 1024,
"maximum": 16777216
},
"options": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"ImporterParseResult": {
"type": "object",
"required": [
"parsed",
"warnings",
"errors"
],
"properties": {
"parsed": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"warnings": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"errors": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false
},
"ImporterPluginConnectionDraft": {
"type": "object",
"required": [
"providerId",
"configuration"
],
"properties": {
"providerId": {
"$ref": "#/$defs/ContributionId"
},
"configuration": {
"$ref": "#/$defs/JsonValue"
},
"authenticationProviderId": {
"$ref": "#/$defs/ContributionId"
},
"credentialId": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Source id of an identity or key draft in the same import. Netcatty maps it to the newly persisted host-owned credential id."
}
},
"additionalProperties": false
},
"ImporterHostDraft": {
"description": "A host draft normalized by Netcatty before Vault persistence. Executable startup commands and plaintext built-in credentials are intentionally not part of this public importer shape.",
"type": "object",
"anyOf": [
{
"required": [
"hostname"
],
"properties": {
"hostname": {
"type": "string",
"minLength": 1,
"maxLength": 1024
}
}
},
{
"required": [
"protocol",
"pluginConnection"
],
"properties": {
"protocol": {
"$ref": "#/$defs/PluginHostProtocol"
},
"pluginConnection": {
"$ref": "#/$defs/ImporterPluginConnectionDraft"
}
}
}
],
"if": {
"type": "object",
"required": [
"protocol"
],
"properties": {
"protocol": {
"$ref": "#/$defs/PluginHostProtocol"
}
}
},
"then": {
"required": [
"pluginConnection"
]
},
"dependentRequired": {
"pluginConnection": [
"protocol"
]
},
"dependentSchemas": {
"pluginConnection": {
"type": "object",
"required": [
"protocol"
],
"properties": {
"protocol": {
"$ref": "#/$defs/PluginHostProtocol"
}
}
}
},
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"hostname": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"username": {
"type": "string",
"maxLength": 512
},
"group": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"tags": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"os": {
"type": "string",
"enum": [
"linux",
"windows",
"macos"
]
},
"deviceType": {
"type": "string",
"enum": [
"general",
"network"
]
},
"identityId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"identityFileId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"telnetIdentityId": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"protocol": {
"oneOf": [
{
"type": "string",
"enum": [
"ssh",
"telnet",
"mosh",
"et",
"local",
"serial"
]
},
{
"$ref": "#/$defs/PluginHostProtocol"
}
]
},
"pluginConnection": {
"$ref": "#/$defs/ImporterPluginConnectionDraft"
},
"notes": {
"type": "string",
"maxLength": 65536
},
"theme": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"sftpEncoding": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"sftpFileProtocol": {
"type": "string",
"enum": [
"auto",
"sftp",
"scp"
]
},
"moshEnabled": {
"type": "boolean"
},
"etEnabled": {
"type": "boolean"
},
"telnetEnabled": {
"type": "boolean"
},
"sftpSudo": {
"type": "boolean"
},
"requiresMfa": {
"type": "boolean"
},
"useSshAgent": {
"type": "boolean"
},
"identitiesOnly": {
"type": "boolean"
},
"agentForwarding": {
"type": "boolean"
},
"x11Forwarding": {
"type": "boolean"
},
"showLineTimestamps": {
"type": "boolean"
},
"disableDynamicTabTitle": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"autoOpenSftpPanel": {
"type": "boolean"
},
"sftpFollowTerminalCwd": {
"type": "boolean"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"telnetPort": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"etPort": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"keepaliveInterval": {
"type": "integer",
"minimum": 0,
"maximum": 3600
},
"keepaliveCountMax": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false
},
"ImporterIdentityDraft": {
"type": "object",
"required": [
"label",
"username",
"authMethod"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"username": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"authMethod": {
"type": "string",
"enum": [
"password",
"key",
"certificate"
]
},
"password": {
"type": "string",
"maxLength": 65536
},
"keyId": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"additionalProperties": false
},
"ImporterKeyDraft": {
"type": "object",
"required": [
"label",
"type"
],
"oneOf": [
{
"required": [
"privateKey"
],
"properties": {
"privateKey": {
"type": "string",
"minLength": 1,
"maxLength": 2097152
}
}
},
{
"required": [
"filePath"
],
"properties": {
"filePath": {
"type": "string",
"minLength": 1,
"maxLength": 8192
}
}
}
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"type": {
"type": "string",
"enum": [
"RSA",
"ECDSA",
"ED25519"
]
},
"privateKey": {
"type": "string",
"minLength": 1,
"maxLength": 2097152
},
"publicKey": {
"type": "string",
"maxLength": 1048576
},
"certificate": {
"type": "string",
"maxLength": 1048576
},
"passphrase": {
"type": "string",
"maxLength": 65536
},
"filePath": {
"type": "string",
"minLength": 1,
"maxLength": 8192
},
"category": {
"type": "string",
"enum": [
"key",
"certificate",
"identity"
]
}
},
"additionalProperties": false
},
"ImporterSnippetDraft": {
"type": "object",
"required": [
"label",
"command"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"command": {
"type": "string",
"minLength": 1,
"maxLength": 1048576
},
"tags": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"kind": {
"type": "string",
"enum": [
"snippet",
"script"
]
},
"description": {
"type": "string",
"maxLength": 4096
}
},
"additionalProperties": false
},
"ImporterGroupDraft": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 512
},
{
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
},
"anyOf": [
{
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
}
},
{
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 512
}
}
}
],
"additionalProperties": false
}
]
},
"ImporterRecord": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"draft"
],
"properties": {
"type": {
"const": "draft"
},
"draft": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"const": "host"
},
"value": {
"$ref": "#/$defs/ImporterHostDraft"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"const": "identity"
},
"value": {
"$ref": "#/$defs/ImporterIdentityDraft"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"const": "key"
},
"value": {
"$ref": "#/$defs/ImporterKeyDraft"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"const": "snippet"
},
"value": {
"$ref": "#/$defs/ImporterSnippetDraft"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"const": "group"
},
"value": {
"$ref": "#/$defs/ImporterGroupDraft"
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string",
"enum": [
"warning",
"error"
]
},
"code": {
"type": "string",
"maxLength": 128
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"path": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"completed"
],
"properties": {
"type": {
"const": "progress"
},
"completed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"message": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
}
]
},
"SyncObjectKey": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"SyncObjectRevision": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"SyncAccount": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"email": {
"type": "string",
"maxLength": 512
},
"name": {
"type": "string",
"maxLength": 512
},
"avatarUrl": {
"type": "string",
"maxLength": 2048
}
},
"additionalProperties": false
},
"SyncConnectPayload": {
"type": "object",
"required": [
"configuration",
"operationId"
],
"properties": {
"configuration": {
"$ref": "#/$defs/JsonValue"
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"credential": {
"oneOf": [
{
"$ref": "#/$defs/SecretRef"
},
{
"$ref": "#/$defs/CredentialRef"
},
{
"$ref": "#/$defs/SecretLeaseRef"
}
]
}
},
"additionalProperties": false
},
"SyncConnectResult": {
"type": "object",
"required": [
"account"
],
"properties": {
"account": {
"$ref": "#/$defs/SyncAccount"
}
},
"additionalProperties": false
},
"SyncDisconnectPayload": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"SyncDisconnectResult": {
"type": "null"
},
"SyncGetAccountPayload": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"SyncGetAccountResult": {
"type": "object",
"required": [
"account"
],
"properties": {
"account": {
"oneOf": [
{
"$ref": "#/$defs/SyncAccount"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"SyncGetCapabilitiesPayload": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"SyncCapabilitiesResult": {
"type": "object",
"required": [
"revisions",
"conditionalWrites",
"atomicReplacement"
],
"properties": {
"revisions": {
"type": "boolean"
},
"conditionalWrites": {
"type": "boolean"
},
"atomicReplacement": {
"type": "boolean"
},
"maxObjectBytes": {
"type": "integer",
"minimum": 1,
"maximum": 67108864
},
"maxObjects": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"additionalProperties": false
},
"SyncReadObjectPayload": {
"type": "object",
"required": [
"key",
"operationId"
],
"properties": {
"key": {
"$ref": "#/$defs/SyncObjectKey"
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"outputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"windowBytes": {
"type": "integer",
"minimum": 1024,
"maximum": 16777216
}
},
"additionalProperties": false
},
"SyncReadObjectResult": {
"oneOf": [
{
"type": "object",
"required": [
"found"
],
"properties": {
"found": {
"const": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"found",
"byteLength",
"encoding",
"data"
],
"properties": {
"found": {
"const": true
},
"byteLength": {
"type": "integer",
"minimum": 0,
"maximum": 67108864
},
"encoding": {
"const": "base64"
},
"data": {
"type": "string",
"maxLength": 9007199254740991
},
"revision": {
"$ref": "#/$defs/SyncObjectRevision"
},
"contentType": {
"type": "string",
"maxLength": 256
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"found",
"byteLength",
"streamed"
],
"properties": {
"found": {
"const": true
},
"byteLength": {
"type": "integer",
"minimum": 0,
"maximum": 67108864
},
"streamed": {
"const": true
},
"revision": {
"$ref": "#/$defs/SyncObjectRevision"
},
"contentType": {
"type": "string",
"maxLength": 256
}
},
"additionalProperties": false
}
]
},
"SyncWriteObjectPayload": {
"type": "object",
"required": [
"key",
"operationId",
"byteLength"
],
"properties": {
"key": {
"$ref": "#/$defs/SyncObjectKey"
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"byteLength": {
"type": "integer",
"minimum": 0,
"maximum": 67108864
},
"expectedRevision": {
"oneOf": [
{
"$ref": "#/$defs/SyncObjectRevision"
},
{
"type": "null"
}
]
},
"encoding": {
"const": "base64"
},
"data": {
"type": "string",
"maxLength": 9007199254740991
},
"inputStreamId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"windowBytes": {
"type": "integer",
"minimum": 1024,
"maximum": 16777216
}
},
"additionalProperties": false
},
"SyncWriteObjectResult": {
"type": "object",
"required": [
"created"
],
"properties": {
"created": {
"type": "boolean"
},
"revision": {
"$ref": "#/$defs/SyncObjectRevision"
}
},
"additionalProperties": false
},
"SyncDeleteObjectPayload": {
"type": "object",
"required": [
"key",
"operationId"
],
"properties": {
"key": {
"$ref": "#/$defs/SyncObjectKey"
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"expectedRevision": {
"$ref": "#/$defs/SyncObjectRevision"
}
},
"additionalProperties": false
},
"SyncDeleteObjectResult": {
"type": "object",
"required": [
"deleted"
],
"properties": {
"deleted": {
"type": "boolean"
}
},
"additionalProperties": false
},
"CompanionPlatform": {
"type": "string",
"enum": [
"darwin-arm64",
"darwin-x64",
"linux-arm64",
"linux-x64",
"win32-arm64",
"win32-x64"
]
},
"CompanionExecutableVariant": {
"type": "object",
"required": [
"path",
"platforms",
"sha256"
],
"properties": {
"path": {
"$ref": "#/$defs/RelativePackagePath"
},
"platforms": {
"type": "array",
"minItems": 1,
"maxItems": 6,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/CompanionPlatform"
}
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"additionalProperties": false
},
"CompanionExecutable": {
"type": "object",
"required": [
"id",
"variants"
],
"properties": {
"id": {
"$ref": "#/$defs/ContributionId"
},
"variants": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"items": {
"$ref": "#/$defs/CompanionExecutableVariant"
}
},
"permissions": {
"type": "array",
"maxItems": 32,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/PluginPermission"
}
}
},
"additionalProperties": false
},
"PluginContributions": {
"type": "object",
"properties": {
"settings": {
"type": "array",
"maxItems": 512,
"items": {
"$ref": "#/$defs/SettingContribution"
}
},
"commands": {
"type": "array",
"maxItems": 512,
"items": {
"$ref": "#/$defs/CommandContribution"
}
},
"keybindings": {
"type": "array",
"maxItems": 1024,
"items": {
"$ref": "#/$defs/KeybindingContribution"
}
},
"menus": {
"type": "array",
"maxItems": 1024,
"items": {
"$ref": "#/$defs/MenuContribution"
}
},
"views": {
"type": "array",
"maxItems": 128,
"items": {
"$ref": "#/$defs/ViewContribution"
}
},
"providers": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/ProviderContribution"
}
}
},
"additionalProperties": false
},
"PluginManifestHeader": {
"type": "object",
"required": [
"manifestVersion",
"id",
"version",
"engines"
],
"properties": {
"$schema": {
"type": "string",
"format": "uri-reference"
},
"manifestVersion": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"id": {
"$ref": "#/$defs/PluginId"
},
"version": {
"$ref": "#/$defs/SemanticVersion"
},
"engines": {
"$ref": "#/$defs/PluginEngineHeader"
}
},
"additionalProperties": true
},
"PluginManifest": {
"type": "object",
"required": [
"manifestVersion",
"id",
"name",
"version",
"publisher",
"engines",
"main"
],
"properties": {
"$schema": {
"type": "string",
"format": "uri-reference"
},
"manifestVersion": {
"const": 1
},
"id": {
"$ref": "#/$defs/PluginId"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"displayName": {
"$ref": "#/$defs/LocalizedText"
},
"description": {
"$ref": "#/$defs/LocalizedText"
},
"version": {
"$ref": "#/$defs/SemanticVersion"
},
"publisher": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"license": {
"type": "string",
"maxLength": 128
},
"homepage": {
"type": "string",
"format": "uri"
},
"repository": {
"type": "string",
"format": "uri"
},
"engines": {
"$ref": "#/$defs/PluginEngines"
},
"features": {
"$ref": "#/$defs/PluginFeatures"
},
"main": {
"$ref": "#/$defs/PluginEntrypoints"
},
"activationEvents": {
"type": "array",
"maxItems": 256,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/ActivationEvent"
}
},
"permissions": {
"$ref": "#/$defs/PermissionSet"
},
"contributes": {
"$ref": "#/$defs/PluginContributions"
},
"companionExecutables": {
"type": "array",
"maxItems": 32,
"items": {
"$ref": "#/$defs/CompanionExecutable"
}
}
},
"additionalProperties": false
},
"RpcId": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 128
},
{
"$ref": "#/$defs/SafeUnsignedInteger"
}
]
},
"NullableRpcId": {
"oneOf": [
{
"$ref": "#/$defs/RpcId"
},
{
"type": "null"
}
]
},
"RpcRequest": {
"type": "object",
"description": "A generic request. Reserved methods with dedicated schemas are excluded and must validate against their exact contract.",
"required": [
"jsonrpc",
"id",
"method"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"method": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"params": {
"$ref": "#/$defs/JsonValue"
},
"deadlineMs": {
"type": "integer",
"minimum": 1,
"maximum": 300000
},
"cancellationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"not": {
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"plugin.initialize",
"plugin.terminal.interceptor.attach",
"$/cancelRequest",
"$/progress"
]
}
}
},
"additionalProperties": false
},
"RpcNotification": {
"type": "object",
"description": "A generic notification. Reserved notifications with dedicated schemas are excluded and must validate against their exact contract.",
"required": [
"jsonrpc",
"method"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"method": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"params": {
"$ref": "#/$defs/JsonValue"
}
},
"not": {
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"plugin.initialize",
"plugin.terminal.interceptor.attach",
"$/cancelRequest",
"$/progress"
]
}
}
},
"additionalProperties": false
},
"RpcSuccess": {
"type": "object",
"required": [
"jsonrpc",
"id",
"result"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"result": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"JsonRpcStandardErrorCode": {
"type": "integer",
"enum": [
-32700,
-32600,
-32601,
-32602,
-32603
]
},
"PluginWireErrorCode": {
"type": "integer",
"enum": [
-32001,
-32002,
-32003,
-32004,
-32005,
-32006,
-32007,
-32008,
-32009,
-32010,
-32011,
-32012,
-32013,
-32014,
-32015,
-32016
]
},
"PluginErrorName": {
"type": "string",
"enum": [
"cancelled",
"unknown",
"deadline_exceeded",
"invalid_argument",
"not_found",
"already_exists",
"permission_denied",
"resource_exhausted",
"failed_precondition",
"aborted",
"out_of_range",
"unavailable",
"unsupported",
"internal",
"data_loss",
"unauthenticated"
]
},
"PluginErrorData": {
"type": "object",
"required": [
"pluginCode"
],
"properties": {
"pluginCode": {
"$ref": "#/$defs/PluginErrorName"
},
"details": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"RpcErrorCode": {
"oneOf": [
{
"$ref": "#/$defs/JsonRpcStandardErrorCode"
},
{
"$ref": "#/$defs/PluginWireErrorCode"
}
]
},
"RpcErrorObject": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"$ref": "#/$defs/RpcErrorCode"
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"data": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
"RpcFailure": {
"type": "object",
"required": [
"jsonrpc",
"id",
"error"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/NullableRpcId"
},
"error": {
"$ref": "#/$defs/RpcErrorObject"
}
},
"additionalProperties": false
},
"ProgressToken": {
"$ref": "#/$defs/RpcId"
},
"ProgressBegin": {
"type": "object",
"required": [
"kind",
"title"
],
"properties": {
"kind": {
"const": "begin"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"message": {
"type": "string",
"maxLength": 1024
},
"percentage": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"cancellable": {
"type": "boolean"
}
},
"additionalProperties": false
},
"ProgressReport": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"const": "report"
},
"message": {
"type": "string",
"maxLength": 1024
},
"percentage": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"increment": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"not": {
"required": [
"percentage",
"increment"
],
"properties": {
"percentage": true,
"increment": true
}
},
"additionalProperties": false
},
"ProgressEnd": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"const": "end"
},
"message": {
"type": "string",
"maxLength": 1024
}
},
"additionalProperties": false
},
"ProgressValue": {
"oneOf": [
{
"$ref": "#/$defs/ProgressBegin"
},
{
"$ref": "#/$defs/ProgressReport"
},
{
"$ref": "#/$defs/ProgressEnd"
}
]
},
"RpcProgressNotification": {
"type": "object",
"required": [
"jsonrpc",
"method",
"params"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"method": {
"const": "$/progress"
},
"params": {
"type": "object",
"required": [
"token",
"value"
],
"properties": {
"token": {
"$ref": "#/$defs/ProgressToken"
},
"value": {
"$ref": "#/$defs/ProgressValue"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"RpcCancel": {
"type": "object",
"required": [
"jsonrpc",
"method",
"params"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"method": {
"const": "$/cancelRequest"
},
"params": {
"type": "object",
"required": [
"cancellationId"
],
"properties": {
"cancellationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"StreamChunkData": {
"oneOf": [
{
"type": "object",
"required": [
"encoding",
"value",
"byteLength"
],
"properties": {
"encoding": {
"const": "json"
},
"value": {
"$ref": "#/$defs/JsonValue"
},
"byteLength": {
"$ref": "#/$defs/StreamChunkByteLength"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"encoding",
"value",
"byteLength"
],
"properties": {
"encoding": {
"const": "base64"
},
"value": {
"type": "string",
"maxLength": 22369624,
"contentEncoding": "base64"
},
"byteLength": {
"$ref": "#/$defs/StreamChunkByteLength"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"encoding",
"byteLength"
],
"properties": {
"encoding": {
"const": "transfer"
},
"byteLength": {
"$ref": "#/$defs/StreamChunkByteLength"
}
},
"additionalProperties": false
}
]
},
"StreamFrame": {
"oneOf": [
{
"type": "object",
"required": [
"streamId",
"sequence",
"kind",
"windowBytes"
],
"properties": {
"streamId": {
"$ref": "#/$defs/StreamId"
},
"sequence": {
"const": 0
},
"kind": {
"const": "open"
},
"windowBytes": {
"$ref": "#/$defs/StreamWindowBytes"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"streamId",
"sequence",
"kind",
"data"
],
"properties": {
"streamId": {
"$ref": "#/$defs/StreamId"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"kind": {
"const": "chunk"
},
"data": {
"$ref": "#/$defs/StreamChunkData"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"streamId",
"sequence",
"kind"
],
"properties": {
"streamId": {
"$ref": "#/$defs/StreamId"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"kind": {
"enum": [
"end",
"cancel"
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"streamId",
"sequence",
"kind",
"error"
],
"properties": {
"streamId": {
"$ref": "#/$defs/StreamId"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"kind": {
"const": "error"
},
"error": {
"$ref": "#/$defs/RpcErrorObject"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"streamId",
"sequence",
"kind",
"creditBytes"
],
"properties": {
"streamId": {
"$ref": "#/$defs/StreamId"
},
"sequence": {
"$ref": "#/$defs/SafeUnsignedInteger"
},
"kind": {
"const": "windowUpdate"
},
"creditBytes": {
"$ref": "#/$defs/StreamCreditBytes"
}
},
"additionalProperties": false
}
]
},
"TerminalInterceptorDirection": {
"type": "string",
"enum": [
"input",
"output"
]
},
"TerminalInterceptorChunkByteLength": {
"type": "integer",
"minimum": 0,
"maximum": 65536
},
"TerminalInterceptorWindowBytes": {
"type": "integer",
"minimum": 1,
"maximum": 262144
},
"TerminalInterceptorCreditBytes": {
"type": "integer",
"minimum": 0,
"maximum": 262144
},
"TerminalInterceptorReadyFrame": {
"type": "object",
"required": [
"type",
"sessionId",
"direction",
"windowBytes"
],
"properties": {
"type": {
"const": "netcatty:terminal-interceptor:ready"
},
"sessionId": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\u0000]+$"
},
"direction": {
"$ref": "#/$defs/TerminalInterceptorDirection"
},
"windowBytes": {
"$ref": "#/$defs/TerminalInterceptorWindowBytes"
}
},
"additionalProperties": false
},
"TerminalInterceptorChunkFrame": {
"type": "object",
"required": [
"type",
"sequence",
"direction",
"creditBytes",
"byteLength"
],
"properties": {
"type": {
"const": "netcatty:terminal-interceptor:chunk"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"direction": {
"$ref": "#/$defs/TerminalInterceptorDirection"
},
"creditBytes": {
"$ref": "#/$defs/TerminalInterceptorCreditBytes"
},
"byteLength": {
"$ref": "#/$defs/TerminalInterceptorChunkByteLength"
}
},
"additionalProperties": false
},
"TerminalInterceptorOkResultFrame": {
"type": "object",
"required": [
"type",
"sequence",
"status",
"creditBytes",
"byteLength"
],
"properties": {
"type": {
"const": "netcatty:terminal-interceptor:result"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"status": {
"const": "ok"
},
"creditBytes": {
"$ref": "#/$defs/TerminalInterceptorChunkByteLength"
},
"byteLength": {
"$ref": "#/$defs/TerminalInterceptorChunkByteLength"
}
},
"additionalProperties": false
},
"TerminalInterceptorFailedResultFrame": {
"type": "object",
"required": [
"type",
"sequence",
"status"
],
"properties": {
"type": {
"const": "netcatty:terminal-interceptor:result"
},
"sequence": {
"$ref": "#/$defs/SafePositiveInteger"
},
"status": {
"const": "failed"
}
},
"additionalProperties": false
},
"TerminalInterceptorFrame": {
"oneOf": [
{
"$ref": "#/$defs/TerminalInterceptorReadyFrame"
},
{
"$ref": "#/$defs/TerminalInterceptorChunkFrame"
},
{
"$ref": "#/$defs/TerminalInterceptorOkResultFrame"
},
{
"$ref": "#/$defs/TerminalInterceptorFailedResultFrame"
}
]
},
"RuntimeInitializeParams": {
"type": "object",
"required": [
"netcattyVersion",
"apiVersion",
"supportedFeatures"
],
"properties": {
"netcattyVersion": {
"$ref": "#/$defs/SemanticVersion"
},
"apiVersion": {
"$ref": "#/$defs/SemanticVersion"
},
"supportedFeatures": {
"type": "array",
"maxItems": 256,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/FeatureId"
}
}
},
"additionalProperties": false
},
"RuntimeInitializeResult": {
"type": "object",
"required": [
"pluginId",
"pluginVersion",
"apiVersion",
"enabledFeatures"
],
"properties": {
"pluginId": {
"$ref": "#/$defs/PluginId"
},
"pluginVersion": {
"$ref": "#/$defs/SemanticVersion"
},
"apiVersion": {
"$ref": "#/$defs/SemanticVersion"
},
"enabledFeatures": {
"type": "array",
"maxItems": 256,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/FeatureId"
}
}
},
"additionalProperties": false
},
"RuntimeInitializeRequest": {
"type": "object",
"required": [
"jsonrpc",
"id",
"method",
"params"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"method": {
"const": "plugin.initialize"
},
"params": {
"$ref": "#/$defs/RuntimeInitializeParams"
},
"deadlineMs": {
"type": "integer",
"minimum": 1,
"maximum": 300000
},
"cancellationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"RuntimeInitializeSuccess": {
"type": "object",
"required": [
"jsonrpc",
"id",
"result"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"result": {
"$ref": "#/$defs/RuntimeInitializeResult"
}
},
"additionalProperties": false
},
"TerminalSessionSnapshot": {
"type": "object",
"required": [
"sessionId",
"protocol",
"status"
],
"properties": {
"sessionId": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\u0000]+$"
},
"hostId": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\u0000]+$"
},
"workspaceId": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[^\\u0000]+$"
},
"protocol": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"status": {
"type": "string",
"enum": [
"connecting",
"connected",
"disconnected"
]
},
"cwd": {
"type": "string",
"minLength": 1,
"maxLength": 4096,
"pattern": "^[^\\u0000]+$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 1024,
"pattern": "^[^\\u0000]+$"
},
"shellType": {
"type": "string",
"enum": [
"posix",
"fish",
"powershell",
"cmd",
"unknown"
]
},
"cols": {
"type": "integer",
"minimum": 1,
"maximum": 16384
},
"rows": {
"type": "integer",
"minimum": 1,
"maximum": 16384
},
"alternateScreen": {
"type": "boolean"
}
},
"additionalProperties": false
},
"TerminalInterceptorAttachmentDescriptor": {
"type": "object",
"required": [
"providerId",
"direction",
"session"
],
"properties": {
"providerId": {
"$ref": "#/$defs/ContributionId"
},
"direction": {
"type": "string",
"enum": [
"input",
"output"
]
},
"session": {
"$ref": "#/$defs/TerminalSessionSnapshot"
}
},
"additionalProperties": false
},
"TerminalInterceptorAttachmentParams": {
"type": "object",
"required": [
"descriptor"
],
"properties": {
"descriptor": {
"$ref": "#/$defs/TerminalInterceptorAttachmentDescriptor"
}
},
"additionalProperties": false
},
"TerminalInterceptorAttachmentResult": {
"type": "object",
"required": [
"accepted"
],
"properties": {
"accepted": {
"const": true
}
},
"additionalProperties": false
},
"TerminalInterceptorAttachmentRequest": {
"type": "object",
"required": [
"jsonrpc",
"id",
"method",
"params"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"method": {
"const": "plugin.terminal.interceptor.attach"
},
"params": {
"$ref": "#/$defs/TerminalInterceptorAttachmentParams"
},
"deadlineMs": {
"type": "integer",
"minimum": 1,
"maximum": 300000
},
"cancellationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"TerminalInterceptorAttachmentSuccess": {
"type": "object",
"required": [
"jsonrpc",
"id",
"result"
],
"properties": {
"jsonrpc": {
"const": "2.0"
},
"id": {
"$ref": "#/$defs/RpcId"
},
"result": {
"$ref": "#/$defs/TerminalInterceptorAttachmentResult"
}
},
"additionalProperties": false
},
"RpcMessage": {
"description": "A mutually exclusive RPC wire envelope. Reserved inbound methods use their exact schemas. Successful responses require method-specific validation through request correlation.",
"oneOf": [
{
"$ref": "#/$defs/RpcRequest"
},
{
"$ref": "#/$defs/RpcNotification"
},
{
"$ref": "#/$defs/RpcSuccess"
},
{
"$ref": "#/$defs/RpcFailure"
},
{
"$ref": "#/$defs/RpcCancel"
},
{
"$ref": "#/$defs/RpcProgressNotification"
},
{
"$ref": "#/$defs/RuntimeInitializeRequest"
},
{
"$ref": "#/$defs/TerminalInterceptorAttachmentRequest"
}
]
},
"PermissionGrantScope": {
"type": "string",
"enum": [
"once",
"session",
"application",
"always"
]
},
"PermissionRequest": {
"type": "object",
"required": [
"requestId",
"pluginId",
"permission",
"reason"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"pluginId": {
"$ref": "#/$defs/PluginId"
},
"pluginVersion": {
"$ref": "#/$defs/SemanticVersion"
},
"pluginName": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"publisher": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"runtimeId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 128
},
"runtimeKind": {
"type": [
"string",
"null"
],
"enum": [
"browser",
"utility",
null
]
},
"permission": {
"$ref": "#/$defs/PluginPermission"
},
"resources": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/PermissionResource"
}
},
"resourceKinds": {
"type": "array",
"maxItems": 128,
"items": {
"$ref": "#/$defs/PermissionResourceKind"
}
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"sessionId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"allowedScopes": {
"type": "array",
"minItems": 1,
"maxItems": 4,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/PermissionGrantScope"
}
}
},
"additionalProperties": false
},
"PermissionDecision": {
"oneOf": [
{
"type": "object",
"required": [
"requestId",
"decision",
"scope"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"decision": {
"const": "allow"
},
"scope": {
"$ref": "#/$defs/PermissionGrantScope"
},
"resources": {
"type": "array",
"maxItems": 128,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/PermissionResource"
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"requestId",
"decision"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"decision": {
"enum": [
"deny",
"cancel"
]
}
},
"additionalProperties": false
}
]
},
"ProviderRequest": {
"type": "object",
"required": [
"providerId",
"operation",
"requestId"
],
"properties": {
"providerId": {
"$ref": "#/$defs/ContributionId"
},
"operation": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"payload": {
"$ref": "#/$defs/JsonValue"
},
"deadlineMs": {
"type": "integer",
"minimum": 1,
"maximum": 300000
},
"cancellationId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"additionalProperties": false
},
"ProviderResult": {
"oneOf": [
{
"type": "object",
"required": [
"requestId",
"status",
"result"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"status": {
"const": "ok"
},
"result": {
"$ref": "#/$defs/JsonValue"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"requestId",
"status"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"status": {
"const": "cancelled"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"requestId",
"status",
"error"
],
"properties": {
"requestId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"status": {
"const": "failed"
},
"error": {
"$ref": "#/$defs/RpcErrorObject"
}
},
"additionalProperties": false
}
]
}
}
}