@thread-memory/core 1.0.1 → 1.0.3

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 (55) hide show
  1. package/package.json +2 -2
  2. package/dist/assets.test.d.ts +0 -1
  3. package/dist/assets.test.js +0 -88
  4. package/dist/assets.test.js.map +0 -1
  5. package/dist/events.test.d.ts +0 -1
  6. package/dist/events.test.js +0 -46
  7. package/dist/events.test.js.map +0 -1
  8. package/dist/feedback-guard.test.d.ts +0 -1
  9. package/dist/feedback-guard.test.js +0 -67
  10. package/dist/feedback-guard.test.js.map +0 -1
  11. package/dist/index.test.d.ts +0 -1
  12. package/dist/index.test.js +0 -8
  13. package/dist/index.test.js.map +0 -1
  14. package/dist/isolation.test.d.ts +0 -1
  15. package/dist/isolation.test.js +0 -100
  16. package/dist/isolation.test.js.map +0 -1
  17. package/dist/light-confirm.test.d.ts +0 -1
  18. package/dist/light-confirm.test.js +0 -236
  19. package/dist/light-confirm.test.js.map +0 -1
  20. package/dist/lineage.test.d.ts +0 -1
  21. package/dist/lineage.test.js +0 -56
  22. package/dist/lineage.test.js.map +0 -1
  23. package/dist/migrate.test.d.ts +0 -1
  24. package/dist/migrate.test.js +0 -111
  25. package/dist/migrate.test.js.map +0 -1
  26. package/dist/nav.test.d.ts +0 -1
  27. package/dist/nav.test.js +0 -100
  28. package/dist/nav.test.js.map +0 -1
  29. package/dist/project-key.test.d.ts +0 -1
  30. package/dist/project-key.test.js +0 -29
  31. package/dist/project-key.test.js.map +0 -1
  32. package/dist/query.test.d.ts +0 -1
  33. package/dist/query.test.js +0 -165
  34. package/dist/query.test.js.map +0 -1
  35. package/dist/schema.test.d.ts +0 -1
  36. package/dist/schema.test.js +0 -167
  37. package/dist/schema.test.js.map +0 -1
  38. package/dist/sediment.test.d.ts +0 -1
  39. package/dist/sediment.test.js +0 -89
  40. package/dist/sediment.test.js.map +0 -1
  41. package/dist/segment.test.d.ts +0 -1
  42. package/dist/segment.test.js +0 -37
  43. package/dist/segment.test.js.map +0 -1
  44. package/dist/state-delta.test.d.ts +0 -1
  45. package/dist/state-delta.test.js +0 -90
  46. package/dist/state-delta.test.js.map +0 -1
  47. package/dist/status-card.test.d.ts +0 -1
  48. package/dist/status-card.test.js +0 -126
  49. package/dist/status-card.test.js.map +0 -1
  50. package/dist/store.test.d.ts +0 -1
  51. package/dist/store.test.js +0 -394
  52. package/dist/store.test.js.map +0 -1
  53. package/dist/v7.test.d.ts +0 -1
  54. package/dist/v7.test.js +0 -106
  55. package/dist/v7.test.js.map +0 -1
package/dist/v7.test.js DELETED
@@ -1,106 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { mkdtempSync, rmSync } from "node:fs";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { ThreadStore } from "./store.js";
6
- function makeStore() {
7
- const dir = mkdtempSync(join(tmpdir(), "thread-v7-"));
8
- const store = new ThreadStore({ eventsPath: join(dir, "events.db"), structuredPath: join(dir, "structured.db"), projectKey: "demo" });
9
- return { store, dir };
10
- }
11
- describe("knowledge_assets(v7 产出登记 + 写时建边)", () => {
12
- it("registerAsset 落行 + produces/references 边", () => {
13
- const { store, dir } = makeStore();
14
- try {
15
- const ev = store.append({ session_id: "s1", kind: "tool_call", ts: "2026-08-20T00:00:00.000Z", body: "write" });
16
- const a = store.registerAsset({ sessionId: "s1", path: "docs/local/design/x.md", title: "设计", sourceEvent: ev.id });
17
- expect(a.id).toBeGreaterThan(0);
18
- expect(a.path).toBe("docs/local/design/x.md");
19
- const edges = store.getRelatedEdges("s1", "asset", a.id);
20
- const types = edges.map((e) => e.edge_type).sort();
21
- expect(types).toEqual(["produces", "references"]);
22
- const produces = edges.find((e) => e.edge_type === "produces");
23
- expect(produces?.src_type).toBe("session");
24
- expect(produces?.ref).toBe("s1");
25
- }
26
- finally {
27
- store.close();
28
- rmSync(dir, { recursive: true, force: true });
29
- }
30
- });
31
- it("listAssets:sessionId 过滤 + 隔离只对建立会话可见", () => {
32
- const { store, dir } = makeStore();
33
- try {
34
- store.registerAsset({ sessionId: "s1", path: "a.md", title: "A" });
35
- store.registerAsset({ sessionId: "s1", path: "b.md", title: "B", isolation: true });
36
- store.registerAsset({ sessionId: "s2", path: "c.md", title: "C" });
37
- expect(store.listAssets({ sessionId: "s1" })).toHaveLength(2);
38
- // 隔离语义:查看方可见 isolation=0 的全会话产出 + 自己会话的隔离产出
39
- expect(store.listAssets({ visibleToSession: "s2" }).map((a) => a.title)).toEqual(["C", "A"]);
40
- expect(store.listAssets({ visibleToSession: "s1" }).map((a) => a.title)).toEqual(["C", "B", "A"]);
41
- }
42
- finally {
43
- store.close();
44
- rmSync(dir, { recursive: true, force: true });
45
- }
46
- });
47
- it("显式登记(/thread-asset 路径):topic/scenario 可带", () => {
48
- const { store, dir } = makeStore();
49
- try {
50
- const a = store.registerAsset({ sessionId: "s1", path: "notes.md", title: "研究笔记", topic: "cordis" });
51
- expect(store.getAsset(a.id)?.topic).toBe("cordis");
52
- }
53
- finally {
54
- store.close();
55
- rmSync(dir, { recursive: true, force: true });
56
- }
57
- });
58
- });
59
- describe("todos(v7 待办)", () => {
60
- it("addTodo/listTodos/updateTodoStatus 全链", () => {
61
- const { store, dir } = makeStore();
62
- try {
63
- const t = store.addTodo({ sessionId: "s1", text: "完成批 1", basis: "目标 #1", projectKey: "demo" });
64
- expect(t.status).toBe("pending");
65
- expect(store.listTodos({ projectKey: "demo", status: "pending" })).toHaveLength(1);
66
- expect(store.updateTodoStatus(t.id, "done")).toBe(true);
67
- expect(store.updateTodoStatus(t.id, "done")).toBe(true);
68
- expect(store.listTodos({ status: "pending" })).toHaveLength(0);
69
- expect(store.listTodos({ status: "done" })).toHaveLength(1);
70
- }
71
- finally {
72
- store.close();
73
- rmSync(dir, { recursive: true, force: true });
74
- }
75
- });
76
- it("隔离过滤:visibleToSession 只漏本会话待办", () => {
77
- const { store, dir } = makeStore();
78
- try {
79
- store.addTodo({ sessionId: "s1", text: "公开待办" });
80
- store.addTodo({ sessionId: "s2", text: "隔离待办", isolation: true });
81
- expect(store.listTodos({ visibleToSession: "s1" }).map((t) => t.text)).toEqual(["公开待办"]);
82
- expect(store.listTodos({ visibleToSession: "s2" }).map((t) => t.text)).toEqual(["隔离待办", "公开待办"]);
83
- }
84
- finally {
85
- store.close();
86
- rmSync(dir, { recursive: true, force: true });
87
- }
88
- });
89
- });
90
- describe("thread_meta(v7 送达水位,G5 跨会话 delta 判定持久化)", () => {
91
- it("set/get/覆盖更新", () => {
92
- const { store, dir } = makeStore();
93
- try {
94
- expect(store.getMeta("lastDeltaAt:s1")).toBeUndefined();
95
- store.setMeta("lastDeltaAt:s1", "2026-08-20T00:00:00.000Z");
96
- expect(store.getMeta("lastDeltaAt:s1")).toBe("2026-08-20T00:00:00.000Z");
97
- store.setMeta("lastDeltaAt:s1", "2026-08-20T01:00:00.000Z");
98
- expect(store.getMeta("lastDeltaAt:s1")).toBe("2026-08-20T01:00:00.000Z");
99
- }
100
- finally {
101
- store.close();
102
- rmSync(dir, { recursive: true, force: true });
103
- }
104
- });
105
- });
106
- //# sourceMappingURL=v7.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v7.test.js","sourceRoot":"","sources":["../src/v7.test.ts"],"names":[],"mappings":"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"}