import { assetTypeSchema, generateAssetSchema, generateStatusInputSchema } from '../schemas.js' import type { MarketV1Client } from '../v1/client.js' import { result } from './result.js' import type { MarketMcpServer } from './types.js' const generateMarketAssetSchema = generateAssetSchema.extend({ type: assetTypeSchema }).strict() export function registerGenerationTools(server: MarketMcpServer, client: MarketV1Client): void { server.registerTool( 'generate_market_asset', { title: 'Generate Market asset', description: 'Generate one Drawcall Market asset. A slow provider returns a jobId to pass to get_market_asset_generation.', inputSchema: generateMarketAssetSchema, annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true, idempotentHint: false, }, }, async (input) => result({ generation: await client.asset.generate(input) }), ) server.registerTool( 'get_market_asset_generation', { title: 'Get Market asset generation', description: 'Get the current state of a Market asset generation job.', inputSchema: generateStatusInputSchema.strict(), annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true, idempotentHint: true, }, }, async (input) => result({ generation: await client.asset.generateStatus(input) }), ) }