@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.
Files changed (37) hide show
  1. package/dist/constants/backup.d.ts +2 -2
  2. package/dist/constants/backup.d.ts.map +1 -1
  3. package/dist/constants/backup.js +2 -2
  4. package/dist/constants/backup.js.map +1 -1
  5. package/dist/constants/entity.d.ts +2 -4
  6. package/dist/constants/entity.d.ts.map +1 -1
  7. package/dist/constants/entity.js +10 -2
  8. package/dist/constants/entity.js.map +1 -1
  9. package/dist/constants/outline.d.ts +2 -0
  10. package/dist/constants/outline.d.ts.map +1 -1
  11. package/dist/constants/outline.js +6 -0
  12. package/dist/constants/outline.js.map +1 -1
  13. package/dist/types/api.d.ts +65 -18
  14. package/dist/types/api.d.ts.map +1 -1
  15. package/dist/types/api.js +81 -9
  16. package/dist/types/api.js.map +1 -1
  17. package/dist/types/entity.d.ts +6 -0
  18. package/dist/types/entity.d.ts.map +1 -1
  19. package/dist/types/project.d.ts +19 -3
  20. package/dist/types/project.d.ts.map +1 -1
  21. package/dist/types/tool.d.ts +6 -14
  22. package/dist/types/tool.d.ts.map +1 -1
  23. package/dist/types/tool.js +7 -5
  24. package/dist/types/tool.js.map +1 -1
  25. package/dist/utils/index.d.ts +1 -0
  26. package/dist/utils/index.d.ts.map +1 -1
  27. package/dist/utils/index.js +1 -0
  28. package/dist/utils/index.js.map +1 -1
  29. package/dist/utils/mapping.d.ts +4 -2
  30. package/dist/utils/mapping.d.ts.map +1 -1
  31. package/dist/utils/mapping.js +6 -4
  32. package/dist/utils/mapping.js.map +1 -1
  33. package/dist/utils/reference-file.d.ts +39 -0
  34. package/dist/utils/reference-file.d.ts.map +1 -0
  35. package/dist/utils/reference-file.js +131 -0
  36. package/dist/utils/reference-file.js.map +1 -0
  37. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /** 自动备份频率枚举(分钟,决策 27):null / 0 = 关闭;缺省见 DEFAULT_BACKUP_FREQUENCY_MINUTES */
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,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,8BAA+B,CAAC;AAE/D,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"}
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"}
@@ -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):null / 0 = 关闭;缺省见 DEFAULT_BACKUP_FREQUENCY_MINUTES */
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,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAE/D,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"}
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
- /** 参考资料分类枚举(决策 36:外部素材/灵感笔记,非本书正文;data.type 取值) */
6
- export declare const REFERENCE_TYPES: readonly ["material", "inspiration", "theory", "reference"];
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,mDAAmD;AACnD,eAAO,MAAM,eAAe,6DAA8D,CAAC;AAE3F,mCAAmC;AACnC,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;;;;;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"}
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"}
@@ -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
- /** 参考资料分类枚举(决策 36:外部素材/灵感笔记,非本书正文;data.type 取值) */
7
- export const REFERENCE_TYPES = ["material", "inspiration", "theory", "reference"];
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,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAK3F;;;;;;;;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"}
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"}
@@ -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 分类枚举 / content 全文长文本 / source 来源 / tags 标签数组) */
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.ZodEnum<{
152
- reference: "reference";
153
- material: "material";
154
- inspiration: "inspiration";
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.ZodEnum<{
217
- reference: "reference";
218
- material: "material";
219
- inspiration: "inspiration";
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
- prompt: z.ZodOptional<z.ZodString>;
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";
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
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, REFERENCE_TYPES, RELATION_TYPES } from "../constants/entity.js";
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 分类枚举 / content 全文长文本 / source 来源 / tags 标签数组) */
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.enum(REFERENCE_TYPES).optional(), // 缺省 material(写入侧兜底)
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: z.string().optional(),
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: z.string().optional(),
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):仅接受枚举 5/10/15/30/60(BACKUP_FREQUENCIES),其他(含 0)→ 400
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({});