@whispering233/ai-editor-db 0.0.21 → 0.0.26
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/connection.js +2 -2
- package/dist/connection.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/002_event_timeline.js +1 -1
- package/dist/migrations/002_event_timeline.js.map +1 -1
- package/dist/migrations/003_timepoint.js +8 -8
- package/dist/migrations/003_timepoint.js.map +1 -1
- package/dist/migrations/004_setting_tags.js +2 -2
- package/dist/migrations/004_setting_tags.js.map +1 -1
- package/dist/migrations/005_reference.js +2 -2
- package/dist/migrations/005_reference.js.map +1 -1
- package/dist/migrations/index.d.ts +2 -2
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +7 -7
- package/dist/migrations/index.js.map +1 -1
- package/dist/queries/chat.d.ts +20 -20
- package/dist/queries/chat.d.ts.map +1 -1
- package/dist/queries/chat.js +105 -59
- package/dist/queries/chat.js.map +1 -1
- package/dist/queries/compute-state.d.ts +9 -9
- package/dist/queries/compute-state.d.ts.map +1 -1
- package/dist/queries/compute-state.js +22 -28
- package/dist/queries/compute-state.js.map +1 -1
- package/dist/queries/delta.d.ts +21 -21
- package/dist/queries/delta.d.ts.map +1 -1
- package/dist/queries/delta.js +110 -63
- package/dist/queries/delta.js.map +1 -1
- package/dist/queries/entity.d.ts +50 -46
- package/dist/queries/entity.d.ts.map +1 -1
- package/dist/queries/entity.js +226 -137
- package/dist/queries/entity.js.map +1 -1
- package/dist/queries/migration.d.ts +31 -31
- package/dist/queries/migration.d.ts.map +1 -1
- package/dist/queries/migration.js +43 -44
- package/dist/queries/migration.js.map +1 -1
- package/dist/queries/outline-ops.d.ts +22 -22
- package/dist/queries/outline-ops.d.ts.map +1 -1
- package/dist/queries/outline-ops.js +35 -42
- package/dist/queries/outline-ops.js.map +1 -1
- package/dist/queries/relation.d.ts +18 -18
- package/dist/queries/relation.d.ts.map +1 -1
- package/dist/queries/relation.js +115 -84
- package/dist/queries/relation.js.map +1 -1
- package/dist/queries/trash.d.ts +10 -10
- package/dist/queries/trash.d.ts.map +1 -1
- package/dist/queries/trash.js +75 -48
- package/dist/queries/trash.js.map +1 -1
- package/dist/query-db.d.ts +5 -0
- package/dist/query-db.d.ts.map +1 -0
- package/dist/query-db.js +22 -0
- package/dist/query-db.js.map +1 -0
- package/dist/schema.d.ts +8 -20
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +13 -85
- package/dist/schema.js.map +1 -1
- package/dist/storage/atomic.d.ts +8 -8
- package/dist/storage/atomic.d.ts.map +1 -1
- package/dist/storage/atomic.js +10 -11
- package/dist/storage/atomic.js.map +1 -1
- package/dist/storage/outline.d.ts +14 -14
- package/dist/storage/outline.d.ts.map +1 -1
- package/dist/storage/outline.js +17 -18
- package/dist/storage/outline.js.map +1 -1
- package/dist/storage/project.d.ts +11 -11
- package/dist/storage/project.d.ts.map +1 -1
- package/dist/storage/project.js +17 -18
- package/dist/storage/project.js.map +1 -1
- package/dist/tables.d.ts +718 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +141 -0
- package/dist/tables.js.map +1 -0
- package/package.json +3 -2
package/dist/queries/relation.js
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
// @whispering233/ai-editor-db 关系管理(S3.2):查询(k 跳遍历)/ 创建(判重)/ 物理删除
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// 决策 10(plot_edge 剧情连线同规则处理)。
|
|
3
|
+
// 第 304-391 行(关系端点)、(通用关系表)、
|
|
4
|
+
// (关系可见性联动端点状态:任一端点软删即不可见;手动删关系 = 物理删)、
|
|
5
|
+
// (plot_edge 剧情连线同规则处理)。
|
|
7
6
|
//
|
|
8
|
-
//
|
|
7
|
+
// 可见性过滤实现:
|
|
9
8
|
// - SQL 层:关系自身 deleted_at IS NULL + 各过滤条件
|
|
10
9
|
// - JS 层(统一处理两端点):实体端点查 entities 软删集合(一次 IN 查询);
|
|
11
|
-
//
|
|
10
|
+
// 大纲端点读 outline.json(readOutlineFile 收集 deleted 节点 id 集合)
|
|
12
11
|
// - name 联表填充同路径:实体查 entities.name、大纲节点用 outline.json title
|
|
13
12
|
//
|
|
14
13
|
// 级联软删:S3.1 的 softDeleteEntity 已内联 relation_records 级联 UPDATE(source_id/target_id
|
|
15
14
|
// 命中即标 deleted_at)——本卡不重复实现,注释确认。
|
|
15
|
+
//
|
|
16
|
+
// 批次十五(15.5 卡 4):**全部查询经 queryDb 走 drizzle 构建器**(混合风格 4A)。
|
|
17
|
+
// 语义逐句对照旧实现(git show 52c7c13^:packages/db/src/queries/relation.ts):
|
|
18
|
+
// - deleted_at IS NULL ↔ isNull;deleted_at IS NOT NULL ↔ isNotNull;IN 占位符 ↔ inArray;
|
|
19
|
+
// 动态 where 拼接 ↔ and(...)(SQL[]);ORDER BY r.created_at ↔ orderBy(relationRecords.created_at)
|
|
20
|
+
// - listSettingHierarchyEdges 的同表双 JOIN(s/t 别名,均 INNER + deleted_at IS NULL)
|
|
21
|
+
// ↔ drizzle alias(entities) 两次 innerJoin(同表两次需别名才可 join)
|
|
22
|
+
// - SELECT 1 判重 ↔ select({ id }) 存在性(语义等同:有行即重复)
|
|
23
|
+
// 事务/纯 JS 逻辑(collectPaths/buildEndpointContext 的 outline 部分/防环)不变。
|
|
16
24
|
import { findOutlineNode, readOutlineFile } from "../storage/outline.js";
|
|
17
25
|
import { getEntity } from "./entity.js";
|
|
18
26
|
import { RELATION_TYPES, generateId } from "@whispering233/ai-editor-shared";
|
|
27
|
+
import { and, eq, inArray, isNotNull, isNull } from "drizzle-orm";
|
|
28
|
+
import { alias } from "drizzle-orm/sqlite-core";
|
|
29
|
+
import { entities, relationRecords } from "../tables.js";
|
|
19
30
|
import { nowIso } from "../storage/atomic.js";
|
|
31
|
+
import { queryDb } from "../query-db.js";
|
|
20
32
|
/** 关系操作错误(带 code,与 OutlineError 同风格;路由层 catch 映射) */
|
|
21
33
|
export class RelationError extends Error {
|
|
22
34
|
code;
|
|
@@ -26,10 +38,10 @@ export class RelationError extends Error {
|
|
|
26
38
|
this.code = code;
|
|
27
39
|
}
|
|
28
40
|
}
|
|
29
|
-
/** 大纲端点 id(relation_records
|
|
41
|
+
/** 大纲端点 id(relation_records 端点类型约定,) */
|
|
30
42
|
export const OUTLINE_ENDPOINT_TYPE = "outline_node";
|
|
31
|
-
/** 实体端点类型集合(entities 表 type 列;含 event 时间轴事件——occurs_in
|
|
32
|
-
*
|
|
43
|
+
/** 实体端点类型集合(entities 表 type 列;含 event 时间轴事件——occurs_in 端点校验,;
|
|
44
|
+
* 含 timepoint 时间标签点——occurs_at 端点校验,G2) */
|
|
33
45
|
const ENTITY_ENDPOINT_TYPES = ["character", "setting", "location", "hook", "event", "timepoint"];
|
|
34
46
|
/**
|
|
35
47
|
* 构建可见性上下文:一次性收集两端点的软删集合与名称映射——
|
|
@@ -40,17 +52,17 @@ function buildEndpointContext(db, outlineDir, endpointIds) {
|
|
|
40
52
|
const names = new Map();
|
|
41
53
|
const entityIds = [...endpointIds].filter((id) => id !== "root"); // root 非实体端点(无实际关系)
|
|
42
54
|
if (entityIds.length > 0) {
|
|
43
|
-
const
|
|
55
|
+
const q = queryDb(db);
|
|
44
56
|
// 软删实体集合
|
|
45
|
-
const softRows =
|
|
46
|
-
.
|
|
47
|
-
.
|
|
57
|
+
const softRows = q
|
|
58
|
+
.select({ id: entities.id })
|
|
59
|
+
.from(entities)
|
|
60
|
+
.where(and(isNotNull(entities.deleted_at), inArray(entities.id, entityIds)))
|
|
61
|
+
.all();
|
|
48
62
|
for (const r of softRows)
|
|
49
63
|
softDeleted.add(r.id);
|
|
50
64
|
// 名称映射(含软删实体——名称填充不受可见性影响,过滤在另一层)
|
|
51
|
-
const nameRows =
|
|
52
|
-
.prepare(`SELECT id, name FROM entities WHERE id IN (${placeholders})`)
|
|
53
|
-
.all(...entityIds);
|
|
65
|
+
const nameRows = q.select({ id: entities.id, name: entities.name }).from(entities).where(inArray(entities.id, entityIds)).all();
|
|
54
66
|
for (const r of nameRows)
|
|
55
67
|
names.set(r.id, r.name);
|
|
56
68
|
}
|
|
@@ -103,12 +115,12 @@ function parseMetadata(value) {
|
|
|
103
115
|
}
|
|
104
116
|
}
|
|
105
117
|
/**
|
|
106
|
-
* 关系列表 + k 跳路径(GET /api/v1/relation
|
|
107
|
-
* 过滤条件组合(全部可选)+ 可见性过滤(关系自身未软删 +
|
|
118
|
+
* 关系列表 + k 跳路径(GET /api/v1/relation,):
|
|
119
|
+
* 过滤条件组合(全部可选)+ 可见性过滤(关系自身未软删 + 两端点均未软删)。
|
|
108
120
|
* depth=1:直接关系(relations,联表填充 sourceName/targetName)。
|
|
109
121
|
* depth=2/3:追加 k 跳路径(paths:nodes/edges 结构)——**BFS 图不受 source_id/target_id
|
|
110
122
|
* 过滤限制**(起点定位用 source_id,图遍历需要全量可见边,否则中间节点的出边被过滤截断);
|
|
111
|
-
* relations
|
|
123
|
+
* relations 数组仍按全部过滤条件返回(「追加路径信息」语义)。
|
|
112
124
|
*
|
|
113
125
|
* @param outlineDir 项目根(大纲端点软删/标题校验读 outline.json)
|
|
114
126
|
*/
|
|
@@ -152,35 +164,27 @@ export function listRelations(db, query, depth, outlineDir) {
|
|
|
152
164
|
}
|
|
153
165
|
/** 查询关系行:includeSourceTarget=false 时跳过 source_id/target_id 过滤(BFS 全图模式) */
|
|
154
166
|
function queryRelationRows(db, query, includeSourceTarget) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
if (query.relationType !== undefined) {
|
|
174
|
-
where.push("r.relation_type = ?");
|
|
175
|
-
params.push(query.relationType);
|
|
176
|
-
}
|
|
177
|
-
const rows = db
|
|
178
|
-
.prepare(`SELECT r.* FROM relation_records r WHERE ${where.join(" AND ")} ORDER BY r.created_at`)
|
|
179
|
-
.all(...params);
|
|
167
|
+
const conditions = [isNull(relationRecords.deleted_at)];
|
|
168
|
+
if (query.sourceType !== undefined)
|
|
169
|
+
conditions.push(eq(relationRecords.source_type, query.sourceType));
|
|
170
|
+
if (includeSourceTarget && query.sourceId !== undefined)
|
|
171
|
+
conditions.push(eq(relationRecords.source_id, query.sourceId));
|
|
172
|
+
if (query.targetType !== undefined)
|
|
173
|
+
conditions.push(eq(relationRecords.target_type, query.targetType));
|
|
174
|
+
if (includeSourceTarget && query.targetId !== undefined)
|
|
175
|
+
conditions.push(eq(relationRecords.target_id, query.targetId));
|
|
176
|
+
if (query.relationType !== undefined)
|
|
177
|
+
conditions.push(eq(relationRecords.relation_type, query.relationType));
|
|
178
|
+
const rows = queryDb(db)
|
|
179
|
+
.select()
|
|
180
|
+
.from(relationRecords)
|
|
181
|
+
.where(and(...conditions))
|
|
182
|
+
.orderBy(relationRecords.created_at)
|
|
183
|
+
.all();
|
|
180
184
|
return rows.map(rowToRelationRow);
|
|
181
185
|
}
|
|
182
186
|
/**
|
|
183
|
-
* k 跳路径收集(depth=2/3
|
|
187
|
+
* k 跳路径收集(depth=2/3,):
|
|
184
188
|
* 有向 BFS(沿 source→target 出边)——关系有方向,遍历沿建立方向;
|
|
185
189
|
* 起点 = query.sourceId(缺省时多起点:所有满足 sourceType 过滤的节点)。
|
|
186
190
|
* 防环:路径级 visited(同一条路径不重复经过节点;不同路径可共享节点)。
|
|
@@ -244,11 +248,15 @@ function collectPaths(visible, names, query, depth) {
|
|
|
244
248
|
return paths;
|
|
245
249
|
}
|
|
246
250
|
/**
|
|
247
|
-
*
|
|
251
|
+
* 单条关系(含可见性过滤);不存在/不可见返回 null。
|
|
248
252
|
* @param outlineDir 大纲端点软删校验读 outline.json
|
|
249
253
|
*/
|
|
250
254
|
export function getRelation(db, id, outlineDir) {
|
|
251
|
-
const row = db
|
|
255
|
+
const row = queryDb(db)
|
|
256
|
+
.select()
|
|
257
|
+
.from(relationRecords)
|
|
258
|
+
.where(and(eq(relationRecords.id, id), isNull(relationRecords.deleted_at)))
|
|
259
|
+
.get();
|
|
252
260
|
if (row === undefined)
|
|
253
261
|
return null;
|
|
254
262
|
const relation = rowToRelationRow(row);
|
|
@@ -259,9 +267,9 @@ export function getRelation(db, id, outlineDir) {
|
|
|
259
267
|
return relation;
|
|
260
268
|
}
|
|
261
269
|
/**
|
|
262
|
-
* 创建关系(POST /api/v1/relation
|
|
270
|
+
* 创建关系(POST /api/v1/relation,):
|
|
263
271
|
* - **判重**:同 (source_id, target_id, relation_type) 且未软删已存在 → RELATION_EXISTS(409 语义)
|
|
264
|
-
* - relation_type 白名单(
|
|
272
|
+
* - relation_type 白名单( 16 个预定义类型,含 plot_edge 剧情连线——同规则)
|
|
265
273
|
* - **端点存在性**:实体端点查 entities(非软删)、大纲端点读 outline.json(存在且非软删)
|
|
266
274
|
* - 时间戳应用层 ISO
|
|
267
275
|
*
|
|
@@ -272,18 +280,20 @@ export function createRelation(db, input, outlineDir) {
|
|
|
272
280
|
if (!RELATION_TYPES.includes(input.relationType)) {
|
|
273
281
|
throw new RelationError("INVALID_RELATION_TYPE", `非法关系类型: ${input.relationType}`);
|
|
274
282
|
}
|
|
275
|
-
//
|
|
283
|
+
// 端点存在性(软删端点不可建立新关系)
|
|
276
284
|
assertEndpointExists(db, outlineDir, input.sourceType, input.sourceId);
|
|
277
285
|
assertEndpointExists(db, outlineDir, input.targetType, input.targetId);
|
|
278
286
|
// 判重(同三元组未软删即视为已存在)
|
|
279
|
-
const dup = db
|
|
280
|
-
.
|
|
281
|
-
.
|
|
287
|
+
const dup = queryDb(db)
|
|
288
|
+
.select({ id: relationRecords.id })
|
|
289
|
+
.from(relationRecords)
|
|
290
|
+
.where(and(eq(relationRecords.source_id, input.sourceId), eq(relationRecords.target_id, input.targetId), eq(relationRecords.relation_type, input.relationType), isNull(relationRecords.deleted_at)))
|
|
291
|
+
.get();
|
|
282
292
|
if (dup !== undefined) {
|
|
283
293
|
throw new RelationError("RELATION_EXISTS", `关系已存在: ${input.sourceId} → ${input.targetId} (${input.relationType})`);
|
|
284
294
|
}
|
|
285
295
|
const now = nowIso();
|
|
286
|
-
// 关系 id:
|
|
296
|
+
// 关系 id: id 约定未列 rel- 前缀(运行时对象为 prop_/sess_/call_),
|
|
287
297
|
// 用 generateId("rel-") 保证唯一(前缀 + nanoid,与实体/节点同构)
|
|
288
298
|
const row = {
|
|
289
299
|
id: generateId("rel-"),
|
|
@@ -297,8 +307,21 @@ export function createRelation(db, input, outlineDir) {
|
|
|
297
307
|
updated_at: now,
|
|
298
308
|
deleted_at: null,
|
|
299
309
|
};
|
|
300
|
-
db
|
|
301
|
-
|
|
310
|
+
queryDb(db)
|
|
311
|
+
.insert(relationRecords)
|
|
312
|
+
.values({
|
|
313
|
+
id: row.id,
|
|
314
|
+
source_type: row.source_type,
|
|
315
|
+
source_id: row.source_id,
|
|
316
|
+
target_type: row.target_type,
|
|
317
|
+
target_id: row.target_id,
|
|
318
|
+
relation_type: row.relation_type,
|
|
319
|
+
// metadata 为可空 text 列(JSON 扩展元数据,JSON.stringify 序列化写入;null 直接写空)
|
|
320
|
+
metadata: row.metadata === null ? null : JSON.stringify(row.metadata),
|
|
321
|
+
created_at: row.created_at,
|
|
322
|
+
updated_at: row.updated_at,
|
|
323
|
+
})
|
|
324
|
+
.run();
|
|
302
325
|
return row;
|
|
303
326
|
}
|
|
304
327
|
/** 端点存在性校验(实体非软删 / 大纲节点存在非软删) */
|
|
@@ -323,25 +346,27 @@ function assertEndpointExists(db, outlineDir, type, id) {
|
|
|
323
346
|
throw new RelationError("ENDPOINT_NOT_FOUND", `非法端点类型: ${type}`);
|
|
324
347
|
}
|
|
325
348
|
/**
|
|
326
|
-
*
|
|
327
|
-
*
|
|
349
|
+
* 全量设定层级边(2026-08):读取所有 setting→setting 的 belongs_to 边
|
|
350
|
+
* (两端点均未软删——可见性联动,软删端点不参与层级)。供防环校验与设定树
|
|
328
351
|
* 构建使用:O(N) 一次读取构建内存邻接表,避免逐条查询(用户反馈 #1 性能方案:JSON 内
|
|
329
352
|
* parent_id 需全表扫 + parse,关系表走索引)。方向:childId → parentId(child belongs_to parent)。
|
|
330
353
|
*/
|
|
331
354
|
export function listSettingHierarchyEdges(db) {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
355
|
+
// 同表双 JOIN(source 实体 / target 实体均为非软删 setting)——IDs 的表对象在 FROM 中已占用,
|
|
356
|
+
// 二次 join 需 alias 区分(s/t,语义与旧实现 SELECT R JOIN entities s JOIN entities t 一致)
|
|
357
|
+
const sourceEntities = alias(entities, "s");
|
|
358
|
+
const targetEntities = alias(entities, "t");
|
|
359
|
+
const rows = queryDb(db)
|
|
360
|
+
.select({ childId: relationRecords.source_id, parentId: relationRecords.target_id })
|
|
361
|
+
.from(relationRecords)
|
|
362
|
+
.innerJoin(sourceEntities, and(eq(sourceEntities.id, relationRecords.source_id), isNull(sourceEntities.deleted_at)))
|
|
363
|
+
.innerJoin(targetEntities, and(eq(targetEntities.id, relationRecords.target_id), isNull(targetEntities.deleted_at)))
|
|
364
|
+
.where(and(eq(relationRecords.relation_type, "belongs_to"), eq(relationRecords.source_type, "setting"), eq(relationRecords.target_type, "setting"), isNull(relationRecords.deleted_at)))
|
|
340
365
|
.all();
|
|
341
|
-
return rows.map((r) => ({ childId: r.
|
|
366
|
+
return rows.map((r) => ({ childId: r.childId, parentId: r.parentId }));
|
|
342
367
|
}
|
|
343
368
|
/**
|
|
344
|
-
*
|
|
369
|
+
* 设定层级防环校验:判断建边 child → newParent 是否成环。
|
|
345
370
|
* 规则:newParent 沿父链(child→parent 边)向上走,经过 child 即成环(child 将成为自身祖先);
|
|
346
371
|
* 祖先链查询 O(深度);child 不在树中(新建场景)时必为 false;child 与 newParent 相同 = 自指环。
|
|
347
372
|
*/
|
|
@@ -362,25 +387,27 @@ export function wouldCreateSettingCycle(db, childId, newParentId) {
|
|
|
362
387
|
return false;
|
|
363
388
|
}
|
|
364
389
|
/**
|
|
365
|
-
* 物理删除关系(DELETE /api/v1/relation/:id
|
|
390
|
+
* 物理删除关系(DELETE /api/v1/relation/:id,,
|
|
366
391
|
* 手动删关系 = 物理删,不进回收站)。
|
|
367
392
|
* @returns 影响行数(0 = 不存在,路由层映射 404 RELATION_NOT_FOUND)
|
|
368
393
|
*/
|
|
369
394
|
export function deleteRelation(db, id) {
|
|
370
|
-
return db.
|
|
395
|
+
return queryDb(db).delete(relationRecords).where(eq(relationRecords.id, id)).run().changes;
|
|
371
396
|
}
|
|
372
397
|
/**
|
|
373
|
-
* 更新关系元数据(PUT /api/v1/relation/:id
|
|
398
|
+
* 更新关系元数据(PUT /api/v1/relation/:id,「PUT /relation/:id」):
|
|
374
399
|
* metadata **整体替换**(非浅合并)——画布连线标签编辑传 `{ label }`,清空传 `{}`;
|
|
375
400
|
* 同时刷新 updated_at(应用层 ISO,与全仓时间约定一致)。
|
|
376
|
-
* 不存在或已软删(deleted_at IS NOT NULL)→ null(404
|
|
401
|
+
* 不存在或已软删(deleted_at IS NOT NULL)→ null(404 语义,软删关系不可编辑)。
|
|
377
402
|
* 端点可见性不在此校验——编辑不改变三元组,与可见性无关。
|
|
378
403
|
* @returns 更新后的 { id };不存在/已软删 → null
|
|
379
404
|
*/
|
|
380
405
|
export function updateRelationMetadata(db, id, metadata, updatedAt) {
|
|
381
|
-
const result = db
|
|
382
|
-
.
|
|
383
|
-
.
|
|
406
|
+
const result = queryDb(db)
|
|
407
|
+
.update(relationRecords)
|
|
408
|
+
.set({ metadata: JSON.stringify(metadata), updated_at: updatedAt })
|
|
409
|
+
.where(and(eq(relationRecords.id, id), isNull(relationRecords.deleted_at)))
|
|
410
|
+
.run();
|
|
384
411
|
return result.changes === 0 ? null : { id };
|
|
385
412
|
}
|
|
386
413
|
/** 端点状态判定(实体查预构建批量 Map / 大纲节点查树;root 恒为正常——树根非关系端点但无害) */
|
|
@@ -397,18 +424,21 @@ function checkEndpointState(entityStates, tree, type, id) {
|
|
|
397
424
|
return "missing"; // 未知端点类型(脏数据)
|
|
398
425
|
}
|
|
399
426
|
/**
|
|
400
|
-
* 全量悬空关系诊断(S6.4 工具 find_orphan_elements
|
|
427
|
+
* 全量悬空关系诊断(S6.4 工具 find_orphan_elements 下沉,「孤立元素」):
|
|
401
428
|
* 关系自身未软删,但端点异常——**每端点一条**记录(同一关系两端点异常时出两条):
|
|
402
429
|
* - *_missing:端点已物理删除(实体 purge / 大纲节点 purge)——dangling_relations 侧
|
|
403
|
-
* - *_deleted:端点已软删但关系未级联软删(跨存储不一致的 relation
|
|
404
|
-
*
|
|
430
|
+
* - *_deleted:端点已软删但关系未级联软删(跨存储不一致的 relation 侧,
|
|
431
|
+
* 级联软删/启动一致性校验兜底的对象同源)——inconsistent_soft_deletes 侧
|
|
405
432
|
* 软删自身的关系(回收站对象)**不在此列**——由回收站管理,非悬空。
|
|
406
433
|
* 实体端点状态一次 IN 批量收集(避免逐行查询——buildEndpointContext 同款先例)。
|
|
407
434
|
* @param outlineDir 项目根(大纲端点存在性/软删校验读 outline.json)
|
|
408
435
|
*/
|
|
409
436
|
export function listDanglingRelations(db, outlineDir) {
|
|
410
|
-
const rows = db
|
|
411
|
-
.
|
|
437
|
+
const rows = queryDb(db)
|
|
438
|
+
.select()
|
|
439
|
+
.from(relationRecords)
|
|
440
|
+
.where(isNull(relationRecords.deleted_at))
|
|
441
|
+
.orderBy(relationRecords.created_at)
|
|
412
442
|
.all();
|
|
413
443
|
if (rows.length === 0)
|
|
414
444
|
return [];
|
|
@@ -424,10 +454,11 @@ export function listDanglingRelations(db, outlineDir) {
|
|
|
424
454
|
}
|
|
425
455
|
const entityStates = new Map();
|
|
426
456
|
if (entityIds.size > 0) {
|
|
427
|
-
const
|
|
428
|
-
|
|
429
|
-
.
|
|
430
|
-
.
|
|
457
|
+
const found = queryDb(db)
|
|
458
|
+
.select({ id: entities.id, deleted_at: entities.deleted_at })
|
|
459
|
+
.from(entities)
|
|
460
|
+
.where(inArray(entities.id, [...entityIds]))
|
|
461
|
+
.all();
|
|
431
462
|
const foundIds = new Set(found.map((f) => f.id));
|
|
432
463
|
for (const id of entityIds) {
|
|
433
464
|
if (!foundIds.has(id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/queries/relation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/queries/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/trash.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EntityType } from "@whispering233/ai-editor-shared";
|
|
2
2
|
import { type Db } from "../connection.js";
|
|
3
|
-
/** 回收站实体条目(GET /api/v1/trash entities
|
|
3
|
+
/** 回收站实体条目(GET /api/v1/trash entities 项,) */
|
|
4
4
|
export interface DeletedEntityInfo {
|
|
5
5
|
id: string;
|
|
6
6
|
type: EntityType;
|
|
@@ -10,16 +10,16 @@ export interface DeletedEntityInfo {
|
|
|
10
10
|
/**
|
|
11
11
|
* 回收站列表(实体侧,GET /api/v1/trash):entities 表 deleted_at IS NOT NULL,
|
|
12
12
|
* 按 deleted_at 倒序(回收站排序约定——ISO 字符串字典序即时间序,与 listDeletedNodes 一致)。
|
|
13
|
-
*
|
|
13
|
+
* 常规查询默认过滤软删,回收站 API 是访问软删对象的唯一入口。
|
|
14
14
|
*/
|
|
15
15
|
export declare function listDeletedEntities(db: Db): DeletedEntityInfo[];
|
|
16
16
|
/**
|
|
17
|
-
* 还原软删实体(POST /api/v1/trash/entity/:type/:id/restore
|
|
18
|
-
* - 自身:deleted_at 置 NULL + **updated_at
|
|
19
|
-
*
|
|
17
|
+
* 还原软删实体(POST /api/v1/trash/entity/:type/:id/restore,):
|
|
18
|
+
* - 自身:deleted_at 置 NULL + **updated_at 刷新**(与常规编辑一致,
|
|
19
|
+
* 保证 提案快照比对语义统一——还原后基于旧快照的提案必然 PROPOSAL_STALE)
|
|
20
20
|
* - 关联关系:relation_records(source_id = id **或** target_id = id)deleted_at 置 NULL——
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* **全部还原**,不因另一端仍软删而跳过(数据永不丢失;端点仍软删的
|
|
22
|
+
* 关系由查询层可见性过滤,端点还原后自动可见)
|
|
23
23
|
* - 关联 Delta:delta_records(target_id = id)同规则
|
|
24
24
|
* 单库事务(withTransaction,原子性);幂等:实体不存在、类型不匹配或未软删 → 返回 null
|
|
25
25
|
* 且无任何副作用(存在性检查限定 deleted_at IS NOT NULL,级联 UPDATE 均带
|
|
@@ -33,7 +33,7 @@ export declare function restoreEntity(db: Db, type: EntityType, id: string): {
|
|
|
33
33
|
restoredDeltas: number;
|
|
34
34
|
} | null;
|
|
35
35
|
/**
|
|
36
|
-
* 物理清除软删实体(DELETE /api/v1/trash/entity/:type/:id
|
|
36
|
+
* 物理清除软删实体(DELETE /api/v1/trash/entity/:type/:id,):
|
|
37
37
|
* 不可恢复——DELETE 实体本体 + 关联 relations(source_id = id 或 target_id = id)+
|
|
38
38
|
* deltas(target_id = id)。单库事务。
|
|
39
39
|
* 幂等:实体不存在或类型不匹配 → 返回 null 且无副作用。
|
|
@@ -45,7 +45,7 @@ export declare function restoreEntity(db: Db, type: EntityType, id: string): {
|
|
|
45
45
|
*/
|
|
46
46
|
export declare function purgeEntity(db: Db, type: EntityType, id: string): true | null;
|
|
47
47
|
/**
|
|
48
|
-
* 级联还原子树关联的 relation/delta
|
|
48
|
+
* 级联还原子树关联的 relation/delta(全部还原,不因另一端仍软删而跳过;
|
|
49
49
|
* 自 server/routes/outline.ts 下沉,参数与 SQL 语义不变):
|
|
50
50
|
* - relations:source 或 target 命中子树任一节点 → deleted_at 置 NULL(含 plot_edge 画布连线)
|
|
51
51
|
* - deltas:node_id 命中子树任一节点 → deleted_at 置 NULL(delta_records.node_id = 触发节点列)
|
|
@@ -56,7 +56,7 @@ export declare function cascadeRestore(db: Db, subtreeIds: string[]): {
|
|
|
56
56
|
deltas: number;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
|
-
* 物理清除子树关联的 relation/delta(purge
|
|
59
|
+
* 物理清除子树关联的 relation/delta(purge,物理清除且不可恢复;
|
|
60
60
|
* 自 server/routes/outline.ts 下沉,参数与 SQL 语义不变):
|
|
61
61
|
* - relations:source 或 target 命中子树任一节点 → 物理删除
|
|
62
62
|
* - deltas:node_id 命中子树任一节点 → 物理删除
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trash.d.ts","sourceRoot":"","sources":["../../src/queries/trash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trash.d.ts","sourceRoot":"","sources":["../../src/queries/trash.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,OAAO,EAAmB,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAG5D,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,iBAAiB,EAAE,CAU/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,MAAM,GACT;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyB9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAU7E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAelG;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAQ/D"}
|