feat: add consultation and product domain registries

This commit is contained in:
Jesse_Chen
2026-08-15 06:04:23 +08:00
parent 5012ff7212
commit 6d192ad175
46 changed files with 1404 additions and 292 deletions
@@ -8,6 +8,7 @@ import { RECTIFICATION_SKILL_NAME, RECTIFICATION_SKILL_VERSION } from "@/lib/rec
import { blocksPromptExtraction } from "@/lib/consult-safety";
import { authorizeUsage, completeUsage, releaseUsage } from "@/lib/consultation-billing";
import { loadRuntimeFeatureFlags } from "@/lib/feature-flags";
import { isProductEnabled } from "@/lib/product-access";
import { resolveSessionLanguageModel } from "@/lib/model-catalog";
import { createAdminSupabaseClient } from "@/lib/supabase/admin";
import { createServerSupabaseClient } from "@/lib/supabase/server";
@@ -81,6 +82,13 @@ export async function POST(request: Request) {
return NextResponse.json({ error: "请先登录" }, { status: 401 });
}
if (!await isProductEnabled("rectification")) {
return NextResponse.json(
{ error: "生时校正服务暂未开放", code: "rectification_product_disabled" },
{ status: 503 },
);
}
const parsed = agentRequestSchema.safeParse(await request.json().catch(() => null));
if (!parsed.success) {
return NextResponse.json(
@@ -1,6 +1,7 @@
import { NextResponse } from "next/server";
import { z } from "zod";
import { createAdminSupabaseClient } from "@/lib/supabase/admin";
import { isProductEnabled } from "@/lib/product-access";
import { createServerSupabaseClient } from "@/lib/supabase/server";
import { RectificationToolServiceError } from "@/lib/rectification-agentic/v9/tool-service";
@@ -63,6 +64,13 @@ export async function POST(request: Request, context: RouteContext) {
return NextResponse.json({ error: "请先登录" }, { status: 401 });
}
if (!await isProductEnabled("rectification")) {
return NextResponse.json(
{ error: "生时校正服务暂未开放", code: "rectification_product_disabled" },
{ status: 503 },
);
}
const { caseId } = await context.params;
if (!z.string().uuid().safeParse(caseId).success) {
return NextResponse.json({ error: "请求内容不正确", code: "invalid_case_id" }, { status: 400 });
@@ -1,5 +1,6 @@
import { NextResponse } from "next/server";
import { createAdminSupabaseClient } from "@/lib/supabase/admin";
import { isProductEnabled } from "@/lib/product-access";
import { createServerSupabaseClient } from "@/lib/supabase/server";
import {
RectificationCaseServiceError,
@@ -47,6 +48,13 @@ export async function POST(request: Request) {
return NextResponse.json({ error: "请先登录" }, { status: 401 });
}
if (!await isProductEnabled("rectification")) {
return NextResponse.json(
{ error: "生时校正服务暂未开放", code: "rectification_product_disabled" },
{ status: 503 },
);
}
const parsed = parseOpenRectificationCaseRequest(
await request.json().catch(() => null),
);