export const CONTENT_GENERATOR = 'content-generator'; /** * Per-product hand-off from the catalog-quality audit. Backend reads the * per-row issues for `sku` inside `contentCheckJobId` and enqueues a * one-product content-gen job using them as custom instructions. * * @param {string} contentCheckJobId - Content-check job that produced the audit row. * @param {string} sku - Product SKU on the audit row. * @return {string} Fully-qualified path for the hand-off endpoint. */ export const contentGeneratorFromContentCheck = ( contentCheckJobId: string, sku: string ): string => `content-generator/from-content-check/${encodeURIComponent( contentCheckJobId )}/products/${encodeURIComponent(sku)}`; /** * Synchronous per-product generation for a catalog-quality audit row. Returns * ready-to-paste copy (gap / faq / custom / rewrite) inline, with no email and * no background job. * * @param {string} contentCheckJobId - Content-check job that produced the audit row. * @param {string} sku - Product SKU on the audit row. * @return {string} Fully-qualified path for the inline-generate endpoint. */ export const contentGeneratorInlineFromContentCheck = ( contentCheckJobId: string, sku: string ): string => `content-generator/from-content-check/${encodeURIComponent( contentCheckJobId )}/products/${encodeURIComponent(sku)}/inline`; /** * Bulk hand-off: one content-gen job across every product in an audit, using * the merchant's chosen fields / prompts / tone. The result is emailed. * * @param {string} contentCheckJobId - Content-check job whose products to fix. * @return {string} Fully-qualified path for the bulk endpoint. */ export const contentGeneratorBulkFromContentCheck = ( contentCheckJobId: string ): string => `content-generator/from-content-check/${encodeURIComponent( contentCheckJobId )}/bulk`; export const CONTENT_GENERATOR_STATUS = 'content-generator/status'; export const CONTENT_GENERATOR_ACTIVE = 'content-generator/active'; export const CONTENT_GENERATOR_USAGE = 'content-generator/usage'; export const CONTENT_GENERATOR_IMPROVE_PROMPT = 'content-generator/improve-prompt'; export const CONTENT_GENERATOR_DETECT_COLUMNS = 'content-generator/detect-columns'; export const CONTENT_GENERATOR_PROMPT_TEMPLATES = 'content-generator/prompt-templates'; export const contentGeneratorPromptTemplate = (templateId: string): string => `content-generator/prompt-templates/${encodeURIComponent(templateId)}`; /** Content Checker: score a pasted product title and/or description. */ export const CONTENT_CHECKER_EVALUATE = 'content-generator/check'; /** Content Checker: rewrite flagged content through the full pipeline. */ export const CONTENT_CHECKER_FIX = 'content-generator/check/fix'; /** Content Checker: score a pasted blog post for AI search readiness. */ export const CONTENT_CHECKER_EVALUATE_BLOG = 'content-generator/check-blog'; /** Content Checker: test a description against one customer question. */ export const CONTENT_CHECKER_QUERY_LAB = 'content-generator/query-lab';