@whispering233/ai-editor-db 0.0.32 → 0.0.36
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/dist/migrations/007_character_ability_panel.d.ts +5 -0
- package/dist/migrations/007_character_ability_panel.d.ts.map +1 -0
- package/dist/migrations/007_character_ability_panel.js +49 -0
- package/dist/migrations/007_character_ability_panel.js.map +1 -0
- package/dist/migrations/index.d.ts +2 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +8 -3
- package/dist/migrations/index.js.map +1 -1
- package/dist/queries/compute-state.d.ts +10 -8
- package/dist/queries/compute-state.d.ts.map +1 -1
- package/dist/queries/compute-state.js +111 -36
- package/dist/queries/compute-state.js.map +1 -1
- package/dist/queries/delta.d.ts +15 -0
- package/dist/queries/delta.d.ts.map +1 -1
- package/dist/queries/delta.js +38 -1
- package/dist/queries/delta.js.map +1 -1
- package/dist/queries/entity.d.ts +6 -4
- package/dist/queries/entity.d.ts.map +1 -1
- package/dist/queries/entity.js +31 -24
- package/dist/queries/entity.js.map +1 -1
- package/dist/queries/field-path.d.ts +17 -0
- package/dist/queries/field-path.d.ts.map +1 -0
- package/dist/queries/field-path.js +113 -0
- package/dist/queries/field-path.js.map +1 -0
- package/dist/queries/migration.d.ts +12 -5
- package/dist/queries/migration.d.ts.map +1 -1
- package/dist/queries/migration.js +67 -6
- package/dist/queries/migration.js.map +1 -1
- package/dist/queries/relation.d.ts +2 -1
- package/dist/queries/relation.d.ts.map +1 -1
- package/dist/queries/relation.js +6 -4
- package/dist/queries/relation.js.map +1 -1
- package/dist/schema.d.ts +3 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -1
- package/dist/schema.js.map +1 -1
- package/dist/storage/outline.d.ts +1 -1
- package/dist/storage/outline.js +1 -1
- package/package.json +2 -2
package/dist/queries/entity.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
// 时间约定:ISO 8601 应用层写入(nowIso),模块内不生成时间。
|
|
6
6
|
//
|
|
7
7
|
// 摘要字段提取:**行内解析**(SELECT 整行 → JSON.parse → JS 提取)——
|
|
8
|
-
// character → role/
|
|
8
|
+
// character → role/description/motivation/personality/ability_panel(2026-09:面板顶层分组名前 2)、
|
|
9
|
+
// setting → tags/description(M2)、location → type、hook → status/payoff_timing、
|
|
9
10
|
// event → description/tags;
|
|
10
11
|
// 取舍:json_extract 免全量 parse 但需按类型动态列,SQL 复杂化;MVP 数据量小,行内解析
|
|
11
12
|
// 与 better-sqlite3 字符串列一致(chat.ts 同款风格),数据量大后再优化。
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
// - data 等 JSON 列保持 text 模式:drizzle 行读出 string,写入 JSON.stringify,
|
|
26
27
|
// parseDataColumn 防御解析不动(坏行返回 {},.2 验证)
|
|
27
28
|
// 事务沿用 withTransaction(native db.transaction),连接级共享已验证(15.2 验证记录①)。
|
|
28
|
-
import { ENTITY_TYPES, generateEntityId } from "@whispering233/ai-editor-shared";
|
|
29
|
+
import { ENTITY_TYPES, generateEntityId, panelTopLevelNames } from "@whispering233/ai-editor-shared";
|
|
29
30
|
import { and, asc, count, desc, eq, inArray, isNull, like, or, sql } from "drizzle-orm";
|
|
30
31
|
import { nowIso } from "../storage/atomic.js";
|
|
31
32
|
import { withTransaction } from "../connection.js";
|
|
@@ -42,10 +43,13 @@ function toSummary(row) {
|
|
|
42
43
|
case "character":
|
|
43
44
|
if (data.role !== undefined)
|
|
44
45
|
summary.role = data.role;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
//
|
|
48
|
-
//
|
|
46
|
+
// 2026-09(卡片 2.1):description 摘要(截断 100,同 setting 口径);status 已移除。
|
|
47
|
+
// 两行式行布局字段:动机摘要截断 40 字符(防 search_entities 工具上下文膨胀)
|
|
48
|
+
// + 性格前 2 个 + 能力 = **面板顶层分组名**前 2 个(如「火系」「水系」——
|
|
49
|
+
// 叶子名多是「等级/熟练度」这类重复词,按叶子计数无意义)
|
|
50
|
+
if (typeof data.description === "string" && data.description !== "") {
|
|
51
|
+
summary.description = data.description.slice(0, 100);
|
|
52
|
+
}
|
|
49
53
|
if (typeof data.motivation === "string" && data.motivation !== "") {
|
|
50
54
|
summary.motivation = data.motivation.slice(0, 40);
|
|
51
55
|
}
|
|
@@ -54,11 +58,10 @@ function toSummary(row) {
|
|
|
54
58
|
.filter((t) => typeof t === "string" && t !== "")
|
|
55
59
|
.slice(0, 2);
|
|
56
60
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
61
|
+
// 读端口径:面板结构宽校验(可能脏)→ 必过 parse(panelTopLevelNames 内部自动规范化)
|
|
62
|
+
const panelGroups = panelTopLevelNames(data.ability_panel);
|
|
63
|
+
if (panelGroups.length > 0)
|
|
64
|
+
summary.ability_panel = panelGroups.slice(0, 2);
|
|
62
65
|
break;
|
|
63
66
|
case "setting":
|
|
64
67
|
// K2(2026-08):分类由 data.tags 承接(与 event 同字段语义)——摘要暴露 tags(前 3 个)
|
|
@@ -687,17 +690,20 @@ function countBy(values) {
|
|
|
687
690
|
}
|
|
688
691
|
return out;
|
|
689
692
|
}
|
|
690
|
-
/**
|
|
691
|
-
|
|
693
|
+
/**
|
|
694
|
+
* 能力面板**顶层分组名**频率统计(取前 limit 名;按频率降序、同频名称序——排序口径与
|
|
695
|
+
* 旧 abilities 版一致,输出形状不变)。
|
|
696
|
+
*
|
|
697
|
+
* 读端口径:面板结构宽校验(可能脏)→ `panelTopLevelNames` 内部自动过 `parseAbilityPanel`
|
|
698
|
+
*(非数组 → 空面板、坏元素跳过),脏数据不抛错、不阻断统计;缺 `ability_panel` 的角色不计入。
|
|
699
|
+
* 计数口径:每个顶层节点出现一次计 1(与旧「数组元素逐个计数」同形;同层重名会重复计入,
|
|
700
|
+
* 属面板路径的已知歧义,不在此处去重)。
|
|
701
|
+
*/
|
|
702
|
+
function topAbilityPanelCounts(rows, limit) {
|
|
692
703
|
const freq = new Map();
|
|
693
704
|
for (const row of rows) {
|
|
694
|
-
const
|
|
695
|
-
|
|
696
|
-
continue;
|
|
697
|
-
for (const ability of abilities) {
|
|
698
|
-
if (typeof ability === "string" && ability !== "") {
|
|
699
|
-
freq.set(ability, (freq.get(ability) ?? 0) + 1);
|
|
700
|
-
}
|
|
705
|
+
for (const group of panelTopLevelNames(parseDataColumn(row.data).ability_panel)) {
|
|
706
|
+
freq.set(group, (freq.get(group) ?? 0) + 1);
|
|
701
707
|
}
|
|
702
708
|
}
|
|
703
709
|
return [...freq.entries()]
|
|
@@ -708,8 +714,8 @@ function topAbilityCounts(rows, limit) {
|
|
|
708
714
|
/**
|
|
709
715
|
* 实体聚合统计(S6.3 工具 get_entity_summary 下沉,「聚合分析」):
|
|
710
716
|
* 指定类型实体的总数 + 类型专属分布。仅统计非软删实体;
|
|
711
|
-
* 分布字段按类型稀疏出现:character→byRole/
|
|
712
|
-
* location→byType、hook→byStatus/byPayoffTiming;缺字段(data 未填)不报错、不计入。
|
|
717
|
+
* 分布字段按类型稀疏出现:character→byRole/topAbilities(能力面板顶层分组名)、
|
|
718
|
+
* setting→byTags、location→byType、hook→byStatus/byPayoffTiming;缺字段(data 未填)不报错、不计入。
|
|
713
719
|
*/
|
|
714
720
|
export function getEntitySummaryStats(db, type) {
|
|
715
721
|
const rows = queryDb(db)
|
|
@@ -722,8 +728,9 @@ export function getEntitySummaryStats(db, type) {
|
|
|
722
728
|
switch (type) {
|
|
723
729
|
case "character":
|
|
724
730
|
result.byRole = countBy(rows.map((r) => dataOf(r).role));
|
|
725
|
-
|
|
726
|
-
|
|
731
|
+
// 卡片 2.2:character 的 status 字段已移除 → 不再输出 byStatus(hook 侧 byStatus 不受影响);
|
|
732
|
+
// 能力分布改读面板顶层分组名(卡片 2.1 起 abilities 已迁为 ability_panel)
|
|
733
|
+
result.topAbilities = topAbilityPanelCounts(rows, 10);
|
|
727
734
|
break;
|
|
728
735
|
case "setting":
|
|
729
736
|
// K2(2026-08):分类由 data.tags 承接——分布统计标签(数组展平计数)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/queries/entity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/queries/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** 字段路径读取结果(供调用方一次性拿到「是否命中 + 当前值」) */
|
|
2
|
+
export interface FieldPathResolution {
|
|
3
|
+
found: boolean;
|
|
4
|
+
/** 命中时的当前值(叶子无 value 键 → undefined);未命中 → undefined */
|
|
5
|
+
value: unknown;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 读取字段路径当前值(**纯读**,不修改 state)。
|
|
9
|
+
* @returns `{ found, value }`;未命中 → `{ found: false, value: undefined }`
|
|
10
|
+
*/
|
|
11
|
+
export declare function readFieldPath(state: Record<string, unknown>, field: string): FieldPathResolution;
|
|
12
|
+
/**
|
|
13
|
+
* 按字段路径写入值。
|
|
14
|
+
* @returns 命中并写入 → true;未命中(中途段缺失 / 末段是分支)→ false(**不改动 state**)
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeFieldPath(state: Record<string, unknown>, field: string, value: unknown): boolean;
|
|
17
|
+
//# sourceMappingURL=field-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-path.d.ts","sourceRoot":"","sources":["../../src/queries/field-path.ts"],"names":[],"mappings":"AAwBA,sCAAsC;AACtC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;CAChB;AAgFD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAIhG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb,OAAO,CAKT"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// @whispering233/ai-editor-db 字段路径解析(卡片 2.4)——computeState 的「点分嵌套路径」定位。
|
|
2
|
+
//
|
|
3
|
+
// 契约(唯一事实来源 = docs/db/schema.md 的 delta_records「字段路径」+「面板路径解析口径」+「解析步骤」):
|
|
4
|
+
// ① **顶层精确键优先**:`Object.hasOwn(state, field)` 命中 → 按顶层字段处理
|
|
5
|
+
// (向后兼容含字面 `.` 的顶层键,如自定义字段名 `"a.b"`);
|
|
6
|
+
// **无分隔符的字段不要求键已存在**(顶层字段保持历史语义:`set` 可新建、`update` 读到 undefined);
|
|
7
|
+
// ② 未命中且字段含 `.` → 逐段下钻:**对象段按键**、**数组段按同层 `name` 匹配取先序第一个**;
|
|
8
|
+
// 含 `.` 的字段**逐段必须已存在**(含末段对象键)——「只有已存在的字段/叶子可被 Delta 改」;
|
|
9
|
+
// ③ **中途段不存在 → 未命中**(调用方按「跳过 + skipped/conflicts 标注」处理,不抛错);
|
|
10
|
+
// ④ `add`/`remove` 不走本模块(数组语义仅顶层字段,见 compute-state.ts)。
|
|
11
|
+
//
|
|
12
|
+
// 面板形状(`character.data.ability_panel`):`[{ name, value?, children? }]`——数组段匹配
|
|
13
|
+
// 节点 `name` 后,若还有后续段则继续在该节点的 `children` 里下钻;匹配到**分支**(非空 children)
|
|
14
|
+
// 且已到最后一段 → 未命中(分支不可赋值,交调用方标注冲突,不静默写坏结构)。
|
|
15
|
+
//
|
|
16
|
+
// 歧义(已知,见 docs/db/schema.md):名字含 `.` 或同层重名 → 都按先序第一个匹配;解析侧不拒绝。
|
|
17
|
+
/** 纯对象判定(排除 null / 数组) */
|
|
18
|
+
function isPlainObject(value) {
|
|
19
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
20
|
+
}
|
|
21
|
+
/** 数组段匹配:同层按 `name` 取**先序第一个**对象元素(宽校验:坏元素跳过) */
|
|
22
|
+
function matchNodeByName(nodes, name) {
|
|
23
|
+
for (const item of nodes) {
|
|
24
|
+
if (isPlainObject(item) && item.name === name)
|
|
25
|
+
return item;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/** 分支判定(非空 children 数组——与 shared `isAbilityBranch` 同口径) */
|
|
30
|
+
function hasChildren(node) {
|
|
31
|
+
const children = node.children;
|
|
32
|
+
return Array.isArray(children) && children.length > 0;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 定位字段路径(①~③;只解析,不读写)。
|
|
36
|
+
* @returns 定位结果;未命中(中途段缺失 / 末段命中分支 / 无点的非顶层字段)→ null
|
|
37
|
+
*/
|
|
38
|
+
function locateFieldPath(state, field) {
|
|
39
|
+
// ① 顶层精确键优先(先于任何点分解析)
|
|
40
|
+
if (Object.hasOwn(state, field))
|
|
41
|
+
return { kind: "key", container: state, key: field };
|
|
42
|
+
// 无分隔符的字段 = 顶层字段:**不要求键已存在**(`set` 可新建、`update` 读到 undefined——与历史语义一致);
|
|
43
|
+
// 含 `.` 的字段才走点分下钻(逐段必须已存在,缺失 → 未命中 → 冲突标注)
|
|
44
|
+
if (!field.includes("."))
|
|
45
|
+
return { kind: "key", container: state, key: field };
|
|
46
|
+
const segments = field.split(".");
|
|
47
|
+
let container = state;
|
|
48
|
+
for (let i = 0; i < segments.length; i++) {
|
|
49
|
+
const segment = segments[i];
|
|
50
|
+
const isLast = i === segments.length - 1;
|
|
51
|
+
if (Array.isArray(container)) {
|
|
52
|
+
// ② 数组段:按同层 name 匹配取先序第一个
|
|
53
|
+
const node = matchNodeByName(container, segment);
|
|
54
|
+
if (node === null)
|
|
55
|
+
return null;
|
|
56
|
+
if (isLast) {
|
|
57
|
+
// 末段命中分支 → 分支不可赋值(不写坏结构,交调用方标注冲突)
|
|
58
|
+
return hasChildren(node) ? null : { kind: "node-value", node };
|
|
59
|
+
}
|
|
60
|
+
// 非末段:继续在该节点的 children 里下钻(叶子节点无 children → 路径不可达)
|
|
61
|
+
if (!hasChildren(node))
|
|
62
|
+
return null;
|
|
63
|
+
container = node.children;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (isPlainObject(container)) {
|
|
67
|
+
// ② 对象段:按键(末段同样要求键已存在——「只有已存在的字段可被 Delta 改」)
|
|
68
|
+
if (!Object.hasOwn(container, segment))
|
|
69
|
+
return null;
|
|
70
|
+
if (isLast)
|
|
71
|
+
return { kind: "key", container, key: segment };
|
|
72
|
+
container = container[segment];
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// 中途段落在标量上(string/number/null/undefined)→ 不可达
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return null; // 防御:循环内必返回(保留以满足穷尽性检查)
|
|
79
|
+
}
|
|
80
|
+
/** 读定位结果当前值 */
|
|
81
|
+
function readLocated(location) {
|
|
82
|
+
return location.kind === "key" ? location.container[location.key] : location.node.value;
|
|
83
|
+
}
|
|
84
|
+
/** 写定位结果当前值(顶层键 / 对象键 / 叶子 value) */
|
|
85
|
+
function writeLocated(location, value) {
|
|
86
|
+
if (location.kind === "key") {
|
|
87
|
+
location.container[location.key] = value;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
location.node.value = value;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 读取字段路径当前值(**纯读**,不修改 state)。
|
|
94
|
+
* @returns `{ found, value }`;未命中 → `{ found: false, value: undefined }`
|
|
95
|
+
*/
|
|
96
|
+
export function readFieldPath(state, field) {
|
|
97
|
+
const location = locateFieldPath(state, field);
|
|
98
|
+
if (location === null)
|
|
99
|
+
return { found: false, value: undefined };
|
|
100
|
+
return { found: true, value: readLocated(location) };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 按字段路径写入值。
|
|
104
|
+
* @returns 命中并写入 → true;未命中(中途段缺失 / 末段是分支)→ false(**不改动 state**)
|
|
105
|
+
*/
|
|
106
|
+
export function writeFieldPath(state, field, value) {
|
|
107
|
+
const location = locateFieldPath(state, field);
|
|
108
|
+
if (location === null)
|
|
109
|
+
return false;
|
|
110
|
+
writeLocated(location, value);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=field-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-path.js","sourceRoot":"","sources":["../../src/queries/field-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,12 @@ import { type Db } from "../connection.js";
|
|
|
2
2
|
import { type Migration } from "../migrations/index.js";
|
|
3
3
|
/** data.db 文件名(项目根目录,与 server middleware 的常量一致) */
|
|
4
4
|
export declare const DATA_DB_FILE_NAME = "data.db";
|
|
5
|
-
/** 删库重建的结果(供上层 open 流程提示客户端)
|
|
5
|
+
/** 删库重建的结果(供上层 open 流程提示客户端)
|
|
6
|
+
*
|
|
7
|
+
* 三种 `rebuilt: false` 形态:版本匹配(`migrated` 缺省)、前向迁移(`migrated: true`)、
|
|
8
|
+
* **全新空库对齐版本号**(卡 2.9:`migrated` 缺省、`fromVersion` 缺省、`backups` 空)——
|
|
9
|
+
* 上层只在 `rebuilt`/`migrated` 为真时附提示字段,无需区分第三种。
|
|
10
|
+
*/
|
|
6
11
|
export interface MigrationResult {
|
|
7
12
|
/** 是否发生了删库重建 */
|
|
8
13
|
rebuilt: boolean;
|
|
@@ -46,10 +51,12 @@ export declare class SchemaVersionError extends Error {
|
|
|
46
51
|
* - user_version **> SCHEMA_VERSION(未来版本)**:**拒绝打开**——关闭连接并抛
|
|
47
52
|
* `SchemaVersionError`(提示升级程序),不触发任何重建/备份/写操作,数据原封不动。
|
|
48
53
|
* - user_version **< SCHEMA_VERSION(旧版本)**:
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
54
|
+
* - **全新空库**(`user_version===0` 且表结构 = 当前 DDL 且无数据行,卡 2.9)→
|
|
55
|
+
* 直接对齐版本号(不重建/不备份/**不碰 outline.json**)
|
|
56
|
+
* - **有迁移路径**(opts.migrations 中存在从当前版本到 SCHEMA_VERSION 的连续迁移链,
|
|
57
|
+
* 默认 MIGRATIONS)→ runMigrations 前向迁移(迁移前时间戳快照,数据保全完整)
|
|
58
|
+
* - **无迁移路径** → rebuildProjectStorage 删库重建兜底(迁移机制
|
|
59
|
+
* 覆盖不到的历史版本保留;备份 v{n}.bak 留档)
|
|
53
60
|
*
|
|
54
61
|
* @param opts.migrations 迁移集注入(默认 MIGRATIONS;测试注入假迁移)
|
|
55
62
|
* @throws SchemaVersionError 未来版本拒绝打开(连接已由本函数关闭,无句柄泄漏)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/queries/migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/queries/migration.ts"],"names":[],"mappings":"AAyBA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAc,KAAK,SAAS,EAAyB,MAAM,wBAAwB,CAAC;AAE3F,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,gBAAgB;IACf,OAAO,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACpC,SAAS,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACvE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC7B,gCAAgC;IAC/B,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,wCAAwC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,gBAAgB;IACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM7C;AAiED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;CAAO,GAC/C,aAAa,CA2Cf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,SAAS,SAAS,EAAe,GAC5C,OAAO,CAOT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,EAAE,EACN,IAAI,GAAE;IACJ,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA0BnD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAE1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CA2B5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhF"}
|
|
@@ -12,11 +12,17 @@
|
|
|
12
12
|
// - 旧 data.db 一并备份为 data.db.v{n}.bak;备份带版本号、不覆盖旧备份(多次重建各自留档)
|
|
13
13
|
// - project.json 的 schema_version 仅用于 JSON 结构判断(与 user_version 不同维度),重建不修改 project.json
|
|
14
14
|
// - 删库重建策略于 v0.1.0 发布终止——增量迁移机制替代
|
|
15
|
+
// - **全新空库不进重建分支(卡 2.9)**:书目录缺 data.db 时 openDatabase 会就地建出
|
|
16
|
+
// 空库(user_version=0),且 MIGRATIONS 无 0→1 条目——旧逻辑会走「无迁移路径→
|
|
17
|
+
// 删库重建」并把**有内容的 outline.json 重置为空树**。现以「表结构 = 当前 DDL
|
|
18
|
+
// 且无任何数据行」判据识别全新空库:只对齐版本号,不备份、不碰 outline.json;
|
|
19
|
+
// 表结构不符的旧库(含空库)仍走既有重建兜底。
|
|
15
20
|
// 触发语义(第 68-70 行):open 时检测,重建完成后向客户端提示。
|
|
21
|
+
import Database from "better-sqlite3";
|
|
16
22
|
import { copyFileSync, existsSync, rmSync } from "node:fs";
|
|
17
23
|
import { join } from "node:path";
|
|
18
24
|
import { closeDatabase, openDatabase } from "../connection.js";
|
|
19
|
-
import { getUserVersion, SCHEMA_VERSION, setUserVersion } from "../schema.js";
|
|
25
|
+
import { createTables, getUserVersion, SCHEMA_VERSION, setUserVersion } from "../schema.js";
|
|
20
26
|
import { OUTLINE_FILE_NAME, writeOutlineFile } from "../storage/outline.js";
|
|
21
27
|
import { MIGRATIONS } from "../migrations/index.js";
|
|
22
28
|
/** data.db 文件名(项目根目录,与 server middleware 的常量一致) */
|
|
@@ -44,6 +50,53 @@ export class SchemaVersionError extends Error {
|
|
|
44
50
|
this.current = current;
|
|
45
51
|
}
|
|
46
52
|
}
|
|
53
|
+
/** schema 文本规范化(比对用:空白折叠 + 小写) */
|
|
54
|
+
function normalizeSqlText(sql) {
|
|
55
|
+
return sql.replace(/\s+/g, " ").trim().toLowerCase();
|
|
56
|
+
}
|
|
57
|
+
/** 读取库内 schema 快照(排除 sqlite_* 内部对象;ORDER BY 保证两侧顺序一致) */
|
|
58
|
+
function readSchemaSnapshot(db) {
|
|
59
|
+
const rows = db
|
|
60
|
+
.prepare("SELECT type, name, sql FROM sqlite_master WHERE name NOT LIKE 'sqlite_%' ORDER BY type, name")
|
|
61
|
+
.all();
|
|
62
|
+
return {
|
|
63
|
+
objects: rows.map((r) => `${r.type}:${r.name}:${normalizeSqlText(r.sql ?? "")}`),
|
|
64
|
+
tables: rows.filter((r) => r.type === "table").map((r) => r.name),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** 当前 DDL 的 schema 快照:内存库现建一份(与 openDatabase 建出的空库同源) */
|
|
68
|
+
function currentSchemaSnapshot() {
|
|
69
|
+
const reference = new Database(":memory:");
|
|
70
|
+
try {
|
|
71
|
+
createTables(reference);
|
|
72
|
+
return readSchemaSnapshot(reference);
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
reference.close();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 「全新空库」判据:**表结构 = 当前 DDL** 且 **所有业务表无行**。
|
|
80
|
+
*
|
|
81
|
+
* 用途:`user_version===0` 且满足本判据时只需对齐版本号——缺 `data.db` 的书被
|
|
82
|
+
* 就地建出空库是主场景(此时走「无迁移路径 → 删库重建」会连带把有内容的
|
|
83
|
+
* `outline.json` 重置为空树)。
|
|
84
|
+
*
|
|
85
|
+
* **有意的保守边界**:
|
|
86
|
+
* - 表结构不符(旧 CHECK / 缺列 / 多余遗留表如 `chat_messages`)→ 不判为全新空库,
|
|
87
|
+
* 仍走重建兜底(否则会把旧结构当新库写版本号,后续写入撞 CHECK 失败);
|
|
88
|
+
* - 有数据行 → 不判为全新空库,保留既有「有数据但版本过低无路径 → 重建」语义。
|
|
89
|
+
*/
|
|
90
|
+
function isEmptyFreshLibrary(db) {
|
|
91
|
+
const current = currentSchemaSnapshot();
|
|
92
|
+
const actual = readSchemaSnapshot(db);
|
|
93
|
+
if (actual.objects.join("\n") !== current.objects.join("\n"))
|
|
94
|
+
return false;
|
|
95
|
+
return current.tables.every((table) => {
|
|
96
|
+
const row = db.prepare(`SELECT COUNT(*) AS c FROM "${table}"`).get();
|
|
97
|
+
return row.c === 0;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
47
100
|
/**
|
|
48
101
|
* schema 版本检测 + 版本对齐的高层入口(open 流程调用)。
|
|
49
102
|
*
|
|
@@ -51,10 +104,12 @@ export class SchemaVersionError extends Error {
|
|
|
51
104
|
* - user_version **> SCHEMA_VERSION(未来版本)**:**拒绝打开**——关闭连接并抛
|
|
52
105
|
* `SchemaVersionError`(提示升级程序),不触发任何重建/备份/写操作,数据原封不动。
|
|
53
106
|
* - user_version **< SCHEMA_VERSION(旧版本)**:
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
107
|
+
* - **全新空库**(`user_version===0` 且表结构 = 当前 DDL 且无数据行,卡 2.9)→
|
|
108
|
+
* 直接对齐版本号(不重建/不备份/**不碰 outline.json**)
|
|
109
|
+
* - **有迁移路径**(opts.migrations 中存在从当前版本到 SCHEMA_VERSION 的连续迁移链,
|
|
110
|
+
* 默认 MIGRATIONS)→ runMigrations 前向迁移(迁移前时间戳快照,数据保全完整)
|
|
111
|
+
* - **无迁移路径** → rebuildProjectStorage 删库重建兜底(迁移机制
|
|
112
|
+
* 覆盖不到的历史版本保留;备份 v{n}.bak 留档)
|
|
58
113
|
*
|
|
59
114
|
* @param opts.migrations 迁移集注入(默认 MIGRATIONS;测试注入假迁移)
|
|
60
115
|
* @throws SchemaVersionError 未来版本拒绝打开(连接已由本函数关闭,无句柄泄漏)
|
|
@@ -70,7 +125,13 @@ export function ensureSchemaCompatible(db, dir, dbPath, opts = {}) {
|
|
|
70
125
|
closeDatabase(db);
|
|
71
126
|
throw new SchemaVersionError(current, SCHEMA_VERSION);
|
|
72
127
|
}
|
|
73
|
-
//
|
|
128
|
+
// 旧版本——全新空库先短路(卡 2.9),否则有迁移路径 → 前向迁移,无路径 → 重建兜底
|
|
129
|
+
if (current === 0 && isEmptyFreshLibrary(db)) {
|
|
130
|
+
/* 缺 data.db 的书由 openDatabase 就地建出空库:无数据可迁、无数据可备——
|
|
131
|
+
* 只写版本号;**不重建、不备份、不碰 outline.json**(旧逻辑会把有内容的大纲重置为空树)*/
|
|
132
|
+
setUserVersion(db, SCHEMA_VERSION);
|
|
133
|
+
return { db, result: { rebuilt: false, toVersion: SCHEMA_VERSION, backups: [] } };
|
|
134
|
+
}
|
|
74
135
|
if (hasMigrationPath(current, SCHEMA_VERSION, opts.migrations ?? MIGRATIONS)) {
|
|
75
136
|
try {
|
|
76
137
|
const { snapshot } = runMigrations(db, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/queries/migration.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,uBAAuB;AACvB,iDAAiD;AACjD,2CAA2C;AAC3C,0DAA0D;AAC1D,6CAA6C;AAC7C,gEAAgE;AAChE,+CAA+C;AAC/C,4CAA4C;AAC5C,kEAAkE;AAClE,6DAA6D;AAC7D,wFAAwF;AACxF,kCAAkC;AAClC,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAW,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/queries/migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,8 @@ export declare function getRelation(db: Db, id: string, outlineDir: string): Rel
|
|
|
47
47
|
/**
|
|
48
48
|
* 创建关系(POST /api/v1/relation):
|
|
49
49
|
* - **判重**:同 (source_id, target_id, relation_type) 且未软删已存在 → RELATION_EXISTS(409 语义)
|
|
50
|
-
* - relation_type
|
|
50
|
+
* - relation_type **语法校验**(卡片 8.2:自由字符串 = 预定义 17 类 ∪ 自定义类型;
|
|
51
|
+
* `trim` 非空 / ≤ 32 / 禁控制字符 —— 与 REST schema、client 预校验同一 shared 纯函数)
|
|
51
52
|
* - **端点存在性**:实体端点查 entities(非软删)、大纲端点读 outline.json(存在且非软删)
|
|
52
53
|
* - 时间戳应用层 ISO
|
|
53
54
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/queries/relation.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAoC,mBAAmB,EAAkB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAQ1I;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,oBAAoB,GACpB,uBAAuB,GACvB,uBAAuB,GAEvB,eAAe,CAAC;AAEpB,qDAAqD;AACrD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBACrB,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM;CAKrD;AAED,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AAEpD,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkDD,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAa1E;AAaD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAChB,UAAU,EAAE,MAAM,GACjB,mBAAmB,CA4CrB;AA0FD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAatF;AAED
|
|
1
|
+
{"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/queries/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/relation.js
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
// 事务/纯 JS 逻辑(collectPaths/buildEndpointContext 的 outline 部分/防环)不变。
|
|
24
24
|
import { findOutlineNode, readOutlineFile } from "../storage/outline.js";
|
|
25
25
|
import { getEntity } from "./entity.js";
|
|
26
|
-
import {
|
|
26
|
+
import { generateId, relationTypeSyntaxError } from "@whispering233/ai-editor-shared";
|
|
27
27
|
import { and, eq, inArray, isNotNull, isNull } from "drizzle-orm";
|
|
28
28
|
import { alias } from "drizzle-orm/sqlite-core";
|
|
29
29
|
import { entities, relationRecords } from "../tables.js";
|
|
@@ -269,7 +269,8 @@ export function getRelation(db, id, outlineDir) {
|
|
|
269
269
|
/**
|
|
270
270
|
* 创建关系(POST /api/v1/relation):
|
|
271
271
|
* - **判重**:同 (source_id, target_id, relation_type) 且未软删已存在 → RELATION_EXISTS(409 语义)
|
|
272
|
-
* - relation_type
|
|
272
|
+
* - relation_type **语法校验**(卡片 8.2:自由字符串 = 预定义 17 类 ∪ 自定义类型;
|
|
273
|
+
* `trim` 非空 / ≤ 32 / 禁控制字符 —— 与 REST schema、client 预校验同一 shared 纯函数)
|
|
273
274
|
* - **端点存在性**:实体端点查 entities(非软删)、大纲端点读 outline.json(存在且非软删)
|
|
274
275
|
* - 时间戳应用层 ISO
|
|
275
276
|
*
|
|
@@ -277,8 +278,9 @@ export function getRelation(db, id, outlineDir) {
|
|
|
277
278
|
* @throws RelationError RELATION_EXISTS / ENDPOINT_NOT_FOUND / INVALID_RELATION_TYPE
|
|
278
279
|
*/
|
|
279
280
|
export function createRelation(db, input, outlineDir) {
|
|
280
|
-
|
|
281
|
-
|
|
281
|
+
const relationTypeError = relationTypeSyntaxError(input.relationType);
|
|
282
|
+
if (relationTypeError !== null) {
|
|
283
|
+
throw new RelationError("INVALID_RELATION_TYPE", `非法关系类型(${relationTypeError}): ${input.relationType}`);
|
|
282
284
|
}
|
|
283
285
|
// 端点存在性(软删端点不可建立新关系)
|
|
284
286
|
assertEndpointExists(db, outlineDir, input.sourceType, input.sourceId);
|