import { Hono } from 'hono' import { createCodeSession, getSession, incrementEpoch, } from '../../services/session' import { apiKeyAuth, acceptCliHeaders } from '../../auth/middleware' import { generateWorkerJwt } from '../../auth/jwt' import { getBaseUrl, config } from '../../config' const app = new Hono() /** POST /v1/code/sessions — Create code session (wrapped response for TUI compat) */ app.post('/', acceptCliHeaders, apiKeyAuth, async c => { const body = await c.req.json() const session = createCodeSession(body) return c.json({ session }, 200) }) /** POST /v1/code/sessions/:id/bridge — Get connection info + worker JWT */ app.post('/:id/bridge', acceptCliHeaders, apiKeyAuth, async c => { const sessionId = c.req.param('id')! const session = getSession(sessionId) if (!session) { return c.json( { error: { type: 'not_found', message: 'Session not found' } }, 404, ) } const epoch = incrementEpoch(sessionId) const expiresInSeconds = config.jwtExpiresIn const workerJwt = generateWorkerJwt(sessionId, expiresInSeconds) return c.json( { api_base_url: getBaseUrl(), worker_epoch: epoch, worker_jwt: workerJwt, expires_in: expiresInSeconds, }, 200, ) }) export default app