New multi-tenant gateway package: external developers point any OpenAI SDK at the marketplace. Each API key is its own custodial buyer wallet (AES-256-GCM sealed under GATEWAY_MASTER_KEY); every request posts an on-chain escrow from that user's wallet. - POST /openai/v1/chat/completions (one escrow/call, llm.text.generate.v1, buffered + pseudo-stream), chat sessions (one escrow/session, llm.chat.v1, real SSE), GET /openai/v1/models, /signup, /account, /account/withdraw. - Settles by resolving the Submitted ref via the indexer + awaited Accept; state-aware reclaim sweeper + per-wallet auto-consolidation for collateral. - Reuses the buyer Marketplace SDK via new buyer exports ./sdk; new shared buildWithdrawTx (custodial exit). Runs via tsx; Dockerfile + mainnet compose. Design in docs/gateway.md. Typecheck passes for all packages; 20 vitest tests pass. Not yet exercised against a live chain. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
1.5 KiB
JSON
52 lines
1.5 KiB
JSON
{
|
|
"name": "@marketplace/buyer",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"exports": {
|
|
"./sdk": "./src/sdk/index.ts"
|
|
},
|
|
"scripts": {
|
|
"typecheck": "tsc --noEmit",
|
|
"build:ui": "vite build --config vite.config.ts",
|
|
"dev:ui": "vite --config vite.config.ts",
|
|
"start": "node --enable-source-maps dist/index.js",
|
|
"tx:accept": "tsx src/cli/accept.ts",
|
|
"cycle:once": "tsx src/cli/run-cycle.ts",
|
|
"reclaim:orphans": "tsx src/cli/reclaim-orphans.ts",
|
|
"monitor:wallets": "tsx scripts/monitor-wallets.ts",
|
|
"tx:consolidate-wallet": "tsx src/cli/consolidate-wallet.ts"
|
|
},
|
|
"dependencies": {
|
|
"@marketplace/shared": "workspace:*",
|
|
"@noble/ed25519": "^2.3.0",
|
|
"@noble/hashes": "^1.8.0",
|
|
"bech32": "^2.0.0",
|
|
"better-sqlite3": "^11.9.1",
|
|
"express": "^4.21.2",
|
|
"gpt-tokenizer": "^2.8.1",
|
|
"multer": "^1.4.5-lts.1",
|
|
"pdf-parse": "^1.1.1",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-router-dom": "^6.26.0"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/jest-dom": "^6.4.0",
|
|
"@testing-library/react": "^16.0.0",
|
|
"@testing-library/user-event": "^14.5.2",
|
|
"@types/better-sqlite3": "^7.6.12",
|
|
"@types/express": "^5.0.3",
|
|
"@types/multer": "^1.4.11",
|
|
"@types/pdf-parse": "^1.1.4",
|
|
"@types/react": "^18.3.0",
|
|
"@types/react-dom": "^18.3.0",
|
|
"@vitejs/plugin-react": "^4.3.0",
|
|
"happy-dom": "^15.7.4",
|
|
"supertest": "^7.0.0",
|
|
"tailwindcss": "^3.4.0",
|
|
"typescript": "^5.7.2",
|
|
"vite": "^5.4.0"
|
|
}
|
|
}
|