feat(imitation): add article imitation create flow

Introduce 仿写创作: new list and create views, backend imitation service
and prompt templates, worker task routing for imitation jobs, and one-click
rewrite triggers from question citation sources. Surface source article
URL/title on article list/detail, and restrict failed articles to delete-only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 21:36:44 +08:00
parent 46d0a7aea0
commit 40d9a6cc63
29 changed files with 2678 additions and 120 deletions
+8
View File
@@ -7,6 +7,8 @@ import type {
ArticleListResponse,
CreateArticleRequest,
ArticleVersion,
GenerateImitationRequest,
GenerateImitationResponse,
AuthTokens,
Brand,
BrandLibrarySummary,
@@ -559,6 +561,12 @@ export const articlesApi = {
create(payload: CreateArticleRequest = {}) {
return apiClient.post<ArticleDetail, CreateArticleRequest>("/api/tenant/articles", payload);
},
generateImitation(payload: GenerateImitationRequest) {
return apiClient.post<GenerateImitationResponse, GenerateImitationRequest>(
"/api/tenant/articles/imitations/generate",
payload,
);
},
detail(id: number) {
return apiClient.get<ArticleDetail>(`/api/tenant/articles/${id}`);
},