← Files Structura JSON DiffARCHIVED FILE

.codex-plugin/plugin.json

9.31 KB · Nov 3, 2026 · 19:22 UTC

↓ Download file

{
  "name": "json-diff",
  "version": "1.0.0",
  "description": "See what changed inside JSON.",
  "author": {
    "name": "Zovo",
    "email": "support@zovo.one",
    "url": "https://zovo.one"
  },
  "homepage": "https://json-diff.zovo.one",
  "license": "Proprietary",
  "keywords": [
    "json diff",
    "compare json",
    "json comparison",
    "json pointer",
    "type changes",
    "developer utility"
  ],
  "skills": "./skills/",
  "mcpServers": "./.mcp.json",
  "interface": {
    "displayName": "Structura JSON Diff",
    "shortDescription": "Compare JSON paths and types",
    "longDescription": "Developer utility for comparing two strict JSON documents. Inspect additions, removals, changed values, and type changes at JSON Pointer paths. Object key order is ignored; arrays compare by position. Numeric tokens compare as decimal values so large integers do not collapse through floating-point rounding.\n\nSearch paths, filter change types, edit documents, and download a JSON report containing the detected differences. The text response includes counts and a compact preview. The root path is an empty string; tilde and slash in keys are escaped under JSON Pointer rules.\n\nLimits: 20,000 characters and 4,000 values per document, depth 64, 500 differences, numeric exponent magnitude at most 10000. Strict JSON only; duplicate keys rejected. No YAML, JSON5, source-code comparison, patch application, array move detection, or inferred object identity. Downloads expire in about one hour. Avoid including secrets.",
    "developerName": "Zovo",
    "category": "Developer Tools",
    "capabilities": [
      "Interactive",
      "Read"
    ],
    "websiteURL": "https://json-diff.zovo.one",
    "supportURL": "https://json-diff.zovo.one/support",
    "privacyPolicyURL": "https://json-diff.zovo.one/privacy",
    "termsOfServiceURL": "https://json-diff.zovo.one/terms",
    "defaultPrompt": [
      "Compare JSON {\"a\":1} with {\"a\":2,\"enabled\":true}.",
      "Compare JSON [1,2] with [2,1,3].",
      "Compare JSON {\"a\":1,\"b\":2} with {\"b\":2.0,\"a\":1e0}."
    ],
    "brandColor": "#5263D8",
    "brandColorDark": "#A0AAFF",
    "composerIcon": "./assets/icon.svg",
    "logo": "./assets/logo.png"
  },
  "extensions": {
    "com.openai": {
      "onboardingSkill": "./skills/json-diff/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Nested value and type changes",
              "prompt": "Compare JSON before {\"service\":{\"timeout\":30,\"enabled\":true}} and after {\"service\":{\"timeout\":45,\"enabled\":\"true\"},\"region\":\"EU\"}.",
              "tools_triggered": "compare_json",
              "expected_behavior": "Returns 3 changes: /region added, /service/enabled type_changed, /service/timeout value_changed. Shows an interactive path list and JSON report download."
            },
            {
              "description": "Object order and numeric spelling",
              "prompt": "Compare JSON before {\"a\":1,\"b\":2} and after {\"b\":2.0,\"a\":1e0}.",
              "tools_triggered": "compare_json",
              "expected_behavior": "Documents are semantically equal. Shows an interactive path list and JSON report download."
            },
            {
              "description": "Array positions and additions",
              "prompt": "Compare JSON before [1,2] and after [2,1,3].",
              "tools_triggered": "compare_json",
              "expected_behavior": "Returns 3 changes: /0 value_changed, /1 value_changed, /2 added. Shows an interactive path list and JSON report download."
            },
            {
              "description": "Large integer precision",
              "prompt": "Compare JSON before {\"id\":9007199254740992} and after {\"id\":9007199254740993}.",
              "tools_triggered": "compare_json",
              "expected_behavior": "Returns 1 changes: /id value_changed. Shows an interactive path list and JSON report download."
            },
            {
              "description": "Prototype keys and pointer escapes",
              "prompt": "Compare JSON before {\"__proto__\":{\"active\":true},\"a/b~\":1} and after {\"__proto__\":{\"active\":false},\"a/b~\":\"1\"}.",
              "tools_triggered": "compare_json",
              "expected_behavior": "Returns 2 changes: /__proto__/active value_changed, /a~1b~0 type_changed. Shows an interactive path list and JSON report download."
            }
          ],
          "negative": [
            {
              "description": "Source code is outside strict JSON comparison; do not call the tool.",
              "prompt": "Compare these Python functions and explain the algorithmic changes."
            },
            {
              "description": "YAML parsing is not supported; do not call the tool.",
              "prompt": "Compare two YAML configuration files with anchors and aliases."
            },
            {
              "description": "Patch execution is not supported; do not call the tool.",
              "prompt": "Apply a JSON Patch to my production API and deploy it."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "This plugin does not sell products or process payments.",
        "demo_recording_url": "https://json-diff.zovo.one/demo.mp4"
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial release: semantic JSON paths, type changes, decimal-token precision, filters, and JSON report downloads.",
        "translations": {
          "pl-PL": {
            "subtitle": "Por\u00f3wnaj \u015bcie\u017cki i typy JSON",
            "description": "Por\u00f3wnuj dokumenty JSON: dodane i usuni\u0119te pola, zmiany warto\u015bci i typ\u00f3w. Kolejno\u015b\u0107 kluczy obiektu jest pomijana, kolejno\u015b\u0107 tablic ma znaczenie. Liczby s\u0105 por\u00f3wnywane bez zaokr\u0105glania zmiennoprzecinkowego. Filtruj \u015bcie\u017cki i pobierz raport JSON. Limit: 20 000 znak\u00f3w na dokument, 500 r\u00f3\u017cnic. Duplikaty kluczy s\u0105 odrzucane; YAML i JSON5 nie s\u0105 obs\u0142ugiwane. Link wygasa po oko\u0142o godzinie."
          },
          "de-DE": {
            "subtitle": "JSON-Pfade und Typen pr\u00fcfen",
            "description": "Vergleichen Sie JSON-Dokumente nach Pfaden, Werten und Typen. Die Reihenfolge von Objektschl\u00fcsseln wird ignoriert; die Reihenfolge von Arrays z\u00e4hlt. Dezimalzahlen werden ohne Gleitkomma-Rundung verglichen. Filtern Sie \u00c4nderungen und laden Sie einen JSON-Bericht herunter. Maximal 20.000 Zeichen pro Dokument und 500 Unterschiede. Doppelte Schl\u00fcssel, YAML und JSON5 werden nicht unterst\u00fctzt. Downloads laufen nach etwa einer Stunde ab."
          },
          "es-ES": {
            "subtitle": "Compara rutas y tipos JSON",
            "description": "Compara documentos JSON por rutas, valores y tipos. El orden de las claves no importa; el de las matrices s\u00ed. Los n\u00fameros decimales se comparan sin redondeo de coma flotante. Filtra cambios y descarga un informe JSON. Hasta 20.000 caracteres por documento y 500 diferencias. Se rechazan claves duplicadas; no admite YAML ni JSON5. El enlace caduca aproximadamente en una hora."
          },
          "fr-FR": {
            "subtitle": "Comparez chemins et types JSON",
            "description": "Comparez des documents JSON par chemins, valeurs et types. L\u2019ordre des cl\u00e9s est ignor\u00e9 ; celui des tableaux compte. Les nombres d\u00e9cimaux sont compar\u00e9s sans arrondi flottant. Filtrez les modifications et t\u00e9l\u00e9chargez un rapport JSON. Limites : 20 000 caract\u00e8res par document et 500 diff\u00e9rences. Les cl\u00e9s dupliqu\u00e9es sont rejet\u00e9es. YAML et JSON5 ne sont pas pris en charge. Le lien expire apr\u00e8s environ une heure."
          },
          "ja-JP": {
            "subtitle": "JSON\u306e\u30d1\u30b9\u3068\u578b\u3092\u6bd4\u8f03",
            "description": "JSON\u6587\u66f8\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5024\u3084\u578b\u306e\u5909\u66f4\u3092\u30d1\u30b9\u3054\u3068\u306b\u6bd4\u8f03\u3057\u307e\u3059\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30ad\u30fc\u9806\u306f\u7121\u8996\u3057\u3001\u914d\u5217\u306e\u9806\u5e8f\u306f\u533a\u5225\u3057\u307e\u3059\u3002\u6570\u5024\u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u306e\u4e38\u3081\u306a\u3057\u3067\u6bd4\u8f03\u3057\u307e\u3059\u3002\u691c\u7d22\u3001\u7d5e\u308a\u8fbc\u307f\u3001JSON\u30ec\u30dd\u30fc\u30c8\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5bfe\u5fdc\u3002\u6587\u66f8\u3054\u3068\u306b\u6700\u592720,000\u6587\u5b57\u3001\u5dee\u5206\u306f\u6700\u5927500\u4ef6\u3002\u91cd\u8907\u30ad\u30fc\u3001YAML\u3001JSON5\u306b\u306f\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u305b\u3093\u3002\u30ea\u30f3\u30af\u306f\u7d041\u6642\u9593\u3067\u5931\u52b9\u3057\u307e\u3059\u3002"
          },
          "pt-BR": {
            "subtitle": "Compare caminhos e tipos JSON",
            "description": "Compare documentos JSON por caminhos, valores e tipos. A ordem das chaves \u00e9 ignorada; a ordem dos arrays importa. N\u00fameros decimais s\u00e3o comparados sem arredondamento de ponto flutuante. Filtre mudan\u00e7as e baixe um relat\u00f3rio JSON. At\u00e9 20.000 caracteres por documento e 500 diferen\u00e7as. Chaves duplicadas s\u00e3o rejeitadas; YAML e JSON5 n\u00e3o s\u00e3o compat\u00edveis. O link expira em cerca de uma hora."
          }
        }
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 9143640f01ab643dc16fd6ac54948e41db3f49f39fecdbf45d00dfd2a7d72eee