agent-recall-core 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 (165) hide show
  1. package/dist/helpers/journal-files.d.ts +30 -0
  2. package/dist/helpers/journal-files.d.ts.map +1 -0
  3. package/dist/helpers/journal-files.js +96 -0
  4. package/dist/helpers/journal-files.js.map +1 -0
  5. package/dist/helpers/rollup.d.ts +35 -0
  6. package/dist/helpers/rollup.d.ts.map +1 -0
  7. package/dist/helpers/rollup.js +78 -0
  8. package/dist/helpers/rollup.js.map +1 -0
  9. package/dist/helpers/sections.d.ts +12 -0
  10. package/dist/helpers/sections.d.ts.map +1 -0
  11. package/dist/helpers/sections.js +84 -0
  12. package/dist/helpers/sections.js.map +1 -0
  13. package/dist/index.d.ts +52 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +63 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/palace/awareness.d.ts +67 -0
  18. package/dist/palace/awareness.d.ts.map +1 -0
  19. package/dist/palace/awareness.js +231 -0
  20. package/dist/palace/awareness.js.map +1 -0
  21. package/dist/palace/consolidate.d.ts +28 -0
  22. package/dist/palace/consolidate.d.ts.map +1 -0
  23. package/dist/palace/consolidate.js +129 -0
  24. package/dist/palace/consolidate.js.map +1 -0
  25. package/dist/palace/fan-out.d.ts +15 -0
  26. package/dist/palace/fan-out.d.ts.map +1 -0
  27. package/dist/palace/fan-out.js +78 -0
  28. package/dist/palace/fan-out.js.map +1 -0
  29. package/dist/palace/graph.d.ts +11 -0
  30. package/dist/palace/graph.d.ts.map +1 -0
  31. package/dist/palace/graph.js +59 -0
  32. package/dist/palace/graph.js.map +1 -0
  33. package/dist/palace/identity.d.ts +6 -0
  34. package/dist/palace/identity.d.ts.map +1 -0
  35. package/dist/palace/identity.js +18 -0
  36. package/dist/palace/identity.js.map +1 -0
  37. package/dist/palace/index-manager.d.ts +7 -0
  38. package/dist/palace/index-manager.d.ts.map +1 -0
  39. package/dist/palace/index-manager.js +46 -0
  40. package/dist/palace/index-manager.js.map +1 -0
  41. package/dist/palace/insights-index.d.ts +39 -0
  42. package/dist/palace/insights-index.d.ts.map +1 -0
  43. package/dist/palace/insights-index.js +101 -0
  44. package/dist/palace/insights-index.js.map +1 -0
  45. package/dist/palace/log.d.ts +9 -0
  46. package/dist/palace/log.d.ts.map +1 -0
  47. package/dist/palace/log.js +28 -0
  48. package/dist/palace/log.js.map +1 -0
  49. package/dist/palace/obsidian.d.ts +12 -0
  50. package/dist/palace/obsidian.d.ts.map +1 -0
  51. package/dist/palace/obsidian.js +76 -0
  52. package/dist/palace/obsidian.js.map +1 -0
  53. package/dist/palace/rooms.d.ts +14 -0
  54. package/dist/palace/rooms.d.ts.map +1 -0
  55. package/dist/palace/rooms.js +117 -0
  56. package/dist/palace/rooms.js.map +1 -0
  57. package/dist/palace/salience.d.ts +15 -0
  58. package/dist/palace/salience.d.ts.map +1 -0
  59. package/dist/palace/salience.js +33 -0
  60. package/dist/palace/salience.js.map +1 -0
  61. package/dist/storage/fs-utils.d.ts +8 -0
  62. package/dist/storage/fs-utils.d.ts.map +1 -0
  63. package/dist/storage/fs-utils.js +28 -0
  64. package/dist/storage/fs-utils.js.map +1 -0
  65. package/dist/storage/paths.d.ts +21 -0
  66. package/dist/storage/paths.d.ts.map +1 -0
  67. package/dist/storage/paths.js +71 -0
  68. package/dist/storage/paths.js.map +1 -0
  69. package/dist/storage/project.d.ts +17 -0
  70. package/dist/storage/project.d.ts.map +1 -0
  71. package/dist/storage/project.js +131 -0
  72. package/dist/storage/project.js.map +1 -0
  73. package/dist/tools-logic/alignment-check.d.ts +19 -0
  74. package/dist/tools-logic/alignment-check.d.ts.map +1 -0
  75. package/dist/tools-logic/alignment-check.js +54 -0
  76. package/dist/tools-logic/alignment-check.js.map +1 -0
  77. package/dist/tools-logic/awareness-update.d.ts +23 -0
  78. package/dist/tools-logic/awareness-update.d.ts.map +1 -0
  79. package/dist/tools-logic/awareness-update.js +47 -0
  80. package/dist/tools-logic/awareness-update.js.map +1 -0
  81. package/dist/tools-logic/context-synthesize.d.ts +17 -0
  82. package/dist/tools-logic/context-synthesize.d.ts.map +1 -0
  83. package/dist/tools-logic/context-synthesize.js +174 -0
  84. package/dist/tools-logic/context-synthesize.js.map +1 -0
  85. package/dist/tools-logic/journal-archive.d.ts +11 -0
  86. package/dist/tools-logic/journal-archive.d.ts.map +1 -0
  87. package/dist/tools-logic/journal-archive.js +47 -0
  88. package/dist/tools-logic/journal-archive.js.map +1 -0
  89. package/dist/tools-logic/journal-capture.d.ts +16 -0
  90. package/dist/tools-logic/journal-capture.d.ts.map +1 -0
  91. package/dist/tools-logic/journal-capture.js +57 -0
  92. package/dist/tools-logic/journal-capture.js.map +1 -0
  93. package/dist/tools-logic/journal-cold-start.d.ts +37 -0
  94. package/dist/tools-logic/journal-cold-start.d.ts.map +1 -0
  95. package/dist/tools-logic/journal-cold-start.js +78 -0
  96. package/dist/tools-logic/journal-cold-start.js.map +1 -0
  97. package/dist/tools-logic/journal-list.d.ts +14 -0
  98. package/dist/tools-logic/journal-list.d.ts.map +1 -0
  99. package/dist/tools-logic/journal-list.js +18 -0
  100. package/dist/tools-logic/journal-list.js.map +1 -0
  101. package/dist/tools-logic/journal-projects.d.ts +10 -0
  102. package/dist/tools-logic/journal-projects.d.ts.map +1 -0
  103. package/dist/tools-logic/journal-projects.js +10 -0
  104. package/dist/tools-logic/journal-projects.js.map +1 -0
  105. package/dist/tools-logic/journal-read.d.ts +13 -0
  106. package/dist/tools-logic/journal-read.d.ts.map +1 -0
  107. package/dist/tools-logic/journal-read.js +22 -0
  108. package/dist/tools-logic/journal-read.js.map +1 -0
  109. package/dist/tools-logic/journal-rollup.d.ts +16 -0
  110. package/dist/tools-logic/journal-rollup.d.ts.map +1 -0
  111. package/dist/tools-logic/journal-rollup.js +79 -0
  112. package/dist/tools-logic/journal-rollup.js.map +1 -0
  113. package/dist/tools-logic/journal-search.d.ts +16 -0
  114. package/dist/tools-logic/journal-search.d.ts.map +1 -0
  115. package/dist/tools-logic/journal-search.js +80 -0
  116. package/dist/tools-logic/journal-search.js.map +1 -0
  117. package/dist/tools-logic/journal-state.d.ts +26 -0
  118. package/dist/tools-logic/journal-state.d.ts.map +1 -0
  119. package/dist/tools-logic/journal-state.js +80 -0
  120. package/dist/tools-logic/journal-state.js.map +1 -0
  121. package/dist/tools-logic/journal-write.d.ts +18 -0
  122. package/dist/tools-logic/journal-write.d.ts.map +1 -0
  123. package/dist/tools-logic/journal-write.js +54 -0
  124. package/dist/tools-logic/journal-write.js.map +1 -0
  125. package/dist/tools-logic/knowledge-read.d.ts +7 -0
  126. package/dist/tools-logic/knowledge-read.d.ts.map +1 -0
  127. package/dist/tools-logic/knowledge-read.js +88 -0
  128. package/dist/tools-logic/knowledge-read.js.map +1 -0
  129. package/dist/tools-logic/knowledge-write.d.ts +23 -0
  130. package/dist/tools-logic/knowledge-write.d.ts.map +1 -0
  131. package/dist/tools-logic/knowledge-write.js +58 -0
  132. package/dist/tools-logic/knowledge-write.js.map +1 -0
  133. package/dist/tools-logic/nudge.d.ts +15 -0
  134. package/dist/tools-logic/nudge.d.ts.map +1 -0
  135. package/dist/tools-logic/nudge.js +27 -0
  136. package/dist/tools-logic/nudge.js.map +1 -0
  137. package/dist/tools-logic/palace-lint.d.ts +20 -0
  138. package/dist/tools-logic/palace-lint.d.ts.map +1 -0
  139. package/dist/tools-logic/palace-lint.js +87 -0
  140. package/dist/tools-logic/palace-lint.js.map +1 -0
  141. package/dist/tools-logic/palace-read.d.ts +24 -0
  142. package/dist/tools-logic/palace-read.d.ts.map +1 -0
  143. package/dist/tools-logic/palace-read.js +45 -0
  144. package/dist/tools-logic/palace-read.js.map +1 -0
  145. package/dist/tools-logic/palace-search.d.ts +19 -0
  146. package/dist/tools-logic/palace-search.d.ts.map +1 -0
  147. package/dist/tools-logic/palace-search.js +46 -0
  148. package/dist/tools-logic/palace-search.js.map +1 -0
  149. package/dist/tools-logic/palace-walk.d.ts +18 -0
  150. package/dist/tools-logic/palace-walk.d.ts.map +1 -0
  151. package/dist/tools-logic/palace-walk.js +89 -0
  152. package/dist/tools-logic/palace-walk.js.map +1 -0
  153. package/dist/tools-logic/palace-write.d.ts +22 -0
  154. package/dist/tools-logic/palace-write.d.ts.map +1 -0
  155. package/dist/tools-logic/palace-write.js +60 -0
  156. package/dist/tools-logic/palace-write.js.map +1 -0
  157. package/dist/tools-logic/recall-insight.d.ts +20 -0
  158. package/dist/tools-logic/recall-insight.d.ts.map +1 -0
  159. package/dist/tools-logic/recall-insight.js +27 -0
  160. package/dist/tools-logic/recall-insight.js.map +1 -0
  161. package/dist/types.d.ts +123 -0
  162. package/dist/types.d.ts.map +1 -0
  163. package/dist/types.js +54 -0
  164. package/dist/types.js.map +1 -0
  165. package/package.json +36 -0
@@ -0,0 +1,45 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { palaceDir } from "../storage/paths.js";
5
+ import { ensurePalaceInitialized, getRoomMeta, listRooms, recordAccess } from "../palace/rooms.js";
6
+ export async function palaceRead(input) {
7
+ const slug = await resolveProject(input.project);
8
+ ensurePalaceInitialized(slug);
9
+ if (!input.room) {
10
+ const rooms = listRooms(slug);
11
+ return {
12
+ project: slug,
13
+ rooms: rooms.map((r) => ({
14
+ slug: r.slug,
15
+ name: r.name,
16
+ description: r.description,
17
+ salience: r.salience,
18
+ connections: r.connections,
19
+ tags: r.tags,
20
+ })),
21
+ };
22
+ }
23
+ const meta = getRoomMeta(slug, input.room);
24
+ if (!meta) {
25
+ return { project: slug, error: `Room '${input.room}' not found in project '${slug}'` };
26
+ }
27
+ recordAccess(slug, input.room);
28
+ const pd = palaceDir(slug);
29
+ const targetFile = input.topic
30
+ ? path.join(pd, "rooms", input.room, `${input.topic}.md`)
31
+ : path.join(pd, "rooms", input.room, "README.md");
32
+ if (!fs.existsSync(targetFile)) {
33
+ return { project: slug, error: `File not found: ${input.topic ? input.topic + '.md' : 'README.md'} in room '${input.room}'` };
34
+ }
35
+ const content = fs.readFileSync(targetFile, "utf-8");
36
+ return {
37
+ project: slug,
38
+ room: input.room,
39
+ topic: input.topic ?? "README",
40
+ salience: meta.salience,
41
+ connections: meta.connections,
42
+ content,
43
+ };
44
+ }
45
+ //# sourceMappingURL=palace-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-read.js","sourceRoot":"","sources":["../../src/tools-logic/palace-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmBnG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,IAAI,2BAA2B,IAAI,GAAG,EAAE,CAAC;IACzF,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;QAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,aAAa,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IAChI,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,QAAQ;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface PalaceSearchInput {
2
+ query: string;
3
+ room?: string;
4
+ project?: string;
5
+ }
6
+ export interface PalaceSearchResult {
7
+ project: string;
8
+ query: string;
9
+ results: Array<{
10
+ room: string;
11
+ file: string;
12
+ salience: number;
13
+ excerpt: string;
14
+ line: number;
15
+ }>;
16
+ total_matches: number;
17
+ }
18
+ export declare function palaceSearch(input: PalaceSearchInput): Promise<PalaceSearchResult>;
19
+ //# sourceMappingURL=palace-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-search.d.ts","sourceRoot":"","sources":["../../src/tools-logic/palace-search.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChG,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4CxF"}
@@ -0,0 +1,46 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { palaceDir } from "../storage/paths.js";
5
+ import { ensurePalaceInitialized, listRooms, recordAccess } from "../palace/rooms.js";
6
+ export async function palaceSearch(input) {
7
+ const slug = await resolveProject(input.project);
8
+ ensurePalaceInitialized(slug);
9
+ const rooms = listRooms(slug);
10
+ const pd = palaceDir(slug);
11
+ const queryLower = input.query.toLowerCase();
12
+ const results = [];
13
+ const targetRooms = input.room ? rooms.filter((r) => r.slug === input.room) : rooms;
14
+ for (const roomMeta of targetRooms) {
15
+ const roomPath = path.join(pd, "rooms", roomMeta.slug);
16
+ if (!fs.existsSync(roomPath))
17
+ continue;
18
+ const files = fs.readdirSync(roomPath).filter((f) => f.endsWith(".md"));
19
+ for (const file of files) {
20
+ const filePath = path.join(roomPath, file);
21
+ const content = fs.readFileSync(filePath, "utf-8");
22
+ const lines = content.split("\n");
23
+ for (let i = 0; i < lines.length; i++) {
24
+ if (lines[i].toLowerCase().includes(queryLower)) {
25
+ const line = lines[i];
26
+ const matchIdx = line.toLowerCase().indexOf(queryLower);
27
+ const start = Math.max(0, matchIdx - 40);
28
+ const end = Math.min(line.length, matchIdx + input.query.length + 40);
29
+ let excerpt = line.slice(start, end).trim();
30
+ if (start > 0)
31
+ excerpt = "..." + excerpt;
32
+ if (end < line.length)
33
+ excerpt = excerpt + "...";
34
+ results.push({ room: roomMeta.slug, file: file.replace(".md", ""), salience: roomMeta.salience, excerpt, line: i + 1 });
35
+ }
36
+ }
37
+ }
38
+ if (results.some((r) => r.room === roomMeta.slug)) {
39
+ recordAccess(slug, roomMeta.slug);
40
+ }
41
+ }
42
+ results.sort((a, b) => b.salience - a.salience || a.line - b.line);
43
+ const limited = results.slice(0, 20);
44
+ return { project: slug, query: input.query, results: limited, total_matches: results.length };
45
+ }
46
+ //# sourceMappingURL=palace-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-search.js","sourceRoot":"","sources":["../../src/tools-logic/palace-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAetF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB;IACzD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAkC,EAAE,CAAC;IAElD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpF,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEvC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;oBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;oBACtE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,KAAK,GAAG,CAAC;wBAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;oBACzC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;wBAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1H,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAChG,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { WalkDepth, RoomMeta } from "../types.js";
2
+ export declare function roomSummary(meta: RoomMeta): string;
3
+ export declare function readRoomContent(project: string, room: RoomMeta): string;
4
+ export interface PalaceWalkInput {
5
+ depth?: WalkDepth;
6
+ focus?: string;
7
+ project?: string;
8
+ }
9
+ export interface PalaceWalkResult {
10
+ project: string;
11
+ depth: WalkDepth;
12
+ rooms_count: number;
13
+ top_rooms?: string[];
14
+ focus?: string | null;
15
+ content: string;
16
+ }
17
+ export declare function palaceWalk(input: PalaceWalkInput): Promise<PalaceWalkResult>;
18
+ //# sourceMappingURL=palace-walk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-walk.d.ts","sourceRoot":"","sources":["../../src/tools-logic/palace-walk.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAElD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAcvE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4ElF"}
@@ -0,0 +1,89 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { palaceDir } from "../storage/paths.js";
5
+ import { ensurePalaceInitialized, listRooms, recordAccess } from "../palace/rooms.js";
6
+ import { readIdentity } from "../palace/identity.js";
7
+ import { readAwareness } from "../palace/awareness.js";
8
+ export function roomSummary(meta) {
9
+ return `- **${meta.name}** (salience: ${meta.salience}) — ${meta.description}`;
10
+ }
11
+ export function readRoomContent(project, room) {
12
+ const pd = palaceDir(project);
13
+ const roomPath = path.join(pd, "rooms", room.slug);
14
+ if (!fs.existsSync(roomPath))
15
+ return "";
16
+ const files = fs.readdirSync(roomPath).filter((f) => f.endsWith(".md")).sort();
17
+ let content = `### ${room.name}\n\n`;
18
+ for (const file of files) {
19
+ const filePath = path.join(roomPath, file);
20
+ const text = fs.readFileSync(filePath, "utf-8");
21
+ const truncated = text.length > 500 ? text.slice(0, 500) + "\n...(truncated)" : text;
22
+ content += truncated + "\n\n";
23
+ }
24
+ return content;
25
+ }
26
+ export async function palaceWalk(input) {
27
+ const slug = await resolveProject(input.project);
28
+ const depth = input.depth ?? "active";
29
+ ensurePalaceInitialized(slug);
30
+ const rooms = listRooms(slug);
31
+ let output = "";
32
+ const identity = readIdentity(slug);
33
+ const identityContent = identity.replace(/^---[\s\S]*?---\n*/, "").trim();
34
+ output += identityContent + "\n\n";
35
+ const awarenessRaw = readAwareness();
36
+ if (awarenessRaw) {
37
+ const awarenessLines = awarenessRaw.split("\n");
38
+ const topIdx = awarenessLines.findIndex((l) => l.startsWith("## Top Insights"));
39
+ const compIdx = awarenessLines.findIndex((l) => l.startsWith("## Compound") || l.startsWith("## Trajectory"));
40
+ if (topIdx >= 0) {
41
+ const end = compIdx > topIdx ? compIdx : Math.min(topIdx + 30, awarenessLines.length);
42
+ output += awarenessLines.slice(topIdx, end).join("\n").trim() + "\n\n";
43
+ }
44
+ }
45
+ if (depth === "identity") {
46
+ return { project: slug, depth, rooms_count: rooms.length, content: output.trim() };
47
+ }
48
+ const topRooms = rooms.slice(0, 3);
49
+ output += "## Active Rooms\n\n";
50
+ for (const room of topRooms) {
51
+ output += roomSummary(room) + "\n";
52
+ recordAccess(slug, room.slug);
53
+ }
54
+ output += "\n";
55
+ if (depth === "active") {
56
+ return { project: slug, depth, rooms_count: rooms.length, top_rooms: topRooms.map(r => r.slug), content: output.trim() };
57
+ }
58
+ if (input.focus) {
59
+ const focusLower = input.focus.toLowerCase();
60
+ const matchingRooms = rooms.filter((r) => !topRooms.includes(r) &&
61
+ (r.name.toLowerCase().includes(focusLower) ||
62
+ r.description.toLowerCase().includes(focusLower) ||
63
+ r.tags.some((t) => t.toLowerCase().includes(focusLower))));
64
+ if (matchingRooms.length > 0) {
65
+ output += "## Relevant Rooms\n\n";
66
+ for (const room of matchingRooms.slice(0, 5)) {
67
+ output += roomSummary(room) + "\n";
68
+ const pd = palaceDir(slug);
69
+ const readmePath = path.join(pd, "rooms", room.slug, "README.md");
70
+ if (fs.existsSync(readmePath)) {
71
+ const readme = fs.readFileSync(readmePath, "utf-8").replace(/^---[\s\S]*?---\n*/, "").trim();
72
+ output += " " + readme.slice(0, 200) + "\n";
73
+ }
74
+ recordAccess(slug, room.slug);
75
+ }
76
+ output += "\n";
77
+ }
78
+ }
79
+ if (depth === "relevant") {
80
+ return { project: slug, depth, focus: input.focus ?? null, rooms_count: rooms.length, content: output.trim() };
81
+ }
82
+ output += "## All Rooms\n\n";
83
+ for (const room of rooms) {
84
+ output += readRoomContent(slug, room);
85
+ recordAccess(slug, room.slug);
86
+ }
87
+ return { project: slug, depth, rooms_count: rooms.length, content: output.trim() };
88
+ }
89
+ //# sourceMappingURL=palace-walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-walk.js","sourceRoot":"","sources":["../../src/tools-logic/palace-walk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Importance } from "../types.js";
2
+ export interface PalaceWriteInput {
3
+ room: string;
4
+ topic?: string;
5
+ content: string;
6
+ connections?: string[];
7
+ importance?: Importance;
8
+ project?: string;
9
+ }
10
+ export interface PalaceWriteResult {
11
+ success: boolean;
12
+ room: string;
13
+ topic: string;
14
+ project: string;
15
+ importance: Importance;
16
+ fan_out: {
17
+ updated_rooms: string[];
18
+ new_edges: number;
19
+ };
20
+ }
21
+ export declare function palaceWrite(input: PalaceWriteInput): Promise<PalaceWriteResult>;
22
+ //# sourceMappingURL=palace-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-write.d.ts","sourceRoot":"","sources":["../../src/tools-logic/palace-write.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuDrF"}
@@ -0,0 +1,60 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { palaceDir } from "../storage/paths.js";
5
+ import { ensureDir } from "../storage/fs-utils.js";
6
+ import { ensurePalaceInitialized, createRoom, roomExists, updateRoomMeta } from "../palace/rooms.js";
7
+ import { fanOut } from "../palace/fan-out.js";
8
+ import { updatePalaceIndex } from "../palace/index-manager.js";
9
+ import { generateFrontmatter } from "../palace/obsidian.js";
10
+ import { appendToLog } from "../palace/log.js";
11
+ export async function palaceWrite(input) {
12
+ const slug = await resolveProject(input.project);
13
+ const importance = input.importance ?? "medium";
14
+ ensurePalaceInitialized(slug);
15
+ if (!roomExists(slug, input.room)) {
16
+ createRoom(slug, input.room, input.room.charAt(0).toUpperCase() + input.room.slice(1), `Auto-created room for ${input.room}`, []);
17
+ }
18
+ const pd = palaceDir(slug);
19
+ const targetTopic = input.topic ?? "README";
20
+ const targetFile = path.join(pd, "rooms", input.room, `${targetTopic}.md`);
21
+ ensureDir(path.dirname(targetFile));
22
+ const timestamp = new Date().toISOString();
23
+ if (targetTopic === "README") {
24
+ let existing = fs.existsSync(targetFile) ? fs.readFileSync(targetFile, "utf-8") : "";
25
+ const entry = `\n### ${timestamp.slice(0, 10)} — ${importance}\n\n${input.content}\n`;
26
+ if (existing.includes("## Memories")) {
27
+ const idx = existing.indexOf("## Memories");
28
+ const afterHeader = existing.indexOf("\n", idx);
29
+ existing = existing.slice(0, afterHeader + 1) + entry + existing.slice(afterHeader + 1);
30
+ }
31
+ else {
32
+ existing += `\n## Memories\n${entry}`;
33
+ }
34
+ fs.writeFileSync(targetFile, existing, "utf-8");
35
+ }
36
+ else {
37
+ if (fs.existsSync(targetFile)) {
38
+ const existing = fs.readFileSync(targetFile, "utf-8");
39
+ const entry = `\n### ${timestamp.slice(0, 10)} — ${importance}\n\n${input.content}\n`;
40
+ fs.writeFileSync(targetFile, existing + entry, "utf-8");
41
+ }
42
+ else {
43
+ const fm = generateFrontmatter({ room: input.room, topic: targetTopic, created: timestamp, importance });
44
+ fs.writeFileSync(targetFile, `${fm}# ${input.room} / ${targetTopic}\n\n${input.content}\n`, "utf-8");
45
+ }
46
+ }
47
+ updateRoomMeta(slug, input.room, { updated: timestamp });
48
+ const fanOutResult = fanOut(slug, input.room, targetTopic, input.content, input.connections ?? [], importance);
49
+ updatePalaceIndex(slug);
50
+ appendToLog(slug, "palace_write", { room: input.room, topic: targetTopic, importance, fan_out_rooms: fanOutResult.updatedRooms });
51
+ return {
52
+ success: true,
53
+ room: input.room,
54
+ topic: targetTopic,
55
+ project: slug,
56
+ importance,
57
+ fan_out: { updated_rooms: fanOutResult.updatedRooms, new_edges: fanOutResult.newEdges },
58
+ };
59
+ }
60
+ //# sourceMappingURL=palace-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palace-write.js","sourceRoot":"","sources":["../../src/tools-logic/palace-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface RecallInsightInput {
2
+ context: string;
3
+ limit?: number;
4
+ include_awareness?: boolean;
5
+ }
6
+ export interface RecallInsightResult {
7
+ context: string;
8
+ matching_insights: Array<{
9
+ title: string;
10
+ relevance: number;
11
+ severity: string;
12
+ applies_when: string[];
13
+ confirmed: number;
14
+ file: string | null;
15
+ }>;
16
+ total_in_index: number;
17
+ awareness: string | null;
18
+ }
19
+ export declare function recallInsight(input: RecallInsightInput): Promise<RecallInsightResult>;
20
+ //# sourceMappingURL=recall-insight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall-insight.d.ts","sourceRoot":"","sources":["../../src/tools-logic/recall-insight.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyB3F"}
@@ -0,0 +1,27 @@
1
+ import { recallInsights, readInsightsIndex } from "../palace/insights-index.js";
2
+ import { readAwareness } from "../palace/awareness.js";
3
+ export async function recallInsight(input) {
4
+ const limit = input.limit ?? 5;
5
+ const insights = recallInsights(input.context, limit);
6
+ let awareness = null;
7
+ if (input.include_awareness !== false) {
8
+ const raw = readAwareness();
9
+ if (raw) {
10
+ awareness = raw.split("\n").slice(0, 100).join("\n");
11
+ }
12
+ }
13
+ return {
14
+ context: input.context,
15
+ matching_insights: insights.map((i) => ({
16
+ title: i.title,
17
+ relevance: Math.round(i.relevance * 100) / 100,
18
+ severity: i.severity,
19
+ applies_when: i.applies_when,
20
+ confirmed: i.confirmed_count,
21
+ file: i.file ?? null,
22
+ })),
23
+ total_in_index: readInsightsIndex().insights.length,
24
+ awareness,
25
+ };
26
+ }
27
+ //# sourceMappingURL=recall-insight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall-insight.js","sourceRoot":"","sources":["../../src/tools-logic/recall-insight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsBvD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAyB;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEtD,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG;YAC9C,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,SAAS,EAAE,CAAC,CAAC,eAAe;YAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;SACrB,CAAC,CAAC;QACH,cAAc,EAAE,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM;QACnD,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Shared types, interfaces, and constants for agent-recall-mcp.
3
+ */
4
+ export declare const VERSION = "3.3.4";
5
+ /**
6
+ * Set the storage root directory. This is process-global state —
7
+ * only one root is active at a time. Call before any other operations.
8
+ * Use resetRoot() to revert to environment/default resolution.
9
+ */
10
+ export declare function setRoot(root: string): void;
11
+ /**
12
+ * Clear the explicitly-set root, reverting to AGENT_RECALL_ROOT env var
13
+ * or the default ~/.agent-recall.
14
+ */
15
+ export declare function resetRoot(): void;
16
+ export declare function getRoot(): string;
17
+ export declare function getLegacyRoot(): string;
18
+ export declare const SECTION_HEADERS: Record<string, string>;
19
+ export declare const DEFAULT_PALACE_ROOMS: readonly [{
20
+ readonly slug: "goals";
21
+ readonly name: "Goals";
22
+ readonly description: "Active goals, completed goals, goal evolution";
23
+ readonly tags: readonly ["planning"];
24
+ }, {
25
+ readonly slug: "architecture";
26
+ readonly name: "Architecture";
27
+ readonly description: "Technical decisions, patterns, tech stack";
28
+ readonly tags: readonly ["technical"];
29
+ }, {
30
+ readonly slug: "blockers";
31
+ readonly name: "Blockers";
32
+ readonly description: "Current and resolved blockers";
33
+ readonly tags: readonly ["status"];
34
+ }, {
35
+ readonly slug: "alignment";
36
+ readonly name: "Alignment";
37
+ readonly description: "Frequently misunderstood areas, human corrections";
38
+ readonly tags: readonly ["communication"];
39
+ }, {
40
+ readonly slug: "knowledge";
41
+ readonly name: "Knowledge";
42
+ readonly description: "Learned lessons by category";
43
+ readonly tags: readonly ["learning"];
44
+ }];
45
+ export interface JournalEntry {
46
+ date: string;
47
+ file: string;
48
+ dir: string;
49
+ }
50
+ export interface ProjectInfo {
51
+ slug: string;
52
+ lastEntry: string;
53
+ entryCount: number;
54
+ }
55
+ export interface SessionState {
56
+ version: string;
57
+ date: string;
58
+ project: string;
59
+ timestamp: string;
60
+ completed: Array<{
61
+ task: string;
62
+ result: string;
63
+ files_changed?: string[];
64
+ }>;
65
+ failures: Array<{
66
+ task: string;
67
+ what_went_wrong: string;
68
+ root_cause: string;
69
+ fixed: boolean;
70
+ }>;
71
+ state: Record<string, {
72
+ status: string;
73
+ details: string;
74
+ }>;
75
+ next_actions: Array<{
76
+ priority: string;
77
+ task: string;
78
+ }>;
79
+ insights: Array<{
80
+ claim: string;
81
+ confidence: string;
82
+ evidence: string;
83
+ }>;
84
+ counts: Record<string, number>;
85
+ }
86
+ export interface RoomMeta {
87
+ slug: string;
88
+ name: string;
89
+ description: string;
90
+ created: string;
91
+ updated: string;
92
+ salience: number;
93
+ access_count: number;
94
+ last_accessed: string;
95
+ tags: string[];
96
+ connections: string[];
97
+ }
98
+ export interface PalaceIndex {
99
+ version: string;
100
+ project: string;
101
+ created: string;
102
+ rooms: Record<string, {
103
+ salience: number;
104
+ memory_count: number;
105
+ last_updated: string;
106
+ }>;
107
+ identity_hash: string;
108
+ last_lint: string;
109
+ }
110
+ export interface GraphEdge {
111
+ from: string;
112
+ to: string;
113
+ type: string;
114
+ weight: number;
115
+ created: string;
116
+ }
117
+ export interface PalaceGraph {
118
+ edges: GraphEdge[];
119
+ }
120
+ export type Importance = "high" | "medium" | "low";
121
+ export type Confidence = "high" | "medium" | "low";
122
+ export type WalkDepth = "identity" | "active" | "relevant" | "full";
123
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Shared types, interfaces, and constants for agent-recall-mcp.
3
+ */
4
+ import * as path from "node:path";
5
+ import * as os from "node:os";
6
+ // ---------------------------------------------------------------------------
7
+ // Constants
8
+ // ---------------------------------------------------------------------------
9
+ export const VERSION = "3.3.4";
10
+ // ---------------------------------------------------------------------------
11
+ // Root directory (configurable at runtime for SDK usage)
12
+ // ---------------------------------------------------------------------------
13
+ let _root = null;
14
+ /**
15
+ * Set the storage root directory. This is process-global state —
16
+ * only one root is active at a time. Call before any other operations.
17
+ * Use resetRoot() to revert to environment/default resolution.
18
+ */
19
+ export function setRoot(root) {
20
+ _root = root;
21
+ }
22
+ /**
23
+ * Clear the explicitly-set root, reverting to AGENT_RECALL_ROOT env var
24
+ * or the default ~/.agent-recall.
25
+ */
26
+ export function resetRoot() {
27
+ _root = null;
28
+ }
29
+ export function getRoot() {
30
+ return _root ?? process.env.AGENT_RECALL_ROOT ?? path.join(os.homedir(), ".agent-recall");
31
+ }
32
+ export function getLegacyRoot() {
33
+ return path.join(os.homedir(), ".claude", "projects");
34
+ }
35
+ export const SECTION_HEADERS = {
36
+ brief: "## Brief",
37
+ qa: "## Q&A Log",
38
+ completed: "## Completed",
39
+ status: "## Status",
40
+ blockers: "## Blockers",
41
+ next: "## Next",
42
+ decisions: "## Decisions",
43
+ reflection: "## Reflection",
44
+ files: "## Files Changed",
45
+ observations: "## Observations",
46
+ };
47
+ export const DEFAULT_PALACE_ROOMS = [
48
+ { slug: "goals", name: "Goals", description: "Active goals, completed goals, goal evolution", tags: ["planning"] },
49
+ { slug: "architecture", name: "Architecture", description: "Technical decisions, patterns, tech stack", tags: ["technical"] },
50
+ { slug: "blockers", name: "Blockers", description: "Current and resolved blockers", tags: ["status"] },
51
+ { slug: "alignment", name: "Alignment", description: "Frequently misunderstood areas, human corrections", tags: ["communication"] },
52
+ { slug: "knowledge", name: "Knowledge", description: "Learned lessons by category", tags: ["learning"] },
53
+ ];
54
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,IAAI,KAAK,GAAkB,IAAI,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,YAAY;IAChB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,kBAAkB;IACzB,YAAY,EAAE,iBAAiB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,+CAA+C,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;IAClH,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,2CAA2C,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;IAC7H,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;IACtG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mDAAmD,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;IACnI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE;CAChG,CAAC"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "agent-recall-core",
3
+ "version": "3.3.4",
4
+ "description": "Core memory palace engine for AgentRecall",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "test": "node --test test/*.test.mjs"
21
+ },
22
+ "dependencies": {},
23
+ "devDependencies": {
24
+ "typescript": "^5.7.0",
25
+ "@types/node": "^22.0.0"
26
+ },
27
+ "engines": {
28
+ "node": ">=18.0.0"
29
+ },
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/Goldentrii/AgentRecall.git",
34
+ "directory": "packages/core"
35
+ }
36
+ }