@whispering233/ai-editor-server 0.0.52 → 0.0.54
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-B2op0r9o.css} +1 -1
- package/client-dist/assets/index-Bgk8dcAm.js +627 -0
- package/client-dist/index.html +2 -2
- package/dist/backup.d.ts +37 -44
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +55 -201
- package/dist/backup.js.map +1 -1
- package/dist/cloud/auto-push.d.ts +3 -3
- package/dist/cloud/auto-push.d.ts.map +1 -1
- package/dist/cloud/auto-push.js +7 -6
- package/dist/cloud/auto-push.js.map +1 -1
- package/dist/cloud/state.d.ts +6 -0
- package/dist/cloud/state.d.ts.map +1 -1
- package/dist/cloud/state.js +25 -0
- package/dist/cloud/state.js.map +1 -1
- package/dist/cloud/sync.d.ts +4 -6
- package/dist/cloud/sync.d.ts.map +1 -1
- package/dist/cloud/sync.js +8 -23
- package/dist/cloud/sync.js.map +1 -1
- 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 +181 -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/last-project.d.ts +5 -0
- package/dist/last-project.d.ts.map +1 -1
- package/dist/last-project.js +18 -0
- package/dist/last-project.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 +4 -3
- package/dist/middleware/project.d.ts.map +1 -1
- package/dist/middleware/project.js +40 -2
- 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/cloud.d.ts.map +1 -1
- package/dist/routes/cloud.js +168 -11
- package/dist/routes/cloud.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 +22 -0
- package/dist/routes/project.d.ts.map +1 -1
- package/dist/routes/project.js +143 -9
- package/dist/routes/project.js.map +1 -1
- package/package.json +5 -5
- package/client-dist/assets/index-JrTZv8BF.js +0 -621
package/dist/routes/cloud.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
// 云端存档路由:GET /status、PUT /config、POST /test(挂载于 /api/v1/cloud)
|
|
1
|
+
// 云端存档路由:GET /status、PUT /config、POST /test、GET /remote-books、POST /import-book(挂载于 /api/v1/cloud)
|
|
2
2
|
//
|
|
3
3
|
// 契约 = `docs/api/100-api-cloud.md`;语义与不变式 = `docs/design/40-cloud-sync.md`。
|
|
4
|
-
// 卡 2 只做**配置段**:账号读写 + 连通性/读写权限测试;云端的列表、推送、拉取在后续卡片,
|
|
5
|
-
// 那时 status 会补上 remote/local/state(现在不填,避免「字段存在但永远为 null」的假契约)。
|
|
6
4
|
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
5
|
+
// 除 push/pull(需当前项目)外均**不要求**项目已打开(设置页需先能配账号;projectId 仅作回显;
|
|
6
|
+
// 新机器恢复时书架还没打开任何书)。凭据纪律:password 永不进响应——不是脱敏展示,而是根本不回传。
|
|
9
7
|
import { Hono } from "hono";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
8
|
+
import { mkdirSync, rmSync, statSync } from "node:fs";
|
|
9
|
+
import { join, basename } from "node:path";
|
|
10
|
+
import { cloudConfigPutReqSchema, cloudImportBookReqSchema, cloudPullReqSchema, cloudPushReqSchema, PROJECT_EXPORT_FILE_NAMES, } from "@whispering233/ai-editor-shared/schemas";
|
|
11
|
+
import { parseBackupFileName, sanitizeDeviceName } from "@whispering233/ai-editor-shared";
|
|
12
12
|
import { HttpError, ok } from "../middleware/error.js";
|
|
13
13
|
import { getCurrentProject, requireCurrentProject } from "../middleware/project.js";
|
|
14
14
|
import { currentDeviceName } from "../cloud/device.js";
|
|
15
|
-
import { configuredDeviceName, readAutoPush, readBookState, readWebdavConfig, writeCloudConfig } from "../cloud/state.js";
|
|
16
|
-
import { startAutoBackup } from "../backup.js";
|
|
15
|
+
import { configuredDeviceName, readAutoPush, readBookState, readWebdavConfig, writeBookState, writeCloudConfig } from "../cloud/state.js";
|
|
16
|
+
import { startAutoBackup, validateBackupPackage, writeProjectFilesFromBackup, writeRawBackupFile } from "../backup.js";
|
|
17
17
|
import { cloudFileSet, computeCloudSync, findExistingCloudDir, pullBackup, pushBackup, toCloudBackups } from "../cloud/sync.js";
|
|
18
|
-
import { createWebdavClient } from "../cloud/webdav.js";
|
|
18
|
+
import { CLOUD_WORK_DIR, createWebdavClient } from "../cloud/webdav.js";
|
|
19
|
+
import { findBookDirById, getProjectRoot, isBookNameValid, uniqueBookDir } from "./project.js";
|
|
19
20
|
/** 云端存档路由(挂载于 /api/v1/cloud) */
|
|
20
21
|
export const cloudRoutes = new Hono();
|
|
21
22
|
/** 读写探测用的临时文件名(沿用 `.tmp-` 约定:推送前清理流程会顺带回收遗留文件) */
|
|
@@ -88,7 +89,7 @@ cloudRoutes.get("/status", async (c) => {
|
|
|
88
89
|
return c.json(ok(payload));
|
|
89
90
|
});
|
|
90
91
|
// POST /api/v1/cloud/pull —— 从云端拉取一份备份应用到当前项目(缺省 = 云端 head)
|
|
91
|
-
//
|
|
92
|
+
// 语义:三文件覆盖(`sessions/` 是纯本地目录,不写不删);
|
|
92
93
|
// 覆盖前自动快照本机当前状态(restore 管道既有行为)
|
|
93
94
|
cloudRoutes.post("/pull", async (c) => {
|
|
94
95
|
const project = requireCurrentProject(); // 409 NO_PROJECT_OPEN
|
|
@@ -203,4 +204,160 @@ cloudRoutes.post("/test", async (c) => {
|
|
|
203
204
|
const payload = { connected: true, baseUrl: webdav.url, created, ...(leftover ? { leftoverWriteTestFile: true } : {}) };
|
|
204
205
|
return c.json(ok(payload));
|
|
205
206
|
});
|
|
207
|
+
// ============ 新机器恢复:列云端书 + 导入为新书(`docs/design/40-cloud-sync.md` §10) ============
|
|
208
|
+
/** 未配置云盘时两个端点的统一拒绝(码表:409 CLOUD_NOT_CONFIGURED) */
|
|
209
|
+
function requireWebdavConfig() {
|
|
210
|
+
const webdav = readWebdavConfig();
|
|
211
|
+
if (webdav === null) {
|
|
212
|
+
throw new HttpError(409, "CLOUD_NOT_CONFIGURED", "云盘未配置:请先在设置页填写 WebDAV 地址与用户名/应用密码");
|
|
213
|
+
}
|
|
214
|
+
return webdav;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 云端书目录名 → `{ name, projectId }`;解析不出 → null(= 目录名没带 id / 无 id 声明,**不阻止导入**;UI 只对无备份置灰)。
|
|
218
|
+
*
|
|
219
|
+
* 三种命名(`docs/api/100-api-cloud.md`):`<书名>-<projectId>`(默认)、`ai-editor-<projectId>`
|
|
220
|
+
* (云盘拒长名后的回退)、`<projectId>`(回退链最后一档)。projectId 形状 = `proj-` + 21 位 URL 安全
|
|
221
|
+
* 字母(shared `generateProjectId`)——按这个形状匹配尾部,不按 `-` 切分(书名与 nanoid 段都可含 `-`)。
|
|
222
|
+
* 两种回退命名的首段不是真书名 → `name = null`。
|
|
223
|
+
*/
|
|
224
|
+
function parseCloudBookDirName(dirName) {
|
|
225
|
+
const match = /^(?:(.+)-)?(proj-[A-Za-z0-9_-]{21})$/.exec(dirName);
|
|
226
|
+
if (match === null)
|
|
227
|
+
return null;
|
|
228
|
+
const name = match[1] === undefined || match[1] === CLOUD_WORK_DIR ? null : match[1];
|
|
229
|
+
return { name, projectId: match[2] };
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 导入完成时的同步基准(写进 `cloud.json` 的 `lastSyncAt`)= `max(now, 刚写下的三文件 mtime 向上取整到毫秒)`。
|
|
233
|
+
*
|
|
234
|
+
* 为何不直接 `new Date()`:文件系统 mtime 是**亚毫秒**精度,而 `new Date()` 只到毫秒——同一毫秒内
|
|
235
|
+
* 写下的文件会被 `hasLocalEditsSince` 的**严格**比较(project.json/outline.json 无容差)读成
|
|
236
|
+
* 「本机有改动」,于是刚导入完查状态就是 `local-ahead`(实测同毫秒写入下约 1/6 概率)。
|
|
237
|
+
* 基准不由自己写入的文件决定,才符合「刚导入 = 已同步」的语义。
|
|
238
|
+
*/
|
|
239
|
+
function importSyncBaseline(bookDir) {
|
|
240
|
+
let baseline = Date.now();
|
|
241
|
+
for (const name of PROJECT_EXPORT_FILE_NAMES) {
|
|
242
|
+
try {
|
|
243
|
+
baseline = Math.max(baseline, Math.ceil(statSync(join(bookDir, name)).mtimeMs));
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
continue; // 三文件刚写完,stat 失败不改变基准(基准只影响三态判定的灵敏度)
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return new Date(baseline).toISOString();
|
|
250
|
+
}
|
|
251
|
+
// GET /api/v1/cloud/remote-books —— 列云端工作根下的全部书目录(不要求项目已打开)
|
|
252
|
+
// 工作根不存在 → 空数组(**GET 不写云盘**:不 MKCOL,用户先配好并在本机推一份);
|
|
253
|
+
// 每书目录一次 PROPFIND(请求量 = 1 + 书目录数);无法解析的目录也列出(backups:[] / projectId:null)
|
|
254
|
+
cloudRoutes.get("/remote-books", async (c) => {
|
|
255
|
+
const webdav = requireWebdavConfig();
|
|
256
|
+
const client = createWebdavClient(webdav);
|
|
257
|
+
const rootEntries = await client.list("");
|
|
258
|
+
if (rootEntries === null) {
|
|
259
|
+
const empty = { books: [] };
|
|
260
|
+
return c.json(ok(empty));
|
|
261
|
+
}
|
|
262
|
+
const root = getProjectRoot();
|
|
263
|
+
const books = [];
|
|
264
|
+
for (const dir of rootEntries.filter((entry) => entry.isCollection)) {
|
|
265
|
+
const entries = (await client.list(dir.name)) ?? [];
|
|
266
|
+
const parsed = parseCloudBookDirName(dir.name);
|
|
267
|
+
books.push({
|
|
268
|
+
dirName: dir.name,
|
|
269
|
+
name: parsed?.name ?? null,
|
|
270
|
+
projectId: parsed?.projectId ?? null,
|
|
271
|
+
// 本机已有同 id 的书 → 不可重复导入(UI 置灰并提示去打开同步)
|
|
272
|
+
localExists: parsed !== null && root !== null && findBookDirById(root, parsed.projectId) !== null,
|
|
273
|
+
backups: toCloudBackups(entries),
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
const payload = { books };
|
|
277
|
+
return c.json(ok(payload));
|
|
278
|
+
});
|
|
279
|
+
// POST /api/v1/cloud/import-book —— 把云端某本书的一份备份导入为本机新书(不要求项目已打开)
|
|
280
|
+
//
|
|
281
|
+
// 流程:目录/文件存在性(404)→ 下载 → **既有导入校验管道** `validateBackupPackage`
|
|
282
|
+
// (与 `POST /project/import` 同一实现:坏包 400 / 版本 409)→ **目录名一致性守卫**
|
|
283
|
+
// (目录名能解析出 id 且 ≠ 包内 id → 400;必读包内 id 故此时才能比对;从未触碰 `books/`)
|
|
284
|
+
// → 本机已有同 id → 409(不静默覆盖:
|
|
285
|
+
// 那本书应在应用内自己同步)→ `uniqueBookDir` 建档(**id 沿用**、name 归一为目录名)→
|
|
286
|
+
// 那份 zip **原样**落新书 `.backups/`(新机器立刻有一份「最新本地备份」)→ 写 `cloud.json` book state
|
|
287
|
+
// (`lastPushedFileName` = 导入的那份 / `lastSeenCloudFiles` = 当时云端集合 / `lastSyncAt` = 见
|
|
288
|
+
// `importSyncBaseline`)——不写则新机器一打开就是 `conflict`(云端有份 + 本机无同步记录),
|
|
289
|
+
// 刚拉下来就逼用户裁决。**不自动打开**。
|
|
290
|
+
cloudRoutes.post("/import-book", async (c) => {
|
|
291
|
+
const webdav = requireWebdavConfig();
|
|
292
|
+
const parsed = cloudImportBookReqSchema.parse(await c.req.json().catch(() => ({})));
|
|
293
|
+
const root = getProjectRoot();
|
|
294
|
+
if (root === null) {
|
|
295
|
+
throw new HttpError(500, "INTERNAL_ERROR", "创作根未初始化(startServer 未调用 setProjectRoot)");
|
|
296
|
+
}
|
|
297
|
+
// dir_name 进云盘路径拼接,也作书名兜底 → 只接受**单段目录名**(不含路径分隔符与 `..`,
|
|
298
|
+
// 且通过书名规则:纯点/控制字符同样拒——`books/` 下目标目录名就从它派生)
|
|
299
|
+
if (parsed.dir_name.trim() === "" || /[/\\]|\.\./.test(parsed.dir_name) || !isBookNameValid(parsed.dir_name)) {
|
|
300
|
+
throw new HttpError(400, "VALIDATION_ERROR", `云端目录名非法(须为不含路径分隔符与 .. 的单段名): ${parsed.dir_name}`);
|
|
301
|
+
}
|
|
302
|
+
if (parsed.file_name !== undefined && parseBackupFileName(parsed.file_name) === null) {
|
|
303
|
+
throw new HttpError(400, "VALIDATION_ERROR", `备份文件名不在白名单内: ${parsed.file_name}`);
|
|
304
|
+
}
|
|
305
|
+
const client = createWebdavClient(webdav);
|
|
306
|
+
const entries = await client.list(parsed.dir_name);
|
|
307
|
+
if (entries === null) {
|
|
308
|
+
throw new HttpError(404, "CLOUD_FILE_NOT_FOUND", `云端没有这个书目录: ${parsed.dir_name}`);
|
|
309
|
+
}
|
|
310
|
+
const backups = toCloudBackups(entries);
|
|
311
|
+
const head = backups[0] ?? null;
|
|
312
|
+
const target = parsed.file_name === undefined ? head : (backups.find((entry) => entry.fileName === parsed.file_name) ?? null);
|
|
313
|
+
if (target === null) {
|
|
314
|
+
throw new HttpError(404, "CLOUD_FILE_NOT_FOUND", parsed.file_name === undefined
|
|
315
|
+
? `云端书目录里没有可导入的备份: ${parsed.dir_name}`
|
|
316
|
+
: `云端那份备份已不存在: ${parsed.file_name}`);
|
|
317
|
+
}
|
|
318
|
+
const bytes = await client.get(`${parsed.dir_name}/${target.fileName}`);
|
|
319
|
+
if (bytes === null) {
|
|
320
|
+
throw new HttpError(404, "CLOUD_FILE_NOT_FOUND", `云端那份备份已不存在: ${target.fileName}`);
|
|
321
|
+
}
|
|
322
|
+
// 校验通过前不触碰 books/(与 import 同管道同语义);版本过高/坏包直接抛出,不落半成品
|
|
323
|
+
const validated = validateBackupPackage(new Uint8Array(bytes));
|
|
324
|
+
// 目录名解析出的 id ≠ 包内 id → 拒绝(设计文档 §10 表)。危害不是「导入错书」而是 state.dirName 取自目录名:
|
|
325
|
+
// 之后推送会把这本书写进**别人的书的云端目录**(跨书污染)。解析不出 id(用户手工命名目录)无 id 声明,不算冲突。
|
|
326
|
+
const declaredId = parseCloudBookDirName(parsed.dir_name)?.projectId ?? null;
|
|
327
|
+
if (declaredId !== null && declaredId !== validated.projectId) {
|
|
328
|
+
throw new HttpError(400, "VALIDATION_ERROR", `云端目录与备份内容不是同一本书(目录名声明 id: ${declaredId},备份包内 id: ${validated.projectId})——请确认选对了书目录`);
|
|
329
|
+
}
|
|
330
|
+
if (findBookDirById(root, validated.projectId) !== null) {
|
|
331
|
+
throw new HttpError(409, "PROJECT_ALREADY_EXISTS", `本机书架已有这本书(id: ${validated.projectId})——打开它自己同步即可,不重复导入`);
|
|
332
|
+
}
|
|
333
|
+
// 书名:目录名解析出的优先(云端目录名就是书名来源);回退命名解析不出 → 包内 project.json 的书名;
|
|
334
|
+
// 两者都不合法(包内书名只经「非空字符串」校验,拼目录前必须过同一道规则)→ 用目录名(已验单段)
|
|
335
|
+
const candidate = parseCloudBookDirName(parsed.dir_name)?.name ?? validated.projectName.trim();
|
|
336
|
+
const bookDir = uniqueBookDir(root, isBookNameValid(candidate) ? candidate : parsed.dir_name);
|
|
337
|
+
try {
|
|
338
|
+
mkdirSync(bookDir, { recursive: true });
|
|
339
|
+
writeProjectFilesFromBackup(bookDir, validated.entries, { name: basename(bookDir) }); // id 沿用(keepId 不传)
|
|
340
|
+
writeRawBackupFile(bookDir, target.fileName, bytes);
|
|
341
|
+
writeBookState(validated.projectId, {
|
|
342
|
+
dirName: parsed.dir_name,
|
|
343
|
+
lastPushedFileName: target.fileName,
|
|
344
|
+
lastSeenHeadFileName: head?.fileName ?? target.fileName,
|
|
345
|
+
lastSyncAt: importSyncBaseline(bookDir),
|
|
346
|
+
lastSeenCloudFiles: cloudFileSet(entries),
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
rmSync(bookDir, { recursive: true, force: true }); // 半成品不留(含已落盘的那份 zip)
|
|
351
|
+
throw err;
|
|
352
|
+
}
|
|
353
|
+
const payload = {
|
|
354
|
+
imported: true,
|
|
355
|
+
id: validated.projectId,
|
|
356
|
+
path: bookDir,
|
|
357
|
+
name: basename(bookDir),
|
|
358
|
+
fileName: target.fileName,
|
|
359
|
+
size: bytes.length,
|
|
360
|
+
};
|
|
361
|
+
return c.json(ok(payload));
|
|
362
|
+
});
|
|
206
363
|
//# sourceMappingURL=cloud.js.map
|
package/dist/routes/cloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/routes/cloud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/routes/cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { type DecomposeRunnerDeps } from "../decompose/runner.js";
|
|
3
|
+
/** 上传体积上限(原始字节;超限 400 DECOMPOSE_FILE_TOO_LARGE)。analyze 与 start 共用——同文件。 */
|
|
4
|
+
export declare const DECOMPOSE_MAX_FILE_BYTES: number;
|
|
5
|
+
/** 每 token 的汉字数(中文粗估;换 tokenizer 只调这一处——预估本就是量级参考) */
|
|
6
|
+
export declare const DECOMPOSE_CHARS_PER_TOKEN = 1.5;
|
|
7
|
+
/** 每批固定开销里与快照无关的那部分(系统提示 + 输出契约 + 各上限说明)token 粗估 */
|
|
8
|
+
export declare const DECOMPOSE_PROMPT_OVERHEAD_TOKENS = 500;
|
|
9
|
+
/**
|
|
10
|
+
* 每批固定开销 token 粗估(系统提示 + 指令 + 项目数据快照)——**由快照预算派生**,不手写:
|
|
11
|
+
* 快照是量级主导项(§4.1 的 `DECOMPOSE_SNAPSHOT_MAX_CHARS`),写死数字会在改预算时静默失真
|
|
12
|
+
* (预估与实际脱钩、无人报错);批处理省的是这份开销,省不了正文与输出。
|
|
13
|
+
*/
|
|
14
|
+
export declare const DECOMPOSE_BATCH_OVERHEAD_TOKENS: number;
|
|
15
|
+
/** 每章输出 token 粗估(一条摘要(受 `DECOMPOSE_CHAPTER_SUMMARY_MAX_CHARS` 约束)+ 若干实体线索) */
|
|
16
|
+
export declare const DECOMPOSE_OUTPUT_TOKENS_PER_CHAPTER = 400;
|
|
17
|
+
/**
|
|
18
|
+
* 拆解路由可注入依赖(测试注入内存运行时;缺省走真实 pi 单例)。
|
|
19
|
+
* 与批执行器 `DecomposeRunnerDeps` 同源:路由把同一份依赖原样传给 S2 runner(注入点只有一处)。
|
|
20
|
+
*/
|
|
21
|
+
export type DecomposeRouteDeps = DecomposeRunnerDeps;
|
|
22
|
+
/** 拆解路由工厂(测试经 deps 注入内存运行时;index.ts 用缺省依赖) */
|
|
23
|
+
export declare function createDecomposeRoutes(deps?: DecomposeRouteDeps): Hono;
|
|
24
|
+
/** 拆解路由(挂载于 /api/v1/decompose,index.ts);测试用 `createDecomposeRoutes(deps)` 注入运行时 */
|
|
25
|
+
export declare const decomposeRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
26
|
+
//# sourceMappingURL=decompose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../../src/routes/decompose.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AA+B1C,OAAO,EAAsE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAItI,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,oDAAoD;AACpD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QAC4D,CAAC;AACzG,8EAA8E;AAC9E,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAavD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAiJrD,8CAA8C;AAC9C,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,kBAAuB,GAAG,IAAI,CAgRzE;AAuCD,mFAAmF;AACnF,eAAO,MAAM,eAAe,4EAA0B,CAAC"}
|