{
  "service": "tisane",
  "displayName": "Tisane",
  "categories": [
    "AI",
    "Security"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Subscription Key",
      "placeholder": "TISANE_API_KEY",
      "description": "Tisane API subscription key sent in the Ocp-Apim-Subscription-Key header. View your key in the Tisane Developer Portal."
    }
  ],
  "homepageUrl": "https://tisane.ai",
  "actions": [
    {
      "id": "tisane.analyze_text",
      "service": "tisane",
      "name": "analyze_text",
      "description": "Analyze text with Tisane for problematic content, sentiment, entities, topics, and other linguistic features.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "The IETF language tag used by Tisane, such as en or zh-CN."
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The UTF-8 text content to send to Tisane."
          },
          "settings": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Optional Tisane settings forwarded to the endpoint. Use official Tisane configuration keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "language",
          "content"
        ],
        "description": "Input parameters for Tisane text analysis."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text echoed by Tisane."
          },
          "language": {
            "anyOf": [
              {
                "type": "string",
                "description": "The detected or analyzed language code when Tisane returns it."
              },
              {
                "type": "null"
              }
            ]
          },
          "topics": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "A topic string returned by Tisane."
                },
                {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Tisane."
                }
              ],
              "description": "One topic returned by Tisane."
            },
            "description": "The topics returned by Tisane as strings or detailed topic objects."
          },
          "abuse": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Tisane."
            },
            "description": "The raw objects returned by Tisane."
          },
          "sentenceList": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Tisane."
            },
            "description": "The raw objects returned by Tisane."
          },
          "entitiesSummary": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Tisane."
            },
            "description": "The raw objects returned by Tisane."
          },
          "sentimentExpressions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Tisane."
            },
            "description": "The raw objects returned by Tisane."
          },
          "memory": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw object returned by Tisane."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Tisane."
          }
        },
        "additionalProperties": false,
        "description": "The normalized text analysis result from Tisane."
      }
    },
    {
      "id": "tisane.calculate_similarity",
      "service": "tisane",
      "name": "calculate_similarity",
      "description": "Calculate the semantic similarity between two text fragments, either in one language or across languages.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "language1": {
            "type": "string",
            "minLength": 1,
            "description": "The IETF language tag used by Tisane, such as en or zh-CN."
          },
          "content1": {
            "type": "string",
            "minLength": 1,
            "description": "The first UTF-8 text fragment to compare."
          },
          "language2": {
            "type": "string",
            "minLength": 1,
            "description": "The IETF language tag used by Tisane, such as en or zh-CN."
          },
          "content2": {
            "type": "string",
            "minLength": 1,
            "description": "The second UTF-8 text fragment to compare."
          },
          "settings": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Optional Tisane settings forwarded to the endpoint. Use official Tisane configuration keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "language1",
          "content1",
          "language2",
          "content2"
        ],
        "description": "Input parameters for calculating semantic similarity with Tisane."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "similarity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The semantic similarity score between 0 and 1."
          }
        },
        "additionalProperties": false,
        "description": "The semantic similarity score returned by Tisane."
      }
    },
    {
      "id": "tisane.compare_entities",
      "service": "tisane",
      "name": "compare_entities",
      "description": "Compare two compound person entities with Tisane and return whether they are the same or different.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "language1": {
            "type": "string",
            "minLength": 1,
            "description": "The IETF language tag used by Tisane, such as en or zh-CN."
          },
          "entity1": {
            "type": "string",
            "minLength": 1,
            "description": "The first person entity text to compare."
          },
          "language2": {
            "type": "string",
            "minLength": 1,
            "description": "The IETF language tag used by Tisane, such as en or zh-CN."
          },
          "entity2": {
            "type": "string",
            "minLength": 1,
            "description": "The second person entity text to compare."
          },
          "type": {
            "const": "person",
            "type": "string",
            "description": "The entity type to compare. Tisane currently supports person."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for comparing two Tisane person entities."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "string",
            "enum": [
              "no_single_entity",
              "same",
              "different"
            ],
            "description": "The comparison result returned by Tisane."
          },
          "differences": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The difference categories returned by Tisane when entities differ."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Tisane."
          }
        },
        "additionalProperties": false,
        "required": [
          "result",
          "raw"
        ],
        "description": "The entity comparison result returned by Tisane."
      }
    },
    {
      "id": "tisane.detect_language",
      "service": "tisane",
      "name": "detect_language",
      "description": "Detect the language segments used in a text fragment with optional language hints and delimiter settings.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The UTF-8 text content to send to Tisane."
          },
          "languages": {
            "type": "string",
            "minLength": 1,
            "description": "Optional vertical-bar-delimited language hints, such as en|ru|he."
          },
          "delimiter": {
            "type": "string",
            "minLength": 1,
            "description": "Optional delimiter expression used by Tisane to segment the text."
          }
        },
        "additionalProperties": false,
        "required": [
          "content"
        ],
        "description": "Input parameters for Tisane language detection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "offset": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The character offset where this language segment starts."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "length": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The length of this language segment."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "language": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The detected language code for this segment."
                },
                "score": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The confidence score returned by Tisane."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Tisane."
                }
              },
              "additionalProperties": false,
              "description": "One language segment detected by Tisane."
            },
            "description": "The detected language segments."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Tisane."
          }
        },
        "additionalProperties": false,
        "description": "The language detection result returned by Tisane."
      }
    },
    {
      "id": "tisane.extract_text",
      "service": "tisane",
      "name": "extract_text",
      "description": "Remove markup such as HTML, CSS, JavaScript, or JSON from UTF-8 text and return plain decoded text.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The UTF-8 markup content to clean up."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for extracting text with Tisane."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The extracted plain text."
          }
        },
        "additionalProperties": false,
        "description": "The plain text extracted by Tisane."
      }
    },
    {
      "id": "tisane.list_supported_languages",
      "service": "tisane",
      "name": "list_supported_languages",
      "description": "List the languages currently supported by Tisane.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Tisane supported languages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "isoCode": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The IETF language tag supported by Tisane."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The native language name."
                },
                "englishName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The English language name."
                },
                "nativeEncoding": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The native encoding reported by Tisane."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "fontFace": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The recommended display font reported by Tisane."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "latin": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the language uses a Latin script."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "rightToLeft": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the language is written right-to-left."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Tisane."
                }
              },
              "additionalProperties": false,
              "description": "One language supported by Tisane."
            },
            "description": "The languages supported by Tisane."
          }
        },
        "additionalProperties": false,
        "description": "The supported languages returned by Tisane."
      }
    },
    {
      "id": "tisane.transform_text",
      "service": "tisane",
      "name": "transform_text",
      "description": "Translate text between languages with Tisane, or paraphrase text when source and target languages match.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "minLength": 1,
            "description": "The source IETF language tag. Use * or a vertical-bar-delimited list to ask Tisane to auto-detect."
          },
          "to": {
            "type": "string",
            "minLength": 1,
            "description": "The target IETF language tag."
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The UTF-8 text content to send to Tisane."
          },
          "settings": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Optional Tisane settings forwarded to the endpoint. Use official Tisane configuration keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "from",
          "to",
          "content"
        ],
        "description": "Input parameters for translating or paraphrasing text with Tisane."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The translated or paraphrased text."
          }
        },
        "additionalProperties": false,
        "description": "The transformed text returned by Tisane."
      }
    }
  ]
}
