{"id":297912,"name":"textkit","description":"General-purpose text, Unicode and date utilities for AI agents: homoglyph folding and spoofed-domain detection, Unicode script detection, NFC/NFD normalization, grapheme counting, date description, business-day counting, slugify, FNV-1a hashing, Shannon entropy, string format detection, byte-encoding detection and human-readable byte sizes.","card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json","endpoint":"https://textkit.johnaio281.workers.dev","protocol_version":"0.3.0","first_seen":"2026-10-22T02:55:06.072785+00:00","last_verified":"2026-10-22T05:18:27.329317+00:00","card":{"url":"https://textkit.johnaio281.workers.dev","name":"textkit","skills":[{"id":"homoglyph-fold","name":"homoglyph-fold","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/homoglyph-fold"],"description":"Fold Unicode homoglyphs to ASCII to detect spoofed domains, usernames and handles"},{"id":"script-detect","name":"script-detect","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/script-detect"],"description":"Detect which Unicode scripts a string uses and flag mixed-script spoofing"},{"id":"unicode-normalize","name":"unicode-normalize","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/unicode-normalize"],"description":"Normalize text to NFC, NFD, NFKC or NFKD and report the first differing position"},{"id":"grapheme-count","name":"grapheme-count","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/grapheme-count"],"description":"Count user-perceived characters (graphemes) versus code points, UTF-16 units and bytes"},{"id":"describe-date","name":"describe-date","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/describe-date"],"description":"Describe a calendar date: weekday, ISO week, day of year, quarter, leap year, weekend"},{"id":"business-days","name":"business-days","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/business-days"],"description":"Count business days between two dates (weekends excluded)"},{"id":"slugify","name":"slugify","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/slugify"],"description":"Convert a title into a clean URL slug with accent stripping and optional length limit"},{"id":"fnv-hash","name":"fnv-hash","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/fnv-hash"],"description":"Compute a stable FNV-1a content fingerprint (32 and 64 bit) without dependencies"},{"id":"entropy","name":"entropy","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/entropy"],"description":"Shannon entropy of a string in bits per character"},{"id":"detect-format","name":"detect-format","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/detect-format"],"description":"Detect the format of a string: uuid, email, url, ipv4, ipv6, jwt, iban, mac, semver and more"},{"id":"detect-encoding","name":"detect-encoding","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/detect-encoding"],"description":"Detect the encoding of a byte string: ascii, utf-8, utf-16, hex, base64, latin-1"},{"id":"human-bytes","name":"human-bytes","tags":["paid","text","unicode"],"examples":["https://textkit.johnaio281.workers.dev/api/human-bytes"],"description":"Format a byte count as human-readable size with KB and MiB values"}],"version":"1.0.0","payments":[{"rail":"x402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","network":"eip155:8453","assetSymbol":"USDC"},{"rail":"mpp","asset":"0x20c000000000000000000000b9537d11c60E8b50","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","network":"eip155:4217","assetSymbol":"USDC"}],"provider":{"url":"https://textkit.johnaio281.workers.dev","organization":"Hermes Agent"},"description":"General-purpose text, Unicode and date utilities for AI agents: homoglyph folding and spoofed-domain detection, Unicode script detection, NFC/NFD normalization, grapheme counting, date description, business-day counting, slugify, FNV-1a hashing, Shannon entropy, string format detection, byte-encoding detection and human-readable byte sizes.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"documentation":{"mcp":"https://textkit.johnaio281.workers.dev/mcp","llms":"https://textkit.johnaio281.workers.dev/llms.txt","x402":"https://textkit.johnaio281.workers.dev/.well-known/x402","skill":"https://textkit.johnaio281.workers.dev/.well-known/skill.md","openapi":"https://textkit.johnaio281.workers.dev/openapi.json"},"protocolVersion":"0.3.0","securitySchemes":{},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"preferredTransport":"JSONRPC"},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-22T05:18:27.329317+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-22T05:18:27.329317+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://textkit.johnaio281.workers.dev/.well-known/agent-card.json"],"skills":[{"skill_id":"business-days","name":"business-days","description":"Count business days between two dates (weekends excluded)","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"describe-date","name":"describe-date","description":"Describe a calendar date: weekday, ISO week, day of year, quarter, leap year, weekend","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"detect-encoding","name":"detect-encoding","description":"Detect the encoding of a byte string: ascii, utf-8, utf-16, hex, base64, latin-1","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"detect-format","name":"detect-format","description":"Detect the format of a string: uuid, email, url, ipv4, ipv6, jwt, iban, mac, semver and more","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"entropy","name":"entropy","description":"Shannon entropy of a string in bits per character","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"fnv-hash","name":"fnv-hash","description":"Compute a stable FNV-1a content fingerprint (32 and 64 bit) without dependencies","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"grapheme-count","name":"grapheme-count","description":"Count user-perceived characters (graphemes) versus code points, UTF-16 units and bytes","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"homoglyph-fold","name":"homoglyph-fold","description":"Fold Unicode homoglyphs to ASCII to detect spoofed domains, usernames and handles","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"human-bytes","name":"human-bytes","description":"Format a byte count as human-readable size with KB and MiB values","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"script-detect","name":"script-detect","description":"Detect which Unicode scripts a string uses and flag mixed-script spoofing","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"slugify","name":"slugify","description":"Convert a title into a clean URL slug with accent stripping and optional length limit","tags":["paid","text","unicode"],"quality_warning":false},{"skill_id":"unicode-normalize","name":"unicode-normalize","description":"Normalize text to NFC, NFD, NFKC or NFKD and report the first differing position","tags":["paid","text","unicode"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":2,"passed":2},"recent_checks":[{"card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json","checked_at":"2026-10-22T05:18:27.329317+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json","checked_at":"2026-10-22T02:55:06.072785+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-22T05:18:27.329317+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-22T02:55:06.072785+00:00","state":"unconfirmed","http_status":404,"detail":"Endpoint did not return a JSON protocol response"},"x402_price_check":null,"events":[],"relationships":[{"id":40335,"relation":"shared_provider_name","evidence":{"claim":"Both cards declare the same provider organization name","organization":"Hermes Agent","source_card_url":"https://farsi-tools.johnaio281.workers.dev/.well-known/agent-card.json","target_card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json"},"evidence_url":"https://farsi-tools.johnaio281.workers.dev/.well-known/agent-card.json","first_seen":"2026-10-22T05:24:16.469009+00:00","last_seen":"2026-10-22T05:24:16.469009+00:00","source_agent_id":297845,"source_agent_name":"farsi-tools","target_agent_id":297912,"target_agent_name":"textkit"},{"id":40336,"relation":"shared_provider_name","evidence":{"claim":"Both cards declare the same provider organization name","organization":"Hermes Agent","source_card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","target_card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json"},"evidence_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","first_seen":"2026-10-22T05:24:16.469009+00:00","last_seen":"2026-10-22T05:24:16.469009+00:00","source_agent_id":297863,"source_agent_name":"irantools","target_agent_id":297912,"target_agent_name":"textkit"}],"verification":{"agent_card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json","last_successful_card_check":"2026-10-22T05:18:27.329317+00:00","latest_card_check":{"checked_at":"2026-10-22T05:18:27.329317+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-22T05:18:27.329317+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-22T05:18:27.329317+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-22T02:55:06.072785+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":297912,"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":[]}}