URSY.DEVPART OF THE URSY NETWORKSign inBuild with URSY

Every contract sourcedEvery check datedGaps shown, never filledBuild with URSY

Capabilities

Text Case Converter

Convert supplied text between sentence, title, upper, lower and code cases.

How this capability is exposed

Stable ID
ursy.io:text-case-converter
Owning service
URSY.io
Runtime
@ursy/runtime · 1.0.0
Execution modes
browser, node, mcp-local, remote_transient
Remote execution
Available at the owning service
Remote endpoint
https://api.ursy.io/v1/run
Input schemaOutput schemaOpen the owning interface ↗

Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.

Accepted contract

REGISTRY JSON
{
    "schema": "ursy.io/capability/v1",
    "id": "ursy.io:text-case-converter",
    "slug": "text-case-converter",
    "name": "Text Case Converter",
    "version": "1.0.0",
    "summary": "Convert supplied text between sentence, title, upper, lower and code cases.",
    "intents": [
        "text case converter",
        "uppercase",
        "lowercase",
        "capitalise text",
        "change case",
        "title case"
    ],
    "aliases": [],
    "keywords": [
        "uppercase",
        "lowercase",
        "capitalise text",
        "change case",
        "title case"
    ],
    "category": "text-tools",
    "deterministic": true,
    "side_effects": false,
    "network_required": false,
    "execution": {
        "preferred": "local",
        "supported": [
            "browser",
            "node",
            "mcp-local",
            "remote_transient"
        ],
        "local_executable": true,
        "remote_safe": true,
        "remote_enabled": true,
        "remote_endpoint": "https://api.ursy.io/v1/run"
    },
    "privacy": {
        "input_leaves_device_by_default": false,
        "payload_logged": false
    },
    "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "text": {
                "type": "string",
                "maxLength": 5242880
            },
            "transform": {
                "type": "string",
                "enum": [
                    "uppercase",
                    "lowercase",
                    "title-case",
                    "sentence-case",
                    "camel-case",
                    "pascal-case",
                    "snake-case",
                    "kebab-case"
                ],
                "default": "uppercase"
            },
            "locale": {
                "type": "string",
                "minLength": 2,
                "maxLength": 35,
                "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
                "default": "en-US",
                "description": "Locale for display text; numerical result fields are locale independent."
            }
        },
        "required": [
            "text"
        ],
        "additionalProperties": false
    },
    "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
            "text": {
                "type": "string",
                "maxLength": 26214400
            },
            "metrics": {
                "type": "array",
                "items": {
                    "type": "object",
                    "required": [
                        "label",
                        "value"
                    ],
                    "properties": {
                        "label": {
                            "type": "string",
                            "maxLength": 100
                        },
                        "value": {
                            "type": [
                                "string",
                                "number"
                            ],
                            "maxLength": 1000
                        }
                    },
                    "additionalProperties": false
                },
                "maxItems": 10
            }
        },
        "required": [
            "text",
            "metrics"
        ],
        "additionalProperties": false
    },
    "examples": [
        {
            "input": {
                "text": "Hello XML World",
                "transform": "camel-case"
            },
            "output": {
                "text": "helloXmlWorld",
                "metrics": [
                    {
                        "label": "Before",
                        "value": "15"
                    },
                    {
                        "label": "After",
                        "value": "13"
                    }
                ]
            }
        }
    ],
    "limits": {
        "max_input_bytes": 5308416,
        "max_output_bytes": 26214400,
        "max_json_depth": 100,
        "max_csv_cells": 1000000
    },
    "canonical_url": "https://ursy.io/text-tools/text-case-converter/",
    "descriptor_url": "https://ursy.io/wp-json/ursy-tools/v2/capabilities/text-case-converter",
    "runtime": {
        "package": "@ursy/runtime",
        "version": "1.0.0",
        "module": "@ursy/runtime",
        "entry": "run",
        "slug": "text-case-converter"
    },
    "health": {
        "status": "ok",
        "last_tested": "2026-09-11T17:24:33.220Z",
        "runtime_version": "1.0.0",
        "golden_fixtures": 2,
        "node_contract_tests": 2,
        "browser_verified": true,
        "tests_passed": 7,
        "tests_total": 7,
        "test_suite": "tests/runtime-canary.test.mjs",
        "browser_suite": "tests/runtime-browser.py"
    },
    "audit": {
        "classification": "A",
        "engine": "text-transform",
        "mode": "case-convert",
        "headless_possible": true,
        "notes": "Deterministic calculation/text core can be separated from the existing DOM workbench; schemas and regression fixtures remain required."
    },
    "assumptions": [],
    "formulae": [],
    "input_schema_id": "ursy.io:text-case-converter:input_schema",
    "output_schema_id": "ursy.io:text-case-converter:output_schema",
    "service_id": "ursy-io",
    "parent_id": "",
    "source_url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
    "source_type": "capability_manifest",
    "verified_at": "2026-10-14 06:31:09",
    "revision": "2c12f2383164c040a2d4cb35e5fde235294728839872f38bb81522654217af59",
    "type": "capabilities",
    "source": {
        "url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
        "type": "capability_manifest"
    },
    "last_verified_at": "2026-10-14 06:31:09",
    "stale": false
}