feat(web): AI 立项方案生成+预填(种子门控 + 按字段接受)
向导阶段(project 未建)一键推演结构化书级蓝图预填立项向导。 - 新 SPEC project_plan_spec(analyst 档,纯预览 reads/writes=())+ schema ProjectPlanResult(书名候选 + 时空背景/叙事结构/故事核心/结局设计/基调, 全字段默认值守解析韧性)+ 注册 SCHEMA_CATALOG;计数三处 21→22 + regen golden。 - 端点 POST /skills/project-plan/generate(不带 project 前缀,绕开 toolbox 404): 请求体序列化向导草稿为 project_context,复用 build_brief_context + run_generator; 种子门控(缺 genre/logline→422);请求 schema 加 max_length 上界。 - run_generator/_build_request 的 project_id 放宽 uuid.UUID|None(向导无 project)。 - 前端 wizard.ts 加 mapPlanResultToWizardForm(错配字段折进 premise 不静默丢)+ applyPlanPatch(仅回填空字段、保护已编辑)+ useProjectPlan hook + PlanAssistant。
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Pydantic 类型承载结构化解析与 `isinstance` 校验,无法从文本推导、无法运行时安全构造,
|
||||
必须留 Python。`SPECS[name].output_schema` 一律从这里派生(单向派生,避免双真相)。
|
||||
`input_schema` 全 21 个恒为 None(入参为序列化文本),本波不建入参槽(YAGNI)。
|
||||
`input_schema` 全 22 个恒为 None(入参为序列化文本),本波不建入参槽(YAGNI)。
|
||||
|
||||
`refiner` 是唯一纯文本 writer:`None` 是合法值(无结构化 schema)。
|
||||
"""
|
||||
@@ -30,6 +30,7 @@ from .schemas import (
|
||||
OutlineResult,
|
||||
PaceReview,
|
||||
PolishResult,
|
||||
ProjectPlanResult,
|
||||
StyleDriftReview,
|
||||
StyleFingerprintResult,
|
||||
TitleListResult,
|
||||
@@ -59,6 +60,7 @@ SCHEMA_CATALOG: Final[dict[str, type[BaseModel] | None]] = {
|
||||
"expand": PolishResult,
|
||||
"de-ai": DeAiResult,
|
||||
"teardown": BookTeardownResult,
|
||||
"project-plan": ProjectPlanResult,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user