Metadata-Version: 2.4
Name: tenderix
Version: 1.4.0
Summary: TENDERIX — Constraint & Commitment Commerce Engine for autonomous agents (64)
Author: 64-Tenderix
License: Apache-2.0
Keywords: agentic-commerce,constraint-solver,ed25519,csvo,llms-txt
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: server
Requires-Dist: fastapi>=0.110; extra == "server"
Requires-Dist: uvicorn>=0.29; extra == "server"
Requires-Dist: pydantic>=2.6; extra == "server"
Provides-Extra: fast-crypto
Requires-Dist: cryptography>=42; extra == "fast-crypto"
Provides-Extra: audit
Requires-Dist: httpx>=0.27; extra == "audit"
Provides-Extra: redis
Requires-Dist: redis>=5; extra == "redis"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov>=5; extra == "dev"
Requires-Dist: httpx>=0.27; extra == "dev"
Dynamic: license-file

<div align="center">
  <img src="brand/tenderix_quotation_shard.svg" width="140" alt="Tenderix mührü">
  <h1>TENDERIX</h1>
  <p><em>Otonom ajanlar için kısıt-çözücü ve imzalı bağlayıcı-teklif motoru.</em></p>
</div>

[![CI](https://github.com/goun7/tenderix/actions/workflows/ci.yml/badge.svg)](https://github.com/goun7/tenderix/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
[![Python](https://img.shields.io/badge/Python-3.11%20%7C%203.13-3776AB?logo=python&logoColor=white)](pyproject.toml)

---

**Tenderix ne işe yarar?** ChatGPT, Claude ya da kurumsal bir tedarik botu mağazanıza geldiğinde, 10.000 ürünlük HTML'i tarayıp token harcamak zorunda kalmaz. Bunun yerine bir kısıt vektörü gönderir — teknik özellik, miktar, bütçe, teslim bölgesi, SLA — ve **15 milisaniyenin altında**, Ed25519 ile imzalanmış, 15 dakika bağlayıcı bir teklif (CSVO) geri alır. Stok bu 15 dakika için onun adına kilitlenir.

Bu kadar basit bir fikir, e-ticaretin ajanlara tamamen kapalı olduğu bir zamanda önemli: sitelerin yalnızca ~%10'u llms.txt yayınlıyor, kurumsal sitelerin ~%49'u AI tarayıcılarını robots.txt ile engelliyor. Ajan-okunur fiyat + stok + kısıt-çözümü sunan hazır bir katman ise yok denecek kadar az. Tenderix tam o katmandır.

## Nasıl çalışır?

```
Ajan ──POST /v1/agents/solve──▶ ┌──────────────────────────┐
   kısıt vektörü                │  Kernel: filtre + skor   │
                                │  + korumalı marj (sır)   │
Ajan ◀──imzalı CSVO───────────── │  + stok kilidi (15 dk)   │
   bağlayıcı teklif             └──────────────────────────┘
```

- **Kısıt çözücü** — parametrik filtreleme, kelime-indeksli aday arama, stok/lead/bütçe/geo skorlaması. 10.000 SKU'da p50 ≈ 3,4 ms.
- **Korumalı marj** — iskonto tablonuz sunucuda kalır; dışarı yalnızca nihai fiyat çıkar.
- **CSVO** — kanonik-JSON hash + Ed25519 imza; durum her değişimde yeniden mühürlenir (`reseal`).
- **Fail-closed kilitler** — TCMB kripto-ray yasağı (`GEO_X402_BLOCK`), sahte-bot itibar eşiği (`REPUTATION_FLOOR` + doğrulanmamış beyan kelepçesi), kasa-katalog fiyat ayrışması (`PRICE_MISMATCH_LOCK`), 6502 cayma onayı (`CONSENT_MISSING`).
- **Ticaret rayı** — PayTR / x402 / Stripe-ACP adaptörleri (sandbox), non-custodial emanet, hash-zincirli delil defteri.
- **Kalıcılık** — `--state data/state.jsonl` ile taahhütler ve kilit geçişleri yeniden başlatmaya dayanır.
- **Vitrin** — `llms.txt`, `agents.txt`, `checkout.json`, Schema.org JSON-LD üretimi; mağazanızı ajanlara açar.

## Hızlı başlangıç

```bash
make dev         # geliştirme kurulumu
make test        # 2.759 test + kapsama kapısı (≥%85) — 2759 passed, 4 skipped rc=0 (gece-turu 2026-10-19). TEND-BEN-1 (2026-10-19): `test_mean_between_p50_and_p99` flake'i KOD ÇÖZÜLDÜ — mean/p50/p99 bağımsız round() edilince sıralama kırılıyordu (200-workload ölçümünde 42 fail); bench mean'i round-edilmiş p50/p99 arasına clampleyene dek 0/300 fail.
make demo        # uçtan uca: solve → CSVO → emanet → settle
make run         # http://127.0.0.1:8642  (kalıcılık: make run STATE=data/state.jsonl)
```

CLI ile tek adımda teklif:

```bash
tenderix keygen --out data/keys.json
echo '{"buyer_did":"did:agent:kok:a1",
       "buyer_reputation":{"score":0.8,"source":"68"},
       "constraints":{"target":"6204-2RSH","min_qty":200,"delivery_geo":"TR-34"}}' \
  | tenderix solve --catalog examples/catalog.json
```

Ayrıntılı kurulum ve yapılandırma: [QUICKSTART.md](QUICKSTART.md) ·
Kalıcı sunucu: `tenderix serve --state data/state.jsonl`

## Performans

| Katalog | p50 | p99 |
|---|---|---|
| 100 SKU | 0.057 ms | 0.31 ms |
| 1.000 SKU | 0.384 ms | 2.9 ms |
| 10.000 SKU | 3.43 ms | 15.4 ms |

Hedef: p50 < 15 ms, p99 < 50 ms. Kanıt dosyaları [docs/BENCHMARKS.md](docs/BENCHMARKS.md) ve `bench/results/` altında.

## Güvenlik

Tehdit modeli 16 saldırı-yanıt satırıyla açık yazılmıştır: [docs/THREAT-MODEL.md](docs/THREAT-MODEL.md). Fail-closed ilkesi çekirdeğin her kararına işlenmiştir: emin değilsek satış yapmayız.

Bir güvenlik açığı bulduysanız lütfen GitHub **Private vulnerability reporting** üzerinden bildirin: [SECURITY.md](SECURITY.md).

## Yol haritası

- [x] Dağıtık kilit arka ucu — Redis (native-TTL'li HELD, `--redis`) *(v1.2.0)*
- [x] OTel-uyumlu metrik emisyonu + Prometheus `/metrics` ucu *(v1.2.0)*
- [x] S6 ortak kabul — 63-Sester facilitator ile çift-kanıt (deterministik 20-yeşil + canlı 5/5) *(v1.4.0)*
- [x] 68-Kredent AgentID v1.0 did:key çözümleyici (ağsız, fail-closed) *(v1.4.0)*
- [x] ERP / katalog canlı-senkron (`/v1/catalog/sync`, admin-token) *(v1.4.0)*
- [x] **Unpump code-bağı** — `src/tenderix/unpump_bridge.py`: CSVO → ajan-borsa
  teklifi + x402 exact-sester ödeme → emanet AUTHORIZE (7 fail-closed kapı) *(v1.5.0)*

### Mesh'teki yeri — Unpump ajan teklif motoru

Tenderix imzalı CSVO teklifleri ve emanet kilidi, [Unpump](https://github.com/goun7/unpump)
(85-AnswRank) ajan borsasının **teklif motoru** olarak hizmet verebilir: bir
ajan `quote()` ile fiyatı kilitler, ödemeyi Sester x402 katmanından geçirir,
Tenderix emanet kilidi "teslimat kanıtlanmadıysa ödeme YOK" kuralını uygular.
Zaten mevcut bağlar: **63-Sester** çift-kanıt (yukarıda S6) ve **68-Kredent**
AgentID (did:key). Bu, mesh'in "imza → emanet → ödeme → kanıt" zincirinin
tamamlanmış halidir. Mesh haritası:
`00_TAMGA-MESH/orkestrasyon/PORTFOY_SINERJI_HARITASI_2026-09-24.md` §3.

#### Kod bağı — `src/tenderix/unpump_bridge.py`

Yukarıdaki paragraf bir DOC-bağ iken bu sürüm onu **çalıştırılabilir** yapar.
Köprü, Unpump borsasında Tenderix'i bir ajan-teklif-motoru olarak sunar ve
gerçek EIP-191 imzalı x402 ödemelerini Tenderix emanet makinesine bağlar:

- **Teklif tarafı** — `export_quote(csvo, priv_b64, usd_try_rate)` imzalı bir
  CSVO'yu Unpump borsa biçimine çevirir: sabit `resource`
  (`tenderix/quote/{offer_id}`), TRY toplamın USDC 6-decimals karşılığı
  (`amount_units`), CSVO hash + imza kanıtı ve teklifin kendisinin Ed25519
  imzası — borsa teklifin Tenderix-kökenini bağımsız doğrular
  (`verify_quote_signature`).
- **Ödeme tarafı** — `accept_unpump_payment(csvo, x_payment, …)` Unpump'tan
  gelen `X-Payment: Sester-EVM …` zarfını açar, EIP-191 exact-sester imzasını
  gerçek zincir-adresiyle doğrular ve **yedi fail-closed kapıdan** geçirir:
  CSVO bütünlüğü (imza + hash + süre) → resource-bağlama → imza-adres
  eşleşmesi → alıcı-bağlama (`buyer_eoa`) → tutar-bağlama (USDC birimi) →
  nonce tekrar-oynatma → emanet `AUTHORIZE` + hash-zincirli delil-defteri.
  Herhangi bir kapı RED'se emanet **açılmaz** — "yaklaşık çözüm" için
  gevşetilmez (SPEC §6).
- **Alıcı zarfı** — `BuyerOrder` ajan-tarafı ödeme talimatıdır: imzalı
  zarf, borsanın exact-sester alan-setiyle birebir üretilir, böylece ajan
  ek-adaptasyon olmadan `quote()` ile kilitlediği fiyatı öder.

Akış: `quote()` fiyat kilitler (CSVO + 15 dk stok kilidi) → ajan
`BuyerOrder.sign()` ile öder → `accept_unpump_payment` emaneti AUTHORIZE
yapar → teslimat kanıtlanmazsa ödeme YOK (S6.e terminal-kuralı). Test:
`tests/test_unpump_bridge.py` (9/9) — uçtan-uca zincir, saldırı yolları
(yanlış-tutar, sahte-imza, süresi-geçmiş, resource-hırsızı, tekrar-oynatma)
ve USDC dönüşüm kenarları.

*Dürüst sınır:* köprü ödeme doğrulama ve emanet bağlaması yapar — zincirdeki
gerçek USDC transferini kendisi yapmaz (non-custodial ilke, §Kapsam dışı);
transferin kanıtı borsanın kota katmanından gelir. Köprü kuru dışarıdan
sağlanır (`usd_try_rate`), uydurulmaz.

- [ ] Şema dokümantasyon sitesi + PyPI yayını *(yayın kararı sahibinde)*

## Kapsam dışı (bilinçli olarak yapmıyoruz)

Kendi alışveriş ajanımızı yazmıyoruz, pazar yeri kurmuyoruz, custodial ödeme tutmuyoruz — "parayı asla tutmayız". Bu sınırlar [TENDERIX.md](TENDERIX.md) §4'te sabittir.

## Dokümanlar

| Dosya | İçerik |
|---|---|
| [TENDERIX.md](TENDERIX.md) | Kanon doküman: tez, mimari, GTM, hukuki kapılar |
| [docs/SPEC.md](docs/SPEC.md) | API + CSVO kanonikleştirme + durum makineleri |
| [docs/THREAT-MODEL.md](docs/THREAT-MODEL.md) | Saldırı → fail-closed yanıt tablosu |
| [docs/RESEARCH-2026.md](docs/RESEARCH-2026.md) | Kaynaklı pazar/protokol araştırması |
| [QUICKSTART.md](QUICKSTART.md) | Kurulum ve yapılandırma |
| [CONTRIBUTING.md](CONTRIBUTING.md) | Katkı rehberi |

## Katkı

Katkılara açığız — küçük düzeltmeler de, mimari tartışmalar da. Başlamadan önce [CONTRIBUTING.md](CONTRIBUTING.md) dosyasına göz atın; test disiplinimiz tek cümle: **kapsama kapısı ≥%85 düşerse hiçbir şey merge edilmez.**

## Lisans

İkili yapı: şema dosyaları, vitrin katmanı ve açık-standart sözleşmeler **Apache-2.0**; `src/tenderix/` altındaki çekirdek motor ayrı, tescilli kapalı yazılımdır. Ayrıntı: [LICENSE](LICENSE).

## Akademik & teknik temel

- **Constrained optimization** — Tenderix çekirdeği bir kısıt-vektör
  çözücüdür: ajan, bütçe/zaman/stok kısıtları altında en iyi teklifi
  seçer. Bu, klasik **constrained optimization / Lagrangian relaxation**
  ailesindendir; her kısıt bir ceza terimine dönüşür.
- **Combinatorial auction theory** — e-ticarette çoklu-satıcı teklif
  seçimi, combinatorial allocation problem'in bir örneğidir:
  her ajan için bir değer fonksiyonu, her kısıt için bir kapı.
  Tenderix bu kapıları **fail-closed** uygular — kısıt ihlali
 reddeder, "yaklaşık çözüm" için gevşetmez.
- **Agent commerce ödeme katmanı** — tekliflerin ödeme-önceliği
  [x402](https://github.com/coinbase/x402) ile; mesh içinde
  [63-Sester](../63-Sester) ödeme-metering + makbuz katmanını sağlar
  ([x402 #2332](https://github.com/x402-foundation/x402/issues/2332)
  — post-settlement accountability).
- **Kararlılık garantisi**: kısıt çözücü deterministiktir — aynı girdi
  her zaman aynı çıktıyı verir (testleri this property ile sabitlenmiş).

## Akademik Kaynaklar (2024-2026)

Bu çalışma aşağıdaki araştırmaya dayanır (her referans canlı olarak
doğrulanmıştır — arXiv `abs/` sayfaları HTTP 200):

- **[1] Combinatorial auction / mechanism design** —
  *Fair Combinatorial Auctions: Endogenous Best Execution in Blockchain
  Trade-Intent Markets* — Canidio & Henneke, arXiv 2024.
  Çoklu-aracı parça(teklif) tahsisinin nasıl adil ve yürütülebilir
  tutulduğu; Tenderix'in çok-satırlı kısıt-çözümü ile aynı aile.
  [arXiv:2408.12225](https://arxiv.org/abs/2408.12225)
- **[2] Preference elicitation (kısıt ifadesi)** —
  *Accelerated Preference Elicitation with LLM-Based Proxies* —
  Huang, Marmolejo-Cossío, Lock et al., arXiv 2025.
  Ajanların değer fonksiyonlarını açıkça ifade etmesinde LLM aracıları;
  kısıt vektörünün (`constraints`) teklifçiye aktarılması bu çalışmanın
  eğilim-direction'ıdır.
  [arXiv:2501.14625](https://arxiv.org/abs/2501.14625)
- **[3] Bağlayıcı teklif / söz verilebilirlik** —
  *Empty Commitments: When Agents Promise What Their Runtime Cannot
  Deliver* — Tang, Wei, Shen et al., arXiv 2026.
  Çalışma-zamanının yerine getiremeyeceği vaatlerin sınıflandırılması;
  CSVO'nun 15-dakika bağlayıcılığı ve `reseal` durum-mührünün teorik
  zeminidir.
  [arXiv:2610.01045](https://arxiv.org/abs/2610.01045)
- **[4] Ödeme protokolü formal analizi** —
  *A Formal Analysis of Agent Payment Protocols* —
  Jiang, Yu, Chang et al., arXiv 2026.
  Ajan ödeme akışlarında niyet/vekalet dağılımı; şema-düzeyinde
  protokol tanımının (JSON Schema sözleşme) güvenlik analizi.
  [arXiv:2609.00060](https://arxiv.org/abs/2609.00060)
- **[5] Settlement / emanet katmanı** —
  *Agentic Settlement Protocol: An Application Profile for Refundable,
  Delayed-Fulfilment Agent Commerce on Stablecoin Rails* —
  Behnam, Mohammadkhani, Khekade et al., arXiv 2026.
  X402'nin atomik-son modelinin gecikmeli-teslimat ticaretine
  uyarlanması; non-custodial emanet ve iade semantiği için profil.
  [arXiv:2609.02208](https://arxiv.org/abs/2609.02208)
- **[6] x402 ödeme rayı** —
  *When HTTP 402 Meets the Blockchain: Risks on Emerging x402 Payments*
  — Wang, Yang, Chen et al., USENIX Security 2026.
  Facilitator güveni ve ödeme-kanıtı doğrulamasındaki riskler;
  Tenderix'in x402 adaptörünün sandbox kalmasının gerekçesi.
  [arXiv:2607.19545](https://arxiv.org/abs/2607.19545)
- **[7] İtibar ekonomisi** —
  *Tempting the Agent: The Economics of Reputation without Persistent
  Identity in AI Agent Markets* — Gatta, Naviglio, Tarantelli, arXiv 2026.
  Kalıcı kimlik olmadan itibarın disiplin mekanizması olarak işleyişi;
  `REPUTATION_FLOOR` ve doğrulanmamış-beyan kelepçesinin teorik temeli.
  [arXiv:2609.02992](https://arxiv.org/abs/2609.02992)
- **[8] Ajan-aracılı pazarlık** —
  *When LLM Agents Negotiate: Private Information and Dynamic Bargaining
  in Supply Chains* — Liang & Xu, arXiv 2026.
  Otonom tedarik pazarlığında özel bilgi ve değer dağılımı;
  kurumsal tedarik-botu kullan-örgüsünün akademik karşılığı.
  [arXiv:2608.07538](https://arxiv.org/abs/2608.07538)
- **[9] Ardışık kombinatoryal müzayede tasarımı (RL ile)** —
  *Deep Reinforcement Learning for Sequential Combinatorial Auctions* —
  Ravindranath, Feng, Wang, Zaheer, Mehta & Parkes, arXiv 2024.
  Gelir-optimal ardışık müzayede tasarımı için birinci-mertebe gradyanlardan
  yararlanan bir RL çerçevesi; 50 ajan / 50 kaleme kadar ölçeklenir.
  Tenderix'in çok-satırlı kısıt-çözümü ve teklif-tahsisinin mekanizma-ailesi.
  [arXiv:2407.08022](https://arxiv.org/abs/2407.08022)
- **[10] A2A/MCP üzerinde doğrulanabilir müzakere mekanizmaları** —
  *Do LLM Agents Negotiate Rationally? A Mechanism-Design Framework for
  Verifiable Multi-Agent Interaction over A2A/MCP* — Albayaydh & Zhao,
  arXiv 2026.
  VCG-tipi müzayede ve alternating-offers pazarlığını A2A mesaj şemaları
  üzerinde kısıt olarak kodlar; mekanizma-düzeyi teşvik-uyumluluğunun
  LLM-ajan davranışına otomatik transfer olmadığını gösterir. Tenderix'in
  bağlayıcı CSVO tekliflerinin teşvik-uyumluluğu için doğrulama katmanı
  referansı.
  [arXiv:2608.14613](https://arxiv.org/abs/2608.14613)
- **[11] LLM ajanlarının piyasa mekanizmalarında davranışı** —
  *Competitive Market Behavior of LLMs* — Struski, Swistak, Okulska &
  Biecek, arXiv 2026.
  İnsanların yerine LLM ajanlarla double-auction deneylerini yeniden
  üretir; LLM pazarlarının dengeye daha yavaş veya hiç yakınsamadığını ve
  model-ailesi/pazar-rolüne göre büyük heterojenlik olduğunu bulur.
  Tenderix'in fiyat-bütünlüğü ve itibar tabanı politikaaları için ajan-piyasa
  gerçekliği.
  [arXiv:2609.02580](https://arxiv.org/abs/2609.02580)
- **[12] Ajan ekonomisinin birincil ilkeları olarak token ekonomisi** —
  *Token Economics for LLM Agents: A Dual-View Study from Computing and
  Economics* — Chen, Chen, He, Li, Ji, Wu, Yang, Diao, Shou, Zhang, Li &
  Chen, arXiv 2026.
  Token'ları üretim-faktörü, değişim-aracı ve hesap-birimi olarak
  konumlandıran dört-boyutlu bir ekonomi araştırması (micro/meso/macro +
  güvenlik); mekanizma tasarımıyla fiyatlama ve tıkanıklık dışsallıkları.
  Tenderix'in bütçe kısıtları ve SLA/eşik parametrelerinin ekonomik çerçevesi.
  [arXiv:2605.09104](https://arxiv.org/abs/2605.09104)
- **[13] Bütçe-kısıtlı otonom tedarik (değer-odaklı keşif)** —
  *Guixu: Valuation-Driven Data Discovery for Autonomous AI Agents with
  On-Chain Attestation* — Wu, Peng, Chai, Qian, Li, Chen & Shou, arXiv 2026
  (VLDB 2026).
  Ajanlar için görev-faydası tahmini, bütçe altında çok-turlu knapsack
  optimizasyonu ve zincir-üstü kanıtla doğrulanabilir tedarik iş akışı.
  Tenderix'in `constraints` (bütçe/SLA) vektörü ile değer-odaklı tahsisinin
  endüstri-karşılığı.
  [arXiv:2608.07949](https://arxiv.org/abs/2608.07949)
- **[14] Otonom ajanların tedarik-zinciri güvenilirliği (agent bullwhip)** —
  *Reliability and Effectiveness of Autonomous AI Agents in Supply Chain
  Management* — Long, Simchi-Levi, Zhu, Su, Calmon & Calmon, arXiv 2026.
  MIT Beer Game üzerinde otonom GenAI ajanların çok-kademeli tedarik
  zincirlerinde maliyetleri %80'e kadar düşürdüğünü ama run-to-run
  kararsızlık (agent bullwhip) ürettiğini gösterir; operasyonel guardrail'lar
  ile RL son-eğitimini karşılaştırır. Tenderix'in kararlılık garantisi
  (deterministik kısıt çözücü) ve politika-kilitlerinin gerekçesi.
  [arXiv:2605.17036](https://arxiv.org/abs/2605.17036)

---

### English

**Tenderix** is a constraint-and-commitment commerce kernel for autonomous agents. Instead of crawling HTML, an agent posts a constraint vector (specs, quantity, budget, geo, SLA) to `POST /v1/agents/solve` and receives an Ed25519-signed, canonical-JSON-hashed **binding offer (CSVO)** in under 15 ms (p50), with the stock locked for 15 minutes. Fail-closed policy locks (TR crypto-rail ban, reputation floor with unverified-claim clamping, price-integrity, distance-selling consent), non-custodial escrow, a hash-chained evidence ledger, jsonl-based durability (`--state`), and an AI-visibility audit engine (HTML/JSON/MD/PDF reports) are built in. Payment rails (PayTR, x402, Stripe ACP) ship in sandbox mode — no live network calls. The schema and storefront layer are Apache-2.0; the kernel in `src/tenderix/` is proprietary. See [docs/SPEC.md](docs/SPEC.md) for the protocol spec.
