@whispering233/ai-editor-shared 0.0.29 → 0.0.32
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/constants/backup.d.ts +1 -1
- package/dist/constants/backup.d.ts.map +1 -1
- package/dist/constants/backup.js +1 -1
- package/dist/constants/backup.js.map +1 -1
- package/dist/constants/entity.d.ts +4 -4
- package/dist/constants/entity.d.ts.map +1 -1
- package/dist/constants/entity.js +4 -4
- package/dist/constants/entity.js.map +1 -1
- package/dist/constants/hook.d.ts +3 -3
- package/dist/constants/hook.d.ts.map +1 -1
- package/dist/constants/hook.js +3 -3
- package/dist/constants/hook.js.map +1 -1
- package/dist/constants/outline.d.ts +1 -1
- package/dist/constants/outline.d.ts.map +1 -1
- package/dist/constants/outline.js +1 -1
- package/dist/constants/outline.js.map +1 -1
- package/dist/constants/tool.d.ts +1 -1
- package/dist/constants/tool.js +3 -3
- package/dist/constants/tool.js.map +1 -1
- package/dist/types/api.d.ts +60 -106
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +83 -112
- package/dist/types/api.js.map +1 -1
- package/dist/types/entity.d.ts +19 -19
- package/dist/types/entity.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/outline.d.ts +5 -5
- package/dist/types/outline.d.ts.map +1 -1
- package/dist/types/project.d.ts +3 -3
- package/dist/utils/backup.d.ts +2 -2
- package/dist/utils/backup.js +5 -5
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/format.d.ts +2 -7
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +2 -11
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/id.d.ts +5 -6
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +4 -5
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/mapping.d.ts +2 -2
- package/dist/utils/mapping.d.ts.map +1 -1
- package/dist/utils/mapping.js +6 -6
- package/dist/utils/mapping.js.map +1 -1
- package/dist/utils/reference-file.d.ts +1 -1
- package/dist/utils/reference-file.d.ts.map +1 -1
- package/dist/utils/reference-file.js +4 -4
- package/dist/utils/reference-file.js.map +1 -1
- package/package.json +1 -5
- package/dist/types/chat.d.ts +0 -42
- package/dist/types/chat.d.ts.map +0 -1
- package/dist/types/chat.js +0 -3
- package/dist/types/chat.js.map +0 -1
- package/dist/types/tool.d.ts +0 -356
- package/dist/types/tool.d.ts.map +0 -1
- package/dist/types/tool.js +0 -332
- package/dist/types/tool.js.map +0 -1
package/dist/types/entity.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** 实体类型(entities 表 type
|
|
1
|
+
/** 实体类型(entities 表 type 列;event 为时间轴事件;timepoint 为 G2 时间标签点,name=时间标签文本;reference 为参考资料) */
|
|
2
2
|
export type EntityType = "character" | "setting" | "location" | "hook" | "event" | "timepoint" | "reference";
|
|
3
3
|
/**
|
|
4
4
|
* 实体(API 响应形态,camelCase;对应 GET /api/v1/entity/:type/:id 详情)
|
|
@@ -15,7 +15,7 @@ export interface Entity {
|
|
|
15
15
|
deletedAt?: string | null;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* 实体列表摘要(GET /api/v1/entity/:type
|
|
18
|
+
* 实体列表摘要(GET /api/v1/entity/:type 列表项)
|
|
19
19
|
* summary 为从 data 提取的关键摘要字段(如 character → role/status、hook → status/payoff_timing)
|
|
20
20
|
*/
|
|
21
21
|
export interface EntitySummary {
|
|
@@ -23,36 +23,36 @@ export interface EntitySummary {
|
|
|
23
23
|
type: EntityType;
|
|
24
24
|
name: string;
|
|
25
25
|
summary: Record<string, unknown>;
|
|
26
|
-
/** 上级设定(M2,2026-08
|
|
26
|
+
/** 上级设定(M2,2026-08):**仅 setting 类型填充**——层级 = belongs_to 关系,
|
|
27
27
|
* 服务端列表响应时补查设定间层级边按 childId 映射附加;无父的设定不出现(稀疏语义) */
|
|
28
28
|
parentId?: string;
|
|
29
29
|
parentName?: string;
|
|
30
|
-
/** 手动排序位(2026-08
|
|
30
|
+
/** 手动排序位(2026-08):**仅 setting 类型填充**——同级组内线性序
|
|
31
31
|
* (同父/同根组内 0..n-1,entities.sort_order 列);NULL = 未参与手动排序(不出现) */
|
|
32
32
|
sortOrder?: number;
|
|
33
33
|
createdAt: string;
|
|
34
34
|
updatedAt: string;
|
|
35
35
|
}
|
|
36
|
-
/** entities 表行(存储形态 snake_case
|
|
36
|
+
/** entities 表行(存储形态 snake_case) */
|
|
37
37
|
export interface EntityRow {
|
|
38
38
|
id: string;
|
|
39
39
|
type: EntityType;
|
|
40
40
|
name: string;
|
|
41
41
|
/** JSON 列解析后的对象 */
|
|
42
42
|
data: Record<string, unknown>;
|
|
43
|
-
/** 线性序(
|
|
43
|
+
/** 线性序(G2):event/timepoint 类型内线性;setting 为同级组内线性序;
|
|
44
44
|
* NULL = 未参与排序 */
|
|
45
45
|
sort_order: number | null;
|
|
46
46
|
created_at: string;
|
|
47
47
|
updated_at: string;
|
|
48
48
|
deleted_at: string | null;
|
|
49
49
|
}
|
|
50
|
-
/** 关系(API 响应形态,GET /api/v1/relation depth=1
|
|
50
|
+
/** 关系(API 响应形态,GET /api/v1/relation depth=1) */
|
|
51
51
|
export interface RelationRecord {
|
|
52
52
|
id: string;
|
|
53
53
|
sourceType: string;
|
|
54
54
|
sourceId: string;
|
|
55
|
-
/**
|
|
55
|
+
/** 联表查询填充 */
|
|
56
56
|
sourceName?: string;
|
|
57
57
|
targetType: string;
|
|
58
58
|
targetId: string;
|
|
@@ -61,30 +61,30 @@ export interface RelationRecord {
|
|
|
61
61
|
metadata?: Record<string, unknown>;
|
|
62
62
|
createdAt: string;
|
|
63
63
|
}
|
|
64
|
-
/** 路径节点(depth>=2 时的 paths
|
|
64
|
+
/** 路径节点(depth>=2 时的 paths 结构) */
|
|
65
65
|
export interface RelationPathNode {
|
|
66
66
|
type: string;
|
|
67
67
|
id: string;
|
|
68
68
|
name: string;
|
|
69
69
|
}
|
|
70
|
-
/** 路径边(depth>=2 时的 paths
|
|
70
|
+
/** 路径边(depth>=2 时的 paths 结构) */
|
|
71
71
|
export interface RelationPathEdge {
|
|
72
72
|
from: string;
|
|
73
73
|
to: string;
|
|
74
74
|
relationType: string;
|
|
75
75
|
}
|
|
76
|
-
/** 一条 k 跳路径(depth>=2 时的 paths
|
|
76
|
+
/** 一条 k 跳路径(depth>=2 时的 paths 结构) */
|
|
77
77
|
export interface RelationPath {
|
|
78
78
|
nodes: RelationPathNode[];
|
|
79
79
|
edges: RelationPathEdge[];
|
|
80
80
|
}
|
|
81
|
-
/** 关系查询响应(GET /api/v1/relation
|
|
81
|
+
/** 关系查询响应(GET /api/v1/relation) */
|
|
82
82
|
export interface RelationQueryResult {
|
|
83
83
|
relations: RelationRecord[];
|
|
84
84
|
/** depth>=2 时追加路径信息 */
|
|
85
85
|
paths?: RelationPath[];
|
|
86
86
|
}
|
|
87
|
-
/** relation_records 表行(存储形态 snake_case
|
|
87
|
+
/** relation_records 表行(存储形态 snake_case) */
|
|
88
88
|
export interface RelationRow {
|
|
89
89
|
id: string;
|
|
90
90
|
/** 端点类型:实体 'character'|'setting'|'location'|'hook',大纲节点 'outline_node' */
|
|
@@ -100,10 +100,10 @@ export interface RelationRow {
|
|
|
100
100
|
/** 级联软删标记:仅实体/节点级联删除时写入;手动删关系 = 物理删 */
|
|
101
101
|
deleted_at: string | null;
|
|
102
102
|
}
|
|
103
|
-
/** 变更操作类型(POST /api/v1/delta changes[].op
|
|
103
|
+
/** 变更操作类型(POST /api/v1/delta changes[].op) */
|
|
104
104
|
export type DeltaOp = "set" | "update" | "add" | "remove";
|
|
105
105
|
/**
|
|
106
|
-
* 单条属性变更(POST /api/v1/delta Req changes
|
|
106
|
+
* 单条属性变更(POST /api/v1/delta Req changes 项)
|
|
107
107
|
* op 语义(2026-08 修订):set=直接替换;update=旧值→新值(写入端不校验 from,
|
|
108
108
|
* 冲突在 computeState 时以跳过+conflicts 呈现);add=按 value 向数组追加;
|
|
109
109
|
* remove=按值匹配从数组移除(不存在的值静默忽略)
|
|
@@ -118,7 +118,7 @@ export interface DeltaChange {
|
|
|
118
118
|
/** 值(op=add/remove 时使用) */
|
|
119
119
|
value?: string | number;
|
|
120
120
|
}
|
|
121
|
-
/** Delta 记录(API
|
|
121
|
+
/** Delta 记录(API 响应形态) */
|
|
122
122
|
export interface DeltaRecord {
|
|
123
123
|
id: string;
|
|
124
124
|
/** 触发变更的大纲节点 id */
|
|
@@ -133,7 +133,7 @@ export interface DeltaRecord {
|
|
|
133
133
|
order: number;
|
|
134
134
|
createdAt: string;
|
|
135
135
|
}
|
|
136
|
-
/** delta_records 表行(存储形态 snake_case
|
|
136
|
+
/** delta_records 表行(存储形态 snake_case) */
|
|
137
137
|
export interface DeltaRow {
|
|
138
138
|
id: string;
|
|
139
139
|
node_id: string;
|
|
@@ -159,7 +159,7 @@ export interface AppliedDeltaSkippedChange {
|
|
|
159
159
|
/** 应用时的实际值 */
|
|
160
160
|
actual: unknown;
|
|
161
161
|
}
|
|
162
|
-
/** 参与状态计算的一个 Delta(computeState
|
|
162
|
+
/** 参与状态计算的一个 Delta(computeState 响应项) */
|
|
163
163
|
export interface AppliedDelta {
|
|
164
164
|
nodeId: string;
|
|
165
165
|
description: string;
|
|
@@ -176,7 +176,7 @@ export interface DeltaConflict {
|
|
|
176
176
|
/** 应用时实际值 */
|
|
177
177
|
actual: unknown;
|
|
178
178
|
}
|
|
179
|
-
/** 状态计算结果(POST /api/v1/delta/compute
|
|
179
|
+
/** 状态计算结果(POST /api/v1/delta/compute 响应) */
|
|
180
180
|
export interface ComputeStateResult {
|
|
181
181
|
targetType: string;
|
|
182
182
|
targetId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/types/entity.ts"],"names":[],"mappings":"AAMA,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/types/entity.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAKA,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAKA,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,UAAU,CAAC"}
|
package/dist/types/outline.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** 大纲节点类型(含树根 "root") */
|
|
2
2
|
export type OutlineNodeType = "root" | "volume" | "chapter" | "scene";
|
|
3
|
-
/** 节点 metadata 统计(仅 with_metadata=true 时返回,跨 outline.json × data.db
|
|
3
|
+
/** 节点 metadata 统计(仅 with_metadata=true 时返回,跨 outline.json × data.db 联查) */
|
|
4
4
|
export interface OutlineNodeMetadata {
|
|
5
5
|
/** 关联的伏笔数 */
|
|
6
6
|
hookCount?: number;
|
|
@@ -9,7 +9,7 @@ export interface OutlineNodeMetadata {
|
|
|
9
9
|
/** 此节点触发的 Delta 数 */
|
|
10
10
|
deltaCount?: number;
|
|
11
11
|
}
|
|
12
|
-
/** 大纲节点公共字段(API 形态 camelCase
|
|
12
|
+
/** 大纲节点公共字段(API 形态 camelCase) */
|
|
13
13
|
export interface OutlineNodeBase {
|
|
14
14
|
id: string;
|
|
15
15
|
title: string;
|
|
@@ -23,7 +23,7 @@ export interface OutlineNodeBase {
|
|
|
23
23
|
data?: Record<string, unknown>;
|
|
24
24
|
/** 节点版本戳(提案快照比对) */
|
|
25
25
|
updatedAt: string;
|
|
26
|
-
/**
|
|
26
|
+
/** 软删标记:常规查询默认过滤软删节点;字段供回收站等管理视图与映射完整性(未列) */
|
|
27
27
|
deleted?: boolean;
|
|
28
28
|
/** 软删时间 */
|
|
29
29
|
deletedAt?: string;
|
|
@@ -45,7 +45,7 @@ export interface OutlineScene extends OutlineNodeBase {
|
|
|
45
45
|
}
|
|
46
46
|
/** 大纲节点(判别联合:type 区分层级,类型层面强制严格三层) */
|
|
47
47
|
export type OutlineNode = OutlineVolume | OutlineChapter | OutlineScene;
|
|
48
|
-
/** 完整大纲树(GET /api/v1/outline
|
|
48
|
+
/** 完整大纲树(GET /api/v1/outline 响应) */
|
|
49
49
|
export interface OutlineTree {
|
|
50
50
|
id: "root";
|
|
51
51
|
type: "root";
|
|
@@ -87,7 +87,7 @@ export interface OutlineFileScene extends OutlineFileNodeBase {
|
|
|
87
87
|
}
|
|
88
88
|
/** outline.json 节点(存储形态判别联合) */
|
|
89
89
|
export type OutlineFileNode = OutlineFileVolume | OutlineFileChapter | OutlineFileScene;
|
|
90
|
-
/** outline.json
|
|
90
|
+
/** outline.json 顶层 */
|
|
91
91
|
export interface OutlineFileTree {
|
|
92
92
|
id: "root";
|
|
93
93
|
type: "root";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/types/outline.ts"],"names":[],"mappings":"AAIA,yBAAyB;AACzB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/types/outline.ts"],"names":[],"mappings":"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"}
|
package/dist/types/project.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** 项目语言 */
|
|
2
2
|
export type ProjectLanguage = "zh" | "en";
|
|
3
3
|
/**
|
|
4
|
-
* 项目配置(API 响应形态,GET /api/v1/project/config
|
|
4
|
+
* 项目配置(API 响应形态,GET /api/v1/project/config)
|
|
5
5
|
* 注:`prompt` 字段已废弃——不再返回;项目规则唯一事实源改为项目目录
|
|
6
6
|
* (见 GET /api/v1/project/agents)
|
|
7
7
|
*/
|
|
@@ -19,7 +19,7 @@ export interface ProjectConfig {
|
|
|
19
19
|
updatedAt: string;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* project.json
|
|
22
|
+
* project.json 存储形态(内部 snake_case)
|
|
23
23
|
* 硬约束:DeepSeek API key 绝不写入本文件
|
|
24
24
|
*/
|
|
25
25
|
export interface ProjectFileConfig {
|
|
@@ -44,7 +44,7 @@ export interface ProjectFileConfig {
|
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* 项目规则文件 (项目规则唯一事实源,取代 project.json `prompt` 字段)
|
|
47
|
-
* GET /api/v1/project/agents
|
|
47
|
+
* GET /api/v1/project/agents 响应形态
|
|
48
48
|
*/
|
|
49
49
|
export interface ProjectAgents {
|
|
50
50
|
/** 文件内容(文件不存在 → 空串) */
|
package/dist/utils/backup.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface ParsedBackupFileName {
|
|
|
12
12
|
* 解析备份文件名 → { time, kind, name? }。
|
|
13
13
|
*
|
|
14
14
|
* 格式不符返回 null:非时间戳形状(含路径分隔符、`..`、空串、非数字、多后缀等)一律
|
|
15
|
-
* 拒绝——白名单校验语义(
|
|
15
|
+
* 拒绝——白名单校验语义(restore 流程第 1 步)。兼容三类:
|
|
16
16
|
* 新格式(带/不带 kind 段)/ 旧带名称无 kind 段 / 旧秒级格式(历史备份不迁移)。
|
|
17
17
|
* 数字合法但日期不存在(如 20261301、2 月 30 日)同样返回 null:Date 构造会对
|
|
18
18
|
* 越界值滚动进位(20261301 → 2027-01-01),回读比对不一致即拒绝。
|
|
@@ -37,7 +37,7 @@ export declare function formatBackupFileName(date: Date, opts?: {
|
|
|
37
37
|
/**
|
|
38
38
|
* 备份名称规则:
|
|
39
39
|
* - trim 后非空,长度 ≤ MAX_BACKUP_NAME_LENGTH(constants/backup.ts)
|
|
40
|
-
* - 禁路径分隔符(/
|
|
40
|
+
* - 禁路径分隔符(/ \)与保留字符(* ? " < > |)与控制字符
|
|
41
41
|
* - 禁纯点(. / ..)
|
|
42
42
|
* - 自动剥离尾部 .zip(用户输入习惯,如「定稿.zip」→「定稿」;**循环剥尽**——
|
|
43
43
|
* 「定稿.zip.zip」→「定稿」,避免双 .zip 文件名,oracle 审核 P2-2)
|
package/dist/utils/backup.js
CHANGED
|
@@ -15,9 +15,9 @@ import { MAX_BACKUP_NAME_LENGTH } from "../constants/backup.js";
|
|
|
15
15
|
* 无 → auto)、组 9 = 名称;名称部分 [^/\\]+ 拒绝路径分隔符(防路径穿越);写入侧
|
|
16
16
|
* sanitizeBackupName 严格限制字符集。
|
|
17
17
|
* 已知歧义(接受):旧「名称恰为单字母 a/m」的备份(如 <时间戳>-m.zip)按本正则
|
|
18
|
-
* 解析为 kind 标记(auto/manual
|
|
18
|
+
* 解析为 kind 标记(auto/manual 无名称),不按旧带名称格式回退。*/
|
|
19
19
|
const BACKUP_FILE_NAME_PATTERN_MS = /^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})(\d{3})(?:-(a|m)(?:-([^/\\]+?))?)?\.zip$/;
|
|
20
|
-
/** 旧带名称(无 kind
|
|
20
|
+
/** 旧带名称(无 kind 段,格式):<YYYYMMDD-HHmmssSSS>-<名称>.zip → 兼容为 manual + 名称 */
|
|
21
21
|
const BACKUP_FILE_NAME_PATTERN_LEGACY_NAMED = /^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})(\d{3})-([^/\\]+?)\.zip$/;
|
|
22
22
|
/** 旧格式(秒精度):仅解析兼容 → kind=auto */
|
|
23
23
|
const BACKUP_FILE_NAME_PATTERN_LEGACY = /^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})\.zip$/;
|
|
@@ -25,7 +25,7 @@ const BACKUP_FILE_NAME_PATTERN_LEGACY = /^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\
|
|
|
25
25
|
* 解析备份文件名 → { time, kind, name? }。
|
|
26
26
|
*
|
|
27
27
|
* 格式不符返回 null:非时间戳形状(含路径分隔符、`..`、空串、非数字、多后缀等)一律
|
|
28
|
-
* 拒绝——白名单校验语义(
|
|
28
|
+
* 拒绝——白名单校验语义(restore 流程第 1 步)。兼容三类:
|
|
29
29
|
* 新格式(带/不带 kind 段)/ 旧带名称无 kind 段 / 旧秒级格式(历史备份不迁移)。
|
|
30
30
|
* 数字合法但日期不存在(如 20261301、2 月 30 日)同样返回 null:Date 构造会对
|
|
31
31
|
* 越界值滚动进位(20261301 → 2027-01-01),回读比对不一致即拒绝。
|
|
@@ -70,7 +70,7 @@ export function parseBackupFileName(fileName) {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
else if (m[8] !== undefined) {
|
|
73
|
-
result.kind = "manual"; //
|
|
73
|
+
result.kind = "manual"; // 旧带名称(格式)→ 兼容为 manual
|
|
74
74
|
result.name = m[8];
|
|
75
75
|
}
|
|
76
76
|
return result;
|
|
@@ -101,7 +101,7 @@ export function formatBackupFileName(date, opts) {
|
|
|
101
101
|
/**
|
|
102
102
|
* 备份名称规则:
|
|
103
103
|
* - trim 后非空,长度 ≤ MAX_BACKUP_NAME_LENGTH(constants/backup.ts)
|
|
104
|
-
* - 禁路径分隔符(/
|
|
104
|
+
* - 禁路径分隔符(/ \)与保留字符(* ? " < > |)与控制字符
|
|
105
105
|
* - 禁纯点(. / ..)
|
|
106
106
|
* - 自动剥离尾部 .zip(用户输入习惯,如「定稿.zip」→「定稿」;**循环剥尽**——
|
|
107
107
|
* 「定稿.zip.zip」→「定稿」,避免双 .zip 文件名,oracle 审核 P2-2)
|
package/dist/utils/backup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;AAChD,EAAE;AACF,8DAA8D;AAC9D,sEAAsE;AACtE,yCAAyC;AACzC,4EAA4E;AAC5E,6CAA6C;AAC7C,sBAAsB;AACtB,iDAAiD;AACjD,6DAA6D;AAE7D,OAAO,EAAE,sBAAsB,EAAmB,MAAM,wBAAwB,CAAC;AAEjF;;;;
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/format.d.ts
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ISO 8601 时间戳 → 本地化 `YYYY-MM-DD HH:mm
|
|
2
|
+
* ISO 8601 时间戳 → 本地化 `YYYY-MM-DD HH:mm`(时间约定:统一 ISO 8601 字符串)
|
|
3
3
|
* 非法输入(含空串)原样返回,防御性处理
|
|
4
4
|
*/
|
|
5
5
|
export declare function formatTimestamp(iso: string): string;
|
|
6
6
|
/**
|
|
7
7
|
* 截断文本:返回总长(含省略号)不超过 maxLen 的字符串;未超长原样返回
|
|
8
|
-
* 用途:会话列表 lastMessage
|
|
8
|
+
* 用途:会话列表 lastMessage、长文本展示
|
|
9
9
|
* 边界:maxLen <= 0 返回空串;maxLen = 1 时返回单个省略号
|
|
10
10
|
*/
|
|
11
11
|
export declare function truncate(text: string, maxLen: number): string;
|
|
12
|
-
/**
|
|
13
|
-
* API key 掩码展示( settings apiKeyMasked 示例 `sk-****1234`:保留前 3 后 4)
|
|
14
|
-
* 过短 key(<= 7 字符,前后缀重叠)整体掩码为 "****";空串返回 "****"
|
|
15
|
-
*/
|
|
16
|
-
export declare function maskApiKey(key: string): string;
|
|
17
12
|
/**
|
|
18
13
|
* 相对时间(会话行/概览最近更新展示):刚刚 / n 分钟前 / n 小时前 / n 天前;
|
|
19
14
|
* ≥30 天回退绝对时间(formatTimestamp);非法输入(含空串)原样返回
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWtD"}
|
package/dist/utils/format.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// 文本格式化工具(纯函数,零 Node 依赖——client 浏览器打包安全)
|
|
2
2
|
/**
|
|
3
|
-
* ISO 8601 时间戳 → 本地化 `YYYY-MM-DD HH:mm
|
|
3
|
+
* ISO 8601 时间戳 → 本地化 `YYYY-MM-DD HH:mm`(时间约定:统一 ISO 8601 字符串)
|
|
4
4
|
* 非法输入(含空串)原样返回,防御性处理
|
|
5
5
|
*/
|
|
6
6
|
export function formatTimestamp(iso) {
|
|
@@ -12,7 +12,7 @@ export function formatTimestamp(iso) {
|
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* 截断文本:返回总长(含省略号)不超过 maxLen 的字符串;未超长原样返回
|
|
15
|
-
* 用途:会话列表 lastMessage
|
|
15
|
+
* 用途:会话列表 lastMessage、长文本展示
|
|
16
16
|
* 边界:maxLen <= 0 返回空串;maxLen = 1 时返回单个省略号
|
|
17
17
|
*/
|
|
18
18
|
export function truncate(text, maxLen) {
|
|
@@ -22,15 +22,6 @@ export function truncate(text, maxLen) {
|
|
|
22
22
|
return text;
|
|
23
23
|
return `${text.slice(0, maxLen - 1)}…`;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
26
|
-
* API key 掩码展示( settings apiKeyMasked 示例 `sk-****1234`:保留前 3 后 4)
|
|
27
|
-
* 过短 key(<= 7 字符,前后缀重叠)整体掩码为 "****";空串返回 "****"
|
|
28
|
-
*/
|
|
29
|
-
export function maskApiKey(key) {
|
|
30
|
-
if (key.length <= 7)
|
|
31
|
-
return "****";
|
|
32
|
-
return `${key.slice(0, 3)}****${key.slice(-4)}`;
|
|
33
|
-
}
|
|
34
25
|
/**
|
|
35
26
|
* 相对时间(会话行/概览最近更新展示):刚刚 / n 分钟前 / n 小时前 / n 天前;
|
|
36
27
|
* ≥30 天回退绝对时间(formatTimestamp);非法输入(含空串)原样返回
|
package/dist/utils/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACtI,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAc;IACnD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACzC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACtI,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAc;IACnD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;IACnE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,MAAM,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAC3C,IAAI,SAAS,GAAG,EAAE;QAAE,OAAO,GAAG,SAAS,MAAM,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAC5C,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,KAAK,CAAC;IAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/utils/id.d.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { EntityType } from "../types/entity.js";
|
|
2
2
|
import type { OutlineNodeType } from "../types/outline.js";
|
|
3
|
-
/** 实体类型 → id 前缀(
|
|
3
|
+
/** 实体类型 → id 前缀(id 约定;event 时间轴事件 ev-;timepoint 时间标签点 tp-,G2) */
|
|
4
4
|
export declare const ENTITY_ID_PREFIX: Record<EntityType, string>;
|
|
5
|
-
/** 大纲节点类型 → id 前缀(
|
|
5
|
+
/** 大纲节点类型 → id 前缀(id 约定;root 不生成 id) */
|
|
6
6
|
export declare const OUTLINE_NODE_ID_PREFIX: Record<Exclude<OutlineNodeType, "root">, string>;
|
|
7
|
-
/** 运行时对象 id
|
|
7
|
+
/** 运行时对象 id 前缀(提案 prop_/工具调用 call_,下划线分隔;会话 id 由 pi 生成,不在此列) */
|
|
8
8
|
export declare const RUNTIME_ID_PREFIX: {
|
|
9
9
|
readonly proposal: "prop_";
|
|
10
|
-
readonly session: "sess_";
|
|
11
10
|
readonly toolCall: "call_";
|
|
12
11
|
};
|
|
13
|
-
/** 运行时对象种类(prop_/
|
|
12
|
+
/** 运行时对象种类(prop_/call_) */
|
|
14
13
|
export type RuntimeIdKind = keyof typeof RUNTIME_ID_PREFIX;
|
|
15
14
|
/**
|
|
16
15
|
* 生成 `{prefix}{nanoid}` 形式 id(nanoid 默认 21 字符,URL 安全字母表)
|
|
@@ -23,6 +22,6 @@ export declare function generateEntityId(type: EntityType): string;
|
|
|
23
22
|
export declare function generateOutlineNodeId(type: Exclude<OutlineNodeType, "root">): string;
|
|
24
23
|
/** 生成项目 id(proj- 前缀,跨启动稳定) */
|
|
25
24
|
export declare function generateProjectId(): string;
|
|
26
|
-
/** 生成运行时对象 id(提案 prop_ /
|
|
25
|
+
/** 生成运行时对象 id(提案 prop_ / 工具调用 call_,不落盘或仅内存) */
|
|
27
26
|
export declare function generateRuntimeId(kind: RuntimeIdKind): string;
|
|
28
27
|
//# sourceMappingURL=id.d.ts.map
|
package/dist/utils/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAQvD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,CAInF,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,2BAA2B;AAC3B,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,MAAM,CAEpF;AAED,8BAA8B;AAC9B,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7D"}
|
package/dist/utils/id.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ID 生成工具
|
|
2
2
|
// nanoid 为环境无关包(浏览器可用),仅在本模块引入,无副作用
|
|
3
3
|
import { nanoid } from "nanoid";
|
|
4
|
-
/** 实体类型 → id 前缀(
|
|
4
|
+
/** 实体类型 → id 前缀(id 约定;event 时间轴事件 ev-;timepoint 时间标签点 tp-,G2) */
|
|
5
5
|
export const ENTITY_ID_PREFIX = {
|
|
6
6
|
character: "char-",
|
|
7
7
|
setting: "set-",
|
|
@@ -11,16 +11,15 @@ export const ENTITY_ID_PREFIX = {
|
|
|
11
11
|
timepoint: "tp-",
|
|
12
12
|
reference: "ref-", // 参考资料
|
|
13
13
|
};
|
|
14
|
-
/** 大纲节点类型 → id 前缀(
|
|
14
|
+
/** 大纲节点类型 → id 前缀(id 约定;root 不生成 id) */
|
|
15
15
|
export const OUTLINE_NODE_ID_PREFIX = {
|
|
16
16
|
volume: "vol-",
|
|
17
17
|
chapter: "ch-",
|
|
18
18
|
scene: "sc-",
|
|
19
19
|
};
|
|
20
|
-
/** 运行时对象 id
|
|
20
|
+
/** 运行时对象 id 前缀(提案 prop_/工具调用 call_,下划线分隔;会话 id 由 pi 生成,不在此列) */
|
|
21
21
|
export const RUNTIME_ID_PREFIX = {
|
|
22
22
|
proposal: "prop_",
|
|
23
|
-
session: "sess_",
|
|
24
23
|
toolCall: "call_",
|
|
25
24
|
};
|
|
26
25
|
/**
|
|
@@ -42,7 +41,7 @@ export function generateOutlineNodeId(type) {
|
|
|
42
41
|
export function generateProjectId() {
|
|
43
42
|
return generateId("proj-");
|
|
44
43
|
}
|
|
45
|
-
/** 生成运行时对象 id(提案 prop_ /
|
|
44
|
+
/** 生成运行时对象 id(提案 prop_ / 工具调用 call_,不落盘或仅内存) */
|
|
46
45
|
export function generateRuntimeId(kind) {
|
|
47
46
|
return generateId(RUNTIME_ID_PREFIX[kind]);
|
|
48
47
|
}
|
package/dist/utils/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,oCAAoC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,oCAAoC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,SAAS,EAAE,OAAO;IAClB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,MAAM,EAAE,OAAO;CAC3B,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAqD;IACtF,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,OAAO;CACT,CAAC;AAKX;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB,CAAC,IAAsC;IAC1E,OAAO,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/utils/mapping.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare function mapRowToEntity(row: EntityRow): Entity;
|
|
|
11
11
|
export declare function mapEntityToRow(entity: Entity): EntityRow;
|
|
12
12
|
/**
|
|
13
13
|
* RelationRow → RelationRecord(字段映射;metadata NULL → undefined)
|
|
14
|
-
* 注意:存储的 updated_at / deleted_at 在 API 形态中不暴露(
|
|
14
|
+
* 注意:存储的 updated_at / deleted_at 在 API 形态中不暴露(RelationRecord 仅 createdAt);
|
|
15
15
|
* sourceName/targetName 为服务端联表填充,Row 本身不含
|
|
16
16
|
*/
|
|
17
17
|
export declare function mapRowToRelation(row: RelationRow): RelationRecord;
|
|
@@ -22,7 +22,7 @@ export declare function mapOutlineFileToTree(file: OutlineFileTree): OutlineTree
|
|
|
22
22
|
/** OutlineTree → OutlineFileTree(updatedAt ↔ updated_at、schemaVersion ↔ schema_version) */
|
|
23
23
|
export declare function mapTreeToOutlineFile(tree: OutlineTree): OutlineFileTree;
|
|
24
24
|
/** ProjectFileConfig → ProjectConfig(schema_version → schemaVersion、current_position → currentPosition、backup 频率读侧兜底;
|
|
25
|
-
* `prompt`
|
|
25
|
+
* `prompt` 已废弃不再映射——项目规则唯一事实源改为项目目录) */
|
|
26
26
|
export declare function mapProjectFileToConfig(file: ProjectFileConfig): ProjectConfig;
|
|
27
27
|
/** ProjectConfig → ProjectFileConfig(全量映射:backup_frequency_minutes 恒写入——本函数非 patch 路径,写全对象即显式;
|
|
28
28
|
* `prompt` 已废弃不再写出——新写入不再产生该字段) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/utils/mapping.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,KAAK,EAKV,eAAe,EAIf,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAID,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAUrD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAYxD;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAWjE;AAID,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAWxD;AA4DD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAQvE;AA0DD,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAOvE;AAeD;
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/utils/mapping.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,KAAK,EAKV,eAAe,EAIf,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAID,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAUrD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAYxD;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAWjE;AAID,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAWxD;AA4DD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAQvE;AA0DD,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAOvE;AAeD;wCACwC;AACxC,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAW7E;AAED;mCACmC;AACnC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAW/E"}
|
package/dist/utils/mapping.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// 文件字段 ↔ API
|
|
2
|
-
//
|
|
1
|
+
// 文件字段 ↔ API 字段映射(通用约定指定位置:@whispering233/ai-editor-shared/utils)
|
|
2
|
+
// 约定:请求体/查询参数 snake_case,响应体 camelCase,
|
|
3
3
|
// outline.json / project.json / data.db 行内部 snake_case;
|
|
4
4
|
// **嵌套 data 对象内部字段原样透传**(如 expected_payoff 保持 snake_case,2026-08 修订),
|
|
5
5
|
// camelCase 映射仅应用于 API 顶层字段。
|
|
@@ -43,7 +43,7 @@ export function mapEntityToRow(entity) {
|
|
|
43
43
|
// ============ 关系(relation_records 表 ↔ API) ============
|
|
44
44
|
/**
|
|
45
45
|
* RelationRow → RelationRecord(字段映射;metadata NULL → undefined)
|
|
46
|
-
* 注意:存储的 updated_at / deleted_at 在 API 形态中不暴露(
|
|
46
|
+
* 注意:存储的 updated_at / deleted_at 在 API 形态中不暴露(RelationRecord 仅 createdAt);
|
|
47
47
|
* sourceName/targetName 为服务端联表填充,Row 本身不含
|
|
48
48
|
*/
|
|
49
49
|
export function mapRowToRelation(row) {
|
|
@@ -131,7 +131,7 @@ export function mapOutlineFileToTree(file) {
|
|
|
131
131
|
id: file.id,
|
|
132
132
|
type: "root",
|
|
133
133
|
schemaVersion: file.schema_version,
|
|
134
|
-
// root.children 为 (volume|chapter)
|
|
134
|
+
// root.children 为 (volume|chapter) 联合(允许直挂章),按 type 分派映射
|
|
135
135
|
children: file.children.map(mapFileNodeToNode),
|
|
136
136
|
};
|
|
137
137
|
}
|
|
@@ -198,7 +198,7 @@ export function mapTreeToOutlineFile(tree) {
|
|
|
198
198
|
}
|
|
199
199
|
// ============ 项目(project.json ↔ API) ============
|
|
200
200
|
/**
|
|
201
|
-
*
|
|
201
|
+
* 备份频率读侧语义(/ project.json,宽松读取):
|
|
202
202
|
* 字段缺失 → 缺省 10(新项目默认开启);显式 null / 0 → null(关闭);
|
|
203
203
|
* 其余数值原样透传(枚举校验只在写侧执行,旧数据脏值不在此拦截)
|
|
204
204
|
*/
|
|
@@ -210,7 +210,7 @@ function resolveBackupFrequencyMinutes(value) {
|
|
|
210
210
|
return value;
|
|
211
211
|
}
|
|
212
212
|
/** ProjectFileConfig → ProjectConfig(schema_version → schemaVersion、current_position → currentPosition、backup 频率读侧兜底;
|
|
213
|
-
* `prompt`
|
|
213
|
+
* `prompt` 已废弃不再映射——项目规则唯一事实源改为项目目录) */
|
|
214
214
|
export function mapProjectFileToConfig(file) {
|
|
215
215
|
return {
|
|
216
216
|
id: file.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/utils/mapping.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/utils/mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export interface ReferenceFrontmatter {
|
|
|
20
20
|
* 见 serializeReferenceFile 的 extraLines 参数)。
|
|
21
21
|
*/
|
|
22
22
|
export declare function parseReferenceFrontmatter(text: string): ReferenceFrontmatter;
|
|
23
|
-
/** 序列化参考文件全文(frontmatter +
|
|
23
|
+
/** 序列化参考文件全文(frontmatter + 正文;格式) */
|
|
24
24
|
export declare function serializeReferenceFile(input: {
|
|
25
25
|
title: string;
|
|
26
26
|
category: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-file.d.ts","sourceRoot":"","sources":["../../src/utils/reference-file.ts"],"names":[],"mappings":"AAcA,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,eAAe;AACf,MAAM,WAAW,oBAAoB;IACpC,iDAAiD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACtB,iDAAiD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAsCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAyB5E;AAED,
|
|
1
|
+
{"version":3,"file":"reference-file.d.ts","sourceRoot":"","sources":["../../src/utils/reference-file.ts"],"names":[],"mappings":"AAcA,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,eAAe;AACf,MAAM,WAAW,oBAAoB;IACpC,iDAAiD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACtB,iDAAiD;IAChD,IAAI,EAAE,MAAM,CAAC;CACd;AAsCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAyB5E;AAED,qCAAqC;AACrC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACd,wEAAwE;IACvE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,GAAG,MAAM,CAWT;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc9D"}
|