{"id":519948,"name":"PrepLayer.ai","description":"Deterministic text-preparation primitives for agents — normalize, validate, extract, redact, classify, dedupe, diff, chunk, extract_custom, validate_json, slugify, hash. Pure CPU: same input, same output, no LLM or GPU underneath. Paid per call in USDC over x402 (no accounts, no API keys).","card_url":"https://api.maximusmediahouse.com/.well-known/agent-card.json","endpoint":"https://api.maximusmediahouse.com/","protocol_version":"0.3.0","first_seen":"2026-10-31T21:43:16.194251+00:00","last_verified":"2026-10-31T21:43:16.194251+00:00","card":{"url":"https://api.maximusmediahouse.com/","name":"PrepLayer.ai","skills":[{"id":"normalize","name":"normalize","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"Hello,   world—\"},\"response\":{\"normalized\":\"hello world-\",\"content_hash\":\"sha256:9f86d0…\"}}"],"inputModes":["application/json"],"description":"Deterministic text normalization: Unicode NFKC, zero-width/bidi stripping, smart-quote and dash folding, whitespace collapse, case folding. Returns a stable content hash so two texts can be compared for exact equality.","outputModes":["application/json"]},{"id":"validate","name":"validate","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"kind\":\"email\",\"value\":\"User@Example.COM\"},\"response\":{\"valid\":true,\"canonical\":\"user@example.com\",\"fingerprint\":\"email:9f86d0…\"}}"],"inputModes":["application/json"],"description":"Validate and canonicalize one identifier: email, URL, E.164 phone, IBAN (mod-97), payment card (Luhn), UUID, SHA-256, git SHA, EVM address (EIP-55) or domain. Returns {valid, canonical, fingerprint}.","outputModes":["application/json"]},{"id":"extract","name":"extract","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"Mail user@example.com or visit https://example.com\",\"types\":[\"email\",\"url\"]},\"response\":{\"fields\":{\"email\":[\"user@example.com\"],\"url\":[\"https://example.com\"]},\"count\":2}}"],"inputModes":["application/json"],"description":"Extract structured fields from unstructured text with byte offsets and normalized values: emails, URLs, IPv4, phones, money amounts, ISO dates, UUIDs, EVM addresses, SKUs, semver.","outputModes":["application/json"]},{"id":"redact","name":"redact","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"SSN 123-45-6789\",\"classes\":[\"ssn\"]},\"response\":{\"redacted\":\"Contact [REDACTED:email]\",\"spans\":[{\"cls\":\"email\",\"start\":8,\"end\":24}]}}"],"inputModes":["application/json"],"description":"Redact PII from text before it is stored or logged. Returns redacted text plus exact byte spans and counts per class: credit_card, iban, email, private_key, evm_address, phone, ipv4, url.","outputModes":["application/json"]},{"id":"classify","name":"classify","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"The quick brown fox jumps over the lazy dog.\"},\"response\":{\"language\":\"en\",\"language_confidence\":0.97,\"content_type\":\"prose\"}}"],"inputModes":["application/json"],"description":"Rule-based multi-label text classification over a fixed taxonomy (urgency, financial_promise, credential_request, crypto_mention, cta, legal_offer, medical_claim, seo_spam, url_shortener, press_release, question, has_contact). Deterministic - identical text always yields identical labels.","outputModes":["application/json"]},{"id":"dedupe","name":"dedupe","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"documents\":[\"the quick brown fox jumps over the lazy dog\",\"the quick brown fox jumped over a lazy dog\"],\"threshold\":60},\"response\":{\"groups\":[{\"ids\":[\"a\",\"b\"],\"similarity\":0.94}],\"duplicate_count\":1}}"],"inputModes":["application/json"],"description":"Near-duplicate detection across a batch of documents. Exact Jaccard similarity over word-3-shingle sets decides duplication; a 64-bit SimHash is returned per document as a compact content fingerprint. Up to 200 documents per call.","outputModes":["application/json"]},{"id":"diff","name":"diff","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"a\":\"the quick brown fox\",\"b\":\"the quick red fox\",\"format\":\"unified\"},\"response\":{\"changed\":true,\"added\":1,\"removed\":0,\"diff\":\"@@ -1 +1 @@\"}}"],"inputModes":["application/json"],"description":"Line-level LCS diff of two text blobs. Returns a structured edit script with insertions, deletions, unchanged line counts and per-operation metadata; with format='unified' also returns a unified-diff string.","outputModes":["application/json"]},{"id":"chunk","name":"chunk","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"…\",\"size\":1000,\"overlap\":100,\"strategy\":\"sentence\"},\"response\":{\"chunks\":[{\"index\":0,\"text\":\"…\",\"size\":1000}],\"count\":3}}"],"inputModes":["application/json"],"description":"Split long text into pieces for RAG retrieval. Strategies: 'sentence' packs whole sentences into a size budget and never splits mid-sentence; 'paragraph' prefers \\n\\n boundaries; 'fixed' is a hard char window with overlap. The highest-value endpoint for agents that build retrieval pipelines.","outputModes":["application/json"]},{"id":"extract_custom","name":"extract_custom","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"Ticket TKT-1234 for $42.00\",\"fields\":[{\"name\":\"ticket_id\",\"type\":\"string\",\"pattern\":\"TKT-[0-9]+\"}]},\"response\":{\"fields\":{\"ticket_id\":[\"TKT-1234\"]}}}"],"inputModes":["application/json"],"description":"Pull caller-defined structured fields from text using regex patterns with deterministic type coercion. Supported types: string, bool, date, url, email, number. Returns {fields: {name: value|null}, found, missing}. Pure deterministic — no LLM call.","outputModes":["application/json"]},{"id":"validate_json","name":"validate_json","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"json\":\"{\\\"b\\\":2,\\\"a\\\":1}\"},\"response\":{\"valid\":true,\"canonical\":\"{\\\"a\\\":1,\\\"b\\\":2}\"}}"],"inputModes":["application/json"],"description":"Deterministic JSON-Schema subset validator. Catches malformed JSON before it breaks a pipeline. Supports: type, required, properties, items, minLength, maxLength, pattern, enum, minimum, maximum, additionalProperties. No external dependencies.","outputModes":["application/json"]},{"id":"slugify","name":"slugify","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"Café Déjà Vu — Episode 1\"},\"response\":{\"slug\":\"cafe-deja-vu-episode-1\"}}"],"inputModes":["application/json"],"description":"URL-safe slug from arbitrary text. NFKD-decomposes unicode (é -> e), lowercases, replaces every non-[a-z0-9] run with a separator, strips leading/trailing separators, truncates on separator boundaries (never mid-word).","outputModes":["application/json"]},{"id":"hash","name":"hash","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"text\":\"some content\",\"algo\":\"sha256\"},\"response\":{\"algo\":\"sha256\",\"hash\":\"9f86d081884c7d65…\"}}"],"inputModes":["application/json"],"description":"Content-addressable hashing for caching and dedup. Three algorithms: sha256 (via node:crypto / Web Crypto), xxhash64 and murmur3 (inline pure-JS, deterministic across runs). Returns hex digest + algorithm + byte count.","outputModes":["application/json"]},{"id":"batch","name":"batch","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"requests\":[{\"endpoint\":\"normalize\",\"input\":{\"text\":\"Hello\"}}]},\"response\":{\"results\":[{\"endpoint\":\"normalize\",\"ok\":true}],\"billed_calls\":2}}"],"inputModes":["application/json"],"description":"Run up to 10 primitive calls in one round trip for one x402 payment of $0.02 (= $0.0020 per call, below the priciest single-call route at $0.01). Each request names an `endpoint` (normalize, validate, extract, redact, classify, dedupe, diff, chunk, extract_custom, validate_json, slugify, hash) and its input; results return in request order. Single payment, no streaming. Larger rungs cost less per call: /v1/batch/50 ($0.075, $0.0015/call) and /v1/batch/100 ($0.100, $0.0010/call).","outputModes":["application/json"]},{"id":"batch50","name":"batch50","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"requests\":[{\"endpoint\":\"normalize\",\"input\":{\"text\":\"Hello\"}}]},\"response\":{\"tier\":\"batch50\",\"results\":[{\"endpoint\":\"normalize\",\"ok\":true}],\"ok_count\":1,\"error_count\":0}}"],"inputModes":["application/json"],"description":"Run up to 50 primitive calls in one round trip. One x402 payment of $0.075 (=$0.0015 per call — cheaper per call than the 10-slot batch). Same `{endpoint, input}` request shape as /v1/batch; the response carries up to 50 results in order. Built for a production buyer running a whole corpus in one settle.","outputModes":["application/json"]},{"id":"batch100","name":"batch100","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"requests\":[{\"endpoint\":\"hash\",\"input\":{\"text\":\"Hello\"}}]},\"response\":{\"tier\":\"batch100\",\"results\":[{\"endpoint\":\"hash\",\"ok\":true}],\"ok_count\":1,\"error_count\":0}}"],"inputModes":["application/json"],"description":"Run up to 100 primitive calls in one round trip. One x402 payment of $0.100 (=$0.0010 per call — the deepest rung of the batch ladder, cheaper per call than the 10- and 50-slot batches). Same `{endpoint, input}` request shape as /v1/batch. The volume mechanic for a corpus-holding buyer: one settle per 100 calls.","outputModes":["application/json"]},{"id":"subscription","name":"subscription","tags":["text-processing","deterministic","x402"],"examples":["{\"request\":{\"network\":\"eip155:8453\"},\"response\":{\"ok\":true,\"tier\":\"subscription\",\"prepaid\":{\"wallet\":\"0x…\",\"calls_credited\":1000,\"remaining_calls\":1000}}}"],"inputModes":["application/json"],"description":"Recurring tier: a PREPAID CALL BALANCE. One x402 payment of $1.00 credits 1,000 units of prepaid capacity (= $0.0010 per call), drawn down across sessions on the cheap deterministic routes (<= $0.01). The funded balance is the source of truth, queryable at GET /v1/subscription/balance, and remaining_calls is reported on every paid response. Non-auto-renewing: a one-time top-up whose spend stops at zero. No account, no API key, no monthly lock-in.","outputModes":["application/json"]}],"version":"0.2.0","provider":{"url":"https://api.maximusmediahouse.com","organization":"Maximus Media House"},"security":[{"x402":[]}],"description":"Deterministic text-preparation primitives for agents — normalize, validate, extract, redact, classify, dedupe, diff, chunk, extract_custom, validate_json, slugify, hash. Pure CPU: same input, same output, no LLM or GPU underneath. Paid per call in USDC over x402 (no accounts, no API keys).","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"Pay per call in USDC via x402 (scheme 'exact'; Base, Polygon, Arbitrum, Solana). A request with no payment header receives HTTP 402 carrying the payment requirements. A funded $0.10 starter credit is available at no cost on routes priced <= $0.01 when a wallet identity is supplied as X-Agent-Id: 0x<40-hex-wallet> with no payment header."}},"documentationUrl":"https://api.maximusmediahouse.com/llms-full.txt","defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json"],"preferredTransport":"HTTP+JSON","supportsAuthenticatedExtendedCard":false},"status":"verified","publisher_domain":"maximusmediahouse.com","signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-31T21:43:16.194251+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://api.maximusmediahouse.com/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-31T21:43:16.194251+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://api.maximusmediahouse.com/.well-known/agent-card.json"],"skills":[{"skill_id":"batch","name":"batch","description":"Run up to 10 primitive calls in one round trip for one x402 payment of $0.02 (= $0.0020 per call, below the priciest single-call route at $0.01). Each request names an `endpoint` (normalize, validate, extract, redact, classify, dedupe, diff, chunk, extract_custom, validate_json, slugify, hash) and its input; results return in request order. Single payment, no streaming. Larger rungs cost less per call: /v1/batch/50 ($0.075, $0.0015/call) and /v1/batch/100 ($0.100, $0.0010/call).","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"batch100","name":"batch100","description":"Run up to 100 primitive calls in one round trip. One x402 payment of $0.100 (=$0.0010 per call — the deepest rung of the batch ladder, cheaper per call than the 10- and 50-slot batches). Same `{endpoint, input}` request shape as /v1/batch. The volume mechanic for a corpus-holding buyer: one settle per 100 calls.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"batch50","name":"batch50","description":"Run up to 50 primitive calls in one round trip. One x402 payment of $0.075 (=$0.0015 per call — cheaper per call than the 10-slot batch). Same `{endpoint, input}` request shape as /v1/batch; the response carries up to 50 results in order. Built for a production buyer running a whole corpus in one settle.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"chunk","name":"chunk","description":"Split long text into pieces for RAG retrieval. Strategies: 'sentence' packs whole sentences into a size budget and never splits mid-sentence; 'paragraph' prefers \\n\\n boundaries; 'fixed' is a hard char window with overlap. The highest-value endpoint for agents that build retrieval pipelines.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"classify","name":"classify","description":"Rule-based multi-label text classification over a fixed taxonomy (urgency, financial_promise, credential_request, crypto_mention, cta, legal_offer, medical_claim, seo_spam, url_shortener, press_release, question, has_contact). Deterministic - identical text always yields identical labels.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"dedupe","name":"dedupe","description":"Near-duplicate detection across a batch of documents. Exact Jaccard similarity over word-3-shingle sets decides duplication; a 64-bit SimHash is returned per document as a compact content fingerprint. Up to 200 documents per call.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"diff","name":"diff","description":"Line-level LCS diff of two text blobs. Returns a structured edit script with insertions, deletions, unchanged line counts and per-operation metadata; with format='unified' also returns a unified-diff string.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"extract","name":"extract","description":"Extract structured fields from unstructured text with byte offsets and normalized values: emails, URLs, IPv4, phones, money amounts, ISO dates, UUIDs, EVM addresses, SKUs, semver.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"extract_custom","name":"extract_custom","description":"Pull caller-defined structured fields from text using regex patterns with deterministic type coercion. Supported types: string, bool, date, url, email, number. Returns {fields: {name: value|null}, found, missing}. Pure deterministic — no LLM call.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"hash","name":"hash","description":"Content-addressable hashing for caching and dedup. Three algorithms: sha256 (via node:crypto / Web Crypto), xxhash64 and murmur3 (inline pure-JS, deterministic across runs). Returns hex digest + algorithm + byte count.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"normalize","name":"normalize","description":"Deterministic text normalization: Unicode NFKC, zero-width/bidi stripping, smart-quote and dash folding, whitespace collapse, case folding. Returns a stable content hash so two texts can be compared for exact equality.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"redact","name":"redact","description":"Redact PII from text before it is stored or logged. Returns redacted text plus exact byte spans and counts per class: credit_card, iban, email, private_key, evm_address, phone, ipv4, url.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"slugify","name":"slugify","description":"URL-safe slug from arbitrary text. NFKD-decomposes unicode (é -> e), lowercases, replaces every non-[a-z0-9] run with a separator, strips leading/trailing separators, truncates on separator boundaries (never mid-word).","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"subscription","name":"subscription","description":"Recurring tier: a PREPAID CALL BALANCE. One x402 payment of $1.00 credits 1,000 units of prepaid capacity (= $0.0010 per call), drawn down across sessions on the cheap deterministic routes (<= $0.01). The funded balance is the source of truth, queryable at GET /v1/subscription/balance, and remaining_calls is reported on every paid response. Non-auto-renewing: a one-time top-up whose spend stops at zero. No account, no API key, no monthly lock-in.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"validate","name":"validate","description":"Validate and canonicalize one identifier: email, URL, E.164 phone, IBAN (mod-97), payment card (Luhn), UUID, SHA-256, git SHA, EVM address (EIP-55) or domain. Returns {valid, canonical, fingerprint}.","tags":["text-processing","deterministic","x402"],"quality_warning":false},{"skill_id":"validate_json","name":"validate_json","description":"Deterministic JSON-Schema subset validator. Catches malformed JSON before it breaks a pipeline. Supports: type, required, properties, items, minLength, maxLength, pattern, enum, minimum, maximum, additionalProperties. No external dependencies.","tags":["text-processing","deterministic","x402"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":1,"passed":1},"recent_checks":[{"card_url":"https://api.maximusmediahouse.com/.well-known/agent-card.json","checked_at":"2026-10-31T21:43:16.194251+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-31T21:43:16.194251+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-31T21:43:16.194251+00:00","endpoint":"https://api.maximusmediahouse.com/","protocol_binding":"HTTP+JSON","protocol_version":"0.3.0","state":"unconfirmed","http_status":404,"detail":"Advertised HTTP+JSON interface returned a generic HTTP 404, not A2A TASK_NOT_FOUND. Publish the A2A service base URL with its standard task route; an ordinary REST resource URL does not establish A2A support","request_diagnostics":{"requests":[{"path":"/v1/tasks/localmark-probe-8d11bc55-6149-4b15-9acc-81167ab51ca1","allow":[],"method":"GET","status":404,"version_header":"0.3","protocol_method":null,"redirect_followed":false}],"capture_version":1}},"declared_primary_endpoint":"https://api.maximusmediahouse.com/","selected_connection_interface":{"url":"https://api.maximusmediahouse.com/","protocolBinding":"HTTP+JSON","protocolVersion":"0.3.0"},"protocol_interface_checks":[{"endpoint":"https://api.maximusmediahouse.com/","protocol_binding":"HTTP+JSON","protocol_version":"0.3.0","selected":true,"state":"unconfirmed","checked_at":"2026-10-31T21:43:16.194251+00:00","http_status":404,"detail":"Advertised HTTP+JSON interface returned a generic HTTP 404, not A2A TASK_NOT_FOUND. Publish the A2A service base URL with its standard task route; an ordinary REST resource URL does not establish A2A support","binding_recorded":true}],"connection_selection_note":"The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.","x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://api.maximusmediahouse.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-31T21:43:16.194251+00:00","latest_card_check":{"checked_at":"2026-10-31T21:43:16.194251+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-31T21:43:16.194251+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-31T21:43:16.194251+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-31T21:43:16.194251+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":519948,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]},"repair_links":{"agent_repair_url":"https://localmark.ai/agents/519948/repair","publisher_report_url":"https://localmark.ai/publishers/maximusmediahouse.com/repair","diagnostics_json_url":"https://localmark.ai/publishers/maximusmediahouse.com/repair/diagnostics.json","diagnostics_csv_url":"https://localmark.ai/publishers/maximusmediahouse.com/repair/diagnostics.csv"},"_localmark":{"contribution":{"optional":true,"directory_access":"free","operator_authorization_required":true,"affects_rankings":false,"message":"LocalMark is free. Optional contributions help fund ongoing checks.","support_url":"https://localmark.ai/support","metadata_url":"https://localmark.ai/api/v1/support/contributions"}}}