From ab2cc06a79052e1a31af4bb74a92ee3bdb725d14 Mon Sep 17 00:00:00 2001 From: alexpaynex <55271826-alexpaynex@users.noreply.replit.com> Date: Wed, 18 Mar 2026 20:00:24 +0000 Subject: [PATCH] Add session mode for pre-funded request processing Implement session-based API endpoints for creating, managing, and interacting with pre-funded sessions, including deposit and top-up invoice generation, macaroon authentication, and per-request debiting of compute costs. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 418bf6f8-212b-4bb0-a7a5-8231a061da4e Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2dc3847e-7186-4a22-9c7e-16cd31bca8d9 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/9f85e954-647c-46a5-90a7-396e495a805a/418bf6f8-212b-4bb0-a7a5-8231a061da4e/sPDHkg8 Replit-Helium-Checkpoint-Created: true --- artifacts/api-server/src/lib/agent.ts | 9 +- artifacts/api-server/src/routes/index.ts | 2 + artifacts/api-server/src/routes/sessions.ts | 438 +++++++++++++++++ artifacts/api-server/src/routes/testkit.ts | 140 ++++++ attached_assets/IMG_0025_1773862974250.jpeg | Bin 0 -> 344155 bytes .../src/generated/api.schemas.ts | 124 ----- lib/api-client-react/src/generated/api.ts | 456 ------------------ lib/api-spec/openapi.yaml | 271 ++++++++++- lib/api-zod/src/generated/api.ts | 176 ++----- lib/api-zod/src/generated/types.ts | 3 + .../src/generated/types/claimRefundRequest.ts | 12 - .../generated/types/claimRefundResponse.ts | 14 - lib/api-zod/src/generated/types/costLedger.ts | 35 -- .../generated/types/costLedgerRefundState.ts | 19 - .../src/generated/types/createJobRequest.ts | 12 - .../src/generated/types/createJobResponse.ts | 13 - .../src/generated/types/demoResponse.ts | 11 - .../src/generated/types/errorResponse.ts | 11 - .../src/generated/types/healthStatus.ts | 11 - lib/api-zod/src/generated/types/index.ts | 22 - .../src/generated/types/invoiceInfo.ts | 12 - lib/api-zod/src/generated/types/jobState.ts | 19 - .../src/generated/types/jobStatusResponse.ts | 23 - .../src/generated/types/pricingBreakdown.ts | 19 - .../src/generated/types/runDemoParams.ts | 11 - lib/db/migrations/0004_sessions.sql | 39 ++ lib/db/src/schema/index.ts | 1 + lib/db/src/schema/sessions.ts | 101 ++++ replit.md | 49 +- 29 files changed, 1075 insertions(+), 978 deletions(-) create mode 100644 artifacts/api-server/src/routes/sessions.ts create mode 100644 attached_assets/IMG_0025_1773862974250.jpeg delete mode 100644 lib/api-client-react/src/generated/api.schemas.ts delete mode 100644 lib/api-client-react/src/generated/api.ts create mode 100644 lib/api-zod/src/generated/types.ts delete mode 100644 lib/api-zod/src/generated/types/claimRefundRequest.ts delete mode 100644 lib/api-zod/src/generated/types/claimRefundResponse.ts delete mode 100644 lib/api-zod/src/generated/types/costLedger.ts delete mode 100644 lib/api-zod/src/generated/types/costLedgerRefundState.ts delete mode 100644 lib/api-zod/src/generated/types/createJobRequest.ts delete mode 100644 lib/api-zod/src/generated/types/createJobResponse.ts delete mode 100644 lib/api-zod/src/generated/types/demoResponse.ts delete mode 100644 lib/api-zod/src/generated/types/errorResponse.ts delete mode 100644 lib/api-zod/src/generated/types/healthStatus.ts delete mode 100644 lib/api-zod/src/generated/types/index.ts delete mode 100644 lib/api-zod/src/generated/types/invoiceInfo.ts delete mode 100644 lib/api-zod/src/generated/types/jobState.ts delete mode 100644 lib/api-zod/src/generated/types/jobStatusResponse.ts delete mode 100644 lib/api-zod/src/generated/types/pricingBreakdown.ts delete mode 100644 lib/api-zod/src/generated/types/runDemoParams.ts create mode 100644 lib/db/migrations/0004_sessions.sql create mode 100644 lib/db/src/schema/sessions.ts diff --git a/artifacts/api-server/src/lib/agent.ts b/artifacts/api-server/src/lib/agent.ts index d02b94c..4a8d7f3 100644 --- a/artifacts/api-server/src/lib/agent.ts +++ b/artifacts/api-server/src/lib/agent.ts @@ -3,6 +3,8 @@ import { anthropic } from "@workspace/integrations-anthropic-ai"; export interface EvalResult { accepted: boolean; reason: string; + inputTokens: number; + outputTokens: number; } export interface WorkResult { @@ -49,7 +51,12 @@ Respond ONLY with valid JSON: {"accepted": true, "reason": "..."} or {"accepted" throw new Error(`Failed to parse eval JSON: ${block.text}`); } - return { accepted: Boolean(parsed.accepted), reason: parsed.reason ?? "" }; + return { + accepted: Boolean(parsed.accepted), + reason: parsed.reason ?? "", + inputTokens: message.usage.input_tokens, + outputTokens: message.usage.output_tokens, + }; } async executeWork(requestText: string): Promise { diff --git a/artifacts/api-server/src/routes/index.ts b/artifacts/api-server/src/routes/index.ts index a8b5852..5378851 100644 --- a/artifacts/api-server/src/routes/index.ts +++ b/artifacts/api-server/src/routes/index.ts @@ -2,6 +2,7 @@ import { Router, type IRouter } from "express"; import healthRouter from "./health.js"; import jobsRouter from "./jobs.js"; import bootstrapRouter from "./bootstrap.js"; +import sessionsRouter from "./sessions.js"; import demoRouter from "./demo.js"; import devRouter from "./dev.js"; import testkitRouter from "./testkit.js"; @@ -12,6 +13,7 @@ const router: IRouter = Router(); router.use(healthRouter); router.use(jobsRouter); router.use(bootstrapRouter); +router.use(sessionsRouter); router.use(demoRouter); router.use(testkitRouter); router.use(uiRouter); diff --git a/artifacts/api-server/src/routes/sessions.ts b/artifacts/api-server/src/routes/sessions.ts new file mode 100644 index 0000000..e23a597 --- /dev/null +++ b/artifacts/api-server/src/routes/sessions.ts @@ -0,0 +1,438 @@ +import { Router, type Request, type Response } from "express"; +import { randomBytes, randomUUID } from "crypto"; +import { db, sessions, sessionRequests, type Session } from "@workspace/db"; +import { eq, and } from "drizzle-orm"; +import { lnbitsService } from "../lib/lnbits.js"; +import { agentService } from "../lib/agent.js"; +import { pricingService } from "../lib/pricing.js"; +import { getBtcPriceUsd, usdToSats } from "../lib/btc-oracle.js"; + +const router = Router(); + +// ── Env-var config ───────────────────────────────────────────────────────────── + +function envInt(name: string, fallback: number): number { + const raw = parseInt(process.env[name] ?? "", 10); + return Number.isFinite(raw) && raw > 0 ? raw : fallback; +} + +const MIN_DEPOSIT_SATS = envInt("SESSION_MIN_DEPOSIT_SATS", 100); +const MAX_DEPOSIT_SATS = envInt("SESSION_MAX_DEPOSIT_SATS", 10_000); +const MIN_BALANCE_SATS = envInt("SESSION_MIN_BALANCE_SATS", 50); +const EXPIRY_HOURS = envInt("SESSION_EXPIRY_HOURS", 24); +const EXPIRY_MS = EXPIRY_HOURS * 60 * 60 * 1000; + +// ── Helpers ──────────────────────────────────────────────────────────────────── + +async function getSessionById(id: string): Promise { + const rows = await db.select().from(sessions).where(eq(sessions.id, id)).limit(1); + return rows[0] ?? null; +} + +function checkExpired(session: Session): boolean { + return session.expiresAt !== null && new Date() > session.expiresAt; +} + +function extractMacaroon(req: Request): string | null { + const auth = req.headers.authorization ?? ""; + if (auth.startsWith("Bearer ")) return auth.slice(7).trim(); + return null; +} + +function sessionView(session: Session, includeInvoice = false) { + const base = { + sessionId: session.id, + state: session.state, + balanceSats: session.balanceSats, + expiresAt: session.expiresAt?.toISOString() ?? null, + minimumBalanceSats: MIN_BALANCE_SATS, + ...(session.macaroon && (session.state === "active" || session.state === "paused") + ? { macaroon: session.macaroon } + : {}), + }; + + if (includeInvoice && session.state === "awaiting_payment") { + return { + ...base, + invoice: { + paymentRequest: session.depositPaymentRequest, + amountSats: session.depositAmountSats, + ...(lnbitsService.stubMode ? { paymentHash: session.depositPaymentHash } : {}), + }, + }; + } + + if (session.topupPaymentHash && !session.topupPaid) { + return { + ...base, + pendingTopup: { + paymentRequest: session.topupPaymentRequest, + amountSats: session.topupAmountSats, + ...(lnbitsService.stubMode ? { paymentHash: session.topupPaymentHash } : {}), + }, + }; + } + + return base; +} + +// ── Auto-advance: awaiting_payment → active ──────────────────────────────────── + +async function advanceSessionPayment(session: Session): Promise { + if (session.state !== "awaiting_payment" || session.depositPaid) return session; + + const paid = await lnbitsService.checkInvoicePaid(session.depositPaymentHash); + if (!paid) return session; + + const macaroon = randomBytes(32).toString("hex"); + const expiresAt = new Date(Date.now() + EXPIRY_MS); + + const updated = await db + .update(sessions) + .set({ + state: "active", + depositPaid: true, + balanceSats: session.depositAmountSats, + macaroon, + expiresAt, + updatedAt: new Date(), + }) + .where(and(eq(sessions.id, session.id), eq(sessions.state, "awaiting_payment"))) + .returning(); + + return updated[0] ?? session; +} + +// ── Auto-advance: pending topup paid → credit balance ───────────────────────── + +async function advanceTopup(session: Session): Promise { + if (!session.topupPaymentHash || session.topupPaid) return session; + + const paid = await lnbitsService.checkInvoicePaid(session.topupPaymentHash); + if (!paid) return session; + + const newBalance = session.balanceSats + (session.topupAmountSats ?? 0); + const newState = + session.state === "paused" && newBalance >= MIN_BALANCE_SATS ? "active" : session.state; + const expiresAt = new Date(Date.now() + EXPIRY_MS); + + const updated = await db + .update(sessions) + .set({ + state: newState, + topupPaid: true, + balanceSats: newBalance, + expiresAt, + updatedAt: new Date(), + }) + .where(eq(sessions.id, session.id)) + .returning(); + + return updated[0] ?? session; +} + +// ── POST /sessions ───────────────────────────────────────────────────────────── + +router.post("/sessions", async (req: Request, res: Response) => { + const rawAmount = req.body?.amount_sats; + const amountSats = parseInt(String(rawAmount ?? ""), 10); + + if (!Number.isFinite(amountSats) || amountSats < MIN_DEPOSIT_SATS || amountSats > MAX_DEPOSIT_SATS) { + res.status(400).json({ + error: `amount_sats must be an integer between ${MIN_DEPOSIT_SATS} and ${MAX_DEPOSIT_SATS}`, + }); + return; + } + + try { + const sessionId = randomUUID(); + const invoice = await lnbitsService.createInvoice(amountSats, `Session deposit ${sessionId}`); + + await db.insert(sessions).values({ + id: sessionId, + state: "awaiting_payment", + balanceSats: 0, + depositAmountSats: amountSats, + depositPaymentHash: invoice.paymentHash, + depositPaymentRequest: invoice.paymentRequest, + depositPaid: false, + expiresAt: new Date(Date.now() + EXPIRY_MS), + }); + + res.status(201).json({ + sessionId, + state: "awaiting_payment", + invoice: { + paymentRequest: invoice.paymentRequest, + amountSats, + ...(lnbitsService.stubMode ? { paymentHash: invoice.paymentHash } : {}), + }, + }); + } catch (err) { + res.status(500).json({ error: err instanceof Error ? err.message : "Failed to create session" }); + } +}); + +// ── GET /sessions/:id ───────────────────────────────────────────────────────── + +router.get("/sessions/:id", async (req: Request, res: Response) => { + const id = req.params.id as string; + + try { + let session = await getSessionById(id); + if (!session) { res.status(404).json({ error: "Session not found" }); return; } + + // Mark expired sessions + if (checkExpired(session) && session.state !== "expired") { + await db + .update(sessions) + .set({ state: "expired", updatedAt: new Date() }) + .where(eq(sessions.id, id)); + session = (await getSessionById(id))!; + } + + // Auto-advance deposit payment + if (session.state === "awaiting_payment") { + session = await advanceSessionPayment(session); + } + + // Auto-advance topup payment + if (session.topupPaymentHash && !session.topupPaid) { + session = await advanceTopup(session); + } + + res.json(sessionView(session, true)); + } catch (err) { + res.status(500).json({ error: err instanceof Error ? err.message : "Failed to fetch session" }); + } +}); + +// ── POST /sessions/:id/request ──────────────────────────────────────────────── + +router.post("/sessions/:id/request", async (req: Request, res: Response) => { + const id = req.params.id as string; + const macaroon = extractMacaroon(req); + const requestText = typeof req.body?.request === "string" ? req.body.request.trim() : ""; + + if (!requestText) { + res.status(400).json({ error: "Body must include 'request' string" }); + return; + } + + try { + let session = await getSessionById(id); + if (!session) { res.status(404).json({ error: "Session not found" }); return; } + + // Auth + if (!macaroon || macaroon !== session.macaroon) { + res.status(401).json({ error: "Invalid or missing macaroon. Include 'Authorization: Bearer ' header." }); + return; + } + + // State checks + if (checkExpired(session) || session.state === "expired") { + res.status(410).json({ error: "Session has expired" }); + return; + } + + if (session.state === "paused") { + res.status(402).json({ + error: "Insufficient balance", + balance: session.balanceSats, + minimumRequired: MIN_BALANCE_SATS, + }); + return; + } + + if (session.state !== "active") { + res.status(409).json({ error: `Session is in state '${session.state}'` }); + return; + } + + if (session.balanceSats < MIN_BALANCE_SATS) { + // Mark as paused before returning + await db + .update(sessions) + .set({ state: "paused", updatedAt: new Date() }) + .where(eq(sessions.id, id)); + + res.status(402).json({ + error: "Insufficient balance", + balance: session.balanceSats, + minimumRequired: MIN_BALANCE_SATS, + }); + return; + } + + // ── Run the request ─────────────────────────────────────────────────────── + const requestId = randomUUID(); + const btcPriceUsd = await getBtcPriceUsd(); + + // Eval phase + const evalResult = await agentService.evaluateRequest(requestText); + const evalCostUsd = pricingService.calculateActualCostUsd( + evalResult.inputTokens, + evalResult.outputTokens, + agentService.evalModel, + ); + + let workInputTokens = 0; + let workOutputTokens = 0; + let workCostUsd = 0; + let result: string | null = null; + let finalState: "complete" | "rejected" | "failed" = "rejected"; + let reason: string | null = null; + let errorMessage: string | null = null; + + if (evalResult.accepted) { + try { + const workResult = await agentService.executeWork(requestText); + workInputTokens = workResult.inputTokens; + workOutputTokens = workResult.outputTokens; + workCostUsd = pricingService.calculateActualCostUsd( + workResult.inputTokens, + workResult.outputTokens, + agentService.workModel, + ); + result = workResult.result; + finalState = "complete"; + } catch (err) { + errorMessage = err instanceof Error ? err.message : "Execution error"; + finalState = "failed"; + } + } else { + reason = evalResult.reason; + } + + // ── Honest accounting ──────────────────────────────────────────────────── + const totalTokenCostUsd = evalCostUsd + workCostUsd; + const chargeUsd = pricingService.calculateActualChargeUsd(totalTokenCostUsd); + const debitedSats = usdToSats(chargeUsd, btcPriceUsd); + + const newBalance = session.balanceSats - debitedSats; + const newSessionState = newBalance < MIN_BALANCE_SATS ? "paused" : "active"; + const expiresAt = new Date(Date.now() + EXPIRY_MS); + + // Persist session request + update session balance atomically + await db.transaction(async (tx) => { + await tx.insert(sessionRequests).values({ + id: requestId, + sessionId: id, + request: requestText, + state: finalState, + result, + reason, + errorMessage, + evalInputTokens: evalResult.inputTokens, + evalOutputTokens: evalResult.outputTokens, + workInputTokens: workInputTokens || null, + workOutputTokens: workOutputTokens || null, + debitedSats, + balanceAfterSats: newBalance, + btcPriceUsd, + }); + + await tx + .update(sessions) + .set({ + balanceSats: newBalance, + state: newSessionState, + expiresAt, + updatedAt: new Date(), + }) + .where(eq(sessions.id, id)); + }); + + res.json({ + requestId, + state: finalState, + ...(result ? { result } : {}), + ...(reason ? { reason } : {}), + ...(errorMessage ? { errorMessage } : {}), + debitedSats, + balanceRemaining: newBalance, + cost: { + evalSats: usdToSats( + pricingService.calculateActualChargeUsd(evalCostUsd), + btcPriceUsd, + ), + workSats: workCostUsd > 0 + ? usdToSats(pricingService.calculateActualChargeUsd(workCostUsd), btcPriceUsd) + : 0, + totalSats: debitedSats, + btcPriceUsd, + }, + }); + } catch (err) { + res.status(500).json({ error: err instanceof Error ? err.message : "Request failed" }); + } +}); + +// ── POST /sessions/:id/topup ────────────────────────────────────────────────── + +router.post("/sessions/:id/topup", async (req: Request, res: Response) => { + const id = req.params.id as string; + const macaroon = extractMacaroon(req); + const rawAmount = req.body?.amount_sats; + const amountSats = parseInt(String(rawAmount ?? ""), 10); + + if (!Number.isFinite(amountSats) || amountSats < MIN_DEPOSIT_SATS || amountSats > MAX_DEPOSIT_SATS) { + res.status(400).json({ + error: `amount_sats must be an integer between ${MIN_DEPOSIT_SATS} and ${MAX_DEPOSIT_SATS}`, + }); + return; + } + + try { + const session = await getSessionById(id); + if (!session) { res.status(404).json({ error: "Session not found" }); return; } + + if (!macaroon || macaroon !== session.macaroon) { + res.status(401).json({ error: "Invalid or missing macaroon" }); + return; + } + + if (session.state !== "active" && session.state !== "paused") { + res.status(409).json({ error: `Cannot top up a session in state '${session.state}'` }); + return; + } + + if (session.topupPaymentHash && !session.topupPaid) { + res.status(409).json({ + error: "A topup invoice is already pending. Pay it first or poll GET /sessions/:id.", + pendingTopup: { + paymentRequest: session.topupPaymentRequest, + amountSats: session.topupAmountSats, + ...(lnbitsService.stubMode ? { paymentHash: session.topupPaymentHash } : {}), + }, + }); + return; + } + + const invoice = await lnbitsService.createInvoice(amountSats, `Session topup ${id}`); + + await db + .update(sessions) + .set({ + topupAmountSats: amountSats, + topupPaymentHash: invoice.paymentHash, + topupPaymentRequest: invoice.paymentRequest, + topupPaid: false, + updatedAt: new Date(), + }) + .where(eq(sessions.id, id)); + + res.json({ + sessionId: id, + topup: { + paymentRequest: invoice.paymentRequest, + amountSats, + ...(lnbitsService.stubMode ? { paymentHash: invoice.paymentHash } : {}), + }, + }); + } catch (err) { + res.status(500).json({ error: err instanceof Error ? err.message : "Topup failed" }); + } +}); + +export default router; diff --git a/artifacts/api-server/src/routes/testkit.ts b/artifacts/api-server/src/routes/testkit.ts index 7dfc0e8..78b5836 100644 --- a/artifacts/api-server/src/routes/testkit.ts +++ b/artifacts/api-server/src/routes/testkit.ts @@ -300,6 +300,146 @@ else fi fi +# --------------------------------------------------------------------------- +# Test 11 — Session: create session +# --------------------------------------------------------------------------- +sep "Test 11 — Session: create session (awaiting_payment)" +T11_RES=$(curl -s -w "\\n%{http_code}" -X POST "$BASE/api/sessions" \\ + -H "Content-Type: application/json" \\ + -d '{"amount_sats": 200}') +T11_BODY=$(echo "$T11_RES" | head -n-1) +T11_CODE=$(echo "$T11_RES" | tail -n1) +SESSION_ID=$(echo "$T11_BODY" | jq -r '.sessionId' 2>/dev/null || echo "") +T11_STATE=$(echo "$T11_BODY" | jq -r '.state' 2>/dev/null || echo "") +T11_AMT=$(echo "$T11_BODY" | jq -r '.invoice.amountSats' 2>/dev/null || echo "") +DEPOSIT_HASH=$(echo "$T11_BODY" | jq -r '.invoice.paymentHash' 2>/dev/null || echo "") +if [[ "$T11_CODE" == "201" && -n "$SESSION_ID" && "$T11_STATE" == "awaiting_payment" && "$T11_AMT" == "200" ]]; then + note PASS "HTTP 201, sessionId=$SESSION_ID, state=awaiting_payment, amount=200" + PASS=$((PASS+1)) +else + note FAIL "code=$T11_CODE body=$T11_BODY" + FAIL=$((FAIL+1)) +fi + +# --------------------------------------------------------------------------- +# Test 12 — Session: poll before payment (stub hash present) +# --------------------------------------------------------------------------- +sep "Test 12 — Session: poll before payment" +T12_RES=$(curl -s -w "\\n%{http_code}" "$BASE/api/sessions/$SESSION_ID") +T12_BODY=$(echo "$T12_RES" | head -n-1) +T12_CODE=$(echo "$T12_RES" | tail -n1) +T12_STATE=$(echo "$T12_BODY" | jq -r '.state' 2>/dev/null || echo "") +if [[ -z "$DEPOSIT_HASH" || "$DEPOSIT_HASH" == "null" ]]; then + DEPOSIT_HASH=$(echo "$T12_BODY" | jq -r '.invoice.paymentHash' 2>/dev/null || echo "") +fi +if [[ "$T12_CODE" == "200" && "$T12_STATE" == "awaiting_payment" ]]; then + note PASS "state=awaiting_payment before payment" + PASS=$((PASS+1)) +else + note FAIL "code=$T12_CODE body=$T12_BODY" + FAIL=$((FAIL+1)) +fi + +# --------------------------------------------------------------------------- +# Test 13 — Session: pay deposit + activate +# --------------------------------------------------------------------------- +sep "Test 13 — Session: pay deposit (stub) + auto-advance to active" +if [[ -n "$DEPOSIT_HASH" && "$DEPOSIT_HASH" != "null" ]]; then + curl -s -X POST "$BASE/api/dev/stub/pay/$DEPOSIT_HASH" >/dev/null + sleep 1 + T13_RES=$(curl -s -w "\\n%{http_code}" "$BASE/api/sessions/$SESSION_ID") + T13_BODY=$(echo "$T13_RES" | head -n-1) + T13_CODE=$(echo "$T13_RES" | tail -n1) + T13_STATE=$(echo "$T13_BODY" | jq -r '.state' 2>/dev/null || echo "") + T13_BAL=$(echo "$T13_BODY" | jq -r '.balanceSats' 2>/dev/null || echo "") + SESSION_MACAROON=$(echo "$T13_BODY" | jq -r '.macaroon' 2>/dev/null || echo "") + if [[ "$T13_CODE" == "200" && "$T13_STATE" == "active" && "$T13_BAL" == "200" && -n "$SESSION_MACAROON" && "$SESSION_MACAROON" != "null" ]]; then + note PASS "state=active, balanceSats=200, macaroon present" + PASS=$((PASS+1)) + else + note FAIL "code=$T13_CODE state=$T13_STATE bal=$T13_BAL body=$T13_BODY" + FAIL=$((FAIL+1)) + fi +else + note SKIP "No deposit hash (stub mode not active)" + SKIP=$((SKIP+1)) +fi + +# --------------------------------------------------------------------------- +# Test 14 — Session: submit request (accepted path) +# --------------------------------------------------------------------------- +sep "Test 14 — Session: submit request (accepted)" +if [[ -n "$SESSION_MACAROON" && "$SESSION_MACAROON" != "null" ]]; then + START_T14=$(date +%s) + T14_RES=$(curl -s -w "\\n%{http_code}" -X POST "$BASE/api/sessions/$SESSION_ID/request" \\ + -H "Content-Type: application/json" \\ + -H "Authorization: Bearer $SESSION_MACAROON" \\ + -d '{"request":"What is Bitcoin in one sentence?"}') + T14_BODY=$(echo "$T14_RES" | head -n-1) + T14_CODE=$(echo "$T14_RES" | tail -n1) + T14_STATE=$(echo "$T14_BODY" | jq -r '.state' 2>/dev/null || echo "") + T14_DEBITED=$(echo "$T14_BODY" | jq -r '.debitedSats' 2>/dev/null || echo "") + T14_BAL=$(echo "$T14_BODY" | jq -r '.balanceRemaining' 2>/dev/null || echo "") + END_T14=$(date +%s) + ELAPSED_T14=$((END_T14 - START_T14)) + if [[ "$T14_CODE" == "200" && ("$T14_STATE" == "complete" || "$T14_STATE" == "rejected") && -n "$T14_DEBITED" && "$T14_DEBITED" != "null" && -n "$T14_BAL" ]]; then + note PASS "state=$T14_STATE in ${ELAPSED_T14}s, debitedSats=$T14_DEBITED, balanceRemaining=$T14_BAL" + PASS=$((PASS+1)) + else + note FAIL "code=$T14_CODE body=$T14_BODY" + FAIL=$((FAIL+1)) + fi +else + note SKIP "No macaroon — skipping" + SKIP=$((SKIP+1)) +fi + +# --------------------------------------------------------------------------- +# Test 15 — Session: missing/invalid macaroon → 401 +# --------------------------------------------------------------------------- +sep "Test 15 — Session: reject request without valid macaroon" +if [[ -n "$SESSION_ID" ]]; then + T15_RES=$(curl -s -w "\\n%{http_code}" -X POST "$BASE/api/sessions/$SESSION_ID/request" \\ + -H "Content-Type: application/json" \\ + -d '{"request":"What is Bitcoin?"}') + T15_CODE=$(echo "$T15_RES" | tail -n1) + if [[ "$T15_CODE" == "401" ]]; then + note PASS "HTTP 401 without macaroon" + PASS=$((PASS+1)) + else + note FAIL "Expected 401, got code=$T15_CODE" + FAIL=$((FAIL+1)) + fi +else + note SKIP "No session ID — skipping" + SKIP=$((SKIP+1)) +fi + +# --------------------------------------------------------------------------- +# Test 16 — Session: topup invoice creation +# --------------------------------------------------------------------------- +sep "Test 16 — Session: topup invoice creation" +if [[ -n "$SESSION_MACAROON" && "$SESSION_MACAROON" != "null" ]]; then + T16_RES=$(curl -s -w "\\n%{http_code}" -X POST "$BASE/api/sessions/$SESSION_ID/topup" \\ + -H "Content-Type: application/json" \\ + -H "Authorization: Bearer $SESSION_MACAROON" \\ + -d '{"amount_sats": 500}') + T16_BODY=$(echo "$T16_RES" | head -n-1) + T16_CODE=$(echo "$T16_RES" | tail -n1) + T16_PR=$(echo "$T16_BODY" | jq -r '.topup.paymentRequest' 2>/dev/null || echo "") + T16_AMT=$(echo "$T16_BODY" | jq -r '.topup.amountSats' 2>/dev/null || echo "") + if [[ "$T16_CODE" == "200" && -n "$T16_PR" && "$T16_PR" != "null" && "$T16_AMT" == "500" ]]; then + note PASS "Topup invoice created, amountSats=500" + PASS=$((PASS+1)) + else + note FAIL "code=$T16_CODE body=$T16_BODY" + FAIL=$((FAIL+1)) + fi +else + note SKIP "No macaroon — skipping" + SKIP=$((SKIP+1)) +fi + # --------------------------------------------------------------------------- # Summary # --------------------------------------------------------------------------- diff --git a/attached_assets/IMG_0025_1773862974250.jpeg b/attached_assets/IMG_0025_1773862974250.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..96b348b215e53256dff8efca7e3d6da211cc4ca8 GIT binary patch literal 344155 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Μ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 a9?P$ksz!pMONYf)bIRvSGkqEV-vj_#SBa4T literal 0 HcmV?d00001 diff --git a/lib/api-client-react/src/generated/api.schemas.ts b/lib/api-client-react/src/generated/api.schemas.ts deleted file mode 100644 index 3a2f8e7..0000000 --- a/lib/api-client-react/src/generated/api.schemas.ts +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -export interface HealthStatus { - status: string; -} - -export interface ErrorResponse { - error: string; -} - -export interface InvoiceInfo { - paymentRequest: string; - amountSats: number; -} - -export interface CreateJobRequest { - /** @minLength 1 */ - request: string; -} - -export interface CreateJobResponse { - jobId: string; - evalInvoice: InvoiceInfo; -} - -export type JobState = (typeof JobState)[keyof typeof JobState]; - -export const JobState = { - awaiting_eval_payment: "awaiting_eval_payment", - evaluating: "evaluating", - rejected: "rejected", - awaiting_work_payment: "awaiting_work_payment", - executing: "executing", - complete: "complete", - failed: "failed", -} as const; - -/** - * Cost breakdown shown with the work invoice (estimations at invoice-creation time) - */ -export interface PricingBreakdown { - /** Total estimated cost in USD (token cost + DO infra + margin) */ - estimatedCostUsd?: number; - /** Originator margin percentage applied */ - marginPct?: number; - /** BTC/USD spot price used to convert the invoice to sats */ - btcPriceUsd?: number; -} - -/** - * Lifecycle of the refund for this job - */ -export type CostLedgerRefundState = - (typeof CostLedgerRefundState)[keyof typeof CostLedgerRefundState]; - -export const CostLedgerRefundState = { - not_applicable: "not_applicable", - pending: "pending", - paid: "paid", -} as const; - -/** - * Honest post-work accounting stored after the job completes - */ -export interface CostLedger { - actualInputTokens?: number; - actualOutputTokens?: number; - /** Sum of actualInputTokens + actualOutputTokens */ - totalTokens?: number; - /** Raw Anthropic token cost (no infra, no margin) */ - actualCostUsd?: number; - /** What we honestly charged in USD (actual token cost + DO infra + margin) */ - actualChargeUsd?: number; - /** Original estimate used to create the work invoice */ - estimatedCostUsd?: number; - /** Honest sats charge (actual cost converted at the locked BTC price) */ - actualAmountSats?: number; - /** Amount the user originally paid in sats */ - workAmountSats?: number; - /** Sats owed back to the user (workAmountSats - actualAmountSats, >= 0) */ - refundAmountSats?: number; - /** Lifecycle of the refund for this job */ - refundState?: CostLedgerRefundState; - marginPct?: number; - /** BTC/USD price locked at invoice creation time */ - btcPriceUsd?: number; -} - -export interface JobStatusResponse { - jobId: string; - state: JobState; - evalInvoice?: InvoiceInfo; - workInvoice?: InvoiceInfo; - pricingBreakdown?: PricingBreakdown; - reason?: string; - result?: string; - costLedger?: CostLedger; - errorMessage?: string; -} - -export interface ClaimRefundRequest { - /** BOLT11 invoice for exactly refundAmountSats */ - invoice: string; -} - -export interface ClaimRefundResponse { - ok: boolean; - refundAmountSats: number; - paymentHash: string; - message: string; -} - -export interface DemoResponse { - result: string; -} - -export type RunDemoParams = { - request: string; -}; diff --git a/lib/api-client-react/src/generated/api.ts b/lib/api-client-react/src/generated/api.ts deleted file mode 100644 index 64f851d..0000000 --- a/lib/api-client-react/src/generated/api.ts +++ /dev/null @@ -1,456 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -import { useMutation, useQuery } from "@tanstack/react-query"; -import type { - MutationFunction, - QueryFunction, - QueryKey, - UseMutationOptions, - UseMutationResult, - UseQueryOptions, - UseQueryResult, -} from "@tanstack/react-query"; - -import type { - ClaimRefundRequest, - ClaimRefundResponse, - CreateJobRequest, - CreateJobResponse, - DemoResponse, - ErrorResponse, - HealthStatus, - JobStatusResponse, - RunDemoParams, -} from "./api.schemas"; - -import { customFetch } from "../custom-fetch"; -import type { ErrorType, BodyType } from "../custom-fetch"; - -type AwaitedInput = PromiseLike | T; - -type Awaited = O extends AwaitedInput ? T : never; - -type SecondParameter unknown> = Parameters[1]; - -/** - * Returns server health status - * @summary Health check - */ -export const getHealthCheckUrl = () => { - return `/api/healthz`; -}; - -export const healthCheck = async ( - options?: RequestInit, -): Promise => { - return customFetch(getHealthCheckUrl(), { - ...options, - method: "GET", - }); -}; - -export const getHealthCheckQueryKey = () => { - return [`/api/healthz`] as const; -}; - -export const getHealthCheckQueryOptions = < - TData = Awaited>, - TError = ErrorType, ->(options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData - >; - request?: SecondParameter; -}) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = queryOptions?.queryKey ?? getHealthCheckQueryKey(); - - const queryFn: QueryFunction>> = ({ - signal, - }) => healthCheck({ signal, ...requestOptions }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: QueryKey }; -}; - -export type HealthCheckQueryResult = NonNullable< - Awaited> ->; -export type HealthCheckQueryError = ErrorType; - -/** - * @summary Health check - */ - -export function useHealthCheck< - TData = Awaited>, - TError = ErrorType, ->(options?: { - query?: UseQueryOptions< - Awaited>, - TError, - TData - >; - request?: SecondParameter; -}): UseQueryResult & { queryKey: QueryKey } { - const queryOptions = getHealthCheckQueryOptions(options); - - const query = useQuery(queryOptions) as UseQueryResult & { - queryKey: QueryKey; - }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Accepts a request, creates a job row, and issues an eval fee Lightning invoice. - * @summary Create a new agent job - */ -export const getCreateJobUrl = () => { - return `/api/jobs`; -}; - -export const createJob = async ( - createJobRequest: CreateJobRequest, - options?: RequestInit, -): Promise => { - return customFetch(getCreateJobUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(createJobRequest), - }); -}; - -export const getCreateJobMutationOptions = < - TError = ErrorType, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { data: BodyType }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { data: BodyType }, - TContext -> => { - const mutationKey = ["createJob"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { data: BodyType } - > = (props) => { - const { data } = props ?? {}; - - return createJob(data, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type CreateJobMutationResult = NonNullable< - Awaited> ->; -export type CreateJobMutationBody = BodyType; -export type CreateJobMutationError = ErrorType; - -/** - * @summary Create a new agent job - */ -export const useCreateJob = < - TError = ErrorType, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { data: BodyType }, - TContext - >; - request?: SecondParameter; -}): UseMutationResult< - Awaited>, - TError, - { data: BodyType }, - TContext -> => { - return useMutation(getCreateJobMutationOptions(options)); -}; - -/** - * Returns current job state. Automatically advances the state machine when a pending invoice is found to be paid. - * @summary Get job status - */ -export const getGetJobUrl = (id: string) => { - return `/api/jobs/${id}`; -}; - -export const getJob = async ( - id: string, - options?: RequestInit, -): Promise => { - return customFetch(getGetJobUrl(id), { - ...options, - method: "GET", - }); -}; - -export const getGetJobQueryKey = (id: string) => { - return [`/api/jobs/${id}`] as const; -}; - -export const getGetJobQueryOptions = < - TData = Awaited>, - TError = ErrorType, ->( - id: string, - options?: { - query?: UseQueryOptions>, TError, TData>; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = queryOptions?.queryKey ?? getGetJobQueryKey(id); - - const queryFn: QueryFunction>> = ({ - signal, - }) => getJob(id, { signal, ...requestOptions }); - - return { - queryKey, - queryFn, - enabled: !!id, - ...queryOptions, - } as UseQueryOptions>, TError, TData> & { - queryKey: QueryKey; - }; -}; - -export type GetJobQueryResult = NonNullable>>; -export type GetJobQueryError = ErrorType; - -/** - * @summary Get job status - */ - -export function useGetJob< - TData = Awaited>, - TError = ErrorType, ->( - id: string, - options?: { - query?: UseQueryOptions>, TError, TData>; - request?: SecondParameter; - }, -): UseQueryResult & { queryKey: QueryKey } { - const queryOptions = getGetJobQueryOptions(id, options); - - const query = useQuery(queryOptions) as UseQueryResult & { - queryKey: QueryKey; - }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * After a job completes, if the actual cost (tokens used + infra + margin) was -less than the work invoice amount, the difference is owed back to the user. -Submit a BOLT11 invoice for exactly `refundAmountSats` to receive the payment. -Idempotent: returns 409 if already paid or if no refund is owed. - - * @summary Claim a refund for overpayment - */ -export const getClaimRefundUrl = (id: string) => { - return `/api/jobs/${id}/refund`; -}; - -export const claimRefund = async ( - id: string, - claimRefundRequest: ClaimRefundRequest, - options?: RequestInit, -): Promise => { - return customFetch(getClaimRefundUrl(id), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(claimRefundRequest), - }); -}; - -export const getClaimRefundMutationOptions = < - TError = ErrorType, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { id: string; data: BodyType }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { id: string; data: BodyType }, - TContext -> => { - const mutationKey = ["claimRefund"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { id: string; data: BodyType } - > = (props) => { - const { id, data } = props ?? {}; - - return claimRefund(id, data, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type ClaimRefundMutationResult = NonNullable< - Awaited> ->; -export type ClaimRefundMutationBody = BodyType; -export type ClaimRefundMutationError = ErrorType; - -/** - * @summary Claim a refund for overpayment - */ -export const useClaimRefund = < - TError = ErrorType, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { id: string; data: BodyType }, - TContext - >; - request?: SecondParameter; -}): UseMutationResult< - Awaited>, - TError, - { id: string; data: BodyType }, - TContext -> => { - return useMutation(getClaimRefundMutationOptions(options)); -}; - -/** - * Runs the agent without payment. Limited to 5 requests per IP per hour. - * @summary Free demo (rate-limited) - */ -export const getRunDemoUrl = (params: RunDemoParams) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/demo?${stringifiedParams}` - : `/api/demo`; -}; - -export const runDemo = async ( - params: RunDemoParams, - options?: RequestInit, -): Promise => { - return customFetch(getRunDemoUrl(params), { - ...options, - method: "GET", - }); -}; - -export const getRunDemoQueryKey = (params?: RunDemoParams) => { - return [`/api/demo`, ...(params ? [params] : [])] as const; -}; - -export const getRunDemoQueryOptions = < - TData = Awaited>, - TError = ErrorType, ->( - params: RunDemoParams, - options?: { - query?: UseQueryOptions>, TError, TData>; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = queryOptions?.queryKey ?? getRunDemoQueryKey(params); - - const queryFn: QueryFunction>> = ({ - signal, - }) => runDemo(params, { signal, ...requestOptions }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: QueryKey }; -}; - -export type RunDemoQueryResult = NonNullable< - Awaited> ->; -export type RunDemoQueryError = ErrorType; - -/** - * @summary Free demo (rate-limited) - */ - -export function useRunDemo< - TData = Awaited>, - TError = ErrorType, ->( - params: RunDemoParams, - options?: { - query?: UseQueryOptions>, TError, TData>; - request?: SecondParameter; - }, -): UseQueryResult & { queryKey: QueryKey } { - const queryOptions = getRunDemoQueryOptions(params, options); - - const query = useQuery(queryOptions) as UseQueryResult & { - queryKey: QueryKey; - }; - - return { ...query, queryKey: queryOptions.queryKey }; -} diff --git a/lib/api-spec/openapi.yaml b/lib/api-spec/openapi.yaml index 45e2d48..a3b456e 100644 --- a/lib/api-spec/openapi.yaml +++ b/lib/api-spec/openapi.yaml @@ -11,7 +11,9 @@ tags: - name: health description: Health operations - name: jobs - description: Payment-gated agent job operations + description: Payment-gated agent job operations (Mode 1 -- per-job) + - name: sessions + description: Pre-funded session balance mode (Mode 2 -- pay once, run many) - name: demo description: Free demo endpoint (rate-limited) paths: @@ -143,6 +145,165 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorResponse" + /sessions: + post: + operationId: createSession + tags: [sessions] + summary: Create a pre-funded session + description: | + Opens a new session. Pay the returned Lightning invoice to activate it. + Once active, use the `macaroon` from GET /sessions/:id to authenticate requests. + Deposits: 100–10,000 sats. Sessions expire after 24 h of inactivity. + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreateSessionRequest" + responses: + "201": + description: Session created -- awaiting deposit payment + content: + application/json: + schema: + $ref: "#/components/schemas/CreateSessionResponse" + "400": + description: Invalid amount + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "500": + description: Server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + /sessions/{id}: + get: + operationId: getSession + tags: [sessions] + summary: Get session status + description: Returns current state, balance, and pending invoice info. Auto-advances on payment. + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + "200": + description: Session status + content: + application/json: + schema: + $ref: "#/components/schemas/SessionStatusResponse" + "404": + description: Session not found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + /sessions/{id}/request: + post: + operationId: submitSessionRequest + tags: [sessions] + summary: Submit a request against a session balance + description: | + Runs eval + work and debits the actual compute cost from the session balance. + Rejected requests still incur a small eval fee. Requires `Authorization: Bearer `. + parameters: + - name: id + in: path + required: true + schema: + type: string + security: + - sessionMacaroon: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/SessionRequestBody" + responses: + "200": + description: Request completed (or rejected) + content: + application/json: + schema: + $ref: "#/components/schemas/SessionRequestResponse" + "401": + description: Missing or invalid macaroon + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "402": + description: Insufficient balance + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "409": + description: Session not active + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "410": + description: Session expired + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + /sessions/{id}/topup: + post: + operationId: topupSession + tags: [sessions] + summary: Add sats to a session + description: | + Creates a new Lightning invoice to top up the session balance. + Only one pending topup at a time. Paying it resumes a paused session. + parameters: + - name: id + in: path + required: true + schema: + type: string + security: + - sessionMacaroon: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CreateSessionRequest" + responses: + "200": + description: Topup invoice created + content: + application/json: + schema: + $ref: "#/components/schemas/TopupSessionResponse" + "400": + description: Invalid amount + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "401": + description: Invalid macaroon + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + "409": + description: Session not active/paused, or topup already pending + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" /demo: get: operationId: runDemo @@ -309,6 +470,109 @@ components: $ref: "#/components/schemas/CostLedger" errorMessage: type: string + SessionState: + type: string + enum: [awaiting_payment, active, paused, expired] + SessionInvoiceInfo: + type: object + properties: + paymentRequest: + type: string + amountSats: + type: integer + paymentHash: + type: string + description: Only present in stub/dev mode + CreateSessionRequest: + type: object + required: [amount_sats] + properties: + amount_sats: + type: integer + description: Deposit amount (100–10,000 sats) + minimum: 100 + maximum: 10000 + CreateSessionResponse: + type: object + required: [sessionId, state, invoice] + properties: + sessionId: + type: string + state: + $ref: "#/components/schemas/SessionState" + invoice: + $ref: "#/components/schemas/SessionInvoiceInfo" + SessionStatusResponse: + type: object + required: [sessionId, state, balanceSats] + properties: + sessionId: + type: string + state: + $ref: "#/components/schemas/SessionState" + balanceSats: + type: integer + minimumBalanceSats: + type: integer + macaroon: + type: string + description: Bearer token for authenticating requests; present when active or paused + expiresAt: + type: string + format: date-time + invoice: + $ref: "#/components/schemas/SessionInvoiceInfo" + description: Present when state is awaiting_payment + pendingTopup: + $ref: "#/components/schemas/SessionInvoiceInfo" + description: Present when a topup invoice is outstanding + SessionRequestBody: + type: object + required: [request] + properties: + request: + type: string + minLength: 1 + SessionCostBreakdown: + type: object + properties: + evalSats: + type: integer + workSats: + type: integer + totalSats: + type: integer + btcPriceUsd: + type: number + SessionRequestResponse: + type: object + required: [requestId, state, debitedSats, balanceRemaining] + properties: + requestId: + type: string + state: + type: string + enum: [complete, rejected, failed] + result: + type: string + reason: + type: string + errorMessage: + type: string + debitedSats: + type: integer + balanceRemaining: + type: integer + cost: + $ref: "#/components/schemas/SessionCostBreakdown" + TopupSessionResponse: + type: object + required: [sessionId, topup] + properties: + sessionId: + type: string + topup: + $ref: "#/components/schemas/SessionInvoiceInfo" ClaimRefundRequest: type: object required: @@ -340,3 +604,8 @@ components: properties: result: type: string + securitySchemes: + sessionMacaroon: + type: http + scheme: bearer + description: Session macaroon issued when a session activates. Pass as `Authorization: Bearer `. diff --git a/lib/api-zod/src/generated/api.ts b/lib/api-zod/src/generated/api.ts index 63f5c74..4ce044a 100644 --- a/lib/api-zod/src/generated/api.ts +++ b/lib/api-zod/src/generated/api.ts @@ -1,167 +1,45 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -import * as zod from "zod"; +import { z } from "zod"; -/** - * Returns server health status - * @summary Health check - */ -export const HealthCheckResponse = zod.object({ - status: zod.string(), +export const HealthCheckResponse = z.object({ + status: z.string(), }); -/** - * Accepts a request, creates a job row, and issues an eval fee Lightning invoice. - * @summary Create a new agent job - */ - -export const CreateJobBody = zod.object({ - request: zod.string().min(1), +export const ErrorResponse = z.object({ + error: z.string(), }); -/** - * Returns current job state. Automatically advances the state machine when a pending invoice is found to be paid. - * @summary Get job status - */ -export const GetJobParams = zod.object({ - id: zod.coerce.string(), +export const CreateJobBody = z.object({ + request: z.string().min(1).max(500), }); -export const GetJobResponse = zod.object({ - jobId: zod.string(), - state: zod.enum([ - "awaiting_eval_payment", - "evaluating", - "rejected", - "awaiting_work_payment", - "executing", - "complete", - "failed", - ]), - evalInvoice: zod - .object({ - paymentRequest: zod.string(), - amountSats: zod.number(), - }) - .optional(), - workInvoice: zod - .object({ - paymentRequest: zod.string(), - amountSats: zod.number(), - }) - .optional(), - pricingBreakdown: zod - .object({ - estimatedCostUsd: zod - .number() - .optional() - .describe( - "Total estimated cost in USD (token cost + DO infra + margin)", - ), - marginPct: zod - .number() - .optional() - .describe("Originator margin percentage applied"), - btcPriceUsd: zod - .number() - .optional() - .describe("BTC\/USD spot price used to convert the invoice to sats"), - }) - .optional() - .describe( - "Cost breakdown shown with the work invoice (estimations at invoice-creation time)", - ), - reason: zod.string().optional(), - result: zod.string().optional(), - costLedger: zod - .object({ - actualInputTokens: zod.number().optional(), - actualOutputTokens: zod.number().optional(), - totalTokens: zod - .number() - .optional() - .describe("Sum of actualInputTokens + actualOutputTokens"), - actualCostUsd: zod - .number() - .optional() - .describe("Raw Anthropic token cost (no infra, no margin)"), - actualChargeUsd: zod - .number() - .optional() - .describe( - "What we honestly charged in USD (actual token cost + DO infra + margin)", - ), - estimatedCostUsd: zod - .number() - .optional() - .describe("Original estimate used to create the work invoice"), - actualAmountSats: zod - .number() - .optional() - .describe( - "Honest sats charge (actual cost converted at the locked BTC price)", - ), - workAmountSats: zod - .number() - .optional() - .describe("Amount the user originally paid in sats"), - refundAmountSats: zod - .number() - .optional() - .describe( - "Sats owed back to the user (workAmountSats - actualAmountSats, >= 0)", - ), - refundState: zod - .enum(["not_applicable", "pending", "paid"]) - .optional() - .describe("Lifecycle of the refund for this job"), - marginPct: zod.number().optional(), - btcPriceUsd: zod - .number() - .optional() - .describe("BTC\/USD price locked at invoice creation time"), - }) - .optional() - .describe("Honest post-work accounting stored after the job completes"), - errorMessage: zod.string().optional(), +export const GetJobParams = z.object({ + id: z.string(), }); -/** - * After a job completes, if the actual cost (tokens used + infra + margin) was -less than the work invoice amount, the difference is owed back to the user. -Submit a BOLT11 invoice for exactly `refundAmountSats` to receive the payment. -Idempotent: returns 409 if already paid or if no refund is owed. - - * @summary Claim a refund for overpayment - */ -export const ClaimRefundParams = zod.object({ - id: zod.coerce.string(), +export const GetJobRefundParams = z.object({ + id: z.string(), }); -export const ClaimRefundBody = zod.object({ - invoice: zod.string().describe("BOLT11 invoice for exactly refundAmountSats"), +export const ClaimRefundBody = z.object({ + paymentRequest: z.string(), }); -export const ClaimRefundResponse = zod.object({ - ok: zod.boolean(), - refundAmountSats: zod.number(), - paymentHash: zod.string(), - message: zod.string(), +export const RunDemoQueryParams = z.object({ + request: z.string().min(1), }); -/** - * Runs the agent without payment. Limited to 5 requests per IP per hour. - * @summary Free demo (rate-limited) - */ -export const RunDemoQueryParams = zod.object({ - request: zod.coerce.string(), +export const CreateSessionBody = z.object({ + amount_sats: z.number().int().min(100).max(10000), }); -export const RunDemoResponse = zod.object({ - result: zod.string(), +export const GetSessionParams = z.object({ + id: z.string(), +}); + +export const SubmitSessionRequestBody = z.object({ + request: z.string().min(1), +}); + +export const TopupSessionBody = z.object({ + amount_sats: z.number().int().min(100).max(10000), }); diff --git a/lib/api-zod/src/generated/types.ts b/lib/api-zod/src/generated/types.ts new file mode 100644 index 0000000..3776f91 --- /dev/null +++ b/lib/api-zod/src/generated/types.ts @@ -0,0 +1,3 @@ +// TypeScript types derived from Zod schemas in ./api +// All schemas and their inferred types are exported from ./api via src/index.ts +export {}; diff --git a/lib/api-zod/src/generated/types/claimRefundRequest.ts b/lib/api-zod/src/generated/types/claimRefundRequest.ts deleted file mode 100644 index cdd7eae..0000000 --- a/lib/api-zod/src/generated/types/claimRefundRequest.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface ClaimRefundRequest { - /** BOLT11 invoice for exactly refundAmountSats */ - invoice: string; -} diff --git a/lib/api-zod/src/generated/types/claimRefundResponse.ts b/lib/api-zod/src/generated/types/claimRefundResponse.ts deleted file mode 100644 index 8643ece..0000000 --- a/lib/api-zod/src/generated/types/claimRefundResponse.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface ClaimRefundResponse { - ok: boolean; - refundAmountSats: number; - paymentHash: string; - message: string; -} diff --git a/lib/api-zod/src/generated/types/costLedger.ts b/lib/api-zod/src/generated/types/costLedger.ts deleted file mode 100644 index 6b2e39e..0000000 --- a/lib/api-zod/src/generated/types/costLedger.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -import type { CostLedgerRefundState } from "./costLedgerRefundState"; - -/** - * Honest post-work accounting stored after the job completes - */ -export interface CostLedger { - actualInputTokens?: number; - actualOutputTokens?: number; - /** Sum of actualInputTokens + actualOutputTokens */ - totalTokens?: number; - /** Raw Anthropic token cost (no infra, no margin) */ - actualCostUsd?: number; - /** What we honestly charged in USD (actual token cost + DO infra + margin) */ - actualChargeUsd?: number; - /** Original estimate used to create the work invoice */ - estimatedCostUsd?: number; - /** Honest sats charge (actual cost converted at the locked BTC price) */ - actualAmountSats?: number; - /** Amount the user originally paid in sats */ - workAmountSats?: number; - /** Sats owed back to the user (workAmountSats - actualAmountSats, >= 0) */ - refundAmountSats?: number; - /** Lifecycle of the refund for this job */ - refundState?: CostLedgerRefundState; - marginPct?: number; - /** BTC/USD price locked at invoice creation time */ - btcPriceUsd?: number; -} diff --git a/lib/api-zod/src/generated/types/costLedgerRefundState.ts b/lib/api-zod/src/generated/types/costLedgerRefundState.ts deleted file mode 100644 index 7f44b92..0000000 --- a/lib/api-zod/src/generated/types/costLedgerRefundState.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -/** - * Lifecycle of the refund for this job - */ -export type CostLedgerRefundState = - (typeof CostLedgerRefundState)[keyof typeof CostLedgerRefundState]; - -export const CostLedgerRefundState = { - not_applicable: "not_applicable", - pending: "pending", - paid: "paid", -} as const; diff --git a/lib/api-zod/src/generated/types/createJobRequest.ts b/lib/api-zod/src/generated/types/createJobRequest.ts deleted file mode 100644 index 15b1d8f..0000000 --- a/lib/api-zod/src/generated/types/createJobRequest.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface CreateJobRequest { - /** @minLength 1 */ - request: string; -} diff --git a/lib/api-zod/src/generated/types/createJobResponse.ts b/lib/api-zod/src/generated/types/createJobResponse.ts deleted file mode 100644 index f1c62b0..0000000 --- a/lib/api-zod/src/generated/types/createJobResponse.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -import type { InvoiceInfo } from "./invoiceInfo"; - -export interface CreateJobResponse { - jobId: string; - evalInvoice: InvoiceInfo; -} diff --git a/lib/api-zod/src/generated/types/demoResponse.ts b/lib/api-zod/src/generated/types/demoResponse.ts deleted file mode 100644 index acceb16..0000000 --- a/lib/api-zod/src/generated/types/demoResponse.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface DemoResponse { - result: string; -} diff --git a/lib/api-zod/src/generated/types/errorResponse.ts b/lib/api-zod/src/generated/types/errorResponse.ts deleted file mode 100644 index 8c46a3a..0000000 --- a/lib/api-zod/src/generated/types/errorResponse.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface ErrorResponse { - error: string; -} diff --git a/lib/api-zod/src/generated/types/healthStatus.ts b/lib/api-zod/src/generated/types/healthStatus.ts deleted file mode 100644 index f1ad88c..0000000 --- a/lib/api-zod/src/generated/types/healthStatus.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface HealthStatus { - status: string; -} diff --git a/lib/api-zod/src/generated/types/index.ts b/lib/api-zod/src/generated/types/index.ts deleted file mode 100644 index 9547d3e..0000000 --- a/lib/api-zod/src/generated/types/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export * from "./claimRefundRequest"; -export * from "./claimRefundResponse"; -export * from "./costLedger"; -export * from "./costLedgerRefundState"; -export * from "./createJobRequest"; -export * from "./createJobResponse"; -export * from "./demoResponse"; -export * from "./errorResponse"; -export * from "./healthStatus"; -export * from "./invoiceInfo"; -export * from "./jobState"; -export * from "./jobStatusResponse"; -export * from "./pricingBreakdown"; -export * from "./runDemoParams"; diff --git a/lib/api-zod/src/generated/types/invoiceInfo.ts b/lib/api-zod/src/generated/types/invoiceInfo.ts deleted file mode 100644 index 1370753..0000000 --- a/lib/api-zod/src/generated/types/invoiceInfo.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export interface InvoiceInfo { - paymentRequest: string; - amountSats: number; -} diff --git a/lib/api-zod/src/generated/types/jobState.ts b/lib/api-zod/src/generated/types/jobState.ts deleted file mode 100644 index b4c113c..0000000 --- a/lib/api-zod/src/generated/types/jobState.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export type JobState = (typeof JobState)[keyof typeof JobState]; - -export const JobState = { - awaiting_eval_payment: "awaiting_eval_payment", - evaluating: "evaluating", - rejected: "rejected", - awaiting_work_payment: "awaiting_work_payment", - executing: "executing", - complete: "complete", - failed: "failed", -} as const; diff --git a/lib/api-zod/src/generated/types/jobStatusResponse.ts b/lib/api-zod/src/generated/types/jobStatusResponse.ts deleted file mode 100644 index 4a86bb8..0000000 --- a/lib/api-zod/src/generated/types/jobStatusResponse.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ -import type { CostLedger } from "./costLedger"; -import type { InvoiceInfo } from "./invoiceInfo"; -import type { JobState } from "./jobState"; -import type { PricingBreakdown } from "./pricingBreakdown"; - -export interface JobStatusResponse { - jobId: string; - state: JobState; - evalInvoice?: InvoiceInfo; - workInvoice?: InvoiceInfo; - pricingBreakdown?: PricingBreakdown; - reason?: string; - result?: string; - costLedger?: CostLedger; - errorMessage?: string; -} diff --git a/lib/api-zod/src/generated/types/pricingBreakdown.ts b/lib/api-zod/src/generated/types/pricingBreakdown.ts deleted file mode 100644 index 4c1ed4c..0000000 --- a/lib/api-zod/src/generated/types/pricingBreakdown.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -/** - * Cost breakdown shown with the work invoice (estimations at invoice-creation time) - */ -export interface PricingBreakdown { - /** Total estimated cost in USD (token cost + DO infra + margin) */ - estimatedCostUsd?: number; - /** Originator margin percentage applied */ - marginPct?: number; - /** BTC/USD spot price used to convert the invoice to sats */ - btcPriceUsd?: number; -} diff --git a/lib/api-zod/src/generated/types/runDemoParams.ts b/lib/api-zod/src/generated/types/runDemoParams.ts deleted file mode 100644 index e7bbdac..0000000 --- a/lib/api-zod/src/generated/types/runDemoParams.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Generated by orval v8.5.3 🍺 - * Do not edit manually. - * Api - * API specification - * OpenAPI spec version: 0.1.0 - */ - -export type RunDemoParams = { - request: string; -}; diff --git a/lib/db/migrations/0004_sessions.sql b/lib/db/migrations/0004_sessions.sql new file mode 100644 index 0000000..61ce720 --- /dev/null +++ b/lib/db/migrations/0004_sessions.sql @@ -0,0 +1,39 @@ +-- Migration: Session balance mode (Mode 2) +-- Users pre-fund a Lightning session; requests auto-debit actual costs. + +CREATE TABLE IF NOT EXISTS sessions ( + id TEXT PRIMARY KEY, + state TEXT NOT NULL DEFAULT 'awaiting_payment', + balance_sats INTEGER NOT NULL DEFAULT 0, + deposit_amount_sats INTEGER NOT NULL, + deposit_payment_hash TEXT NOT NULL, + deposit_payment_request TEXT NOT NULL, + deposit_paid BOOLEAN NOT NULL DEFAULT false, + topup_amount_sats INTEGER, + topup_payment_hash TEXT, + topup_payment_request TEXT, + topup_paid BOOLEAN, + macaroon TEXT, + expires_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS session_requests ( + id TEXT PRIMARY KEY, + session_id TEXT NOT NULL REFERENCES sessions(id), + request TEXT NOT NULL, + state TEXT NOT NULL DEFAULT 'processing', + result TEXT, + reason TEXT, + error_message TEXT, + eval_input_tokens INTEGER, + eval_output_tokens INTEGER, + work_input_tokens INTEGER, + work_output_tokens INTEGER, + debited_sats INTEGER, + balance_after_sats INTEGER, + btc_price_usd REAL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); diff --git a/lib/db/src/schema/index.ts b/lib/db/src/schema/index.ts index e03fd04..3043169 100644 --- a/lib/db/src/schema/index.ts +++ b/lib/db/src/schema/index.ts @@ -3,3 +3,4 @@ export * from "./invoices"; export * from "./conversations"; export * from "./messages"; export * from "./bootstrap-jobs"; +export * from "./sessions"; diff --git a/lib/db/src/schema/sessions.ts b/lib/db/src/schema/sessions.ts new file mode 100644 index 0000000..54c67d4 --- /dev/null +++ b/lib/db/src/schema/sessions.ts @@ -0,0 +1,101 @@ +import { pgTable, text, timestamp, integer, boolean, real } from "drizzle-orm/pg-core"; +import { createInsertSchema } from "drizzle-zod"; +import { z } from "zod/v4"; + +// ── Session state machine ───────────────────────────────────────────────────── + +export const SESSION_STATES = [ + "awaiting_payment", + "active", + "paused", + "expired", +] as const; +export type SessionState = (typeof SESSION_STATES)[number]; + +export const SESSION_REQUEST_STATES = [ + "processing", + "complete", + "rejected", + "failed", +] as const; +export type SessionRequestState = (typeof SESSION_REQUEST_STATES)[number]; + +// ── sessions ────────────────────────────────────────────────────────────────── + +export const sessions = pgTable("sessions", { + id: text("id").primaryKey(), + state: text("state").$type().notNull().default("awaiting_payment"), + + balanceSats: integer("balance_sats").notNull().default(0), + depositAmountSats: integer("deposit_amount_sats").notNull(), + + // Deposit invoice (stored inline — avoids FK into jobs table) + depositPaymentHash: text("deposit_payment_hash").notNull(), + depositPaymentRequest: text("deposit_payment_request").notNull(), + depositPaid: boolean("deposit_paid").notNull().default(false), + + // Current topup invoice (one at a time; all nullable until created) + topupAmountSats: integer("topup_amount_sats"), + topupPaymentHash: text("topup_payment_hash"), + topupPaymentRequest: text("topup_payment_request"), + topupPaid: boolean("topup_paid"), + + // Auth token — issued once when session activates; required for requests + macaroon: text("macaroon"), + + // TTL — refreshed on each successful request + expiresAt: timestamp("expires_at", { withTimezone: true }), + + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(), +}); + +export const insertSessionSchema = createInsertSchema(sessions).omit({ + createdAt: true, + updatedAt: true, +}); + +export type Session = typeof sessions.$inferSelect; +export type InsertSession = z.infer; + +// ── session_requests ────────────────────────────────────────────────────────── + +export const sessionRequests = pgTable("session_requests", { + id: text("id").primaryKey(), + sessionId: text("session_id") + .notNull() + .references(() => sessions.id), + request: text("request").notNull(), + state: text("state") + .$type() + .notNull() + .default("processing"), + + result: text("result"), + reason: text("reason"), + errorMessage: text("error_message"), + + // Eval token usage (Haiku judge) + evalInputTokens: integer("eval_input_tokens"), + evalOutputTokens: integer("eval_output_tokens"), + + // Work token usage (Sonnet; null for rejected requests) + workInputTokens: integer("work_input_tokens"), + workOutputTokens: integer("work_output_tokens"), + + // Balance debit for this request + debitedSats: integer("debited_sats"), + balanceAfterSats: integer("balance_after_sats"), + btcPriceUsd: real("btc_price_usd"), + + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(), +}); + +export const insertSessionRequestSchema = createInsertSchema(sessionRequests).omit({ + createdAt: true, + updatedAt: true, +}); + +export type SessionRequest = typeof sessionRequests.$inferSelect; +export type InsertSessionRequest = z.infer; diff --git a/replit.md b/replit.md index c6e6de0..2a2a6ff 100644 --- a/replit.md +++ b/replit.md @@ -246,10 +246,53 @@ Only available in development (`NODE_ENV !== 'production'`). Utility scripts package. Each script is a `.ts` file in `src/` with a corresponding npm script in `package.json`. Run scripts via `pnpm --filter @workspace/scripts run