@whispering233/ai-editor-tools 0.0.29 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/analysis/conflict.d.ts +3 -3
  2. package/dist/analysis/conflict.d.ts.map +1 -1
  3. package/dist/analysis/conflict.js +1 -1
  4. package/dist/analysis/consistency.d.ts +3 -3
  5. package/dist/analysis/consistency.d.ts.map +1 -1
  6. package/dist/analysis/consistency.js +4 -4
  7. package/dist/analysis/consistency.js.map +1 -1
  8. package/dist/analysis/hook.d.ts +13 -13
  9. package/dist/analysis/hook.d.ts.map +1 -1
  10. package/dist/analysis/hook.js +9 -9
  11. package/dist/analysis/hook.js.map +1 -1
  12. package/dist/analysis/orphan.d.ts +3 -3
  13. package/dist/analysis/orphan.d.ts.map +1 -1
  14. package/dist/analysis/orphan.js +3 -3
  15. package/dist/analysis/orphan.js.map +1 -1
  16. package/dist/analysis/path.d.ts +4 -4
  17. package/dist/analysis/path.d.ts.map +1 -1
  18. package/dist/analysis/path.js +4 -4
  19. package/dist/analysis/path.js.map +1 -1
  20. package/dist/analysis/suggest.d.ts +3 -3
  21. package/dist/analysis/suggest.d.ts.map +1 -1
  22. package/dist/analysis/suggest.js +1 -1
  23. package/dist/context.d.ts +1 -1
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +1 -1
  26. package/dist/context.js.map +1 -1
  27. package/dist/executor/delta.d.ts +1 -1
  28. package/dist/executor/delta.d.ts.map +1 -1
  29. package/dist/executor/delta.js +1 -1
  30. package/dist/executor/delta.js.map +1 -1
  31. package/dist/executor/entity.d.ts +3 -3
  32. package/dist/executor/entity.d.ts.map +1 -1
  33. package/dist/executor/entity.js +5 -5
  34. package/dist/executor/entity.js.map +1 -1
  35. package/dist/executor/hook.d.ts +3 -3
  36. package/dist/executor/hook.d.ts.map +1 -1
  37. package/dist/executor/hook.js +12 -12
  38. package/dist/executor/hook.js.map +1 -1
  39. package/dist/executor/index.d.ts +0 -2
  40. package/dist/executor/index.d.ts.map +1 -1
  41. package/dist/executor/index.js +2 -2
  42. package/dist/executor/index.js.map +1 -1
  43. package/dist/executor/outline.d.ts +3 -3
  44. package/dist/executor/outline.d.ts.map +1 -1
  45. package/dist/executor/outline.js +4 -4
  46. package/dist/executor/outline.js.map +1 -1
  47. package/dist/executor/reference.js +2 -2
  48. package/dist/executor/reference.js.map +1 -1
  49. package/dist/executor/relation.d.ts +2 -2
  50. package/dist/executor/relation.d.ts.map +1 -1
  51. package/dist/executor/relation.js +3 -3
  52. package/dist/executor/relation.js.map +1 -1
  53. package/dist/executor/reorder-timepoints.d.ts +1 -1
  54. package/dist/executor/reorder-timepoints.d.ts.map +1 -1
  55. package/dist/executor/reorder-timepoints.js +2 -2
  56. package/dist/executor/reorder-timepoints.js.map +1 -1
  57. package/dist/executor/types.d.ts +1 -3
  58. package/dist/executor/types.d.ts.map +1 -1
  59. package/dist/executor/types.js +0 -7
  60. package/dist/executor/types.js.map +1 -1
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +50 -49
  64. package/dist/index.js.map +1 -1
  65. package/dist/proposal/delta.d.ts +1 -1
  66. package/dist/proposal/delta.d.ts.map +1 -1
  67. package/dist/proposal/delta.js +1 -1
  68. package/dist/proposal/delta.js.map +1 -1
  69. package/dist/proposal/entity.d.ts +1 -1
  70. package/dist/proposal/entity.d.ts.map +1 -1
  71. package/dist/proposal/entity.js +1 -1
  72. package/dist/proposal/entity.js.map +1 -1
  73. package/dist/proposal/hook.d.ts +1 -1
  74. package/dist/proposal/hook.d.ts.map +1 -1
  75. package/dist/proposal/hook.js +1 -1
  76. package/dist/proposal/hook.js.map +1 -1
  77. package/dist/proposal/outline.d.ts +1 -1
  78. package/dist/proposal/outline.d.ts.map +1 -1
  79. package/dist/proposal/outline.js +2 -2
  80. package/dist/proposal/outline.js.map +1 -1
  81. package/dist/proposal/reference.d.ts +1 -1
  82. package/dist/proposal/reference.d.ts.map +1 -1
  83. package/dist/proposal/reference.js +1 -1
  84. package/dist/proposal/reference.js.map +1 -1
  85. package/dist/proposal/relation.d.ts +1 -1
  86. package/dist/proposal/relation.d.ts.map +1 -1
  87. package/dist/proposal/reorder-timepoints.d.ts +2 -2
  88. package/dist/proposal/reorder-timepoints.d.ts.map +1 -1
  89. package/dist/proposal/reorder-timepoints.js +5 -5
  90. package/dist/proposal/reorder-timepoints.js.map +1 -1
  91. package/dist/proposal/types.d.ts +5 -5
  92. package/dist/proposal/types.d.ts.map +1 -1
  93. package/dist/proposal/types.js +4 -4
  94. package/dist/proposal/types.js.map +1 -1
  95. package/dist/query/delta.d.ts +3 -3
  96. package/dist/query/delta.d.ts.map +1 -1
  97. package/dist/query/delta.js +3 -3
  98. package/dist/query/delta.js.map +1 -1
  99. package/dist/query/entity.d.ts +4 -4
  100. package/dist/query/entity.d.ts.map +1 -1
  101. package/dist/query/entity.js +3 -3
  102. package/dist/query/outline.d.ts +3 -3
  103. package/dist/query/outline.d.ts.map +1 -1
  104. package/dist/query/outline.js +3 -3
  105. package/dist/query/outline.js.map +1 -1
  106. package/dist/query/reference.d.ts +2 -2
  107. package/dist/query/reference.d.ts.map +1 -1
  108. package/dist/query/reference.js +2 -2
  109. package/dist/query/reference.js.map +1 -1
  110. package/dist/query/relation.d.ts +2 -2
  111. package/dist/query/relation.d.ts.map +1 -1
  112. package/dist/query/relation.js +1 -1
  113. package/dist/registry.d.ts +21 -14
  114. package/dist/registry.d.ts.map +1 -1
  115. package/dist/registry.js +23 -9
  116. package/dist/registry.js.map +1 -1
  117. package/dist/schemas/analysis.d.ts +51 -0
  118. package/dist/schemas/analysis.d.ts.map +1 -0
  119. package/dist/schemas/analysis.js +46 -0
  120. package/dist/schemas/analysis.js.map +1 -0
  121. package/dist/schemas/delta.d.ts +31 -0
  122. package/dist/schemas/delta.d.ts.map +1 -0
  123. package/dist/schemas/delta.js +35 -0
  124. package/dist/schemas/delta.js.map +1 -0
  125. package/dist/schemas/entity.d.ts +28 -0
  126. package/dist/schemas/entity.d.ts.map +1 -0
  127. package/dist/schemas/entity.js +31 -0
  128. package/dist/schemas/entity.js.map +1 -0
  129. package/dist/schemas/helpers.d.ts +8 -0
  130. package/dist/schemas/helpers.d.ts.map +1 -0
  131. package/dist/schemas/helpers.js +27 -0
  132. package/dist/schemas/helpers.js.map +1 -0
  133. package/dist/schemas/index.d.ts +8 -0
  134. package/dist/schemas/index.d.ts.map +1 -0
  135. package/dist/schemas/index.js +12 -0
  136. package/dist/schemas/index.js.map +1 -0
  137. package/dist/schemas/outline.d.ts +11 -0
  138. package/dist/schemas/outline.d.ts.map +1 -0
  139. package/dist/schemas/outline.js +12 -0
  140. package/dist/schemas/outline.js.map +1 -0
  141. package/dist/schemas/proposal.d.ts +125 -0
  142. package/dist/schemas/proposal.d.ts.map +1 -0
  143. package/dist/schemas/proposal.js +123 -0
  144. package/dist/schemas/proposal.js.map +1 -0
  145. package/dist/schemas/reference.d.ts +13 -0
  146. package/dist/schemas/reference.d.ts.map +1 -0
  147. package/dist/schemas/reference.js +13 -0
  148. package/dist/schemas/reference.js.map +1 -0
  149. package/dist/schemas/relation.d.ts +17 -0
  150. package/dist/schemas/relation.d.ts.map +1 -0
  151. package/dist/schemas/relation.js +19 -0
  152. package/dist/schemas/relation.js.map +1 -0
  153. package/package.json +5 -5
package/dist/context.js CHANGED
@@ -6,6 +6,6 @@
6
6
  // 注入方职责(S7.4 executor 组装):
7
7
  // - db:当前项目的 data.db 连接(better-sqlite3 同步连接,查询层 API 直接使用)
8
8
  // - outlineDir:项目根目录(outline.json 所在目录)
9
- // - projectId:当前打开项目的 id 会话归属项目;提案绑定 project_id)
9
+ // - projectId:当前打开项目的 id(会话归属项目;提案绑定 project_id)
10
10
  export {};
11
11
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8DAA8D;AAC9D,yCAAyC;AACzC,oDAAoD;AACpD,EAAE;AACF,2BAA2B;AAC3B,0DAA0D;AAC1D,wCAAwC;AACxC,kDAAkD"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8DAA8D;AAC9D,yCAAyC;AACzC,oDAAoD;AACpD,EAAE;AACF,2BAA2B;AAC3B,0DAA0D;AAC1D,wCAAwC;AACxC,iDAAiD"}
@@ -1,4 +1,4 @@
1
1
  import { type ExecutorFn } from "./types.js";
2
- /** add_delta(:add_delta(node_id, target, changes) → id) */
2
+ /** add_deltaadd_delta(node_id, target, changes) → id) */
3
3
  export declare const executeAddDelta: ExecutorFn;
4
4
  //# sourceMappingURL=delta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/executor/delta.ts"],"names":[],"mappings":"AAUA,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1E,2DAA2D;AAC3D,eAAO,MAAM,eAAe,EAAE,UAU7B,CAAC"}
1
+ {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../src/executor/delta.ts"],"names":[],"mappings":"AAUA,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1E,0DAA0D;AAC1D,eAAO,MAAM,eAAe,EAAE,UAU7B,CAAC"}
@@ -7,7 +7,7 @@
7
7
  // - order 由 db 层全局单调生成(insertDelta 事务内 MAX+1),此处无 order 入参
8
8
  import { insertDelta } from "@whispering233/ai-editor-db";
9
9
  import { requireArray, requireString } from "./types.js";
10
- /** add_delta(:add_delta(node_id, target, changes) → id) */
10
+ /** add_deltaadd_delta(node_id, target, changes) → id) */
11
11
  export const executeAddDelta = (ctx, proposal) => {
12
12
  const args = proposal.args;
13
13
  const row = insertDelta(ctx.db, {
@@ -1 +1 @@
1
- {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/executor/delta.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,YAAY;AACZ,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,kEAAkE;AAClE,2DAA2D;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE1E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;QACtC,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAkB,EAAE,mCAAmC;QAC5F,WAAW,EAAE,QAAQ,CAAC,OAAO;KAC9B,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../src/executor/delta.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,YAAY;AACZ,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,kEAAkE;AAClE,2DAA2D;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE1E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;QACtC,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAkB,EAAE,mCAAmC;QAC5F,WAAW,EAAE,QAAQ,CAAC,OAAO;KAC9B,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type ExecutorFn } from "./types.js";
2
- /** create_entity(:create_entity(type, name, data) → id) */
2
+ /** create_entitycreate_entity(type, name, data) → id) */
3
3
  export declare const executeCreateEntity: ExecutorFn;
4
- /** update_entity(:update_entity(id, patches) → updated;patches 浅合并进 data) */
4
+ /** update_entityupdate_entity(id, patches) → updated;patches 浅合并进 data) */
5
5
  export declare const executeUpdateEntity: ExecutorFn;
6
- /** delete_entity(:delete_entity(id) → void;软删 + 级联,可回收站还原) */
6
+ /** delete_entitydelete_entity(id) → void;软删 + 级联,可回收站还原) */
7
7
  export declare const executeDeleteEntity: ExecutorFn;
8
8
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/executor/entity.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3F,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,EAAE,UAQjC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,UASjC,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,UAOjC,CAAC"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/executor/entity.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3F,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,EAAE,UAQjC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,EAAE,UASjC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,EAAE,UAOjC,CAAC"}
@@ -7,14 +7,14 @@
7
7
  //
8
8
  // 语义对齐:
9
9
  // - create_entity:type/name 必填 + data 可选,id 由 db 层生成(char-/set-/loc-/hook- 前缀)
10
- // - update_entity:patches 为 data **浅合并**字段(未传字段保留,);
10
+ // - update_entity:patches 为 data **浅合并**字段(未传字段保留);
11
11
  // 软删实体不可更新(getEntity 过滤 → null → 抛错)
12
12
  // - delete_entity:软删 + 级联关系与 Delta(本体保留可回收站还原)
13
13
  // 参数形态:与 S6.6 proposal.args 对齐(propose_create_entity → { type, name, data? } 等),
14
14
  // 由 executeProposal 按 proposal.type 映射后直接消费。
15
15
  import { createEntity, nowIso, softDeleteEntity, updateEntity } from "@whispering233/ai-editor-db";
16
16
  import { optionalRecord, requireRecord, requireString } from "./types.js";
17
- /** create_entity(:create_entity(type, name, data) → id) */
17
+ /** create_entitycreate_entity(type, name, data) → id) */
18
18
  export const executeCreateEntity = (ctx, proposal) => {
19
19
  const args = proposal.args;
20
20
  const row = createEntity(ctx.db, {
@@ -24,18 +24,18 @@ export const executeCreateEntity = (ctx, proposal) => {
24
24
  });
25
25
  return { id: row.id };
26
26
  };
27
- /** update_entity(:update_entity(id, patches) → updated;patches 浅合并进 data) */
27
+ /** update_entityupdate_entity(id, patches) → updated;patches 浅合并进 data) */
28
28
  export const executeUpdateEntity = (ctx, proposal) => {
29
29
  const args = proposal.args;
30
30
  const entityId = requireString(args, "entity_id");
31
31
  const patches = requireRecord(args, "patches");
32
- const row = updateEntity(ctx.db, entityId, { data: patches }); // data 浅合并( 同语义)
32
+ const row = updateEntity(ctx.db, entityId, { data: patches }); // data 浅合并(同语义)
33
33
  if (row === null) {
34
34
  throw new Error(`实体不存在或已软删: ${entityId}`);
35
35
  }
36
36
  return { id: row.id, updated: true };
37
37
  };
38
- /** delete_entity(:delete_entity(id) → void;软删 + 级联,可回收站还原) */
38
+ /** delete_entitydelete_entity(id) → void;软删 + 级联,可回收站还原) */
39
39
  export const executeDeleteEntity = (ctx, proposal) => {
40
40
  const entityId = requireString(proposal.args, "entity_id");
41
41
  const result = softDeleteEntity(ctx.db, entityId, nowIso());
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/executor/entity.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,gDAAgD;AAChD,EAAE;AACF,4DAA4D;AAC5D,oDAAoD;AACpD,+CAA+C;AAC/C,EAAE;AACF,QAAQ;AACR,+EAA+E;AAC/E,qDAAqD;AACrD,qCAAqC;AACrC,+CAA+C;AAC/C,iFAAiF;AACjF,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE3F,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;QAC/B,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAe,EAAE,gCAAgC;QACjF,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;KACnC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAChF,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/executor/entity.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,gDAAgD;AAChD,EAAE;AACF,4DAA4D;AAC5D,oDAAoD;AACpD,+CAA+C;AAC/C,EAAE;AACF,QAAQ;AACR,+EAA+E;AAC/E,oDAAoD;AACpD,qCAAqC;AACrC,+CAA+C;AAC/C,iFAAiF;AACjF,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE3F,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;QAC/B,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAe,EAAE,gCAAgC;QACjF,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;KACnC,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB;IAC/E,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type ExecutorFn } from "./types.js";
2
- /** advance_hook(:advance_hook(hook_id, node_id, description) → id) */
2
+ /** advance_hookadvance_hook(hook_id, node_id, description) → id) */
3
3
  export declare const executeAdvanceHook: ExecutorFn;
4
- /** resolve_hook(:resolve_hook(hook_id, node_id, description) → id) */
4
+ /** resolve_hookresolve_hook(hook_id, node_id, description) → id) */
5
5
  export declare const executeResolveHook: ExecutorFn;
6
- /** abandon_hook(:abandon_hook(hook_id, description) → id;仅 delta 记 status=abandoned) */
6
+ /** abandon_hookabandon_hook(hook_id, description) → id;仅 delta 记 status=abandoned) */
7
7
  export declare const executeAbandonHook: ExecutorFn;
8
8
  //# sourceMappingURL=hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/executor/hook.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAiB,KAAK,UAAU,EAAuB,MAAM,YAAY,CAAC;AAuJjF,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,EAAE,UACsC,CAAC;AAExE,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,EAAE,UACmC,CAAC;AAErE,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,EAAE,UAC8B,CAAC"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/executor/hook.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAiB,KAAK,UAAU,EAAuB,MAAM,YAAY,CAAC;AAuJjF,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,UACsC,CAAC;AAExE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,UACmC,CAAC;AAErE,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,EAAE,UAC8B,CAAC"}
@@ -5,7 +5,7 @@
5
5
  // 两步写为**一次提交**(withTransaction),失败整体回滚、不产生半状态。
6
6
  // - advance_hook:delta_records 记 status → progressing + relation_records 插 advances
7
7
  // - resolve_hook:delta_records 记 status → resolved + relation_records 插 resolves
8
- // - abandon_hook:仅 delta_records 记 status → abandoned(:无 relation;args 无 node_id)
8
+ // - abandon_hook:仅 delta_records 记 status → abandoned(无 relation;args 无 node_id)
9
9
  //
10
10
  // **幂等**:先查 (node_id, hook_id, relation_type) 是否已有未软删记录,存在即返回已有 id
11
11
  // (不重复写)——重复确认/重复提案均不重复推进;abandon 无关系可查,改查「已记
@@ -19,13 +19,13 @@
19
19
  // from: 当前状态, to: 目标状态 }]——from 取 hook.data.status(缺省 planted,
20
20
  // 状态缺失视为 planted),保证 computeState 的 update 校验正常累积;
21
21
  // description 取 proposal.args.description(delta_records.description NOT NULL)。
22
- // 终态守卫:resolved/abandoned 为生命周期终态(),终态伏笔不可再推进/回收/废弃。
22
+ // 终态守卫:resolved/abandoned 为生命周期终态,终态伏笔不可再推进/回收/废弃。
23
23
  //
24
24
  // **状态同步(S6.7 修复轮必须改)**:复合写事务内插入 delta 后**同步更新
25
25
  // entities.data.status**(浅合并 + 刷新 updated_at,与 快照比对语义兼容)——
26
26
  // 终态守卫(assertNotTerminal)、delta 的 from(currentHookStatus)与 S6.5 hookStatuses
27
27
  // (analysis/hook.ts collectHooks 读 entity.data.status)均以 data.status 为唯一事实来源
28
- // ;不同步则 resolved/abandoned 后仍可推进、同 hook 二次推进 from 断裂
28
+ //;不同步则 resolved/abandoned 后仍可推进、同 hook 二次推进 from 断裂
29
29
  // (computeState conflicts)、已回收伏笔仍计 active。**幂等命中路径不更新**(首次执行已同步)。
30
30
  //
31
31
  // 执行类是短同步事务,不做 signal 检查(长工具才要求执行中检查;入口检查由
@@ -33,14 +33,14 @@
33
33
  import { createRelation, findOutlineNode, insertDelta, readOutlineFile, readProjectFile, updateEntity, withTransaction } from "@whispering233/ai-editor-db";
34
34
  import { requireHook, requireOutlineNode } from "../proposal/types.js";
35
35
  import { requireString } from "./types.js";
36
- /** 伏笔生命周期终态(:planted → progressing → resolved 或 abandoned) */
36
+ /** 伏笔生命周期终态(planted → progressing → resolved 或 abandoned) */
37
37
  const TERMINAL_STATUSES = ["resolved", "abandoned"];
38
38
  /** 取伏笔当前状态(data.status 缺失/空串 → planted——创建即埋设) */
39
39
  function currentHookStatus(hook) {
40
40
  const status = hook.data.status;
41
41
  return typeof status === "string" && status !== "" ? status : "planted";
42
42
  }
43
- /** 终态守卫:终态伏笔不可再推进/回收/废弃(生命周期语义,) */
43
+ /** 终态守卫:终态伏笔不可再推进/回收/废弃(生命周期语义) */
44
44
  function assertNotTerminal(hook, actionLabel) {
45
45
  const status = currentHookStatus(hook);
46
46
  if (TERMINAL_STATUSES.includes(status)) {
@@ -49,7 +49,7 @@ function assertNotTerminal(hook, actionLabel) {
49
49
  }
50
50
  /**
51
51
  * 幂等查询(advance/resolve):同 (node_id, hook_id, relation_type) 已有**未软删**记录
52
- * → 返回其 id( 复合写说明:重复确认/重复提案均不重复推进;含端点软删后还原的
52
+ * → 返回其 id(复合写说明:重复确认/重复提案均不重复推进;含端点软删后还原的
53
53
  * 记录——deleted_at 置 NULL 后仍命中)。
54
54
  */
55
55
  function findExistingLifecycleRelation(db, nodeId, hookId, relationType) {
@@ -132,7 +132,7 @@ function executeHookTransition(ctx, proposal, relationType, toStatus, actionLabe
132
132
  const args = proposal.args;
133
133
  const hookId = requireString(args, "hook_id");
134
134
  const nodeId = relationType === null ? null : requireString(args, "node_id");
135
- const description = requireString(args, "description"); // delta_records.description NOT NULL()
135
+ const description = requireString(args, "description"); // delta_records.description NOT NULL
136
136
  return withTransaction(ctx.db, () => {
137
137
  // 幂等(含未软删记录):命中即返回已有 id,不重复写
138
138
  if (relationType !== null) {
@@ -151,7 +151,7 @@ function executeHookTransition(ctx, proposal, relationType, toStatus, actionLabe
151
151
  requireOutlineNode(ctx, nodeId);
152
152
  // 终态守卫(resolved/abandoned 不可再推进/回收;废弃时不可再废弃)
153
153
  assertNotTerminal(hook, actionLabel);
154
- // delta:记 status 变化(from=当前状态, update 语义,computeState 正常累积)
154
+ // delta:记 status 变化(from=当前状态,update 语义,computeState 正常累积)
155
155
  const changes = [{ field: "status", op: "update", from: currentHookStatus(hook), to: toStatus }];
156
156
  const delta = insertDelta(ctx.db, {
157
157
  nodeId: nodeId ?? anchorNodeForAbandon(ctx),
@@ -166,7 +166,7 @@ function executeHookTransition(ctx, proposal, relationType, toStatus, actionLabe
166
166
  // 仍可推进(守卫失效)、同 hook 二次推进 from 断裂(computeState conflicts)、
167
167
  // 已回收伏笔仍计 active。幂等命中路径(上方 early return)不更新——首次执行已同步。
168
168
  updateEntity(ctx.db, hookId, { data: { status: toStatus } });
169
- // relation:advances / resolves(大纲节点 → hook; 方向约定)
169
+ // relation:advances / resolves(大纲节点 → hook;方向约定)
170
170
  if (relationType !== null) {
171
171
  const relation = createRelation(ctx.db, { sourceType: "outline_node", sourceId: nodeId, targetType: "hook", targetId: hookId, relationType }, ctx.outlineDir);
172
172
  return { id: relation.id };
@@ -174,10 +174,10 @@ function executeHookTransition(ctx, proposal, relationType, toStatus, actionLabe
174
174
  return { id: delta.id };
175
175
  });
176
176
  }
177
- /** advance_hook(:advance_hook(hook_id, node_id, description) → id) */
177
+ /** advance_hookadvance_hook(hook_id, node_id, description) → id) */
178
178
  export const executeAdvanceHook = (ctx, proposal) => executeHookTransition(ctx, proposal, "advances", "progressing", "推进");
179
- /** resolve_hook(:resolve_hook(hook_id, node_id, description) → id) */
179
+ /** resolve_hookresolve_hook(hook_id, node_id, description) → id) */
180
180
  export const executeResolveHook = (ctx, proposal) => executeHookTransition(ctx, proposal, "resolves", "resolved", "回收");
181
- /** abandon_hook(:abandon_hook(hook_id, description) → id;仅 delta 记 status=abandoned) */
181
+ /** abandon_hookabandon_hook(hook_id, description) → id;仅 delta 记 status=abandoned) */
182
182
  export const executeAbandonHook = (ctx, proposal) => executeHookTransition(ctx, proposal, null, "abandoned", "废弃");
183
183
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/executor/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/executor/hook.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,6 @@ import type { Proposal } from "../proposal/types.js";
4
4
  import { type ExecutorResult } from "./types.js";
5
5
  /** 提案类型字面量联合(15 个,PROPOSAL_TOOLS 常量派生——注册表/门面共用) */
6
6
  export type ProposalType = (typeof PROPOSAL_TOOLS)[number];
7
- /** 执行工具名字面量联合(13 个,EXECUTOR_TOOLS 常量派生) */
8
- export type ExecutorToolName = (typeof EXECUTOR_TOOLS)[number];
9
7
  /**
10
8
  * 执行提案(S7.5 确认后调用):按 proposal.type 映射执行函数,args 透传(S6.6 已规范化
11
9
  * 为执行形态),返回执行结果(如新 id)。未知/缺失映射抛错(防静默——不该出现的
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQrD,OAAO,EAAkD,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjG,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAwD/D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAMpF;AAGD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQrD,OAAO,EAAkD,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjG,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAwD3D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAMpF;AAGD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -5,7 +5,7 @@
5
5
  // propose_advance_hook → advance_hook 等(15 提案 → 13 执行);
6
6
  // propose_create_hook / propose_update_hook 为适配器(hook 即 type=hook 的实体):
7
7
  // - propose_create_hook → create_entity 注入 type="hook" + plant_at_node_id 时
8
- // 同事务补插 plants 关系(提案承诺「确认后建立 plants 关系」, 生命周期「埋下」)
8
+ // 同事务补插 plants 关系(提案承诺「确认后建立 plants 关系」,生命周期「埋下」)
9
9
  // - propose_update_hook → update_entity(hook_id 即 entity_id,patches 浅合并进 data)
10
10
  // propose_reorder_timepoints → reorder_timepoints(G2:批量重排 sort_order,见 executor/reorder-timepoints.ts,
11
11
  // 取代 F9 的 propose_reorder_events——事件不再带 time_label,语义序载体变为时间点实体)
@@ -14,7 +14,7 @@
14
14
  // (「核心设计原则」——AI 不可以调用执行类工具)。
15
15
  // 映射表类型安全:key 为 15 个提案类型字面量联合(Record 缺键编译期报错);
16
16
  // 运行时未知 type → 查表 undefined → 抛错(防静默,S7.5 转错误响应)。
17
- // signal:执行类是短同步事务,不做中止检查( 只要求长工具执行中检查;
17
+ // signal:执行类是短同步事务,不做中止检查(只要求长工具执行中检查;
18
18
  // S7.5 确认路由在调用前做取消判定)。
19
19
  import { createEntity, createRelation, withTransaction } from "@whispering233/ai-editor-db";
20
20
  import { EXECUTOR_TOOLS } from "@whispering233/ai-editor-shared";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type ExecutorFn } from "./types.js";
2
- /** create_outline_node(:create_outline_node(type, title, parent) → id) */
2
+ /** create_outline_nodecreate_outline_node(type, title, parent) → id) */
3
3
  export declare const executeCreateOutlineNode: ExecutorFn;
4
- /** move_node(:move_node(node_id, parent, order) → void;parent 可为 root) */
4
+ /** move_nodemove_node(node_id, parent, order) → void;parent 可为 root) */
5
5
  export declare const executeMoveNode: ExecutorFn;
6
- /** delete_node(:delete_node(node_id) → void;软删 + 递归子树) */
6
+ /** delete_nodedelete_node(node_id) → void;软删 + 递归子树) */
7
7
  export declare const executeDeleteNode: ExecutorFn;
8
8
  //# sourceMappingURL=outline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/executor/outline.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,EAAE,UAUtC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,EAAE,UAa7B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,UAI/B,CAAC"}
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/executor/outline.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,EAAE,UAUtC,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,eAAe,EAAE,UAa7B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,EAAE,UAI/B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  //
4
4
  // 写路径:直接调 db outline-ops(唯一写路径;outline.json 原子写由 db 层保证);
5
5
  // updatedAt 由应用层 nowIso 传入(时间约定:ISO 8601 应用层写入,模块不生成时间)。
6
- // 层级约束( 严格三层)由 db assertCanHold 兜底:scene 挂 chapter、chapter 挂卷/根、
6
+ // 层级约束(严格三层)由 db assertCanHold 兜底:scene 挂 chapter、chapter 挂卷/根、
7
7
  // volume 挂根;parent_id 缺省挂 root(volume/chapter 可挂根,scene 缺省即拒绝——与提案层同语义)。
8
8
  // 软删语义:delete_node 软删 + 递归子树(本体保留可回收站还原)。
9
9
  import { createOutlineNode, deleteOutlineNode, moveOutlineNode, nowIso } from "@whispering233/ai-editor-db";
10
10
  import { requireNumber, requireString } from "./types.js";
11
- /** create_outline_node(:create_outline_node(type, title, parent) → id) */
11
+ /** create_outline_nodecreate_outline_node(type, title, parent) → id) */
12
12
  export const executeCreateOutlineNode = (ctx, proposal) => {
13
13
  const args = proposal.args;
14
14
  const parentId = args.parent_id === undefined ? "root" : requireString(args, "parent_id"); // 缺省挂根
@@ -20,7 +20,7 @@ export const executeCreateOutlineNode = (ctx, proposal) => {
20
20
  });
21
21
  return { id: node.id };
22
22
  };
23
- /** move_node(:move_node(node_id, parent, order) → void;parent 可为 root) */
23
+ /** move_nodemove_node(node_id, parent, order) → void;parent 可为 root) */
24
24
  export const executeMoveNode = (ctx, proposal) => {
25
25
  const args = proposal.args;
26
26
  const nodeId = requireString(args, "node_id");
@@ -30,7 +30,7 @@ export const executeMoveNode = (ctx, proposal) => {
30
30
  }, nowIso());
31
31
  return { id: nodeId, ...result };
32
32
  };
33
- /** delete_node(:delete_node(node_id) → void;软删 + 递归子树) */
33
+ /** delete_nodedelete_node(node_id) → void;软删 + 递归子树) */
34
34
  export const executeDeleteNode = (ctx, proposal) => {
35
35
  const nodeId = requireString(proposal.args, "node_id");
36
36
  const { children } = deleteOutlineNode(ctx.outlineDir, nodeId, nowIso());
@@ -1 +1 @@
1
- {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/executor/outline.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,gDAAgD;AAChD,EAAE;AACF,0DAA0D;AAC1D,yDAAyD;AACzD,iEAAiE;AACjE,yEAAyE;AACzE,0CAA0C;AAE1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE3E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO;IAClG,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7C,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAqC;QACrE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;QACnC,QAAQ;QACR,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,eAAe,CAC5B,GAAG,CAAC,UAAU,EACd,MAAM,EACN;QACE,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,mCAAmC;KACzE,EACD,MAAM,EAAE,CACT,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/executor/outline.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,gDAAgD;AAChD,EAAE;AACF,0DAA0D;AAC1D,yDAAyD;AACzD,gEAAgE;AAChE,yEAAyE;AACzE,0CAA0C;AAE1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO;IAClG,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7C,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAqC;QACrE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;QACnC,QAAQ;QACR,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,eAAe,CAC5B,GAAG,CAAC,UAAU,EACd,MAAM,EACN;QACE,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,mCAAmC;KACzE,EACD,MAAM,EAAE,CACT,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACnE,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- // 执行类工具:参考资料(批次九)
1
+ // 执行类工具:参考资料
2
2
  // execute_create_reference——propose_create_reference 确认后经 executeProposal 调度,
3
3
  // 复用 executeCreateEntity(type='reference' + data 合并),补 data.type 缺省 material。
4
4
  // 与 S6.7 其他执行工具同:不注册 registry(LLM 不可见)。
@@ -12,7 +12,7 @@ export const executeCreateReference = (ctx, proposal) => {
12
12
  return executeCreateEntity(ctx, {
13
13
  ...proposal,
14
14
  args: {
15
- type: "reference", // 固定实体类型( 7 种实体)
15
+ type: "reference", // 固定实体类型(第 7 种实体)
16
16
  name,
17
17
  data: { ...data, type: data.type ?? "material" }, // data.type 缺省 material(schema 容错默认)
18
18
  },
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/executor/reference.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,8EAA8E;AAC9E,8EAA8E;AAC9E,wCAAwC;AAGxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,kEAAkE;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAkB,EAAE;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAA4B,CAAC;IACpE,OAAO,mBAAmB,CAAC,GAAG,EAAE;QAC9B,GAAG,QAAQ;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,WAAW,EAAE,mBAAmB;YACtC,IAAI;YACJ,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,EAAE,qCAAqC;SACxF;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/executor/reference.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,8EAA8E;AAC9E,8EAA8E;AAC9E,wCAAwC;AAGxC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,kEAAkE;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAkB,EAAE;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAA4B,CAAC;IACpE,OAAO,mBAAmB,CAAC,GAAG,EAAE;QAC9B,GAAG,QAAQ;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,WAAW,EAAE,kBAAkB;YACrC,IAAI;YACJ,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,EAAE,qCAAqC;SACxF;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type ExecutorFn } from "./types.js";
2
- /** add_relation(:add_relation(source, target, type) → id) */
2
+ /** add_relationadd_relation(source, target, type) → id) */
3
3
  export declare const executeAddRelation: ExecutorFn;
4
- /** remove_relation(:remove_relation(id) → void;物理删) */
4
+ /** remove_relationremove_relation(id) → void;物理删) */
5
5
  export declare const executeRemoveRelation: ExecutorFn;
6
6
  //# sourceMappingURL=relation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/executor/relation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5E,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,EAAE,UAehC,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,qBAAqB,EAAE,UAOnC,CAAC"}
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/executor/relation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5E,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,EAAE,UAehC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,UAOnC,CAAC"}
@@ -3,12 +3,12 @@
3
3
  //
4
4
  // - add_relation:端点类型(source_type/target_type)已由 S6.6 提案层派生规范化到 args,
5
5
  // 此处直接透传 db createRelation(判重 RELATION_EXISTS / 端点存在性校验 db 层负责);
6
- // 重复确认同一 add_relation 提案 → RELATION_EXISTS 抛错(幂等只保证 hook 复合写,)
6
+ // 重复确认同一 add_relation 提案 → RELATION_EXISTS 抛错(幂等只保证 hook 复合写)
7
7
  // - remove_relation:手动删关系 = **物理删**(不置 deleted_at、不进回收站);
8
8
  // 0 行影响(关系不存在)→ 抛错(fail-fast,S7.5 转错误响应)
9
9
  import { createRelation, deleteRelation } from "@whispering233/ai-editor-db";
10
10
  import { optionalRecord, requireString } from "./types.js";
11
- /** add_relation(:add_relation(source, target, type) → id) */
11
+ /** add_relationadd_relation(source, target, type) → id) */
12
12
  export const executeAddRelation = (ctx, proposal) => {
13
13
  const args = proposal.args;
14
14
  const row = createRelation(ctx.db, {
@@ -21,7 +21,7 @@ export const executeAddRelation = (ctx, proposal) => {
21
21
  }, ctx.outlineDir);
22
22
  return { id: row.id };
23
23
  };
24
- /** remove_relation(:remove_relation(id) → void;物理删) */
24
+ /** remove_relationremove_relation(id) → void;物理删) */
25
25
  export const executeRemoveRelation = (ctx, proposal) => {
26
26
  const relationId = requireString(proposal.args, "relation_id");
27
27
  const changes = deleteRelation(ctx.db, relationId);
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/executor/relation.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,+DAA+D;AAC/D,0DAA0D;AAC1D,yCAAyC;AAEzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE5E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,cAAc,CACxB,GAAG,CAAC,EAAE,EACN;QACE,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;QAClD,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;KAC3C,EACD,GAAG,CAAC,UAAU,CACf,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/executor/relation.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,8DAA8D;AAC9D,0DAA0D;AAC1D,yCAAyC;AAEzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE5E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,cAAc,CACxB,GAAG,CAAC,EAAE,EACN;QACE,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;QAClD,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;KAC3C,EACD,GAAG,CAAC,UAAU,CACf,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ToolContext } from "../context.js";
2
2
  import type { Proposal } from "../proposal/types.js";
3
3
  import { type ExecutorResult } from "./types.js";
4
- /** reorder_timepoints(:reorder_timepoints(timepoint_ids) → { reordered }) */
4
+ /** reorder_timepointsreorder_timepoints(timepoint_ids) → { reordered }) */
5
5
  export declare function executeReorderTimepoints(ctx: ToolContext, proposal: Proposal): ExecutorResult;
6
6
  //# sourceMappingURL=reorder-timepoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reorder-timepoints.d.ts","sourceRoot":"","sources":["../../src/executor/reorder-timepoints.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,6EAA6E;AAC7E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAkC7F"}
1
+ {"version":3,"file":"reorder-timepoints.d.ts","sourceRoot":"","sources":["../../src/executor/reorder-timepoints.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAkC7F"}
@@ -8,11 +8,11 @@
8
8
  // 非空去重校验 → 读当前全部未软删时间点(listTimepoints)→ **集合相等校验**(缺/多/重复 →
9
9
  // 抛错,与提案层同款:防御纵深,兜底「S7.5 references 快照校验已拦截但确认前用户又拖拽
10
10
  // 增删」的竞态)→ 调 db reorderTimepoints 按新序事务内重写 sort_order 0..n-1(拖拽权威语义
11
- // 不变, G2 修订:排序结果即 timepoint.sort_order 线性序;不改其下事件序——
11
+ // 不变,G2 修订:排序结果即 timepoint.sort_order 线性序;不改其下事件序——
12
12
  // 双独立线性序)→ 返回 { reordered: n }。
13
13
  import { listTimepoints, nowIso, reorderTimepoints } from "@whispering233/ai-editor-db";
14
14
  import { requireArray } from "./types.js";
15
- /** reorder_timepoints(:reorder_timepoints(timepoint_ids) → { reordered }) */
15
+ /** reorder_timepointsreorder_timepoints(timepoint_ids) → { reordered }) */
16
16
  export function executeReorderTimepoints(ctx, proposal) {
17
17
  const raw = requireArray(proposal.args, "timepoint_ids");
18
18
  // 元素防御:提案层 zod 已校验为 string[],此处防脏调用(与 requireString 同风格)
@@ -1 +1 @@
1
- {"version":3,"file":"reorder-timepoints.js","sourceRoot":"","sources":["../../src/executor/reorder-timepoints.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,qBAAqB;AACrB,EAAE;AACF,6DAA6D;AAC7D,4CAA4C;AAC5C,EAAE;AACF,0DAA0D;AAC1D,4DAA4D;AAC5D,qDAAqD;AACrD,oEAAoE;AACpE,qDAAqD;AACrD,gCAAgC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,GAAgB,EAAE,QAAkB;IAC3E,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1D,yDAAyD;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACF,yCAAyC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACF,+DAA+D;IAC/D,wDAAwD;IACxD,8BAA8B;IAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,GAAa,EAAU,EAAE;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC;QACF,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CACtG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"reorder-timepoints.js","sourceRoot":"","sources":["../../src/executor/reorder-timepoints.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,qBAAqB;AACrB,EAAE;AACF,6DAA6D;AAC7D,4CAA4C;AAC5C,EAAE;AACF,0DAA0D;AAC1D,4DAA4D;AAC5D,qDAAqD;AACrD,oEAAoE;AACpE,oDAAoD;AACpD,gCAAgC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB,CAAC,GAAgB,EAAE,QAAkB;IAC3E,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1D,yDAAyD;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACF,yCAAyC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACF,+DAA+D;IAC/D,wDAAwD;IACxD,8BAA8B;IAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,GAAa,EAAU,EAAE;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC;QACF,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,MAAM,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CACtG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
@@ -2,7 +2,7 @@ import type { ToolContext } from "../context.js";
2
2
  import type { Proposal } from "../proposal/types.js";
3
3
  /**
4
4
  * 执行结果(统一携带 id:新对象 id 或操作对象 id;扩展字段 camelCase)。
5
- * duplicated=true:幂等命中——(node_id, hook_id, relation_type) 已有记录,未重复写( 复合写说明)。
5
+ * duplicated=true:幂等命中——(node_id, hook_id, relation_type) 已有记录,未重复写(复合写说明)。
6
6
  * id 可选(F9/G2):reorder_timepoints 是批量操作无单对象 id,返回 { reordered: n } 即可;
7
7
  * 其余执行器均携带 id(S7.5 响应 result 透传,未要求 id 必在)。
8
8
  */
@@ -14,8 +14,6 @@ export type ExecutorResult = {
14
14
  export type ExecutorFn = (ctx: ToolContext, proposal: Proposal) => ExecutorResult;
15
15
  /** 必填字符串参数(缺失/空串/非字符串 → 抛错,防脏调用写脏数据) */
16
16
  export declare function requireString(args: Record<string, unknown>, key: string): string;
17
- /** 可选字符串参数(缺失返回 undefined;存在但非字符串 → 抛错) */
18
- export declare function optionalString(args: Record<string, unknown>, key: string): string | undefined;
19
17
  /** 必填对象参数(patches/metadata 等) */
20
18
  export declare function requireRecord(args: Record<string, unknown>, key: string): Record<string, unknown>;
21
19
  /** 可选对象参数(缺失返回 undefined) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7F,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC;AAElF,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMjG;AAED,6BAA6B;AAC7B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAI9G;AAED,wBAAwB;AACxB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAMlF;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7F,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC;AAElF,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMjG;AAED,6BAA6B;AAC7B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAI9G;AAED,wBAAwB;AACxB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAMlF;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhF"}
@@ -13,13 +13,6 @@ export function requireString(args, key) {
13
13
  }
14
14
  return v;
15
15
  }
16
- /** 可选字符串参数(缺失返回 undefined;存在但非字符串 → 抛错) */
17
- export function optionalString(args, key) {
18
- const v = args[key];
19
- if (v === undefined)
20
- return undefined;
21
- return requireString(args, key);
22
- }
23
16
  /** 必填对象参数(patches/metadata 等) */
24
17
  export function requireRecord(args, key) {
25
18
  const v = args[key];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,0EAA0E;AAC1E,mDAAmD;AACnD,kEAAkE;AAgBlE,wCAAwC;AACxC,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,GAAW;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAA4B,CAAC;AACtC,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,GAAW;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,YAAY,CAAC,IAA6B,EAAE,GAAW;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,0EAA0E;AAC1E,mDAAmD;AACnD,kEAAkE;AAgBlE,wCAAwC;AACxC,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAA4B,CAAC;AACtC,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,GAAW;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,YAAY,CAAC,IAA6B,EAAE,GAAW;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,aAAa,CAAC,IAA6B,EAAE,GAAW;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export declare const TOOLS_PKG_NAME = "@whispering233/ai-editor-tools";
2
2
  export declare const TOOLS_PKG_VERSION = "0.1.0";
3
3
  export * from "./context.js";
4
4
  export * from "./registry.js";
5
+ export * from "./schemas/index.js";
5
6
  export * from "./query/entity.js";
6
7
  export * from "./query/relation.js";
7
8
  export * from "./query/outline.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,qBAAqB,CAAC"}