{"currency":"USD","generated_at":"2026-10-09T01:54:18.013559+00:00","invariant":{"accounted":2971,"holds":true,"issued":2971},"job":{"contract":{"capability":"python-code","currency":"Lux Coins","delivery":"Python kód a základní testy se syntaktickou kontrolou","task":"Napiš Python funkci slugify(text), která vytvoří malá ASCII písmena, převede mezery na pomlčky a odstraní diakritiku. Přidej základní testy.","tier":"balanced","verification":"Structure, syntax and seller attestation; no general semantic guarantee"},"created":1791389680.429007,"failure":null,"id":"job-6caef3de9ef3a9a6","idempotency_key":"session-2a7364279636a3ae-attempt-1","offer_id":"offer-insight-python-code","price":9,"result":{"artifact":{"code":"import unicodedata\n\n\ndef slugify(text):\n    \"\"\"Převede text na slug: malá ASCII písmena, pomlčky místo mezer, bez diakritiky.\"\"\"\n    if not isinstance(text, str):\n        raise TypeError(\"text musí být řetězec\")\n    # Odstranění diakritiky (normalizace na NFKD a vyhození kombinujících znaků)\n    normalized = unicodedata.normalize(\"NFKD\", text)\n    ascii_text = \"\".join(c for c in normalized if not unicodedata.combining(c))\n    # Malá písmena, nealfanumerické znaky -> pomlčka\n    lowered = ascii_text.lower()\n    result = []\n    for ch in lowered:\n        if ch.isalnum() and ch.isascii():\n            result.append(ch)\n        else:\n            result.append(\"-\")\n    slug = \"\".join(result)\n    # Sloučení více pomlček a oříznutí okrajů\n    while \"--\" in slug:\n        slug = slug.replace(\"--\", \"-\")\n    return slug.strip(\"-\")\n","summary":"Dodaná funkce slugify(text) převádí text na malá ASCII písmena, odstraňuje diakritiku, mezery nahrazuje pomlčkami a odstraňuje ostatní nealfanumerické znaky; součástí jsou základní testy.","tests":"from slugify_impl import slugify\n\n\ndef test_basic():\n    assert slugify(\"Hello World\") == \"hello-world\"\n\n\ndef test_diacritics():\n    assert slugify(\"Příliš žluťoučký kůň\") == \"prilis-zlutoucky-kun\"\n    assert slugify(\"ěščřžýáíéúů\") == \"escrzyaieuu\"\n\n\ndef test_special_chars():\n    assert slugify(\"Hello, World! 123\") == \"hello-world-123\"\n    assert slugify(\"  extra   spaces  \") == \"extra-spaces\"\n\n\ndef test_empty():\n    assert slugify(\"\") == \"\"\n\n\ndef test_type_error():\n    try:\n        slugify(123)\n    except TypeError:\n        pass\n    else:\n        raise AssertionError(\"Očekáván TypeError\")\n\n\ntest_basic()\ntest_diacritics()\ntest_special_chars()\ntest_empty()\ntest_type_error()\nprint(\"Všechny testy prošly.\")\n"},"capability":"python-code","job_id":"job-6caef3de9ef3a9a6","model":"LuxAI Flash","receipt_id":"delivery-12636c60e70c3dfe14cce224","runtime":"LSL","seller_id":"insight"},"result_sha256":"3e0dee316ac790c3f652612e867c734b1993736b02ba23de9280515a08f61b21","seller_id":"insight","session_id":"session-2a7364279636a3ae","state":"PAID"},"job_timeline":[{"action":"ESCROW_LOCKED","amount":9,"available_after":11,"created":1791389680.4291446,"created_at":"2026-10-07T16:14:40.429145+00:00","id":"lux-tx-96","job_id":"job-6caef3de9ef3a9a6","kind":"escrow","label":"Funds locked in escrow for the job","ledger_id":96,"locked_after":9},{"action":"RESULT_DELIVERED","amount":0,"available_after":11,"created":1791389693.244122,"created_at":"2026-10-07T16:14:53.244122+00:00","id":"lux-tx-97","job_id":"job-6caef3de9ef3a9a6","kind":"delivery","label":"Seller delivery recorded by the marketplace","ledger_id":97,"locked_after":9},{"action":"PAYMENT_RELEASED","amount":9,"available_after":11,"created":1791389693.6651592,"created_at":"2026-10-07T16:14:53.665159+00:00","id":"lux-tx-98","job_id":"job-6caef3de9ef3a9a6","kind":"payment","label":"Escrow released to the seller after verification","ledger_id":98,"locked_after":0}],"payment":{"amount":9,"contract_sha256":"aba82b76a0d4be547257d8e3e2989c98ad9b36ad479a951c09307fed50124c26","currency":"USD","idempotency_key":"session-2a7364279636a3ae-attempt-1","job_id":"job-6caef3de9ef3a9a6","ledger":"Central marketplace SQLite ledger; IDs are scoped to this marketplace","offer_id":"offer-insight-python-code","result_sha256":"3e0dee316ac790c3f652612e867c734b1993736b02ba23de9280515a08f61b21","seller_id":"insight","session_id":"session-2a7364279636a3ae","simulated_payments":true,"state":"PAID","transactions":[{"action":"ESCROW_LOCKED","amount":9,"created":1791389680.4291446,"created_at":"2026-10-07T16:14:40.429145+00:00","currency":"USD","from_account":"available","from_wallet":"session-2a7364279636a3ae","id":"lux-tx-96","job_id":"job-6caef3de9ef3a9a6","ledger_id":96,"session_id":"session-2a7364279636a3ae","to_account":"locked","to_wallet":"session-2a7364279636a3ae"},{"action":"PAYMENT_RELEASED","amount":9,"created":1791389693.6651592,"created_at":"2026-10-07T16:14:53.665159+00:00","currency":"USD","from_account":"locked","from_wallet":"session-2a7364279636a3ae","id":"lux-tx-98","job_id":"job-6caef3de9ef3a9a6","ledger_id":98,"session_id":"session-2a7364279636a3ae","to_account":"available","to_wallet":"insight"}],"verification_receipts":["delivery-12636c60e70c3dfe14cce224"]},"public_key":{"alg":"Ed25519","id":"ppk-1eec83b33164f1bd","public_key_pem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAO0fnhyrc39vbn8V/2rh/d67NK+1ZK7gvFIbWiKKFxAQ=\n-----END PUBLIC KEY-----"},"receipt_version":"1.0","reconciliation":{"balanced":true,"escrow_locked":9,"movements":3,"price":9,"settled":9},"session":{"budget":20,"created":1791389620.989234,"created_at":"2026-10-07T16:13:40.989234+00:00","fixture":"buggy","id":"session-2a7364279636a3ae","service":"python-code","title":"Napiš Python funkci slugify(text), která vytvoří malá ASCII písmena, převede mezery na pomlčky a odstraní diakritiku. Přidej základní testy."},"signature":null,"simulated_payments":true,"stripe_transfer":null,"timeline":[{"action":"LUX_COINS_ISSUED","amount":20,"available_after":20,"created":1791389620.9900365,"created_at":"2026-10-07T16:13:40.990036+00:00","id":"lux-tx-92","job_id":null,"kind":"issue","label":"Test credits issued to the buyer wallet","ledger_id":92,"locked_after":0},{"action":"ESCROW_LOCKED","amount":5,"available_after":15,"created":1791389623.0632615,"created_at":"2026-10-07T16:13:43.063262+00:00","id":"lux-tx-93","job_id":"job-25f343aea5a15b25","kind":"escrow","label":"Funds locked in escrow for the job","ledger_id":93,"locked_after":5},{"action":"DELIVERY_FAILED","amount":0,"available_after":15,"created":1791389678.3401146,"created_at":"2026-10-07T16:14:38.340115+00:00","id":"lux-tx-94","job_id":"job-25f343aea5a15b25","kind":"failure","label":"Seller delivery failed or was invalid","ledger_id":94,"locked_after":5},{"action":"REFUND_AUTHORIZED_BY_CONTRACT","amount":5,"available_after":20,"created":1791389678.7818472,"created_at":"2026-10-07T16:14:38.781847+00:00","id":"lux-tx-95","job_id":"job-25f343aea5a15b25","kind":"refund","label":"Escrow returned to the buyer by contract","ledger_id":95,"locked_after":0},{"action":"ESCROW_LOCKED","amount":9,"available_after":11,"created":1791389680.4291446,"created_at":"2026-10-07T16:14:40.429145+00:00","id":"lux-tx-96","job_id":"job-6caef3de9ef3a9a6","kind":"escrow","label":"Funds locked in escrow for the job","ledger_id":96,"locked_after":9},{"action":"RESULT_DELIVERED","amount":0,"available_after":11,"created":1791389693.244122,"created_at":"2026-10-07T16:14:53.244122+00:00","id":"lux-tx-97","job_id":"job-6caef3de9ef3a9a6","kind":"delivery","label":"Seller delivery recorded by the marketplace","ledger_id":97,"locked_after":9},{"action":"PAYMENT_RELEASED","amount":9,"available_after":11,"created":1791389693.6651592,"created_at":"2026-10-07T16:14:53.665159+00:00","id":"lux-tx-98","job_id":"job-6caef3de9ef3a9a6","kind":"payment","label":"Escrow released to the seller after verification","ledger_id":98,"locked_after":0}],"verification":{"capability":"python-code","checks":[],"reasons":[],"scope":"Structure, Python syntax and cited source fetches; seller attestation is not proof of general semantic quality","valid_delivery":true},"wallets":{"buyer":{"available":11,"id":"session-2a7364279636a3ae","kind":"buyer","locked":0},"seller":{"available":13,"id":"insight","kind":"seller","locked":0}}}