openhorse 0.2.6 → 0.2.9
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/README.md +2 -2
- package/README.zh-CN.md +10 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +9 -16
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +69 -24
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/types.d.ts +7 -28
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/checkpoint.d.ts +42 -0
- package/dist/core/checkpoint.d.ts.map +1 -0
- package/dist/core/checkpoint.js +222 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/tool-artifacts.d.ts.map +1 -1
- package/dist/core/tool-artifacts.js +19 -15
- package/dist/core/tool-artifacts.js.map +1 -1
- package/dist/framework/index.d.ts +1 -0
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js +5 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/tool-serializer.d.ts +21 -0
- package/dist/framework/tool-serializer.d.ts.map +1 -0
- package/dist/framework/tool-serializer.js +68 -0
- package/dist/framework/tool-serializer.js.map +1 -0
- package/dist/framework/tool.d.ts +5 -1
- package/dist/framework/tool.d.ts.map +1 -1
- package/dist/framework/tool.js.map +1 -1
- package/dist/harness/context-harness.d.ts.map +1 -1
- package/dist/harness/context-harness.js +5 -0
- package/dist/harness/context-harness.js.map +1 -1
- package/dist/harness/evidence.d.ts +5 -0
- package/dist/harness/evidence.d.ts.map +1 -1
- package/dist/harness/evidence.js +23 -0
- package/dist/harness/evidence.js.map +1 -1
- package/dist/harness/index.d.ts +1 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +2 -1
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/intent.d.ts.map +1 -1
- package/dist/harness/intent.js +8 -0
- package/dist/harness/intent.js.map +1 -1
- package/dist/harness/types.d.ts +4 -1
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/ink-ui/App.d.ts +2 -2
- package/dist/ink-ui/App.d.ts.map +1 -1
- package/dist/ink-ui/components/PixelHorseBanner.d.ts +2 -2
- package/dist/ink-ui/components/PixelHorseBanner.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.d.ts +2 -2
- package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
- package/dist/ink-ui/launch.d.ts +2 -2
- package/dist/ink-ui/launch.d.ts.map +1 -1
- package/dist/ink-ui/launch.js.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts +2 -2
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +4 -2
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/memory/storage.d.ts +2 -0
- package/dist/memory/storage.d.ts.map +1 -1
- package/dist/memory/storage.js +56 -32
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/vector-store.d.ts +23 -3
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +107 -37
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/print-ui/launch.d.ts +44 -2
- package/dist/print-ui/launch.d.ts.map +1 -1
- package/dist/print-ui/launch.js +12 -0
- package/dist/print-ui/launch.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts +3 -1
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +12 -1
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +7 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +12 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts +4 -1
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +16 -0
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/ui-events.d.ts +29 -2
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js +34 -0
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/services/concurrent-sessions.d.ts.map +1 -1
- package/dist/services/concurrent-sessions.js +6 -7
- package/dist/services/concurrent-sessions.js.map +1 -1
- package/dist/services/config-dir.d.ts +29 -6
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +118 -17
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts +9 -2
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +22 -7
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +140 -4
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/format.d.ts +2 -0
- package/dist/services/format.d.ts.map +1 -0
- package/dist/services/format.js +20 -0
- package/dist/services/format.js.map +1 -0
- package/dist/services/global-config.d.ts +3 -3
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +42 -89
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts +53 -0
- package/dist/services/storage-maintenance.d.ts.map +1 -0
- package/dist/services/storage-maintenance.js +369 -0
- package/dist/services/storage-maintenance.js.map +1 -0
- package/dist/terminal-ui/launch.d.ts +30 -2
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +6 -14
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/tools/index.js +9 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tui-ui/launch.d.ts +2 -2
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +2 -0
- package/dist/tui-ui/launch.js.map +1 -1
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +2 -13
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/state.d.ts +13 -1
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +13 -0
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/ui/command-panel.d.ts +1 -1
- package/dist/ui/command-panel.d.ts.map +1 -1
- package/dist/ui/command-panel.js +37 -34
- package/dist/ui/command-panel.js.map +1 -1
- package/dist/ui/file-completion.d.ts +1 -1
- package/dist/ui/file-completion.d.ts.map +1 -1
- package/dist/ui/file-completion.js +4 -4
- package/dist/ui/file-completion.js.map +1 -1
- package/dist/ui/shared/command-palette.d.ts +3 -0
- package/dist/ui/shared/command-palette.d.ts.map +1 -0
- package/dist/ui/shared/command-palette.js +54 -0
- package/dist/ui/shared/command-palette.js.map +1 -0
- package/dist/ui/shared/command-suggestions.d.ts +19 -0
- package/dist/ui/shared/command-suggestions.d.ts.map +1 -0
- package/dist/ui/shared/command-suggestions.js +67 -0
- package/dist/ui/shared/command-suggestions.js.map +1 -0
- package/dist/ui/shared/input-frame.d.ts +19 -0
- package/dist/ui/shared/input-frame.d.ts.map +1 -0
- package/dist/ui/shared/input-frame.js +74 -0
- package/dist/ui/shared/input-frame.js.map +1 -0
- package/dist/ui/shared/text.d.ts +5 -0
- package/dist/ui/shared/text.d.ts.map +1 -0
- package/dist/ui/shared/text.js +55 -0
- package/dist/ui/shared/text.js.map +1 -0
- package/dist/ui/shared/types.d.ts +27 -0
- package/dist/ui/shared/types.d.ts.map +1 -0
- package/dist/ui/shared/types.js +3 -0
- package/dist/ui/shared/types.js.map +1 -0
- package/dist/ui/user-input.js +2 -2
- package/dist/ui/user-input.js.map +1 -1
- package/dist/ui-v2/components/command-palette.d.ts +1 -5
- package/dist/ui-v2/components/command-palette.d.ts.map +1 -1
- package/dist/ui-v2/components/command-palette.js +15 -54
- package/dist/ui-v2/components/command-palette.js.map +1 -1
- package/dist/ui-v2/components/shell.d.ts +1 -14
- package/dist/ui-v2/components/shell.d.ts.map +1 -1
- package/dist/ui-v2/components/shell.js +4 -55
- package/dist/ui-v2/components/shell.js.map +1 -1
- package/dist/ui-v2/runtime/text.d.ts +1 -7
- package/dist/ui-v2/runtime/text.d.ts.map +1 -1
- package/dist/ui-v2/runtime/text.js +15 -55
- package/dist/ui-v2/runtime/text.js.map +1 -1
- package/dist/ui-v2/state/sessions.d.ts +1 -1
- package/dist/ui-v2/state/sessions.d.ts.map +1 -1
- package/dist/ui-v2/state/sessions.js +5 -18
- package/dist/ui-v2/state/sessions.js.map +1 -1
- package/dist/ui-v2/state/suggestions.d.ts +1 -21
- package/dist/ui-v2/state/suggestions.d.ts.map +1 -1
- package/dist/ui-v2/state/suggestions.js +15 -67
- package/dist/ui-v2/state/suggestions.js.map +1 -1
- package/dist/ui-v2/types.d.ts +1 -32
- package/dist/ui-v2/types.d.ts.map +1 -1
- package/dist/ui-v2/types.js +15 -6
- package/dist/ui-v2/types.js.map +1 -1
- package/package.json +4 -1
package/dist/memory/storage.js
CHANGED
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.MAX_ENTRYPOINT_BYTES = exports.MAX_ENTRYPOINT_LINES = exports.ENTRYPOINT_NAME = exports.MEMORY_SUBDIR = exports.PROJECTS_SUBDIR = void 0;
|
|
13
13
|
exports.getProjectHash = getProjectHash;
|
|
14
14
|
exports.getMemoryDir = getMemoryDir;
|
|
15
|
+
exports.getLegacyMemoryDir = getLegacyMemoryDir;
|
|
15
16
|
exports.getEntrypointPath = getEntrypointPath;
|
|
16
17
|
exports.ensureMemoryDir = ensureMemoryDir;
|
|
17
18
|
exports.parseMemoryFrontmatter = parseMemoryFrontmatter;
|
|
@@ -65,11 +66,14 @@ function getProjectHash(projectPath) {
|
|
|
65
66
|
function getMemoryDir(projectPath) {
|
|
66
67
|
const configHome = (0, config_dir_1.getConfigHome)();
|
|
67
68
|
if (projectPath) {
|
|
68
|
-
|
|
69
|
-
return (0, path_1.join)(configHome, exports.PROJECTS_SUBDIR, hash, exports.MEMORY_SUBDIR);
|
|
69
|
+
return (0, config_dir_1.getProjectMemoryDir)(projectPath);
|
|
70
70
|
}
|
|
71
71
|
return (0, path_1.join)(configHome, exports.MEMORY_SUBDIR);
|
|
72
72
|
}
|
|
73
|
+
/** Legacy hash-based memory directory kept as a read fallback. */
|
|
74
|
+
function getLegacyMemoryDir(projectPath) {
|
|
75
|
+
return (0, config_dir_1.getLegacyProjectMemoryDir)(projectPath);
|
|
76
|
+
}
|
|
73
77
|
/**
|
|
74
78
|
* Get MEMORY.md path for a project.
|
|
75
79
|
*/
|
|
@@ -82,7 +86,7 @@ function getEntrypointPath(projectPath) {
|
|
|
82
86
|
function ensureMemoryDir(projectPath) {
|
|
83
87
|
const dir = getMemoryDir(projectPath);
|
|
84
88
|
if (!(0, fs_1.existsSync)(dir)) {
|
|
85
|
-
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
89
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
|
|
86
90
|
}
|
|
87
91
|
return dir;
|
|
88
92
|
}
|
|
@@ -135,9 +139,16 @@ ${entry.content}`;
|
|
|
135
139
|
* @param projectPath - Project path (defaults to cwd)
|
|
136
140
|
*/
|
|
137
141
|
function loadAllMemories(projectPath) {
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
const dirs = projectPath
|
|
143
|
+
? [getMemoryDir(projectPath), getLegacyMemoryDir(projectPath)]
|
|
144
|
+
: [ensureMemoryDir(projectPath)];
|
|
145
|
+
const memoriesByName = new Map();
|
|
146
|
+
for (const dir of dirs) {
|
|
147
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
148
|
+
if (!projectPath)
|
|
149
|
+
ensureMemoryDir(projectPath);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
141
152
|
const files = (0, fs_1.readdirSync)(dir);
|
|
142
153
|
for (const file of files) {
|
|
143
154
|
if (!file.endsWith('.md') || file === exports.ENTRYPOINT_NAME)
|
|
@@ -148,7 +159,10 @@ function loadAllMemories(projectPath) {
|
|
|
148
159
|
const entry = parseMemoryFrontmatter(content);
|
|
149
160
|
if (entry) {
|
|
150
161
|
entry.name = (0, path_1.basename)(file, '.md');
|
|
151
|
-
|
|
162
|
+
// Canonical dir is first; keep it when legacy contains the same name.
|
|
163
|
+
if (!memoriesByName.has(entry.name)) {
|
|
164
|
+
memoriesByName.set(entry.name, entry);
|
|
165
|
+
}
|
|
152
166
|
}
|
|
153
167
|
}
|
|
154
168
|
catch {
|
|
@@ -156,38 +170,44 @@ function loadAllMemories(projectPath) {
|
|
|
156
170
|
}
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
|
-
|
|
160
|
-
// Directory doesn't exist or unreadable
|
|
161
|
-
}
|
|
162
|
-
return memories;
|
|
173
|
+
return Array.from(memoriesByName.values());
|
|
163
174
|
}
|
|
164
175
|
/**
|
|
165
176
|
* Load MEMORY.md index for a project.
|
|
166
177
|
*/
|
|
167
178
|
function loadMemoryIndex(projectPath) {
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
179
|
+
const paths = projectPath
|
|
180
|
+
? [getEntrypointPath(projectPath), (0, path_1.join)(getLegacyMemoryDir(projectPath), exports.ENTRYPOINT_NAME)]
|
|
181
|
+
: [getEntrypointPath(projectPath)];
|
|
182
|
+
for (const path of paths) {
|
|
183
|
+
if (!(0, fs_1.existsSync)(path))
|
|
184
|
+
continue;
|
|
185
|
+
return (0, fs_1.readFileSync)(path, 'utf-8');
|
|
186
|
+
}
|
|
187
|
+
return '';
|
|
172
188
|
}
|
|
173
189
|
/**
|
|
174
190
|
* Load specific memory by name from a project.
|
|
175
191
|
*/
|
|
176
192
|
function loadMemory(name, projectPath) {
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
193
|
+
const dirs = projectPath
|
|
194
|
+
? [getMemoryDir(projectPath), getLegacyMemoryDir(projectPath)]
|
|
195
|
+
: [getMemoryDir(projectPath)];
|
|
196
|
+
for (const dir of dirs) {
|
|
197
|
+
const filePath = (0, path_1.join)(dir, `${name}.md`);
|
|
198
|
+
if (!(0, fs_1.existsSync)(filePath))
|
|
199
|
+
continue;
|
|
200
|
+
try {
|
|
201
|
+
const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
202
|
+
const entry = parseMemoryFrontmatter(content);
|
|
203
|
+
if (entry) {
|
|
204
|
+
entry.name = name;
|
|
205
|
+
return entry;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// File unreadable
|
|
187
210
|
}
|
|
188
|
-
}
|
|
189
|
-
catch {
|
|
190
|
-
// File unreadable
|
|
191
211
|
}
|
|
192
212
|
return null;
|
|
193
213
|
}
|
|
@@ -214,11 +234,15 @@ function saveMemory(entry, projectPath) {
|
|
|
214
234
|
* Hard-deletes the file so `memory_recall` no longer returns it.
|
|
215
235
|
*/
|
|
216
236
|
function deleteMemory(name, projectPath) {
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
237
|
+
const dirs = projectPath
|
|
238
|
+
? [getMemoryDir(projectPath), getLegacyMemoryDir(projectPath)]
|
|
239
|
+
: [getMemoryDir(projectPath)];
|
|
240
|
+
const canonicalPath = (0, path_1.join)(dirs[0], `${name}.md`);
|
|
241
|
+
const legacyPath = dirs[1] ? (0, path_1.join)(dirs[1], `${name}.md`) : undefined;
|
|
242
|
+
const deletePath = (0, fs_1.existsSync)(canonicalPath) ? canonicalPath : legacyPath;
|
|
243
|
+
if (deletePath && (0, fs_1.existsSync)(deletePath)) {
|
|
220
244
|
try {
|
|
221
|
-
(0, fs_1.unlinkSync)(
|
|
245
|
+
(0, fs_1.unlinkSync)(deletePath);
|
|
222
246
|
}
|
|
223
247
|
catch {
|
|
224
248
|
// ignore — index regeneration below will reflect whatever is on disk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA+BH,wCAEC;AAgBD,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,14 @@ export interface VectorStoreConfig {
|
|
|
18
18
|
dbPath?: string;
|
|
19
19
|
embeddingConfig?: EmbeddingConfig;
|
|
20
20
|
}
|
|
21
|
+
export interface VectorProjectStats {
|
|
22
|
+
project: string;
|
|
23
|
+
rows: number;
|
|
24
|
+
}
|
|
25
|
+
export interface VectorCleanupResult {
|
|
26
|
+
orphanProjects: string[];
|
|
27
|
+
deletedRows: number;
|
|
28
|
+
}
|
|
21
29
|
export declare class VectorStore {
|
|
22
30
|
private db;
|
|
23
31
|
private embeddingService;
|
|
@@ -30,7 +38,7 @@ export declare class VectorStore {
|
|
|
30
38
|
/** Insert or update memory with embedding - Issue #32 #3.3: 使用事务 */
|
|
31
39
|
upsert(entry: MemoryEntry, projectPath?: string): Promise<void>;
|
|
32
40
|
/** Delete memory */
|
|
33
|
-
delete(name: string): void;
|
|
41
|
+
delete(name: string, projectPath?: string): void;
|
|
34
42
|
/** Search by similarity */
|
|
35
43
|
search(query: string, limit?: number, projectPath?: string): Promise<SearchResult[]>;
|
|
36
44
|
/** Semantic search using vectors */
|
|
@@ -39,8 +47,20 @@ export declare class VectorStore {
|
|
|
39
47
|
private textSearch;
|
|
40
48
|
/** Get all memories for a project */
|
|
41
49
|
getAll(projectPath?: string): SearchResult[];
|
|
42
|
-
/**
|
|
43
|
-
|
|
50
|
+
/** Count rows by project key for storage maintenance diagnostics. */
|
|
51
|
+
getProjectStats(): VectorProjectStats[];
|
|
52
|
+
/** Delete all rows for projects that are not in validProjectKeys. */
|
|
53
|
+
cleanupOrphanProjects(validProjectKeys: string[]): VectorCleanupResult;
|
|
54
|
+
private deleteProjectRows;
|
|
55
|
+
private deleteMemoryIds;
|
|
56
|
+
private deleteVectorsForMemoryIds;
|
|
57
|
+
/** Canonical project key used by v0.2.8+ storage. */
|
|
58
|
+
private projectKey;
|
|
59
|
+
/** Legacy hash project key used by older memory/vector storage. */
|
|
60
|
+
private legacyProjectKey;
|
|
61
|
+
private projectKeys;
|
|
62
|
+
private memoryId;
|
|
63
|
+
private hasTable;
|
|
44
64
|
/** Close database */
|
|
45
65
|
close(): void;
|
|
46
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../src/memory/vector-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../src/memory/vector-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOvD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,CAAC,EAAE,iBAAiB;IAoBtC,iCAAiC;IACjC,OAAO,CAAC,UAAU;IAiDlB,0CAA0C;IAC1C,uBAAuB,IAAI,OAAO;IAIlC,oEAAoE;IAC9D,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFrE,oBAAoB;IACpB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBhD,2BAA2B;IACrB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAY9F,oCAAoC;YACtB,cAAc;IAiD5B,2BAA2B;IAC3B,OAAO,CAAC,UAAU;IAmClB,qCAAqC;IACrC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAuB5C,qEAAqE;IACrE,eAAe,IAAI,kBAAkB,EAAE;IAWvC,qEAAqE;IACrE,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,mBAAmB;IActE,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,yBAAyB;IAQjC,qDAAqD;IACrD,OAAO,CAAC,UAAU;IAIlB,mEAAmE;IACnE,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAKhB,qBAAqB;IACrB,KAAK,IAAI,IAAI;CAGd;AAQD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAKtE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
|
|
@@ -16,6 +16,7 @@ const path_1 = require("path");
|
|
|
16
16
|
const fs_1 = require("fs");
|
|
17
17
|
const crypto_1 = require("crypto"); // Issue #32 #3.4: 用于 hashProject
|
|
18
18
|
const embeddings_1 = require("./embeddings");
|
|
19
|
+
const config_dir_1 = require("../services/config-dir");
|
|
19
20
|
// ============================================================================
|
|
20
21
|
// Vector Store
|
|
21
22
|
// ============================================================================
|
|
@@ -23,8 +24,7 @@ class VectorStore {
|
|
|
23
24
|
constructor(config) {
|
|
24
25
|
this.initialized = false;
|
|
25
26
|
// Determine database path
|
|
26
|
-
const
|
|
27
|
-
const dbPath = config?.dbPath || (0, path_1.join)(configHome, 'vector.db');
|
|
27
|
+
const dbPath = config?.dbPath || (0, path_1.join)((0, config_dir_1.getConfigHome)(), 'vector.db');
|
|
28
28
|
// Ensure directory exists
|
|
29
29
|
const dbDir = (0, path_1.join)(dbPath, '..');
|
|
30
30
|
if (!(0, fs_1.existsSync)(dbDir)) {
|
|
@@ -89,7 +89,8 @@ class VectorStore {
|
|
|
89
89
|
}
|
|
90
90
|
/** Insert or update memory with embedding - Issue #32 #3.3: 使用事务 */
|
|
91
91
|
async upsert(entry, projectPath) {
|
|
92
|
-
const
|
|
92
|
+
const projectKey = projectPath ? this.projectKey(projectPath) : 'global';
|
|
93
|
+
const memoryId = this.memoryId(projectKey, entry.name);
|
|
93
94
|
// Issue #32 #3.3: 使用事务确保 embed 失败时不写 memories 表
|
|
94
95
|
const upsertTransaction = this.db.transaction((data) => {
|
|
95
96
|
// Insert/update memory record
|
|
@@ -97,7 +98,7 @@ class VectorStore {
|
|
|
97
98
|
INSERT OR REPLACE INTO memories (id, name, type, content, description, project, created_at, updated_at)
|
|
98
99
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
99
100
|
`);
|
|
100
|
-
stmt.run(data.
|
|
101
|
+
stmt.run(data.id, data.name, data.type, data.content, data.description, data.projectKey, data.createdAt, data.updatedAt);
|
|
101
102
|
});
|
|
102
103
|
// Generate embedding first (before transaction)
|
|
103
104
|
if (this.initialized) {
|
|
@@ -105,22 +106,22 @@ class VectorStore {
|
|
|
105
106
|
const vector = await this.embeddingService.embed(entry.content);
|
|
106
107
|
// Now execute transaction with the data
|
|
107
108
|
upsertTransaction({
|
|
109
|
+
id: memoryId,
|
|
108
110
|
name: entry.name,
|
|
109
111
|
type: entry.type,
|
|
110
112
|
content: entry.content,
|
|
111
113
|
description: entry.description || entry.content.slice(0, 100),
|
|
112
|
-
|
|
114
|
+
projectKey,
|
|
113
115
|
createdAt: entry.createdAt,
|
|
114
116
|
updatedAt: entry.updatedAt,
|
|
115
117
|
});
|
|
116
118
|
// Delete old vector if exists
|
|
117
|
-
this.
|
|
118
|
-
this.db.prepare('DELETE FROM vec_memories WHERE rowid IN (SELECT vector_rowid FROM memory_vectors WHERE memory_id = ?)').run(entry.name);
|
|
119
|
+
this.deleteVectorsForMemoryIds([memoryId]);
|
|
119
120
|
// Insert new vector
|
|
120
121
|
const vectorStmt = this.db.prepare(`INSERT INTO vec_memories (embedding) VALUES (?)`);
|
|
121
122
|
const result = vectorStmt.run(JSON.stringify(vector));
|
|
122
123
|
// Link vector to memory
|
|
123
|
-
this.db.prepare('INSERT INTO memory_vectors (memory_id, vector_rowid) VALUES (?, ?)').run(
|
|
124
|
+
this.db.prepare('INSERT INTO memory_vectors (memory_id, vector_rowid) VALUES (?, ?)').run(memoryId, result.lastInsertRowid);
|
|
124
125
|
}
|
|
125
126
|
catch (err) {
|
|
126
127
|
console.warn(`[VectorStore] Failed to store embedding: ${err.message}`);
|
|
@@ -131,49 +132,58 @@ class VectorStore {
|
|
|
131
132
|
else {
|
|
132
133
|
// No vector search - just write memory
|
|
133
134
|
upsertTransaction({
|
|
135
|
+
id: memoryId,
|
|
134
136
|
name: entry.name,
|
|
135
137
|
type: entry.type,
|
|
136
138
|
content: entry.content,
|
|
137
139
|
description: entry.description || entry.content.slice(0, 100),
|
|
138
|
-
|
|
140
|
+
projectKey,
|
|
139
141
|
createdAt: entry.createdAt,
|
|
140
142
|
updatedAt: entry.updatedAt,
|
|
141
143
|
});
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
146
|
/** Delete memory */
|
|
145
|
-
delete(name) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this.db.prepare('DELETE FROM memory_vectors WHERE memory_id = ?').run(name);
|
|
147
|
+
delete(name, projectPath) {
|
|
148
|
+
if (!projectPath) {
|
|
149
|
+
this.deleteMemoryIds([name]);
|
|
150
|
+
return;
|
|
150
151
|
}
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
const projectKeys = this.projectKeys(projectPath);
|
|
153
|
+
const scopedIds = projectKeys.map(projectKey => this.memoryId(projectKey, name));
|
|
154
|
+
const idPlaceholders = scopedIds.map(() => '?').join(', ');
|
|
155
|
+
const projectPlaceholders = projectKeys.map(() => '?').join(', ');
|
|
156
|
+
const rows = this.db.prepare(`
|
|
157
|
+
SELECT id FROM memories
|
|
158
|
+
WHERE id IN (${idPlaceholders})
|
|
159
|
+
OR (id = ? AND project IN (${projectPlaceholders}))
|
|
160
|
+
`).all(...scopedIds, name, ...projectKeys);
|
|
161
|
+
this.deleteMemoryIds(rows.map(row => row.id));
|
|
153
162
|
}
|
|
154
163
|
/** Search by similarity */
|
|
155
164
|
async search(query, limit = 10, projectPath) {
|
|
156
|
-
const
|
|
165
|
+
const projectKeys = projectPath ? this.projectKeys(projectPath) : undefined;
|
|
157
166
|
// If vector search available, use semantic search
|
|
158
167
|
if (this.initialized) {
|
|
159
|
-
return this.semanticSearch(query, limit,
|
|
168
|
+
return this.semanticSearch(query, limit, projectKeys);
|
|
160
169
|
}
|
|
161
170
|
// Otherwise fall back to text search
|
|
162
|
-
return this.textSearch(query, limit,
|
|
171
|
+
return this.textSearch(query, limit, projectKeys);
|
|
163
172
|
}
|
|
164
173
|
/** Semantic search using vectors */
|
|
165
|
-
async semanticSearch(query, limit,
|
|
174
|
+
async semanticSearch(query, limit, projectKeys) {
|
|
166
175
|
try {
|
|
167
176
|
const queryVector = await this.embeddingService.embed(query);
|
|
177
|
+
const projectPlaceholders = projectKeys?.map(() => '?').join(', ');
|
|
168
178
|
// Use sqlite-vec for similarity search
|
|
169
|
-
const sql =
|
|
179
|
+
const sql = projectKeys
|
|
170
180
|
? `
|
|
171
181
|
SELECT m.id, m.name, m.type, m.content, m.description, m.created_at,
|
|
172
182
|
vec_distance_cosine(v.embedding, ?) as distance
|
|
173
183
|
FROM memories m
|
|
174
184
|
JOIN memory_vectors mv ON m.id = mv.memory_id
|
|
175
185
|
JOIN vec_memories v ON mv.vector_rowid = v.rowid
|
|
176
|
-
WHERE m.project
|
|
186
|
+
WHERE m.project IN (${projectPlaceholders})
|
|
177
187
|
ORDER BY distance ASC
|
|
178
188
|
LIMIT ?
|
|
179
189
|
`
|
|
@@ -187,8 +197,8 @@ class VectorStore {
|
|
|
187
197
|
LIMIT ?
|
|
188
198
|
`;
|
|
189
199
|
const stmt = this.db.prepare(sql);
|
|
190
|
-
const params =
|
|
191
|
-
? [JSON.stringify(queryVector),
|
|
200
|
+
const params = projectKeys
|
|
201
|
+
? [JSON.stringify(queryVector), ...projectKeys, limit]
|
|
192
202
|
: [JSON.stringify(queryVector), limit];
|
|
193
203
|
const rows = stmt.all(...params);
|
|
194
204
|
return rows.map(row => ({
|
|
@@ -203,16 +213,17 @@ class VectorStore {
|
|
|
203
213
|
}
|
|
204
214
|
catch (err) {
|
|
205
215
|
console.warn(`[VectorStore] Semantic search failed: ${err.message}`);
|
|
206
|
-
return this.textSearch(query, limit,
|
|
216
|
+
return this.textSearch(query, limit, projectKeys);
|
|
207
217
|
}
|
|
208
218
|
}
|
|
209
219
|
/** Text search fallback */
|
|
210
|
-
textSearch(query, limit,
|
|
211
|
-
const
|
|
220
|
+
textSearch(query, limit, projectKeys) {
|
|
221
|
+
const projectPlaceholders = projectKeys?.map(() => '?').join(', ');
|
|
222
|
+
const sql = projectKeys
|
|
212
223
|
? `
|
|
213
224
|
SELECT id, name, type, content, description, created_at
|
|
214
225
|
FROM memories
|
|
215
|
-
WHERE project
|
|
226
|
+
WHERE project IN (${projectPlaceholders}) AND (content LIKE ? OR name LIKE ? OR description LIKE ?)
|
|
216
227
|
LIMIT ?
|
|
217
228
|
`
|
|
218
229
|
: `
|
|
@@ -223,8 +234,8 @@ class VectorStore {
|
|
|
223
234
|
`;
|
|
224
235
|
const searchTerm = `%${query}%`;
|
|
225
236
|
const stmt = this.db.prepare(sql);
|
|
226
|
-
const params =
|
|
227
|
-
? [
|
|
237
|
+
const params = projectKeys
|
|
238
|
+
? [...projectKeys, searchTerm, searchTerm, searchTerm, limit]
|
|
228
239
|
: [searchTerm, searchTerm, searchTerm, limit];
|
|
229
240
|
const rows = stmt.all(...params);
|
|
230
241
|
return rows.map(row => ({
|
|
@@ -239,12 +250,13 @@ class VectorStore {
|
|
|
239
250
|
}
|
|
240
251
|
/** Get all memories for a project */
|
|
241
252
|
getAll(projectPath) {
|
|
242
|
-
const
|
|
243
|
-
const
|
|
244
|
-
|
|
253
|
+
const projectKeys = projectPath ? this.projectKeys(projectPath) : undefined;
|
|
254
|
+
const projectPlaceholders = projectKeys?.map(() => '?').join(', ');
|
|
255
|
+
const sql = projectKeys
|
|
256
|
+
? `SELECT id, name, type, content, description, created_at FROM memories WHERE project IN (${projectPlaceholders})`
|
|
245
257
|
: 'SELECT id, name, type, content, description, created_at FROM memories';
|
|
246
258
|
const stmt = this.db.prepare(sql);
|
|
247
|
-
const params =
|
|
259
|
+
const params = projectKeys ?? [];
|
|
248
260
|
const rows = stmt.all(...params);
|
|
249
261
|
return rows.map(row => ({
|
|
250
262
|
id: row.id,
|
|
@@ -256,11 +268,69 @@ class VectorStore {
|
|
|
256
268
|
createdAt: row.created_at,
|
|
257
269
|
}));
|
|
258
270
|
}
|
|
259
|
-
/**
|
|
260
|
-
|
|
261
|
-
|
|
271
|
+
/** Count rows by project key for storage maintenance diagnostics. */
|
|
272
|
+
getProjectStats() {
|
|
273
|
+
const rows = this.db.prepare(`
|
|
274
|
+
SELECT COALESCE(project, 'global') as project, COUNT(*) as rows
|
|
275
|
+
FROM memories
|
|
276
|
+
GROUP BY COALESCE(project, 'global')
|
|
277
|
+
ORDER BY rows DESC, project ASC
|
|
278
|
+
`).all();
|
|
279
|
+
return rows.map(row => ({ project: row.project, rows: row.rows }));
|
|
280
|
+
}
|
|
281
|
+
/** Delete all rows for projects that are not in validProjectKeys. */
|
|
282
|
+
cleanupOrphanProjects(validProjectKeys) {
|
|
283
|
+
const valid = new Set([...validProjectKeys, 'global']);
|
|
284
|
+
const orphanProjects = this.getProjectStats()
|
|
285
|
+
.map(stat => stat.project)
|
|
286
|
+
.filter(project => !valid.has(project));
|
|
287
|
+
let deletedRows = 0;
|
|
288
|
+
for (const project of orphanProjects) {
|
|
289
|
+
deletedRows += this.deleteProjectRows(project);
|
|
290
|
+
}
|
|
291
|
+
return { orphanProjects, deletedRows };
|
|
292
|
+
}
|
|
293
|
+
deleteProjectRows(project) {
|
|
294
|
+
const ids = this.db.prepare('SELECT id FROM memories WHERE project = ?').all(project)
|
|
295
|
+
.map(row => row.id);
|
|
296
|
+
if (ids.length === 0)
|
|
297
|
+
return 0;
|
|
298
|
+
this.deleteMemoryIds(ids);
|
|
299
|
+
return ids.length;
|
|
300
|
+
}
|
|
301
|
+
deleteMemoryIds(ids) {
|
|
302
|
+
const uniqueIds = [...new Set(ids)];
|
|
303
|
+
if (uniqueIds.length === 0)
|
|
304
|
+
return;
|
|
305
|
+
this.deleteVectorsForMemoryIds(uniqueIds);
|
|
306
|
+
const placeholders = uniqueIds.map(() => '?').join(', ');
|
|
307
|
+
this.db.prepare(`DELETE FROM memories WHERE id IN (${placeholders})`).run(...uniqueIds);
|
|
308
|
+
}
|
|
309
|
+
deleteVectorsForMemoryIds(ids) {
|
|
310
|
+
if (!this.hasTable('memory_vectors') || !this.hasTable('vec_memories') || ids.length === 0)
|
|
311
|
+
return;
|
|
312
|
+
const placeholders = ids.map(() => '?').join(', ');
|
|
313
|
+
this.db.prepare(`DELETE FROM vec_memories WHERE rowid IN (SELECT vector_rowid FROM memory_vectors WHERE memory_id IN (${placeholders}))`).run(...ids);
|
|
314
|
+
this.db.prepare(`DELETE FROM memory_vectors WHERE memory_id IN (${placeholders})`).run(...ids);
|
|
315
|
+
}
|
|
316
|
+
/** Canonical project key used by v0.2.8+ storage. */
|
|
317
|
+
projectKey(projectPath) {
|
|
318
|
+
return (0, config_dir_1.getCanonicalProjectKey)(projectPath);
|
|
319
|
+
}
|
|
320
|
+
/** Legacy hash project key used by older memory/vector storage. */
|
|
321
|
+
legacyProjectKey(projectPath) {
|
|
262
322
|
return (0, crypto_1.createHash)('sha256').update(projectPath).digest('hex').slice(0, 16);
|
|
263
323
|
}
|
|
324
|
+
projectKeys(projectPath) {
|
|
325
|
+
return [...new Set([this.projectKey(projectPath), this.legacyProjectKey(projectPath)])];
|
|
326
|
+
}
|
|
327
|
+
memoryId(projectKey, name) {
|
|
328
|
+
return projectKey === 'global' ? name : `${projectKey}:${name}`;
|
|
329
|
+
}
|
|
330
|
+
hasTable(name) {
|
|
331
|
+
const row = this.db.prepare("SELECT name FROM sqlite_master WHERE name = ?").get(name);
|
|
332
|
+
return !!row;
|
|
333
|
+
}
|
|
264
334
|
/** Close database */
|
|
265
335
|
close() {
|
|
266
336
|
this.db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../src/memory/vector-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../src/memory/vector-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,50 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EditPreviewRequest, OpenHorseUiRuntime, RuntimeToolFinishedEvent, RuntimeToolStartedEvent, SessionPickerRequest, ToolPermissionRequest, TranscriptAppendEntry, TranscriptEntry, UiEventSink } from '../runtime/ui-events';
|
|
2
2
|
export type PrintOutputFormat = 'text' | 'json';
|
|
3
3
|
export interface PrintModeOptions {
|
|
4
4
|
outputFormat?: PrintOutputFormat;
|
|
5
5
|
}
|
|
6
|
+
export interface PrintModeResult {
|
|
7
|
+
content: string;
|
|
8
|
+
entries: TranscriptEntry[];
|
|
9
|
+
toolEvents: PrintRuntimeToolEvent[];
|
|
10
|
+
statuses: string[];
|
|
11
|
+
errors: string[];
|
|
12
|
+
sessionId: string | null;
|
|
13
|
+
model: string;
|
|
14
|
+
}
|
|
15
|
+
export type PrintRuntimeToolEvent = ({
|
|
16
|
+
type: 'started';
|
|
17
|
+
} & RuntimeToolStartedEvent) | ({
|
|
18
|
+
type: 'finished';
|
|
19
|
+
} & RuntimeToolFinishedEvent);
|
|
20
|
+
export declare class PrintEventSink implements UiEventSink {
|
|
21
|
+
private readonly runtime;
|
|
22
|
+
private readonly outputFormat;
|
|
23
|
+
private readonly entries;
|
|
24
|
+
private readonly printedContent;
|
|
25
|
+
private readonly toolEvents;
|
|
26
|
+
private readonly statuses;
|
|
27
|
+
private readonly errors;
|
|
28
|
+
private idCounter;
|
|
29
|
+
constructor(runtime: OpenHorseUiRuntime, outputFormat: PrintOutputFormat);
|
|
30
|
+
append(entry: TranscriptAppendEntry): string;
|
|
31
|
+
update(id: string, patch: Partial<Omit<TranscriptEntry, 'id'>>): void;
|
|
32
|
+
finalize(id: string, patch?: Partial<Omit<TranscriptEntry, 'id'>>): void;
|
|
33
|
+
remove(id: string): void;
|
|
34
|
+
replaceTranscript(entries: TranscriptEntry[]): void;
|
|
35
|
+
clearTranscript(): void;
|
|
36
|
+
setStatus(message: string): void;
|
|
37
|
+
showSessionPicker(request: SessionPickerRequest): void;
|
|
38
|
+
showEditPreview(_request: EditPreviewRequest): void;
|
|
39
|
+
showPermissionRequest(request: ToolPermissionRequest): void;
|
|
40
|
+
toolStarted(event: RuntimeToolStartedEvent): void;
|
|
41
|
+
toolFinished(event: RuntimeToolFinishedEvent): void;
|
|
42
|
+
setProcessing(_processing: boolean): void;
|
|
43
|
+
result(): PrintModeResult;
|
|
44
|
+
hasErrors(): boolean;
|
|
45
|
+
private printEntry;
|
|
46
|
+
private printAssistantDelta;
|
|
47
|
+
}
|
|
6
48
|
export declare function readPromptFromStdinIfAvailable(stdin?: NodeJS.ReadStream): Promise<string>;
|
|
7
|
-
export declare function launchPrintMode(runtime:
|
|
49
|
+
export declare function launchPrintMode(runtime: OpenHorseUiRuntime, input: string, options?: PrintModeOptions): Promise<number>;
|
|
8
50
|
//# sourceMappingURL=launch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/print-ui/launch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/print-ui/launch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAC7B,CAAC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,uBAAuB,CAAC,GAC/C,CAAC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,wBAAwB,CAAC,CAAC;AAWtD,qBAAa,cAAe,YAAW,WAAW;IAS9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAT/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAK;gBAGH,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,iBAAiB;IAGlD,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAa5C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAQrE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAQxE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI;IAQnD,eAAe,IAAI,IAAI;IAKvB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhC,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAQtD,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAQnD,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQ3D,WAAW,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAIjD,YAAY,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAInD,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAIzC,MAAM,IAAI,eAAe;IAoBzB,SAAS,IAAI,OAAO;IAIpB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,mBAAmB;CAiB5B;AAED,wBAAsB,8BAA8B,CAAC,KAAK,GAAE,MAAM,CAAC,UAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAS9G;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
|