()
| 160 | const serverVersion = opts.coreProcessOptions?.identity?.version ?? getServerVersion(); |
| 161 | |
| 162 | async function registerOpenApi(): Promise<void> { |
| 163 | const { default: swagger } = await import('@fastify/swagger'); |
| 164 | await app.register(swagger, { |
| 165 | openapi: { |
| 166 | info: { |
| 167 | title: 'Kimi Code Server API', |
| 168 | description: |
| 169 | 'REST API for the Kimi Code local server. All JSON responses are wrapped in a uniform envelope `{ code, msg, data, request_id }`.', |
| 170 | version: serverVersion, |
| 171 | }, |
| 172 | tags: [ |
| 173 | { name: 'meta', description: 'Server metadata' }, |
| 174 | { name: 'auth', description: 'Auth readiness & login state' }, |
| 175 | { name: 'models', description: 'Configured model aliases' }, |
| 176 | { name: 'providers', description: 'Configured providers' }, |
| 177 | { name: 'sessions', description: 'Session lifecycle' }, |
| 178 | { name: 'workspaces', description: 'Workspace registry + folder picker' }, |
| 179 | { name: 'messages', description: 'Message history' }, |
| 180 | { name: 'prompts', description: 'Prompt submission & abort' }, |
| 181 | { name: 'approvals', description: 'Approval resolution' }, |
| 182 | { name: 'questions', description: 'Question resolution & dismiss' }, |
| 183 | { name: 'tools', description: 'Tool & MCP server management' }, |
| 184 | { name: 'tasks', description: 'Background tasks' }, |
| 185 | { name: 'terminals', description: 'PTY terminal sessions' }, |
| 186 | { name: 'fs', description: 'Filesystem operations' }, |
| 187 | { name: 'files', description: 'File upload & download' }, |
| 188 | ], |
| 189 | }, |
| 190 | transformObject: (documentObject) => { |
| 191 | if (!('openapiObject' in documentObject)) { |
| 192 | return documentObject.swaggerObject; |
| 193 | } |
| 194 | return transformOpenApiDocument(documentObject.openapiObject as Record<string, unknown>); |
| 195 | }, |
| 196 | }); |
| 197 | } |
| 198 | |
| 199 | await registerOpenApi(); |
| 200 |
no test coverage detected