@musnows/scriverse 0.3.5 → 0.3.6

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.
@@ -0,0 +1,162 @@
1
+ import { createHash } from "node:crypto";
2
+ import { constants as fsConstants } from "node:fs";
3
+ import { copyFile, mkdir, open, readFile, rm, stat } from "node:fs/promises";
4
+ import { dirname, join, resolve, sep } from "node:path";
5
+ import sharp from "sharp";
6
+ import { AppError } from "./errors.js";
7
+ const maximumPixels = 100_000_000;
8
+ const allowedFormats = new Set(["png", "jpeg", "webp", "gif"]);
9
+ function mimeType(format) {
10
+ if (format === "png")
11
+ return "image/png";
12
+ if (format === "jpeg")
13
+ return "image/jpeg";
14
+ if (format === "webp")
15
+ return "image/webp";
16
+ if (format === "gif")
17
+ return "image/gif";
18
+ throw new AppError(415, "UNSUPPORTED_ATTACHMENT", "附件仅支持 PNG、JPEG、WebP 和 GIF 图片");
19
+ }
20
+ function extensionForMime(value) {
21
+ if (value === "image/jpeg")
22
+ return "jpg";
23
+ return value.slice("image/".length);
24
+ }
25
+ async function sha256File(path) {
26
+ const handle = await open(path, "r");
27
+ const hash = createHash("sha256");
28
+ try {
29
+ const buffer = Buffer.allocUnsafe(1024 * 1024);
30
+ while (true) {
31
+ const { bytesRead } = await handle.read(buffer, 0, buffer.length, null);
32
+ if (bytesRead === 0)
33
+ break;
34
+ hash.update(buffer.subarray(0, bytesRead));
35
+ }
36
+ }
37
+ finally {
38
+ await handle.close();
39
+ }
40
+ return hash.digest("hex");
41
+ }
42
+ export class AttachmentStorage {
43
+ rootDirectory;
44
+ temporaryDirectory;
45
+ constructor(rootDirectory) {
46
+ this.rootDirectory = rootDirectory;
47
+ this.temporaryDirectory = join(rootDirectory, ".tmp");
48
+ }
49
+ async prepare() {
50
+ await mkdir(this.temporaryDirectory, { recursive: true, mode: 0o700 });
51
+ }
52
+ resolvedStoragePath(storageKey) {
53
+ if (!/^[a-f0-9]{2}\/[a-f0-9]{64}\.(?:webp|png|jpe?g|gif)$/u.test(storageKey)) {
54
+ throw new AppError(500, "ATTACHMENT_PATH_INVALID", "附件存储路径无效");
55
+ }
56
+ const path = resolve(this.rootDirectory, storageKey);
57
+ const root = resolve(this.rootDirectory);
58
+ if (path !== root && !path.startsWith(`${root}${sep}`)) {
59
+ throw new AppError(500, "ATTACHMENT_PATH_INVALID", "附件存储路径无效");
60
+ }
61
+ return path;
62
+ }
63
+ path(storageKey) {
64
+ return this.resolvedStoragePath(storageKey);
65
+ }
66
+ async read(storageKey) {
67
+ try {
68
+ return await readFile(this.resolvedStoragePath(storageKey));
69
+ }
70
+ catch (error) {
71
+ if (error.code === "ENOENT") {
72
+ throw new AppError(404, "ATTACHMENT_FILE_NOT_FOUND", "附件文件不存在");
73
+ }
74
+ throw error;
75
+ }
76
+ }
77
+ async remove(storageKey) {
78
+ await rm(this.resolvedStoragePath(storageKey), { force: true });
79
+ }
80
+ async ingest(sourcePath) {
81
+ await this.prepare();
82
+ const originalStats = await stat(sourcePath);
83
+ const originalSha256 = await sha256File(sourcePath);
84
+ let metadata;
85
+ try {
86
+ metadata = await sharp(sourcePath, { animated: true, limitInputPixels: maximumPixels, sequentialRead: true }).metadata();
87
+ }
88
+ catch {
89
+ throw new AppError(415, "INVALID_ATTACHMENT_IMAGE", "附件不是有效的图片文件");
90
+ }
91
+ const format = String(metadata.format ?? "");
92
+ if (!allowedFormats.has(format))
93
+ throw new AppError(415, "UNSUPPORTED_ATTACHMENT", "附件仅支持 PNG、JPEG、WebP 和 GIF 图片");
94
+ const width = Number(metadata.width ?? 0);
95
+ const pageHeight = Number(metadata.pageHeight ?? metadata.height ?? 0);
96
+ const pageCount = Math.max(1, Number(metadata.pages ?? 1));
97
+ if (!Number.isInteger(width) || width <= 0 || !Number.isInteger(pageHeight) || pageHeight <= 0) {
98
+ throw new AppError(415, "INVALID_ATTACHMENT_IMAGE", "无法读取附件图片尺寸");
99
+ }
100
+ if (width * pageHeight > maximumPixels)
101
+ throw new AppError(413, "ATTACHMENT_IMAGE_TOO_LARGE", "附件图片像素尺寸过大");
102
+ const originalMimeType = mimeType(format);
103
+ const candidatePath = join(this.temporaryDirectory, `${originalSha256}-${Date.now()}.webp`);
104
+ let selectedPath = sourcePath;
105
+ let storedMimeType = originalMimeType;
106
+ if (format !== "webp") {
107
+ try {
108
+ await sharp(sourcePath, { animated: true, limitInputPixels: maximumPixels, sequentialRead: true })
109
+ .webp({ lossless: true, effort: 6 })
110
+ .toFile(candidatePath);
111
+ const converted = await sharp(candidatePath, { animated: true, limitInputPixels: maximumPixels }).metadata();
112
+ const convertedPages = Math.max(1, Number(converted.pages ?? 1));
113
+ if (pageCount > 1 && convertedPages !== pageCount) {
114
+ throw new AppError(422, "ATTACHMENT_ANIMATION_LOST", "附件转换未能保留全部动画帧");
115
+ }
116
+ if ((await stat(candidatePath)).size < originalStats.size) {
117
+ selectedPath = candidatePath;
118
+ storedMimeType = "image/webp";
119
+ }
120
+ }
121
+ catch (error) {
122
+ await rm(candidatePath, { force: true });
123
+ if (format === "gif") {
124
+ if (error instanceof AppError)
125
+ throw error;
126
+ throw new AppError(422, "ATTACHMENT_ANIMATION_CONVERSION_FAILED", "GIF 附件无法安全转换为动画 WebP");
127
+ }
128
+ }
129
+ }
130
+ try {
131
+ const storedSha256 = selectedPath === sourcePath ? originalSha256 : await sha256File(selectedPath);
132
+ const storedByteLength = (await stat(selectedPath)).size;
133
+ const storageKey = `${storedSha256.slice(0, 2)}/${storedSha256}.${extensionForMime(storedMimeType)}`;
134
+ const targetPath = this.resolvedStoragePath(storageKey);
135
+ await mkdir(dirname(targetPath), { recursive: true, mode: 0o700 });
136
+ try {
137
+ await copyFile(selectedPath, targetPath, fsConstants.COPYFILE_EXCL);
138
+ }
139
+ catch (error) {
140
+ if (error.code !== "EEXIST")
141
+ throw error;
142
+ }
143
+ return {
144
+ originalMimeType,
145
+ storedMimeType,
146
+ originalByteLength: originalStats.size,
147
+ storedByteLength,
148
+ originalSha256,
149
+ storedSha256,
150
+ storageKey,
151
+ width,
152
+ height: pageHeight,
153
+ pageCount,
154
+ animated: pageCount > 1
155
+ };
156
+ }
157
+ finally {
158
+ await rm(candidatePath, { force: true });
159
+ }
160
+ }
161
+ }
162
+ //# sourceMappingURL=attachment-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-storage.js","sourceRoot":"","sources":["../src/attachment-storage.ts"],"names":[],"mappings":"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"}
@@ -148,12 +148,12 @@ export const cliResourceDefinitions = {
148
148
  actions: ["list", "get", "create", "update", "history", "restore"],
149
149
  create: {
150
150
  required: ["name"],
151
- properties: { name: "种族名称", description: "说明", settings: "设定条目数组", memberIds: "人物 ID 数组" },
152
- example: { name: "潮裔", description: "适应高盐雾环境的人类分支。", settings: ["夜间视力较强"], memberIds: [] }
151
+ properties: { name: "种族名称", parentRaceId: "父种族 ID 或 null", description: "说明", settings: "设定条目数组", memberIds: "人物 ID 数组" },
152
+ example: { name: "潮裔", parentRaceId: null, description: "适应高盐雾环境的人类分支。", settings: ["夜间视力较强"], memberIds: [] }
153
153
  },
154
154
  update: {
155
- properties: { name: "新名称", description: "新说明", settings: "完整设定数组", memberIds: "完整成员数组", changeNote },
156
- example: { settings: ["夜间视力较强", "需要周期性盐浴"], changeNote: "补充生理限制" }
155
+ properties: { name: "新名称", parentRaceId: "新父种族 ID 或 null", description: "新说明", settings: "完整设定数组", memberIds: "完整成员数组", changeNote },
156
+ example: { parentRaceId: null, settings: ["夜间视力较强", "需要周期性盐浴"], changeNote: "补充生理限制" }
157
157
  }
158
158
  },
159
159
  organization: {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-contract.js","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;IACX,MAAM;IACN,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,iBAAiB;CACT,CAAC;AAoBX,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC5C,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,UAAU,EAAE;YACV,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,MAAM;SACb;QACD,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;KAChH;IACD,MAAM,EAAE;QACN,UAAU,EAAE;YACV,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,QAAQ;SACf;QACD,OAAO,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;KACxE;IACD,KAAK,EAAE,CAAC,0BAA0B,CAAC;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE;QACN,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC5C,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,UAAU,EAAE;gBACV,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,8CAA8C;gBACpD,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,gBAAgB;aAC3B;YACD,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;SAC7F;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,SAAS;aACrB;YACD,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;SACnE;QACD,KAAK,EAAE,CAAC,yBAAyB,CAAC;KACnC;IACD,OAAO,EAAE;QACP,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;YAC/B,UAAU,EAAE;gBACV,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,qBAAqB;aACnC;YACD,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE;SAChG;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,iDAAiD;gBAC1D,oBAAoB,EAAE,YAAY;gBAClC,WAAW,EAAE,qBAAqB;gBAClC,UAAU;aACX;YACD,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,SAAS,EAAE;SACnE;QACD,KAAK,EAAE,CAAC,kCAAkC,CAAC;KAC5C;IACD,OAAO,EAAE;QACP,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;YAC1C,UAAU,EAAE;gBACV,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,0CAA0C;gBAClD,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,MAAM;aACnB;YACD,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;SACpG;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YAC/K,OAAO,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE;SACjE;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,UAAU;gBAC3B,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,QAAQ;gBACjB,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,iCAAiC;gBAC7C,cAAc,EAAE,kBAAkB;aACnC;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;SACxI;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE;YACxP,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;SAC1F;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;YAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;SAC3F;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;YACpG,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;SACnE;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;YAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;SACxF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;YACpG,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE;SACvE;KACF;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;YACnE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;SAClE;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;YAC9E,OAAO,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;SAC/D;KACF;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,MAAM;gBACjB,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,YAAY;gBACxB,cAAc,EAAE,YAAY;gBAC5B,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,qDAAqD;gBAClE,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,8CAA8C;aACvD;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;SAClJ;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;YACpR,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE;SAC/D;KACF;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,UAAU,CAAC;YAC1D,UAAU,EAAE;gBACV,eAAe,EAAE,SAAS;gBAC1B,aAAa,EAAE,SAAS;gBACxB,QAAQ,EAAE,oDAAoD;gBAC9D,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,MAAM;gBAChB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,MAAM;gBAChB,kBAAkB,EAAE,gCAAgC;gBACpD,MAAM,EAAE,MAAM;aACf;YACD,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE;SACvL;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;YAC5Q,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE;SAC9E;KACF;IACD,UAAU,EAAE;QACV,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,UAAU,EAAE;gBACV,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,0CAA0C;gBAClD,UAAU,EAAE,qBAAqB;gBACjC,sBAAsB,EAAE,kBAAkB;gBAC1C,cAAc,EAAE,MAAM;gBACtB,WAAW,EAAE,gEAAgE;aAC9E;YACD,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;SAC7K;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE;YACjL,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;SACtF;KACF;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;QAClE,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,EAAE;YACrH,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;SAC9F;QACD,MAAM,EAAE;YACN,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;YAC1G,OAAO,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE;SACnE;QACD,KAAK,EAAE,CAAC,8CAA8C,CAAC;KACxD;CACuD,CAAC"}
1
+ {"version":3,"file":"cli-contract.js","sourceRoot":"","sources":["../src/cli-contract.ts"],"names":[],"mappings":"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"}
package/dist/database.js CHANGED
@@ -174,6 +174,7 @@ export class Database {
174
174
  CREATE TABLE IF NOT EXISTS races (
175
175
  id TEXT PRIMARY KEY,
176
176
  work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
177
+ parent_race_id TEXT REFERENCES races(id) ON DELETE RESTRICT,
177
178
  name TEXT NOT NULL,
178
179
  normalized_name TEXT NOT NULL,
179
180
  description TEXT NOT NULL DEFAULT '',
@@ -196,6 +197,8 @@ export class Database {
196
197
  locked_fields_json TEXT NOT NULL DEFAULT '[]',
197
198
  visibility TEXT NOT NULL DEFAULT 'author',
198
199
  first_chapter_id TEXT REFERENCES chapters(id) ON DELETE SET NULL,
200
+ merged_into_character_id TEXT,
201
+ merged_at TEXT,
199
202
  version_no INTEGER NOT NULL DEFAULT 1,
200
203
  created_at TEXT NOT NULL,
201
204
  updated_at TEXT NOT NULL
@@ -296,6 +299,19 @@ export class Database {
296
299
  updated_at TEXT NOT NULL
297
300
  );
298
301
 
302
+ CREATE TABLE IF NOT EXISTS character_merges (
303
+ id TEXT PRIMARY KEY,
304
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
305
+ source_character_id TEXT NOT NULL UNIQUE,
306
+ target_character_id TEXT NOT NULL,
307
+ review_id TEXT REFERENCES review_items(id) ON DELETE SET NULL,
308
+ source_snapshot_json TEXT NOT NULL,
309
+ target_snapshot_json TEXT NOT NULL,
310
+ reference_snapshot_json TEXT NOT NULL,
311
+ created_at TEXT NOT NULL,
312
+ created_by_user_id TEXT
313
+ );
314
+
299
315
  CREATE TABLE IF NOT EXISTS providers (
300
316
  id TEXT PRIMARY KEY,
301
317
  work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
@@ -363,7 +379,7 @@ export class Database {
363
379
  auto_run_batch_limit INTEGER NOT NULL DEFAULT 20,
364
380
  book_summary_context_percent INTEGER NOT NULL DEFAULT 50 CHECK(book_summary_context_percent BETWEEN 1 AND 90),
365
381
  context_compact_threshold INTEGER NOT NULL DEFAULT 85 CHECK(context_compact_threshold BETWEEN 50 AND 90),
366
- agent_tools_json TEXT NOT NULL DEFAULT '["story_index","read_chapters","query_story_knowledge","grep"]',
382
+ agent_tools_json TEXT NOT NULL DEFAULT '["story_index","read_chapters","query_story_knowledge","grep","read_character_sections"]',
367
383
  updated_at TEXT NOT NULL
368
384
  );
369
385
 
@@ -544,6 +560,7 @@ export class Database {
544
560
  CREATE INDEX IF NOT EXISTS idx_timeline_tracks_work ON timeline_tracks(work_id, sort_order);
545
561
  CREATE INDEX IF NOT EXISTS idx_relationships_work ON relationships(work_id);
546
562
  CREATE INDEX IF NOT EXISTS idx_reviews_work ON review_items(work_id, status);
563
+ CREATE INDEX IF NOT EXISTS idx_character_merges_work ON character_merges(work_id, created_at DESC);
547
564
  CREATE INDEX IF NOT EXISTS idx_tasks_work ON analysis_tasks(work_id, status);
548
565
  CREATE INDEX IF NOT EXISTS idx_calls_work ON ai_calls(work_id, created_at DESC);
549
566
  CREATE INDEX IF NOT EXISTS idx_ai_conversations_work ON ai_conversations(work_id, updated_at DESC);
@@ -1205,6 +1222,207 @@ export class Database {
1205
1222
  this.run("INSERT INTO schema_migrations (version, applied_at) VALUES (29, ?)", new Date().toISOString());
1206
1223
  });
1207
1224
  }
1225
+ if (!applied.has(30)) {
1226
+ this.transaction(() => {
1227
+ const characterColumns = new Set(this.all("PRAGMA table_info(characters)").map((row) => String(row.name)));
1228
+ if (!characterColumns.has("merged_into_character_id")) {
1229
+ this.run("ALTER TABLE characters ADD COLUMN merged_into_character_id TEXT");
1230
+ }
1231
+ if (!characterColumns.has("merged_at")) {
1232
+ this.run("ALTER TABLE characters ADD COLUMN merged_at TEXT");
1233
+ }
1234
+ this.raw.exec(`
1235
+ CREATE TABLE IF NOT EXISTS character_merges (
1236
+ id TEXT PRIMARY KEY,
1237
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1238
+ source_character_id TEXT NOT NULL UNIQUE,
1239
+ target_character_id TEXT NOT NULL,
1240
+ review_id TEXT REFERENCES review_items(id) ON DELETE SET NULL,
1241
+ source_snapshot_json TEXT NOT NULL,
1242
+ target_snapshot_json TEXT NOT NULL,
1243
+ reference_snapshot_json TEXT NOT NULL,
1244
+ created_at TEXT NOT NULL,
1245
+ created_by_user_id TEXT
1246
+ );
1247
+ CREATE INDEX IF NOT EXISTS idx_character_merges_work ON character_merges(work_id, created_at DESC);
1248
+ `);
1249
+ this.run("INSERT INTO schema_migrations (version, applied_at) VALUES (30, ?)", new Date().toISOString());
1250
+ });
1251
+ }
1252
+ if (!applied.has(31)) {
1253
+ this.transaction(() => {
1254
+ this.raw.exec(`
1255
+ CREATE TABLE IF NOT EXISTS character_profile_sections (
1256
+ id TEXT PRIMARY KEY,
1257
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1258
+ character_id TEXT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
1259
+ section_type TEXT NOT NULL DEFAULT 'custom',
1260
+ title TEXT NOT NULL,
1261
+ content_markdown TEXT NOT NULL DEFAULT '',
1262
+ summary TEXT NOT NULL DEFAULT '',
1263
+ sort_order INTEGER NOT NULL DEFAULT 0,
1264
+ source_path TEXT,
1265
+ source_hash TEXT,
1266
+ version_no INTEGER NOT NULL DEFAULT 1,
1267
+ created_at TEXT NOT NULL,
1268
+ updated_at TEXT NOT NULL
1269
+ );
1270
+ CREATE INDEX IF NOT EXISTS idx_character_profile_sections_character
1271
+ ON character_profile_sections(character_id, sort_order, created_at);
1272
+ CREATE INDEX IF NOT EXISTS idx_character_profile_sections_work
1273
+ ON character_profile_sections(work_id, updated_at DESC);
1274
+
1275
+ CREATE TABLE IF NOT EXISTS character_profile_section_versions (
1276
+ id TEXT PRIMARY KEY,
1277
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1278
+ character_id TEXT NOT NULL,
1279
+ section_id TEXT NOT NULL,
1280
+ version_no INTEGER NOT NULL,
1281
+ snapshot_json TEXT NOT NULL,
1282
+ source TEXT NOT NULL,
1283
+ source_ref TEXT,
1284
+ change_note TEXT NOT NULL DEFAULT '',
1285
+ created_at TEXT NOT NULL,
1286
+ created_by_user_id TEXT REFERENCES users(id) ON DELETE SET NULL,
1287
+ UNIQUE(section_id, version_no)
1288
+ );
1289
+ CREATE INDEX IF NOT EXISTS idx_character_profile_section_versions_section
1290
+ ON character_profile_section_versions(section_id, version_no DESC);
1291
+
1292
+ CREATE TABLE IF NOT EXISTS attachments (
1293
+ id TEXT PRIMARY KEY,
1294
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1295
+ original_name TEXT NOT NULL,
1296
+ original_mime_type TEXT NOT NULL,
1297
+ stored_mime_type TEXT NOT NULL,
1298
+ original_byte_length INTEGER NOT NULL,
1299
+ stored_byte_length INTEGER NOT NULL,
1300
+ original_sha256 TEXT NOT NULL,
1301
+ stored_sha256 TEXT NOT NULL,
1302
+ storage_key TEXT NOT NULL,
1303
+ width INTEGER NOT NULL,
1304
+ height INTEGER NOT NULL,
1305
+ page_count INTEGER NOT NULL DEFAULT 1,
1306
+ animated INTEGER NOT NULL DEFAULT 0,
1307
+ created_at TEXT NOT NULL,
1308
+ created_by_user_id TEXT REFERENCES users(id) ON DELETE SET NULL,
1309
+ UNIQUE(work_id, stored_sha256)
1310
+ );
1311
+ CREATE INDEX IF NOT EXISTS idx_attachments_storage_key ON attachments(storage_key);
1312
+
1313
+ CREATE TABLE IF NOT EXISTS attachment_references (
1314
+ attachment_id TEXT NOT NULL REFERENCES attachments(id) ON DELETE CASCADE,
1315
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1316
+ entity_type TEXT NOT NULL,
1317
+ entity_id TEXT NOT NULL,
1318
+ created_at TEXT NOT NULL,
1319
+ PRIMARY KEY(attachment_id, entity_type, entity_id)
1320
+ ) WITHOUT ROWID;
1321
+ CREATE INDEX IF NOT EXISTS idx_attachment_references_entity
1322
+ ON attachment_references(entity_type, entity_id);
1323
+
1324
+ CREATE TABLE IF NOT EXISTS character_profile_section_search (
1325
+ id INTEGER PRIMARY KEY,
1326
+ work_id TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE,
1327
+ character_id TEXT NOT NULL REFERENCES characters(id) ON DELETE CASCADE,
1328
+ section_id TEXT NOT NULL REFERENCES character_profile_sections(id) ON DELETE CASCADE,
1329
+ search_content TEXT NOT NULL,
1330
+ UNIQUE(section_id)
1331
+ );
1332
+ CREATE INDEX IF NOT EXISTS idx_character_profile_section_search_work
1333
+ ON character_profile_section_search(work_id, character_id, section_id);
1334
+ CREATE VIRTUAL TABLE IF NOT EXISTS character_profile_section_search_fts USING fts5(
1335
+ search_content,
1336
+ content='character_profile_section_search',
1337
+ content_rowid='id',
1338
+ tokenize='trigram'
1339
+ );
1340
+ CREATE TRIGGER IF NOT EXISTS character_profile_section_search_ai AFTER INSERT ON character_profile_section_search BEGIN
1341
+ INSERT INTO character_profile_section_search_fts(rowid, search_content) VALUES (new.id, new.search_content);
1342
+ END;
1343
+ CREATE TRIGGER IF NOT EXISTS character_profile_section_search_ad AFTER DELETE ON character_profile_section_search BEGIN
1344
+ INSERT INTO character_profile_section_search_fts(character_profile_section_search_fts, rowid, search_content)
1345
+ VALUES ('delete', old.id, old.search_content);
1346
+ END;
1347
+ CREATE TRIGGER IF NOT EXISTS character_profile_section_search_au AFTER UPDATE ON character_profile_section_search BEGIN
1348
+ INSERT INTO character_profile_section_search_fts(character_profile_section_search_fts, rowid, search_content)
1349
+ VALUES ('delete', old.id, old.search_content);
1350
+ INSERT INTO character_profile_section_search_fts(rowid, search_content) VALUES (new.id, new.search_content);
1351
+ END;
1352
+ CREATE TABLE IF NOT EXISTS character_profile_section_short_terms (
1353
+ search_id INTEGER NOT NULL REFERENCES character_profile_section_search(id) ON DELETE CASCADE,
1354
+ term TEXT NOT NULL,
1355
+ PRIMARY KEY(term, search_id)
1356
+ ) WITHOUT ROWID;
1357
+ `);
1358
+ const timestamp = new Date().toISOString();
1359
+ const characters = this.all("SELECT id, work_id, profile_json, created_at, updated_at FROM characters");
1360
+ for (const character of characters) {
1361
+ let profile = {};
1362
+ try {
1363
+ const parsed = JSON.parse(String(character.profile_json ?? "{}"));
1364
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed))
1365
+ profile = parsed;
1366
+ }
1367
+ catch {
1368
+ profile = {};
1369
+ }
1370
+ if (!Array.isArray(profile.sections))
1371
+ continue;
1372
+ for (const [index, candidate] of profile.sections.entries()) {
1373
+ if (!candidate || typeof candidate !== "object" || Array.isArray(candidate))
1374
+ continue;
1375
+ const section = candidate;
1376
+ const title = String(section.title ?? "").trim();
1377
+ const content = String(section.content ?? "").trim();
1378
+ if (!title || !content)
1379
+ continue;
1380
+ const sectionId = `characterSection_${String(character.id)}_${index + 1}`;
1381
+ const createdAt = String(character.created_at ?? timestamp);
1382
+ const updatedAt = String(character.updated_at ?? createdAt);
1383
+ this.run(`INSERT INTO character_profile_sections
1384
+ (id, work_id, character_id, section_type, title, content_markdown, summary, sort_order, created_at, updated_at)
1385
+ VALUES (?, ?, ?, 'custom', ?, ?, '', ?, ?, ?) ON CONFLICT(id) DO NOTHING`, sectionId, String(character.work_id), String(character.id), title, content, index, createdAt, updatedAt);
1386
+ const snapshot = JSON.stringify({ sectionType: "custom", title, contentMarkdown: content, summary: "", sortOrder: index, sourcePath: null, sourceHash: null });
1387
+ this.run(`INSERT INTO character_profile_section_versions
1388
+ (id, work_id, character_id, section_id, version_no, snapshot_json, source, change_note, created_at)
1389
+ VALUES (?, ?, ?, ?, 1, ?, 'migration', '迁移人物 Markdown 章节', ?) ON CONFLICT(section_id, version_no) DO NOTHING`, `characterSectionVersion_${String(character.id)}_${index + 1}`, String(character.work_id), String(character.id), sectionId, snapshot, updatedAt);
1390
+ const searchContent = normalizeDocumentSearchText(`${title}\n${content}`);
1391
+ const result = this.run(`INSERT INTO character_profile_section_search (work_id, character_id, section_id, search_content)
1392
+ VALUES (?, ?, ?, ?) ON CONFLICT(section_id) DO UPDATE SET search_content = excluded.search_content`, String(character.work_id), String(character.id), sectionId, searchContent);
1393
+ const searchRow = this.get("SELECT id FROM character_profile_section_search WHERE section_id = ?", sectionId);
1394
+ const searchId = Number(searchRow?.id ?? result.lastInsertRowid);
1395
+ this.run("DELETE FROM character_profile_section_short_terms WHERE search_id = ?", searchId);
1396
+ for (const term of documentShortSearchTerms(searchContent)) {
1397
+ this.run("INSERT INTO character_profile_section_short_terms (search_id, term) VALUES (?, ?)", searchId, term);
1398
+ }
1399
+ }
1400
+ }
1401
+ this.run("INSERT INTO schema_migrations (version, applied_at) VALUES (31, ?)", timestamp);
1402
+ });
1403
+ }
1404
+ if (!applied.has(32)) {
1405
+ this.transaction(() => {
1406
+ const columns = new Set(this.all("PRAGMA table_info(races)").map((row) => String(row.name)));
1407
+ if (!columns.has("parent_race_id")) {
1408
+ this.run("ALTER TABLE races ADD COLUMN parent_race_id TEXT REFERENCES races(id) ON DELETE RESTRICT");
1409
+ }
1410
+ this.run("CREATE INDEX IF NOT EXISTS idx_races_parent ON races(work_id, parent_race_id, name)");
1411
+ this.run("INSERT INTO schema_migrations (version, applied_at) VALUES (32, ?)", new Date().toISOString());
1412
+ });
1413
+ }
1414
+ if (!applied.has(33)) {
1415
+ this.transaction(() => {
1416
+ this.run(`UPDATE work_ai_settings
1417
+ SET agent_tools_json = CASE
1418
+ WHEN json_valid(agent_tools_json) THEN json_insert(agent_tools_json, '$[#]', 'read_character_sections')
1419
+ ELSE '["story_index","read_chapters","query_story_knowledge","grep","read_character_sections"]'
1420
+ END
1421
+ WHERE NOT json_valid(agent_tools_json)
1422
+ OR NOT EXISTS (SELECT 1 FROM json_each(agent_tools_json) WHERE value = 'read_character_sections')`);
1423
+ this.run("INSERT INTO schema_migrations (version, applied_at) VALUES (33, ?)", new Date().toISOString());
1424
+ });
1425
+ }
1208
1426
  }
1209
1427
  normalizeCharacterName(value) {
1210
1428
  return value.normalize("NFKC").trim().replace(/\s+/gu, " ").toLocaleLowerCase("zh-CN");
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}