@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.
- package/dist/analysis/conflict.d.ts +3 -3
- package/dist/analysis/conflict.d.ts.map +1 -1
- package/dist/analysis/conflict.js +1 -1
- package/dist/analysis/consistency.d.ts +3 -3
- package/dist/analysis/consistency.d.ts.map +1 -1
- package/dist/analysis/consistency.js +4 -4
- package/dist/analysis/consistency.js.map +1 -1
- package/dist/analysis/hook.d.ts +13 -13
- package/dist/analysis/hook.d.ts.map +1 -1
- package/dist/analysis/hook.js +9 -9
- package/dist/analysis/hook.js.map +1 -1
- package/dist/analysis/orphan.d.ts +3 -3
- package/dist/analysis/orphan.d.ts.map +1 -1
- package/dist/analysis/orphan.js +3 -3
- package/dist/analysis/orphan.js.map +1 -1
- package/dist/analysis/path.d.ts +4 -4
- package/dist/analysis/path.d.ts.map +1 -1
- package/dist/analysis/path.js +4 -4
- package/dist/analysis/path.js.map +1 -1
- package/dist/analysis/suggest.d.ts +3 -3
- package/dist/analysis/suggest.d.ts.map +1 -1
- package/dist/analysis/suggest.js +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -1
- package/dist/context.js.map +1 -1
- package/dist/executor/delta.d.ts +1 -1
- package/dist/executor/delta.d.ts.map +1 -1
- package/dist/executor/delta.js +1 -1
- package/dist/executor/delta.js.map +1 -1
- package/dist/executor/entity.d.ts +3 -3
- package/dist/executor/entity.d.ts.map +1 -1
- package/dist/executor/entity.js +5 -5
- package/dist/executor/entity.js.map +1 -1
- package/dist/executor/hook.d.ts +3 -3
- package/dist/executor/hook.d.ts.map +1 -1
- package/dist/executor/hook.js +12 -12
- package/dist/executor/hook.js.map +1 -1
- package/dist/executor/index.d.ts +0 -2
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +2 -2
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/outline.d.ts +3 -3
- package/dist/executor/outline.d.ts.map +1 -1
- package/dist/executor/outline.js +4 -4
- package/dist/executor/outline.js.map +1 -1
- package/dist/executor/reference.js +2 -2
- package/dist/executor/reference.js.map +1 -1
- package/dist/executor/relation.d.ts +2 -2
- package/dist/executor/relation.d.ts.map +1 -1
- package/dist/executor/relation.js +3 -3
- package/dist/executor/relation.js.map +1 -1
- package/dist/executor/reorder-timepoints.d.ts +1 -1
- package/dist/executor/reorder-timepoints.d.ts.map +1 -1
- package/dist/executor/reorder-timepoints.js +2 -2
- package/dist/executor/reorder-timepoints.js.map +1 -1
- package/dist/executor/types.d.ts +1 -3
- package/dist/executor/types.d.ts.map +1 -1
- package/dist/executor/types.js +0 -7
- package/dist/executor/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -49
- package/dist/index.js.map +1 -1
- package/dist/proposal/delta.d.ts +1 -1
- package/dist/proposal/delta.d.ts.map +1 -1
- package/dist/proposal/delta.js +1 -1
- package/dist/proposal/delta.js.map +1 -1
- package/dist/proposal/entity.d.ts +1 -1
- package/dist/proposal/entity.d.ts.map +1 -1
- package/dist/proposal/entity.js +1 -1
- package/dist/proposal/entity.js.map +1 -1
- package/dist/proposal/hook.d.ts +1 -1
- package/dist/proposal/hook.d.ts.map +1 -1
- package/dist/proposal/hook.js +1 -1
- package/dist/proposal/hook.js.map +1 -1
- package/dist/proposal/outline.d.ts +1 -1
- package/dist/proposal/outline.d.ts.map +1 -1
- package/dist/proposal/outline.js +2 -2
- package/dist/proposal/outline.js.map +1 -1
- package/dist/proposal/reference.d.ts +1 -1
- package/dist/proposal/reference.d.ts.map +1 -1
- package/dist/proposal/reference.js +1 -1
- package/dist/proposal/reference.js.map +1 -1
- package/dist/proposal/relation.d.ts +1 -1
- package/dist/proposal/relation.d.ts.map +1 -1
- package/dist/proposal/reorder-timepoints.d.ts +2 -2
- package/dist/proposal/reorder-timepoints.d.ts.map +1 -1
- package/dist/proposal/reorder-timepoints.js +5 -5
- package/dist/proposal/reorder-timepoints.js.map +1 -1
- package/dist/proposal/types.d.ts +5 -5
- package/dist/proposal/types.d.ts.map +1 -1
- package/dist/proposal/types.js +4 -4
- package/dist/proposal/types.js.map +1 -1
- package/dist/query/delta.d.ts +3 -3
- package/dist/query/delta.d.ts.map +1 -1
- package/dist/query/delta.js +3 -3
- package/dist/query/delta.js.map +1 -1
- package/dist/query/entity.d.ts +4 -4
- package/dist/query/entity.d.ts.map +1 -1
- package/dist/query/entity.js +3 -3
- package/dist/query/outline.d.ts +3 -3
- package/dist/query/outline.d.ts.map +1 -1
- package/dist/query/outline.js +3 -3
- package/dist/query/outline.js.map +1 -1
- package/dist/query/reference.d.ts +2 -2
- package/dist/query/reference.d.ts.map +1 -1
- package/dist/query/reference.js +2 -2
- package/dist/query/reference.js.map +1 -1
- package/dist/query/relation.d.ts +2 -2
- package/dist/query/relation.d.ts.map +1 -1
- package/dist/query/relation.js +1 -1
- package/dist/registry.d.ts +21 -14
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +23 -9
- package/dist/registry.js.map +1 -1
- package/dist/schemas/analysis.d.ts +51 -0
- package/dist/schemas/analysis.d.ts.map +1 -0
- package/dist/schemas/analysis.js +46 -0
- package/dist/schemas/analysis.js.map +1 -0
- package/dist/schemas/delta.d.ts +31 -0
- package/dist/schemas/delta.d.ts.map +1 -0
- package/dist/schemas/delta.js +35 -0
- package/dist/schemas/delta.js.map +1 -0
- package/dist/schemas/entity.d.ts +28 -0
- package/dist/schemas/entity.d.ts.map +1 -0
- package/dist/schemas/entity.js +31 -0
- package/dist/schemas/entity.js.map +1 -0
- package/dist/schemas/helpers.d.ts +8 -0
- package/dist/schemas/helpers.d.ts.map +1 -0
- package/dist/schemas/helpers.js +27 -0
- package/dist/schemas/helpers.js.map +1 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +12 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/outline.d.ts +11 -0
- package/dist/schemas/outline.d.ts.map +1 -0
- package/dist/schemas/outline.js +12 -0
- package/dist/schemas/outline.js.map +1 -0
- package/dist/schemas/proposal.d.ts +125 -0
- package/dist/schemas/proposal.d.ts.map +1 -0
- package/dist/schemas/proposal.js +123 -0
- package/dist/schemas/proposal.js.map +1 -0
- package/dist/schemas/reference.d.ts +13 -0
- package/dist/schemas/reference.d.ts.map +1 -0
- package/dist/schemas/reference.js +13 -0
- package/dist/schemas/reference.js.map +1 -0
- package/dist/schemas/relation.d.ts +17 -0
- package/dist/schemas/relation.d.ts.map +1 -0
- package/dist/schemas/relation.js +19 -0
- package/dist/schemas/relation.js.map +1 -0
- 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
|
|
9
|
+
// - projectId:当前打开项目的 id(会话归属项目;提案绑定 project_id)
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/executor/delta.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/executor/delta.js
CHANGED
|
@@ -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
|
|
10
|
+
/** add_delta(add_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,
|
|
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
|
|
2
|
+
/** create_entity(create_entity(type, name, data) → id) */
|
|
3
3
|
export declare const executeCreateEntity: ExecutorFn;
|
|
4
|
-
/** update_entity
|
|
4
|
+
/** update_entity(update_entity(id, patches) → updated;patches 浅合并进 data) */
|
|
5
5
|
export declare const executeUpdateEntity: ExecutorFn;
|
|
6
|
-
/** delete_entity
|
|
6
|
+
/** delete_entity(delete_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,
|
|
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"}
|
package/dist/executor/entity.js
CHANGED
|
@@ -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
|
|
17
|
+
/** create_entity(create_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
|
|
27
|
+
/** update_entity(update_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
|
|
38
|
+
/** delete_entity(delete_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,
|
|
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"}
|
package/dist/executor/hook.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type ExecutorFn } from "./types.js";
|
|
2
|
-
/** advance_hook
|
|
2
|
+
/** advance_hook(advance_hook(hook_id, node_id, description) → id) */
|
|
3
3
|
export declare const executeAdvanceHook: ExecutorFn;
|
|
4
|
-
/** resolve_hook
|
|
4
|
+
/** resolve_hook(resolve_hook(hook_id, node_id, description) → id) */
|
|
5
5
|
export declare const executeResolveHook: ExecutorFn;
|
|
6
|
-
/** abandon_hook
|
|
6
|
+
/** abandon_hook(abandon_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,
|
|
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"}
|
package/dist/executor/hook.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
/**
|
|
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=当前状态,
|
|
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
|
|
177
|
+
/** advance_hook(advance_hook(hook_id, node_id, description) → id) */
|
|
178
178
|
export const executeAdvanceHook = (ctx, proposal) => executeHookTransition(ctx, proposal, "advances", "progressing", "推进");
|
|
179
|
-
/** resolve_hook
|
|
179
|
+
/** resolve_hook(resolve_hook(hook_id, node_id, description) → id) */
|
|
180
180
|
export const executeResolveHook = (ctx, proposal) => executeHookTransition(ctx, proposal, "resolves", "resolved", "回收");
|
|
181
|
-
/** abandon_hook
|
|
181
|
+
/** abandon_hook(abandon_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":"AAAA,iCAAiC;AACjC,6CAA6C;AAC7C,EAAE;AACF,4DAA4D;AAC5D,+CAA+C;AAC/C,oFAAoF;AACpF,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/executor/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/executor/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/executor/index.js
CHANGED
|
@@ -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":"AAAA,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAC/D,6EAA6E;AAC7E,wDAAwD;AACxD,wEAAwE;AACxE,4EAA4E;AAC5E,
|
|
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
|
|
2
|
+
/** create_outline_node(create_outline_node(type, title, parent) → id) */
|
|
3
3
|
export declare const executeCreateOutlineNode: ExecutorFn;
|
|
4
|
-
/** move_node
|
|
4
|
+
/** move_node(move_node(node_id, parent, order) → void;parent 可为 root) */
|
|
5
5
|
export declare const executeMoveNode: ExecutorFn;
|
|
6
|
-
/** delete_node
|
|
6
|
+
/** delete_node(delete_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,
|
|
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"}
|
package/dist/executor/outline.js
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
//
|
|
4
4
|
// 写路径:直接调 db outline-ops(唯一写路径;outline.json 原子写由 db 层保证);
|
|
5
5
|
// updatedAt 由应用层 nowIso 传入(时间约定:ISO 8601 应用层写入,模块不生成时间)。
|
|
6
|
-
//
|
|
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
|
|
11
|
+
/** create_outline_node(create_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
|
|
23
|
+
/** move_node(move_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
|
|
33
|
+
/** delete_node(delete_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,
|
|
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", //
|
|
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,
|
|
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
|
|
2
|
+
/** add_relation(add_relation(source, target, type) → id) */
|
|
3
3
|
export declare const executeAddRelation: ExecutorFn;
|
|
4
|
-
/** remove_relation
|
|
4
|
+
/** remove_relation(remove_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,
|
|
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
|
|
11
|
+
/** add_relation(add_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
|
|
24
|
+
/** remove_relation(remove_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
|
|
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
|
|
4
|
+
/** reorder_timepoints(reorder_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,
|
|
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
|
-
// 不变,
|
|
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
|
|
15
|
+
/** reorder_timepoints(reorder_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,
|
|
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"}
|
package/dist/executor/types.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/executor/types.js
CHANGED
|
@@ -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,
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|