@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
@@ -0,0 +1,123 @@
1
+ // 工具参数 schema:提案域(propose_* 16 个)
2
+ //
3
+ // 语义(docs/api/tool-calling.md「提案类(需确认)」):AI 不能直接修改数据——propose_*
4
+ // 只产出提案对象;参数签名与工具目录逐字对齐(端点 id 的类型识别与 updated_at 快照
5
+ // 由服务端生成时完成,故入参只需 id 字符串)。
6
+ // patches(部分更新字段)以 `minProperties: 1` 表达「拒绝空对象」(等价原 zod `.refine`)。
7
+ import { Type } from "@earendil-works/pi-ai";
8
+ import { entityTypeSchema } from "./entity.js";
9
+ import { relationTypeSchema } from "./relation.js";
10
+ import { outlineNodeTypeSchema } from "./outline.js";
11
+ import { deltaChangeSchema } from "./delta.js";
12
+ import { freeFormObject } from "./helpers.js";
13
+ /** 任意结构化的 data / metadata 载荷(record 形状与旧 zod `toJSONSchema()` 一致) */
14
+ const dataRecordSchema = freeFormObject();
15
+ // ============ 实体(proposal/entity.ts) ============
16
+ /** propose_create_entity 入参:type + name(必填)+ data(可选自定义字段) */
17
+ export const proposeCreateEntityArgsSchema = Type.Object({
18
+ type: entityTypeSchema,
19
+ name: Type.String({ minLength: 1 }),
20
+ data: Type.Optional(dataRecordSchema),
21
+ }, { additionalProperties: false });
22
+ /** propose_update_entity 入参:entity_id + patches(data 部分字段,至少一项) */
23
+ export const proposeUpdateEntityArgsSchema = Type.Object({
24
+ entity_id: Type.String(),
25
+ patches: freeFormObject({ minProperties: 1 }),
26
+ }, { additionalProperties: false });
27
+ /** propose_delete_entity 入参:entity_id(软删 + 级联,可回收站还原) */
28
+ export const proposeDeleteEntityArgsSchema = Type.Object({
29
+ entity_id: Type.String(),
30
+ }, { additionalProperties: false });
31
+ // ============ 关系(proposal/relation.ts) ============
32
+ /**
33
+ * propose_add_relation 入参:source/target 为端点 id(实体 id 或大纲节点 id,类型生成时自动识别);
34
+ * type 白名单(16 种,含 plot_edge/plants/advances/resolves);metadata 可选
35
+ */
36
+ export const proposeAddRelationArgsSchema = Type.Object({
37
+ source: Type.String(),
38
+ target: Type.String(),
39
+ type: relationTypeSchema,
40
+ metadata: Type.Optional(dataRecordSchema),
41
+ }, { additionalProperties: false });
42
+ /** propose_remove_relation 入参:relation_id(手动删关系 = 物理删,不进回收站) */
43
+ export const proposeRemoveRelationArgsSchema = Type.Object({
44
+ relation_id: Type.String(),
45
+ }, { additionalProperties: false });
46
+ // ============ Delta(proposal/delta.ts) ============
47
+ /** propose_add_delta 入参:node_id(触发节点)+ target(变更目标)+ changes(至少一项) */
48
+ export const proposeAddDeltaArgsSchema = Type.Object({
49
+ node_id: Type.String(),
50
+ target: Type.String(),
51
+ changes: Type.Array(deltaChangeSchema, { minItems: 1 }),
52
+ }, { additionalProperties: false });
53
+ // ============ 大纲(proposal/outline.ts) ============
54
+ /** propose_outline_node 入参:type(volume|chapter|scene)+ title + parent_id(缺省挂根;scene 必须挂 chapter) */
55
+ export const proposeOutlineNodeArgsSchema = Type.Object({
56
+ type: outlineNodeTypeSchema,
57
+ title: Type.String({ minLength: 1 }),
58
+ parent_id: Type.Optional(Type.String()),
59
+ }, { additionalProperties: false });
60
+ /**
61
+ * propose_move_node 入参:node_id + parent_id(目标父节点,**可为 "root"**)+ order(目标位置,0 起)。
62
+ * order 无上限:超出目标父 children 长度的行为由执行层定义(提案只承载意图)。
63
+ */
64
+ export const proposeMoveNodeArgsSchema = Type.Object({
65
+ node_id: Type.String(),
66
+ parent_id: Type.String(),
67
+ order: Type.Integer({ minimum: 0 }),
68
+ }, { additionalProperties: false });
69
+ /** propose_delete_node 入参:node_id(软删 + 递归子树,可回收站还原) */
70
+ export const proposeDeleteNodeArgsSchema = Type.Object({
71
+ node_id: Type.String(),
72
+ }, { additionalProperties: false });
73
+ // ============ 伏笔(proposal/hook.ts) ============
74
+ /** propose_create_hook 入参:name + data(可选伏笔字段)+ plant_at_node_id(可选埋设节点) */
75
+ export const proposeCreateHookArgsSchema = Type.Object({
76
+ name: Type.String({ minLength: 1 }),
77
+ data: Type.Optional(dataRecordSchema),
78
+ plant_at_node_id: Type.Optional(Type.String()),
79
+ }, { additionalProperties: false });
80
+ /** propose_update_hook 入参:hook_id + patches(data 部分字段,至少一项) */
81
+ export const proposeUpdateHookArgsSchema = Type.Object({
82
+ hook_id: Type.String(),
83
+ patches: freeFormObject({ minProperties: 1 }),
84
+ }, { additionalProperties: false });
85
+ /** propose_advance_hook 入参:hook_id + node_id + description(确认后复合写 delta+relations) */
86
+ export const proposeAdvanceHookArgsSchema = Type.Object({
87
+ hook_id: Type.String(),
88
+ node_id: Type.String(),
89
+ description: Type.String({ minLength: 1 }),
90
+ }, { additionalProperties: false });
91
+ /** propose_resolve_hook 入参:hook_id + node_id + description(确认后复合写 delta+relations) */
92
+ export const proposeResolveHookArgsSchema = Type.Object({
93
+ hook_id: Type.String(),
94
+ node_id: Type.String(),
95
+ description: Type.String({ minLength: 1 }),
96
+ }, { additionalProperties: false });
97
+ /** propose_abandon_hook 入参:hook_id + description(确认后复合写 delta 记 status=abandoned) */
98
+ export const proposeAbandonHookArgsSchema = Type.Object({
99
+ hook_id: Type.String(),
100
+ description: Type.String({ minLength: 1 }),
101
+ }, { additionalProperties: false });
102
+ // ============ 时间轴(proposal/reorder-timepoints.ts,G2) ============
103
+ /**
104
+ * propose_reorder_timepoints 入参:timepoint_ids——LLM 按时间点 name 语义识别先后后产出的
105
+ * **有序时间点 id 全量序列**(须覆盖当前全部未软删时间点,缺/多/重复由生成时校验拒绝);
106
+ * 200 = 时间点量上限,与列表 limit 对齐。
107
+ */
108
+ export const proposeReorderTimepointsArgsSchema = Type.Object({
109
+ timepoint_ids: Type.Array(Type.String(), { minItems: 1, maxItems: 200 }),
110
+ }, { additionalProperties: false });
111
+ // ============ 参考资料(proposal/reference.ts) ============
112
+ /**
113
+ * propose_create_reference 入参:name 标题(必填)+ type 分类(自由文本,缺省 material
114
+ * 写入侧兜底)+ content 全文长文本 + source 来源(可选)+ tags 标签数组(可选)。
115
+ */
116
+ export const proposeCreateReferenceArgsSchema = Type.Object({
117
+ name: Type.String({ minLength: 1 }),
118
+ type: Type.Optional(Type.String()),
119
+ content: Type.Optional(Type.String()),
120
+ source: Type.Optional(Type.Union([Type.String(), Type.Null()])),
121
+ tags: Type.Optional(Type.Array(Type.String())),
122
+ }, { additionalProperties: false });
123
+ //# sourceMappingURL=proposal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/schemas/proposal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Type, type Static } from "@earendil-works/pi-ai";
2
+ /**
3
+ * search_references 入参:query 关键词(标题+tags 命中)+ 可选 type 分类过滤(自由文本,
4
+ * 原预置枚举已取消,建议沿用项目内已有分类)+ 可选 tags 过滤。
5
+ * 返回摘要列表(content 截断 120 字)。
6
+ */
7
+ export declare const searchReferencesArgsSchema: Type.TObject<{
8
+ query: Type.TString;
9
+ type: Type.TOptional<Type.TString>;
10
+ tags: Type.TOptional<Type.TArray<Type.TString>>;
11
+ }>;
12
+ export type SearchReferencesArgs = Static<typeof searchReferencesArgsSchema>;
13
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/schemas/reference.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;;;EAOtC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ // 工具参数 schema:参考资料域(search_references)
2
+ import { Type } from "@earendil-works/pi-ai";
3
+ /**
4
+ * search_references 入参:query 关键词(标题+tags 命中)+ 可选 type 分类过滤(自由文本,
5
+ * 原预置枚举已取消,建议沿用项目内已有分类)+ 可选 tags 过滤。
6
+ * 返回摘要列表(content 截断 120 字)。
7
+ */
8
+ export const searchReferencesArgsSchema = Type.Object({
9
+ query: Type.String(),
10
+ type: Type.Optional(Type.String()),
11
+ tags: Type.Optional(Type.Array(Type.String())),
12
+ }, { additionalProperties: false });
13
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/schemas/reference.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,EAAE,IAAI,EAAe,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CACnD;IACE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Type, type Static } from "@earendil-works/pi-ai";
2
+ /** 关系类型白名单(预定义 16 种;工具参数由 LLM 生成,枚举提前拦非法值——与 REST 层的宽松 string 不同) */
3
+ 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
+ * query_relationships 入参:source_type/target_type 为自由字符串(实体类型或 outline_node);
6
+ * relation_type 白名单;depth 1=紧邻 / 2=k跳 / 3=全量(必填,与 API 层一致)
7
+ */
8
+ export declare const queryRelationshipsArgsSchema: Type.TObject<{
9
+ source_type: Type.TOptional<Type.TString>;
10
+ source_id: Type.TOptional<Type.TString>;
11
+ target_type: Type.TOptional<Type.TString>;
12
+ target_id: Type.TOptional<Type.TString>;
13
+ relation_type: Type.TOptional<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">>;
14
+ depth: Type.TUnion<[Type.TLiteral<1>, Type.TLiteral<2>, Type.TLiteral<3>]>;
15
+ }>;
16
+ export type QueryRelationshipsArgs = Static<typeof queryRelationshipsArgsSchema>;
17
+ //# sourceMappingURL=relation.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ // 工具参数 schema:关系域(query_relationships)
2
+ import { Type } from "@earendil-works/pi-ai";
3
+ import { RELATION_TYPES } from "@whispering233/ai-editor-shared";
4
+ import { stringEnum } from "./helpers.js";
5
+ /** 关系类型白名单(预定义 16 种;工具参数由 LLM 生成,枚举提前拦非法值——与 REST 层的宽松 string 不同) */
6
+ export const relationTypeSchema = stringEnum(RELATION_TYPES);
7
+ /**
8
+ * query_relationships 入参:source_type/target_type 为自由字符串(实体类型或 outline_node);
9
+ * relation_type 白名单;depth 1=紧邻 / 2=k跳 / 3=全量(必填,与 API 层一致)
10
+ */
11
+ export const queryRelationshipsArgsSchema = Type.Object({
12
+ source_type: Type.Optional(Type.String()),
13
+ source_id: Type.Optional(Type.String()),
14
+ target_type: Type.Optional(Type.String()),
15
+ target_id: Type.Optional(Type.String()),
16
+ relation_type: Type.Optional(relationTypeSchema),
17
+ depth: Type.Union([Type.Literal(1), Type.Literal(2), Type.Literal(3)]),
18
+ }, { additionalProperties: false });
19
+ //# sourceMappingURL=relation.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whispering233/ai-editor-tools",
3
- "version": "0.0.29",
3
+ "version": "0.0.32",
4
4
  "license": "MIT",
5
5
  "description": "AI 工具目录:工具定义 + 执行器",
6
6
  "type": "module",
@@ -26,12 +26,12 @@
26
26
  "postpack": "node ../../scripts/restore-package-json.mjs"
27
27
  },
28
28
  "dependencies": {
29
- "@whispering233/ai-editor-db": "0.0.29",
30
- "@whispering233/ai-editor-shared": "0.0.29"
29
+ "@earendil-works/pi-ai": "0.85.1",
30
+ "@whispering233/ai-editor-db": "0.0.32",
31
+ "@whispering233/ai-editor-shared": "0.0.32"
31
32
  },
32
33
  "devDependencies": {
33
- "typescript": "^5.8.0",
34
- "zod": "^4.0.0"
34
+ "typescript": "^5.8.0"
35
35
  },
36
36
  "repository": {
37
37
  "type": "git",