{"apiVersion": "openeyes.nails.web.v1", "contract": {"additionalProperties": false, "contractVersion": 1, "inputModes": ["local_path", "inline_json"], "name": "nails-local-demo-handoff-manifest-verify", "oneOfInputs": {"localHandoffManifest": ["localHandoffManifestPath", "localHandoffManifest"]}, "optionalFields": ["localHandoffManifestPath", "localHandoffManifest", "expectedManifestDigest"], "requiredFields": ["stateRoot"], "schemaDigest": "1b9a0b1a077cf45381d328523825e97faf11a6e088058f17bd89635eb413063f", "schemaId": "https://openeyes.local/plugins/nails/web/v1/local-demo-handoff-manifest-verify-request.schema.json"}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "responseFields": ["verified", "verificationStatus", "manifestDigest", "expectedManifestDigest", "manifestDigestVerified", "artifactCount", "expectedArtifactCount", "artifactChecks", "allArtifactsExist", "allArtifactDigestsMatch", "artifactDigestIndexMatches", "localBoundaryHeld"], "route": "/api/web/v1/plugins/nails/local-demo:handoff-manifest-verify-contract", "runContractPath": "/api/web/v1/plugins/nails/local-demo:run-contract", "runPath": "/api/web/v1/plugins/nails/local-demo:run", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/local-demo-handoff-manifest-verify-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "oneOf": [{"required": ["localHandoffManifestPath"]}, {"required": ["localHandoffManifest"]}], "properties": {"expectedManifestDigest": {"description": "Optional digest returned as local-demo:run.localHandoffManifest.digest.", "pattern": "^[a-f0-9]{64}$", "type": "string"}, "localHandoffManifest": {"description": "Inline local-handoff-manifest JSON. Artifact paths inside it are still resolved under stateRoot.", "type": "object"}, "localHandoffManifestPath": {"description": "State-root-relative path returned as local-demo:run.localHandoffManifest.path.", "minLength": 1, "type": "string"}, "stateRoot": {"description": "Local state root used by local-demo:run. It is used only to read the manifest and artifacts under that root.", "minLength": 1, "type": "string"}}, "required": ["stateRoot"], "title": "Nails Local Demo Handoff Manifest Verify Request v1", "type": "object"}, "sideEffects": "local_state_read_only", "submitEnabled": false, "uploadEnabled": false, "verifyContract": {"actualDigestField": "manifestDigest", "artifactChecksField": "artifactChecks", "digestAlgorithm": "canonical_sha256", "expectedDigestField": "expectedManifestDigest", "kind": "nails.local_demo_handoff_manifest_verify", "manifestSource": "local-demo:run.localHandoffManifest", "manifestSourcePathField": "localHandoffManifestPath", "method": "POST", "name": "local-demo-handoff-manifest-verify", "network": false, "productionMutations": false, "submitEnabled": false, "uploadEnabled": false, "verifiedField": "verified"}, "verifyPath": "/api/web/v1/plugins/nails/local-demo:handoff-manifest-verify"}