@whispering233/ai-editor-tools 0.0.33 → 0.0.38

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 (60) hide show
  1. package/dist/analysis/conflict.d.ts.map +1 -1
  2. package/dist/analysis/conflict.js +4 -3
  3. package/dist/analysis/conflict.js.map +1 -1
  4. package/dist/analysis/hook.d.ts +16 -8
  5. package/dist/analysis/hook.d.ts.map +1 -1
  6. package/dist/analysis/hook.js +75 -27
  7. package/dist/analysis/hook.js.map +1 -1
  8. package/dist/analysis/utils.d.ts +2 -1
  9. package/dist/analysis/utils.d.ts.map +1 -1
  10. package/dist/analysis/utils.js +9 -2
  11. package/dist/analysis/utils.js.map +1 -1
  12. package/dist/context.js +1 -1
  13. package/dist/context.js.map +1 -1
  14. package/dist/executor/delta.d.ts.map +1 -1
  15. package/dist/executor/delta.js +22 -3
  16. package/dist/executor/delta.js.map +1 -1
  17. package/dist/executor/hook.d.ts.map +1 -1
  18. package/dist/executor/hook.js +45 -33
  19. package/dist/executor/hook.js.map +1 -1
  20. package/dist/executor/index.js +2 -2
  21. package/dist/executor/index.js.map +1 -1
  22. package/dist/executor/relation.d.ts.map +1 -1
  23. package/dist/executor/relation.js +18 -3
  24. package/dist/executor/relation.js.map +1 -1
  25. package/dist/index.js +38 -25
  26. package/dist/index.js.map +1 -1
  27. package/dist/proposal/delta.d.ts +12 -0
  28. package/dist/proposal/delta.d.ts.map +1 -1
  29. package/dist/proposal/delta.js +68 -0
  30. package/dist/proposal/delta.js.map +1 -1
  31. package/dist/proposal/hook.d.ts +3 -3
  32. package/dist/proposal/hook.d.ts.map +1 -1
  33. package/dist/proposal/hook.js +9 -9
  34. package/dist/proposal/hook.js.map +1 -1
  35. package/dist/proposal/relation.d.ts.map +1 -1
  36. package/dist/proposal/relation.js +13 -1
  37. package/dist/proposal/relation.js.map +1 -1
  38. package/dist/proposal/types.d.ts +11 -0
  39. package/dist/proposal/types.d.ts.map +1 -1
  40. package/dist/proposal/types.js +17 -0
  41. package/dist/proposal/types.js.map +1 -1
  42. package/dist/query/delta.d.ts +3 -2
  43. package/dist/query/delta.d.ts.map +1 -1
  44. package/dist/query/delta.js +4 -3
  45. package/dist/query/delta.js.map +1 -1
  46. package/dist/query/entity.d.ts +2 -2
  47. package/dist/query/entity.js +2 -2
  48. package/dist/schemas/delta.d.ts +2 -1
  49. package/dist/schemas/delta.d.ts.map +1 -1
  50. package/dist/schemas/delta.js +2 -1
  51. package/dist/schemas/delta.js.map +1 -1
  52. package/dist/schemas/proposal.d.ts +3 -2
  53. package/dist/schemas/proposal.d.ts.map +1 -1
  54. package/dist/schemas/proposal.js +3 -2
  55. package/dist/schemas/proposal.js.map +1 -1
  56. package/dist/schemas/relation.d.ts +2 -1
  57. package/dist/schemas/relation.d.ts.map +1 -1
  58. package/dist/schemas/relation.js +2 -1
  59. package/dist/schemas/relation.js.map +1 -1
  60. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  import type { ProposeAbandonHookArgs, ProposeAdvanceHookArgs, ProposeCreateHookArgs, ProposeResolveHookArgs, ProposeUpdateHookArgs } from "../schemas/index.js";
2
2
  import type { ToolContext } from "../context.js";
3
3
  import { type Proposal, type ToolProposalResult } from "./types.js";
4
- /** 产出创建伏笔提案(plant_at_node_id 可选指定埋设节点) */
4
+ /** 产出创建伏笔提案(plant_at_node_id 可选指定埋设章节点) */
5
5
  export declare function buildProposeCreateHook(ctx: ToolContext, args: ProposeCreateHookArgs): Proposal;
6
6
  /** propose_create_hook run */
7
7
  export declare function runProposeCreateHook(ctx: ToolContext, args: ProposeCreateHookArgs, signal?: AbortSignal): ToolProposalResult;
@@ -9,11 +9,11 @@ export declare function runProposeCreateHook(ctx: ToolContext, args: ProposeCrea
9
9
  export declare function buildProposeUpdateHook(ctx: ToolContext, args: ProposeUpdateHookArgs): Proposal;
10
10
  /** propose_update_hook run */
11
11
  export declare function runProposeUpdateHook(ctx: ToolContext, args: ProposeUpdateHookArgs, signal?: AbortSignal): ToolProposalResult;
12
- /** 产出推进伏笔提案(确认后复合写:delta 记 status=progressing + advances 关系) */
12
+ /** 产出推进伏笔提案(确认后复合写:delta 记 status=progressing + advances 关系;node_id 仅章) */
13
13
  export declare function buildProposeAdvanceHook(ctx: ToolContext, args: ProposeAdvanceHookArgs): Proposal;
14
14
  /** propose_advance_hook run */
15
15
  export declare function runProposeAdvanceHook(ctx: ToolContext, args: ProposeAdvanceHookArgs, signal?: AbortSignal): ToolProposalResult;
16
- /** 产出回收伏笔提案(确认后复合写:delta 记 status=resolved + resolves 关系) */
16
+ /** 产出回收伏笔提案(确认后复合写:delta 记 status=resolved + resolves 关系;node_id 仅章) */
17
17
  export declare function buildProposeResolveHook(ctx: ToolContext, args: ProposeResolveHookArgs): Proposal;
18
18
  /** propose_resolve_hook run */
19
19
  export declare function runProposeResolveHook(ctx: ToolContext, args: ProposeResolveHookArgs, signal?: AbortSignal): ToolProposalResult;
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/proposal/hook.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAmG,KAAK,QAAQ,EAA0B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7L,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAgB9F;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,qCAAqC;AACrC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAU9F;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,gEAAgE;AAChE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAUhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,6DAA6D;AAC7D,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAUhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,gDAAgD;AAChD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAShG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/proposal/hook.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAmG,KAAK,QAAQ,EAA0B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7L,2CAA2C;AAC3C,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAgB9F;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,qCAAqC;AACrC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAU9F;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,qBAAqB,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAUhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAUhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,gDAAgD;AAChD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAShG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB"}
@@ -8,16 +8,16 @@
8
8
  // 生成时校验:
9
9
  // - 伏笔即 type=hook 的实体(用户手动创建或 AI 提案创建)——requireHook 校验
10
10
  // 存在、未软删且类型一致,采集实体自身 updated_at 快照
11
- // - 推进/回收的节点(node_id)与埋设节点(plant_at_node_id)存在且未软删——
12
- // 节点级 updated_at 快照
11
+ // - 推进/回收的节点(node_id)与埋设节点(plant_at_node_id)为**章**(存在且未软删——
12
+ // requireChapterNode,卡片 1.3:伏笔锚点仅章,卷/场景拒绝)——节点级 updated_at 快照
13
13
  // - 确认后的复合写(delta_records 记 status + relation_records 插 advances/resolves,
14
14
  // 一次提交、幂等)由 S6.7 执行工具承担,本模块只产出提案
15
- import { buildProposal, checkProposalAborted, refEntity, refOutlineNode, requireHook, requireOutlineNode } from "./types.js";
16
- /** 产出创建伏笔提案(plant_at_node_id 可选指定埋设节点) */
15
+ import { buildProposal, checkProposalAborted, refEntity, refOutlineNode, requireChapterNode, requireHook } from "./types.js";
16
+ /** 产出创建伏笔提案(plant_at_node_id 可选指定埋设章节点) */
17
17
  export function buildProposeCreateHook(ctx, args) {
18
18
  const references = [];
19
19
  if (args.plant_at_node_id !== undefined) {
20
- references.push(refOutlineNode(requireOutlineNode(ctx, args.plant_at_node_id)));
20
+ references.push(refOutlineNode(requireChapterNode(ctx, args.plant_at_node_id)));
21
21
  }
22
22
  return buildProposal(ctx, "propose_create_hook", {
23
23
  name: args.name,
@@ -43,10 +43,10 @@ export function runProposeUpdateHook(ctx, args, signal) {
43
43
  const proposal = buildProposeUpdateHook(ctx, args);
44
44
  return { proposal_id: proposal.proposal_id, summary: proposal.summary };
45
45
  }
46
- /** 产出推进伏笔提案(确认后复合写:delta 记 status=progressing + advances 关系) */
46
+ /** 产出推进伏笔提案(确认后复合写:delta 记 status=progressing + advances 关系;node_id 仅章) */
47
47
  export function buildProposeAdvanceHook(ctx, args) {
48
48
  const hook = requireHook(ctx, args.hook_id);
49
- const node = requireOutlineNode(ctx, args.node_id);
49
+ const node = requireChapterNode(ctx, args.node_id);
50
50
  return buildProposal(ctx, "propose_advance_hook", { hook_id: args.hook_id, node_id: args.node_id, description: args.description }, [refEntity(hook), refOutlineNode(node)], `推进伏笔「${hook.name}」到节点 ${args.node_id}`);
51
51
  }
52
52
  /** propose_advance_hook run */
@@ -55,10 +55,10 @@ export function runProposeAdvanceHook(ctx, args, signal) {
55
55
  const proposal = buildProposeAdvanceHook(ctx, args);
56
56
  return { proposal_id: proposal.proposal_id, summary: proposal.summary };
57
57
  }
58
- /** 产出回收伏笔提案(确认后复合写:delta 记 status=resolved + resolves 关系) */
58
+ /** 产出回收伏笔提案(确认后复合写:delta 记 status=resolved + resolves 关系;node_id 仅章) */
59
59
  export function buildProposeResolveHook(ctx, args) {
60
60
  const hook = requireHook(ctx, args.hook_id);
61
- const node = requireOutlineNode(ctx, args.node_id);
61
+ const node = requireChapterNode(ctx, args.node_id);
62
62
  return buildProposal(ctx, "propose_resolve_hook", { hook_id: args.hook_id, node_id: args.node_id, description: args.description }, [refEntity(hook), refOutlineNode(node)], `回收伏笔「${hook.name}」于节点 ${args.node_id}`);
63
63
  }
64
64
  /** propose_resolve_hook run */
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/proposal/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/proposal/hook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/proposal/relation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAqE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvI,0CAA0C;AAC1C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CAmBhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,6BAA6B;AAC7B,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,GAAG,QAAQ,CAYtG;AAED,kCAAkC;AAClC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,yBAAyB,EAC/B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB"}
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/proposal/relation.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAyF,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE3J,0CAA0C;AAC1C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,QAAQ,CA2BhG;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB;AAED,6BAA6B;AAC7B,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,GAAG,QAAQ,CAYtG;AAED,kCAAkC;AAClC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,yBAAyB,EAC/B,MAAM,CAAC,EAAE,WAAW,GACnB,kBAAkB,CAIpB"}
@@ -8,14 +8,26 @@
8
8
  // - propose_add_relation:source/target 端点存在且未软删(resolveEndpoint:实体表优先、
9
9
  // 其次大纲树),采集各端点 updated_at 快照;args 规范化为执行形态
10
10
  // (source_type/source_id/target_type/target_id/relation_type/metadata——S6.7 执行时可直接透传)
11
+ // - **伏笔锚点仅章(卡片 1.3 + 5.2)**:`plants`/`advances`/`resolves` **无条件**要求源端为
12
+ // **章**大纲节点(requireChapterNode,与 REST 创建路径 server relation.ts 同口径)——
13
+ // 卷/场景拒绝;「源端为实体」的反向组合(无消费者,数据卫生)同样拒绝。
11
14
  // - propose_remove_relation:关系存在且可见(getRelation 已含端点软删联动过滤),
12
15
  // 采集关系自身 updated_at 快照
13
16
  import { getRelation } from "@whispering233/ai-editor-db";
14
- import { buildProposal, checkProposalAborted, refRelation, resolveEndpoint } from "./types.js";
17
+ import { HOOK_RELATION_TYPES } from "@whispering233/ai-editor-shared";
18
+ import { buildProposal, checkProposalAborted, refRelation, requireChapterNode, resolveEndpoint } from "./types.js";
15
19
  /** 产出新增关系提案(端点类型生成时自动识别,执行形态规范化到 args) */
16
20
  export function buildProposeAddRelation(ctx, args) {
17
21
  const source = resolveEndpoint(ctx, args.source);
18
22
  const target = resolveEndpoint(ctx, args.target);
23
+ // 伏笔关系源端仅章(卡片 1.3 + 5.2):先拒非大纲节点源端(反向组合无消费者),
24
+ // 再校验大纲节点为章——两步文案分开,避免「实体源端」报成「大纲节点不存在」误导
25
+ if (HOOK_RELATION_TYPES.includes(args.type)) {
26
+ if (source.type !== "outline_node") {
27
+ throw new Error(`伏笔关系(${args.type})的源端须为章大纲节点,当前为 ${source.type}: ${args.source}`);
28
+ }
29
+ requireChapterNode(ctx, args.source);
30
+ }
19
31
  // 执行信息:派生端点类型 + 原样透传 relation_type/metadata(S6.7 add_relation 直接消费)
20
32
  const executeArgs = {
21
33
  source_type: source.type,
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/proposal/relation.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,EAAE;AACF,SAAS;AACT,uEAAuE;AACvE,2CAA2C;AAC3C,sFAAsF;AACtF,6DAA6D;AAC7D,uBAAuB;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAA0C,MAAM,YAAY,CAAC;AAEvI,0CAA0C;AAC1C,MAAM,UAAU,uBAAuB,CAAC,GAAgB,EAAE,IAA4B;IACpF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,oEAAoE;IACnE,MAAM,WAAW,GAA4B;QAC3C,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACpE,CAAC;IACF,OAAO,aAAa,CAClB,GAAG,EACH,sBAAsB,EACtB,WAAW,EACX,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EACxB,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,qBAAqB,CACnC,GAAgB,EAChB,IAA4B,EAC5B,MAAoB;IAEpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,0BAA0B,CAAC,GAAgB,EAAE,IAA+B;IAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACvE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,aAAa,CAClB,GAAG,EACH,yBAAyB,EACzB,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EACjC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EACvB,QAAQ,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,EAAE,CAC/H,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,wBAAwB,CACtC,GAAgB,EAChB,IAA+B,EAC/B,MAAoB;IAEpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/proposal/relation.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,EAAE;AACF,SAAS;AACT,uEAAuE;AACvE,2CAA2C;AAC3C,sFAAsF;AACtF,yEAAyE;AACzE,qEAAqE;AACrE,sCAAsC;AACtC,6DAA6D;AAC7D,uBAAuB;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAA0C,MAAM,YAAY,CAAC;AAE3J,0CAA0C;AAC1C,MAAM,UAAU,uBAAuB,CAAC,GAAgB,EAAE,IAA4B;IACpF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,8CAA8C;IAC9C,0CAA0C;IACzC,IAAK,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,mBAAmB,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACF,oEAAoE;IACnE,MAAM,WAAW,GAA4B;QAC3C,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,aAAa,EAAE,IAAI,CAAC,IAAI;QACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACpE,CAAC;IACF,OAAO,aAAa,CAClB,GAAG,EACH,sBAAsB,EACtB,WAAW,EACX,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EACxB,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,qBAAqB,CACnC,GAAgB,EAChB,IAA4B,EAC5B,MAAoB;IAEpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,0BAA0B,CAAC,GAAgB,EAAE,IAA+B;IAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACvE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,aAAa,CAClB,GAAG,EACH,yBAAyB,EACzB,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EACjC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EACvB,QAAQ,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,EAAE,CAC/H,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,wBAAwB,CACtC,GAAgB,EAChB,IAA+B,EAC/B,MAAoB;IAEpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC"}
@@ -68,6 +68,17 @@ export declare function resolveEndpoint(ctx: ToolContext, id: string): {
68
68
  * 供 propose_add_delta 触发节点 / propose_outline_node 父节点 / move / delete / hook 埋设节点复用。
69
69
  */
70
70
  export declare function requireOutlineNode(ctx: ToolContext, nodeId: string): OutlineFileNode;
71
+ /**
72
+ * 按 id 取**章**节点(存在且未软删 + `type === "chapter"`);否则抛错。
73
+ * **锚点仅章**:伏笔锚点(卡片 1.3:埋设 / 推进 / 回收)与变更记录锚点(卡片 1.5)
74
+ * 一律为章——卷太粗、场景太碎(见 `docs/db/schema.md` 关系类型表、
75
+ * `docs/design/10-data-model.md` §14.7)。
76
+ * 与 REST 创建路径(`server/src/routes/relation.ts` / `server/src/routes/delta.ts` 校验)同口径;
77
+ * **executor 直写 db 绕过 REST 校验**,故提案层与 executor 层都调本函数(双管)。
78
+ *
79
+ * @param label 错误文案前缀(默认「伏笔锚点」;变更记录锚点传入「变更记录锚点」)
80
+ */
81
+ export declare function requireChapterNode(ctx: ToolContext, nodeId: string, label?: string): OutlineFileNode;
71
82
  /**
72
83
  * 按 id 取伏笔实体(type === "hook" 且未软删,类型一致性校验);否则抛错。
73
84
  * 伏笔即 type=hook 的实体(用户手动创建或 AI 提案创建),快照用实体自身 updated_at。
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/proposal/types.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,mDAAmD;AACnD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAErF,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACZ,iDAAiD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,QAAQ;IACxB,6BAA6B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACtC,IAAI,EAAE,MAAM,CAAC;IACd,gDAAgD;IAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,qCAAqC;IACpC,UAAU,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IACjC,kCAAkC;IACjC,OAAO,EAAE,MAAM,CAAC;IACjB;;;;MAIE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,2CAA2C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,CAWV;AAED,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,iBAAiB,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAE/D;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,CAa1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAMpF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAMvE;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/proposal/types.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,mDAAmD;AACnD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAErF,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACZ,iDAAiD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,QAAQ;IACxB,6BAA6B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACtC,IAAI,EAAE,MAAM,CAAC;IACd,gDAAgD;IAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,qCAAqC;IACpC,UAAU,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IACjC,kCAAkC;IACjC,OAAO,EAAE,MAAM,CAAC;IACjB;;;;MAIE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,2CAA2C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,CAWV;AAED,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,iBAAiB,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAE/D;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,CAa1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAMpF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAS,GAAG,eAAe,CAMpG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAMvE;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAE/D"}
@@ -91,6 +91,23 @@ export function requireOutlineNode(ctx, nodeId) {
91
91
  }
92
92
  return node;
93
93
  }
94
+ /**
95
+ * 按 id 取**章**节点(存在且未软删 + `type === "chapter"`);否则抛错。
96
+ * **锚点仅章**:伏笔锚点(卡片 1.3:埋设 / 推进 / 回收)与变更记录锚点(卡片 1.5)
97
+ * 一律为章——卷太粗、场景太碎(见 `docs/db/schema.md` 关系类型表、
98
+ * `docs/design/10-data-model.md` §14.7)。
99
+ * 与 REST 创建路径(`server/src/routes/relation.ts` / `server/src/routes/delta.ts` 校验)同口径;
100
+ * **executor 直写 db 绕过 REST 校验**,故提案层与 executor 层都调本函数(双管)。
101
+ *
102
+ * @param label 错误文案前缀(默认「伏笔锚点」;变更记录锚点传入「变更记录锚点」)
103
+ */
104
+ export function requireChapterNode(ctx, nodeId, label = "伏笔锚点") {
105
+ const node = requireOutlineNode(ctx, nodeId);
106
+ if (node.type !== "chapter") {
107
+ throw new Error(`${label}须为章(卷/场景不承载): ${nodeId}`);
108
+ }
109
+ return node;
110
+ }
94
111
  /**
95
112
  * 按 id 取伏笔实体(type === "hook" 且未软删,类型一致性校验);否则抛错。
96
113
  * 伏笔即 type=hook 的实体(用户手动创建或 AI 提案创建),快照用实体自身 updated_at。
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/proposal/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/proposal/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,uDAAuD;AACvD,iEAAiE;AACjE,gCAAgC;AAChC,EAAE;AACF,UAAU;AACV,kDAAkD;AAClD,mDAAmD;AACnD,kDAAkD;AAClD,mDAAmD;AACnD,yCAAyC;AACzC,8DAA8D;AAC9D,0CAA0C;AAC1C,8CAA8C;AAC9C,wCAAwC;AACxC,yCAAyC;AACzC,iFAAiF;AACjF,8DAA8D;AAC9D,0CAA0C;AAC1C,EAAE;AACF,uDAAuD;AACvD,6DAA6D;AAC7D,qDAAqD;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA2CtD;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAgB,EAChB,IAAY,EACZ,IAA6B,EAC7B,UAA+B,EAC/B,OAAe,EACf,OAAiC;IAEjC,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,UAAU,CAAC;QAC1C,IAAI;QACJ,IAAI;QACJ,UAAU,EAAE,GAAG,CAAC,SAAS;QACzB,UAAU;QACV,OAAO;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,GAAc;IACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;AACpE,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;AACtE,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,cAAc,CAAC,IAAqB;IAClD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAgB,EAChB,EAAU;IAEV,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB,EAAE,MAAc;IACjE,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB,EAAE,MAAc,EAAE,KAAK,GAAG,MAAM;IACjF,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAgB,EAAE,MAAc;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,cAAc,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
@@ -3,8 +3,9 @@ import type { ToolContext } from "../context.js";
3
3
  import type { ComputeStateArgs, GetDeltaHistoryArgs } from "../schemas/index.js";
4
4
  /**
5
5
  * 实体到达指定节点时的累积状态(compute_state(target_type, target_id, at_node_id))。
6
- * 透传 db computeState:只沿大纲树父链(根 at_node_id)累积已确认 Delta,
7
- * 节点间按树路径序、节点内按 order 双层排序;plot_edge 不参与;op=update from 校验失败
6
+ * 透传 db computeState:按**章序前缀**累积已确认 Delta(状态 = 初始 data + 章序 ≤ 目标进度章的
7
+ * 全部章;目标节点 进度章:章→自身、场景→所属章、卷→该卷最后一个未软删章),
8
+ * 先按章序、同章内按 order 双层排序;plot_edge 不参与;op=update from 校验失败
8
9
  * **跳过该 change 并继续累积**,结果在 conflicts 中标注 { field, expected, actual }
9
10
  * (不返回 409——手动编辑 data 属正常用户行为)。
10
11
  * 目标实体不存在/已软删 → null;at_node_id 不存在 → db 抛错(上层按工具失败处理)。
@@ -1 +1 @@
1
- {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/query/delta.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIjF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI,CAMnG;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,GAAG,WAAW,EAAE,CAE7F"}
1
+ {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/query/delta.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIjF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI,CAMnG;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,GAAG,WAAW,EAAE,CAE7F"}
@@ -2,7 +2,7 @@
2
2
  // compute_state / get_delta_history(「状态查询(Delta 相关)」)
3
3
  //
4
4
  // db 层能力确认与分工(S6.3 修复轮:数据访问一律走 db 查询层,工具层无原生 SQL):
5
- // - compute_state:db computeState 已封装全部语义(父链双层排序累积、op=update from
5
+ // - compute_state:db computeState 已封装全部语义(章序前缀双层排序累积、op=update from
6
6
  // 校验失败跳过 + conflicts 标注不返回 409、软删过滤、目标实体缺失返回 null)——
7
7
  // 工具层参数映射透传;at_node_id 不存在时 db 抛错(视为调用方 bug,路由层前置校验
8
8
  // 的约定),工具层不捕获——executor 统一转结构化错误喂回 LLM 自纠
@@ -13,8 +13,9 @@ import { computeState as dbComputeState, listDeltasByTarget } from "@whispering2
13
13
  // ============ compute_state ============
14
14
  /**
15
15
  * 实体到达指定节点时的累积状态(compute_state(target_type, target_id, at_node_id))。
16
- * 透传 db computeState:只沿大纲树父链(根 at_node_id)累积已确认 Delta,
17
- * 节点间按树路径序、节点内按 order 双层排序;plot_edge 不参与;op=update from 校验失败
16
+ * 透传 db computeState:按**章序前缀**累积已确认 Delta(状态 = 初始 data + 章序 ≤ 目标进度章的
17
+ * 全部章;目标节点 进度章:章→自身、场景→所属章、卷→该卷最后一个未软删章),
18
+ * 先按章序、同章内按 order 双层排序;plot_edge 不参与;op=update from 校验失败
18
19
  * **跳过该 change 并继续累积**,结果在 conflicts 中标注 { field, expected, actual }
19
20
  * (不返回 409——手动编辑 data 属正常用户行为)。
20
21
  * 目标实体不存在/已软删 → null;at_node_id 不存在 → db 抛错(上层按工具失败处理)。
@@ -1 +1 @@
1
- {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/query/delta.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,sDAAsD;AACtD,EAAE;AACF,mDAAmD;AACnD,kEAAkE;AAClE,qDAAqD;AACrD,oDAAoD;AACpD,0CAA0C;AAC1C,iEAAiE;AACjE,kDAAkD;AAClD,sCAAsC;AAEtC,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjG,0CAA0C;AAE1C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAgB,EAAE,IAAsB;IACtE,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE;QAC5C,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,QAAQ,EAAE,IAAI,CAAC,UAAU;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,8CAA8C;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB,EAAE,IAAyB;IAC5E,OAAO,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/query/delta.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,sDAAsD;AACtD,EAAE;AACF,mDAAmD;AACnD,oEAAoE;AACpE,qDAAqD;AACrD,oDAAoD;AACpD,0CAA0C;AAC1C,iEAAiE;AACjE,kDAAkD;AAClD,sCAAsC;AAEtC,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjG,0CAA0C;AAE1C;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAgB,EAAE,IAAsB;IACtE,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE;QAC5C,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,QAAQ,EAAE,IAAI,CAAC,UAAU;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,8CAA8C;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB,EAAE,IAAyB;IAC5E,OAAO,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC"}
@@ -22,8 +22,8 @@ export declare function runSearchEntities(ctx: ToolContext, args: SearchEntities
22
22
  /**
23
23
  * 实体聚合统计(get_entity_summary(type) → 总数、角色分布、能力分布等)。
24
24
  * 透传 db getEntitySummaryStats:仅统计非软删实体;分布字段按类型
25
- * 稀疏出现(character→byRole/byStatus/topAbilities、setting→byTags(分类由
26
- * rules 标签承接)、location→byType、hook→byStatus/byPayoffTiming),缺字段不报错。
25
+ * 稀疏出现(character→byRole/topAbilities(**能力面板顶层分组名**;status 分布已随字段移除)、
26
+ * setting→byTags(分类由 tags 承接)、location→byType、hook→byStatus/byPayoffTiming),缺字段不报错。
27
27
  */
28
28
  export declare function runGetEntitySummary(ctx: ToolContext, args: GetEntitySummaryArgs): EntitySummaryStats;
29
29
  //# sourceMappingURL=entity.d.ts.map
@@ -42,8 +42,8 @@ export function runSearchEntities(ctx, args) {
42
42
  /**
43
43
  * 实体聚合统计(get_entity_summary(type) → 总数、角色分布、能力分布等)。
44
44
  * 透传 db getEntitySummaryStats:仅统计非软删实体;分布字段按类型
45
- * 稀疏出现(character→byRole/byStatus/topAbilities、setting→byTags(分类由
46
- * rules 标签承接)、location→byType、hook→byStatus/byPayoffTiming),缺字段不报错。
45
+ * 稀疏出现(character→byRole/topAbilities(**能力面板顶层分组名**;status 分布已随字段移除)、
46
+ * setting→byTags(分类由 tags 承接)、location→byType、hook→byStatus/byPayoffTiming),缺字段不报错。
47
47
  */
48
48
  export function runGetEntitySummary(ctx, args) {
49
49
  return getEntitySummaryStats(ctx.db, args.type);
@@ -14,7 +14,8 @@ export declare const deltaChangeSchema: Type.TObject<{
14
14
  }>;
15
15
  /**
16
16
  * compute_state 入参(与 POST /api/v1/delta/compute 同构,api.ts deltaComputeReqSchema):
17
- * 目标实体到达 at_node_id 时的累积状态(只沿大纲树父链累积已确认 Delta)
17
+ * 目标实体到达 at_node_id 时的累积状态(**章序前缀**累积:《章序 ≤ 目标进度章》的全部章,
18
+ * 跨卷/跨章;目标节点 → 进度章:章→自身、场景→所属章、卷→该卷最后一个未软删章)
18
19
  */
19
20
  export declare const computeStateArgsSchema: Type.TObject<{
20
21
  target_type: Type.TString;
@@ -1 +1 @@
1
- {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/schemas/delta.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG1D,oCAAoC;AACpC,eAAO,MAAM,aAAa,mDAA0D,CAAC;AAErF,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB;;;IAI1B,6BAA6B;;IAE7B,oDAAoD;;IAEpD,2BAA2B;;EAI9B,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;EAOlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;;;EAMrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/schemas/delta.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG1D,oCAAoC;AACpC,eAAO,MAAM,aAAa,mDAA0D,CAAC;AAErF,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB;;;IAI1B,6BAA6B;;IAE7B,oDAAoD;;IAEpD,2BAA2B;;EAI9B,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;EAOlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;;;EAMrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -20,7 +20,8 @@ export const deltaChangeSchema = Type.Object({
20
20
  }, { additionalProperties: false });
21
21
  /**
22
22
  * compute_state 入参(与 POST /api/v1/delta/compute 同构,api.ts deltaComputeReqSchema):
23
- * 目标实体到达 at_node_id 时的累积状态(只沿大纲树父链累积已确认 Delta)
23
+ * 目标实体到达 at_node_id 时的累积状态(**章序前缀**累积:《章序 ≤ 目标进度章》的全部章,
24
+ * 跨卷/跨章;目标节点 → 进度章:章→自身、场景→所属章、卷→该卷最后一个未软删章)
24
25
  */
25
26
  export const computeStateArgsSchema = Type.Object({
26
27
  target_type: Type.String(),
@@ -1 +1 @@
1
- {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/schemas/delta.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,iFAAiF;AACjF,wDAAwD;AACxD,wFAAwF;AAExF,OAAO,EAAE,IAAI,EAAe,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC,CAAC;AAErF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAC1C;IACE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;IACpB,EAAE,EAAE,aAAa;IACjB,6BAA6B;IAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,oDAAoD;IACpD,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,2BAA2B;IAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACjE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAC/C;IACE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;CAC1B,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAIF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAClD;IACE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;CACzB,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
1
+ {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/schemas/delta.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,iFAAiF;AACjF,wDAAwD;AACxD,wFAAwF;AAExF,OAAO,EAAE,IAAI,EAAe,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC,CAAC;AAErF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAC1C;IACE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;IACpB,EAAE,EAAE,aAAa;IACjB,6BAA6B;IAC7B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,oDAAoD;IACpD,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,2BAA2B;IAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACjE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAC/C;IACE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;CAC1B,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAIF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAClD;IACE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;CACzB,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
@@ -19,7 +19,8 @@ export declare const proposeDeleteEntityArgsSchema: Type.TObject<{
19
19
  export type ProposeDeleteEntityArgs = Static<typeof proposeDeleteEntityArgsSchema>;
20
20
  /**
21
21
  * propose_add_relation 入参:source/target 为端点 id(实体 id 或大纲节点 id,类型生成时自动识别);
22
- * type 白名单(16 种,含 plot_edge/plants/advances/resolves);metadata 可选
22
+ * type 白名单(预定义全集 = `RELATION_TYPES`,含 plot_edge/plants/advances/resolves…;
23
+ * **作者在界面自定义的类型 AI 不可创建**);metadata 可选
23
24
  */
24
25
  export declare const proposeAddRelationArgsSchema: Type.TObject<{
25
26
  source: Type.TString;
@@ -33,7 +34,7 @@ export declare const proposeRemoveRelationArgsSchema: Type.TObject<{
33
34
  relation_id: Type.TString;
34
35
  }>;
35
36
  export type ProposeRemoveRelationArgs = Static<typeof proposeRemoveRelationArgsSchema>;
36
- /** propose_add_delta 入参:node_id(触发节点)+ target(变更目标)+ changes(至少一项) */
37
+ /** propose_add_delta 入参:node_id(触发节点,**仅章**)+ target(变更目标)+ changes(至少一项) */
37
38
  export declare const proposeAddDeltaArgsSchema: Type.TObject<{
38
39
  node_id: Type.TString;
39
40
  target: Type.TString;
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/schemas/proposal.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAY1D,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B;;;;EAOzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEnF,mEAAmE;AACnE,eAAO,MAAM,6BAA6B;;;EAMzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEnF,yDAAyD;AACzD,eAAO,MAAM,6BAA6B;;EAKzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAInF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;EAQxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,gEAAgE;AAChE,eAAO,MAAM,+BAA+B;;EAK3C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAIvF,sEAAsE;AACtE,eAAO,MAAM,yBAAyB;;;;;;;;;;EAOrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI3E,oGAAoG;AACpG,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;EAOrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,uDAAuD;AACvD,eAAO,MAAM,2BAA2B;;EAKvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B;;;;EAOvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B;;;EAMvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B;;;EAMxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAIjF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC;;EAK9C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAI7F;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;EAS5C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/schemas/proposal.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAY1D,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B;;;;EAOzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEnF,mEAAmE;AACnE,eAAO,MAAM,6BAA6B;;;EAMzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEnF,yDAAyD;AACzD,eAAO,MAAM,6BAA6B;;EAKzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAInF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;EAQxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,gEAAgE;AAChE,eAAO,MAAM,+BAA+B;;EAK3C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAIvF,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB;;;;;;;;;;EAOrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI3E,oGAAoG;AACpG,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;EAOrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,uDAAuD;AACvD,eAAO,MAAM,2BAA2B;;EAKvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI/E,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B;;;;EAOvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B;;;EAMvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE/E,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;;EAOxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEjF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B;;;EAMxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAIjF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC;;EAK9C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAI7F;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;EAS5C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -31,7 +31,8 @@ export const proposeDeleteEntityArgsSchema = Type.Object({
31
31
  // ============ 关系(proposal/relation.ts) ============
32
32
  /**
33
33
  * propose_add_relation 入参:source/target 为端点 id(实体 id 或大纲节点 id,类型生成时自动识别);
34
- * type 白名单(16 种,含 plot_edge/plants/advances/resolves);metadata 可选
34
+ * type 白名单(预定义全集 = `RELATION_TYPES`,含 plot_edge/plants/advances/resolves…;
35
+ * **作者在界面自定义的类型 AI 不可创建**);metadata 可选
35
36
  */
36
37
  export const proposeAddRelationArgsSchema = Type.Object({
37
38
  source: Type.String(),
@@ -44,7 +45,7 @@ export const proposeRemoveRelationArgsSchema = Type.Object({
44
45
  relation_id: Type.String(),
45
46
  }, { additionalProperties: false });
46
47
  // ============ Delta(proposal/delta.ts) ============
47
- /** propose_add_delta 入参:node_id(触发节点)+ target(变更目标)+ changes(至少一项) */
48
+ /** propose_add_delta 入参:node_id(触发节点,**仅章**)+ target(变更目标)+ changes(至少一项) */
48
49
  export const proposeAddDeltaArgsSchema = Type.Object({
49
50
  node_id: Type.String(),
50
51
  target: Type.String(),
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/schemas/proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/schemas/proposal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Type, type Static } from "@earendil-works/pi-ai";
2
- /** 关系类型白名单(预定义 16 种;工具参数由 LLM 生成,枚举提前拦非法值——与 REST 层的宽松 string 不同) */
2
+ /** 关系类型白名单(预定义全集 = `RELATION_TYPES`;工具参数由 LLM 生成,枚举提前拦非法值——
3
+ * 与 REST 层的自由字符串(可自定义)不同;自定义类型 AI 只能读到、不能创建) */
3
4
  export declare const relationTypeSchema: Type.TUnsafe<"belongs_to" | "owns" | "masters" | "ally" | "rival" | "mentor" | "family" | "kills" | "appears_in" | "occurs_at" | "plot_edge" | "plants" | "advances" | "resolves" | "depends_on" | "involves" | "occurs_in">;
4
5
  /**
5
6
  * query_relationships 入参:source_type/target_type 为自由字符串(实体类型或 outline_node);
@@ -1 +1 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/schemas/relation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI1D,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,8NAA6B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;EAUxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/schemas/relation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI1D;gDACgD;AAChD,eAAO,MAAM,kBAAkB,8NAA6B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;EAUxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -2,7 +2,8 @@
2
2
  import { Type } from "@earendil-works/pi-ai";
3
3
  import { RELATION_TYPES } from "@whispering233/ai-editor-shared";
4
4
  import { stringEnum } from "./helpers.js";
5
- /** 关系类型白名单(预定义 16 种;工具参数由 LLM 生成,枚举提前拦非法值——与 REST 层的宽松 string 不同) */
5
+ /** 关系类型白名单(预定义全集 = `RELATION_TYPES`;工具参数由 LLM 生成,枚举提前拦非法值——
6
+ * 与 REST 层的自由字符串(可自定义)不同;自定义类型 AI 只能读到、不能创建) */
6
7
  export const relationTypeSchema = stringEnum(RELATION_TYPES);
7
8
  /**
8
9
  * query_relationships 入参:source_type/target_type 为自由字符串(实体类型或 outline_node);
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/schemas/relation.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,EAAE,IAAI,EAAe,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC,MAAM,CACrD;IACE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/schemas/relation.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,EAAE,IAAI,EAAe,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;gDACgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC,MAAM,CACrD;IACE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CACvE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whispering233/ai-editor-tools",
3
- "version": "0.0.33",
3
+ "version": "0.0.38",
4
4
  "license": "MIT",
5
5
  "description": "AI 工具目录:工具定义 + 执行器",
6
6
  "type": "module",
@@ -27,8 +27,8 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@earendil-works/pi-ai": "0.85.1",
30
- "@whispering233/ai-editor-db": "0.0.33",
31
- "@whispering233/ai-editor-shared": "0.0.33"
30
+ "@whispering233/ai-editor-db": "0.0.38",
31
+ "@whispering233/ai-editor-shared": "0.0.38"
32
32
  },
33
33
  "devDependencies": {
34
34
  "typescript": "^5.8.0"