agent-recall-core 3.3.10 → 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 (54) hide show
  1. package/README.md +2 -2
  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 +10 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +12 -1
  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/tools-logic/check.d.ts +33 -0
  22. package/dist/tools-logic/check.d.ts.map +1 -0
  23. package/dist/tools-logic/check.js +85 -0
  24. package/dist/tools-logic/check.js.map +1 -0
  25. package/dist/tools-logic/journal-capture.d.ts +1 -0
  26. package/dist/tools-logic/journal-capture.d.ts.map +1 -1
  27. package/dist/tools-logic/journal-capture.js +11 -1
  28. package/dist/tools-logic/journal-capture.js.map +1 -1
  29. package/dist/tools-logic/knowledge-write.d.ts.map +1 -1
  30. package/dist/tools-logic/knowledge-write.js +7 -1
  31. package/dist/tools-logic/knowledge-write.js.map +1 -1
  32. package/dist/tools-logic/palace-write.d.ts +2 -0
  33. package/dist/tools-logic/palace-write.d.ts.map +1 -1
  34. package/dist/tools-logic/palace-write.js +13 -1
  35. package/dist/tools-logic/palace-write.js.map +1 -1
  36. package/dist/tools-logic/session-end.d.ts +26 -0
  37. package/dist/tools-logic/session-end.d.ts.map +1 -0
  38. package/dist/tools-logic/session-end.js +68 -0
  39. package/dist/tools-logic/session-end.js.map +1 -0
  40. package/dist/tools-logic/session-start.d.ts +38 -0
  41. package/dist/tools-logic/session-start.d.ts.map +1 -0
  42. package/dist/tools-logic/session-start.js +91 -0
  43. package/dist/tools-logic/session-start.js.map +1 -0
  44. package/dist/tools-logic/smart-recall.d.ts +35 -0
  45. package/dist/tools-logic/smart-recall.d.ts.map +1 -0
  46. package/dist/tools-logic/smart-recall.js +199 -0
  47. package/dist/tools-logic/smart-recall.js.map +1 -0
  48. package/dist/tools-logic/smart-remember.d.ts +20 -0
  49. package/dist/tools-logic/smart-remember.d.ts.map +1 -0
  50. package/dist/tools-logic/smart-remember.js +136 -0
  51. package/dist/tools-logic/smart-remember.js.map +1 -0
  52. package/dist/types.d.ts +1 -1
  53. package/dist/types.js +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -514,7 +514,7 @@ L5: Insight Index recall_insight "cross-project experience"
514
514
 
515
515
  **Fan-out writes** — Write to one room, cross-references auto-update in related rooms via `[[wikilinks]]`. Mechanical, zero LLM cost.
516
516
 
517
- **Salience scoring** — Every room has a salience score: `importance(0.4) + recency(0.3) + access_frequency(0.2) + connections(0.1)`. High-salience rooms surface first. Below threshold → auto-archive.
517
+ **Salience scoring** — Every room has a salience score: `recency(0.30) + access(0.25) + connections(0.20) + urgency(0.15) + importance(0.10)`. High-salience rooms surface first. Below threshold → auto-archive.
518
518
 
519
519
  **Compounding awareness** — `awareness.md` is capped at 200 lines. When new insights are added, similar existing ones merge (strengthen), dissimilar ones compete (lowest-confirmation gets replaced). The constraint creates compression. Compression creates compounding.
520
520
 
@@ -995,7 +995,7 @@ L5: 洞察索引 recall_insight 「跨项目的经验」
995
995
 
996
996
  **扇出写入** — 写入一个房间,相关房间通过 `[[wikilinks]]` 自动更新交叉引用。零 LLM 成本。
997
997
 
998
- **显著性评分** — `重要性(0.4) + 时效性(0.3) + 访问频率(0.2) + 连接数(0.1)`。高显著性房间优先展示,低于阈值自动归档。
998
+ **显著性评分** — `时效性(0.30) + 访问频率(0.25) + 连接数(0.20) + 紧迫性(0.15) + 重要性(0.10)`。高显著性房间优先展示,低于阈值自动归档。
999
999
 
1000
1000
  **复合感知** — `awareness.md` 上限 200 行。新洞察与相似的合并(增强),与不相似的竞争(最低确认次数的被替换)。约束创造压缩,压缩创造复合。
1001
1001
 
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared alignment pattern detection — used by both check.ts and session-start.ts.
3
+ */
4
+ export interface AlignmentRecord {
5
+ date: string;
6
+ goal: string;
7
+ confidence: string;
8
+ assumptions: string[];
9
+ corrections?: string[];
10
+ delta?: string;
11
+ }
12
+ export interface WatchForPattern {
13
+ pattern: string;
14
+ frequency: number;
15
+ suggestion: string;
16
+ }
17
+ export declare function readAlignmentLog(project: string): AlignmentRecord[];
18
+ export declare function extractWatchPatterns(records: AlignmentRecord[], limit?: number): WatchForPattern[];
19
+ //# sourceMappingURL=alignment-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-patterns.d.ts","sourceRoot":"","sources":["../../src/helpers/alignment-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAInE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,KAAK,GAAE,MAAU,GAAG,eAAe,EAAE,CA4BrG"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Shared alignment pattern detection — used by both check.ts and session-start.ts.
3
+ */
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import { getRoot } from "../types.js";
7
+ import { extractKeywords } from "./auto-name.js";
8
+ export function readAlignmentLog(project) {
9
+ const p = path.join(getRoot(), "projects", project, "alignment-log.json");
10
+ if (!fs.existsSync(p))
11
+ return [];
12
+ try {
13
+ return JSON.parse(fs.readFileSync(p, "utf-8"));
14
+ }
15
+ catch {
16
+ return [];
17
+ }
18
+ }
19
+ export function extractWatchPatterns(records, limit = 3) {
20
+ const correctionCounts = new Map();
21
+ for (const past of records) {
22
+ const corrections = [...(past.corrections ?? [])];
23
+ if (past.delta)
24
+ corrections.push(past.delta);
25
+ for (const c of corrections) {
26
+ const cKeywords = extractKeywords(c, 2);
27
+ const key = cKeywords.join("-") || "general";
28
+ const entry = correctionCounts.get(key) ?? { count: 0, examples: [] };
29
+ entry.count++;
30
+ if (entry.examples.length < 2)
31
+ entry.examples.push(c.slice(0, 80));
32
+ correctionCounts.set(key, entry);
33
+ }
34
+ }
35
+ const patterns = [];
36
+ for (const [key, { count, examples }] of correctionCounts) {
37
+ if (count >= 2) {
38
+ patterns.push({
39
+ pattern: `Recurring correction: ${key} (${examples[0]})`,
40
+ frequency: count,
41
+ suggestion: `Ask the human to clarify "${key}" — corrected ${count} times.`,
42
+ });
43
+ }
44
+ }
45
+ return patterns.sort((a, b) => b.frequency - a.frequency).slice(0, limit);
46
+ }
47
+ //# sourceMappingURL=alignment-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-patterns.js","sourceRoot":"","sources":["../../src/helpers/alignment-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiBjD,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA0B,EAAE,QAAgB,CAAC;IAChF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiD,CAAC;IAElF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACtE,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACnE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC1D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,yBAAyB,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG;gBACxD,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,6BAA6B,GAAG,iBAAiB,KAAK,SAAS;aAC5E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Auto-naming module — pure text analysis for generating semantic slugs.
3
+ *
4
+ * No LLM calls, no external dependencies. Works offline.
5
+ * The agent knows the content best at save-time. This module captures
6
+ * that understanding in a retrievable name.
7
+ */
8
+ export interface SlugContext {
9
+ room?: string;
10
+ type?: string;
11
+ existingSlugs?: string[];
12
+ }
13
+ export interface SlugResult {
14
+ slug: string;
15
+ contentType: string;
16
+ keywords: string[];
17
+ }
18
+ type ContentType = "decision" | "bug-fix" | "insight" | "architecture" | "tool-config" | "goal" | "blocker" | "lesson" | "general";
19
+ /**
20
+ * Detect the content type from text by counting signal word matches.
21
+ * Returns the type with the most matches; ties broken by declaration order.
22
+ */
23
+ export declare function detectContentType(content: string): ContentType;
24
+ /**
25
+ * Extract top keywords from content by weighted frequency.
26
+ * Pure text analysis — no LLM, no stemming library.
27
+ */
28
+ export declare function extractKeywords(content: string, limit?: number): string[];
29
+ /**
30
+ * Generate a semantic slug from content.
31
+ *
32
+ * Format: `{contentType}-{keyword1}-{keyword2}-{keyword3}`
33
+ * Max 60 characters. Unique against existingSlugs (appends -2, -3, etc.).
34
+ */
35
+ export declare function generateSlug(content: string, context?: SlugContext): SlugResult;
36
+ /**
37
+ * Generate a human-readable topic name from content.
38
+ * Title-case, max 4 words. For display purposes.
39
+ */
40
+ export declare function generateTopicName(content: string): string;
41
+ export {};
42
+ //# sourceMappingURL=auto-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-name.d.ts","sourceRoot":"","sources":["../../src/helpers/auto-name.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,KAAK,WAAW,GACZ,UAAU,GACV,SAAS,GACT,SAAS,GACT,cAAc,GACd,aAAa,GACb,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAcd;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAiB9D;AA+ED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CAuC5E;AAeD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CA8B/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAezD"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Auto-naming module — pure text analysis for generating semantic slugs.
3
+ *
4
+ * No LLM calls, no external dependencies. Works offline.
5
+ * The agent knows the content best at save-time. This module captures
6
+ * that understanding in a retrievable name.
7
+ */
8
+ const TYPE_SIGNALS = {
9
+ "bug-fix": [/\bbug\b/i, /\bfix\b/i, /\bregression\b/i, /\bbroke\b/i, /\berror\b/i, /\bcrash\b/i, /\bbroken\b/i],
10
+ lesson: [/\blesson\b/i, /\btakeaway\b/i, /\bnever again\b/i, /\balways remember\b/i, /\blearned that\b/i],
11
+ decision: [/\bdecided\b/i, /\bchose\b/i, /\bwill use\b/i, /\bgoing with\b/i, /\bverdict\b/i, /\bpicked\b/i],
12
+ insight: [/\blearned\b/i, /\brealized\b/i, /\binsight\b/i, /\bpattern\b/i, /\bobservation\b/i, /\bdiscovered\b/i],
13
+ architecture: [/\barchitecture\b/i, /\bdesign\b/i, /\bschema\b/i, /\bapi\b/i, /\bstructure\b/i, /\bsystem design\b/i],
14
+ "tool-config": [/\bconfig\b/i, /\bsetup\b/i, /\binstall\b/i, /\bmcp\b/i, /\bserver\b/i, /\bplugin\b/i, /\bconfigure\b/i],
15
+ goal: [/\bgoal\b/i, /\bmilestone\b/i, /\bobjective\b/i, /\btarget\b/i, /\broadmap\b/i, /\bokr\b/i],
16
+ blocker: [/\bblocker\b/i, /\bblocked\b/i, /\bstuck\b/i, /\bwaiting\b/i, /\bdependency\b/i, /\bblocking\b/i],
17
+ general: [],
18
+ };
19
+ /**
20
+ * Detect the content type from text by counting signal word matches.
21
+ * Returns the type with the most matches; ties broken by declaration order.
22
+ */
23
+ export function detectContentType(content) {
24
+ let bestType = "general";
25
+ let bestCount = 0;
26
+ for (const [type, patterns] of Object.entries(TYPE_SIGNALS)) {
27
+ if (type === "general")
28
+ continue;
29
+ let count = 0;
30
+ for (const pattern of patterns) {
31
+ if (pattern.test(content))
32
+ count++;
33
+ }
34
+ if (count > bestCount) {
35
+ bestCount = count;
36
+ bestType = type;
37
+ }
38
+ }
39
+ return bestType;
40
+ }
41
+ // ---------------------------------------------------------------------------
42
+ // Stopwords
43
+ // ---------------------------------------------------------------------------
44
+ const STOPWORDS = new Set([
45
+ // Common English
46
+ "the", "and", "is", "in", "to", "for", "of", "a", "an", "at", "by", "on",
47
+ "or", "as", "be", "it", "that", "this", "was", "are", "were", "been",
48
+ "not", "but", "what", "all", "when", "we", "there", "can", "had", "has",
49
+ "have", "will", "each", "about", "how", "up", "out", "them", "then",
50
+ "she", "he", "do", "if", "my", "no", "so", "just", "than", "into",
51
+ "its", "also", "our", "your", "new", "would", "could", "should", "now",
52
+ "these", "some", "other", "only", "very", "more", "over", "such",
53
+ "with", "from", "their", "they", "which", "you", "one", "two", "three",
54
+ "after", "before", "because", "between", "both", "during", "here",
55
+ "most", "same", "where", "while", "who", "why", "may", "still",
56
+ "did", "does", "get", "got", "like", "make", "much", "need", "use",
57
+ "used", "using", "way", "well", "work", "first", "last", "even",
58
+ // Markdown / technical noise
59
+ "http", "https", "www", "com", "org", "json", "true", "false", "null",
60
+ "undefined", "const", "let", "var", "function", "return", "import",
61
+ "export", "from", "type", "interface", "class", "async", "await",
62
+ ]);
63
+ // ---------------------------------------------------------------------------
64
+ // Keyword extraction
65
+ // ---------------------------------------------------------------------------
66
+ /** Remove markdown syntax from text. */
67
+ function stripMarkdown(text) {
68
+ return text
69
+ .replace(/```[\s\S]*?```/g, " ") // code blocks
70
+ .replace(/`[^`]+`/g, " ") // inline code
71
+ .replace(/\[([^\]]+)\]\([^)]+\)/g, "$1") // links → text
72
+ .replace(/[#*_~>|`\-\[\]()]/g, " ") // markdown chars
73
+ .replace(/\s+/g, " ")
74
+ .trim();
75
+ }
76
+ /** Extract positional weight multipliers from original content. */
77
+ function getPositionWeights(content) {
78
+ const weights = new Map();
79
+ // Headers get 2x
80
+ const headers = content.match(/^#{1,6}\s+(.+)$/gm) ?? [];
81
+ for (const h of headers) {
82
+ const words = stripMarkdown(h).toLowerCase().split(/\s+/);
83
+ for (const w of words) {
84
+ if (w.length > 2 && !STOPWORDS.has(w)) {
85
+ weights.set(w, (weights.get(w) ?? 1) * 2);
86
+ }
87
+ }
88
+ }
89
+ // Bold text gets 1.5x
90
+ const bolds = content.match(/\*\*([^*]+)\*\*/g) ?? [];
91
+ for (const b of bolds) {
92
+ const words = b.replace(/\*\*/g, "").toLowerCase().split(/\s+/);
93
+ for (const w of words) {
94
+ if (w.length > 2 && !STOPWORDS.has(w)) {
95
+ weights.set(w, (weights.get(w) ?? 1) * 1.5);
96
+ }
97
+ }
98
+ }
99
+ // First sentence gets 1.5x
100
+ const firstLine = stripMarkdown(content).split(/[.!?\n]/)[0] ?? "";
101
+ const firstWords = firstLine.toLowerCase().split(/\s+/);
102
+ for (const w of firstWords) {
103
+ if (w.length > 2 && !STOPWORDS.has(w)) {
104
+ weights.set(w, (weights.get(w) ?? 1) * 1.5);
105
+ }
106
+ }
107
+ return weights;
108
+ }
109
+ /**
110
+ * Extract top keywords from content by weighted frequency.
111
+ * Pure text analysis — no LLM, no stemming library.
112
+ */
113
+ export function extractKeywords(content, limit = 3) {
114
+ const posWeights = getPositionWeights(content);
115
+ const clean = stripMarkdown(content).toLowerCase();
116
+ const words = clean.split(/\s+/).filter((w) => w.length > 2 && !STOPWORDS.has(w));
117
+ // Count frequency
118
+ const freq = new Map();
119
+ for (const w of words) {
120
+ // Normalize: strip trailing punctuation, possessives
121
+ const normalized = w.replace(/[^a-z0-9]/g, "");
122
+ if (normalized.length < 3 || STOPWORDS.has(normalized))
123
+ continue;
124
+ freq.set(normalized, (freq.get(normalized) ?? 0) + 1);
125
+ }
126
+ // Apply position weights
127
+ const scored = new Map();
128
+ for (const [word, count] of freq) {
129
+ const posWeight = posWeights.get(word) ?? 1;
130
+ scored.set(word, count * posWeight);
131
+ }
132
+ // Sort by score descending, take top N
133
+ const sorted = Array.from(scored.entries()).sort((a, b) => b[1] - a[1]);
134
+ // Naive dedup: if word A starts with word B (or vice versa) and length diff <= 4, keep shorter
135
+ const result = [];
136
+ for (const [word] of sorted) {
137
+ if (result.length >= limit)
138
+ break;
139
+ const isDupe = result.some((existing) => (word.startsWith(existing) || existing.startsWith(word)) &&
140
+ Math.abs(word.length - existing.length) <= 4);
141
+ if (!isDupe) {
142
+ result.push(word);
143
+ }
144
+ }
145
+ return result;
146
+ }
147
+ // ---------------------------------------------------------------------------
148
+ // Slug generation
149
+ // ---------------------------------------------------------------------------
150
+ /** Sanitize a string into a valid slug. */
151
+ function slugify(text) {
152
+ return text
153
+ .toLowerCase()
154
+ .replace(/[^a-z0-9]+/g, "-")
155
+ .replace(/^-+|-+$/g, "")
156
+ .slice(0, 60);
157
+ }
158
+ /**
159
+ * Generate a semantic slug from content.
160
+ *
161
+ * Format: `{contentType}-{keyword1}-{keyword2}-{keyword3}`
162
+ * Max 60 characters. Unique against existingSlugs (appends -2, -3, etc.).
163
+ */
164
+ export function generateSlug(content, context) {
165
+ const contentType = context?.type ?? detectContentType(content);
166
+ const keywords = extractKeywords(content, 3);
167
+ // Build slug
168
+ const parts = [contentType, ...keywords];
169
+ let slug = slugify(parts.join("-"));
170
+ // Fallback if slug is empty or just the type
171
+ if (!slug || slug === contentType) {
172
+ // Use first meaningful words from content
173
+ const fallbackWords = stripMarkdown(content)
174
+ .toLowerCase()
175
+ .split(/\s+/)
176
+ .filter((w) => w.length > 2 && !STOPWORDS.has(w))
177
+ .slice(0, 3);
178
+ slug = slugify([contentType, ...fallbackWords].join("-"));
179
+ }
180
+ // Ensure uniqueness
181
+ if (context?.existingSlugs) {
182
+ const existing = new Set(context.existingSlugs);
183
+ if (existing.has(slug)) {
184
+ let counter = 2;
185
+ while (existing.has(`${slug}-${counter}`))
186
+ counter++;
187
+ slug = `${slug}-${counter}`;
188
+ }
189
+ }
190
+ return { slug, contentType, keywords };
191
+ }
192
+ /**
193
+ * Generate a human-readable topic name from content.
194
+ * Title-case, max 4 words. For display purposes.
195
+ */
196
+ export function generateTopicName(content) {
197
+ const keywords = extractKeywords(content, 4);
198
+ if (keywords.length === 0) {
199
+ // Fallback to first meaningful words
200
+ const words = stripMarkdown(content)
201
+ .split(/\s+/)
202
+ .filter((w) => w.length > 2)
203
+ .slice(0, 4);
204
+ return words.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join(" ") || "Untitled";
205
+ }
206
+ return keywords
207
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
208
+ .join(" ");
209
+ }
210
+ //# sourceMappingURL=auto-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-name.js","sourceRoot":"","sources":["../../src/helpers/auto-name.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export { createRoom, getRoomMeta, updateRoomMeta, listRooms, roomExists, ensureP
10
10
  export { readGraph, writeGraph, addEdge, removeEdgesFor, getConnectionCount, getConnectedRooms, } from "./palace/graph.js";
11
11
  export { fanOut } from "./palace/fan-out.js";
12
12
  export type { FanOutResult } from "./palace/fan-out.js";
13
- export { readAwareness, writeAwareness, readAwarenessState, writeAwarenessState, initAwareness, addInsight, detectCompoundInsights, renderAwareness, } from "./palace/awareness.js";
13
+ export { readAwareness, writeAwareness, readAwarenessState, writeAwarenessState, initAwareness, addInsight, detectCompoundInsights, renderAwareness, readAwarenessArchive, writeAwarenessArchive, resurrectFromArchive, } from "./palace/awareness.js";
14
14
  export type { Insight, CompoundInsight, AwarenessState, } from "./palace/awareness.js";
15
15
  export { computeSalience, ARCHIVE_THRESHOLD, AUTO_ARCHIVE_THRESHOLD, CATEGORY_DECAY, URGENCY_WEIGHTS, } from "./palace/salience.js";
16
16
  export { readInsightsIndex, writeInsightsIndex, addIndexedInsight, recallInsights, } from "./palace/insights-index.js";
@@ -27,6 +27,10 @@ export { detectProject, resolveProject, listAllProjects } from "./storage/projec
27
27
  export { listJournalFiles, readJournalFile, extractTitle, extractMomentum, countLogEntries, updateIndex, } from "./helpers/journal-files.js";
28
28
  export { extractSection, appendToSection } from "./helpers/sections.js";
29
29
  export { isoWeek, weekKey, groupByWeek, synthesizeWeek } from "./helpers/rollup.js";
30
+ export { generateSlug, detectContentType, extractKeywords, generateTopicName } from "./helpers/auto-name.js";
31
+ export type { SlugResult, SlugContext } from "./helpers/auto-name.js";
32
+ export { readAlignmentLog, extractWatchPatterns } from "./helpers/alignment-patterns.js";
33
+ export type { WatchForPattern } from "./helpers/alignment-patterns.js";
30
34
  export { journalRead, type JournalReadInput, type JournalReadResult } from "./tools-logic/journal-read.js";
31
35
  export { journalWrite, type JournalWriteInput, type JournalWriteResult } from "./tools-logic/journal-write.js";
32
36
  export { journalCapture, type JournalCaptureInput, type JournalCaptureResult } from "./tools-logic/journal-capture.js";
@@ -49,4 +53,9 @@ export { palaceLint, type PalaceLintInput, type PalaceLintResult, type LintIssue
49
53
  export { palaceSearch, type PalaceSearchInput, type PalaceSearchResult } from "./tools-logic/palace-search.js";
50
54
  export { awarenessUpdate, type AwarenessUpdateInput, type AwarenessUpdateResult } from "./tools-logic/awareness-update.js";
51
55
  export { recallInsight, type RecallInsightInput, type RecallInsightResult } from "./tools-logic/recall-insight.js";
56
+ export { smartRemember, type SmartRememberInput, type SmartRememberResult } from "./tools-logic/smart-remember.js";
57
+ export { smartRecall, type SmartRecallInput, type SmartRecallResult } from "./tools-logic/smart-recall.js";
58
+ export { sessionStart, type SessionStartInput, type SessionStartResult } from "./tools-logic/session-start.js";
59
+ export { sessionEnd, type SessionEndInput, type SessionEndResult } from "./tools-logic/session-end.js";
60
+ export { check, type CheckInput, type CheckResult, type WatchFor, type PastDelta } from "./tools-logic/check.js";
52
61
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,OAAO,EACP,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,aAAa,GACd,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7G,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACzF,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzI,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnI,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrI,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC3H,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGnH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAG3G,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ export { readGraph, writeGraph, addEdge, removeEdgesFor, getConnectionCount, get
13
13
  // Palace — fan-out
14
14
  export { fanOut } from "./palace/fan-out.js";
15
15
  // Palace — awareness
16
- export { readAwareness, writeAwareness, readAwarenessState, writeAwarenessState, initAwareness, addInsight, detectCompoundInsights, renderAwareness, } from "./palace/awareness.js";
16
+ export { readAwareness, writeAwareness, readAwarenessState, writeAwarenessState, initAwareness, addInsight, detectCompoundInsights, renderAwareness, readAwarenessArchive, writeAwarenessArchive, resurrectFromArchive, } from "./palace/awareness.js";
17
17
  // Palace — salience
18
18
  export { computeSalience, ARCHIVE_THRESHOLD, AUTO_ARCHIVE_THRESHOLD, CATEGORY_DECAY, URGENCY_WEIGHTS, } from "./palace/salience.js";
19
19
  // Palace — insights index
@@ -37,6 +37,10 @@ export { listJournalFiles, readJournalFile, extractTitle, extractMomentum, count
37
37
  export { extractSection, appendToSection } from "./helpers/sections.js";
38
38
  // Helpers — rollup
39
39
  export { isoWeek, weekKey, groupByWeek, synthesizeWeek } from "./helpers/rollup.js";
40
+ // Helpers — auto-naming
41
+ export { generateSlug, detectContentType, extractKeywords, generateTopicName } from "./helpers/auto-name.js";
42
+ // Helpers — alignment patterns
43
+ export { readAlignmentLog, extractWatchPatterns } from "./helpers/alignment-patterns.js";
40
44
  // Tool logic functions (extracted from MCP tool handlers)
41
45
  export { journalRead } from "./tools-logic/journal-read.js";
42
46
  export { journalWrite } from "./tools-logic/journal-write.js";
@@ -60,4 +64,11 @@ export { palaceLint } from "./tools-logic/palace-lint.js";
60
64
  export { palaceSearch } from "./tools-logic/palace-search.js";
61
65
  export { awarenessUpdate } from "./tools-logic/awareness-update.js";
62
66
  export { recallInsight } from "./tools-logic/recall-insight.js";
67
+ // Tool logic — smart routing
68
+ export { smartRemember } from "./tools-logic/smart-remember.js";
69
+ export { smartRecall } from "./tools-logic/smart-recall.js";
70
+ // Tool logic — v3.4 composite tools (5-tool surface)
71
+ export { sessionStart } from "./tools-logic/session-start.js";
72
+ export { sessionEnd } from "./tools-logic/session-end.js";
73
+ export { check } from "./tools-logic/check.js";
63
74
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EACL,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAC;AAiBpB,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAO/B,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAMpC,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEnE,yBAAyB;AACzB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,uBAAuB;AACvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExE,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpF,0DAA0D;AAC1D,OAAO,EAAE,WAAW,EAAiD,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAmD,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAuD,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAiD,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,eAAe,EAA8B,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,aAAa,EAAqD,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAmD,MAAM,gCAAgC,CAAC;AACzI,OAAO,EAAE,gBAAgB,EAA2D,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,cAAc,EAAuD,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,aAAa,EAAqD,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,cAAc,EAAuD,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,KAAK,EAAqC,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAA6D,MAAM,qCAAqC,CAAC;AACnI,OAAO,EAAE,cAAc,EAAuD,MAAM,kCAAkC,CAAC;AACvH,OAAO,EAAE,aAAa,EAA2B,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,UAAU,EAA+C,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,WAAW,EAAiD,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAA+C,MAAM,8BAA8B,CAAC;AACrI,OAAO,EAAE,UAAU,EAA+D,MAAM,8BAA8B,CAAC;AACvH,OAAO,EAAE,YAAY,EAAmD,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAyD,MAAM,mCAAmC,CAAC;AAC3H,OAAO,EAAE,aAAa,EAAqD,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,10 @@ export interface AwarenessState {
42
42
  }
43
43
  export declare function readAwarenessState(): AwarenessState | null;
44
44
  export declare function writeAwarenessState(state: AwarenessState): void;
45
+ export declare function readAwarenessArchive(): Insight[];
46
+ export declare function writeAwarenessArchive(archive: Insight[]): void;
47
+ /** Check archive for a matching insight to resurrect. Returns the insight if found. */
48
+ export declare function resurrectFromArchive(keywords: string[]): Insight | null;
45
49
  /**
46
50
  * Initialize awareness from scratch.
47
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"awareness.d.ts","sourceRoot":"","sources":["../../src/palace/awareness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAaH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAYpD;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,wBAAgB,kBAAkB,IAAI,cAAc,GAAG,IAAI,CAQ1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAI/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAY9D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,eAAe,GAAG,eAAe,CAAC,GAClE;IAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAgE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAsC1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAoD3D"}
1
+ {"version":3,"file":"awareness.d.ts","sourceRoot":"","sources":["../../src/palace/awareness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAYpD;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAgB,kBAAkB,IAAI,cAAc,GAAG,IAAI,CAQ1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAI/D;AAID,wBAAgB,oBAAoB,IAAI,OAAO,EAAE,CAQhD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAK9D;AA0BD,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAgBvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAY9D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,eAAe,GAAG,eAAe,CAAC,GAClE;IAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA+F/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAsC1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAoD3D"}