@pcircle/memesh 4.0.1 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.de.md +56 -201
  2. package/README.es.md +56 -201
  3. package/README.fr.md +56 -201
  4. package/README.ja.md +55 -200
  5. package/README.ko.md +56 -201
  6. package/README.md +36 -30
  7. package/README.pt.md +56 -201
  8. package/README.th.md +56 -201
  9. package/README.vi.md +56 -201
  10. package/README.zh-CN.md +56 -201
  11. package/README.zh-TW.md +56 -201
  12. package/dashboard/dist/index.html +4 -4
  13. package/dist/core/config.d.ts.map +1 -1
  14. package/dist/core/config.js +17 -7
  15. package/dist/core/config.js.map +1 -1
  16. package/dist/core/embedder.d.ts +2 -0
  17. package/dist/core/embedder.d.ts.map +1 -1
  18. package/dist/core/embedder.js +51 -8
  19. package/dist/core/embedder.js.map +1 -1
  20. package/dist/core/install-channel.d.ts +30 -0
  21. package/dist/core/install-channel.d.ts.map +1 -0
  22. package/dist/core/install-channel.js +83 -0
  23. package/dist/core/install-channel.js.map +1 -0
  24. package/dist/core/operations.d.ts.map +1 -1
  25. package/dist/core/operations.js +26 -8
  26. package/dist/core/operations.js.map +1 -1
  27. package/dist/core/serializer.d.ts.map +1 -1
  28. package/dist/core/serializer.js +24 -0
  29. package/dist/core/serializer.js.map +1 -1
  30. package/dist/core/updater.d.ts +11 -0
  31. package/dist/core/updater.d.ts.map +1 -0
  32. package/dist/core/updater.js +28 -0
  33. package/dist/core/updater.js.map +1 -0
  34. package/dist/core/version-check.d.ts +28 -4
  35. package/dist/core/version-check.d.ts.map +1 -1
  36. package/dist/core/version-check.js +167 -21
  37. package/dist/core/version-check.js.map +1 -1
  38. package/dist/knowledge-graph.d.ts +3 -0
  39. package/dist/knowledge-graph.d.ts.map +1 -1
  40. package/dist/knowledge-graph.js +28 -3
  41. package/dist/knowledge-graph.js.map +1 -1
  42. package/dist/transports/cli/cli.js +44 -13
  43. package/dist/transports/cli/cli.js.map +1 -1
  44. package/dist/transports/http/server.d.ts +3 -1
  45. package/dist/transports/http/server.d.ts.map +1 -1
  46. package/dist/transports/http/server.js +53 -2
  47. package/dist/transports/http/server.js.map +1 -1
  48. package/package.json +5 -6
  49. package/plugin.json +2 -2
  50. package/scripts/hooks/_shared.js +62 -0
  51. package/scripts/hooks/pre-edit-recall.js +22 -15
  52. package/scripts/hooks/session-start.js +30 -21
  53. package/scripts/hooks/session-summary.js +4 -5
  54. package/skills/memesh/SKILL.md +8 -0
@@ -0,0 +1,28 @@
1
+ import { execFileSync } from 'child_process';
2
+ function parseInstalledGlobalVersion(raw) {
3
+ const parsed = JSON.parse(raw);
4
+ return parsed.dependencies?.['@pcircle/memesh']?.version ?? null;
5
+ }
6
+ export function getInstalledGlobalVersion(options = {}) {
7
+ const { execFileSyncImpl = execFileSync } = options;
8
+ try {
9
+ const raw = execFileSyncImpl('npm', ['ls', '-g', '@pcircle/memesh', '--json', '--depth=0'], { encoding: 'utf8' });
10
+ return parseInstalledGlobalVersion(raw);
11
+ }
12
+ catch {
13
+ return null;
14
+ }
15
+ }
16
+ export function runGlobalUpdate(latestVersion, options = {}) {
17
+ const { execFileSyncImpl = execFileSync } = options;
18
+ execFileSyncImpl('npm', ['install', '-g', `@pcircle/memesh@${latestVersion}`], { stdio: 'inherit' });
19
+ const installedVersion = getInstalledGlobalVersion({ execFileSyncImpl });
20
+ if (installedVersion !== latestVersion) {
21
+ if (installedVersion) {
22
+ throw new Error(`expected ${latestVersion}, but npm reports ${installedVersion} is installed`);
23
+ }
24
+ throw new Error('npm did not report a global @pcircle/memesh installation after update');
25
+ }
26
+ return { installedVersion };
27
+ }
28
+ //# sourceMappingURL=updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/core/updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAY7C,SAAS,2BAA2B,CAAC,GAAW;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACvD,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,UAAkC,EAAE;IAEpC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,CAC1B,KAAK,EACL,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,CAAC,EACtD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;QACF,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,aAAqB,EACrB,UAAkC,EAAE;IAEpC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpD,gBAAgB,CACd,KAAK,EACL,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,aAAa,EAAE,CAAC,EACrD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzE,IAAI,gBAAgB,KAAK,aAAa,EAAE,CAAC;QACvC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,YAAY,aAAa,qBAAqB,gBAAgB,eAAe,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC9B,CAAC"}
@@ -1,10 +1,34 @@
1
- interface UpdateCheck {
1
+ import { execFile } from 'child_process';
2
+ export type UpdateCheckSource = 'fresh' | 'cache';
3
+ export type UpdateCheckFreshness = 'fresh' | 'cached' | 'stale' | 'unavailable';
4
+ export interface UpdateCheck {
2
5
  currentVersion: string;
3
6
  latestVersion: string | null;
4
- checkedAt: string;
7
+ checkedAt: string | null;
8
+ lastAttemptAt: string | null;
9
+ lastSuccessfulCheckAt: string | null;
10
+ lastError: string | null;
5
11
  updateAvailable: boolean;
12
+ checkSucceeded: boolean;
13
+ source: UpdateCheckSource;
14
+ freshness: UpdateCheckFreshness;
6
15
  }
7
- export declare function checkForUpdate(currentVersion: string): Promise<UpdateCheck>;
8
- export declare function getLastUpdateCheck(): UpdateCheck | null;
16
+ interface CheckForUpdateOptions {
17
+ execFileImpl?: typeof execFile;
18
+ now?: Date;
19
+ timeoutMs?: number;
20
+ updateCheckPath?: string;
21
+ }
22
+ interface GetUpdateCheckOptions extends CheckForUpdateOptions {
23
+ preferFresh?: boolean;
24
+ }
25
+ export declare function checkForUpdate(currentVersion: string, options?: CheckForUpdateOptions): Promise<UpdateCheck>;
26
+ export declare function getLastUpdateCheck(currentVersion: string, options?: {
27
+ updateCheckPath?: string;
28
+ now?: Date;
29
+ }): UpdateCheck | null;
30
+ export declare function getUpdateCheck(currentVersion: string, options?: GetUpdateCheckOptions): Promise<UpdateCheck | null>;
31
+ export declare function formatUpdateCheckStatus(update: UpdateCheck | null): string[];
32
+ export declare function getUpdateCheckPathForTests(): string;
9
33
  export {};
10
34
  //# sourceMappingURL=version-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAMD,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA4BjF;AAKD,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAOvD"}
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAClD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAWhF,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,oBAAoB,CAAC;CACjC;AAED,UAAU,qBAAqB;IAC7B,YAAY,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC/B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,qBAAsB,SAAQ,qBAAqB;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA6GD,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAOD,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAO,GACrD,WAAW,GAAG,IAAI,CAIpB;AAMD,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS7B;AAeD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,EAAE,CAqB5E;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
@@ -3,42 +3,188 @@ import path from 'path';
3
3
  import os from 'os';
4
4
  import { execFile } from 'child_process';
5
5
  const UPDATE_CHECK_PATH = path.join(os.homedir(), '.memesh', 'update-check.json');
6
- export async function checkForUpdate(currentVersion) {
7
- const result = {
6
+ const DEFAULT_TIMEOUT_MS = 5000;
7
+ const STALE_AFTER_MS = 24 * 60 * 60 * 1000;
8
+ const MAX_ERROR_LENGTH = 160;
9
+ function getUpdateCheckPath(updateCheckPath) {
10
+ return updateCheckPath ?? process.env.MEMESH_UPDATE_CHECK_PATH ?? UPDATE_CHECK_PATH;
11
+ }
12
+ function parseIsoDate(value) {
13
+ if (!value)
14
+ return null;
15
+ const timestamp = Date.parse(value);
16
+ return Number.isNaN(timestamp) ? null : timestamp;
17
+ }
18
+ function summarizeError(err) {
19
+ const message = err instanceof Error ? err.message : String(err);
20
+ return message.slice(0, MAX_ERROR_LENGTH);
21
+ }
22
+ function determineFreshness(source, checkSucceeded, lastSuccessfulCheckAt, now) {
23
+ if (!lastSuccessfulCheckAt)
24
+ return 'unavailable';
25
+ if (source === 'fresh' && checkSucceeded)
26
+ return 'fresh';
27
+ const successfulAt = parseIsoDate(lastSuccessfulCheckAt);
28
+ if (successfulAt === null)
29
+ return 'unavailable';
30
+ return now.getTime() - successfulAt > STALE_AFTER_MS ? 'stale' : 'cached';
31
+ }
32
+ function buildResult(currentVersion, stored, source, now) {
33
+ return {
8
34
  currentVersion,
9
- latestVersion: null,
10
- checkedAt: new Date().toISOString(),
11
- updateAvailable: false,
35
+ latestVersion: stored.latestVersion,
36
+ checkedAt: stored.lastAttemptAt,
37
+ lastAttemptAt: stored.lastAttemptAt,
38
+ lastSuccessfulCheckAt: stored.lastSuccessfulCheckAt,
39
+ lastError: stored.lastError,
40
+ updateAvailable: stored.latestVersion !== null && stored.latestVersion !== currentVersion,
41
+ checkSucceeded: stored.checkSucceeded,
42
+ source,
43
+ freshness: determineFreshness(source, stored.checkSucceeded, stored.lastSuccessfulCheckAt, now),
44
+ };
45
+ }
46
+ function parseStoredUpdateCheck(raw) {
47
+ if (!raw || typeof raw !== 'object')
48
+ return null;
49
+ const candidate = raw;
50
+ const latestVersion = candidate.latestVersion;
51
+ const lastAttemptAt = 'lastAttemptAt' in candidate ? candidate.lastAttemptAt : candidate.checkedAt;
52
+ const lastSuccessfulCheckAt = 'lastSuccessfulCheckAt' in candidate ? candidate.lastSuccessfulCheckAt : candidate.checkedAt;
53
+ if (latestVersion !== null && latestVersion !== undefined && typeof latestVersion !== 'string')
54
+ return null;
55
+ if (lastAttemptAt !== null && lastAttemptAt !== undefined && typeof lastAttemptAt !== 'string')
56
+ return null;
57
+ if (lastSuccessfulCheckAt !== null && lastSuccessfulCheckAt !== undefined && typeof lastSuccessfulCheckAt !== 'string')
58
+ return null;
59
+ if ('lastError' in candidate && candidate.lastError !== null && typeof candidate.lastError !== 'string')
60
+ return null;
61
+ if ('checkSucceeded' in candidate && typeof candidate.checkSucceeded !== 'boolean')
62
+ return null;
63
+ if ('currentVersion' in candidate && candidate.currentVersion !== null && typeof candidate.currentVersion !== 'string')
64
+ return null;
65
+ const normalizedLatestVersion = latestVersion ?? null;
66
+ const normalizedLastAttemptAt = lastAttemptAt ?? null;
67
+ const normalizedLastSuccessfulCheckAt = lastSuccessfulCheckAt ?? null;
68
+ const checkSucceeded = typeof candidate.checkSucceeded === 'boolean'
69
+ ? candidate.checkSucceeded
70
+ : normalizedLatestVersion !== null;
71
+ return {
72
+ currentVersion: typeof candidate.currentVersion === 'string' ? candidate.currentVersion : null,
73
+ latestVersion: normalizedLatestVersion,
74
+ lastAttemptAt: normalizedLastAttemptAt,
75
+ lastSuccessfulCheckAt: normalizedLastSuccessfulCheckAt,
76
+ lastError: typeof candidate.lastError === 'string' ? candidate.lastError : null,
77
+ checkSucceeded,
12
78
  };
79
+ }
80
+ function readStoredUpdateCheck(updateCheckPath) {
81
+ try {
82
+ const targetPath = getUpdateCheckPath(updateCheckPath);
83
+ if (!fs.existsSync(targetPath))
84
+ return null;
85
+ return parseStoredUpdateCheck(JSON.parse(fs.readFileSync(targetPath, 'utf8')));
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ }
91
+ function writeStoredUpdateCheck(stored, updateCheckPath) {
92
+ try {
93
+ const targetPath = getUpdateCheckPath(updateCheckPath);
94
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
95
+ fs.writeFileSync(targetPath, JSON.stringify(stored, null, 2));
96
+ }
97
+ catch {
98
+ }
99
+ }
100
+ export async function checkForUpdate(currentVersion, options = {}) {
101
+ const { execFileImpl = execFile, now = new Date(), timeoutMs = DEFAULT_TIMEOUT_MS, updateCheckPath, } = options;
102
+ const previous = readStoredUpdateCheck(updateCheckPath);
103
+ const attemptedAt = now.toISOString();
13
104
  try {
14
105
  const latest = await new Promise((resolve, reject) => {
15
- execFile('npm', ['show', '@pcircle/memesh', 'version'], { timeout: 5000 }, (err, stdout) => {
106
+ execFileImpl('npm', ['show', '@pcircle/memesh', 'version'], { timeout: timeoutMs }, (err, stdout) => {
16
107
  if (err)
17
108
  reject(err);
18
109
  else
19
110
  resolve(stdout.trim());
20
111
  });
21
112
  });
22
- result.latestVersion = latest;
23
- result.updateAvailable = latest !== currentVersion;
113
+ const stored = {
114
+ currentVersion,
115
+ latestVersion: latest,
116
+ lastAttemptAt: attemptedAt,
117
+ lastSuccessfulCheckAt: attemptedAt,
118
+ lastError: null,
119
+ checkSucceeded: true,
120
+ };
121
+ writeStoredUpdateCheck(stored, updateCheckPath);
122
+ return buildResult(currentVersion, stored, 'fresh', now);
24
123
  }
25
- catch {
124
+ catch (err) {
125
+ const stored = {
126
+ currentVersion,
127
+ latestVersion: previous?.latestVersion ?? null,
128
+ lastAttemptAt: attemptedAt,
129
+ lastSuccessfulCheckAt: previous?.lastSuccessfulCheckAt ?? null,
130
+ lastError: summarizeError(err),
131
+ checkSucceeded: false,
132
+ };
133
+ writeStoredUpdateCheck(stored, updateCheckPath);
134
+ const source = stored.lastSuccessfulCheckAt ? 'cache' : 'fresh';
135
+ return buildResult(currentVersion, stored, source, now);
26
136
  }
27
- try {
28
- fs.mkdirSync(path.dirname(UPDATE_CHECK_PATH), { recursive: true });
29
- fs.writeFileSync(UPDATE_CHECK_PATH, JSON.stringify(result, null, 2));
137
+ }
138
+ export function getLastUpdateCheck(currentVersion, options = {}) {
139
+ const stored = readStoredUpdateCheck(options.updateCheckPath);
140
+ if (!stored)
141
+ return null;
142
+ return buildResult(currentVersion, stored, 'cache', options.now ?? new Date());
143
+ }
144
+ export async function getUpdateCheck(currentVersion, options = {}) {
145
+ if (options.preferFresh === false) {
146
+ return getLastUpdateCheck(currentVersion, {
147
+ updateCheckPath: options.updateCheckPath,
148
+ now: options.now,
149
+ });
30
150
  }
31
- catch { }
32
- return result;
151
+ return checkForUpdate(currentVersion, options);
33
152
  }
34
- export function getLastUpdateCheck() {
35
- try {
36
- if (!fs.existsSync(UPDATE_CHECK_PATH))
37
- return null;
38
- return JSON.parse(fs.readFileSync(UPDATE_CHECK_PATH, 'utf8'));
153
+ function formatFreshness(update) {
154
+ switch (update.freshness) {
155
+ case 'fresh':
156
+ return 'fresh';
157
+ case 'cached':
158
+ return `cached from ${update.lastSuccessfulCheckAt}`;
159
+ case 'stale':
160
+ return `stale cache from ${update.lastSuccessfulCheckAt}`;
161
+ default:
162
+ return 'unavailable';
39
163
  }
40
- catch {
41
- return null;
164
+ }
165
+ export function formatUpdateCheckStatus(update) {
166
+ if (!update) {
167
+ return ['Update check: unavailable'];
168
+ }
169
+ const lines = [];
170
+ if (update.freshness === 'unavailable') {
171
+ lines.push('Update check: unavailable');
42
172
  }
173
+ else if (update.updateAvailable && update.latestVersion) {
174
+ lines.push(`🔄 Update available: ${update.latestVersion} (${formatFreshness(update)}; run: memesh update)`);
175
+ }
176
+ else if (update.latestVersion) {
177
+ lines.push(`Update check: up to date (${formatFreshness(update)}; latest ${update.latestVersion})`);
178
+ }
179
+ else {
180
+ lines.push(`Update check: no version information available (${formatFreshness(update)})`);
181
+ }
182
+ if (!update.checkSucceeded && update.lastError) {
183
+ lines.push(`Last update check failed: ${update.lastError}`);
184
+ }
185
+ return lines;
186
+ }
187
+ export function getUpdateCheckPathForTests() {
188
+ return UPDATE_CHECK_PATH;
43
189
  }
44
190
  //# sourceMappingURL=version-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAalF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,cAAsB;IACzD,MAAM,MAAM,GAAgB;QAC1B,cAAc;QACd,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACzF,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,eAAe,GAAG,MAAM,KAAK,cAAc,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAGD,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,MAAM,CAAC;AAChB,CAAC;AAKD,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/core/version-check.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { Entity, Relation, CreateEntityInput, SearchOptions } from './core/
4
4
  export declare class KnowledgeGraph {
5
5
  private db;
6
6
  constructor(db: Database.Database);
7
+ updateEntityMetadata(name: string, updater: (currentMetadata: Record<string, unknown>) => Record<string, unknown> | null | undefined): void;
7
8
  createEntity(name: string, type: string, opts?: {
8
9
  observations?: string[];
9
10
  tags?: string[];
@@ -16,6 +17,7 @@ export declare class KnowledgeGraph {
16
17
  getEntitiesByIds(ids: number[], opts?: {
17
18
  includeArchived?: boolean;
18
19
  namespace?: string;
20
+ tag?: string;
19
21
  }): Entity[];
20
22
  getRelations(entityName: string): Relation[];
21
23
  search(query?: string, opts?: SearchOptions): Entity[];
@@ -34,6 +36,7 @@ export declare class KnowledgeGraph {
34
36
  remainingObservations: number;
35
37
  };
36
38
  private deleteEntity;
39
+ private parseMetadata;
37
40
  private rebuildFts;
38
41
  }
39
42
  //# sourceMappingURL=knowledge-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAa,MAAM,iBAAiB,CAAC;AAErG,qBAAa,cAAc;IACb,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACtF,MAAM;IA6DT,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAcxD,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI;IA2BP,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAwCtC,gBAAgB,CACd,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,MAAM,EAAE;IA2GX,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAmB5C,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE;IA+GtD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBtC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAuB9C,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAmBnF,OAAO,CAAC,eAAe;IAgCvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAoBnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAwC1F,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE;IA8BtD,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,UAAU;CAsBnB"}
1
+ {"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAa,MAAM,iBAAiB,CAAC;AAErG,qBAAa,cAAc;IACb,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAChG,IAAI;IAcP,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACtF,MAAM;IA6DT,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAcxD,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI;IA2BP,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAwCtC,gBAAgB,CACd,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACrE,MAAM,EAAE;IA4GX,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAmB5C,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE;IA+GtD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBtC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAuB9C,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAmBnF,OAAO,CAAC,eAAe;IAgCvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAoBnC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAwC1F,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE;IA8BtD,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;CAsBnB"}
@@ -3,6 +3,18 @@ export class KnowledgeGraph {
3
3
  constructor(db) {
4
4
  this.db = db;
5
5
  }
6
+ updateEntityMetadata(name, updater) {
7
+ const row = this.db
8
+ .prepare('SELECT metadata FROM entities WHERE name = ?')
9
+ .get(name);
10
+ if (!row)
11
+ return;
12
+ const currentMetadata = this.parseMetadata(row.metadata);
13
+ const nextMetadata = updater(currentMetadata);
14
+ this.db
15
+ .prepare('UPDATE entities SET metadata = ? WHERE name = ?')
16
+ .run(nextMetadata ? JSON.stringify(nextMetadata) : null, name);
17
+ }
6
18
  createEntity(name, type, opts) {
7
19
  const insertResult = this.db
8
20
  .prepare('INSERT OR IGNORE INTO entities (name, type, metadata, namespace) VALUES (?, ?, ?, ?)')
@@ -91,7 +103,7 @@ export class KnowledgeGraph {
91
103
  name: row.name,
92
104
  type: row.type,
93
105
  created_at: row.created_at,
94
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
106
+ metadata: row.metadata ? this.parseMetadata(row.metadata) : undefined,
95
107
  observations,
96
108
  tags,
97
109
  relations: relations.length > 0 ? relations : undefined,
@@ -166,12 +178,14 @@ export class KnowledgeGraph {
166
178
  const observations = obsMap.get(id) ?? [];
167
179
  const tags = tagMap.get(id) ?? [];
168
180
  const relations = relMap.get(id) ?? [];
181
+ if (opts?.tag && !tags.includes(opts.tag))
182
+ continue;
169
183
  results.push({
170
184
  id: row.id,
171
185
  name: row.name,
172
186
  type: row.type,
173
187
  created_at: row.created_at,
174
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
188
+ metadata: row.metadata ? this.parseMetadata(row.metadata) : undefined,
175
189
  observations,
176
190
  tags,
177
191
  relations: relations.length > 0 ? relations : undefined,
@@ -402,7 +416,7 @@ export class KnowledgeGraph {
402
416
  try {
403
417
  this.db
404
418
  .prepare('DELETE FROM entities_vec WHERE rowid = ?')
405
- .run(row.id);
419
+ .run(BigInt(row.id));
406
420
  }
407
421
  catch {
408
422
  }
@@ -449,6 +463,17 @@ export class KnowledgeGraph {
449
463
  this.db.prepare('DELETE FROM entities WHERE id = ?').run(row.id);
450
464
  return { deleted: true };
451
465
  }
466
+ parseMetadata(rawMetadata) {
467
+ if (!rawMetadata)
468
+ return {};
469
+ try {
470
+ const parsed = JSON.parse(rawMetadata);
471
+ return parsed && typeof parsed === 'object' ? parsed : {};
472
+ }
473
+ catch {
474
+ return {};
475
+ }
476
+ }
452
477
  rebuildFts(entityId, entityName, previousObsText) {
453
478
  if (previousObsText !== undefined) {
454
479
  this.db
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,oBAAoB,CAClB,IAAY,EACZ,OAAiG;QAEjG,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,8CAA8C,CAAC;aACvD,GAAG,CAAC,IAAI,CAA4C,CAAC;QAExD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,iDAAiD,CAAC;aAC1D,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CACV,IAAY,EACZ,IAAY,EACZ,IAAuF;QAIvF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;aACzB,OAAO,CACN,sFAAsF,CACvF;aACA,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,UAAU,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;QAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,gDAAgD,CAAC;aACzD,GAAG,CAAC,IAAI,CAAmC,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;QAGxB,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,sDAAsD,CAAC;iBAC/D,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QAKD,MAAM,OAAO,GAAG,WAAW,IAAI,WAAW;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAE,IAAI,CAAC,EAAE;iBACL,OAAO,CAAC,sDAAsD,CAAC;iBAC/D,GAAG,CAAC,QAAQ,CAA2B,CAAC;QAC/C,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAG5C,IAAI,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B,6DAA6D,CAC9D,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAG7C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B,2DAA2D,CAC5D,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,mBAAmB,CAAC,QAA6B;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;oBAChC,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;IACR,CAAC;IAED,cAAc,CACZ,QAAgB,EAChB,MAAc,EACd,YAAoB,EACpB,QAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,CAAC,QAAQ,CAA+B,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE;aAClB,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,CAAC,MAAM,CAA+B,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,6GAA6G,CAC9G;aACA,GAAG,CACF,OAAO,CAAC,EAAE,EACV,KAAK,CAAC,EAAE,EACR,YAAY,EACZ,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3C,CAAC;IACN,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN,kKAAkK,CACnK;aACA,GAAG,CAAC,IAAI,CAA0B,CAAC;QAEtC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,YAAY,GAAI,IAAI,CAAC,EAAE;aAC1B,OAAO,CAAC,kEAAkE,CAAC;aAC3E,GAAG,CAAC,GAAG,CAAC,EAAE,CAAgC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAI,IAAI,CAAC,EAAE;aAClB,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,CAAC,GAAG,CAAC,EAAE,CAA4B;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,YAAY;YACZ,IAAI;YACJ,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACvD,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC;YACnC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;YACnD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG;YACjC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;YACvC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;YACzC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,UAAU;SACvC,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,GAAa,EACb,IAAsE;QAEtE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAU,CAAC,GAAG,GAAG,CAAC,CAAC;QAI/B,MAAM,YAAY,GAAG,IAAI,EAAE,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,eAAe,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,IAAI,EAAE,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAGjD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE;aACvB,OAAO,CACN;sCAC8B,YAAY,KAAK,YAAY,IAAI,eAAe,EAAE,CACjF;aACA,GAAG,CAAC,GAAG,MAAM,CAAgB,CAAC;QAGjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QAGD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CACN,mEAAmE,YAAY,eAAe,CAC/F;aACA,GAAG,CAAC,GAAG,GAAG,CAAkD,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAGD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CACN,uDAAuD,YAAY,GAAG,CACvE;aACA,GAAG,CAAC,GAAG,GAAG,CAA8C,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAGD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CACN;;;;;sCAK8B,YAAY,GAAG,CAC9C;aACA,GAAG,CAAC,GAAG,GAAG,CAAuG,CAAC;QAErH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9D,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpD,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrE,YAAY;gBACZ,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACvD,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC;gBACnC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,SAAS;gBACnD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG;gBACjC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;gBACzC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,UAAU;aACvC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,UAAkB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;+BAIuB,CACxB;aACA,GAAG,CAAC,UAAU,CAA+E,CAAC;QAEjG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAc,EAAE,IAAoB;QACzC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;QAID,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAG/D,MAAM,YAAY,GAAG,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC;QAC5E,MAAM,eAAe,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,OAA4C,CAAC;QACjD,IAAI,CAAC;YACH,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;gBACd,MAAM,MAAM,GAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE,SAAS;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC,EAAE;qBACd,OAAO,CACN;;;;;iBAKK,YAAY;iBACZ,eAAe;;qBAEX,CACV;qBACA,GAAG,CAAC,GAAG,MAAM,CAAwC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAU,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE,SAAS;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC,EAAE;qBACd,OAAO,CACN;;;iBAGK,YAAY;iBACZ,eAAe;;qBAEX,CACV;qBACA,GAAG,CAAC,GAAG,MAAM,CAAwC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAElB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,GAAG,CAAC;QACZ,CAAC;QAGD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5C,eAAe,EAAE,IAAI,EAAE,eAAe;YACtC,SAAS,EAAE,IAAI,EAAE,SAAS;SAC3B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAIhC,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,uBAAuB,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,cAAc,GAAU,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE,GAAG;gBAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,SAAS;gBAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEzD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;iBACzB,OAAO,CACN;;;aAGG,OAAO;;;eAGL,SAAS;eACT,uBAAuB;;mBAEnB,CACV;iBACA,GAAG,CAAC,GAAG,cAAc,EAAE,KAAK,CAAwC,CAAC;YAExE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;gBAC1D,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,IAAI,EAAE,SAAS;aAC3B,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAMD,WAAW,CAAC,SAAmB;QAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,wFAAwF,CACzF,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,EAAE,CAAC;IACR,CAAC;IAMD,aAAa,CAAC,WAAqB;QACjC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;8BAMH,YAAY;4BACd,YAAY;KACnC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAkD,CAAC;QAExF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,kBAAkB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,KAAc,EAAE,eAAyB,EAAE,SAAkB;QACtE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACpE,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,uCAAuC,YAAY,IAAI,eAAe,2BAA2B,CAAC;aAC1G,GAAG,CAAC,GAAG,MAAM,CAAuB,CAAC;QAExC,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,GAAW,EAAE,KAAa,EAAE,eAAyB,EAAE,SAAkB;QAC/F,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACtE,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;WAIG,YAAY;WACZ,eAAe;;iBAET,CACV;aACA,GAAG,CAAC,GAAG,MAAM,CAAuB,CAAC;QAExC,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAMD,eAAe,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,CAAC,IAAI,CAA0B,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO;QAGjB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,gDAAgD,CAAC;aACzD,GAAG,CAAC,IAAI,CAA+C,CAAC;QAE3D,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAGrC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN,8FAA8F,CAC/F;iBACA,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAGD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,0CAA0C,CAAC;iBACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAGD,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,kBAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,CAAC,UAAU,CAA+B,CAAC;QAEjD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;QAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;aACpB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;aACzB,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAEnC,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,4DAA4D,CAAC;aACrE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAkB,CAAC;QAEhC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IAGO,YAAY,CAAC,IAAY;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,CAAC,IAAI,CAA+B,CAAC;QAE3C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAIpC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,8FAA8F,CAC/F;aACA,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAG9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,WAA0B;QAC9C,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,UAAU,CAChB,QAAgB,EAChB,UAAkB,EAClB,eAAwB;QAIxB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN,8FAA8F,CAC/F;iBACA,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,CAAC,QAAQ,CAA0B,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,uEAAuE,CAAC;aAChF,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -7,7 +7,9 @@ import { openDatabase, closeDatabase, getDatabase } from '../../db.js';
7
7
  import { remember, recallEnhanced, forget, consolidate, exportMemories, importMemories, learn, reindex } from '../../core/operations.js';
8
8
  import { KnowledgeGraph } from '../../knowledge-graph.js';
9
9
  import { readConfig, updateConfig, maskApiKey, detectCapabilities } from '../../core/config.js';
10
+ import { flushPendingEmbeddings } from '../../core/embedder.js';
10
11
  const packageJsonPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../package.json');
12
+ const packageRoot = path.dirname(packageJsonPath);
11
13
  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
12
14
  const program = new Command();
13
15
  program
@@ -23,7 +25,7 @@ program
23
25
  .option('--tags <tags...>', 'Tags (space-separated)')
24
26
  .option('--namespace <namespace>', 'Namespace: personal, team, or global (default: personal)')
25
27
  .option('--json', 'Output as JSON')
26
- .action((opts) => {
28
+ .action(async (opts) => {
27
29
  openDatabase();
28
30
  try {
29
31
  const result = remember({
@@ -39,6 +41,7 @@ program
39
41
  else {
40
42
  console.log(`✅ Stored "${result.name}" (${result.observations} observations, ${result.tags} tags)`);
41
43
  }
44
+ await flushPendingEmbeddings();
42
45
  }
43
46
  finally {
44
47
  closeDatabase();
@@ -332,28 +335,45 @@ program
332
335
  .description('Start HTTP API server')
333
336
  .option('--port <port>', 'Port number', '3737')
334
337
  .option('--host <host>', 'Host to bind', '127.0.0.1')
338
+ .option('--allow-remote', 'Allow binding to non-loopback hosts (no auth layer is added)')
335
339
  .action(async (opts) => {
336
340
  const { startServer } = await import('../http/server.js');
337
- startServer(opts.host, parseInt(opts.port));
341
+ startServer(opts.host, parseInt(opts.port, 10), { allowRemote: opts.allowRemote });
338
342
  });
339
343
  program
340
344
  .command('update')
341
- .description('Update MeMesh to latest version')
345
+ .description('Update MeMesh to latest version (npm global installs)')
342
346
  .action(async () => {
347
+ const { getCurrentInstallChannel, getInstallChannelSupport } = await import('../../core/install-channel.js');
348
+ const install = getCurrentInstallChannel({ packageRoot });
349
+ const installSupport = getInstallChannelSupport(install);
350
+ if (!installSupport.canSelfUpdate) {
351
+ console.error(`❌ memesh update does not support this install method (${installSupport.label}).`);
352
+ console.error(` ${installSupport.guidance}`);
353
+ process.exit(1);
354
+ }
343
355
  const { checkForUpdate } = await import('../../core/version-check.js');
344
356
  const check = await checkForUpdate(pkg.version);
357
+ if (!check.checkSucceeded || !check.latestVersion) {
358
+ console.error('❌ Unable to check npm for the latest MeMesh version right now.');
359
+ console.error(' Try again later, or update manually: npm install -g @pcircle/memesh@latest');
360
+ process.exit(1);
361
+ }
345
362
  if (!check.updateAvailable) {
346
363
  console.log(`✅ Already on latest version (${pkg.version})`);
347
364
  return;
348
365
  }
349
366
  console.log(`🔄 Updating ${pkg.version} → ${check.latestVersion}...`);
350
- const { execFileSync } = await import('child_process');
351
367
  try {
352
- execFileSync('npm', ['install', '-g', `@pcircle/memesh@${check.latestVersion}`], { stdio: 'inherit' });
353
- console.log(`✅ Updated to ${check.latestVersion}`);
368
+ const { runGlobalUpdate } = await import('../../core/updater.js');
369
+ const result = runGlobalUpdate(check.latestVersion);
370
+ console.log(`✅ Updated to ${result.installedVersion}`);
354
371
  }
355
- catch {
356
- console.error('❌ Update failed. Try manually: npm install -g @pcircle/memesh@latest');
372
+ catch (err) {
373
+ const message = err instanceof Error ? err.message : 'unknown error';
374
+ console.error(`❌ Update failed: ${message}`);
375
+ console.error(' This command supports npm global installs.');
376
+ console.error(' Try manually: npm install -g @pcircle/memesh@latest');
357
377
  process.exit(1);
358
378
  }
359
379
  });
@@ -390,16 +410,27 @@ program
390
410
  program
391
411
  .command('status')
392
412
  .description('Show MeMesh status and capabilities')
393
- .action(async () => {
413
+ .option('--cached', 'Use cached update info only (skip fresh npm lookup)')
414
+ .action(async (opts) => {
394
415
  const caps = detectCapabilities();
395
- const { getLastUpdateCheck } = await import('../../core/version-check.js');
396
- const update = getLastUpdateCheck();
416
+ const { getCurrentInstallChannel, getInstallChannelSupport } = await import('../../core/install-channel.js');
417
+ const install = getCurrentInstallChannel({ packageRoot });
418
+ const installSupport = getInstallChannelSupport(install);
419
+ const { getUpdateCheck, formatUpdateCheckStatus } = await import('../../core/version-check.js');
420
+ const update = await getUpdateCheck(pkg.version, { preferFresh: !opts.cached });
397
421
  console.log(`MeMesh v${pkg.version}`);
398
422
  console.log(`Search level: ${caps.searchLevel} (${caps.searchLevel === 1 ? 'Smart Mode' : 'Core'})`);
399
423
  console.log(`Embeddings: ${caps.embeddings}`);
400
424
  console.log(`LLM: ${caps.llm ? `${caps.llm.provider} (${caps.llm.model})` : 'not configured'}`);
401
- if (update?.updateAvailable) {
402
- console.log(`\n🔄 Update available: ${update.latestVersion} (run: memesh update)`);
425
+ console.log(`Install method: ${installSupport.label}`);
426
+ for (const line of formatUpdateCheckStatus(update)) {
427
+ console.log(`\n${line}`);
428
+ }
429
+ if (installSupport.recommendedCommand) {
430
+ console.log(`Update path: ${installSupport.recommendedCommand}`);
431
+ }
432
+ else {
433
+ console.log(`Update path: ${installSupport.guidance}`);
403
434
  }
404
435
  });
405
436
  program.action(async () => {