agent-recall-mcp 3.3.2 → 3.3.4

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 (152) hide show
  1. package/dist/index.js +6 -13
  2. package/dist/index.js.map +1 -1
  3. package/dist/resources/journal-resources.d.ts.map +1 -1
  4. package/dist/resources/journal-resources.js +5 -29
  5. package/dist/resources/journal-resources.js.map +1 -1
  6. package/dist/server.js +1 -1
  7. package/dist/server.js.map +1 -1
  8. package/dist/tools/alignment-check.d.ts.map +1 -1
  9. package/dist/tools/alignment-check.js +3 -54
  10. package/dist/tools/alignment-check.js.map +1 -1
  11. package/dist/tools/awareness-update.d.ts +2 -8
  12. package/dist/tools/awareness-update.d.ts.map +1 -1
  13. package/dist/tools/awareness-update.js +3 -66
  14. package/dist/tools/awareness-update.js.map +1 -1
  15. package/dist/tools/context-synthesize.d.ts.map +1 -1
  16. package/dist/tools/context-synthesize.js +6 -187
  17. package/dist/tools/context-synthesize.js.map +1 -1
  18. package/dist/tools/journal-archive.d.ts.map +1 -1
  19. package/dist/tools/journal-archive.js +3 -48
  20. package/dist/tools/journal-archive.js.map +1 -1
  21. package/dist/tools/journal-capture.d.ts.map +1 -1
  22. package/dist/tools/journal-capture.js +3 -60
  23. package/dist/tools/journal-capture.js.map +1 -1
  24. package/dist/tools/journal-cold-start.d.ts.map +1 -1
  25. package/dist/tools/journal-cold-start.js +10 -52
  26. package/dist/tools/journal-cold-start.js.map +1 -1
  27. package/dist/tools/journal-list.d.ts.map +1 -1
  28. package/dist/tools/journal-list.js +3 -23
  29. package/dist/tools/journal-list.js.map +1 -1
  30. package/dist/tools/journal-projects.d.ts.map +1 -1
  31. package/dist/tools/journal-projects.js +3 -16
  32. package/dist/tools/journal-projects.js.map +1 -1
  33. package/dist/tools/journal-read.d.ts.map +1 -1
  34. package/dist/tools/journal-read.js +5 -45
  35. package/dist/tools/journal-read.js.map +1 -1
  36. package/dist/tools/journal-rollup.d.ts +3 -0
  37. package/dist/tools/journal-rollup.d.ts.map +1 -0
  38. package/dist/tools/journal-rollup.js +21 -0
  39. package/dist/tools/journal-rollup.js.map +1 -0
  40. package/dist/tools/journal-search.d.ts.map +1 -1
  41. package/dist/tools/journal-search.js +3 -91
  42. package/dist/tools/journal-search.js.map +1 -1
  43. package/dist/tools/journal-state.d.ts +0 -3
  44. package/dist/tools/journal-state.d.ts.map +1 -1
  45. package/dist/tools/journal-state.js +5 -93
  46. package/dist/tools/journal-state.js.map +1 -1
  47. package/dist/tools/journal-write.d.ts.map +1 -1
  48. package/dist/tools/journal-write.js +3 -62
  49. package/dist/tools/journal-write.js.map +1 -1
  50. package/dist/tools/knowledge-read.d.ts.map +1 -1
  51. package/dist/tools/knowledge-read.js +3 -100
  52. package/dist/tools/knowledge-read.js.map +1 -1
  53. package/dist/tools/knowledge-write.d.ts.map +1 -1
  54. package/dist/tools/knowledge-write.js +3 -66
  55. package/dist/tools/knowledge-write.js.map +1 -1
  56. package/dist/tools/nudge.d.ts.map +1 -1
  57. package/dist/tools/nudge.js +3 -25
  58. package/dist/tools/nudge.js.map +1 -1
  59. package/dist/tools/palace-lint.d.ts +2 -6
  60. package/dist/tools/palace-lint.d.ts.map +1 -1
  61. package/dist/tools/palace-lint.js +3 -135
  62. package/dist/tools/palace-lint.js.map +1 -1
  63. package/dist/tools/palace-read.d.ts +2 -5
  64. package/dist/tools/palace-read.d.ts.map +1 -1
  65. package/dist/tools/palace-read.js +5 -62
  66. package/dist/tools/palace-read.js.map +1 -1
  67. package/dist/tools/palace-search.d.ts +2 -5
  68. package/dist/tools/palace-search.d.ts.map +1 -1
  69. package/dist/tools/palace-search.js +3 -66
  70. package/dist/tools/palace-search.js.map +1 -1
  71. package/dist/tools/palace-walk.d.ts +2 -11
  72. package/dist/tools/palace-walk.d.ts.map +1 -1
  73. package/dist/tools/palace-walk.js +3 -149
  74. package/dist/tools/palace-walk.js.map +1 -1
  75. package/dist/tools/palace-write.d.ts +2 -5
  76. package/dist/tools/palace-write.d.ts.map +1 -1
  77. package/dist/tools/palace-write.js +3 -90
  78. package/dist/tools/palace-write.js.map +1 -1
  79. package/dist/tools/recall-insight.d.ts +2 -8
  80. package/dist/tools/recall-insight.d.ts.map +1 -1
  81. package/dist/tools/recall-insight.js +3 -35
  82. package/dist/tools/recall-insight.js.map +1 -1
  83. package/package.json +9 -46
  84. package/README.md +0 -435
  85. package/dist/helpers/journal-files.d.ts +0 -30
  86. package/dist/helpers/journal-files.d.ts.map +0 -1
  87. package/dist/helpers/journal-files.js +0 -96
  88. package/dist/helpers/journal-files.js.map +0 -1
  89. package/dist/helpers/sections.d.ts +0 -12
  90. package/dist/helpers/sections.d.ts.map +0 -1
  91. package/dist/helpers/sections.js +0 -84
  92. package/dist/helpers/sections.js.map +0 -1
  93. package/dist/palace/awareness.d.ts +0 -67
  94. package/dist/palace/awareness.d.ts.map +0 -1
  95. package/dist/palace/awareness.js +0 -231
  96. package/dist/palace/awareness.js.map +0 -1
  97. package/dist/palace/consolidate.d.ts +0 -28
  98. package/dist/palace/consolidate.d.ts.map +0 -1
  99. package/dist/palace/consolidate.js +0 -129
  100. package/dist/palace/consolidate.js.map +0 -1
  101. package/dist/palace/fan-out.d.ts +0 -15
  102. package/dist/palace/fan-out.d.ts.map +0 -1
  103. package/dist/palace/fan-out.js +0 -78
  104. package/dist/palace/fan-out.js.map +0 -1
  105. package/dist/palace/graph.d.ts +0 -11
  106. package/dist/palace/graph.d.ts.map +0 -1
  107. package/dist/palace/graph.js +0 -59
  108. package/dist/palace/graph.js.map +0 -1
  109. package/dist/palace/identity.d.ts +0 -6
  110. package/dist/palace/identity.d.ts.map +0 -1
  111. package/dist/palace/identity.js +0 -18
  112. package/dist/palace/identity.js.map +0 -1
  113. package/dist/palace/index-manager.d.ts +0 -7
  114. package/dist/palace/index-manager.d.ts.map +0 -1
  115. package/dist/palace/index-manager.js +0 -46
  116. package/dist/palace/index-manager.js.map +0 -1
  117. package/dist/palace/insights-index.d.ts +0 -39
  118. package/dist/palace/insights-index.d.ts.map +0 -1
  119. package/dist/palace/insights-index.js +0 -101
  120. package/dist/palace/insights-index.js.map +0 -1
  121. package/dist/palace/log.d.ts +0 -9
  122. package/dist/palace/log.d.ts.map +0 -1
  123. package/dist/palace/log.js +0 -28
  124. package/dist/palace/log.js.map +0 -1
  125. package/dist/palace/obsidian.d.ts +0 -12
  126. package/dist/palace/obsidian.d.ts.map +0 -1
  127. package/dist/palace/obsidian.js +0 -76
  128. package/dist/palace/obsidian.js.map +0 -1
  129. package/dist/palace/rooms.d.ts +0 -14
  130. package/dist/palace/rooms.d.ts.map +0 -1
  131. package/dist/palace/rooms.js +0 -117
  132. package/dist/palace/rooms.js.map +0 -1
  133. package/dist/palace/salience.d.ts +0 -15
  134. package/dist/palace/salience.d.ts.map +0 -1
  135. package/dist/palace/salience.js +0 -33
  136. package/dist/palace/salience.js.map +0 -1
  137. package/dist/storage/fs-utils.d.ts +0 -8
  138. package/dist/storage/fs-utils.d.ts.map +0 -1
  139. package/dist/storage/fs-utils.js +0 -28
  140. package/dist/storage/fs-utils.js.map +0 -1
  141. package/dist/storage/paths.d.ts +0 -21
  142. package/dist/storage/paths.d.ts.map +0 -1
  143. package/dist/storage/paths.js +0 -59
  144. package/dist/storage/paths.js.map +0 -1
  145. package/dist/storage/project.d.ts +0 -17
  146. package/dist/storage/project.d.ts.map +0 -1
  147. package/dist/storage/project.js +0 -130
  148. package/dist/storage/project.js.map +0 -1
  149. package/dist/types.d.ts +0 -112
  150. package/dist/types.d.ts.map +0 -1
  151. package/dist/types.js +0 -31
  152. package/dist/types.js.map +0 -1
@@ -1,59 +0,0 @@
1
- /**
2
- * Palace graph management — cross-reference edges between rooms and memories.
3
- */
4
- import * as path from "node:path";
5
- import { readJsonSafe, writeJsonAtomic } from "../storage/fs-utils.js";
6
- function graphPath(palaceDir) {
7
- return path.join(palaceDir, "graph.json");
8
- }
9
- export function readGraph(palaceDir) {
10
- return readJsonSafe(graphPath(palaceDir)) ?? { edges: [] };
11
- }
12
- export function writeGraph(palaceDir, graph) {
13
- writeJsonAtomic(graphPath(palaceDir), graph);
14
- }
15
- export function addEdge(palaceDir, from, to, type = "references", weight = 0.5) {
16
- const graph = readGraph(palaceDir);
17
- // Don't duplicate
18
- const exists = graph.edges.some((e) => e.from === from && e.to === to && e.type === type);
19
- if (exists)
20
- return;
21
- graph.edges.push({
22
- from,
23
- to,
24
- type,
25
- weight,
26
- created: new Date().toISOString(),
27
- });
28
- writeGraph(palaceDir, graph);
29
- }
30
- export function removeEdgesFor(palaceDir, target) {
31
- const graph = readGraph(palaceDir);
32
- graph.edges = graph.edges.filter((e) => e.from !== target && e.to !== target);
33
- writeGraph(palaceDir, graph);
34
- }
35
- export function getConnectionCount(palaceDir, roomSlug) {
36
- const graph = readGraph(palaceDir);
37
- return graph.edges.filter((e) => e.from.startsWith(roomSlug + "/") ||
38
- e.to.startsWith(roomSlug + "/") ||
39
- e.from === roomSlug ||
40
- e.to === roomSlug).length;
41
- }
42
- export function getConnectedRooms(palaceDir, roomSlug) {
43
- const graph = readGraph(palaceDir);
44
- const connected = new Set();
45
- for (const edge of graph.edges) {
46
- if (edge.from.startsWith(roomSlug + "/") || edge.from === roomSlug) {
47
- const target = edge.to.split("/")[0];
48
- if (target !== roomSlug)
49
- connected.add(target);
50
- }
51
- if (edge.to.startsWith(roomSlug + "/") || edge.to === roomSlug) {
52
- const source = edge.from.split("/")[0];
53
- if (source !== roomSlug)
54
- connected.add(source);
55
- }
56
- }
57
- return Array.from(connected);
58
- }
59
- //# sourceMappingURL=graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/palace/graph.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Palace identity card — ~50 token project summary.
3
- */
4
- export declare function readIdentity(project: string): string;
5
- export declare function writeIdentity(project: string, content: string): void;
6
- //# sourceMappingURL=identity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/palace/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGpE"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Palace identity card — ~50 token project summary.
3
- */
4
- import * as fs from "node:fs";
5
- import * as path from "node:path";
6
- import { palaceDir } from "../storage/paths.js";
7
- export function readIdentity(project) {
8
- const idPath = path.join(palaceDir(project), "identity.md");
9
- if (!fs.existsSync(idPath)) {
10
- return `# ${project}\n\n> No identity card yet. Use palace_write to add one.`;
11
- }
12
- return fs.readFileSync(idPath, "utf-8");
13
- }
14
- export function writeIdentity(project, content) {
15
- const idPath = path.join(palaceDir(project), "identity.md");
16
- fs.writeFileSync(idPath, content, "utf-8");
17
- }
18
- //# sourceMappingURL=identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/palace/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,OAAO,0DAA0D,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAe;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Palace index management — maintains palace-index.json.
3
- */
4
- import type { PalaceIndex } from "../types.js";
5
- export declare function readPalaceIndex(project: string): PalaceIndex | null;
6
- export declare function updatePalaceIndex(project: string): PalaceIndex;
7
- //# sourceMappingURL=index-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/palace/index-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU/C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAoC9D"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Palace index management — maintains palace-index.json.
3
- */
4
- import * as fs from "node:fs";
5
- import * as path from "node:path";
6
- import { VERSION } from "../types.js";
7
- import { palaceDir } from "../storage/paths.js";
8
- import { readJsonSafe, writeJsonAtomic } from "../storage/fs-utils.js";
9
- import { listRooms } from "./rooms.js";
10
- function indexPath(project) {
11
- return path.join(palaceDir(project), "palace-index.json");
12
- }
13
- export function readPalaceIndex(project) {
14
- return readJsonSafe(indexPath(project));
15
- }
16
- export function updatePalaceIndex(project) {
17
- const rooms = listRooms(project);
18
- const pd = palaceDir(project);
19
- const existing = readPalaceIndex(project);
20
- const roomsMap = {};
21
- for (const room of rooms) {
22
- // Count memory files in this room (everything except _room.json and README.md)
23
- const roomPath = path.join(pd, "rooms", room.slug);
24
- let memoryCount = 0;
25
- if (fs.existsSync(roomPath)) {
26
- const files = fs.readdirSync(roomPath);
27
- memoryCount = files.filter((f) => f.endsWith(".md") && f !== "README.md").length;
28
- }
29
- roomsMap[room.slug] = {
30
- salience: room.salience,
31
- memory_count: memoryCount,
32
- last_updated: room.updated,
33
- };
34
- }
35
- const index = {
36
- version: VERSION,
37
- project,
38
- created: existing?.created ?? new Date().toISOString(),
39
- rooms: roomsMap,
40
- identity_hash: existing?.identity_hash ?? "",
41
- last_lint: existing?.last_lint ?? "",
42
- };
43
- writeJsonAtomic(indexPath(project), index);
44
- return index;
45
- }
46
- //# sourceMappingURL=index-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../../src/palace/index-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,YAAY,CAAc,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACvC,WAAW,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAC9C,CAAC,MAAM,CAAC;QACX,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,WAAW;YACzB,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAgB;QACzB,OAAO,EAAE,OAAO;QAChB,OAAO;QACP,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,QAAQ,EAAE,aAAa,IAAI,EAAE;QAC5C,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,EAAE;KACrC,CAAC;IAEF,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Cross-project insights index.
3
- *
4
- * A single JSON file mapping insights to situations.
5
- * When an agent starts a task, it can query: "what insights apply here?"
6
- * The system matches the current context against `applies_when` keywords.
7
- *
8
- * Global scope: ~/.agent-recall/insights-index.json
9
- */
10
- export interface IndexedInsight {
11
- id: string;
12
- title: string;
13
- source: string;
14
- applies_when: string[];
15
- file?: string;
16
- severity: "critical" | "important" | "minor";
17
- confirmed_count: number;
18
- last_confirmed: string;
19
- }
20
- export interface InsightsIndex {
21
- version: string;
22
- updated: string;
23
- insights: IndexedInsight[];
24
- }
25
- export declare function readInsightsIndex(): InsightsIndex;
26
- export declare function writeInsightsIndex(index: InsightsIndex): void;
27
- /**
28
- * Add or update an insight in the index.
29
- */
30
- export declare function addIndexedInsight(insight: Omit<IndexedInsight, "id" | "confirmed_count" | "last_confirmed">): IndexedInsight;
31
- /**
32
- * Recall insights relevant to a given context.
33
- * Matches context words against applies_when keywords.
34
- * Returns top N matches sorted by relevance (keyword match count × severity weight × confirmation count).
35
- */
36
- export declare function recallInsights(context: string, limit?: number): Array<IndexedInsight & {
37
- relevance: number;
38
- }>;
39
- //# sourceMappingURL=insights-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insights-index.d.ts","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAMD,wBAAgB,iBAAiB,IAAI,aAAa,CAUjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAK7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,cAAc,CAmC5H;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,KAAK,CAAC,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BhH"}
@@ -1,101 +0,0 @@
1
- /**
2
- * Cross-project insights index.
3
- *
4
- * A single JSON file mapping insights to situations.
5
- * When an agent starts a task, it can query: "what insights apply here?"
6
- * The system matches the current context against `applies_when` keywords.
7
- *
8
- * Global scope: ~/.agent-recall/insights-index.json
9
- */
10
- import * as fs from "node:fs";
11
- import * as path from "node:path";
12
- import { JOURNAL_ROOT } from "../types.js";
13
- import { ensureDir } from "../storage/fs-utils.js";
14
- function indexPath() {
15
- return path.join(JOURNAL_ROOT, "insights-index.json");
16
- }
17
- export function readInsightsIndex() {
18
- const p = indexPath();
19
- if (!fs.existsSync(p)) {
20
- return { version: "1.0.0", updated: new Date().toISOString(), insights: [] };
21
- }
22
- try {
23
- return JSON.parse(fs.readFileSync(p, "utf-8"));
24
- }
25
- catch {
26
- return { version: "1.0.0", updated: new Date().toISOString(), insights: [] };
27
- }
28
- }
29
- export function writeInsightsIndex(index) {
30
- const p = indexPath();
31
- ensureDir(path.dirname(p));
32
- index.updated = new Date().toISOString();
33
- fs.writeFileSync(p, JSON.stringify(index, null, 2), "utf-8");
34
- }
35
- /**
36
- * Add or update an insight in the index.
37
- */
38
- export function addIndexedInsight(insight) {
39
- const index = readInsightsIndex();
40
- const now = new Date().toISOString();
41
- // Check for existing by title similarity
42
- const existing = index.insights.find((i) => {
43
- const existingWords = i.title.toLowerCase().split(/\s+/);
44
- const newWords = insight.title.toLowerCase().split(/\s+/);
45
- const overlap = newWords.filter((w) => existingWords.includes(w) && w.length > 3).length;
46
- return overlap / Math.max(existingWords.length, newWords.length) > 0.5;
47
- });
48
- if (existing) {
49
- existing.confirmed_count++;
50
- existing.last_confirmed = now;
51
- // Merge applies_when
52
- for (const aw of insight.applies_when) {
53
- if (!existing.applies_when.includes(aw)) {
54
- existing.applies_when.push(aw);
55
- }
56
- }
57
- writeInsightsIndex(index);
58
- return existing;
59
- }
60
- const newInsight = {
61
- id: `idx-${Date.now()}`,
62
- ...insight,
63
- confirmed_count: 1,
64
- last_confirmed: now,
65
- };
66
- index.insights.push(newInsight);
67
- writeInsightsIndex(index);
68
- return newInsight;
69
- }
70
- /**
71
- * Recall insights relevant to a given context.
72
- * Matches context words against applies_when keywords.
73
- * Returns top N matches sorted by relevance (keyword match count × severity weight × confirmation count).
74
- */
75
- export function recallInsights(context, limit = 5) {
76
- const index = readInsightsIndex();
77
- if (index.insights.length === 0)
78
- return [];
79
- const contextWords = context.toLowerCase().split(/\s+/).filter((w) => w.length > 2);
80
- const severityWeight = { critical: 3, important: 2, minor: 1 };
81
- const scored = index.insights.map((insight) => {
82
- let matchCount = 0;
83
- for (const keyword of insight.applies_when) {
84
- const kwWords = keyword.toLowerCase().split(/\s+/);
85
- for (const kw of kwWords) {
86
- if (contextWords.some((cw) => cw.includes(kw) || kw.includes(cw))) {
87
- matchCount++;
88
- }
89
- }
90
- }
91
- const relevance = matchCount *
92
- (severityWeight[insight.severity] || 1) *
93
- Math.log2(insight.confirmed_count + 1);
94
- return { ...insight, relevance };
95
- });
96
- return scored
97
- .filter((s) => s.relevance > 0)
98
- .sort((a, b) => b.relevance - a.relevance)
99
- .slice(0, limit);
100
- }
101
- //# sourceMappingURL=insights-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insights-index.js","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Palace operation log — parseable audit trail.
3
- * Inspired by llm_wiki's wiki/log.md pattern.
4
- *
5
- * Every palace operation (write, consolidate, lint, archive) is logged
6
- * in a structured, grep-friendly format.
7
- */
8
- export declare function appendToLog(project: string, operation: string, details: Record<string, unknown>): void;
9
- //# sourceMappingURL=log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/palace/log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAiBN"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Palace operation log — parseable audit trail.
3
- * Inspired by llm_wiki's wiki/log.md pattern.
4
- *
5
- * Every palace operation (write, consolidate, lint, archive) is logged
6
- * in a structured, grep-friendly format.
7
- */
8
- import * as fs from "node:fs";
9
- import * as path from "node:path";
10
- import { palaceDir } from "../storage/paths.js";
11
- import { ensureDir } from "../storage/fs-utils.js";
12
- export function appendToLog(project, operation, details) {
13
- const pd = palaceDir(project);
14
- ensureDir(pd);
15
- const logPath = path.join(pd, "log.md");
16
- const timestamp = new Date().toISOString();
17
- const detailStr = Object.entries(details)
18
- .map(([k, v]) => `${k}=${JSON.stringify(v)}`)
19
- .join(" ");
20
- const line = `[${timestamp}] ${operation}: ${detailStr}\n`;
21
- if (!fs.existsSync(logPath)) {
22
- fs.writeFileSync(logPath, `# Palace Operation Log\n\n${line}`, "utf-8");
23
- }
24
- else {
25
- fs.appendFileSync(logPath, line, "utf-8");
26
- }
27
- }
28
- //# sourceMappingURL=log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/palace/log.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,SAAiB,EACjB,OAAgC;IAEhC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,IAAI,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,CAAC;IAE3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,6BAA6B,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Obsidian-compatible markdown formatting.
3
- * Generates YAML frontmatter and [[wikilinks]] for every palace file.
4
- */
5
- import type { RoomMeta } from "../types.js";
6
- export declare function generateFrontmatter(meta: Record<string, unknown>): string;
7
- export declare function roomReadmeContent(meta: RoomMeta): string;
8
- /** Extract [[wikilinks]] from markdown content. */
9
- export declare function extractWikilinks(content: string): string[];
10
- /** Insert a back-reference section into a README if not already present. */
11
- export declare function addBackReference(content: string, fromRoom: string, fromTopic: string): string;
12
- //# sourceMappingURL=obsidian.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obsidian.d.ts","sourceRoot":"","sources":["../../src/palace/obsidian.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAczE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA0BxD;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU1D;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAmBR"}
@@ -1,76 +0,0 @@
1
- /**
2
- * Obsidian-compatible markdown formatting.
3
- * Generates YAML frontmatter and [[wikilinks]] for every palace file.
4
- */
5
- export function generateFrontmatter(meta) {
6
- const lines = ["---"];
7
- for (const [key, value] of Object.entries(meta)) {
8
- if (value === undefined || value === null)
9
- continue;
10
- if (Array.isArray(value)) {
11
- lines.push(`${key}: [${value.map((v) => JSON.stringify(v)).join(", ")}]`);
12
- }
13
- else if (typeof value === "object") {
14
- lines.push(`${key}: ${JSON.stringify(value)}`);
15
- }
16
- else {
17
- lines.push(`${key}: ${value}`);
18
- }
19
- }
20
- lines.push("---", "");
21
- return lines.join("\n");
22
- }
23
- export function roomReadmeContent(meta) {
24
- const fm = generateFrontmatter({
25
- aliases: [meta.slug],
26
- tags: meta.tags,
27
- salience: meta.salience,
28
- created: meta.created,
29
- updated: meta.updated,
30
- connections: meta.connections,
31
- });
32
- let md = fm;
33
- md += `# ${meta.name}\n\n`;
34
- md += `> ${meta.description}\n\n`;
35
- if (meta.connections.length > 0) {
36
- md += `## Connected Rooms\n\n`;
37
- for (const conn of meta.connections) {
38
- md += `- [[${conn}/README|${conn}]]\n`;
39
- }
40
- md += "\n";
41
- }
42
- md += `## Memories\n\n`;
43
- md += `_(entries will appear below as the agent writes to this room)_\n`;
44
- return md;
45
- }
46
- /** Extract [[wikilinks]] from markdown content. */
47
- export function extractWikilinks(content) {
48
- const matches = content.matchAll(/\[\[([^\]|]+?)(?:\|[^\]]*?)?\]\]/g);
49
- const links = [];
50
- for (const m of matches) {
51
- const target = m[1].replace(/\/README$/, "").trim();
52
- if (target && !links.includes(target)) {
53
- links.push(target);
54
- }
55
- }
56
- return links;
57
- }
58
- /** Insert a back-reference section into a README if not already present. */
59
- export function addBackReference(content, fromRoom, fromTopic) {
60
- const refLine = `- [[${fromRoom}/${fromTopic}|${fromRoom}/${fromTopic}]]`;
61
- // Check if section exists
62
- const sectionHeader = "## Referenced By";
63
- if (content.includes(sectionHeader)) {
64
- if (content.includes(refLine))
65
- return content; // already referenced
66
- const idx = content.indexOf(sectionHeader);
67
- const insertPos = idx + sectionHeader.length;
68
- return (content.slice(0, insertPos) +
69
- "\n\n" +
70
- refLine +
71
- content.slice(insertPos));
72
- }
73
- // Add section at end
74
- return content.trimEnd() + `\n\n${sectionHeader}\n\n${refLine}\n`;
75
- }
76
- //# sourceMappingURL=obsidian.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obsidian.js","sourceRoot":"","sources":["../../src/palace/obsidian.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Palace room management — create, list, read, update rooms.
3
- */
4
- import type { RoomMeta } from "../types.js";
5
- export declare function createRoom(project: string, slug: string, name: string, description: string, tags?: string[], connections?: string[]): RoomMeta;
6
- export declare function getRoomMeta(project: string, roomSlug: string): RoomMeta | null;
7
- export declare function updateRoomMeta(project: string, roomSlug: string, updates: Partial<RoomMeta>): RoomMeta | null;
8
- export declare function listRooms(project: string): RoomMeta[];
9
- export declare function roomExists(project: string, roomSlug: string): boolean;
10
- /** Initialize default palace rooms if palace doesn't exist yet. */
11
- export declare function ensurePalaceInitialized(project: string): void;
12
- /** Record an access (bump access_count and last_accessed). */
13
- export declare function recordAccess(project: string, roomSlug: string): void;
14
- //# sourceMappingURL=rooms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/palace/rooms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAW5C,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAM,EAAO,EACnB,WAAW,GAAE,MAAM,EAAO,GACzB,QAAQ,CA4BV;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAG9E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI,CAS7G;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAiBrD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAyC7D;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOpE"}
@@ -1,117 +0,0 @@
1
- /**
2
- * Palace room management — create, list, read, update rooms.
3
- */
4
- import * as fs from "node:fs";
5
- import * as path from "node:path";
6
- import { DEFAULT_PALACE_ROOMS, VERSION } from "../types.js";
7
- import { ensureDir } from "../storage/fs-utils.js";
8
- import { palaceDir } from "../storage/paths.js";
9
- import { readJsonSafe, writeJsonAtomic } from "../storage/fs-utils.js";
10
- import { roomReadmeContent } from "./obsidian.js";
11
- function roomMetaPath(projectPalaceDir, roomSlug) {
12
- return path.join(projectPalaceDir, "rooms", roomSlug, "_room.json");
13
- }
14
- export function createRoom(project, slug, name, description, tags = [], connections = []) {
15
- const pd = palaceDir(project);
16
- const roomPath = path.join(pd, "rooms", slug);
17
- ensureDir(roomPath);
18
- const now = new Date().toISOString();
19
- const meta = {
20
- slug,
21
- name,
22
- description,
23
- created: now,
24
- updated: now,
25
- salience: 0.5,
26
- access_count: 0,
27
- last_accessed: now,
28
- tags,
29
- connections,
30
- };
31
- writeJsonAtomic(path.join(roomPath, "_room.json"), meta);
32
- // Create README.md with Obsidian-compatible frontmatter
33
- const readmePath = path.join(roomPath, "README.md");
34
- if (!fs.existsSync(readmePath)) {
35
- fs.writeFileSync(readmePath, roomReadmeContent(meta), "utf-8");
36
- }
37
- return meta;
38
- }
39
- export function getRoomMeta(project, roomSlug) {
40
- const pd = palaceDir(project);
41
- return readJsonSafe(roomMetaPath(pd, roomSlug));
42
- }
43
- export function updateRoomMeta(project, roomSlug, updates) {
44
- const pd = palaceDir(project);
45
- const metaPath = roomMetaPath(pd, roomSlug);
46
- const existing = readJsonSafe(metaPath);
47
- if (!existing)
48
- return null;
49
- const updated = { ...existing, ...updates, updated: new Date().toISOString() };
50
- writeJsonAtomic(metaPath, updated);
51
- return updated;
52
- }
53
- export function listRooms(project) {
54
- const pd = palaceDir(project);
55
- const roomsDir = path.join(pd, "rooms");
56
- if (!fs.existsSync(roomsDir))
57
- return [];
58
- const rooms = [];
59
- const entries = fs.readdirSync(roomsDir);
60
- for (const entry of entries) {
61
- const metaPath = path.join(roomsDir, entry, "_room.json");
62
- const meta = readJsonSafe(metaPath);
63
- if (meta)
64
- rooms.push(meta);
65
- }
66
- // Sort by salience descending
67
- rooms.sort((a, b) => b.salience - a.salience);
68
- return rooms;
69
- }
70
- export function roomExists(project, roomSlug) {
71
- const pd = palaceDir(project);
72
- return fs.existsSync(roomMetaPath(pd, roomSlug));
73
- }
74
- /** Initialize default palace rooms if palace doesn't exist yet. */
75
- export function ensurePalaceInitialized(project) {
76
- const pd = palaceDir(project);
77
- const indexPath = path.join(pd, "palace-index.json");
78
- if (fs.existsSync(indexPath))
79
- return; // already initialized
80
- ensureDir(pd);
81
- ensureDir(path.join(pd, "rooms"));
82
- // Create default rooms
83
- for (const room of DEFAULT_PALACE_ROOMS) {
84
- createRoom(project, room.slug, room.name, room.description, [...room.tags]);
85
- }
86
- // Create identity.md
87
- const identityPath = path.join(pd, "identity.md");
88
- if (!fs.existsSync(identityPath)) {
89
- fs.writeFileSync(identityPath, `---\nproject: ${project}\ncreated: ${new Date().toISOString()}\n---\n\n# ${project}\n\n> _(fill in: 1-line purpose, primary language, key constraint)_\n`, "utf-8");
90
- }
91
- // Create palace-index.json
92
- const rooms = {};
93
- for (const room of DEFAULT_PALACE_ROOMS) {
94
- rooms[room.slug] = { salience: 0.5, memory_count: 0, last_updated: new Date().toISOString() };
95
- }
96
- writeJsonAtomic(indexPath, {
97
- version: VERSION,
98
- project,
99
- created: new Date().toISOString(),
100
- rooms,
101
- identity_hash: "",
102
- last_lint: "",
103
- });
104
- // Create graph.json
105
- writeJsonAtomic(path.join(pd, "graph.json"), { edges: [] });
106
- }
107
- /** Record an access (bump access_count and last_accessed). */
108
- export function recordAccess(project, roomSlug) {
109
- const meta = getRoomMeta(project, roomSlug);
110
- if (!meta)
111
- return;
112
- updateRoomMeta(project, roomSlug, {
113
- access_count: meta.access_count + 1,
114
- last_accessed: new Date().toISOString(),
115
- });
116
- }
117
- //# sourceMappingURL=rooms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../src/palace/rooms.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Salience scoring for palace memories and rooms.
3
- *
4
- * Formula: salience = (importance × 0.4) + (recency × 0.3) + (access_freq × 0.2) + (connections × 0.1)
5
- */
6
- import type { Importance } from "../types.js";
7
- export declare function computeSalience(params: {
8
- importance: Importance;
9
- lastUpdated: string;
10
- accessCount: number;
11
- connectionCount: number;
12
- }): number;
13
- export declare const ARCHIVE_THRESHOLD = 0.15;
14
- export declare const AUTO_ARCHIVE_THRESHOLD = 0.05;
15
- //# sourceMappingURL=salience.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"salience.d.ts","sourceRoot":"","sources":["../../src/palace/salience.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyB9C,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAMT;AAED,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,sBAAsB,OAAO,CAAC"}