agent-recall-core 3.3.9 → 3.3.11

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 (64) hide show
  1. package/README.md +111 -18
  2. package/dist/helpers/alignment-patterns.d.ts +19 -0
  3. package/dist/helpers/alignment-patterns.d.ts.map +1 -0
  4. package/dist/helpers/alignment-patterns.js +47 -0
  5. package/dist/helpers/alignment-patterns.js.map +1 -0
  6. package/dist/helpers/auto-name.d.ts +42 -0
  7. package/dist/helpers/auto-name.d.ts.map +1 -0
  8. package/dist/helpers/auto-name.js +210 -0
  9. package/dist/helpers/auto-name.js.map +1 -0
  10. package/dist/index.d.ts +12 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +13 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/palace/awareness.d.ts +4 -0
  15. package/dist/palace/awareness.d.ts.map +1 -1
  16. package/dist/palace/awareness.js +102 -17
  17. package/dist/palace/awareness.js.map +1 -1
  18. package/dist/palace/fan-out.d.ts.map +1 -1
  19. package/dist/palace/fan-out.js +30 -1
  20. package/dist/palace/fan-out.js.map +1 -1
  21. package/dist/palace/insights-index.d.ts +11 -3
  22. package/dist/palace/insights-index.d.ts.map +1 -1
  23. package/dist/palace/insights-index.js +38 -7
  24. package/dist/palace/insights-index.js.map +1 -1
  25. package/dist/palace/salience.d.ts +31 -2
  26. package/dist/palace/salience.d.ts.map +1 -1
  27. package/dist/palace/salience.js +54 -9
  28. package/dist/palace/salience.js.map +1 -1
  29. package/dist/tools-logic/check.d.ts +33 -0
  30. package/dist/tools-logic/check.d.ts.map +1 -0
  31. package/dist/tools-logic/check.js +85 -0
  32. package/dist/tools-logic/check.js.map +1 -0
  33. package/dist/tools-logic/journal-capture.d.ts +1 -0
  34. package/dist/tools-logic/journal-capture.d.ts.map +1 -1
  35. package/dist/tools-logic/journal-capture.js +11 -1
  36. package/dist/tools-logic/journal-capture.js.map +1 -1
  37. package/dist/tools-logic/knowledge-write.d.ts.map +1 -1
  38. package/dist/tools-logic/knowledge-write.js +7 -1
  39. package/dist/tools-logic/knowledge-write.js.map +1 -1
  40. package/dist/tools-logic/palace-write.d.ts +2 -0
  41. package/dist/tools-logic/palace-write.d.ts.map +1 -1
  42. package/dist/tools-logic/palace-write.js +13 -1
  43. package/dist/tools-logic/palace-write.js.map +1 -1
  44. package/dist/tools-logic/session-end.d.ts +26 -0
  45. package/dist/tools-logic/session-end.d.ts.map +1 -0
  46. package/dist/tools-logic/session-end.js +68 -0
  47. package/dist/tools-logic/session-end.js.map +1 -0
  48. package/dist/tools-logic/session-start.d.ts +38 -0
  49. package/dist/tools-logic/session-start.d.ts.map +1 -0
  50. package/dist/tools-logic/session-start.js +91 -0
  51. package/dist/tools-logic/session-start.js.map +1 -0
  52. package/dist/tools-logic/smart-recall.d.ts +35 -0
  53. package/dist/tools-logic/smart-recall.d.ts.map +1 -0
  54. package/dist/tools-logic/smart-recall.js +199 -0
  55. package/dist/tools-logic/smart-recall.js.map +1 -0
  56. package/dist/tools-logic/smart-remember.d.ts +20 -0
  57. package/dist/tools-logic/smart-remember.d.ts.map +1 -0
  58. package/dist/tools-logic/smart-remember.js +136 -0
  59. package/dist/tools-logic/smart-remember.js.map +1 -0
  60. package/dist/types.d.ts +10 -1
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/types.js +1 -1
  63. package/dist/types.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ /**
2
+ * session_start — combined cold-start in one call.
3
+ *
4
+ * Replaces: journal_cold_start + palace_walk + recall_insight
5
+ * Target: <400 tokens output. No awareness duplication.
6
+ */
7
+ import { resolveProject } from "../storage/project.js";
8
+ import { ensurePalaceInitialized, listRooms } from "../palace/rooms.js";
9
+ import { readIdentity } from "../palace/identity.js";
10
+ import { readAwarenessState } from "../palace/awareness.js";
11
+ import { recallInsights } from "../palace/insights-index.js";
12
+ import { journalDirs } from "../storage/paths.js";
13
+ import { extractSection } from "../helpers/sections.js";
14
+ import { todayISO } from "../storage/fs-utils.js";
15
+ import { readAlignmentLog, extractWatchPatterns } from "../helpers/alignment-patterns.js";
16
+ import * as fs from "node:fs";
17
+ import * as path from "node:path";
18
+ export async function sessionStart(input) {
19
+ const slug = await resolveProject(input.project);
20
+ ensurePalaceInitialized(slug);
21
+ // 1. Identity — first 2 lines only
22
+ const rawIdentity = readIdentity(slug);
23
+ const identityLines = rawIdentity.split("\n").filter((l) => l.trim() && !l.startsWith("---") && !l.startsWith(">"));
24
+ const identity = identityLines.slice(0, 2).join(" ").trim() || slug;
25
+ // 2. Top insights from awareness state (compact, no full markdown dump)
26
+ const state = readAwarenessState();
27
+ const insights = (state?.topInsights ?? []).slice(0, 5).map((i) => ({
28
+ title: i.title.slice(0, 80),
29
+ confirmed: i.confirmations ?? 1,
30
+ severity: "important",
31
+ }));
32
+ // 3. Active rooms — top 3 by salience
33
+ const rooms = listRooms(slug).slice(0, 3);
34
+ const active_rooms = rooms.map((r) => ({
35
+ name: r.name,
36
+ salience: r.salience,
37
+ one_liner: r.description.slice(0, 80),
38
+ }));
39
+ // 4. Cross-project insights matching current context
40
+ const context = input.context ?? slug;
41
+ const matched = recallInsights(context, 3);
42
+ const cross_project = matched.map((i) => ({
43
+ title: i.title.slice(0, 80),
44
+ from_project: (i.source ?? "unknown").slice(0, 30),
45
+ relevance: Math.round((i.relevance ?? 0) * 100) / 100,
46
+ }));
47
+ // 5. Recent journal briefs — today + yesterday only
48
+ const dirs = journalDirs(slug);
49
+ const today = todayISO();
50
+ const yesterday = new Date(Date.now() - 86400000).toISOString().slice(0, 10);
51
+ let todayBrief = null;
52
+ let yesterdayBrief = null;
53
+ let olderCount = 0;
54
+ for (const dir of dirs) {
55
+ if (!fs.existsSync(dir))
56
+ continue;
57
+ const files = fs.readdirSync(dir).filter((f) => f.endsWith(".md")).sort().reverse();
58
+ for (const file of files) {
59
+ const dateMatch = file.match(/^(\d{4}-\d{2}-\d{2})/);
60
+ if (!dateMatch)
61
+ continue;
62
+ const d = dateMatch[1];
63
+ if (d === today && !todayBrief) {
64
+ const content = fs.readFileSync(path.join(dir, file), "utf-8");
65
+ const brief = extractSection(content, "brief");
66
+ todayBrief = brief ? brief.slice(0, 200) : content.split("\n").slice(0, 3).join(" ").slice(0, 200);
67
+ }
68
+ else if (d === yesterday && !yesterdayBrief) {
69
+ const content = fs.readFileSync(path.join(dir, file), "utf-8");
70
+ const brief = extractSection(content, "brief");
71
+ yesterdayBrief = brief ? brief.slice(0, 200) : content.split("\n").slice(0, 3).join(" ").slice(0, 200);
72
+ }
73
+ else if (d < yesterday) {
74
+ olderCount++;
75
+ }
76
+ }
77
+ }
78
+ // 6. Watch for — predictive warnings from past corrections
79
+ const alignLog = readAlignmentLog(slug);
80
+ const watch_for = extractWatchPatterns(alignLog, 2);
81
+ return {
82
+ project: slug,
83
+ identity,
84
+ insights,
85
+ active_rooms,
86
+ cross_project,
87
+ recent: { today: todayBrief, yesterday: yesterdayBrief, older_count: olderCount },
88
+ watch_for,
89
+ };
90
+ }
91
+ //# sourceMappingURL=session-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/tools-logic/session-start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * smart_recall — unified cross-store search.
3
+ *
4
+ * Searches palace, journal, and insights in one call.
5
+ * Returns ranked results with source attribution.
6
+ */
7
+ export interface RecallFeedback {
8
+ id?: string;
9
+ title?: string;
10
+ useful: boolean;
11
+ }
12
+ export interface SmartRecallInput {
13
+ query: string;
14
+ project?: string;
15
+ limit?: number;
16
+ feedback?: RecallFeedback[];
17
+ }
18
+ export interface SmartRecallResultItem {
19
+ id: string;
20
+ source: "palace" | "journal" | "insight";
21
+ title: string;
22
+ excerpt: string;
23
+ score: number;
24
+ room?: string;
25
+ date?: string;
26
+ severity?: string;
27
+ }
28
+ export interface SmartRecallResult {
29
+ query: string;
30
+ results: SmartRecallResultItem[];
31
+ total_searched: number;
32
+ sources_queried: string[];
33
+ }
34
+ export declare function smartRecall(input: SmartRecallInput): Promise<SmartRecallResult>;
35
+ //# sourceMappingURL=smart-recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-recall.d.ts","sourceRoot":"","sources":["../../src/tools-logic/smart-recall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAcD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAoDD,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+IrF"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * smart_recall — unified cross-store search.
3
+ *
4
+ * Searches palace, journal, and insights in one call.
5
+ * Returns ranked results with source attribution.
6
+ */
7
+ import * as fs from "node:fs";
8
+ import * as path from "node:path";
9
+ import { palaceSearch } from "./palace-search.js";
10
+ import { journalSearch } from "./journal-search.js";
11
+ import { recallInsight } from "./recall-insight.js";
12
+ import { getRoot } from "../types.js";
13
+ import { ensureDir } from "../storage/fs-utils.js";
14
+ /** Simple stable hash for feedback matching. */
15
+ function stableId(source, title) {
16
+ let hash = 0;
17
+ const str = `${source}:${title}`;
18
+ for (let i = 0; i < str.length; i++) {
19
+ const char = str.charCodeAt(i);
20
+ hash = ((hash << 5) - hash) + char;
21
+ hash |= 0;
22
+ }
23
+ return Math.abs(hash).toString(36).slice(0, 8);
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Helpers
27
+ // ---------------------------------------------------------------------------
28
+ /** Calculate keyword overlap between query and text. */
29
+ function keywordExactness(query, text) {
30
+ const queryWords = query.toLowerCase().split(/\s+/).filter((w) => w.length > 2);
31
+ if (queryWords.length === 0)
32
+ return 0;
33
+ const textLower = text.toLowerCase();
34
+ const matches = queryWords.filter((w) => textLower.includes(w));
35
+ return matches.length / queryWords.length;
36
+ }
37
+ /** Days between a date string and now. */
38
+ function daysSince(dateStr) {
39
+ const d = new Date(dateStr);
40
+ if (isNaN(d.getTime()))
41
+ return 365; // fallback: old
42
+ return Math.max(0, (Date.now() - d.getTime()) / (1000 * 60 * 60 * 24));
43
+ }
44
+ function feedbackLogPath() {
45
+ return path.join(getRoot(), "feedback-log.json");
46
+ }
47
+ function readFeedbackLog() {
48
+ const p = feedbackLogPath();
49
+ if (!fs.existsSync(p))
50
+ return [];
51
+ try {
52
+ return JSON.parse(fs.readFileSync(p, "utf-8"));
53
+ }
54
+ catch {
55
+ return [];
56
+ }
57
+ }
58
+ /** Process relevance feedback — store and adjust salience signals. */
59
+ function processFeedback(feedback, query) {
60
+ ensureDir(path.dirname(feedbackLogPath()));
61
+ const log = readFeedbackLog();
62
+ const date = new Date().toISOString().slice(0, 10);
63
+ for (const f of feedback) {
64
+ log.push({ query, id: f.id, title: f.title ?? "", useful: f.useful, date });
65
+ }
66
+ // Keep last 200 entries
67
+ fs.writeFileSync(feedbackLogPath(), JSON.stringify(log.slice(-200), null, 2), "utf-8");
68
+ }
69
+ export async function smartRecall(input) {
70
+ // Process relevance feedback if provided
71
+ if (input.feedback && input.feedback.length > 0) {
72
+ processFeedback(input.feedback, input.query);
73
+ }
74
+ const limit = input.limit ?? 10;
75
+ const allResults = [];
76
+ let totalSearched = 0;
77
+ const sourcesQueried = [];
78
+ // 1. Palace search
79
+ try {
80
+ const palaceResults = await palaceSearch({ query: input.query, project: input.project });
81
+ sourcesQueried.push("palace");
82
+ totalSearched += palaceResults.total_matches;
83
+ for (const r of palaceResults.results) {
84
+ const title = `${r.room}/${r.file}`;
85
+ allResults.push({
86
+ id: stableId("palace", title),
87
+ source: "palace",
88
+ title,
89
+ excerpt: r.excerpt,
90
+ score: 0, // computed below
91
+ room: r.room,
92
+ });
93
+ // Compute score: salience as relevance, keyword match, recency unknown (use salience as proxy)
94
+ const relevance = r.salience;
95
+ const exactness = keywordExactness(input.query, r.excerpt);
96
+ const recency = r.salience; // palace salience already incorporates recency
97
+ allResults[allResults.length - 1].score =
98
+ relevance * 0.50 + exactness * 0.30 + recency * 0.20;
99
+ }
100
+ }
101
+ catch {
102
+ // Palace may not be initialized
103
+ }
104
+ // 2. Journal search
105
+ try {
106
+ const journalResults = await journalSearch({
107
+ query: input.query,
108
+ project: input.project,
109
+ include_palace: false,
110
+ });
111
+ sourcesQueried.push("journal");
112
+ totalSearched += journalResults.results.length;
113
+ for (const r of journalResults.results) {
114
+ const days = daysSince(r.date);
115
+ const recency = Math.pow(0.95, days);
116
+ const exactness = keywordExactness(input.query, r.excerpt);
117
+ const title = `${r.date} / ${r.section}`;
118
+ allResults.push({
119
+ id: stableId("journal", title),
120
+ source: "journal",
121
+ title,
122
+ excerpt: r.excerpt,
123
+ score: recency * 0.50 + exactness * 0.30 + recency * 0.20,
124
+ date: r.date,
125
+ });
126
+ }
127
+ }
128
+ catch {
129
+ // Journal may not exist
130
+ }
131
+ // 3. Insight recall
132
+ try {
133
+ const insightResults = await recallInsight({
134
+ context: input.query,
135
+ limit: limit,
136
+ include_awareness: false,
137
+ });
138
+ sourcesQueried.push("insight");
139
+ totalSearched += insightResults.total_in_index;
140
+ // Normalize relevance scores
141
+ const maxRelevance = Math.max(1, ...insightResults.matching_insights.map((i) => i.relevance));
142
+ for (const i of insightResults.matching_insights) {
143
+ const relevance = i.relevance / maxRelevance;
144
+ const exactness = keywordExactness(input.query, i.title);
145
+ // Insights don't have dates, use confirmation count as a recency proxy
146
+ const recency = Math.min(1.0, Math.log2(i.confirmed + 1) / 3);
147
+ allResults.push({
148
+ id: stableId("insight", i.title),
149
+ source: "insight",
150
+ title: i.title,
151
+ excerpt: `[${i.severity}] ${i.applies_when.join(", ")}`,
152
+ score: relevance * 0.50 + exactness * 0.30 + recency * 0.20,
153
+ severity: i.severity,
154
+ });
155
+ }
156
+ }
157
+ catch {
158
+ // Insights may be empty
159
+ }
160
+ // 4.5 Apply feedback adjustments — query-aware, ID-first matching
161
+ const feedbackLog = readFeedbackLog();
162
+ if (feedbackLog.length > 0) {
163
+ // Pre-filter: only feedback from similar queries
164
+ const queryWords = input.query.toLowerCase().split(/\s+/).filter((w) => w.length > 2);
165
+ const relevantFeedback = feedbackLog.filter((f) => {
166
+ if (!f.query)
167
+ return true; // legacy entries without query always apply
168
+ const fWords = f.query.toLowerCase().split(/\s+/).filter((w) => w.length > 2);
169
+ const overlap = queryWords.filter((w) => fWords.includes(w)).length;
170
+ return overlap > 0;
171
+ });
172
+ for (const r of allResults) {
173
+ const match = (f) => (f.id && f.id === r.id) || (f.title && f.title === r.title);
174
+ const positives = relevantFeedback.filter((f) => match(f) && f.useful).length;
175
+ const negatives = relevantFeedback.filter((f) => match(f) && !f.useful).length;
176
+ r.score += (positives * 0.03) - (negatives * 0.05);
177
+ r.score = Math.max(0, Math.min(1, r.score));
178
+ }
179
+ }
180
+ // 5. Deduplicate: if same excerpt appears in palace and journal, keep palace
181
+ const seen = new Set();
182
+ const deduped = [];
183
+ for (const r of allResults) {
184
+ const key = r.excerpt.toLowerCase().replace(/\s+/g, " ").trim();
185
+ if (seen.has(key))
186
+ continue;
187
+ seen.add(key);
188
+ deduped.push(r);
189
+ }
190
+ // 5. Sort by score descending, return top N
191
+ deduped.sort((a, b) => b.score - a.score);
192
+ return {
193
+ query: input.query,
194
+ results: deduped.slice(0, limit),
195
+ total_searched: totalSearched,
196
+ sources_queried: sourcesQueried,
197
+ };
198
+ }
199
+ //# sourceMappingURL=smart-recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-recall.js","sourceRoot":"","sources":["../../src/tools-logic/smart-recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * smart_remember — classify content and route to the right memory store.
3
+ *
4
+ * Agents call one tool; the system figures out where it belongs.
5
+ * Pure keyword scoring, no LLM calls.
6
+ */
7
+ export interface SmartRememberInput {
8
+ content: string;
9
+ context?: string;
10
+ project?: string;
11
+ }
12
+ export interface SmartRememberResult {
13
+ success: boolean;
14
+ routed_to: string;
15
+ classification: string;
16
+ auto_name: string;
17
+ result: unknown;
18
+ }
19
+ export declare function smartRemember(input: SmartRememberInput): Promise<SmartRememberResult>;
20
+ //# sourceMappingURL=smart-remember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-remember.d.ts","sourceRoot":"","sources":["../../src/tools-logic/smart-remember.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAwED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiE3F"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * smart_remember — classify content and route to the right memory store.
3
+ *
4
+ * Agents call one tool; the system figures out where it belongs.
5
+ * Pure keyword scoring, no LLM calls.
6
+ */
7
+ import { generateSlug, detectContentType } from "../helpers/auto-name.js";
8
+ import { journalCapture } from "./journal-capture.js";
9
+ import { palaceWrite } from "./palace-write.js";
10
+ import { knowledgeWrite } from "./knowledge-write.js";
11
+ import { awarenessUpdate } from "./awareness-update.js";
12
+ const ROUTE_SIGNALS = {
13
+ knowledge_write: [
14
+ /\bbug\b/i, /\bfix\b/i, /\berror\b/i, /\broot cause\b/i, /\blesson\b/i,
15
+ /\bregression\b/i, /\bcrash\b/i, /\bworkaround\b/i, /\bwhat happened\b/i,
16
+ /\bbroke\b/i,
17
+ ],
18
+ awareness_update: [
19
+ /\balways\b/i, /\bnever\b/i, /\bpattern\b/i, /\bacross projects\b/i,
20
+ /\binsight\b/i, /\bgeneral rule\b/i, /\bapplies when\b/i, /\brealized\b/i,
21
+ /\bcross-project\b/i, /\bobserved that\b/i,
22
+ ],
23
+ palace_write: [
24
+ /\barchitecture\b/i, /\bdecision\b/i, /\bdesign\b/i, /\bschema\b/i,
25
+ /\bapproach\b/i, /\bchose\b/i, /\bdecided\b/i, /\bwill use\b/i,
26
+ /\bstructure\b/i, /\bapi\b/i,
27
+ ],
28
+ journal_capture: [
29
+ /\btoday\b/i, /\bsession\b/i, /\bcompleted\b/i, /\bworked on\b/i,
30
+ /\btried\b/i, /\bstatus\b/i, /\bprogress\b/i, /\bblocked\b/i,
31
+ /\bnext\b/i, /\bdid\b/i,
32
+ ],
33
+ };
34
+ // Higher boost = more specific store. knowledge and awareness get slight boosts
35
+ // because they're more valuable when correctly classified.
36
+ const ROUTE_BOOSTS = {
37
+ knowledge_write: 1.2,
38
+ awareness_update: 1.3,
39
+ palace_write: 1.0,
40
+ journal_capture: 1.0,
41
+ };
42
+ function classifyRoute(content, context) {
43
+ const text = context ? `${context} ${content}` : content;
44
+ // Check context hint first (strong signal)
45
+ if (context) {
46
+ const lower = context.toLowerCase();
47
+ if (/bug|fix|error|regression|crash/i.test(lower))
48
+ return "knowledge_write";
49
+ if (/architecture|design|decision|schema/i.test(lower))
50
+ return "palace_write";
51
+ if (/insight|lesson|pattern|across/i.test(lower))
52
+ return "awareness_update";
53
+ if (/session|log|today|progress/i.test(lower))
54
+ return "journal_capture";
55
+ }
56
+ // Score each route
57
+ const scores = [];
58
+ for (const [route, patterns] of Object.entries(ROUTE_SIGNALS)) {
59
+ let count = 0;
60
+ for (const pattern of patterns) {
61
+ if (pattern.test(text))
62
+ count++;
63
+ }
64
+ scores.push({ route, score: count * ROUTE_BOOSTS[route] });
65
+ }
66
+ scores.sort((a, b) => b.score - a.score);
67
+ // Default to journal_capture if no clear signal
68
+ return scores[0].score > 0 ? scores[0].route : "journal_capture";
69
+ }
70
+ // ---------------------------------------------------------------------------
71
+ // Dispatch
72
+ // ---------------------------------------------------------------------------
73
+ export async function smartRemember(input) {
74
+ const route = classifyRoute(input.content, input.context);
75
+ const slugResult = generateSlug(input.content);
76
+ const autoName = slugResult.slug;
77
+ let result;
78
+ switch (route) {
79
+ case "journal_capture": {
80
+ result = await journalCapture({
81
+ question: "Auto-captured",
82
+ answer: input.content,
83
+ project: input.project,
84
+ });
85
+ break;
86
+ }
87
+ case "palace_write": {
88
+ // Use content type as room, auto-name generates the topic
89
+ const contentType = detectContentType(input.content);
90
+ const room = contentType === "general" ? "knowledge" : contentType;
91
+ result = await palaceWrite({
92
+ room,
93
+ content: input.content,
94
+ project: input.project,
95
+ auto_name: true,
96
+ });
97
+ break;
98
+ }
99
+ case "knowledge_write": {
100
+ // Extract title from first sentence or first line
101
+ const firstLine = input.content.split(/[.\n]/)[0]?.trim() ?? "Auto-captured lesson";
102
+ result = await knowledgeWrite({
103
+ category: slugResult.contentType,
104
+ title: firstLine.slice(0, 80),
105
+ what_happened: input.content,
106
+ root_cause: "See content",
107
+ fix: "See content",
108
+ project: input.project,
109
+ });
110
+ break;
111
+ }
112
+ case "awareness_update": {
113
+ // Extract title from first sentence
114
+ const title = input.content.split(/[.\n]/)[0]?.trim().slice(0, 80) ?? "Auto-captured insight";
115
+ result = await awarenessUpdate({
116
+ insights: [
117
+ {
118
+ title,
119
+ evidence: input.content,
120
+ applies_when: slugResult.keywords,
121
+ source: `smart_remember ${new Date().toISOString().slice(0, 10)}`,
122
+ },
123
+ ],
124
+ });
125
+ break;
126
+ }
127
+ }
128
+ return {
129
+ success: true,
130
+ routed_to: route,
131
+ classification: slugResult.contentType,
132
+ auto_name: autoName,
133
+ result,
134
+ };
135
+ }
136
+ //# sourceMappingURL=smart-remember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-remember.js","sourceRoot":"","sources":["../../src/tools-logic/smart-remember.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared types, interfaces, and constants for agent-recall-mcp.
3
3
  */
4
- export declare const VERSION = "3.3.9";
4
+ export declare const VERSION = "3.3.11";
5
5
  /**
6
6
  * Set the storage root directory. This is process-global state —
7
7
  * only one root is active at a time. Call before any other operations.
@@ -118,6 +118,15 @@ export interface PalaceGraph {
118
118
  edges: GraphEdge[];
119
119
  }
120
120
  export type Importance = "high" | "medium" | "low";
121
+ export type Urgency = "today" | "this-week" | "eventual" | "none";
121
122
  export type Confidence = "high" | "medium" | "low";
122
123
  export type WalkDepth = "identity" | "active" | "relevant" | "full";
124
+ /** Category determines decay rate — architecture decisions decay slowly, daily blockers decay fast. */
125
+ export type MemoryCategory = "goal" | "architecture" | "decision" | "blocker" | "observation" | "lesson" | "general";
126
+ /** Pinned items never get replaced by the awareness merge-or-replace cycle. */
127
+ export interface PinStatus {
128
+ pinned: boolean;
129
+ reason?: string;
130
+ pinned_at?: string;
131
+ }
123
132
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -6,7 +6,7 @@ import * as os from "node:os";
6
6
  // ---------------------------------------------------------------------------
7
7
  // Constants
8
8
  // ---------------------------------------------------------------------------
9
- export const VERSION = "3.3.9";
9
+ export const VERSION = "3.3.11";
10
10
  // ---------------------------------------------------------------------------
11
11
  // Root directory (configurable at runtime for SDK usage)
12
12
  // ---------------------------------------------------------------------------
package/dist/types.js.map CHANGED
@@ -1 +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"}
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,QAAQ,CAAC;AAEhC,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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-recall-core",
3
- "version": "3.3.9",
3
+ "version": "3.3.11",
4
4
  "description": "Core memory palace engine for AgentRecall",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",