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,71 @@
1
+ /**
2
+ * Journal and palace directory path resolution.
3
+ */
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import { getRoot, getLegacyRoot } from "../types.js";
7
+ /**
8
+ * Resolve the journal directory for a project.
9
+ * For writes, always use the new location.
10
+ */
11
+ export function journalDir(project) {
12
+ const safe = project.replace(/[^a-zA-Z0-9_\-\.]/g, "-");
13
+ const root = getRoot();
14
+ const resolved = path.join(root, "projects", safe, "journal");
15
+ if (!resolved.startsWith(root)) {
16
+ throw new Error(`Invalid project name: ${project}`);
17
+ }
18
+ return resolved;
19
+ }
20
+ /**
21
+ * Find all journal directories for a project (new + legacy fallback).
22
+ */
23
+ export function journalDirs(project) {
24
+ const dirs = [];
25
+ const primary = journalDir(project);
26
+ if (fs.existsSync(primary))
27
+ dirs.push(primary);
28
+ // Legacy: ~/.claude/projects/*/memory/journal/
29
+ const legacyRoot = getLegacyRoot();
30
+ if (fs.existsSync(legacyRoot)) {
31
+ try {
32
+ const entries = fs.readdirSync(legacyRoot);
33
+ for (const entry of entries) {
34
+ if (entry.includes(project)) {
35
+ const legacyJournal = path.join(legacyRoot, entry, "memory", "journal");
36
+ if (fs.existsSync(legacyJournal)) {
37
+ dirs.push(legacyJournal);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ catch {
43
+ // ignore
44
+ }
45
+ }
46
+ return dirs;
47
+ }
48
+ /**
49
+ * Resolve the palace directory for a project.
50
+ */
51
+ export function palaceDir(project) {
52
+ const safe = project.replace(/[^a-zA-Z0-9_\-\.]/g, "-");
53
+ const root = getRoot();
54
+ const resolved = path.join(root, "projects", safe, "palace");
55
+ if (!resolved.startsWith(root)) {
56
+ throw new Error(`Invalid project name: ${project}`);
57
+ }
58
+ return resolved;
59
+ }
60
+ /**
61
+ * Resolve a room directory within a project's palace.
62
+ */
63
+ export function roomDir(project, roomSlug) {
64
+ const safeSlug = roomSlug.replace(/[^a-zA-Z0-9_\-]/g, "-");
65
+ const resolved = path.join(palaceDir(project), "rooms", safeSlug);
66
+ if (!resolved.startsWith(getRoot())) {
67
+ throw new Error(`Invalid room slug: ${roomSlug}`);
68
+ }
69
+ return resolved;
70
+ }
71
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Project detection and listing.
3
+ */
4
+ import type { ProjectInfo } from "../types.js";
5
+ /**
6
+ * Auto-detect project slug from environment, git, or cwd.
7
+ */
8
+ export declare function detectProject(): Promise<string>;
9
+ /**
10
+ * Resolve "auto" project to actual slug.
11
+ */
12
+ export declare function resolveProject(project: string | undefined): Promise<string>;
13
+ /**
14
+ * List all projects (from both new and legacy locations).
15
+ */
16
+ export declare function listAllProjects(): ProjectInfo[];
17
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/storage/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CA0CrD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAKjF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,EAAE,CA2D/C"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Project detection and listing.
3
+ */
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import { execFile } from "node:child_process";
7
+ import { promisify } from "node:util";
8
+ import { getRoot, getLegacyRoot } from "../types.js";
9
+ const execFileAsync = promisify(execFile);
10
+ let _cachedProject = null;
11
+ /**
12
+ * Auto-detect project slug from environment, git, or cwd.
13
+ */
14
+ export async function detectProject() {
15
+ if (_cachedProject)
16
+ return _cachedProject;
17
+ // 1. Env var
18
+ if (process.env.AGENT_RECALL_PROJECT) {
19
+ _cachedProject = process.env.AGENT_RECALL_PROJECT;
20
+ return _cachedProject;
21
+ }
22
+ // 2. Git repo name (async)
23
+ try {
24
+ const { stdout } = await execFileAsync("git", ["config", "--get", "remote.origin.url"], { timeout: 3000 });
25
+ const remote = stdout.trim();
26
+ if (remote) {
27
+ const name = path.basename(remote, ".git");
28
+ if (name) {
29
+ _cachedProject = name;
30
+ return name;
31
+ }
32
+ }
33
+ }
34
+ catch {
35
+ try {
36
+ const { stdout } = await execFileAsync("git", ["rev-parse", "--show-toplevel"], { timeout: 3000 });
37
+ const root = stdout.trim();
38
+ if (root) {
39
+ _cachedProject = path.basename(root);
40
+ return _cachedProject;
41
+ }
42
+ }
43
+ catch {
44
+ // fall through
45
+ }
46
+ }
47
+ // 3. package.json name
48
+ const cwd = process.cwd();
49
+ const pkgPath = path.join(cwd, "package.json");
50
+ if (fs.existsSync(pkgPath)) {
51
+ try {
52
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
53
+ if (pkg.name) {
54
+ _cachedProject = pkg.name.replace(/^@[^/]+\//, "");
55
+ return _cachedProject;
56
+ }
57
+ }
58
+ catch {
59
+ // fall through
60
+ }
61
+ }
62
+ // 4. Basename of cwd
63
+ _cachedProject = path.basename(cwd);
64
+ return _cachedProject;
65
+ }
66
+ /**
67
+ * Resolve "auto" project to actual slug.
68
+ */
69
+ export async function resolveProject(project) {
70
+ if (!project || project === "auto") {
71
+ return await detectProject();
72
+ }
73
+ return project;
74
+ }
75
+ /**
76
+ * List all projects (from both new and legacy locations).
77
+ */
78
+ export function listAllProjects() {
79
+ const projects = new Map();
80
+ // New location
81
+ const projectsDir = path.join(getRoot(), "projects");
82
+ if (fs.existsSync(projectsDir)) {
83
+ const dirs = fs.readdirSync(projectsDir);
84
+ for (const slug of dirs) {
85
+ const jDir = path.join(projectsDir, slug, "journal");
86
+ if (fs.existsSync(jDir)) {
87
+ const files = fs.readdirSync(jDir).filter((f) => /^\d{4}-\d{2}-\d{2}\.md$/.test(f));
88
+ if (files.length > 0) {
89
+ files.sort().reverse();
90
+ projects.set(slug, {
91
+ slug,
92
+ lastEntry: files[0].replace(".md", ""),
93
+ entryCount: files.length,
94
+ });
95
+ }
96
+ }
97
+ }
98
+ }
99
+ // Legacy location
100
+ const legacyRoot = getLegacyRoot();
101
+ if (fs.existsSync(legacyRoot)) {
102
+ try {
103
+ const entries = fs.readdirSync(legacyRoot);
104
+ for (const entry of entries) {
105
+ const journalPath = path.join(legacyRoot, entry, "memory", "journal");
106
+ if (fs.existsSync(journalPath)) {
107
+ const parts = entry.split("-").filter(Boolean);
108
+ const slug = parts[parts.length - 1] || entry;
109
+ if (!projects.has(slug)) {
110
+ const files = fs.readdirSync(journalPath).filter((f) => /^\d{4}-\d{2}-\d{2}\.md$/.test(f));
111
+ if (files.length > 0) {
112
+ files.sort().reverse();
113
+ projects.set(slug, {
114
+ slug,
115
+ lastEntry: files[0].replace(".md", ""),
116
+ entryCount: files.length,
117
+ });
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ catch {
124
+ // ignore
125
+ }
126
+ }
127
+ const result = Array.from(projects.values());
128
+ result.sort((a, b) => b.lastEntry.localeCompare(a.lastEntry));
129
+ return result;
130
+ }
131
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/storage/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface AlignmentCheckInput {
2
+ goal: string;
3
+ confidence: "high" | "medium" | "low";
4
+ assumptions?: string[];
5
+ unclear?: string;
6
+ human_correction?: string;
7
+ delta?: string;
8
+ category?: "goal" | "scope" | "priority" | "technical" | "aesthetic";
9
+ project?: string;
10
+ }
11
+ export interface AlignmentCheckResult {
12
+ success: boolean;
13
+ date: string;
14
+ confidence: string;
15
+ delta: string;
16
+ file: string;
17
+ }
18
+ export declare function alignmentCheck(input: AlignmentCheckInput): Promise<AlignmentCheckResult>;
19
+ //# sourceMappingURL=alignment-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-check.d.ts","sourceRoot":"","sources":["../../src/tools-logic/alignment-check.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8C9F"}
@@ -0,0 +1,54 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { journalDir, palaceDir } from "../storage/paths.js";
5
+ import { ensureDir, todayISO } from "../storage/fs-utils.js";
6
+ import { ensurePalaceInitialized, roomExists } from "../palace/rooms.js";
7
+ import { updatePalaceIndex } from "../palace/index-manager.js";
8
+ export async function alignmentCheck(input) {
9
+ const slug = await resolveProject(input.project);
10
+ const date = todayISO();
11
+ const dir = journalDir(slug);
12
+ ensureDir(dir);
13
+ const category = input.category ?? "goal";
14
+ const time = new Date().toISOString().slice(11, 19);
15
+ const assumeStr = input.assumptions?.length ? input.assumptions.map(a => ` - ${a}`).join("\n") : " (none)";
16
+ let entry = `### Alignment (${time})\n`;
17
+ entry += `**Goal**: ${input.goal}\n**Confidence**: ${input.confidence}\n**Category**: ${category}\n`;
18
+ entry += `**Assumptions**:\n${assumeStr}\n`;
19
+ if (input.unclear)
20
+ entry += `**Unclear**: ${input.unclear}\n`;
21
+ if (input.human_correction)
22
+ entry += `**Human**: ${input.human_correction}\n**Delta**: ${input.delta || "not specified"}\n`;
23
+ entry += "\n";
24
+ const logPath = path.join(dir, `${date}-alignment.md`);
25
+ if (!fs.existsSync(logPath)) {
26
+ fs.writeFileSync(logPath, `# ${date} — Alignment Records\n\n---\n\n${entry}`, "utf-8");
27
+ }
28
+ else {
29
+ fs.appendFileSync(logPath, entry, "utf-8");
30
+ }
31
+ try {
32
+ ensurePalaceInitialized(slug);
33
+ if (roomExists(slug, "alignment")) {
34
+ const pd = palaceDir(slug);
35
+ const alignFile = path.join(pd, "rooms", "alignment", `${category}.md`);
36
+ ensureDir(path.dirname(alignFile));
37
+ if (input.human_correction) {
38
+ const palaceEntry = `\n### ${date} ${time} — ${input.confidence}\n**Goal**: ${input.goal}\n**Human correction**: ${input.human_correction}\n**Delta**: ${input.delta || "pending"}\n`;
39
+ if (fs.existsSync(alignFile)) {
40
+ fs.appendFileSync(alignFile, palaceEntry, "utf-8");
41
+ }
42
+ else {
43
+ fs.writeFileSync(alignFile, `# alignment / ${category}\n${palaceEntry}`, "utf-8");
44
+ }
45
+ }
46
+ updatePalaceIndex(slug);
47
+ }
48
+ }
49
+ catch {
50
+ // Palace integration is optional
51
+ }
52
+ return { success: true, date, confidence: input.confidence, delta: input.delta || "pending", file: logPath };
53
+ }
54
+ //# sourceMappingURL=alignment-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-check.js","sourceRoot":"","sources":["../../src/tools-logic/alignment-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface AwarenessUpdateInput {
2
+ insights: Array<{
3
+ title: string;
4
+ evidence: string;
5
+ applies_when: string[];
6
+ source: string;
7
+ severity?: "critical" | "important" | "minor";
8
+ }>;
9
+ trajectory?: string;
10
+ blind_spots?: string[];
11
+ identity?: string;
12
+ }
13
+ export interface AwarenessUpdateResult {
14
+ success: boolean;
15
+ insights_processed: Array<{
16
+ title: string;
17
+ action: string;
18
+ }>;
19
+ compound_insights_detected: number;
20
+ total_insights: number;
21
+ }
22
+ export declare function awarenessUpdate(input: AwarenessUpdateInput): Promise<AwarenessUpdateResult>;
23
+ //# sourceMappingURL=awareness-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awareness-update.d.ts","sourceRoot":"","sources":["../../src/tools-logic/awareness-update.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;KAC/C,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,0BAA0B,EAAE,MAAM,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoDjG"}
@@ -0,0 +1,47 @@
1
+ import { readAwarenessState, writeAwarenessState, initAwareness, addInsight, detectCompoundInsights, renderAwareness, } from "../palace/awareness.js";
2
+ import { addIndexedInsight } from "../palace/insights-index.js";
3
+ export async function awarenessUpdate(input) {
4
+ let state = readAwarenessState();
5
+ if (!state) {
6
+ state = initAwareness(input.identity || "(unknown user)");
7
+ }
8
+ if (input.identity) {
9
+ state.identity = input.identity;
10
+ }
11
+ const results = [];
12
+ for (const insight of input.insights) {
13
+ const result = addInsight({
14
+ title: insight.title,
15
+ evidence: insight.evidence,
16
+ appliesWhen: insight.applies_when,
17
+ source: insight.source,
18
+ });
19
+ results.push({ title: insight.title, action: result.action });
20
+ addIndexedInsight({
21
+ title: insight.title,
22
+ source: insight.source,
23
+ applies_when: insight.applies_when,
24
+ file: undefined,
25
+ severity: insight.severity ?? "important",
26
+ });
27
+ }
28
+ // Re-read state after addInsight loop (addInsight writes its own state)
29
+ state = readAwarenessState();
30
+ if (input.trajectory) {
31
+ state.trajectory = input.trajectory;
32
+ }
33
+ if (input.blind_spots && input.blind_spots.length > 0) {
34
+ state.blindSpots = input.blind_spots.slice(0, 5);
35
+ }
36
+ state.lastUpdated = new Date().toISOString();
37
+ writeAwarenessState(state);
38
+ renderAwareness(state);
39
+ const compounds = detectCompoundInsights();
40
+ return {
41
+ success: true,
42
+ insights_processed: results,
43
+ compound_insights_detected: compounds.length,
44
+ total_insights: readAwarenessState()?.topInsights.length ?? 0,
45
+ };
46
+ }
47
+ //# sourceMappingURL=awareness-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awareness-update.js","sourceRoot":"","sources":["../../src/tools-logic/awareness-update.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAsBhE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,IAAI,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAA6C,EAAE,CAAC;IAC7D,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,YAAY;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9D,iBAAiB,CAAC;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,KAAK,GAAG,kBAAkB,EAAG,CAAC;IAE9B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3B,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAE3C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,kBAAkB,EAAE,OAAO;QAC3B,0BAA0B,EAAE,SAAS,CAAC,MAAM;QAC5C,cAAc,EAAE,kBAAkB,EAAE,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC;KAC9D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface ContextSynthesizeInput {
2
+ entries?: number;
3
+ focus?: "full" | "decisions" | "blockers" | "goals";
4
+ include_palace?: boolean;
5
+ consolidate?: boolean;
6
+ project?: string;
7
+ }
8
+ export interface ContextSynthesizeResult {
9
+ project: string;
10
+ entries_analyzed: number;
11
+ palace_rooms: number;
12
+ consolidated: number;
13
+ synthesis: string;
14
+ error?: string;
15
+ }
16
+ export declare function contextSynthesize(input: ContextSynthesizeInput): Promise<ContextSynthesizeResult>;
17
+ //# sourceMappingURL=context-synthesize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-synthesize.d.ts","sourceRoot":"","sources":["../../src/tools-logic/context-synthesize.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4KvG"}
@@ -0,0 +1,174 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { resolveProject } from "../storage/project.js";
4
+ import { journalDir, palaceDir } from "../storage/paths.js";
5
+ import { ensureDir, todayISO } from "../storage/fs-utils.js";
6
+ import { listJournalFiles } from "../helpers/journal-files.js";
7
+ import { extractSection } from "../helpers/sections.js";
8
+ import { ensurePalaceInitialized, listRooms, roomExists, createRoom } from "../palace/rooms.js";
9
+ import { fanOut } from "../palace/fan-out.js";
10
+ import { generateFrontmatter } from "../palace/obsidian.js";
11
+ import { updatePalaceIndex } from "../palace/index-manager.js";
12
+ export async function contextSynthesize(input) {
13
+ const slug = await resolveProject(input.project);
14
+ const journalEntries = listJournalFiles(slug);
15
+ const count = input.entries ?? 5;
16
+ const focus = input.focus ?? "full";
17
+ if (journalEntries.length === 0) {
18
+ return { project: slug, entries_analyzed: 0, palace_rooms: 0, consolidated: 0, synthesis: "", error: `No entries for '${slug}'` };
19
+ }
20
+ const toRead = journalEntries.slice(0, count);
21
+ const data = [];
22
+ for (const entry of toRead) {
23
+ const content = fs.readFileSync(path.join(entry.dir, entry.file), "utf-8");
24
+ data.push({
25
+ date: entry.date,
26
+ brief: extractSection(content, "brief"),
27
+ decisions: extractSection(content, "decisions"),
28
+ blockers: extractSection(content, "blockers"),
29
+ next: extractSection(content, "next"),
30
+ observations: extractSection(content, "observations"),
31
+ });
32
+ }
33
+ let syn = `# L3 Synthesis — ${slug}\n`;
34
+ syn += `> ${toRead.length} entries: ${toRead[toRead.length - 1]?.date} → ${toRead[0]?.date}\n\n`;
35
+ if (focus === "full" || focus === "goals") {
36
+ syn += `## Goal Evolution\n\n`;
37
+ for (const e of data) {
38
+ if (e.brief)
39
+ syn += `**${e.date}**: ${e.brief.split("\n")[0]}\n`;
40
+ }
41
+ syn += "\n";
42
+ }
43
+ if (focus === "full" || focus === "decisions") {
44
+ syn += `## Decisions\n\n`;
45
+ const allDecisions = [];
46
+ for (const e of data) {
47
+ if (e.decisions)
48
+ allDecisions.push(`**${e.date}**:\n${e.decisions}\n`);
49
+ }
50
+ syn += allDecisions.length > 0 ? allDecisions.join("\n") : "(none recorded)\n";
51
+ if (allDecisions.length >= 2) {
52
+ syn += "\n### Potential Contradictions\n\n";
53
+ syn += "Review the decisions above. Flag if:\n";
54
+ syn += "- A decision from an earlier date was reversed without explanation\n";
55
+ syn += "- The same topic has conflicting approaches across dates\n";
56
+ syn += "- A goal stated in one entry differs from another\n\n";
57
+ }
58
+ }
59
+ if (focus === "full" || focus === "blockers") {
60
+ syn += `## Active Blockers\n\n`;
61
+ const latest = data.find(e => e.blockers);
62
+ syn += latest ? `**${latest.date}**:\n${latest.blockers}\n\n` : "(none)\n\n";
63
+ const oldBlockers = data.filter(e => e.blockers && e !== latest);
64
+ if (oldBlockers.length > 0) {
65
+ syn += "### Recurring Blockers (appeared in older entries too)\n\n";
66
+ for (const ob of oldBlockers.slice(0, 2)) {
67
+ syn += `**${ob.date}**: ${ob.blockers?.split("\n")[0] || ""}\n`;
68
+ }
69
+ syn += "\n";
70
+ }
71
+ }
72
+ if (focus === "full") {
73
+ const obs = data.filter(e => e.observations);
74
+ if (obs.length > 0) {
75
+ syn += `## Patterns from Agent Observations\n\n`;
76
+ for (const o of obs.slice(0, 3)) {
77
+ syn += `**${o.date}**: ${o.observations?.split("\n").slice(0, 2).join(" ") || ""}\n`;
78
+ }
79
+ syn += "\n";
80
+ }
81
+ }
82
+ const alignPath = path.join(journalDir(slug), `${todayISO()}-alignment.md`);
83
+ if (fs.existsSync(alignPath)) {
84
+ const alignContent = fs.readFileSync(alignPath, "utf-8");
85
+ const checks = (alignContent.match(/### .*Alignment/g) || []).length;
86
+ const nudges = (alignContent.match(/### .*Nudge/g) || []).length;
87
+ const low = (alignContent.match(/Confidence: low/g) || []).length;
88
+ if (checks > 0 || nudges > 0) {
89
+ syn += `## Today's Alignment\n\n`;
90
+ syn += `- Alignment checks: ${checks}\n- Nudges: ${nudges}\n- Low confidence: ${low}\n\n`;
91
+ }
92
+ }
93
+ let palaceRoomCount = 0;
94
+ if (input.include_palace !== false) {
95
+ try {
96
+ ensurePalaceInitialized(slug);
97
+ const rooms = listRooms(slug);
98
+ if (rooms.length > 0) {
99
+ syn += `## Memory Palace — Room Summaries\n\n`;
100
+ for (const room of rooms.slice(0, 5)) {
101
+ syn += `- **${room.name}** (salience: ${room.salience.toFixed(2)}) — ${room.description}\n`;
102
+ if (room.connections.length > 0) {
103
+ syn += ` Connected to: ${room.connections.join(", ")}\n`;
104
+ }
105
+ }
106
+ syn += "\n";
107
+ palaceRoomCount = rooms.length;
108
+ }
109
+ }
110
+ catch {
111
+ // Palace not initialized
112
+ }
113
+ }
114
+ let consolidated = 0;
115
+ if (input.consolidate) {
116
+ try {
117
+ ensurePalaceInitialized(slug);
118
+ const pd = palaceDir(slug);
119
+ const date = todayISO();
120
+ const decisionsData = data.filter(e => e.decisions).map(e => `**${e.date}**: ${e.decisions}`).join("\n");
121
+ if (decisionsData) {
122
+ if (!roomExists(slug, "architecture")) {
123
+ createRoom(slug, "architecture", "Architecture", "Technical decisions and patterns", ["technical"]);
124
+ }
125
+ const decPath = path.join(pd, "rooms", "architecture", "decisions.md");
126
+ ensureDir(path.dirname(decPath));
127
+ const entry = `\n### Consolidated ${date}\n\n${decisionsData}\n`;
128
+ if (fs.existsSync(decPath)) {
129
+ fs.appendFileSync(decPath, entry, "utf-8");
130
+ }
131
+ else {
132
+ const fm = generateFrontmatter({ room: "architecture", topic: "decisions", created: new Date().toISOString(), source: "consolidation" });
133
+ fs.writeFileSync(decPath, `${fm}# architecture / decisions\n${entry}`, "utf-8");
134
+ }
135
+ fanOut(slug, "architecture", "decisions", decisionsData, ["goals"], "high");
136
+ consolidated++;
137
+ }
138
+ const goalsData = data.filter(e => e.brief).map(e => `**${e.date}**: ${e.brief?.split("\n")[0]}`).join("\n");
139
+ if (goalsData) {
140
+ const evoPath = path.join(pd, "rooms", "goals", "evolution.md");
141
+ ensureDir(path.dirname(evoPath));
142
+ const entry = `\n### Consolidated ${date}\n\n${goalsData}\n`;
143
+ if (fs.existsSync(evoPath)) {
144
+ fs.appendFileSync(evoPath, entry, "utf-8");
145
+ }
146
+ else {
147
+ const fm = generateFrontmatter({ room: "goals", topic: "evolution", created: new Date().toISOString(), source: "consolidation" });
148
+ fs.writeFileSync(evoPath, `${fm}# goals / evolution\n${entry}`, "utf-8");
149
+ }
150
+ consolidated++;
151
+ }
152
+ const blockersData = data.filter(e => e.blockers).map(e => `**${e.date}**: ${e.blockers?.split("\n")[0]}`).join("\n");
153
+ if (blockersData) {
154
+ const blkPath = path.join(pd, "rooms", "blockers", "history.md");
155
+ ensureDir(path.dirname(blkPath));
156
+ const entry = `\n### Consolidated ${date}\n\n${blockersData}\n`;
157
+ if (fs.existsSync(blkPath)) {
158
+ fs.appendFileSync(blkPath, entry, "utf-8");
159
+ }
160
+ else {
161
+ const fm = generateFrontmatter({ room: "blockers", topic: "history", created: new Date().toISOString(), source: "consolidation" });
162
+ fs.writeFileSync(blkPath, `${fm}# blockers / history\n${entry}`, "utf-8");
163
+ }
164
+ consolidated++;
165
+ }
166
+ updatePalaceIndex(slug);
167
+ }
168
+ catch {
169
+ // Consolidation is optional
170
+ }
171
+ }
172
+ return { project: slug, entries_analyzed: toRead.length, palace_rooms: palaceRoomCount, consolidated, synthesis: syn };
173
+ }
174
+ //# sourceMappingURL=context-synthesize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-synthesize.js","sourceRoot":"","sources":["../../src/tools-logic/context-synthesize.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,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAmB/D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA6B;IACnE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;IAEpC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,IAAI,GAAG,EAAE,CAAC;IACpI,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAuJ,EAAE,CAAC;IAEpK,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC;YACvC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC;YAC/C,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;YAC7C,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YACrC,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,GAAG,oBAAoB,IAAI,IAAI,CAAC;IACvC,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC;IAEjG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1C,GAAG,IAAI,uBAAuB,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,KAAK;gBAAE,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,CAAC;QACD,GAAG,IAAI,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC9C,GAAG,IAAI,kBAAkB,CAAC;QAC1B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,SAAS;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;QACzE,CAAC;QACD,GAAG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAE/E,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,oCAAoC,CAAC;YAC5C,GAAG,IAAI,wCAAwC,CAAC;YAChD,GAAG,IAAI,sEAAsE,CAAC;YAC9E,GAAG,IAAI,4DAA4D,CAAC;YACpE,GAAG,IAAI,uDAAuD,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QAC7C,GAAG,IAAI,wBAAwB,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QAE7E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;QACjE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,IAAI,4DAA4D,CAAC;YACpE,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,IAAI,KAAK,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;YAClE,CAAC;YACD,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,IAAI,yCAAyC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;YACvF,CAAC;YACD,GAAG,IAAI,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC5E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAClE,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,0BAA0B,CAAC;YAClC,GAAG,IAAI,uBAAuB,MAAM,eAAe,MAAM,uBAAuB,GAAG,MAAM,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,IAAI,uCAAuC,CAAC;gBAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACrC,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC;oBAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,GAAG,IAAI,mBAAmB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,GAAG,IAAI,IAAI,CAAC;gBACZ,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;YAExB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzG,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;oBACtC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kCAAkC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;gBACtG,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;gBACvE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,sBAAsB,IAAI,OAAO,aAAa,IAAI,CAAC;gBACjE,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;oBACzI,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,+BAA+B,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5E,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7G,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBAChE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,sBAAsB,IAAI,OAAO,SAAS,IAAI,CAAC;gBAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;oBAClI,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,wBAAwB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3E,CAAC;gBACD,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;gBACjE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,sBAAsB,IAAI,OAAO,YAAY,IAAI,CAAC;gBAChE,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;oBACnI,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,yBAAyB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC5E,CAAC;gBACD,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AACzH,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface JournalArchiveInput {
2
+ older_than_days?: number;
3
+ project?: string;
4
+ }
5
+ export interface JournalArchiveResult {
6
+ archived: number;
7
+ summaries: string[];
8
+ archive_dir: string;
9
+ }
10
+ export declare function journalArchive(input: JournalArchiveInput): Promise<JournalArchiveResult>;
11
+ //# sourceMappingURL=journal-archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal-archive.d.ts","sourceRoot":"","sources":["../../src/tools-logic/journal-archive.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8C9F"}