memobank-cli 0.4.0 → 0.6.0
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.
- package/CHANGELOG.md +24 -0
- package/README.md +330 -83
- package/dist/cli.js +104 -20
- package/dist/cli.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +26 -13
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +94 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lifecycle.d.ts +2 -0
- package/dist/commands/lifecycle.d.ts.map +1 -1
- package/dist/commands/lifecycle.js +10 -0
- package/dist/commands/lifecycle.js.map +1 -1
- package/dist/commands/migrate.d.ts +22 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +130 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/onboarding.d.ts.map +1 -1
- package/dist/commands/onboarding.js +116 -41
- package/dist/commands/onboarding.js.map +1 -1
- package/dist/commands/recall.d.ts.map +1 -1
- package/dist/commands/recall.js +9 -3
- package/dist/commands/recall.js.map +1 -1
- package/dist/commands/scan.js +1 -1
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +7 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/setup.d.ts +9 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +354 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/workspace.d.ts +12 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +189 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/commands/write.d.ts.map +1 -1
- package/dist/commands/write.js +4 -0
- package/dist/commands/write.js.map +1 -1
- package/dist/components/MultiSelect.d.ts +17 -0
- package/dist/components/MultiSelect.d.ts.map +1 -0
- package/dist/components/MultiSelect.js +7 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/config.d.ts +3 -15
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +27 -62
- package/dist/config.js.map +1 -1
- package/dist/core/decay-engine.d.ts +11 -0
- package/dist/core/decay-engine.d.ts.map +1 -1
- package/dist/core/decay-engine.js +11 -0
- package/dist/core/decay-engine.js.map +1 -1
- package/dist/core/lifecycle-manager.d.ts +16 -0
- package/dist/core/lifecycle-manager.d.ts.map +1 -1
- package/dist/core/lifecycle-manager.js +86 -0
- package/dist/core/lifecycle-manager.js.map +1 -1
- package/dist/core/retriever.d.ts +1 -1
- package/dist/core/retriever.d.ts.map +1 -1
- package/dist/core/retriever.js +48 -3
- package/dist/core/retriever.js.map +1 -1
- package/dist/core/store.d.ts +15 -19
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +107 -79
- package/dist/core/store.js.map +1 -1
- package/dist/platforms/claude-code.d.ts +2 -1
- package/dist/platforms/claude-code.d.ts.map +1 -1
- package/dist/platforms/claude-code.js +19 -14
- package/dist/platforms/claude-code.js.map +1 -1
- package/dist/platforms/gemini.d.ts.map +1 -1
- package/dist/platforms/gemini.js +26 -4
- package/dist/platforms/gemini.js.map +1 -1
- package/dist/platforms/qwen.d.ts.map +1 -1
- package/dist/platforms/qwen.js +26 -4
- package/dist/platforms/qwen.js.map +1 -1
- package/dist/types.d.ts +15 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../src/core/retriever.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"retriever.js","sourceRoot":"","sources":["../../src/core/retriever.ts"],"names":[],"mappings":"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"}
|
package/dist/core/store.d.ts
CHANGED
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
|
|
1
|
+
import { MemoryFile, MemoryScope, Status } from '../types';
|
|
2
|
+
/** Personal tier: ~/.memobank/<project-name>/ */
|
|
3
|
+
export declare function getGlobalDir(projectName: string): string;
|
|
4
|
+
/** Project/team tier: the repo root itself (.memobank/ in repo) */
|
|
5
|
+
export declare function getProjectDir(repoRoot: string): string;
|
|
6
|
+
/** Workspace tier (cross-repo): ~/.memobank/_workspace/<name>/ */
|
|
7
|
+
export declare function getWorkspaceDir(workspaceName: string): string;
|
|
6
8
|
export declare function findRepoRoot(cwd: string, repoFlag?: string): string;
|
|
7
|
-
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function loadAll(repoRoot: string, scope?: MemoryScope): MemoryFile[];
|
|
9
|
+
/** Find the git repo root (the dir containing .git), or return cwd. */
|
|
10
|
+
export declare function findGitRoot(cwd: string): string;
|
|
10
11
|
/**
|
|
11
|
-
* Load
|
|
12
|
+
* Load memories from all configured tiers.
|
|
13
|
+
* Priority: project > personal > workspace (for deduplication by filename).
|
|
14
|
+
* globalDir and workspaceDir are optional; if absent, those tiers are skipped silently.
|
|
12
15
|
*/
|
|
16
|
+
export declare function loadAll(repoRoot: string, scope?: MemoryScope | 'all', globalDir?: string, workspaceDir?: string): MemoryFile[];
|
|
13
17
|
export declare function loadFile(filePath: string): MemoryFile;
|
|
14
18
|
export declare function writeMemory(repoRoot: string, memory: Omit<MemoryFile, 'path' | 'scope'>): string;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
skipped: string[];
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Update MEMORY.md with recall results
|
|
21
|
-
*/
|
|
19
|
+
/** Patch status in a memory file's frontmatter in-place */
|
|
20
|
+
export declare function updateMemoryStatus(filePath: string, status: Status): void;
|
|
22
21
|
export declare function writeMemoryMd(repoRoot: string, results: Array<{
|
|
23
22
|
memory: MemoryFile;
|
|
24
23
|
score: number;
|
|
25
24
|
}>, query: string, engine: string): void;
|
|
26
|
-
/**
|
|
27
|
-
* Read MEMORY.md content
|
|
28
|
-
*/
|
|
29
25
|
export declare function readMemoryMd(repoRoot: string): string | null;
|
|
30
26
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/core/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAA0B,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQnF,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAQD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAmCnE;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO/C;AAoBD;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,WAAW,GAAG,KAAa,EAClC,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,UAAU,EAAE,CA8Bd;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAyBrD;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GACzC,MAAM,CAyBR;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACrD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAuBN;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D"}
|
package/dist/core/store.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* File I/O layer for memobank
|
|
4
|
-
* Reads and writes .md files with YAML frontmatter
|
|
5
|
-
*/
|
|
6
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
3
|
if (k2 === undefined) k2 = k;
|
|
8
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -40,13 +36,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
37
|
};
|
|
42
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getGlobalDir = getGlobalDir;
|
|
40
|
+
exports.getProjectDir = getProjectDir;
|
|
41
|
+
exports.getWorkspaceDir = getWorkspaceDir;
|
|
43
42
|
exports.findRepoRoot = findRepoRoot;
|
|
44
|
-
exports.
|
|
45
|
-
exports.getTeamDir = getTeamDir;
|
|
43
|
+
exports.findGitRoot = findGitRoot;
|
|
46
44
|
exports.loadAll = loadAll;
|
|
47
45
|
exports.loadFile = loadFile;
|
|
48
46
|
exports.writeMemory = writeMemory;
|
|
49
|
-
exports.
|
|
47
|
+
exports.updateMemoryStatus = updateMemoryStatus;
|
|
50
48
|
exports.writeMemoryMd = writeMemoryMd;
|
|
51
49
|
exports.readMemoryMd = readMemoryMd;
|
|
52
50
|
const fs = __importStar(require("fs"));
|
|
@@ -54,6 +52,26 @@ const path = __importStar(require("path"));
|
|
|
54
52
|
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
55
53
|
const glob_1 = require("glob");
|
|
56
54
|
const MEMORY_TYPES = ['lesson', 'decision', 'workflow', 'architecture'];
|
|
55
|
+
function osHomeDir() {
|
|
56
|
+
return process.env.HOME || process.env.USERPROFILE || '';
|
|
57
|
+
}
|
|
58
|
+
/** Personal tier: ~/.memobank/<project-name>/ */
|
|
59
|
+
function getGlobalDir(projectName) {
|
|
60
|
+
return path.join(osHomeDir(), '.memobank', projectName);
|
|
61
|
+
}
|
|
62
|
+
/** Project/team tier: the repo root itself (.memobank/ in repo) */
|
|
63
|
+
function getProjectDir(repoRoot) {
|
|
64
|
+
return repoRoot;
|
|
65
|
+
}
|
|
66
|
+
/** Workspace tier (cross-repo): ~/.memobank/_workspace/<name>/ */
|
|
67
|
+
function getWorkspaceDir(workspaceName) {
|
|
68
|
+
return path.join(osHomeDir(), '.memobank', '_workspace', workspaceName);
|
|
69
|
+
}
|
|
70
|
+
/** Directories that are never a memobank project dir */
|
|
71
|
+
const SKIP_DIRS = new Set([
|
|
72
|
+
'node_modules', '.git', 'dist', 'build', 'coverage',
|
|
73
|
+
'.next', '.nuxt', '.turbo', 'out', 'tmp', '.cache',
|
|
74
|
+
]);
|
|
57
75
|
function findRepoRoot(cwd, repoFlag) {
|
|
58
76
|
if (repoFlag) {
|
|
59
77
|
return path.resolve(repoFlag);
|
|
@@ -64,8 +82,27 @@ function findRepoRoot(cwd, repoFlag) {
|
|
|
64
82
|
}
|
|
65
83
|
let current = cwd;
|
|
66
84
|
while (current !== path.dirname(current)) {
|
|
67
|
-
|
|
68
|
-
|
|
85
|
+
// Fast path: check default .memobank dir first
|
|
86
|
+
const defaultConfigPath = path.join(current, '.memobank', 'meta', 'config.yaml');
|
|
87
|
+
if (fs.existsSync(defaultConfigPath)) {
|
|
88
|
+
return path.join(current, '.memobank');
|
|
89
|
+
}
|
|
90
|
+
// Scan immediate subdirs for a custom-named memobank dir
|
|
91
|
+
try {
|
|
92
|
+
const entries = fs.readdirSync(current, { withFileTypes: true });
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (!entry.isDirectory() || SKIP_DIRS.has(entry.name) || entry.name === '.memobank') {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const customConfigPath = path.join(current, entry.name, 'meta', 'config.yaml');
|
|
98
|
+
if (fs.existsSync(customConfigPath)) {
|
|
99
|
+
return path.join(current, entry.name);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch { /* ignore permission errors */ }
|
|
104
|
+
// Legacy: meta/config.yaml at root
|
|
105
|
+
if (fs.existsSync(path.join(current, 'meta', 'config.yaml'))) {
|
|
69
106
|
return current;
|
|
70
107
|
}
|
|
71
108
|
current = path.dirname(current);
|
|
@@ -80,14 +117,16 @@ function findRepoRoot(cwd, repoFlag) {
|
|
|
80
117
|
catch (e) { /* ignore */ }
|
|
81
118
|
return path.join(osHomeDir(), '.memobank', 'default');
|
|
82
119
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
120
|
+
/** Find the git repo root (the dir containing .git), or return cwd. */
|
|
121
|
+
function findGitRoot(cwd) {
|
|
122
|
+
let current = cwd;
|
|
123
|
+
while (current !== path.dirname(current)) {
|
|
124
|
+
if (fs.existsSync(path.join(current, '.git'))) {
|
|
125
|
+
return current;
|
|
126
|
+
}
|
|
127
|
+
current = path.dirname(current);
|
|
128
|
+
}
|
|
129
|
+
return cwd;
|
|
91
130
|
}
|
|
92
131
|
function loadFromDir(baseDir, scope) {
|
|
93
132
|
const memories = [];
|
|
@@ -97,9 +136,7 @@ function loadFromDir(baseDir, scope) {
|
|
|
97
136
|
for (const filePath of files) {
|
|
98
137
|
try {
|
|
99
138
|
const memory = loadFile(filePath);
|
|
100
|
-
|
|
101
|
-
memory.scope = scope;
|
|
102
|
-
}
|
|
139
|
+
memory.scope = scope;
|
|
103
140
|
memories.push(memory);
|
|
104
141
|
}
|
|
105
142
|
catch (e) {
|
|
@@ -109,27 +146,46 @@ function loadFromDir(baseDir, scope) {
|
|
|
109
146
|
}
|
|
110
147
|
return memories;
|
|
111
148
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return loadFromDir(repoRoot);
|
|
120
|
-
}
|
|
149
|
+
/**
|
|
150
|
+
* Load memories from all configured tiers.
|
|
151
|
+
* Priority: project > personal > workspace (for deduplication by filename).
|
|
152
|
+
* globalDir and workspaceDir are optional; if absent, those tiers are skipped silently.
|
|
153
|
+
*/
|
|
154
|
+
function loadAll(repoRoot, scope = 'all', globalDir, workspaceDir) {
|
|
155
|
+
const seenFilenames = new Set();
|
|
121
156
|
const memories = [];
|
|
122
|
-
|
|
123
|
-
|
|
157
|
+
const addFromDir = (dir, tierScope) => {
|
|
158
|
+
if (!fs.existsSync(dir)) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const tierMemories = loadFromDir(dir, tierScope);
|
|
162
|
+
for (const m of tierMemories) {
|
|
163
|
+
const filename = path.basename(m.path);
|
|
164
|
+
if (!seenFilenames.has(filename)) {
|
|
165
|
+
seenFilenames.add(filename);
|
|
166
|
+
memories.push(m);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
if (scope === 'all' || scope === 'project') {
|
|
171
|
+
addFromDir(repoRoot, 'project');
|
|
172
|
+
}
|
|
173
|
+
if (scope === 'all' || scope === 'personal') {
|
|
174
|
+
if (globalDir) {
|
|
175
|
+
addFromDir(globalDir, 'personal');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (scope === 'all' || scope === 'workspace') {
|
|
179
|
+
if (workspaceDir) {
|
|
180
|
+
addFromDir(workspaceDir, 'workspace');
|
|
181
|
+
}
|
|
124
182
|
}
|
|
125
|
-
|
|
126
|
-
|
|
183
|
+
// Legacy fallback: no tier dirs exist, load from root
|
|
184
|
+
if (memories.length === 0 && scope === 'all') {
|
|
185
|
+
return loadFromDir(repoRoot, 'project');
|
|
127
186
|
}
|
|
128
187
|
return memories;
|
|
129
188
|
}
|
|
130
|
-
/**
|
|
131
|
-
* Load a single memory file
|
|
132
|
-
*/
|
|
133
189
|
function loadFile(filePath) {
|
|
134
190
|
const fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
135
191
|
const parsed = (0, gray_matter_1.default)(fileContent);
|
|
@@ -150,22 +206,18 @@ function loadFile(filePath) {
|
|
|
150
206
|
updated: data.updated,
|
|
151
207
|
review_after: data.review_after,
|
|
152
208
|
confidence: data.confidence,
|
|
209
|
+
status: data.status,
|
|
153
210
|
content: parsed.content,
|
|
154
211
|
};
|
|
155
212
|
}
|
|
156
213
|
function writeMemory(repoRoot, memory) {
|
|
157
|
-
const
|
|
158
|
-
const baseDir = fs.existsSync(personalDir) ? personalDir : repoRoot;
|
|
159
|
-
const typeDir = path.join(baseDir, memory.type);
|
|
214
|
+
const typeDir = path.join(repoRoot, memory.type);
|
|
160
215
|
if (!fs.existsSync(typeDir)) {
|
|
161
216
|
fs.mkdirSync(typeDir, { recursive: true });
|
|
162
217
|
}
|
|
163
218
|
const date = new Date(memory.created);
|
|
164
219
|
const dateStr = date.toISOString().split('T')[0];
|
|
165
|
-
const slug = memory.name
|
|
166
|
-
.toLowerCase()
|
|
167
|
-
.replace(/\s+/g, '-')
|
|
168
|
-
.replace(/[^a-z0-9-]/g, '');
|
|
220
|
+
const slug = memory.name.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
|
|
169
221
|
const filename = `${dateStr}-${slug}.md`;
|
|
170
222
|
const filePath = path.join(typeDir, filename);
|
|
171
223
|
const frontmatter = {
|
|
@@ -174,6 +226,7 @@ function writeMemory(repoRoot, memory) {
|
|
|
174
226
|
description: memory.description,
|
|
175
227
|
tags: memory.tags,
|
|
176
228
|
created: memory.created,
|
|
229
|
+
status: memory.status ?? 'experimental',
|
|
177
230
|
};
|
|
178
231
|
if (memory.updated) {
|
|
179
232
|
frontmatter.updated = memory.updated;
|
|
@@ -188,40 +241,18 @@ function writeMemory(repoRoot, memory) {
|
|
|
188
241
|
fs.writeFileSync(filePath, fileContent, 'utf-8');
|
|
189
242
|
return filePath;
|
|
190
243
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
if (!fs.existsSync(srcTypeDir)) {
|
|
198
|
-
continue;
|
|
199
|
-
}
|
|
200
|
-
const dstTypeDir = path.join(personalDir, type);
|
|
201
|
-
const files = glob_1.glob.sync(path.join(srcTypeDir, '*.md'));
|
|
202
|
-
for (const srcFile of files) {
|
|
203
|
-
const filename = path.basename(srcFile);
|
|
204
|
-
const dstFile = path.join(dstTypeDir, filename);
|
|
205
|
-
if (fs.existsSync(dstFile)) {
|
|
206
|
-
skipped.push(srcFile);
|
|
207
|
-
continue;
|
|
208
|
-
}
|
|
209
|
-
fs.mkdirSync(dstTypeDir, { recursive: true });
|
|
210
|
-
fs.renameSync(srcFile, dstFile);
|
|
211
|
-
migrated.push(srcFile);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return { migrated, skipped };
|
|
244
|
+
/** Patch status in a memory file's frontmatter in-place */
|
|
245
|
+
function updateMemoryStatus(filePath, status) {
|
|
246
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
247
|
+
const parsed = (0, gray_matter_1.default)(content);
|
|
248
|
+
parsed.data.status = status;
|
|
249
|
+
fs.writeFileSync(filePath, gray_matter_1.default.stringify(parsed.content, parsed.data), 'utf-8');
|
|
215
250
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Update MEMORY.md with recall results
|
|
218
|
-
*/
|
|
219
251
|
function writeMemoryMd(repoRoot, results, query, engine) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
fs.mkdirSync(memoryDir, { recursive: true });
|
|
252
|
+
if (!fs.existsSync(repoRoot)) {
|
|
253
|
+
fs.mkdirSync(repoRoot, { recursive: true });
|
|
223
254
|
}
|
|
224
|
-
const filePath = path.join(
|
|
255
|
+
const filePath = path.join(repoRoot, 'MEMORY.md');
|
|
225
256
|
let markdown = `<!-- Last updated: ${new Date().toISOString()} | query: "${query}" | engine: ${engine} | top ${results.length} -->\n\n`;
|
|
226
257
|
markdown += `## Recalled Memory\n\n`;
|
|
227
258
|
if (results.length === 0) {
|
|
@@ -229,7 +260,7 @@ function writeMemoryMd(repoRoot, results, query, engine) {
|
|
|
229
260
|
}
|
|
230
261
|
else {
|
|
231
262
|
for (const result of results) {
|
|
232
|
-
const { memory
|
|
263
|
+
const { memory } = result;
|
|
233
264
|
const relativePath = path.relative(repoRoot, memory.path);
|
|
234
265
|
const confidenceStr = memory.confidence ? ` · ${memory.confidence} confidence` : '';
|
|
235
266
|
const tagStr = memory.tags.length > 0 ? ` · tags: ${memory.tags.join(', ')}` : '';
|
|
@@ -242,11 +273,8 @@ function writeMemoryMd(repoRoot, results, query, engine) {
|
|
|
242
273
|
markdown += `*${results.length} memories · engine: ${engine}*`;
|
|
243
274
|
fs.writeFileSync(filePath, markdown, 'utf-8');
|
|
244
275
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Read MEMORY.md content
|
|
247
|
-
*/
|
|
248
276
|
function readMemoryMd(repoRoot) {
|
|
249
|
-
const filePath = path.join(repoRoot, '
|
|
277
|
+
const filePath = path.join(repoRoot, 'MEMORY.md');
|
|
250
278
|
if (!fs.existsSync(filePath)) {
|
|
251
279
|
return null;
|
|
252
280
|
}
|
package/dist/core/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export interface ClaudeCodeSettings {
|
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Install memobank for Claude Code
|
|
11
|
+
* @param enableAutoMemory - explicitly set autoMemoryEnabled in settings (true to enable, false to leave unchanged)
|
|
11
12
|
*/
|
|
12
|
-
export declare function installClaudeCode(repoRoot: string): Promise<boolean>;
|
|
13
|
+
export declare function installClaudeCode(repoRoot: string, enableAutoMemory?: boolean): Promise<boolean>;
|
|
13
14
|
//# sourceMappingURL=claude-code.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/platforms/claude-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAUD
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/platforms/claude-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAUD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAmD5G"}
|
|
@@ -49,8 +49,9 @@ function getSettingsPath() {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Install memobank for Claude Code
|
|
52
|
+
* @param enableAutoMemory - explicitly set autoMemoryEnabled in settings (true to enable, false to leave unchanged)
|
|
52
53
|
*/
|
|
53
|
-
async function installClaudeCode(repoRoot) {
|
|
54
|
+
async function installClaudeCode(repoRoot, enableAutoMemory = true) {
|
|
54
55
|
const settingsPath = getSettingsPath();
|
|
55
56
|
const settingsDir = path.dirname(settingsPath);
|
|
56
57
|
// Ensure .claude directory exists
|
|
@@ -69,21 +70,25 @@ async function installClaudeCode(repoRoot) {
|
|
|
69
70
|
return false;
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
settings.hooks = {};
|
|
73
|
+
// Only set autoMemoryEnabled when the user explicitly agreed during setup.
|
|
74
|
+
// If they chose to keep it off, leave the setting untouched.
|
|
75
|
+
if (enableAutoMemory) {
|
|
76
|
+
settings.autoMemoryEnabled = true;
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
// Set autoMemoryDirectory to the project tier root so Claude Code's
|
|
79
|
+
// native auto-memory and memobank project memories share the same directory.
|
|
80
|
+
settings.autoMemoryDirectory = repoRoot;
|
|
81
|
+
// Remove any legacy memobank Stop hook (no longer needed — Claude Code's
|
|
82
|
+
// native auto-memory writes directly to autoMemoryDirectory).
|
|
83
|
+
if (settings.hooks?.Stop) {
|
|
84
|
+
settings.hooks.Stop = settings.hooks.Stop.filter((h) => !(h.hooks?.[0]?.command?.includes('memo capture')));
|
|
85
|
+
if (settings.hooks.Stop.length === 0) {
|
|
86
|
+
delete settings.hooks.Stop;
|
|
87
|
+
}
|
|
88
|
+
if (Object.keys(settings.hooks).length === 0) {
|
|
89
|
+
delete settings.hooks;
|
|
90
|
+
}
|
|
80
91
|
}
|
|
81
|
-
// Remove any existing memobank Stop hook to avoid duplicates
|
|
82
|
-
settings.hooks.Stop = settings.hooks.Stop.filter((h) => !(h.hooks?.[0]?.command?.includes('memo capture')));
|
|
83
|
-
settings.hooks.Stop.push({
|
|
84
|
-
matcher: '',
|
|
85
|
-
hooks: [{ type: 'command', command: 'memo capture --auto --silent' }],
|
|
86
|
-
});
|
|
87
92
|
// Write settings
|
|
88
93
|
try {
|
|
89
94
|
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/platforms/claude-code.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/platforms/claude-code.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBH,8CAmDC;AAvED,uCAAyB;AACzB,2CAA6B;AAO7B;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,mBAA4B,IAAI;IACxF,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,kCAAkC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,0BAA0B;IAC1B,IAAI,QAAQ,GAAuB,EAAE,CAAC;IAEtC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mCAAoC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,gBAAgB,EAAE,CAAC;QACrB,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,oEAAoE;IACpE,6EAA6E;IAC7E,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IAExC,yEAAyE;IACzE,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAC9C,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAC/D,CAAC;QACF,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAC,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC,KAAK,CAAC;QAAC,CAAC;IAC1E,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAqC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH,wBAAgB,YAAY,IAAI,OAAO,CAMtC;AASD,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBtD"}
|
package/dist/platforms/gemini.js
CHANGED
|
@@ -45,8 +45,30 @@ const child_process_1 = require("child_process");
|
|
|
45
45
|
const GEMINI_PROTOCOL = `
|
|
46
46
|
## Memobank Memory Protocol
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
This project uses memobank for persistent memory.
|
|
49
|
+
|
|
50
|
+
### Before Starting Work
|
|
51
|
+
|
|
52
|
+
Recall relevant project context:
|
|
53
|
+
|
|
54
|
+
\`\`\`bash
|
|
55
|
+
memo recall "project context"
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### After Finishing Work
|
|
59
|
+
|
|
60
|
+
Capture learnings and insights:
|
|
61
|
+
|
|
62
|
+
\`\`\`bash
|
|
63
|
+
memo capture --auto --silent
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
### Useful Commands
|
|
67
|
+
|
|
68
|
+
- \`memo recall <query>\` - Search and display relevant memories
|
|
69
|
+
- \`memo search <query>\` - Debug search without updating MEMORY.md
|
|
70
|
+
- \`memo write <type>\` - Manually create a new memory
|
|
71
|
+
- \`memo map\` - Show memory summary
|
|
50
72
|
`;
|
|
51
73
|
function getGeminiMdPath() {
|
|
52
74
|
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
@@ -75,13 +97,13 @@ async function installGemini() {
|
|
|
75
97
|
let content = '';
|
|
76
98
|
if (fs.existsSync(mdPath)) {
|
|
77
99
|
content = fs.readFileSync(mdPath, 'utf-8');
|
|
78
|
-
if (content.includes('memo
|
|
100
|
+
if (content.includes('memo recall "project context"')) {
|
|
79
101
|
console.log('✓ Gemini: memobank protocol already installed');
|
|
80
102
|
return true;
|
|
81
103
|
}
|
|
82
104
|
}
|
|
83
105
|
fs.writeFileSync(mdPath, content + GEMINI_PROTOCOL, 'utf-8');
|
|
84
|
-
console.log(`✓ Gemini:
|
|
106
|
+
console.log(`✓ Gemini: memobank protocol added to ${mdPath}`);
|
|
85
107
|
return true;
|
|
86
108
|
}
|
|
87
109
|
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/platforms/gemini.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCH,oCAMC;AASD,sCAkBC;AAvED,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvB,CAAC;AAEF,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,OAAO,CACL,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,SAAS,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAEpE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen.d.ts","sourceRoot":"","sources":["../../src/platforms/qwen.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"qwen.d.ts","sourceRoot":"","sources":["../../src/platforms/qwen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH,wBAAgB,UAAU,IAAI,OAAO,CAMpC;AASD,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBpD"}
|
package/dist/platforms/qwen.js
CHANGED
|
@@ -45,8 +45,30 @@ const child_process_1 = require("child_process");
|
|
|
45
45
|
const QWEN_PROTOCOL = `
|
|
46
46
|
## Memobank Memory Protocol
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
This project uses memobank for persistent memory.
|
|
49
|
+
|
|
50
|
+
### Before Starting Work
|
|
51
|
+
|
|
52
|
+
Recall relevant project context:
|
|
53
|
+
|
|
54
|
+
\`\`\`bash
|
|
55
|
+
memo recall "project context"
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### After Finishing Work
|
|
59
|
+
|
|
60
|
+
Capture learnings and insights:
|
|
61
|
+
|
|
62
|
+
\`\`\`bash
|
|
63
|
+
memo capture --auto --silent
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
### Useful Commands
|
|
67
|
+
|
|
68
|
+
- \`memo recall <query>\` - Search and display relevant memories
|
|
69
|
+
- \`memo search <query>\` - Debug search without updating MEMORY.md
|
|
70
|
+
- \`memo write <type>\` - Manually create a new memory
|
|
71
|
+
- \`memo map\` - Show memory summary
|
|
50
72
|
`;
|
|
51
73
|
function getQwenMdPath() {
|
|
52
74
|
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
@@ -75,13 +97,13 @@ async function installQwen() {
|
|
|
75
97
|
let content = '';
|
|
76
98
|
if (fs.existsSync(mdPath)) {
|
|
77
99
|
content = fs.readFileSync(mdPath, 'utf-8');
|
|
78
|
-
if (content.includes('memo
|
|
100
|
+
if (content.includes('memo recall "project context"')) {
|
|
79
101
|
console.log('✓ Qwen: memobank protocol already installed');
|
|
80
102
|
return true;
|
|
81
103
|
}
|
|
82
104
|
}
|
|
83
105
|
fs.writeFileSync(mdPath, content + QWEN_PROTOCOL, 'utf-8');
|
|
84
|
-
console.log(`✓ Qwen:
|
|
106
|
+
console.log(`✓ Qwen: memobank protocol added to ${mdPath}`);
|
|
85
107
|
return true;
|
|
86
108
|
}
|
|
87
109
|
//# sourceMappingURL=qwen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../src/platforms/qwen.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../src/platforms/qwen.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCH,gCAMC;AASD,kCAkBC;AAvED,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC;AAEF,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,OAAO,CACL,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,SAAS,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAEpE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC"}
|