@whispering233/ai-editor-server 0.0.51 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client-dist/assets/{index-Dim9IXQC.css → index-DBshOA8W.css} +1 -1
- package/client-dist/assets/index-DnBMudDZ.js +624 -0
- package/client-dist/index.html +2 -2
- package/dist/decompose/batching.d.ts +20 -0
- package/dist/decompose/batching.d.ts.map +1 -0
- package/dist/decompose/batching.js +29 -0
- package/dist/decompose/batching.js.map +1 -0
- package/dist/decompose/extract.d.ts +44 -0
- package/dist/decompose/extract.d.ts.map +1 -0
- package/dist/decompose/extract.js +246 -0
- package/dist/decompose/extract.js.map +1 -0
- package/dist/decompose/job.d.ts +91 -0
- package/dist/decompose/job.d.ts.map +1 -0
- package/dist/decompose/job.js +289 -0
- package/dist/decompose/job.js.map +1 -0
- package/dist/decompose/llm.d.ts +68 -0
- package/dist/decompose/llm.d.ts.map +1 -0
- package/dist/decompose/llm.js +180 -0
- package/dist/decompose/llm.js.map +1 -0
- package/dist/decompose/merge-write.d.ts +75 -0
- package/dist/decompose/merge-write.d.ts.map +1 -0
- package/dist/decompose/merge-write.js +670 -0
- package/dist/decompose/merge-write.js.map +1 -0
- package/dist/decompose/merge.d.ts +156 -0
- package/dist/decompose/merge.d.ts.map +1 -0
- package/dist/decompose/merge.js +266 -0
- package/dist/decompose/merge.js.map +1 -0
- package/dist/decompose/report.d.ts +57 -0
- package/dist/decompose/report.d.ts.map +1 -0
- package/dist/decompose/report.js +127 -0
- package/dist/decompose/report.js.map +1 -0
- package/dist/decompose/runner.d.ts +143 -0
- package/dist/decompose/runner.d.ts.map +1 -0
- package/dist/decompose/runner.js +520 -0
- package/dist/decompose/runner.js.map +1 -0
- package/dist/decompose/split.d.ts +89 -0
- package/dist/decompose/split.d.ts.map +1 -0
- package/dist/decompose/split.js +556 -0
- package/dist/decompose/split.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/error.d.ts +1 -1
- package/dist/middleware/error.d.ts.map +1 -1
- package/dist/middleware/error.js +9 -0
- package/dist/middleware/error.js.map +1 -1
- package/dist/middleware/project.d.ts.map +1 -1
- package/dist/middleware/project.js +14 -0
- package/dist/middleware/project.js.map +1 -1
- package/dist/routes/chat.d.ts.map +1 -1
- package/dist/routes/chat.js +28 -3
- package/dist/routes/chat.js.map +1 -1
- package/dist/routes/decompose.d.ts +26 -0
- package/dist/routes/decompose.d.ts.map +1 -0
- package/dist/routes/decompose.js +453 -0
- package/dist/routes/decompose.js.map +1 -0
- package/dist/routes/project.d.ts +2 -0
- package/dist/routes/project.d.ts.map +1 -1
- package/dist/routes/project.js +4 -0
- package/dist/routes/project.js.map +1 -1
- package/package.json +5 -5
- package/client-dist/assets/index-BTOnSWMB.js +0 -621
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
// 拆解小说路由(analyze 预览 + start 建档 + job 进度 / 单批结果 + pause / resume)
|
|
2
|
+
//
|
|
3
|
+
// 契约单一来源:docs/api/120-api-decompose.md §analyze / §start / §job / §batches / §pause / §resume +
|
|
4
|
+
// 请求侧原始字节例外段(docs/api/api-public.md);语义见 docs/design/60-decompose.md §3(切分)/
|
|
5
|
+
// §4(范围与预估、批调度)/ §7(状态机与续拆)。
|
|
6
|
+
// 口径:
|
|
7
|
+
// - **不要求项目已打开**:预览不落库、不建项目、无状态(改范围 = 客户端重传原始字节,服务端不留临时文件);
|
|
8
|
+
// start 总是**新建并打开**项目(等价 POST /project/open 的切换语义);job / batches 读当前项目;
|
|
9
|
+
// - 请求体是**小说文件原始字节**(`application/octet-stream`),`file_name` / 书名 / 范围走 query;
|
|
10
|
+
// - 切分唯一实现 = `decompose/split.ts` 的 `splitNovelWithSlices`(analyze 与 start 同一份,确定性);
|
|
11
|
+
// - **章列表全量返回**,范围**只影响批规划与预估**(正文始终全量导入,见 §4「范围」);
|
|
12
|
+
// - estimate:批数走 `decompose/batching.ts` 的组批实现(与落批同一份)、`llmCalls = 批数 + 归并 + 报告`、
|
|
13
|
+
// token 按字数与章数粗估;费率读 pi 模型目录 `Model.cost`(`getModelRuntime()` 唯一入口,**不自建定价表**),
|
|
14
|
+
// 未配置模型/凭据(或模型目录不可读)→ `costApprox = null`,预览照常返回。
|
|
15
|
+
// - **续拆两端点(plan / continue)不吃文件字节**:章与正文已在库(S1 全量导入),范围缺省 = 未拆章最小
|
|
16
|
+
// 覆盖区间(`decompose/job.ts` 的 `readDecomposeProjectPlan`);两端的范围解析与估算走同一实现
|
|
17
|
+
// (预览说拆哪些,启动就必须拆哪些),continue 的 S1' **只落 job 与批规划**。
|
|
18
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
19
|
+
import { basename, extname, join } from "node:path";
|
|
20
|
+
import { Hono } from "hono";
|
|
21
|
+
import { decomposeAnalyzeQuerySchema, decomposeBatchResultSchema, decomposeContinueQuerySchema, decomposeJobLogResSchema, decomposeLogEntrySchema, decomposeStartQuerySchema, } from "@whispering233/ai-editor-shared/schemas";
|
|
22
|
+
import { readProjectSession } from "@whispering233/ai-editor-agent";
|
|
23
|
+
import { getDecomposeBatch, getDecomposeJob, nowIso, setJobError, updateJobStatus } from "@whispering233/ai-editor-db";
|
|
24
|
+
import { HttpError, ok } from "../middleware/error.js";
|
|
25
|
+
import { getModelRuntime, getSettingsManager, resolveActiveSelection } from "../model-runtime.js";
|
|
26
|
+
import { closeProject, getCurrentProject, initProject, requireCurrentProject, setCurrentProject, } from "../middleware/project.js";
|
|
27
|
+
import { writeLastProject } from "../last-project.js";
|
|
28
|
+
import { BOOKS_DIR_NAME, getProjectRoot, resolveProjectDir } from "./project.js";
|
|
29
|
+
import { planBatches } from "../decompose/batching.js";
|
|
30
|
+
import { buildJobResponse, ingestDecomposeContinue, ingestDecomposeProject, readDecomposeProjectPlan } from "../decompose/job.js";
|
|
31
|
+
import { pauseDecomposeJob, startDecomposeJob, DECOMPOSE_SNAPSHOT_MAX_CHARS } from "../decompose/runner.js";
|
|
32
|
+
import { DECOMPOSE_LOG_CUSTOM_TYPE, decomposeSessionId } from "../decompose/llm.js";
|
|
33
|
+
import { splitNovelWithSlices, statsOf } from "../decompose/split.js";
|
|
34
|
+
/** 上传体积上限(原始字节;超限 400 DECOMPOSE_FILE_TOO_LARGE)。analyze 与 start 共用——同文件。 */
|
|
35
|
+
export const DECOMPOSE_MAX_FILE_BYTES = 16 * 1024 * 1024;
|
|
36
|
+
/** 每 token 的汉字数(中文粗估;换 tokenizer 只调这一处——预估本就是量级参考) */
|
|
37
|
+
export const DECOMPOSE_CHARS_PER_TOKEN = 1.5;
|
|
38
|
+
/** 每批固定开销里与快照无关的那部分(系统提示 + 输出契约 + 各上限说明)token 粗估 */
|
|
39
|
+
export const DECOMPOSE_PROMPT_OVERHEAD_TOKENS = 500;
|
|
40
|
+
/**
|
|
41
|
+
* 每批固定开销 token 粗估(系统提示 + 指令 + 项目数据快照)——**由快照预算派生**,不手写:
|
|
42
|
+
* 快照是量级主导项(§4.1 的 `DECOMPOSE_SNAPSHOT_MAX_CHARS`),写死数字会在改预算时静默失真
|
|
43
|
+
* (预估与实际脱钩、无人报错);批处理省的是这份开销,省不了正文与输出。
|
|
44
|
+
*/
|
|
45
|
+
export const DECOMPOSE_BATCH_OVERHEAD_TOKENS = Math.ceil(DECOMPOSE_SNAPSHOT_MAX_CHARS / DECOMPOSE_CHARS_PER_TOKEN) + DECOMPOSE_PROMPT_OVERHEAD_TOKENS;
|
|
46
|
+
/** 每章输出 token 粗估(一条摘要(受 `DECOMPOSE_CHAPTER_SUMMARY_MAX_CHARS` 约束)+ 若干实体线索) */
|
|
47
|
+
export const DECOMPOSE_OUTPUT_TOKENS_PER_CHAPTER = 400;
|
|
48
|
+
/** 费率口径:pi `Model.cost` 是**每百万 token** 单价(同 `calculateCost` 的除法口径) */
|
|
49
|
+
const TOKENS_PER_MILLION = 1_000_000;
|
|
50
|
+
/** 批处理之外的 LLM 调用数:归并 + 报告(docs/design/60-decompose.md §2「总调用数 = 批数 + 1 + 1」) */
|
|
51
|
+
const NON_BATCH_LLM_CALLS = 2;
|
|
52
|
+
/**
|
|
53
|
+
* 激活模型的费率——`resolveActiveSelection` 的口径与 chat / 设置页一致:
|
|
54
|
+
* pi settings 的默认模型优先 → 首个有凭据的可用模型 → null(什么都没配)。
|
|
55
|
+
* 任何失败(模型目录不可读、坏 models.json)只让金额缺席,不阻断预览。
|
|
56
|
+
*/
|
|
57
|
+
async function activeCostRates(deps) {
|
|
58
|
+
try {
|
|
59
|
+
const runtime = deps.runtime ?? (await getModelRuntime());
|
|
60
|
+
const selection = await resolveActiveSelection(runtime, deps.settings ?? getSettingsManager());
|
|
61
|
+
if (selection === null)
|
|
62
|
+
return null;
|
|
63
|
+
const model = runtime.getModel(selection.provider, selection.modelId);
|
|
64
|
+
return model === undefined ? null : { input: model.cost.input, output: model.cost.output };
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** 默认书名 = 文件名去扩展名(去完为空 → 原名兜底;只做派生,用户可在客户端改) */
|
|
71
|
+
function defaultBookName(fileName) {
|
|
72
|
+
const base = basename(fileName);
|
|
73
|
+
const extension = extname(base);
|
|
74
|
+
const stripped = (extension === "" ? base : base.slice(0, -extension.length)).trim();
|
|
75
|
+
return stripped === "" ? base : stripped;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 范围 → 章区间:缺省全书;越界自然落空(章序 = 1-based 文件位置序,连续 ⇒ 过滤即夹取)。
|
|
79
|
+
* analyze 的预估与 start 的批规划共用本函数(两处各写一份必然漂移)。
|
|
80
|
+
*/
|
|
81
|
+
function chaptersInScope(chapters, scopeStart, scopeEnd) {
|
|
82
|
+
const start = scopeStart ?? 1;
|
|
83
|
+
const end = scopeEnd ?? chapters.length;
|
|
84
|
+
return chapters.filter((chapter) => chapter.index >= start && chapter.index <= end);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 范围预估(docs/design/60-decompose.md §4):
|
|
88
|
+
* 输入 ∝ 范围正文 + 每批固定开销(归并只看候选清单、报告只看章摘要,相对正文可忽略);
|
|
89
|
+
* 输出 ∝ 章数(成本杠杆是范围,不是批大小)。
|
|
90
|
+
*/
|
|
91
|
+
function buildEstimate(chapters, rates) {
|
|
92
|
+
const batches = planBatches(chapters);
|
|
93
|
+
const scopeChars = chapters.reduce((sum, chapter) => sum + chapter.charCount, 0);
|
|
94
|
+
const inputTokensApprox = Math.ceil(scopeChars / DECOMPOSE_CHARS_PER_TOKEN) + batches.length * DECOMPOSE_BATCH_OVERHEAD_TOKENS;
|
|
95
|
+
const outputTokensApprox = chapters.length * DECOMPOSE_OUTPUT_TOKENS_PER_CHAPTER;
|
|
96
|
+
return {
|
|
97
|
+
batchCount: batches.length,
|
|
98
|
+
llmCalls: batches.length + NON_BATCH_LLM_CALLS,
|
|
99
|
+
inputTokensApprox,
|
|
100
|
+
outputTokensApprox,
|
|
101
|
+
costApprox: rates === null
|
|
102
|
+
? null
|
|
103
|
+
: (inputTokensApprox * rates.input + outputTokensApprox * rates.output) / TOKENS_PER_MILLION,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* job 记录的范围(§4「范围」):起始取请求值、结束夹到末章(`scope_end` 超章数等同全量)。
|
|
108
|
+
* 夹取后仍可能 `start > end`(范围落空)——与 analyze 的过滤口径一致:零批但不报 400。
|
|
109
|
+
*/
|
|
110
|
+
function jobScope(scopeStart, scopeEnd, chapterCount) {
|
|
111
|
+
return { start: scopeStart ?? 1, end: Math.min(scopeEnd ?? chapterCount, chapterCount) };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* 续拆范围解析(plan 与 continue **共用同一实现**):逐项缺省 = 未拆章最小覆盖区间(无未拆章 → 0/0);
|
|
115
|
+
* 显式范围包含已拆章 = **有意重拆**(归并按跨轮口径复用已有实体,设计 §7.1)。
|
|
116
|
+
* `start > end` → 400 `VALIDATION_ERROR`(缺省范围本身恒合法,故只可能来自显式参数)。
|
|
117
|
+
*/
|
|
118
|
+
function resolveContinueScope(plan, query) {
|
|
119
|
+
const scopeStart = query.scope_start ?? plan.defaultScopeStart;
|
|
120
|
+
const scopeEnd = query.scope_end ?? plan.defaultScopeEnd;
|
|
121
|
+
if (scopeStart > scopeEnd) {
|
|
122
|
+
throw new HttpError(400, "VALIDATION_ERROR", `范围非法:起始章 ${scopeStart} 大于结束章 ${scopeEnd}`);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
scopeStart,
|
|
126
|
+
scopeEnd,
|
|
127
|
+
defaulted: query.scope_start === undefined || query.scope_end === undefined,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/** 续拆范围里的章(章序 = 1-based 文件位置序,连续 ⇒ 过滤即夹取——与 `chaptersInScope` 同口径) */
|
|
131
|
+
function planChaptersInScope(plan, scopeStart, scopeEnd) {
|
|
132
|
+
return plan.chapters.filter((chapter) => chapter.index >= scopeStart && chapter.index <= scopeEnd);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 书名校验(服务端侧兜底,防目录逃逸):trim 后非空、不含路径分隔符 / 控制字符、不为 `.` / `..`。
|
|
136
|
+
* 客户端有同名纯函数(`client/src/lib/book-name.ts`,跨包不共享)——规则一致,此处是信任边界。
|
|
137
|
+
*/
|
|
138
|
+
function assertBookName(name) {
|
|
139
|
+
if (name === "" || /[\\/]|^\.+$|[\u0000-\u001f]/.test(name)) {
|
|
140
|
+
throw new HttpError(400, "INVALID_PROJECT_PATH", `书名非法(不能为空、含 / \\ 或控制字符,也不能是 . / ..): ${name}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 激活模型 + 凭据校验(与 chat 开流前预检同口径):未配置模型或缺凭据 → 400 `LLM_API_KEY_MISSING`。
|
|
145
|
+
* start 在建项目**之前**调用——缺凭据不留半成品项目(api/120-api-decompose.md §start)。
|
|
146
|
+
* @returns 审计用的模型标识 `provider/modelId`
|
|
147
|
+
*/
|
|
148
|
+
async function requireActiveModel(deps) {
|
|
149
|
+
const runtime = deps.runtime ?? (await getModelRuntime());
|
|
150
|
+
const selection = await resolveActiveSelection(runtime, deps.settings ?? getSettingsManager());
|
|
151
|
+
if (selection === null) {
|
|
152
|
+
throw new HttpError(400, "LLM_API_KEY_MISSING", "未配置可用模型:请先在设置页选择模型");
|
|
153
|
+
}
|
|
154
|
+
if (!runtime.hasConfiguredAuth(selection.provider)) {
|
|
155
|
+
throw new HttpError(400, "LLM_API_KEY_MISSING", `未配置 ${selection.provider} 的凭据:请在设置页填写 API key,或设置对应环境变量`);
|
|
156
|
+
}
|
|
157
|
+
return `${selection.provider}/${selection.modelId}`;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* 读上传体(原始字节)+ 体积校验(analyze / start 共用;超限 400 `DECOMPOSE_FILE_TOO_LARGE`)。
|
|
161
|
+
* 必须在任何落盘 / 建目录之前调用。
|
|
162
|
+
*/
|
|
163
|
+
async function readNovelBody(c) {
|
|
164
|
+
const bytes = new Uint8Array(await c.req.arrayBuffer());
|
|
165
|
+
if (bytes.byteLength > DECOMPOSE_MAX_FILE_BYTES) {
|
|
166
|
+
throw new HttpError(400, "DECOMPOSE_FILE_TOO_LARGE", `文件超过体积上限 ${DECOMPOSE_MAX_FILE_BYTES / 1024 / 1024}MB,请改用更小的文本文件`);
|
|
167
|
+
}
|
|
168
|
+
return bytes;
|
|
169
|
+
}
|
|
170
|
+
/** 拆解路由工厂(测试经 deps 注入内存运行时;index.ts 用缺省依赖) */
|
|
171
|
+
export function createDecomposeRoutes(deps = {}) {
|
|
172
|
+
const routes = new Hono();
|
|
173
|
+
// POST /api/v1/decompose/analyze?file_name=&scope_start=&scope_end= —— body = 文件原始字节
|
|
174
|
+
routes.post("/analyze", async (c) => {
|
|
175
|
+
const query = decomposeAnalyzeQuerySchema.parse(c.req.query()); // 缺 file_name / 范围非法 → 400 VALIDATION_ERROR
|
|
176
|
+
const bytes = await readNovelBody(c);
|
|
177
|
+
const preview = splitNovelWithSlices(bytes).result;
|
|
178
|
+
// 解码永远成功(TextDecoder 非致命 + GB18030 回退 ⇒ 不抛错),故「解码失败」的可见形态只有一种:
|
|
179
|
+
// 归一化后没有任何文本(空文件 / 只有空白 / 非文本内容)。契约的两条 400 语义在本实现里同码。
|
|
180
|
+
if (preview.totalChars === 0) {
|
|
181
|
+
throw new HttpError(400, "DECOMPOSE_FILE_INVALID", "文件没有可解析的文本(空文件或非文本内容)");
|
|
182
|
+
}
|
|
183
|
+
const scoped = chaptersInScope(preview.chapters, query.scope_start, query.scope_end);
|
|
184
|
+
const estimate = buildEstimate(scoped, await activeCostRates(deps));
|
|
185
|
+
return c.json(ok({
|
|
186
|
+
...preview, // encoding / totalChars / chapters(全量)/ volumes / stats / warnings
|
|
187
|
+
estimate,
|
|
188
|
+
defaultName: defaultBookName(query.file_name),
|
|
189
|
+
}));
|
|
190
|
+
});
|
|
191
|
+
// POST /api/v1/decompose/start?file_name=&name=&scope_start=&scope_end= —— body = 文件原始字节
|
|
192
|
+
routes.post("/start", async (c) => {
|
|
193
|
+
const query = decomposeStartQuerySchema.parse(c.req.query()); // 缺 file_name / name / 范围非法 → 400 VALIDATION_ERROR
|
|
194
|
+
const bytes = await readNovelBody(c);
|
|
195
|
+
// 建项目之前的三道校验(缺一道就会留下半成品项目 / 越权目录):凭据 → 切分文本 → 书名与目标路径
|
|
196
|
+
const model = await requireActiveModel(deps);
|
|
197
|
+
const split = splitNovelWithSlices(bytes);
|
|
198
|
+
if (split.result.totalChars === 0) {
|
|
199
|
+
throw new HttpError(400, "DECOMPOSE_FILE_INVALID", "文件没有可解析的文本(空文件或非文本内容)");
|
|
200
|
+
}
|
|
201
|
+
const root = getProjectRoot();
|
|
202
|
+
if (root === null) {
|
|
203
|
+
throw new HttpError(500, "INTERNAL_ERROR", "创作根未初始化(startServer 未调用 setProjectRoot)");
|
|
204
|
+
}
|
|
205
|
+
const name = query.name.trim();
|
|
206
|
+
assertBookName(name);
|
|
207
|
+
const target = join(root, BOOKS_DIR_NAME, name);
|
|
208
|
+
// 书名冲突:目录已存在即拒(含非项目目录——不在用户已有目录上建档,api 错误码表「书名对应目录已存在」)
|
|
209
|
+
if (existsSync(target)) {
|
|
210
|
+
throw new HttpError(409, "PROJECT_ALREADY_EXISTS", `同名书籍已存在: ${target}`);
|
|
211
|
+
}
|
|
212
|
+
mkdirSync(target, { recursive: true }); // 目录需存在才能做 realpath 校验(与 /project/create 同序)
|
|
213
|
+
const dir = resolveProjectDir(target); // 非绝对 / 链接跳转 → 400 INVALID_PROJECT_PATH
|
|
214
|
+
// 建档 + 打开(等价 POST /project/open 的切换语义:新项目就绪后再关旧的,失败时当前项目保持原样;
|
|
215
|
+
// open 的两条兜底——旧 prompt 迁移与软删一致性补标——对新项目无对象,故不调用)
|
|
216
|
+
const project = initProject(dir, { name });
|
|
217
|
+
const previous = getCurrentProject();
|
|
218
|
+
if (previous !== null && previous.db !== project.db)
|
|
219
|
+
closeProject(previous);
|
|
220
|
+
setCurrentProject(project); // 释放旧项目运行时(disposeProjectRuntime 单点)
|
|
221
|
+
writeLastProject(root, dir); // 创作根 lastProject:下次启动自动打开这本书
|
|
222
|
+
const chapters = split.result.chapters;
|
|
223
|
+
const scope = jobScope(query.scope_start, query.scope_end, chapters.length);
|
|
224
|
+
const { jobId, batchCount } = ingestDecomposeProject({
|
|
225
|
+
project,
|
|
226
|
+
split,
|
|
227
|
+
scopedChapters: chaptersInScope(chapters, query.scope_start, query.scope_end),
|
|
228
|
+
scopeStart: scope.start,
|
|
229
|
+
scopeEnd: scope.end,
|
|
230
|
+
model,
|
|
231
|
+
now: nowIso(),
|
|
232
|
+
});
|
|
233
|
+
// S2 批执行(**后台跑,不 await**):S1 已同步完成,响应返回时批循环开跑(进度页轮询看状态)
|
|
234
|
+
void startDecomposeJob(project, deps);
|
|
235
|
+
return c.json(ok({
|
|
236
|
+
projectId: project.config.id,
|
|
237
|
+
projectPath: dir,
|
|
238
|
+
name,
|
|
239
|
+
jobId,
|
|
240
|
+
status: "running", // S1 已同步完成 ⇒ 返回时 job 已进入 running(批执行归 S2 runner)
|
|
241
|
+
batchCount,
|
|
242
|
+
}));
|
|
243
|
+
});
|
|
244
|
+
// GET /api/v1/decompose/plan?scope_start=&scope_end= —— 续拆预览(不落库、无状态;**不吃文件字节**)
|
|
245
|
+
routes.get("/plan", async (c) => {
|
|
246
|
+
const query = decomposeContinueQuerySchema.parse(c.req.query()); // 范围非整数 / < 1 → 400 VALIDATION_ERROR
|
|
247
|
+
const project = requireCurrentProject(); // 无已打开项目 → 409 NO_PROJECT_OPEN
|
|
248
|
+
const plan = readDecomposeProjectPlan(project);
|
|
249
|
+
if (plan.chapters.length === 0) {
|
|
250
|
+
throw new HttpError(404, "DECOMPOSE_NO_CHAPTERS", "当前项目没有章:没有可续拆的正文(先在本书导入正文或重新拆解)");
|
|
251
|
+
}
|
|
252
|
+
const scope = resolveContinueScope(plan, query);
|
|
253
|
+
const scoped = planChaptersInScope(plan, scope.scopeStart, scope.scopeEnd);
|
|
254
|
+
return c.json(ok({
|
|
255
|
+
scopeStart: scope.scopeStart,
|
|
256
|
+
scopeEnd: scope.scopeEnd,
|
|
257
|
+
defaulted: scope.defaulted,
|
|
258
|
+
remainingCount: plan.remainingCount,
|
|
259
|
+
decomposedInScope: scoped.filter((chapter) => chapter.decomposed).length,
|
|
260
|
+
chapters: plan.chapters, // 全书章列表(含已拆标注)——与 analyze 同为全量口径
|
|
261
|
+
stats: statsOf(plan.chapters.map((chapter) => chapter.charCount)),
|
|
262
|
+
// 估算与 analyze **同一实现**(`buildEstimate`):只换输入章集(库内章而非切分结果)
|
|
263
|
+
estimate: buildEstimate(scoped, await activeCostRates(deps)),
|
|
264
|
+
}));
|
|
265
|
+
});
|
|
266
|
+
// POST /api/v1/decompose/continue?scope_start=&scope_end= —— 续拆:当前项目内开新 job(S1' 只落 job 与批规划)
|
|
267
|
+
routes.post("/continue", async (c) => {
|
|
268
|
+
const query = decomposeContinueQuerySchema.parse(c.req.query());
|
|
269
|
+
const project = requireCurrentProject();
|
|
270
|
+
// 顺序 = 模型/凭据 → 活跃 job 互斥 → 范围解析:缺凭据不先落 job 行(同 start 的「不留半成品」口径);
|
|
271
|
+
// 互斥拦在范围解析前——已有 running / paused job 时范围解析无意义(只有终态 done / failed 可开新 job,§7.1)
|
|
272
|
+
const model = await requireActiveModel(deps);
|
|
273
|
+
const current = getDecomposeJob(project.db); // 一项目取最新 job(db helper 口径)
|
|
274
|
+
if (current !== null && current.status !== "done" && current.status !== "failed") {
|
|
275
|
+
throw new HttpError(409, "DECOMPOSE_JOB_STATE", `job ${current.id} 状态为 ${current.status},不能开新 job(先等它收尾,或对它续拆 / 重跑)`);
|
|
276
|
+
}
|
|
277
|
+
const plan = readDecomposeProjectPlan(project);
|
|
278
|
+
const scope = resolveContinueScope(plan, query);
|
|
279
|
+
const scoped = planChaptersInScope(plan, scope.scopeStart, scope.scopeEnd);
|
|
280
|
+
if (scoped.length === 0) {
|
|
281
|
+
throw new HttpError(400, "DECOMPOSE_NOTHING_TO_DO", "范围里没有可拆的章(缺省且无未拆章——可显式指定范围重拆)");
|
|
282
|
+
}
|
|
283
|
+
// S1':只落新 job 行 + 批规划行(**不建大纲、不导正文**,正文是 S1 的全量一次性产物)
|
|
284
|
+
const { jobId, batchCount } = ingestDecomposeContinue({
|
|
285
|
+
project,
|
|
286
|
+
scopedChapters: scoped,
|
|
287
|
+
scopeStart: scope.scopeStart,
|
|
288
|
+
scopeEnd: scope.scopeEnd,
|
|
289
|
+
model,
|
|
290
|
+
now: nowIso(),
|
|
291
|
+
});
|
|
292
|
+
// S2 批执行(**后台跑,不 await**):响应返回时 job 已 running(进度页轮询看状态,与 start 同款)
|
|
293
|
+
void startDecomposeJob(project, deps);
|
|
294
|
+
return c.json(ok({
|
|
295
|
+
jobId,
|
|
296
|
+
scopeStart: scope.scopeStart,
|
|
297
|
+
scopeEnd: scope.scopeEnd,
|
|
298
|
+
status: "running",
|
|
299
|
+
batchCount,
|
|
300
|
+
}));
|
|
301
|
+
});
|
|
302
|
+
// GET /api/v1/decompose/job —— 当前项目的 job 状态(进度轮询;**不含批结果正文**)
|
|
303
|
+
routes.get("/job", (c) => {
|
|
304
|
+
const project = requireCurrentProject(); // 无已打开项目 → 409 NO_PROJECT_OPEN
|
|
305
|
+
const job = getDecomposeJob(project.db); // 多 job 并存取最新(created_at desc → id desc,db helper 内)
|
|
306
|
+
if (job === null) {
|
|
307
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
308
|
+
}
|
|
309
|
+
return c.json(ok(buildJobResponse(project, job)));
|
|
310
|
+
});
|
|
311
|
+
// GET /api/v1/decompose/job/batches/:seq —— 单批抽取结果(进度页展开行按需拉取)
|
|
312
|
+
routes.get("/job/batches/:seq", (c) => {
|
|
313
|
+
const project = requireCurrentProject();
|
|
314
|
+
const rawSeq = c.req.param("seq");
|
|
315
|
+
const seq = Number(rawSeq);
|
|
316
|
+
if (!Number.isInteger(seq) || seq < 1) {
|
|
317
|
+
throw new HttpError(404, "DECOMPOSE_BATCH_NOT_FOUND", `批序号非法: ${rawSeq}`);
|
|
318
|
+
}
|
|
319
|
+
const job = getDecomposeJob(project.db);
|
|
320
|
+
if (job === null) {
|
|
321
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
322
|
+
}
|
|
323
|
+
const batch = getDecomposeBatch(project.db, job.id, seq);
|
|
324
|
+
if (batch === null) {
|
|
325
|
+
throw new HttpError(404, "DECOMPOSE_BATCH_NOT_FOUND", `批序号越界: ${seq}`);
|
|
326
|
+
}
|
|
327
|
+
// db 层只保证「坏 JSON 不抛错」(形状不校验,`[1,2]` 这类值会原样透出)⇒ 本层按契约 schema 守卫:
|
|
328
|
+
// 不符形状按「未完成」处理(result = null),不把脏数据发给客户端。
|
|
329
|
+
const parsed = batch.result === null ? null : decomposeBatchResultSchema.safeParse(batch.result);
|
|
330
|
+
return c.json(ok({
|
|
331
|
+
seq: batch.seq,
|
|
332
|
+
status: batch.status,
|
|
333
|
+
attempts: batch.attempts,
|
|
334
|
+
error: batch.error,
|
|
335
|
+
result: parsed !== null && parsed.success ? parsed.data : null,
|
|
336
|
+
}));
|
|
337
|
+
});
|
|
338
|
+
// GET /api/v1/decompose/job/log —— 拆解过程时间线(读拆解会话里的 custom 过程条目)
|
|
339
|
+
routes.get("/job/log", async (c) => {
|
|
340
|
+
const project = requireCurrentProject();
|
|
341
|
+
const job = getDecomposeJob(project.db);
|
|
342
|
+
if (job === null) {
|
|
343
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
344
|
+
}
|
|
345
|
+
// 会话定位按**会话 id**(经 pi 的磁盘发现 + id 命中)——pi 落盘文件名带时间戳前缀,不得按文件名 glob;
|
|
346
|
+
// 会话文件被用户删掉 / 尚未落盘 ⇒ entries: [](契约:job 还在就回 200,不回 404)
|
|
347
|
+
const sessionId = decomposeSessionId(job.id);
|
|
348
|
+
const opened = await readProjectSession(project.root, sessionId);
|
|
349
|
+
return jobLogResponse(c, {
|
|
350
|
+
sessionId,
|
|
351
|
+
entries: opened === null ? [] : projectLogEntries(opened.entries),
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
// POST /api/v1/decompose/job/pause —— 中止当前 job(当前批跑完即停,结果不浪费)
|
|
355
|
+
routes.post("/job/pause", (c) => {
|
|
356
|
+
const project = requireCurrentProject();
|
|
357
|
+
const job = getDecomposeJob(project.db);
|
|
358
|
+
if (job === null) {
|
|
359
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
360
|
+
}
|
|
361
|
+
// 状态前置:`done` / `paused` / `failed` 都不允许再中止(api/120-api-decompose.md §pause)
|
|
362
|
+
if (job.status !== "running" && job.status !== "pending") {
|
|
363
|
+
throw new HttpError(409, "DECOMPOSE_JOB_STATE", `job 状态为 ${job.status},不能中止(仅 running / pending 可暂停)`);
|
|
364
|
+
}
|
|
365
|
+
// 先置信号再写状态:进程内那一轮停在批间(已发出的模型调用不 abort),状态立刻可见(不等批收尾)
|
|
366
|
+
pauseDecomposeJob(job.id);
|
|
367
|
+
updateJobStatus(project.db, job.id, "paused", nowIso());
|
|
368
|
+
return c.json(ok({ status: "paused" }));
|
|
369
|
+
});
|
|
370
|
+
// POST /api/v1/decompose/job/resume —— 从第一个未完成批续拆(跳过 done 的批)
|
|
371
|
+
routes.post("/job/resume", async (c) => {
|
|
372
|
+
const project = requireCurrentProject();
|
|
373
|
+
const job = getDecomposeJob(project.db);
|
|
374
|
+
if (job === null) {
|
|
375
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
376
|
+
}
|
|
377
|
+
if (job.status !== "paused") {
|
|
378
|
+
throw new HttpError(409, "DECOMPOSE_JOB_STATE", `job 状态为 ${job.status},不能续拆(仅 paused 可续拆)`);
|
|
379
|
+
}
|
|
380
|
+
// 续拆前预检模型/凭据(与 start 同口径):缺凭据 → 400 且不改状态(否则 job 卡在「running 无 runner」)
|
|
381
|
+
await requireActiveModel(deps);
|
|
382
|
+
updateJobStatus(project.db, job.id, "running", nowIso());
|
|
383
|
+
setJobError(project.db, job.id, null, nowIso()); // 开工清上一次的 job 级错误摘要
|
|
384
|
+
void startDecomposeJob(project, deps);
|
|
385
|
+
return c.json(ok({ status: "running" }));
|
|
386
|
+
});
|
|
387
|
+
// POST /api/v1/decompose/job/batches/:seq/rerun —— 单批重跑(done 与 failed 都可重跑 → job 回 running)
|
|
388
|
+
routes.post("/job/batches/:seq/rerun", async (c) => {
|
|
389
|
+
const project = requireCurrentProject();
|
|
390
|
+
const job = getDecomposeJob(project.db);
|
|
391
|
+
if (job === null) {
|
|
392
|
+
throw new HttpError(404, "DECOMPOSE_JOB_NOT_FOUND", "当前项目没有拆解任务");
|
|
393
|
+
}
|
|
394
|
+
// 状态前置(api/120-api-decompose.md §rerun):running / paused 不接(需先等收尾或续拆)
|
|
395
|
+
if (job.status !== "done" && job.status !== "failed") {
|
|
396
|
+
throw new HttpError(409, "DECOMPOSE_JOB_STATE", `job 状态为 ${job.status},不能重跑(仅 done / failed 可重跑)`);
|
|
397
|
+
}
|
|
398
|
+
const rawSeq = c.req.param("seq");
|
|
399
|
+
const seq = Number(rawSeq);
|
|
400
|
+
if (!Number.isInteger(seq) || seq < 1) {
|
|
401
|
+
throw new HttpError(404, "DECOMPOSE_BATCH_NOT_FOUND", `批序号非法: ${rawSeq}`);
|
|
402
|
+
}
|
|
403
|
+
if (getDecomposeBatch(project.db, job.id, seq) === null) {
|
|
404
|
+
throw new HttpError(404, "DECOMPOSE_BATCH_NOT_FOUND", `批序号越界: ${seq}`);
|
|
405
|
+
}
|
|
406
|
+
// 模型/凭据前置(与 resume 同口径):缺凭据时重跑会先把该批的抽取结果清掉(failBatch 置 NULL)
|
|
407
|
+
// 再走到 job failed——一次凭据抖动就烧掉一批已付 token 的产物。故 400 且**不改状态、不动批结果**。
|
|
408
|
+
await requireActiveModel(deps);
|
|
409
|
+
updateJobStatus(project.db, job.id, "running", nowIso());
|
|
410
|
+
setJobError(project.db, job.id, null, nowIso()); // 开工清上一次的 job 级错误摘要
|
|
411
|
+
// S2 重跑该批 → 批全部收口后自动接 S3 归并 + S4 报告(runner 的收口路径)
|
|
412
|
+
void startDecomposeJob(project, deps, { rerunSeq: seq });
|
|
413
|
+
// 形状归 shared `decomposeRerunResSchema`(与 pause / resume 同款:响应类型不另开别名)
|
|
414
|
+
return c.json(ok({ status: "running", seq }));
|
|
415
|
+
});
|
|
416
|
+
return routes;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* 过程条目投影(§8 时间线):**只**取 `customType = decompose` 的 custom 条目——同一文件里还有
|
|
420
|
+
* message / model_change / session_info 以及别的扩展写的 custom 条目,一律不进响应(原文与模型产出
|
|
421
|
+
* 因此不可能泄漏到时间线里)。形状不符的条目跳过(同 batches 路由的形状守卫口径:脏数据不发客户端),
|
|
422
|
+
* `at` 缺 / 坏则回退条目自身的时间戳。顺序 = 文件顺序。
|
|
423
|
+
*/
|
|
424
|
+
function projectLogEntries(entries) {
|
|
425
|
+
const projected = [];
|
|
426
|
+
for (const entry of entries) {
|
|
427
|
+
if (entry.type !== "custom" || entry.customType !== DECOMPOSE_LOG_CUSTOM_TYPE)
|
|
428
|
+
continue;
|
|
429
|
+
const data = typeof entry.data === "object" && entry.data !== null ? entry.data : {};
|
|
430
|
+
const parsed = decomposeLogEntrySchema.safeParse({
|
|
431
|
+
id: entry.id,
|
|
432
|
+
at: typeof data.at === "string" ? data.at : entry.timestamp,
|
|
433
|
+
kind: data.kind,
|
|
434
|
+
text: data.text,
|
|
435
|
+
batchSeq: data.batchSeq,
|
|
436
|
+
});
|
|
437
|
+
if (parsed.success)
|
|
438
|
+
projected.push(parsed.data);
|
|
439
|
+
}
|
|
440
|
+
return projected;
|
|
441
|
+
}
|
|
442
|
+
/** 响应自检出口(参照 chat.ts sessionsResponse):parse 失败 = 500 INTERNAL_ERROR(不让 ZodError 冒泡成 400) */
|
|
443
|
+
function jobLogResponse(c, payload) {
|
|
444
|
+
try {
|
|
445
|
+
return c.json(ok(decomposeJobLogResSchema.parse(payload)));
|
|
446
|
+
}
|
|
447
|
+
catch (err) {
|
|
448
|
+
throw new HttpError(500, "INTERNAL_ERROR", `拆解记录响应不符合契约: ${err instanceof Error ? err.message : String(err)}`);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
/** 拆解路由(挂载于 /api/v1/decompose,index.ts);测试用 `createDecomposeRoutes(deps)` 注入运行时 */
|
|
452
|
+
export const decomposeRoutes = createDecomposeRoutes();
|
|
453
|
+
//# sourceMappingURL=decompose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decompose.js","sourceRoot":"","sources":["../../src/routes/decompose.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/project.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
2
|
/** 设置创作根(index.ts startServer 调用;测试隔离用传 null 重置) */
|
|
3
3
|
export declare function setProjectRoot(root: string | null): void;
|
|
4
|
+
/** 读创作根(拆解 start 在 `books/<书名>/` 下建书目录用;未初始化 → null) */
|
|
5
|
+
export declare function getProjectRoot(): string | null;
|
|
4
6
|
/** books/ 子目录名(书架模式:创作根/books/<书名>/) */
|
|
5
7
|
export declare const BOOKS_DIR_NAME = "books";
|
|
6
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAsD1C,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED,wCAAwC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBzD;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,4EAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAsD1C,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wCAAwC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBzD;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,4EAAa,CAAC"}
|
package/dist/routes/project.js
CHANGED
|
@@ -35,6 +35,10 @@ let projectRoot = null;
|
|
|
35
35
|
export function setProjectRoot(root) {
|
|
36
36
|
projectRoot = root;
|
|
37
37
|
}
|
|
38
|
+
/** 读创作根(拆解 start 在 `books/<书名>/` 下建书目录用;未初始化 → null) */
|
|
39
|
+
export function getProjectRoot() {
|
|
40
|
+
return projectRoot;
|
|
41
|
+
}
|
|
38
42
|
/** books/ 子目录名(书架模式:创作根/books/<书名>/) */
|
|
39
43
|
export const BOOKS_DIR_NAME = "books";
|
|
40
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"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"}
|