ai-chatbot/lib/ai/canvas-agent-runtime/project-operation-contracts.json

874 lines
22 KiB
JSON

{
"skills.get": {
"source": "app/api/agents/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {
"listQuerySchema": "z.object({\n scope: z.enum([\"all\", \"public\", \"private\"]).default(\"all\"),\n type: z.enum([\"image\", \"video\", \"text\"]).optional(),\n sectionId: z.string().trim().max(64).optional(),\n level1Id: z.string().trim().max(64).optional(),\n level2Id: z.string().trim().max(64).optional(),\n level3Id: z.string().trim().max(64).optional(),\n productCategory: z.string().trim().max(64).optional(),\n audienceTag: z.string().trim().max(64).optional(),\n usageScenario: z.string().trim().max(64).optional(),\n brand: z.string().trim().max(64).optional(),\n keyword: z.string().trim().max(128).optional(),\n sort: z.enum([\"latest\", \"hottest\", \"most_used\"]).default(\"latest\"),\n})",
"slotSchema": "z.object({\n title: z.string().trim().max(128).optional(),\n promptTemplate: z.string().trim().min(1).max(8000),\n defaultParams: z.record(z.string(), z.any()).optional(),\n requireUpload: z.boolean().optional(),\n uploadLabel: z.string().trim().max(128).optional(),\n referenceAssetIds: z.array(z.string().uuid()).max(12).optional(),\n})"
},
"interfaces": {},
"queryKeys": [
"scope",
"type",
"sectionId",
"level1Id",
"level2Id",
"level3Id",
"productCategory",
"audienceTag",
"usageScenario",
"brand",
"keyword",
"sort"
]
},
"skill-categories.get": {
"source": "app/api/agent-categories/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {
"scopeSchema": "z.enum([\"all\", \"public\", \"private\"]).default(\"public\")",
"createCategorySchema": "z.object({\n name: z.string().trim().min(1).max(64),\n scope: z.enum([\"public\", \"private\"]).default(\"public\"),\n})"
},
"interfaces": {},
"queryKeys": [
"scope"
]
},
"materials.get": {
"source": "app/api/agent-workflow/material-search/route.ts",
"methods": [
"GET"
],
"schemas": {
"querySchema": "z.object({\n keyword: z.string().trim().min(1).max(64),\n source: z.enum([\"primary\", \"secondary\"]).optional(),\n queryType: z.enum([\"sku\", \"spu\"]).optional(),\n requiredCount: z.coerce.number().int().min(1).max(4).optional(),\n appearanceRecognitionEnabled: z.enum([\"true\", \"false\", \"1\", \"0\"]).optional(),\n})"
},
"interfaces": {},
"queryKeys": [
"keyword",
"source",
"queryType",
"requiredCount",
"appearanceRecognitionEnabled"
]
},
"references.get": {
"source": "app/api/agent-workflow/reference-search/route.ts",
"methods": [
"GET"
],
"schemas": {
"productDetailChannelSchema": "z.preprocess((value) => {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}, z.enum([\"taobao\", \"1688\", \"douyin\", \"jd\"]).optional())",
"querySchema": "z.object({\n keyword: z.string().trim().min(1).max(64),\n queryType: z.enum([\"sku\", \"spu\", \"productId\"]).default(\"spu\"),\n target: z.enum([\"main\", \"detail\", \"sku\"]),\n brandName: z.string().trim().max(64).optional(),\n channel: productDetailChannelSchema,\n strictQueryType: z.enum([\"true\", \"false\", \"1\", \"0\"]).optional(),\n})"
},
"interfaces": {},
"queryKeys": [
"item_id",
"channel",
"keyword",
"queryType",
"target",
"brandName",
"strictQueryType"
]
},
"appearance.post": {
"source": "app/api/agent-workflow/material-appearance/route.ts",
"methods": [
"POST"
],
"schemas": {
"payloadSchema": "z.object({\n imageUrl: z.string().trim().url().max(2000),\n})"
},
"interfaces": {},
"queryKeys": []
},
"third-party-materials.get": {
"source": "app/api/third-party-image-materials/search/route.ts",
"methods": [
"GET"
],
"schemas": {
"querySchema": "z.object({\n resourceType: z.enum([\"white-background\", \"task-detail\"]).default(\"white-background\"),\n sku: z.string().trim().max(64).optional(),\n spu: z.string().trim().max(64).optional(),\n keyword: z.string().trim().max(64).optional(),\n queryType: z.enum([\"sku\", \"spu\"]).optional(),\n})"
},
"interfaces": {},
"queryKeys": [
"resourceType",
"sku",
"spu",
"keyword",
"queryType"
]
},
"gallery.get": {
"source": "app/api/gallery/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"page",
"pageSize"
]
},
"featured.get": {
"source": "app/api/featured/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"page",
"pageSize"
]
},
"ranking.get": {
"source": "app/api/featured/ranking/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"psd-templates.get": {
"source": "app/api/psd-templates/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"brand",
"mode",
"summary"
]
},
"psd-template.get": {
"source": "app/api/psd-templates/[id]/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"psd-render.get": {
"source": "app/api/psd-templates/render/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"psd-render.post": {
"source": "app/api/psd-templates/render/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"detail-plan.post": {
"source": "app/api/canvas/detail-plan/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"detail-review.post": {
"source": "app/api/canvas/detail-review/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"detail-subject.post": {
"source": "app/api/canvas/detail-subject-analyze/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"ui-review.post": {
"source": "app/api/canvas/ui-screen/review/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"text-copy.post": {
"source": "app/api/canvas/text-copy-suggestions/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.object({\n imageUrl: z.string().min(1, \"图片地址不能为空\"),\n originalText: z.string().min(1, \"原文不能为空\"),\n currentText: z.string().optional(),\n title: z.string().optional(),\n pageTexts: z.array(z.string()).optional(),\n audience: z.string().optional(),\n usageScenario: z.string().optional(),\n coreNeed: z.string().optional(),\n productName: z.string().optional(),\n workflowSummary: z.string().optional(),\n workflowPrompt: z.string().optional(),\n userPrompt: z.string().optional(),\n presetName: z.string().optional(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"detail-stitch.post": {
"source": "app/api/agent-workflow/detail-stitch/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"detail-normalize.post": {
"source": "app/api/agent-workflow/detail-image-normalize/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"style-models.get": {
"source": "app/api/style-pro/model-options/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"style-generate.post": {
"source": "app/api/style-pro/generate/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {
"generateRequestSchema": "z.object({\n canvasId: z.string().trim().min(1).max(160).optional(),\n requestId: z.string().uuid().optional(),\n sourceImageUrl: z.string().trim().min(1).max(4000),\n generationMode: z.enum([\"style\", \"realistic\"]).optional(),\n modelId: z.string().trim().min(1).max(160).optional(),\n selections: z.record(z.array(z.string().trim().min(1).max(120)).max(20)),\n customInputs: z\n .object({\n global: z.record(z.string().max(2000)).optional(),\n categories: z.record(z.record(z.string().max(2000))).optional(),\n })\n .optional(),\n})"
},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"wash-models.get": {
"source": "app/api/ai-wash/model-options/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"wash-generate.post": {
"source": "app/api/ai-wash/generate/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.object({\n prompt: z.string().min(1).max(5000),\n referenceImage: z.string().min(1).max(200000),\n selectedModelId: z.string().min(1).max(128),\n imageSize: z.string().min(1).max(16).optional(),\n promptExtend: z.boolean().optional(),\n aspectRatio: z.string().min(1).max(16).optional(),\n title: z.string().max(128).optional(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"planning-image.post": {
"source": "app/api/product-planning/analyze-image/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.object({\n itemId: z.string().trim().min(1),\n imageUrl: z.string().trim().url(),\n title: z.string().trim().optional(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"planning-sku.post": {
"source": "app/api/product-planning/analyze-sku/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.object({\n itemId: z.string().trim().min(1),\n title: z.string().trim().optional(),\n platform: z.enum([\"taobao\", \"jd\"]),\n skus: z\n .array(\n z.object({\n name: z.string().trim().min(1),\n price: z.number().nullable(),\n })\n )\n .min(1),\n})"
},
"interfaces": {},
"queryKeys": []
},
"planning-analysis.post": {
"source": "app/api/product-planning/analyze/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.union([\n z.object({\n kind: z.literal(\"review\"),\n rows: z\n .array(\n z.object({\n itemId: z.string(),\n date: z.string(),\n content: z.string(),\n appendComment: z.string().optional(),\n sku: z.string().optional(),\n userId: z.string().optional(),\n images: z.array(z.string()),\n videoUrls: z.array(z.string()),\n })\n )\n .min(1),\n }),\n z.object({\n kind: z.literal(\"qa\"),\n rows: z\n .array(\n z.object({\n itemId: z.string(),\n question: z.string(),\n questionDetail: z.string().optional(),\n answer: z.string(),\n answerUser: z.string().optional(),\n answerDate: z.string().optional(),\n isOfficial: z.boolean(),\n })\n )\n .min(1),\n }),\n])"
},
"interfaces": {},
"queryKeys": []
},
"planning-keywords.get": {
"source": "app/api/product-planning/keyword-insight/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"q"
]
},
"planning-taobao-item.get": {
"source": "app/api/product-planning/taobao/item/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id"
]
},
"planning-jd-item.get": {
"source": "app/api/product-planning/jd/item/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id"
]
},
"planning-reviews.get": {
"source": "app/api/product-planning/taobao/reviews/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id",
"page"
]
},
"planning-sales.get": {
"source": "app/api/product-planning/taobao/month-sale/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id"
]
},
"planning-qa.post": {
"source": "app/api/product-planning/taobao/qa/route.ts",
"methods": [
"POST"
],
"schemas": {
"requestSchema": "z.object({\n itemId: z.string().trim().min(1),\n page: z.number().int().min(1).max(20).default(1),\n})"
},
"interfaces": {},
"queryKeys": []
},
"planning-market-items.post": {
"source": "app/api/product-planning/marketplace/items/route.ts",
"methods": [
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"planning-templates.get": {
"source": "app/api/product-planning/templates/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"planning-templates.post": {
"source": "app/api/product-planning/templates/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"planning-template.get": {
"source": "app/api/product-planning/templates/[id]/route.ts",
"methods": [
"GET",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"planning-template.delete": {
"source": "app/api/product-planning/templates/[id]/route.ts",
"methods": [
"GET",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-files.get": {
"source": "app/api/flow-board/files/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-files.post": {
"source": "app/api/flow-board/files/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-file.get": {
"source": "app/api/flow-board/files/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-file.put": {
"source": "app/api/flow-board/files/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-file.delete": {
"source": "app/api/flow-board/files/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-draft.get": {
"source": "app/api/flow-board/draft/route.ts",
"methods": [
"GET",
"PUT"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"flow-draft.put": {
"source": "app/api/flow-board/draft/route.ts",
"methods": [
"GET",
"PUT"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"video-capabilities.get": {
"source": "app/(chat)/api/video-model-capabilities/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"modelId"
]
},
"video-tasks.get": {
"source": "app/(chat)/api/video-tasks/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"chatId"
]
},
"storyboard-task.get": {
"source": "app/(chat)/api/video/storyboard/tasks/[taskId]/route.ts",
"methods": [
"GET"
],
"schemas": {
"paramsSchema": "z.object({\n taskId: z.string().uuid(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"storyboard-confirm.post": {
"source": "app/(chat)/api/video/storyboard/tasks/[taskId]/confirm/route.ts",
"methods": [
"POST"
],
"schemas": {
"paramsSchema": "z.object({\n taskId: z.string().uuid(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"storyboard-cancel.post": {
"source": "app/(chat)/api/video/storyboard/tasks/[taskId]/cancel/route.ts",
"methods": [
"POST"
],
"schemas": {
"paramsSchema": "z.object({\n taskId: z.string().uuid(),\n})"
},
"interfaces": {},
"queryKeys": []
},
"storyboard-shot.patch": {
"source": "app/(chat)/api/video/storyboard/tasks/[taskId]/shots/[shotIndex]/route.ts",
"methods": [
"PATCH"
],
"schemas": {
"paramsSchema": "z.object({\n taskId: z.string().uuid(),\n shotIndex: z.coerce.number().int().min(1).max(99),\n})",
"bodySchema": "z.object({\n prompt: z.string().trim().min(1).max(4000),\n regenerateHd: z.boolean().optional().default(true),\n})"
},
"interfaces": {},
"queryKeys": []
},
"storyboard-hd.post": {
"source": "app/(chat)/api/video/storyboard/tasks/[taskId]/shots/[shotIndex]/regenerate-hd/route.ts",
"methods": [
"POST"
],
"schemas": {
"paramsSchema": "z.object({\n taskId: z.string().uuid(),\n shotIndex: z.coerce.number().int().min(1).max(99),\n})"
},
"interfaces": {},
"queryKeys": []
},
"agent-projects.get": {
"source": "app/api/agent-projects/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"agent-projects.post": {
"source": "app/api/agent-projects/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"agent-project.get": {
"source": "app/api/agent-projects/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"agent-project.put": {
"source": "app/api/agent-projects/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"agent-project.delete": {
"source": "app/api/agent-projects/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"canvas-list.get": {
"source": "app/api/canvas/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"workspaceType",
"limit",
"page"
]
},
"canvas-list.post": {
"source": "app/api/canvas/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"workspaceType",
"limit",
"page"
]
},
"canvas-read.get": {
"source": "app/api/canvas/[id]/route.ts",
"methods": [
"GET",
"PUT",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": []
},
"detail-archives.get": {
"source": "app/api/canvas/[id]/detail-archives/route.ts",
"methods": [
"GET",
"POST",
"PATCH",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"archiveId"
]
},
"detail-archives.post": {
"source": "app/api/canvas/[id]/detail-archives/route.ts",
"methods": [
"GET",
"POST",
"PATCH",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"archiveId"
]
},
"detail-archives.patch": {
"source": "app/api/canvas/[id]/detail-archives/route.ts",
"methods": [
"GET",
"POST",
"PATCH",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"archiveId"
]
},
"detail-archives.delete": {
"source": "app/api/canvas/[id]/detail-archives/route.ts",
"methods": [
"GET",
"POST",
"PATCH",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"archiveId"
]
},
"model-assets.get": {
"source": "app/api/canvas/[id]/model3d-assets/route.ts",
"methods": [
"GET",
"POST",
"DELETE",
"PATCH"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"model-assets.post": {
"source": "app/api/canvas/[id]/model3d-assets/route.ts",
"methods": [
"GET",
"POST",
"DELETE",
"PATCH"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"model-assets.patch": {
"source": "app/api/canvas/[id]/model3d-assets/route.ts",
"methods": [
"GET",
"POST",
"DELETE",
"PATCH"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"model-assets.delete": {
"source": "app/api/canvas/[id]/model3d-assets/route.ts",
"methods": [
"GET",
"POST",
"DELETE",
"PATCH"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"3d-task.get": {
"source": "app/api/canvas/3d/tasks/[taskId]/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"providerId"
]
},
"world-task.get": {
"source": "app/api/canvas/world/tasks/[taskId]/route.ts",
"methods": [
"GET"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"providerId"
]
},
"documents.get": {
"source": "app/(chat)/api/document/route.ts",
"methods": [
"GET",
"POST",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id",
"timestamp"
]
},
"documents.post": {
"source": "app/(chat)/api/document/route.ts",
"methods": [
"GET",
"POST",
"DELETE"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"id",
"timestamp"
]
},
"enhance-pro.get": {
"source": "app/api/enhance/pro/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
},
"enhance-pro.post": {
"source": "app/api/enhance/pro/route.ts",
"methods": [
"GET",
"POST"
],
"schemas": {},
"interfaces": {},
"queryKeys": [
"taskId"
]
}
}