@whispering233/ai-editor-shared 0.0.15 → 0.0.20
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 +2 -2
- package/dist/constants/backup.d.ts.map +1 -1
- package/dist/constants/backup.js +2 -2
- package/dist/constants/backup.js.map +1 -1
- package/dist/constants/entity.d.ts +2 -4
- package/dist/constants/entity.d.ts.map +1 -1
- package/dist/constants/entity.js +10 -2
- package/dist/constants/entity.js.map +1 -1
- package/dist/constants/outline.d.ts +2 -0
- package/dist/constants/outline.d.ts.map +1 -1
- package/dist/constants/outline.js +6 -0
- package/dist/constants/outline.js.map +1 -1
- package/dist/types/api.d.ts +65 -18
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +81 -9
- package/dist/types/api.js.map +1 -1
- package/dist/types/entity.d.ts +6 -0
- package/dist/types/entity.d.ts.map +1 -1
- package/dist/types/project.d.ts +19 -3
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/tool.d.ts +6 -14
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +7 -5
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/mapping.d.ts +4 -2
- package/dist/utils/mapping.d.ts.map +1 -1
- package/dist/utils/mapping.js +6 -4
- package/dist/utils/mapping.js.map +1 -1
- package/dist/utils/reference-file.d.ts +39 -0
- package/dist/utils/reference-file.d.ts.map +1 -0
- package/dist/utils/reference-file.js +131 -0
- package/dist/utils/reference-file.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** 自动备份频率枚举(分钟,决策 27
|
|
2
|
-
export declare const BACKUP_FREQUENCIES: readonly [5, 10, 15, 30, 60];
|
|
1
|
+
/** 自动备份频率枚举(分钟,决策 27 + 2026-08 批次十四修订):null / 0 = 关闭;缺省见 DEFAULT_BACKUP_FREQUENCY_MINUTES */
|
|
2
|
+
export declare const BACKUP_FREQUENCIES: readonly [1, 5, 10, 15, 30, 60];
|
|
3
3
|
/** 缺省自动备份频率(分钟,决策 27:新项目默认开启;project.json 字段缺失时读侧兜底) */
|
|
4
4
|
export declare const DEFAULT_BACKUP_FREQUENCY_MINUTES = 10;
|
|
5
5
|
/** 每项目保留最近备份份数(决策 27:超出删除最旧,含覆盖前自动快照;B2.2 保留策略) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/constants/backup.ts"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/constants/backup.ts"],"names":[],"mappings":"AAKA,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,iCAAkC,CAAC;AAElE,wDAAwD;AACxD,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,mDAAmD;AACnD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC"}
|
package/dist/constants/backup.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// 契约来源:doc/design/decisions.md 决策 27、doc/database/schema.md project.json 契约
|
|
3
3
|
// (backup_frequency_minutes 可选字段:仅枚举 5/10/15/30/60;null/0 = 关闭;缺省 = 10)
|
|
4
4
|
// 常量命名 UPPER_SNAKE_CASE,as const 保持字面量类型;前后端共用(client 直接消费)
|
|
5
|
-
/** 自动备份频率枚举(分钟,决策 27
|
|
6
|
-
export const BACKUP_FREQUENCIES = [5, 10, 15, 30, 60];
|
|
5
|
+
/** 自动备份频率枚举(分钟,决策 27 + 2026-08 批次十四修订):null / 0 = 关闭;缺省见 DEFAULT_BACKUP_FREQUENCY_MINUTES */
|
|
6
|
+
export const BACKUP_FREQUENCIES = [1, 5, 10, 15, 30, 60];
|
|
7
7
|
/** 缺省自动备份频率(分钟,决策 27:新项目默认开启;project.json 字段缺失时读侧兜底) */
|
|
8
8
|
export const DEFAULT_BACKUP_FREQUENCY_MINUTES = 10;
|
|
9
9
|
/** 每项目保留最近备份份数(决策 27:超出删除最旧,含覆盖前自动快照;B2.2 保留策略) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/constants/backup.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,4EAA4E;AAC5E,0EAA0E;AAC1E,4DAA4D;AAE5D,
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/constants/backup.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,4EAA4E;AAC5E,0EAA0E;AAC1E,4DAA4D;AAE5D,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAElE,wDAAwD;AACxD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,mDAAmD;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC"}
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
export declare const ENTITY_TYPES: readonly ["character", "setting", "location", "hook", "event", "timepoint", "reference"];
|
|
3
3
|
/** 实体类型(单数,从常量派生;与 types/entity.ts 的 EntityType 一致,测试断言保证) */
|
|
4
4
|
export type EntityTypeValue = (typeof ENTITY_TYPES)[number];
|
|
5
|
-
/**
|
|
6
|
-
export declare const
|
|
7
|
-
/** 参考资料分类(从 REFERENCE_TYPES 派生) */
|
|
8
|
-
export type ReferenceTypeValue = (typeof REFERENCE_TYPES)[number];
|
|
5
|
+
/** 实体类型 → 中文标签(决策 47 names/resolve 与前端徽标共用;口径对齐 client 主流页面——character 用「人物」) */
|
|
6
|
+
export declare const ENTITY_TYPE_LABELS: Record<EntityTypeValue, string>;
|
|
9
7
|
/**
|
|
10
8
|
* 预定义关系类型(schema.md 关系类型表,共 17 个)
|
|
11
9
|
* belongs_to 所属 / owns 拥有 / masters 掌握 / ally·rival·mentor·family 人物间 /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/constants/entity.ts"],"names":[],"mappings":"AAIA,kJAAkJ;AAClJ,eAAO,MAAM,YAAY,0FAA2F,CAAC;AAErH,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/constants/entity.ts"],"names":[],"mappings":"AAIA,kJAAkJ;AAClJ,eAAO,MAAM,YAAY,0FAA2F,CAAC;AAErH,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAQ9D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,2MAkBjB,CAAC;AAEX,gCAAgC;AAChC,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,qDAAqD;AACrD,eAAO,MAAM,cAAc,EAAG,WAAoB,CAAC;AAEnD,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,6CAA8C,CAAC;AAE/E,eAAe;AACf,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/constants/entity.js
CHANGED
|
@@ -3,8 +3,16 @@
|
|
|
3
3
|
// 常量命名 UPPER_SNAKE_CASE,as const 保持字面量类型
|
|
4
4
|
/** 实体类型(entities 表 type 列 CHECK 约束,schema.md)——event 为时间轴事件(决策 26);timepoint 为 G2 时间标签点(name=时间标签文本,data 空,决策 26 G2 修订);reference 为参考资料(决策 36) */
|
|
5
5
|
export const ENTITY_TYPES = ["character", "setting", "location", "hook", "event", "timepoint", "reference"];
|
|
6
|
-
/**
|
|
7
|
-
export const
|
|
6
|
+
/** 实体类型 → 中文标签(决策 47 names/resolve 与前端徽标共用;口径对齐 client 主流页面——character 用「人物」) */
|
|
7
|
+
export const ENTITY_TYPE_LABELS = {
|
|
8
|
+
character: "人物",
|
|
9
|
+
setting: "设定",
|
|
10
|
+
location: "地点",
|
|
11
|
+
hook: "伏笔",
|
|
12
|
+
event: "事件",
|
|
13
|
+
timepoint: "时间点",
|
|
14
|
+
reference: "参考资料",
|
|
15
|
+
};
|
|
8
16
|
/**
|
|
9
17
|
* 预定义关系类型(schema.md 关系类型表,共 17 个)
|
|
10
18
|
* belongs_to 所属 / owns 拥有 / masters 掌握 / ally·rival·mentor·family 人物间 /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/constants/entity.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,uEAAuE;AACvE,yCAAyC;AAEzC,kJAAkJ;AAClJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;AAKrH,
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/constants/entity.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,uEAAuE;AACvE,yCAAyC;AAEzC,kJAAkJ;AAClJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;AAKrH,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IACjE,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY;IACZ,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,WAAW;IACX,WAAW;IACX,QAAQ;IACR,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;CACH,CAAC;AAKX,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAoB,CAAC;AAEnD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC"}
|
|
@@ -2,4 +2,6 @@
|
|
|
2
2
|
export declare const CONFLICT_LEVELS: readonly ["inner", "personal", "extra_personal"];
|
|
3
3
|
/** 冲突层次(从 CONFLICT_LEVELS 派生) */
|
|
4
4
|
export type ConflictLevel = (typeof CONFLICT_LEVELS)[number];
|
|
5
|
+
/** 大纲节点层级 → 中文标签(决策 47 names/resolve 用;口径对齐 client outline 页面——卷/章/场景) */
|
|
6
|
+
export declare const OUTLINE_NODE_TYPE_LABELS: Record<"volume" | "chapter" | "scene", string>;
|
|
5
7
|
//# sourceMappingURL=outline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/constants/outline.ts"],"names":[],"mappings":"AAKA,uDAAuD;AACvD,eAAO,MAAM,eAAe,kDAAmD,CAAC;AAEhF,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/constants/outline.ts"],"names":[],"mappings":"AAKA,uDAAuD;AACvD,eAAO,MAAM,eAAe,kDAAmD,CAAC;AAEhF,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,EAAE,MAAM,CAInF,CAAC"}
|
|
@@ -4,4 +4,10 @@
|
|
|
4
4
|
// (client 只消费本常量,不打包校验函数——shared 硬约束)
|
|
5
5
|
/** 场景冲突层次(麦基冲突三层次,decision 23;conflict_levels 多选枚举) */
|
|
6
6
|
export const CONFLICT_LEVELS = ["inner", "personal", "extra_personal"];
|
|
7
|
+
/** 大纲节点层级 → 中文标签(决策 47 names/resolve 用;口径对齐 client outline 页面——卷/章/场景) */
|
|
8
|
+
export const OUTLINE_NODE_TYPE_LABELS = {
|
|
9
|
+
volume: "卷",
|
|
10
|
+
chapter: "章",
|
|
11
|
+
scene: "场景",
|
|
12
|
+
};
|
|
7
13
|
//# sourceMappingURL=outline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/constants/outline.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wFAAwF;AACxF,8FAA8F;AAC9F,sCAAsC;AAEtC,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/constants/outline.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wFAAwF;AACxF,8FAA8F;AAC9F,sCAAsC;AAEtC,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAU,CAAC;AAKhF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAmD;IACtF,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,IAAI;CACZ,CAAC"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { ComputeStateResult, DeltaRecord, EntitySummary, ProjectConfig, RelationRecord } from "./index.js";
|
|
2
|
+
import type { ComputeStateResult, DeltaRecord, EntitySummary, ProjectAgents, ProjectConfig, RelationRecord } from "./index.js";
|
|
3
3
|
/** 实体类型(schema.md entities 表 CHECK 约束;与 ENTITY_TYPES 常量对齐) */
|
|
4
4
|
export declare const entityTypeSchema: z.ZodEnum<{
|
|
5
5
|
character: "character";
|
|
@@ -21,7 +21,7 @@ export declare const projectLanguageSchema: z.ZodEnum<{
|
|
|
21
21
|
* (computeState 改为 skipped/conflicts 字段呈现,不再返回 409——保留枚举兼容历史引用);
|
|
22
22
|
* 末尾四个为 tools.md 决策 15/16 补充命名(文档未给具体码名,按语义命名,供 SSE error 事件使用)
|
|
23
23
|
*/
|
|
24
|
-
export declare const ERROR_CODES: readonly ["VALIDATION_ERROR", "ENTITY_NOT_FOUND", "RELATION_EXISTS", "EVENT_ALREADY_MOUNTED", "RELATION_NOT_FOUND", "OUTLINE_NODE_NOT_FOUND", "OUTLINE_ANCESTOR_DELETED", "INVALID_PROJECT_PATH", "PROPOSAL_STALE", "PROPOSAL_NOT_FOUND", "PROPOSAL_PROJECT_MISMATCH", "SCHEMA_VERSION_MISMATCH", "PROJECT_VERSION_NEWER", "BACKUP_TARGET_EXISTS", "DELTA_CONFLICT", "TOOL_RESULT_TOO_LARGE", "AGENT_DISPATCH_ERROR", "AGENT_INTERNAL_ERROR", "AGENT_MAX_ITERATIONS", "AGENT_TIMEOUT", "AGENT_TOKEN_BUDGET"];
|
|
24
|
+
export declare const ERROR_CODES: readonly ["VALIDATION_ERROR", "ENTITY_NOT_FOUND", "RELATION_EXISTS", "EVENT_ALREADY_MOUNTED", "RELATION_NOT_FOUND", "OUTLINE_NODE_NOT_FOUND", "OUTLINE_ANCESTOR_DELETED", "INVALID_PROJECT_PATH", "PROPOSAL_STALE", "PROPOSAL_NOT_FOUND", "PROPOSAL_PROJECT_MISMATCH", "SCHEMA_VERSION_MISMATCH", "PROJECT_VERSION_NEWER", "BACKUP_TARGET_EXISTS", "REFERENCE_FILE_MISSING", "DELTA_CONFLICT", "TOOL_RESULT_TOO_LARGE", "AGENT_DISPATCH_ERROR", "AGENT_INTERNAL_ERROR", "AGENT_MAX_ITERATIONS", "AGENT_TIMEOUT", "AGENT_TOKEN_BUDGET"];
|
|
25
25
|
/** ErrorCode 枚举 schema */
|
|
26
26
|
export declare const errorCodeSchema: z.ZodEnum<{
|
|
27
27
|
VALIDATION_ERROR: "VALIDATION_ERROR";
|
|
@@ -38,6 +38,7 @@ export declare const errorCodeSchema: z.ZodEnum<{
|
|
|
38
38
|
SCHEMA_VERSION_MISMATCH: "SCHEMA_VERSION_MISMATCH";
|
|
39
39
|
PROJECT_VERSION_NEWER: "PROJECT_VERSION_NEWER";
|
|
40
40
|
BACKUP_TARGET_EXISTS: "BACKUP_TARGET_EXISTS";
|
|
41
|
+
REFERENCE_FILE_MISSING: "REFERENCE_FILE_MISSING";
|
|
41
42
|
DELTA_CONFLICT: "DELTA_CONFLICT";
|
|
42
43
|
TOOL_RESULT_TOO_LARGE: "TOOL_RESULT_TOO_LARGE";
|
|
43
44
|
AGENT_DISPATCH_ERROR: "AGENT_DISPATCH_ERROR";
|
|
@@ -72,6 +73,7 @@ export declare const apiErrorSchema: z.ZodObject<{
|
|
|
72
73
|
SCHEMA_VERSION_MISMATCH: "SCHEMA_VERSION_MISMATCH";
|
|
73
74
|
PROJECT_VERSION_NEWER: "PROJECT_VERSION_NEWER";
|
|
74
75
|
BACKUP_TARGET_EXISTS: "BACKUP_TARGET_EXISTS";
|
|
76
|
+
REFERENCE_FILE_MISSING: "REFERENCE_FILE_MISSING";
|
|
75
77
|
DELTA_CONFLICT: "DELTA_CONFLICT";
|
|
76
78
|
TOOL_RESULT_TOO_LARGE: "TOOL_RESULT_TOO_LARGE";
|
|
77
79
|
AGENT_DISPATCH_ERROR: "AGENT_DISPATCH_ERROR";
|
|
@@ -146,14 +148,20 @@ export declare const eventDataSchema: z.ZodObject<{
|
|
|
146
148
|
}, z.core.$loose>;
|
|
147
149
|
/** timepoint 专属字段(G2 时间标签点,决策 26 修订):data 空——时间标签文本 = name,可重命名,YAGNI 不加 data 字段 */
|
|
148
150
|
export declare const timepointDataSchema: z.ZodObject<{}, z.core.$loose>;
|
|
149
|
-
/** reference 专属字段(决策 36 参考资料:type
|
|
151
|
+
/** reference 专属字段(决策 36 参考资料:type 分类 / content 全文长文本 / source 来源 / tags 标签数组;
|
|
152
|
+
* 决策 44 修订:type 为自由文本分类(不再预置枚举,缺省 material 写入侧兜底);
|
|
153
|
+
* 决策 43 修订:两类承载——kind = file(本地 md 文档:file_name 相对路径 + content 正文镜像 + file_mtime
|
|
154
|
+
* 上次同步快照)/ link(外源链接:url 必填 + content 可选备注);kind 缺省视为 link(存量条目运行时兼容);
|
|
155
|
+
* source 仅存量旧条目使用(新建不再写入)) */
|
|
150
156
|
export declare const referenceDataSchema: z.ZodObject<{
|
|
151
|
-
type: z.ZodOptional<z.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
theory: "theory";
|
|
157
|
+
type: z.ZodOptional<z.ZodString>;
|
|
158
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
159
|
+
file: "file";
|
|
160
|
+
link: "link";
|
|
156
161
|
}>>;
|
|
162
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
163
|
+
file_mtime: z.ZodOptional<z.ZodString>;
|
|
164
|
+
url: z.ZodOptional<z.ZodString>;
|
|
157
165
|
content: z.ZodOptional<z.ZodString>;
|
|
158
166
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
159
167
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -213,18 +221,21 @@ export declare const ENTITY_DATA_SCHEMAS: {
|
|
|
213
221
|
}, z.core.$loose>;
|
|
214
222
|
readonly timepoint: z.ZodObject<{}, z.core.$loose>;
|
|
215
223
|
readonly reference: z.ZodObject<{
|
|
216
|
-
type: z.ZodOptional<z.
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
theory: "theory";
|
|
224
|
+
type: z.ZodOptional<z.ZodString>;
|
|
225
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
226
|
+
file: "file";
|
|
227
|
+
link: "link";
|
|
221
228
|
}>>;
|
|
229
|
+
file_name: z.ZodOptional<z.ZodString>;
|
|
230
|
+
file_mtime: z.ZodOptional<z.ZodString>;
|
|
231
|
+
url: z.ZodOptional<z.ZodString>;
|
|
222
232
|
content: z.ZodOptional<z.ZodString>;
|
|
223
233
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
224
234
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
225
235
|
}, z.core.$loose>;
|
|
226
236
|
};
|
|
227
|
-
/** ProjectConfig 响应(GET /api/v1/project/config;与 types/project.ts 的 ProjectConfig
|
|
237
|
+
/** ProjectConfig 响应(GET /api/v1/project/config;与 types/project.ts 的 ProjectConfig 对齐;
|
|
238
|
+
* `prompt` 已废弃(决策 41)不再返回——项目规则唯一事实源改为项目目录 AGENTS.md) */
|
|
228
239
|
export declare const projectConfigSchema: z.ZodType<ProjectConfig>;
|
|
229
240
|
export declare const projectCreateReqSchema: z.ZodObject<{
|
|
230
241
|
path: z.ZodString;
|
|
@@ -234,8 +245,7 @@ export declare const projectCreateReqSchema: z.ZodObject<{
|
|
|
234
245
|
zh: "zh";
|
|
235
246
|
en: "en";
|
|
236
247
|
}>>;
|
|
237
|
-
|
|
238
|
-
}, z.core.$strip>>;
|
|
248
|
+
}, z.core.$strict>>;
|
|
239
249
|
}, z.core.$strict>;
|
|
240
250
|
export declare const projectCreateResSchema: z.ZodObject<{
|
|
241
251
|
id: z.ZodString;
|
|
@@ -273,13 +283,20 @@ export declare const projectConfigUpdateReqSchema: z.ZodObject<{
|
|
|
273
283
|
zh: "zh";
|
|
274
284
|
en: "en";
|
|
275
285
|
}>>;
|
|
276
|
-
prompt: z.ZodOptional<z.ZodString>;
|
|
277
286
|
current_position: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
278
|
-
backup_frequency_minutes: z.ZodOptional<z.ZodNullable<z.ZodUnion<z.ZodLiteral<5 | 15 | 10 | 30 | 60>[]>>>;
|
|
287
|
+
backup_frequency_minutes: z.ZodOptional<z.ZodNullable<z.ZodUnion<z.ZodLiteral<5 | 15 | 1 | 10 | 30 | 60>[]>>>;
|
|
279
288
|
}, z.core.$strict>;
|
|
280
289
|
export declare const projectConfigUpdateResSchema: z.ZodObject<{
|
|
281
290
|
updated: z.ZodLiteral<true>;
|
|
282
291
|
}, z.core.$strip>;
|
|
292
|
+
export declare const projectAgentsGetResSchema: z.ZodType<ProjectAgents>;
|
|
293
|
+
export declare const projectAgentsPutReqSchema: z.ZodObject<{
|
|
294
|
+
content: z.ZodString;
|
|
295
|
+
}, z.core.$strict>;
|
|
296
|
+
export declare const projectAgentsPutResSchema: z.ZodObject<{
|
|
297
|
+
saved: z.ZodLiteral<true>;
|
|
298
|
+
updatedAt: z.ZodString;
|
|
299
|
+
}, z.core.$strip>;
|
|
283
300
|
export declare const projectBackupReqSchema: z.ZodObject<{
|
|
284
301
|
name: z.ZodOptional<z.ZodString>;
|
|
285
302
|
}, z.core.$strict>;
|
|
@@ -644,6 +661,10 @@ export declare const entityMoveReqSchema: z.ZodObject<{
|
|
|
644
661
|
export declare const entityMoveResSchema: z.ZodObject<{
|
|
645
662
|
moved: z.ZodLiteral<true>;
|
|
646
663
|
}, z.core.$strip>;
|
|
664
|
+
export declare const settingMoveReqSchema: z.ZodObject<{
|
|
665
|
+
parent_id: z.ZodNullable<z.ZodString>;
|
|
666
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
667
|
+
}, z.core.$strict>;
|
|
647
668
|
export declare const eventMoveToReqSchema: z.ZodObject<{
|
|
648
669
|
timepoint_id: z.ZodNullable<z.ZodString>;
|
|
649
670
|
order: z.ZodNumber;
|
|
@@ -794,6 +815,31 @@ export declare const settingsLlmPutReqSchema: z.ZodObject<{
|
|
|
794
815
|
export declare const settingsLlmPutResSchema: z.ZodObject<{
|
|
795
816
|
saved: z.ZodLiteral<true>;
|
|
796
817
|
}, z.core.$strip>;
|
|
818
|
+
export declare const userConfigFileSchema: z.ZodObject<{
|
|
819
|
+
schema_version: z.ZodOptional<z.ZodLiteral<1>>;
|
|
820
|
+
model: z.ZodOptional<z.ZodString>;
|
|
821
|
+
thinking_level: z.ZodOptional<z.ZodEnum<{
|
|
822
|
+
off: "off";
|
|
823
|
+
minimal: "minimal";
|
|
824
|
+
low: "low";
|
|
825
|
+
medium: "medium";
|
|
826
|
+
high: "high";
|
|
827
|
+
xhigh: "xhigh";
|
|
828
|
+
max: "max";
|
|
829
|
+
}>>;
|
|
830
|
+
api_key: z.ZodOptional<z.ZodString>;
|
|
831
|
+
}, z.core.$loose>;
|
|
832
|
+
export type UserConfigFile = z.infer<typeof userConfigFileSchema>;
|
|
833
|
+
export declare const namesResolveReqSchema: z.ZodObject<{
|
|
834
|
+
ids: z.ZodArray<z.ZodString>;
|
|
835
|
+
}, z.core.$strict>;
|
|
836
|
+
export declare const namesResolveResSchema: z.ZodObject<{
|
|
837
|
+
names: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodObject<{
|
|
838
|
+
label: z.ZodString;
|
|
839
|
+
name: z.ZodString;
|
|
840
|
+
}, z.core.$strip>>>;
|
|
841
|
+
}, z.core.$strip>;
|
|
842
|
+
export type NamesResolveResult = z.infer<typeof namesResolveResSchema>;
|
|
797
843
|
/** 心跳 ping(每 15-30s,决策 20):空 payload */
|
|
798
844
|
export declare const ssePingEventSchema: z.ZodObject<{}, z.core.$strip>;
|
|
799
845
|
/** tool_call:AI 调用了工具 */
|
|
@@ -839,6 +885,7 @@ export declare const sseErrorEventSchema: z.ZodObject<{
|
|
|
839
885
|
SCHEMA_VERSION_MISMATCH: "SCHEMA_VERSION_MISMATCH";
|
|
840
886
|
PROJECT_VERSION_NEWER: "PROJECT_VERSION_NEWER";
|
|
841
887
|
BACKUP_TARGET_EXISTS: "BACKUP_TARGET_EXISTS";
|
|
888
|
+
REFERENCE_FILE_MISSING: "REFERENCE_FILE_MISSING";
|
|
842
889
|
DELTA_CONFLICT: "DELTA_CONFLICT";
|
|
843
890
|
TOOL_RESULT_TOO_LARGE: "TOOL_RESULT_TOO_LARGE";
|
|
844
891
|
AGENT_DISPATCH_ERROR: "AGENT_DISPATCH_ERROR";
|
package/dist/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|
package/dist/types/api.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// client 只消费推断出的类型与常量,不打包校验函数(避免 50KB 级依赖进浏览器包)。
|
|
8
8
|
// zod 版本:^4(注意 v4 API:z.record 必须两参、z.enum 接受 readonly 数组)
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
import { ENTITY_TYPES,
|
|
10
|
+
import { ENTITY_TYPES, RELATION_TYPES } from "../constants/entity.js";
|
|
11
11
|
import { HOOK_STATUSES, PAYOFF_TIMING } from "../constants/hook.js";
|
|
12
12
|
import { CONFLICT_LEVELS } from "../constants/outline.js";
|
|
13
13
|
import { BACKUP_FREQUENCIES } from "../constants/backup.js";
|
|
@@ -39,6 +39,7 @@ export const ERROR_CODES = [
|
|
|
39
39
|
"SCHEMA_VERSION_MISMATCH", // 409 导入 zip 的 data.db user_version 与当前程序版本不匹配(E2;拒绝导入,不静默重建,release-review §二)
|
|
40
40
|
"PROJECT_VERSION_NEWER", // 409 open 时项目 data.db user_version 高于当前程序版本(E4;拒绝打开并提示升级程序,堵降级数据丢失,release-review §一)
|
|
41
41
|
"BACKUP_TARGET_EXISTS", // 409 重命名备份目标文件名已存在(决策 29,B2.6:renameSync 目标存在会静默覆盖——显式拒绝防数据丢失)
|
|
42
|
+
"REFERENCE_FILE_MISSING", // 409 参考资料 file 类文件缺失(决策 43:PUT 更新时读原文件失败——外部删除,提示先扫描同步)
|
|
42
43
|
// ---- 废弃(保留兼容)----
|
|
43
44
|
"DELTA_CONFLICT", // 已废弃(2026-08 修订:computeState 以 conflicts 字段替代 409)
|
|
44
45
|
// ---- tools.md 决策 15/16 补充命名(SSE error 事件用)----
|
|
@@ -128,12 +129,20 @@ export const eventDataSchema = z
|
|
|
128
129
|
.passthrough(); // 允许未知字段(创作工具,用户自定义字段自由)
|
|
129
130
|
/** timepoint 专属字段(G2 时间标签点,决策 26 修订):data 空——时间标签文本 = name,可重命名,YAGNI 不加 data 字段 */
|
|
130
131
|
export const timepointDataSchema = z.object({}).passthrough();
|
|
131
|
-
/** reference 专属字段(决策 36 参考资料:type
|
|
132
|
+
/** reference 专属字段(决策 36 参考资料:type 分类 / content 全文长文本 / source 来源 / tags 标签数组;
|
|
133
|
+
* 决策 44 修订:type 为自由文本分类(不再预置枚举,缺省 material 写入侧兜底);
|
|
134
|
+
* 决策 43 修订:两类承载——kind = file(本地 md 文档:file_name 相对路径 + content 正文镜像 + file_mtime
|
|
135
|
+
* 上次同步快照)/ link(外源链接:url 必填 + content 可选备注);kind 缺省视为 link(存量条目运行时兼容);
|
|
136
|
+
* source 仅存量旧条目使用(新建不再写入)) */
|
|
132
137
|
export const referenceDataSchema = z
|
|
133
138
|
.object({
|
|
134
|
-
type: z.
|
|
139
|
+
type: z.string().optional(), // 自由文本分类(决策 44:取消预置枚举;缺省 material 写入侧兜底)
|
|
140
|
+
kind: z.enum(["file", "link"]).optional(), // 决策 43:缺省视为 link
|
|
141
|
+
file_name: z.string().optional(), // file 类:references/ 下相对路径(服务端写入,客户端只读)
|
|
142
|
+
file_mtime: z.string().optional(), // file 类:上次同步时文件 mtime(scan 比对基准,服务端写入)
|
|
143
|
+
url: z.string().optional(), // link 类:外源链接 URL(创建时必填校验在服务端 route 层)
|
|
135
144
|
content: z.string().optional(),
|
|
136
|
-
source: z.string().nullable().optional(),
|
|
145
|
+
source: z.string().nullable().optional(), // 存量旧条目兼容(决策 43:新建不再写入)
|
|
137
146
|
tags: z.array(z.string()).optional(),
|
|
138
147
|
})
|
|
139
148
|
.passthrough(); // 允许未知字段(创作工具,用户自定义字段自由)
|
|
@@ -152,12 +161,12 @@ export const ENTITY_DATA_SCHEMAS = {
|
|
|
152
161
|
reference: referenceDataSchema, // 参考资料(决策 36)
|
|
153
162
|
};
|
|
154
163
|
// ============ project 端点(endpoints.md「项目管理」) ============
|
|
155
|
-
/** ProjectConfig 响应(GET /api/v1/project/config;与 types/project.ts 的 ProjectConfig
|
|
164
|
+
/** ProjectConfig 响应(GET /api/v1/project/config;与 types/project.ts 的 ProjectConfig 对齐;
|
|
165
|
+
* `prompt` 已废弃(决策 41)不再返回——项目规则唯一事实源改为项目目录 AGENTS.md) */
|
|
156
166
|
export const projectConfigSchema = z.object({
|
|
157
167
|
id: z.string(),
|
|
158
168
|
name: z.string(),
|
|
159
169
|
language: projectLanguageSchema,
|
|
160
|
-
prompt: z.string(), // 项目级提示词(决策 7)
|
|
161
170
|
schemaVersion: z.number().int(), // 决策 13
|
|
162
171
|
currentPosition: z.string().nullable(), // 「当前位置」节点 id;null = 未设置(决策 21)
|
|
163
172
|
backupFrequencyMinutes: z.number().int().nullable(), // 自动备份频率(决策 27);null = 关闭;缺省 10 由读侧兜底
|
|
@@ -172,8 +181,10 @@ export const projectCreateReqSchema = z
|
|
|
172
181
|
.object({
|
|
173
182
|
name: z.string().optional(),
|
|
174
183
|
language: projectLanguageSchema.optional(),
|
|
175
|
-
prompt
|
|
184
|
+
// prompt 已废弃(决策 41):不再接受(strict schema 传入 → 400 VALIDATION_ERROR);
|
|
185
|
+
// 项目规则改由 PUT /api/v1/project/agents 写入 AGENTS.md
|
|
176
186
|
})
|
|
187
|
+
.strict()
|
|
177
188
|
.optional(),
|
|
178
189
|
})
|
|
179
190
|
.strict();
|
|
@@ -219,10 +230,11 @@ export const projectConfigUpdateReqSchema = z
|
|
|
219
230
|
.object({
|
|
220
231
|
name: z.string().optional(),
|
|
221
232
|
language: projectLanguageSchema.optional(),
|
|
222
|
-
prompt
|
|
233
|
+
// prompt 已废弃(决策 41):不再接受(strict schema 传入 → 400 VALIDATION_ERROR);
|
|
234
|
+
// 项目规则改由 PUT /api/v1/project/agents 写入 AGENTS.md
|
|
223
235
|
current_position: z.string().nullable().optional(), // 须指向存在的非软删大纲节点(服务端校验)
|
|
224
236
|
/**
|
|
225
|
-
* 自动备份频率(决策 27
|
|
237
|
+
* 自动备份频率(决策 27 + 批次十四修订):仅接受枚举 1/5/10/15/30/60(BACKUP_FREQUENCIES),其他(含 0)→ 400
|
|
226
238
|
* VALIDATION_ERROR;null = 关闭(写入 null)——0 仅读侧兼容旧数据语义,写侧一律用 null 表示关闭
|
|
227
239
|
*/
|
|
228
240
|
backup_frequency_minutes: z.union(BACKUP_FREQUENCIES.map((v) => z.literal(v))).nullable().optional(),
|
|
@@ -231,6 +243,26 @@ export const projectConfigUpdateReqSchema = z
|
|
|
231
243
|
export const projectConfigUpdateResSchema = z.object({
|
|
232
244
|
updated: z.literal(true),
|
|
233
245
|
});
|
|
246
|
+
// GET /api/v1/project/agents(决策 41:项目规则文件 AGENTS.md——唯一事实源,取代 project.json `prompt`)
|
|
247
|
+
// 语义:无当前项目 → 409 NO_PROJECT_OPEN;文件不存在不报错(exists:false + 空串);
|
|
248
|
+
// updatedAt = 文件 mtime(ISO 8601,外部修改检测依据);读取每次实时读文件不缓存
|
|
249
|
+
export const projectAgentsGetResSchema = z.object({
|
|
250
|
+
content: z.string(), // AGENTS.md 文件内容(文件不存在 → 空串)
|
|
251
|
+
exists: z.boolean(), // 文件是否存在(false 时 content 为空串)
|
|
252
|
+
updatedAt: z.string().nullable(), // 文件 mtime(ISO 8601;文件不存在 → null)
|
|
253
|
+
});
|
|
254
|
+
// PUT /api/v1/project/agents(决策 41:设置页直接编辑 AGENTS.md 文件内容)
|
|
255
|
+
// 语义:整体替换(非追加);空串 = 清空规则(保留空文件不删除);文件不存在自动创建;
|
|
256
|
+
// 写入走原子写(决策 11 同款);写入后返回新 mtime(前端更新本地比对基线)
|
|
257
|
+
export const projectAgentsPutReqSchema = z
|
|
258
|
+
.object({
|
|
259
|
+
content: z.string(), // AGENTS.md 完整内容(整体替换;空串 = 清空规则文件,保留空文件不删除)
|
|
260
|
+
})
|
|
261
|
+
.strict();
|
|
262
|
+
export const projectAgentsPutResSchema = z.object({
|
|
263
|
+
saved: z.literal(true),
|
|
264
|
+
updatedAt: z.string(), // 写入后的文件 mtime(ISO 8601)——前端更新本地比对基线
|
|
265
|
+
});
|
|
234
266
|
// POST /api/v1/project/backup(决策 28 新增:手动备份可携带自定义名称)
|
|
235
267
|
// - 请求体可选 `name`(string);空串/缺省 → 无自定义名称(纯时间戳文件名)。
|
|
236
268
|
// - **形状校验仅限类型**(oracle 审核 P2-1:zod 与 sanitize 的「.zip 剥离 + 长度」判定
|
|
@@ -312,6 +344,8 @@ export const entitySummarySchema = z.object({
|
|
|
312
344
|
// M2(2026-08 批次六):仅 setting 列表填充(决策 30 层级 = belongs_to)
|
|
313
345
|
parentId: z.string().optional(),
|
|
314
346
|
parentName: z.string().optional(),
|
|
347
|
+
// 手动排序位(决策 46,2026-08 批次十三):仅 setting 类型填充(entities.sort_order 列)
|
|
348
|
+
sortOrder: z.number().int().optional(),
|
|
315
349
|
createdAt: z.string(),
|
|
316
350
|
updatedAt: z.string(),
|
|
317
351
|
});
|
|
@@ -635,6 +669,17 @@ export const entityMoveReqSchema = z
|
|
|
635
669
|
export const entityMoveResSchema = z.object({
|
|
636
670
|
moved: z.literal(true),
|
|
637
671
|
});
|
|
672
|
+
// PUT /api/v1/entity/setting/:id/move(设定同级重排 / 改父 + 重排,决策 46,2026-08 批次十三;
|
|
673
|
+
// 修订决策 42「设定无 sort_order 语义」约束——复用 entities.sort_order 列,无 DDL 迁移)
|
|
674
|
+
export const settingMoveReqSchema = z
|
|
675
|
+
.object({
|
|
676
|
+
// 目标父设定 id;null = 移为顶层根(无上级)。与当前父相同(含同为根)→ 仅重排
|
|
677
|
+
parent_id: z.string().nullable(),
|
|
678
|
+
// 0-based 同级组内序(改父后 = 新父子级组内位置 / 未改父 = 当前同级组内位置);
|
|
679
|
+
// 越界 clamp(负数 400 schema 拒绝;超组内数 → 组尾);缺省 = 追加组尾
|
|
680
|
+
order: z.number().int().min(0).optional(),
|
|
681
|
+
})
|
|
682
|
+
.strict();
|
|
638
683
|
// POST /api/v1/entity/event/:id/move_to(跨组挂载复合写,G2 决策 26 修订:事件拖到另一时间点
|
|
639
684
|
// 区块 = 改挂载 + 重排一次提交;服务端事务内原子完成——endpoints.md「G2 跨组拖拽」的复合端点实现)
|
|
640
685
|
export const eventMoveToReqSchema = z
|
|
@@ -762,6 +807,33 @@ export const settingsLlmPutReqSchema = z
|
|
|
762
807
|
export const settingsLlmPutResSchema = z.object({
|
|
763
808
|
saved: z.literal(true),
|
|
764
809
|
});
|
|
810
|
+
// ============ 用户级配置文件(决策 48,批次十四):~/.ai-editor/config.json schema v1 ============
|
|
811
|
+
// 契约来源:doc/design/decisions.md 决策 48、doc/api/endpoints.md「用户级配置文件」节。
|
|
812
|
+
// 设计要点:
|
|
813
|
+
// - 非 strict(宽松读取):config.json 是用户自有文件,未来版本追加字段不应使整份配置失效
|
|
814
|
+
// (zod 默认 strip 未知字段,safeParse 仍成功)
|
|
815
|
+
// - schema_version 可选:缺省 = v0 旧格式,与 v1 同结构(model/thinking_level/api_key)直接兼容,
|
|
816
|
+
// 不迁移不写回(决策 48:读侧兼容;用户下次在设置页保存时自然落新格式)
|
|
817
|
+
// - 校验仅在服务端执行(settings.ts 消费);client 只消费推断类型
|
|
818
|
+
export const userConfigFileSchema = z
|
|
819
|
+
.object({
|
|
820
|
+
schema_version: z.literal(1).optional(), // 格式版本;缺省 = v0 旧格式(同结构兼容)
|
|
821
|
+
model: z.string().optional(), // 当前模型名(缺省 deepseek-v4-flash)
|
|
822
|
+
thinking_level: z.enum(THINKING_LEVELS).optional(), // 思考强度(决策 34;缺省 high)
|
|
823
|
+
api_key: z.string().optional(), // DeepSeek API key(不入项目文件,决策 17)
|
|
824
|
+
})
|
|
825
|
+
.passthrough(); // 未知字段保留不校验(用户自有文件,未来版本追加字段不应使整份配置失效)
|
|
826
|
+
// ============ names 端点(endpoints.md「POST /api/v1/names/resolve」,决策 47 工具调用人类可读化) ============
|
|
827
|
+
// 批量名称解析:把工具参数中的 id 解析为人类可读名称(label = 类型中文,name = 实体名/节点标题)
|
|
828
|
+
// 前缀分流(char-/set-/loc-/hook-/ev-/tp-/ref- → 实体;vol-/ch-/sc- → 大纲节点;rel- → null;其余 → null)
|
|
829
|
+
export const namesResolveReqSchema = z
|
|
830
|
+
.object({
|
|
831
|
+
ids: z.array(z.string()).max(50), // 上限 50;服务端去重(保持请求顺序)
|
|
832
|
+
})
|
|
833
|
+
.strict();
|
|
834
|
+
export const namesResolveResSchema = z.object({
|
|
835
|
+
names: z.record(z.string(), z.object({ label: z.string(), name: z.string() }).nullable()),
|
|
836
|
+
});
|
|
765
837
|
// ============ SSE 事件(endpoints.md chat 端点事件流,第 738-765 行) ============
|
|
766
838
|
/** 心跳 ping(每 15-30s,决策 20):空 payload */
|
|
767
839
|
export const ssePingEventSchema = z.object({});
|