M4(文风): style-auditor 双轨(提取指纹/漂移第四审)+ jobs 长任务框架(zombie reaper) + 回炉 refine + GET /style read-back。 M5(生成+扩展): worldbuilder/character-gen(入库 continuity 409 gate + partition_writes 白名单 + schema→JSONB 形变); 网关多 provider 回退链/熔断/能力降级(Anthropic/Gemini 适配器);Skill registry + 表权限沙箱 + 规则; 前端 角色生成器/世界观/Codex/规则页/技能库/⌘K 命令面板。 K1(Kimi Code 订阅接入): OAuth device-flow(kimi-code)+ 静态 Console key(kimi-code-key)两路径; coding 端点 KimiCLI 伪造头(实测 UA allow-list 门禁,缺则 403)+ JSON 模式结构化(thinking ⊥ tool_choice)。 本地联调修复: CORS 中间件;assemble 注入 premise+「写第N章」指令(修空 prompt 400); GET /outline·/draft read-back + 大纲/工作台/审稿页重载;写页 client/server 常量边界 + notFound 健壮化; 字数 toLocaleString locale 水合;审稿页终稿从已存草稿 seed(修 accept 422)。 门禁: backend ruff/mypy(157)/alembic 无漂移/pytest 451 · frontend lint/tsc/vitest/build。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2476 lines
76 KiB
TypeScript
2476 lines
76 KiB
TypeScript
/**
|
||
* This file was auto-generated by openapi-typescript.
|
||
* Do not make direct changes to the file.
|
||
*/
|
||
|
||
export interface paths {
|
||
"/": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** Root */
|
||
get: operations["root__get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/health": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** Health */
|
||
get: operations["health_health_get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/jobs/{job_id}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** Get Job */
|
||
get: operations["get_job_jobs__job_id__get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** List Projects */
|
||
get: operations["list_projects_projects_get"];
|
||
put?: never;
|
||
/** Create Project */
|
||
post: operations["create_project_projects_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** Get Project */
|
||
get: operations["get_project_projects__project_id__get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/chapters/{chapter_no}/draft": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* Get Draft
|
||
* @description 读取已保存草稿(含正文),供工作台重访时重载编辑器(镜像 GET /outline 读侧)。
|
||
*
|
||
* 复用 `chapter_repo.get_draft`(与续审 `_resolve_review_draft` 同一读 seam);只读不写库。
|
||
* 无草稿行(含空正文)→ 404 NOT_FOUND,工作台据此呈现空编辑器(与其它「缺资源」端点一致)。
|
||
* 多版本时该读取固定返草稿版次(DRAFT_VERSION)这条可编辑工作副本,与 PUT 保存的同一行。
|
||
*/
|
||
get: operations["get_draft_projects__project_id__chapters__chapter_no__draft_get"];
|
||
/**
|
||
* Save Draft
|
||
* @description 自动保存:幂等 upsert 草稿(同章节覆盖同一行,版次不爆炸)。
|
||
*/
|
||
put: operations["save_draft_projects__project_id__chapters__chapter_no__draft_put"];
|
||
/**
|
||
* Stream Draft
|
||
* @description 流式写章草稿:组装记忆 → 网关流 → 归一为 SSE 事件 → text/event-stream。
|
||
*/
|
||
post: operations["stream_draft_projects__project_id__chapters__chapter_no__draft_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/chapters/{chapter_no}/review": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Review Chapter
|
||
* @description 续审(SSE):组审稿上下文 → 跑审稿子图 → 归一为 section/conflict/done 事件。
|
||
*
|
||
* 提交边界:网关 ledger + collect 经 review_repo.record 均只 flush;端点在**流耗尽后**
|
||
* `await session.commit()`(镜像 draft 端点,否则记账/留痕静默丢失)。
|
||
*/
|
||
post: operations["review_chapter_projects__project_id__chapters__chapter_no__review_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/chapters/{chapter_no}/reviews": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List Reviews
|
||
* @description 审稿历史(新→旧):供前端审稿页加载既往审稿留痕 + 裁决。
|
||
*/
|
||
get: operations["list_reviews_projects__project_id__chapters__chapter_no__reviews_get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/chapters/{chapter_no}/accept": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Accept Chapter
|
||
* @description 验收事务 + 冲突 gate(§5.5):gate(事务前)→ 终稿提炼 digest(事务外,R2)→
|
||
* 单原子事务(晋升 + digest + 裁决留痕)→ 一次 commit → 登记**验收后伏笔到期扫描**
|
||
* BackgroundTask(M3-b/d,§6.2)。
|
||
*
|
||
* 到期扫描接 §5.5 步骤 3 的 `TODO(M3)` 占位:验收提交成功**后**,把
|
||
* `current_ch > expected_close_to AND status≠CLOSED` 的伏笔确定性置 OVERDUE。
|
||
* 伏笔登记/回收(PARTIAL/CLOSED)的「采纳建议」经作者经 foreshadow 端点显式确认,
|
||
* 不在验收事务里 AI 静默改库(不变量 #3)。**§7.4 持久性局限**:BackgroundTask 进程内
|
||
* 跑、重启丢失——原型可接受(见 `services/foreshadow_scan.py`,不引入 jobs 表)。
|
||
*/
|
||
post: operations["accept_chapter_projects__project_id__chapters__chapter_no__accept_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/foreshadow": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List Foreshadow
|
||
* @description 伏笔看板:按 `status` 过滤(缺省=全部),按 code 升序。
|
||
*
|
||
* `status` 非法(不在 OPEN/PARTIAL/CLOSED/OVERDUE)→ VALIDATION 信封。四泳道前端
|
||
* 据 `status` 分组;OVERDUE 泳道 + 逾期标记用 `expected_close_to`(看板字段已齐)。
|
||
*/
|
||
get: operations["list_foreshadow_projects__project_id__foreshadow_get"];
|
||
put?: never;
|
||
/**
|
||
* Register Foreshadow
|
||
* @description 登记一条伏笔(status=OPEN)。重复 `code` → DB 唯一约束冲突 → VALIDATION 信封。
|
||
*/
|
||
post: operations["register_foreshadow_projects__project_id__foreshadow_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/foreshadow/{code}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
/**
|
||
* Update Foreshadow
|
||
* @description 状态机转移 和/或 追加进展。非法转移 → VALIDATION 信封;不存在 → NOT_FOUND。
|
||
*
|
||
* `to_status` 与 `progress_entry` 皆可选;两者都缺 → VALIDATION(无操作)。先转移、后追加。
|
||
*/
|
||
patch: operations["update_foreshadow_projects__project_id__foreshadow__code__patch"];
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/outline": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* Get Outline
|
||
* @description 读取已持久化的大纲(逐章,按 chapter_no 升序)。
|
||
*
|
||
* 项目不存在 → 404;项目存在但尚无大纲 → 200 空列表(非 404,页面初次访问的常态)。
|
||
* DB `outline.beats` 是 JSONB `{"beats": [...]}` → 解包成裸 `list[str]`(与 POST 响应同形,
|
||
* 前端 OpenAPI 类型对齐)。读侧复用 C5 assemble 的 `OutlineRepo`,不写库。
|
||
*/
|
||
get: operations["get_outline_projects__project_id__outline_get"];
|
||
put?: never;
|
||
/**
|
||
* Generate Outline
|
||
* @description 生成大纲并逐章持久化。无凭据 → LLM_UNAVAILABLE;项目不存在 → NOT_FOUND。
|
||
*/
|
||
post: operations["generate_outline_projects__project_id__outline_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/rules": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List Rules
|
||
* @description 规则列表(按读侧顺序)。规则页用。
|
||
*/
|
||
get: operations["list_rules_projects__project_id__rules_get"];
|
||
put?: never;
|
||
/**
|
||
* Create Rule
|
||
* @description 新增一条规则(201)。非法 level / 空 content → FastAPI 422。
|
||
*/
|
||
post: operations["create_rule_projects__project_id__rules_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/style": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* Get Style
|
||
* @description 取最新文风指纹(完整 16 维 + 证据 + 版本)。项目不存在 → 404;无指纹 → 404。
|
||
*/
|
||
get: operations["get_style_projects__project_id__style_get"];
|
||
put?: never;
|
||
/**
|
||
* Learn Style
|
||
* @description 学文风:写一行 job 返 202,提取经 BackgroundTask 异步跑。
|
||
*
|
||
* 项目不存在 → 404;无凭据 → 503(在调度 job 前拦下)。`mode` 不影响落库逻辑
|
||
* (写侧始终 append 新版本,version+1 自动),仅供前端区分首学/更新语义。
|
||
*/
|
||
post: operations["learn_style_projects__project_id__style_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/chapters/{chapter_no}/refine": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Refine Segment
|
||
* @description 同步回炉:writer 网关纯文本重写选中段,返回 {original, refined}。
|
||
*
|
||
* 项目不存在 → 404;无凭据 → 503。不写库(不变量 #3);末尾 `commit()` 让网关
|
||
* usage_ledger 落库(add-only,否则记账静默丢失,同 draft/review 纪律)。
|
||
*/
|
||
post: operations["refine_segment_projects__project_id__chapters__chapter_no__refine_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/world/generate": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Generate World
|
||
* @description 生成世界观实体预览(不持久化;作者确认后另入库)。无凭据 → 503;项目不存在 → 404。
|
||
*/
|
||
post: operations["generate_world_projects__project_id__world_generate_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/characters/generate": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Generate Characters
|
||
* @description 生成角色卡预览(不持久化;注入已有角色防雷同)。无凭据 → 503;项目不存在 → 404。
|
||
*/
|
||
post: operations["generate_characters_projects__project_id__characters_generate_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/characters": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List Characters
|
||
* @description 已入库角色全量列表(设定库 Codex 真源;复用 C5 读侧 SqlCharacterRepo)。
|
||
*
|
||
* DB JSONB dict 列 → API list/str 反向解包(入库形变的逆向,见 `_existing_characters`)。
|
||
*/
|
||
get: operations["list_characters_projects__project_id__characters_get"];
|
||
put?: never;
|
||
/**
|
||
* Ingest Characters
|
||
* @description 入库作者确认的角色卡。有 continuity 冲突且未确认 → 409;越权写表丢弃 + 审计。
|
||
*/
|
||
post: operations["ingest_characters_projects__project_id__characters_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/projects/{project_id}/world_entities": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List World Entities
|
||
* @description 已入库世界观实体全量列表(设定库 Codex 真源;复用 C5 读侧 SqlWorldEntityRepo)。
|
||
*
|
||
* DB `rules` JSONB dict `{"rules":[...]}` → 裸 list(worldbuilder 形变的逆向)。
|
||
*/
|
||
get: operations["list_world_entities_projects__project_id__world_entities_get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/skills": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* List Skills
|
||
* @description 技能库列表(按 name 升序)。技能库 UI 用。
|
||
*/
|
||
get: operations["list_skills_skills_get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/settings/providers": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/** List Providers */
|
||
get: operations["list_providers_settings_providers_get"];
|
||
/** Upsert Providers */
|
||
put: operations["upsert_providers_settings_providers_put"];
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/settings/providers/test": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/** Test Connection */
|
||
post: operations["test_connection_settings_providers_test_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/settings/providers/kimi-code/oauth/start": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Start Oauth
|
||
* @description 发起 device authorization:返回 202 + user_code/verification_uri,后台轮询 token。
|
||
*
|
||
* 创建一行 `jobs(kind="kimi_oauth")`(202 前持久化供轮询)→ 调度 BackgroundTask 后台
|
||
* 轮询。前端展示 user_code + 打开 verification_uri + 轮询 `GET /jobs/{id}`。
|
||
*/
|
||
post: operations["start_oauth_settings_providers_kimi_code_oauth_start_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/settings/providers/kimi-code/oauth/disconnect": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
/**
|
||
* Disconnect Oauth
|
||
* @description 断开 Kimi Code:删除 OAuth 凭据行(token 一并消失)。
|
||
*/
|
||
post: operations["disconnect_oauth_settings_providers_kimi_code_oauth_disconnect_post"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/settings/providers/kimi-code/oauth/status": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
/**
|
||
* Oauth Status
|
||
* @description 连接状态:是否已连接 + access token 过期时刻(**无 token 本体**)。
|
||
*/
|
||
get: operations["oauth_status_settings_providers_kimi_code_oauth_status_get"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
}
|
||
export type webhooks = Record<string, never>;
|
||
export interface components {
|
||
schemas: {
|
||
/**
|
||
* AcceptRequest
|
||
* @description POST /projects/:id/chapters/:no/accept:裁决清单 + 可能改过的终稿。
|
||
*/
|
||
AcceptRequest: {
|
||
/**
|
||
* Final Text
|
||
* @description 作者裁决/改稿后的最终验收文本
|
||
*/
|
||
final_text: string;
|
||
/**
|
||
* Decisions
|
||
* @description 对最近审稿每个冲突的裁决(每冲突必有其一,R5)
|
||
*/
|
||
decisions?: components["schemas"]["ConflictDecision"][];
|
||
};
|
||
/**
|
||
* AcceptResponse
|
||
* @description 验收「本次将更新」清单(ARCH §7.2 写回结果)。
|
||
*/
|
||
AcceptResponse: {
|
||
/**
|
||
* Project Id
|
||
* Format: uuid
|
||
*/
|
||
project_id: string;
|
||
/** Chapter No */
|
||
chapter_no: number;
|
||
/**
|
||
* Accepted Version
|
||
* @description 晋升到的 accepted 版次(max+1)
|
||
*/
|
||
accepted_version: number;
|
||
/**
|
||
* Digest Added
|
||
* @description 是否新增了一行 chapter_digests
|
||
*/
|
||
digest_added: boolean;
|
||
/**
|
||
* Decisions Recorded
|
||
* @description 本次写回的裁决条数
|
||
*/
|
||
decisions_recorded: number;
|
||
/**
|
||
* Review Id
|
||
* @description 写回裁决的审稿留痕行 id
|
||
*/
|
||
review_id?: string | null;
|
||
};
|
||
/**
|
||
* CapabilitiesView
|
||
* @description 探测得到的能力矩阵(镜像网关 `Capabilities`)。
|
||
*/
|
||
CapabilitiesView: {
|
||
/**
|
||
* Structured Output
|
||
* @default false
|
||
*/
|
||
structured_output: boolean;
|
||
/**
|
||
* Prefix Cache
|
||
* @default false
|
||
*/
|
||
prefix_cache: boolean;
|
||
/**
|
||
* Thinking
|
||
* @default false
|
||
*/
|
||
thinking: boolean;
|
||
};
|
||
/**
|
||
* CharacterCardView
|
||
* @description 单张角色卡(贴 ww_agents.CharacterCard;预览 + 入库请求共用形)。
|
||
*/
|
||
CharacterCardView: {
|
||
/**
|
||
* Name
|
||
* @description 角色名
|
||
*/
|
||
name: string;
|
||
/**
|
||
* Role
|
||
* @description 角色定位
|
||
*/
|
||
role: string;
|
||
/**
|
||
* Traits
|
||
* @description 性格特质清单
|
||
*/
|
||
traits?: string[];
|
||
/**
|
||
* Backstory
|
||
* @description 背景故事
|
||
*/
|
||
backstory: string;
|
||
/**
|
||
* Arc
|
||
* @description 人物弧光(一句话)
|
||
*/
|
||
arc: string;
|
||
/**
|
||
* Speech Tics
|
||
* @description 口癖/语言风格
|
||
*/
|
||
speech_tics?: string[];
|
||
/**
|
||
* Tags
|
||
* @description 人设标签/萌点
|
||
*/
|
||
tags?: string[];
|
||
/**
|
||
* Relations
|
||
* @description 关系网
|
||
*/
|
||
relations?: components["schemas"]["CharacterRelationView"][];
|
||
};
|
||
/**
|
||
* CharacterGenPreviewResponse
|
||
* @description 角色生成预览(不持久化;作者确认后经 POST /characters 入库)。
|
||
*/
|
||
CharacterGenPreviewResponse: {
|
||
/** Cards */
|
||
cards?: components["schemas"]["CharacterCardView"][];
|
||
};
|
||
/**
|
||
* CharacterGenerateRequest
|
||
* @description POST /projects/:id/characters/generate:据需求生成角色卡(预览,群像防雷同)。
|
||
*/
|
||
CharacterGenerateRequest: {
|
||
/**
|
||
* Brief
|
||
* @description 角色生成需求
|
||
*/
|
||
brief: string;
|
||
/**
|
||
* Count
|
||
* @description 生成数量
|
||
* @default 1
|
||
*/
|
||
count: number;
|
||
/**
|
||
* Role
|
||
* @description 角色定位(主角/CP/对手/导师/工具人 等)
|
||
*/
|
||
role?: string | null;
|
||
};
|
||
/**
|
||
* CharacterIngestRequest
|
||
* @description POST /projects/:id/characters:把作者确认的角色卡入库。
|
||
*
|
||
* `acknowledge_conflicts`:作者已查看并接受预检冲突时置 `true`,越过 continuity gate
|
||
* (仿 accept 的冲突裁决:不静默入库,须作者确认;默认 false → 有冲突即 409,见端点)。
|
||
*/
|
||
CharacterIngestRequest: {
|
||
/**
|
||
* Cards
|
||
* @description 待入库的角色卡(至少 1 张)
|
||
*/
|
||
cards: components["schemas"]["CharacterCardView"][];
|
||
/**
|
||
* Acknowledge Conflicts
|
||
* @description 作者已知悉并接受 continuity 冲突 → 放行入库
|
||
* @default false
|
||
*/
|
||
acknowledge_conflicts: boolean;
|
||
};
|
||
/**
|
||
* CharacterIngestResponse
|
||
* @description 角色入库结果(201):写入的角色 + 被白名单丢弃的越权表(审计)。
|
||
*/
|
||
CharacterIngestResponse: {
|
||
/**
|
||
* Created
|
||
* @description 写入的角色名(按入参顺序)
|
||
*/
|
||
created?: string[];
|
||
/**
|
||
* Rejected Tables
|
||
* @description 被权限白名单丢弃的越权写表名(审计;正常为空)
|
||
*/
|
||
rejected_tables?: string[];
|
||
};
|
||
/**
|
||
* CharacterListResponse
|
||
* @description GET /projects/:id/characters:已入库角色全量列表(设定库 Codex 真源)。
|
||
*
|
||
* DB JSONB dict 列 → API list/str 反向解包(入库形变的逆向,见 character_repo):
|
||
* `{"items":[...]}`→list、`{"text":...}`→str;tags/relations 直落 list。
|
||
*/
|
||
CharacterListResponse: {
|
||
/** Characters */
|
||
characters?: components["schemas"]["CharacterCardView"][];
|
||
};
|
||
/**
|
||
* CharacterRelationView
|
||
* @description 单条人物关系(贴 ww_agents.CharacterRelation)。
|
||
*/
|
||
CharacterRelationView: {
|
||
/** Name */
|
||
name: string;
|
||
/** Kind */
|
||
kind: string;
|
||
/** Note */
|
||
note?: string | null;
|
||
};
|
||
/**
|
||
* ConflictDecision
|
||
* @description 对最近一次审稿留痕里**某个冲突**(按其在 conflicts 列表的下标定位)的裁决。
|
||
*/
|
||
ConflictDecision: {
|
||
/**
|
||
* Conflict Index
|
||
* @description 冲突在最近审稿 conflicts 列表中的下标
|
||
*/
|
||
conflict_index: number;
|
||
/**
|
||
* Verdict
|
||
* @description 采纳改法 / 忽略 / 手改
|
||
* @enum {string}
|
||
*/
|
||
verdict: "accept" | "ignore" | "manual";
|
||
/**
|
||
* Note
|
||
* @description 可选裁决备注(如手改说明)
|
||
*/
|
||
note?: string | null;
|
||
};
|
||
/**
|
||
* DraftResponse
|
||
* @description 草稿保存结果(脱敏:只回元信息 + 长度,不回灌正文以外的衍生)。
|
||
*/
|
||
DraftResponse: {
|
||
/**
|
||
* Project Id
|
||
* Format: uuid
|
||
*/
|
||
project_id: string;
|
||
/** Chapter No */
|
||
chapter_no: number;
|
||
/** Volume */
|
||
volume: number;
|
||
/** Status */
|
||
status: string;
|
||
/** Version */
|
||
version: number;
|
||
/** Length */
|
||
length: number;
|
||
};
|
||
/**
|
||
* DraftSaveRequest
|
||
* @description PUT /projects/:id/chapters/:no/draft:自动保存草稿正文。
|
||
*/
|
||
DraftSaveRequest: {
|
||
/** Text */
|
||
text: string;
|
||
};
|
||
/**
|
||
* DraftView
|
||
* @description GET .../draft:回灌已保存草稿(含正文,供工作台重载编辑器)。
|
||
*
|
||
* 与 PUT 的 `DraftResponse` 同元信息,**额外带 `content`**——读侧需要正文以重建编辑器,
|
||
* 保存侧不回灌正文故不带。`length` 仍按 content 字符数派生。
|
||
*/
|
||
DraftView: {
|
||
/**
|
||
* Project Id
|
||
* Format: uuid
|
||
*/
|
||
project_id: string;
|
||
/** Chapter No */
|
||
chapter_no: number;
|
||
/** Volume */
|
||
volume: number;
|
||
/** Status */
|
||
status: string;
|
||
/** Version */
|
||
version: number;
|
||
/** Content */
|
||
content: string;
|
||
/** Length */
|
||
length: number;
|
||
};
|
||
/**
|
||
* ForeshadowBoardResponse
|
||
* @description GET /projects/:id/foreshadow?status=:伏笔看板(四泳道 + OVERDUE 字段齐)。
|
||
*
|
||
* `status` 缺省返回全部;按 `code` 升序(repo `list_by_status` 已排序)。前端按
|
||
* `status` 分四泳道(OPEN/PARTIAL/CLOSED/OVERDUE),用 `expected_close_to` 标逾期。
|
||
*/
|
||
ForeshadowBoardResponse: {
|
||
/** Foreshadow */
|
||
foreshadow?: components["schemas"]["ForeshadowView"][];
|
||
};
|
||
/**
|
||
* ForeshadowRegisterRequest
|
||
* @description POST /projects/:id/foreshadow:作者显式登记一条伏笔(status 落 OPEN)。
|
||
*/
|
||
ForeshadowRegisterRequest: {
|
||
/**
|
||
* Code
|
||
* @description 伏笔代号,`(project_id, code)` 唯一
|
||
*/
|
||
code: string;
|
||
/**
|
||
* Title
|
||
* @description 伏笔标题/一句话描述
|
||
*/
|
||
title: string;
|
||
/**
|
||
* Planted At
|
||
* @description 埋设章号
|
||
*/
|
||
planted_at?: number | null;
|
||
/**
|
||
* Content
|
||
* @description 伏笔正文/线索
|
||
*/
|
||
content?: string | null;
|
||
/**
|
||
* Expected Close From
|
||
* @description 预期回收窗口起始章
|
||
*/
|
||
expected_close_from?: number | null;
|
||
/**
|
||
* Expected Close To
|
||
* @description 预期回收窗口结束章(到期判据用)
|
||
*/
|
||
expected_close_to?: number | null;
|
||
/**
|
||
* Importance
|
||
* @description 重要度(自由文本,看板用)
|
||
*/
|
||
importance?: string | null;
|
||
};
|
||
/**
|
||
* ForeshadowTransitionRequest
|
||
* @description PATCH /projects/:id/foreshadow/:code:状态机转移 和/或 追加一条进展。
|
||
*
|
||
* 两字段皆可选:`to_status` 走状态机(非法 → VALIDATION 信封);`progress_entry`
|
||
* append-only 追加到 progress JSONB。二者可同时给(先转移、后追加进展)。
|
||
*/
|
||
ForeshadowTransitionRequest: {
|
||
/**
|
||
* To Status
|
||
* @description 目标状态(OPEN/PARTIAL/CLOSED/OVERDUE)
|
||
*/
|
||
to_status?: string | null;
|
||
/**
|
||
* Progress Entry
|
||
* @description 追加一条进展记录(append-only,不覆盖历史)
|
||
*/
|
||
progress_entry?: {
|
||
[key: string]: unknown;
|
||
} | null;
|
||
};
|
||
/**
|
||
* ForeshadowView
|
||
* @description 伏笔账本视图(登记/状态变更/看板共用;snake_case)。形对齐 `ForeshadowLedgerView`。
|
||
*/
|
||
ForeshadowView: {
|
||
/** Code */
|
||
code: string;
|
||
/** Title */
|
||
title: string;
|
||
/** Status */
|
||
status: string;
|
||
/** Planted At */
|
||
planted_at?: number | null;
|
||
/** Content */
|
||
content?: string | null;
|
||
/** Expected Close From */
|
||
expected_close_from?: number | null;
|
||
/** Expected Close To */
|
||
expected_close_to?: number | null;
|
||
/** Importance */
|
||
importance?: string | null;
|
||
/** Links */
|
||
links?: {
|
||
[key: string]: unknown;
|
||
}[];
|
||
/** Progress */
|
||
progress?: {
|
||
[key: string]: unknown;
|
||
}[];
|
||
};
|
||
/**
|
||
* ForeshadowWindowView
|
||
* @description 单章关联的伏笔回收窗口(snake_case;形对齐 `ww_agents.ForeshadowWindow`)。
|
||
*/
|
||
ForeshadowWindowView: {
|
||
/** Code */
|
||
code: string;
|
||
/** Plant Chapter */
|
||
plant_chapter?: number | null;
|
||
/** Expected Close From */
|
||
expected_close_from?: number | null;
|
||
/** Expected Close To */
|
||
expected_close_to?: number | null;
|
||
};
|
||
/** HTTPValidationError */
|
||
HTTPValidationError: {
|
||
/** Detail */
|
||
detail?: components["schemas"]["ValidationError"][];
|
||
};
|
||
/**
|
||
* OAuthDisconnectResponse
|
||
* @description 断开:是否删到凭据行。
|
||
*/
|
||
OAuthDisconnectResponse: {
|
||
/** Disconnected */
|
||
disconnected: boolean;
|
||
};
|
||
/**
|
||
* OAuthStartResponse
|
||
* @description device flow 启动:返回 job_id(轮询 `GET /jobs/{id}`)+ 用户面展示信息。
|
||
*
|
||
* 前端展示 `user_code`、打开 `verification_uri`(或 `verification_uri_complete`),并按
|
||
* `interval` 轮询 job 直到 `done`(已连接)/`failed`(过期/拒绝)。**无 token**。
|
||
*/
|
||
OAuthStartResponse: {
|
||
/**
|
||
* Job Id
|
||
* Format: uuid
|
||
*/
|
||
job_id: string;
|
||
/** User Code */
|
||
user_code: string;
|
||
/** Verification Uri */
|
||
verification_uri: string;
|
||
/** Verification Uri Complete */
|
||
verification_uri_complete?: string | null;
|
||
/** Expires In */
|
||
expires_in: number;
|
||
/** Interval */
|
||
interval: number;
|
||
};
|
||
/**
|
||
* OAuthStatusResponse
|
||
* @description 连接状态:是否已连接 + access token 过期时刻(ISO8601;**无 token 本体**)。
|
||
*/
|
||
OAuthStatusResponse: {
|
||
/** Connected */
|
||
connected: boolean;
|
||
/** Expires At */
|
||
expires_at?: string | null;
|
||
};
|
||
/**
|
||
* OutlineChapterView
|
||
* @description 单章大纲视图:章号 + 卷 + 节拍 + 伏笔窗口。
|
||
*/
|
||
OutlineChapterView: {
|
||
/** No */
|
||
no: number;
|
||
/** Volume */
|
||
volume: number;
|
||
/** Beats */
|
||
beats?: string[];
|
||
/** Foreshadow Windows */
|
||
foreshadow_windows?: components["schemas"]["ForeshadowWindowView"][];
|
||
};
|
||
/**
|
||
* OutlineGenerateRequest
|
||
* @description POST /projects/:id/outline:触发大纲生成 + 持久化。
|
||
*
|
||
* M3 简单分卷:`volume` 缺省=1(schema 无逐章卷号;本端点把整批章节落到同一卷)。
|
||
*/
|
||
OutlineGenerateRequest: {
|
||
/**
|
||
* Volume
|
||
* @description 本批大纲所属卷号(M3 默认全卷 1)
|
||
* @default 1
|
||
*/
|
||
volume: number;
|
||
};
|
||
/**
|
||
* OutlineResponse
|
||
* @description 大纲生成响应:逐章已持久化的大纲(含窗口,供前端 T3.6)。
|
||
*/
|
||
OutlineResponse: {
|
||
/** Chapters */
|
||
chapters?: components["schemas"]["OutlineChapterView"][];
|
||
};
|
||
/**
|
||
* ProjectCreateRequest
|
||
* @description POST /projects:立项向导字段(owner_id 由后端补 stub,不入参)。
|
||
*/
|
||
ProjectCreateRequest: {
|
||
/** Title */
|
||
title: string;
|
||
/** Genre */
|
||
genre?: string | null;
|
||
/** Logline */
|
||
logline?: string | null;
|
||
/** Premise */
|
||
premise?: string | null;
|
||
/** Theme */
|
||
theme?: string | null;
|
||
/** Selling Points */
|
||
selling_points?: unknown[];
|
||
/** Structure */
|
||
structure?: string | null;
|
||
};
|
||
/**
|
||
* ProjectListResponse
|
||
* @description GET /projects:项目列表。
|
||
*/
|
||
ProjectListResponse: {
|
||
/** Projects */
|
||
projects?: components["schemas"]["ProjectResponse"][];
|
||
};
|
||
/**
|
||
* ProjectResponse
|
||
* @description 项目视图(创建/列表/详情共用)。
|
||
*/
|
||
ProjectResponse: {
|
||
/**
|
||
* Id
|
||
* Format: uuid
|
||
*/
|
||
id: string;
|
||
/** Title */
|
||
title: string;
|
||
/** Genre */
|
||
genre?: string | null;
|
||
/** Logline */
|
||
logline?: string | null;
|
||
/** Premise */
|
||
premise?: string | null;
|
||
/** Theme */
|
||
theme?: string | null;
|
||
/** Selling Points */
|
||
selling_points?: unknown[];
|
||
/** Structure */
|
||
structure?: string | null;
|
||
};
|
||
/**
|
||
* ProviderCredentialInput
|
||
* @description 单条提供商凭据写入。
|
||
*/
|
||
ProviderCredentialInput: {
|
||
/** Provider */
|
||
provider: string;
|
||
/** Api Key */
|
||
api_key: string;
|
||
};
|
||
/**
|
||
* ProviderView
|
||
* @description 已配置提供商(掩码视图)。
|
||
*/
|
||
ProviderView: {
|
||
/** Provider */
|
||
provider: string;
|
||
/** Masked Key */
|
||
masked_key: string;
|
||
};
|
||
/**
|
||
* ProvidersResponse
|
||
* @description GET/PUT 响应:已配置提供商(掩码)+ 当前档位路由。
|
||
*/
|
||
ProvidersResponse: {
|
||
/** Providers */
|
||
providers?: components["schemas"]["ProviderView"][];
|
||
/** Tier Routing */
|
||
tier_routing?: components["schemas"]["TierRoutingView"][];
|
||
};
|
||
/**
|
||
* ProvidersUpsertRequest
|
||
* @description PUT 请求:可同时 upsert 若干凭据与档位路由(幂等)。
|
||
*/
|
||
ProvidersUpsertRequest: {
|
||
/** Credentials */
|
||
credentials?: components["schemas"]["ProviderCredentialInput"][];
|
||
/** Tier Routing */
|
||
tier_routing?: components["schemas"]["TierRoutingInput"][];
|
||
};
|
||
/**
|
||
* RefineRequest
|
||
* @description 回炉:重写选中段(可选改写指令)。
|
||
*/
|
||
RefineRequest: {
|
||
/** Segment */
|
||
segment: string;
|
||
/** Instruction */
|
||
instruction?: string | null;
|
||
};
|
||
/**
|
||
* RefineResponse
|
||
* @description 回炉结果:原段 + 重写段(不写库,作者采纳经既有 draft 自动保存合入)。
|
||
*/
|
||
RefineResponse: {
|
||
/** Original */
|
||
original: string;
|
||
/** Refined */
|
||
refined: string;
|
||
};
|
||
/**
|
||
* ReviewHistoryItem
|
||
* @description 单条审稿留痕(GET .../reviews 历史项;snake_case)。
|
||
*/
|
||
ReviewHistoryItem: {
|
||
/**
|
||
* Id
|
||
* Format: uuid
|
||
*/
|
||
id: string;
|
||
/**
|
||
* Project Id
|
||
* Format: uuid
|
||
*/
|
||
project_id: string;
|
||
/** Chapter No */
|
||
chapter_no: number;
|
||
/** Chapter Version */
|
||
chapter_version?: number | null;
|
||
/** Conflicts */
|
||
conflicts?: {
|
||
[key: string]: unknown;
|
||
}[];
|
||
/** Foreshadow Sug */
|
||
foreshadow_sug?: {
|
||
[key: string]: unknown;
|
||
}[];
|
||
/** Style */
|
||
style?: {
|
||
[key: string]: unknown;
|
||
} | null;
|
||
/** Pace */
|
||
pace?: {
|
||
[key: string]: unknown;
|
||
} | null;
|
||
/** Health Score */
|
||
health_score?: number | null;
|
||
/** Decisions */
|
||
decisions?: {
|
||
[key: string]: unknown;
|
||
} | null;
|
||
};
|
||
/**
|
||
* ReviewHistoryResponse
|
||
* @description GET /projects/:id/chapters/:no/reviews:审稿历史(新→旧)。
|
||
*/
|
||
ReviewHistoryResponse: {
|
||
/** Reviews */
|
||
reviews?: components["schemas"]["ReviewHistoryItem"][];
|
||
};
|
||
/**
|
||
* ReviewRequest
|
||
* @description POST /projects/:id/chapters/:no/review:可选携带待审草稿正文。
|
||
*
|
||
* 不传 `draft` 时端点回退到已保存的草稿(chapter_repo)。
|
||
*/
|
||
ReviewRequest: {
|
||
/** Draft */
|
||
draft?: string | null;
|
||
};
|
||
/**
|
||
* RuleCreateRequest
|
||
* @description POST /projects/:id/rules:新增一条规则。
|
||
*/
|
||
RuleCreateRequest: {
|
||
/**
|
||
* Level
|
||
* @description 规则级别(global/genre/style/project,越具体越优先)
|
||
* @enum {string}
|
||
*/
|
||
level: "global" | "genre" | "style" | "project";
|
||
/**
|
||
* Content
|
||
* @description 规则正文
|
||
*/
|
||
content: string;
|
||
};
|
||
/**
|
||
* RuleListResponse
|
||
* @description GET /projects/:id/rules:规则列表(规则页)。
|
||
*/
|
||
RuleListResponse: {
|
||
/** Rules */
|
||
rules?: components["schemas"]["RuleView"][];
|
||
};
|
||
/**
|
||
* RuleView
|
||
* @description 规则视图(创建后回显;snake_case)。
|
||
*/
|
||
RuleView: {
|
||
/** Level */
|
||
level: string;
|
||
/** Content */
|
||
content: string;
|
||
};
|
||
/**
|
||
* SkillListResponse
|
||
* @description GET /skills:技能库列表(按 name 升序)。
|
||
*/
|
||
SkillListResponse: {
|
||
/** Skills */
|
||
skills?: components["schemas"]["SkillView"][];
|
||
};
|
||
/**
|
||
* SkillView
|
||
* @description 单个 skill 的声明式视图(技能库 UI)。
|
||
*/
|
||
SkillView: {
|
||
/** Name */
|
||
name: string;
|
||
/**
|
||
* Scope
|
||
* @description builtin / custom / community
|
||
*/
|
||
scope: string;
|
||
/**
|
||
* Tier
|
||
* @description 能力档位(writer / analyst / light)
|
||
*/
|
||
tier: string;
|
||
/** Reads */
|
||
reads?: string[];
|
||
/** Writes */
|
||
writes?: string[];
|
||
/** Genre */
|
||
genre?: string | null;
|
||
};
|
||
/**
|
||
* StyleFingerprintResponse
|
||
* @description 最新文风指纹(`GET /style`):完整 16 维 + 证据 + 版本(对齐 UX §6.9)。
|
||
*/
|
||
StyleFingerprintResponse: {
|
||
/** Dimensions */
|
||
dimensions?: {
|
||
[key: string]: unknown;
|
||
};
|
||
/** Evidence */
|
||
evidence?: {
|
||
[key: string]: unknown;
|
||
};
|
||
/** Version */
|
||
version: number;
|
||
};
|
||
/**
|
||
* StyleLearnRequest
|
||
* @description 学文风:上传样本正文(前端可读文件转文本)+ 模式(首学 / 更新)。
|
||
*/
|
||
StyleLearnRequest: {
|
||
/** Samples */
|
||
samples: string[];
|
||
/**
|
||
* Mode
|
||
* @default create
|
||
* @enum {string}
|
||
*/
|
||
mode: "create" | "update";
|
||
};
|
||
/**
|
||
* StyleLearnResponse
|
||
* @description 学文风受理:返回 job_id(长任务,走 `GET /jobs/{id}` 轮询)。
|
||
*/
|
||
StyleLearnResponse: {
|
||
/**
|
||
* Job Id
|
||
* Format: uuid
|
||
*/
|
||
job_id: string;
|
||
};
|
||
/**
|
||
* TestConnectionRequest
|
||
* @description POST /test:最小探测请求。
|
||
*/
|
||
TestConnectionRequest: {
|
||
/** Provider */
|
||
provider: string;
|
||
};
|
||
/**
|
||
* TestConnectionResponse
|
||
* @description POST /test 响应:连通性 + 能力矩阵。
|
||
*/
|
||
TestConnectionResponse: {
|
||
/** Provider */
|
||
provider: string;
|
||
/** Ok */
|
||
ok: boolean;
|
||
capabilities: components["schemas"]["CapabilitiesView"];
|
||
};
|
||
/**
|
||
* TierRoutingInput
|
||
* @description 单条档位路由写入。
|
||
*/
|
||
TierRoutingInput: {
|
||
/** Tier */
|
||
tier: string;
|
||
/** Provider */
|
||
provider: string;
|
||
/** Model */
|
||
model: string;
|
||
/** Fallback */
|
||
fallback?: string[];
|
||
};
|
||
/**
|
||
* TierRoutingView
|
||
* @description 档位 → provider:model 路由(含回退链)。
|
||
*/
|
||
TierRoutingView: {
|
||
/** Tier */
|
||
tier: string;
|
||
/** Provider */
|
||
provider: string;
|
||
/** Model */
|
||
model: string;
|
||
/** Fallback */
|
||
fallback?: string[];
|
||
};
|
||
/** ValidationError */
|
||
ValidationError: {
|
||
/** Location */
|
||
loc: (string | number)[];
|
||
/** Message */
|
||
msg: string;
|
||
/** Error Type */
|
||
type: string;
|
||
/** Input */
|
||
input?: unknown;
|
||
/** Context */
|
||
ctx?: Record<string, never>;
|
||
};
|
||
/**
|
||
* WorldEntityCardView
|
||
* @description 单个世界观实体卡(贴 ww_agents.WorldEntityCard;预览 + 入库共用形)。
|
||
*/
|
||
WorldEntityCardView: {
|
||
/**
|
||
* Type
|
||
* @description 实体类型(势力 / 地理 / 力量体系 / 物品 / 概念 等)
|
||
*/
|
||
type: string;
|
||
/**
|
||
* Name
|
||
* @description 实体名
|
||
*/
|
||
name: string;
|
||
/**
|
||
* Rules
|
||
* @description 该实体的硬规则清单
|
||
*/
|
||
rules?: string[];
|
||
};
|
||
/**
|
||
* WorldEntityListResponse
|
||
* @description GET /projects/:id/world_entities:已入库世界观实体全量列表(设定库 Codex 真源)。
|
||
*
|
||
* DB JSONB dict 列 `{"rules":[...]}`→裸 list(worldbuilder 形变的逆向)。
|
||
*/
|
||
WorldEntityListResponse: {
|
||
/** World Entities */
|
||
world_entities?: components["schemas"]["WorldEntityCardView"][];
|
||
};
|
||
/**
|
||
* WorldGenPreviewResponse
|
||
* @description 世界观生成预览(不持久化;作者确认后另走入库,本期入库端点为角色)。
|
||
*/
|
||
WorldGenPreviewResponse: {
|
||
/** Entities */
|
||
entities?: components["schemas"]["WorldEntityCardView"][];
|
||
};
|
||
/**
|
||
* WorldGenerateRequest
|
||
* @description POST /projects/:id/world/generate:据需求生成世界观实体(预览)。
|
||
*/
|
||
WorldGenerateRequest: {
|
||
/**
|
||
* Brief
|
||
* @description 世界观生成需求(题材/设定方向/约束)
|
||
*/
|
||
brief: string;
|
||
};
|
||
};
|
||
responses: never;
|
||
parameters: never;
|
||
requestBodies: never;
|
||
headers: never;
|
||
pathItems: never;
|
||
}
|
||
export type $defs = Record<string, never>;
|
||
export interface operations {
|
||
root__get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": {
|
||
[key: string]: string;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
};
|
||
health_health_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": {
|
||
[key: string]: string;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_job_jobs__job_id__get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
job_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": {
|
||
[key: string]: unknown;
|
||
};
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_projects_projects_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ProjectListResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
create_project_projects_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["ProjectCreateRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ProjectResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_project_projects__project_id__get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ProjectResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_draft_projects__project_id__chapters__chapter_no__draft_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["DraftView"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
save_draft_projects__project_id__chapters__chapter_no__draft_put: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["DraftSaveRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["DraftResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
stream_draft_projects__project_id__chapters__chapter_no__draft_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": unknown;
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
review_chapter_projects__project_id__chapters__chapter_no__review_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["ReviewRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": unknown;
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_reviews_projects__project_id__chapters__chapter_no__reviews_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ReviewHistoryResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
accept_chapter_projects__project_id__chapters__chapter_no__accept_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["AcceptRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["AcceptResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_foreshadow_projects__project_id__foreshadow_get: {
|
||
parameters: {
|
||
query?: {
|
||
status?: string | null;
|
||
};
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ForeshadowBoardResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
register_foreshadow_projects__project_id__foreshadow_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["ForeshadowRegisterRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ForeshadowView"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
update_foreshadow_projects__project_id__foreshadow__code__patch: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
code: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["ForeshadowTransitionRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ForeshadowView"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_outline_projects__project_id__outline_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["OutlineResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
generate_outline_projects__project_id__outline_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["OutlineGenerateRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["OutlineResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_rules_projects__project_id__rules_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["RuleListResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
create_rule_projects__project_id__rules_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["RuleCreateRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["RuleView"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_style_projects__project_id__style_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["StyleFingerprintResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
learn_style_projects__project_id__style_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["StyleLearnRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
202: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["StyleLearnResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
refine_segment_projects__project_id__chapters__chapter_no__refine_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
chapter_no: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["RefineRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["RefineResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
generate_world_projects__project_id__world_generate_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["WorldGenerateRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["WorldGenPreviewResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
generate_characters_projects__project_id__characters_generate_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CharacterGenerateRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["CharacterGenPreviewResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_characters_projects__project_id__characters_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["CharacterListResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
ingest_characters_projects__project_id__characters_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CharacterIngestRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["CharacterIngestResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_world_entities_projects__project_id__world_entities_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
project_id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["WorldEntityListResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_skills_skills_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["SkillListResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_providers_settings_providers_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ProvidersResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
upsert_providers_settings_providers_put: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["ProvidersUpsertRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ProvidersResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
test_connection_settings_providers_test_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["TestConnectionRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TestConnectionResponse"];
|
||
};
|
||
};
|
||
/** @description Validation Error */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HTTPValidationError"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
start_oauth_settings_providers_kimi_code_oauth_start_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
202: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["OAuthStartResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
disconnect_oauth_settings_providers_kimi_code_oauth_disconnect_post: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["OAuthDisconnectResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
oauth_status_settings_providers_kimi_code_oauth_status_get: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Successful Response */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["OAuthStatusResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
}
|