@folterung/project-memory 0.1.16 → 0.1.17
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/package.json +1 -1
- package/packages/cli/coverage/lcov-report/chunking/chunker.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/chunking/hash.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/chunking/index.html +1 -1
- package/packages/cli/coverage/lcov-report/chunking/types.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/config/index.html +1 -1
- package/packages/cli/coverage/lcov-report/config/load.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/config/types.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/embedding/index.html +1 -1
- package/packages/cli/coverage/lcov-report/embedding/stub.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/index.html +1 -1
- package/packages/cli/coverage/lcov-report/qdrant/index.html +1 -1
- package/packages/cli/coverage/lcov-report/qdrant/upsert.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/scope/allowlist.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/scope/ignore.ts.html +1 -1
- package/packages/cli/coverage/lcov-report/scope/index.html +1 -1
- package/packages/cli/coverage/tmp/{coverage-88905-1770086028547-0.json → coverage-23357-1770087210243-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88906-1770086028593-0.json → coverage-23358-1770087210290-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88907-1770086028592-0.json → coverage-23359-1770087210287-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88908-1770086028592-0.json → coverage-23360-1770087210287-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88909-1770086028598-0.json → coverage-23361-1770087210293-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88910-1770086028593-0.json → coverage-23362-1770087210286-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88911-1770086028594-0.json → coverage-23363-1770087210287-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88912-1770086028648-0.json → coverage-23364-1770087210344-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88913-1770086028615-0.json → coverage-23365-1770087210310-0.json} +1 -1
- package/packages/cli/coverage/tmp/{coverage-88914-1770086028612-0.json → coverage-23366-1770087210304-0.json} +1 -1
- package/packages/cli/dist/commands/down.js +41 -13
- package/packages/cli/dist/commands/down.js.map +1 -1
- package/packages/cli/src/commands/down.ts +39 -11
- package/packages/server/coverage/lcov-report/index.html +1 -1
- package/packages/server/coverage/lcov-report/stub.ts.html +1 -1
- package/packages/server/coverage/tmp/{coverage-88999-1770086029452-0.json → coverage-23452-1770087211129-0.json} +1 -1
- package/packages/server/coverage/tmp/{coverage-89000-1770086029487-0.json → coverage-23453-1770087211164-0.json} +1 -1
- package/packages/server/dist/api/store.js +11 -6
- package/packages/server/dist/api/store.js.map +1 -1
- package/packages/server/src/api/store.ts +11 -6
|
@@ -1,30 +1,58 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
1
2
|
import { existsSync, readFileSync, unlinkSync } from "node:fs";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
import chalk from "chalk";
|
|
4
5
|
import { MEMORY_SERVER_PID_FILE } from "../config/types.js";
|
|
5
6
|
import { dockerComposeDown } from "../docker/compose.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
return;
|
|
7
|
+
const MEMORY_SERVER_PORT = Number(process.env.MEM_SERVER_PORT) || 31415;
|
|
8
|
+
function killProcessOnPort(port) {
|
|
9
|
+
if (process.platform === "win32")
|
|
10
|
+
return false;
|
|
10
11
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const out = execSync(`lsof -iTCP:${port} -sTCP:LISTEN -t`, { encoding: "utf8" });
|
|
13
|
+
const pids = out.trim().split(/\s+/).filter(Boolean);
|
|
14
|
+
for (const pidStr of pids) {
|
|
15
|
+
const pid = Number.parseInt(pidStr, 10);
|
|
16
|
+
if (Number.isNaN(pid))
|
|
17
|
+
continue;
|
|
18
|
+
try {
|
|
19
|
+
process.kill(pid, "SIGTERM");
|
|
20
|
+
console.log(chalk.green("Memory server stopped (PID", pid + ", port", port + ")."));
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// ignore
|
|
25
|
+
}
|
|
26
|
+
}
|
|
16
27
|
}
|
|
17
28
|
catch {
|
|
18
|
-
//
|
|
29
|
+
// lsof returns non-zero when no process; ignore
|
|
19
30
|
}
|
|
20
|
-
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
function stopMemoryServer(cwd) {
|
|
34
|
+
const pidFile = join(cwd, MEMORY_SERVER_PID_FILE);
|
|
35
|
+
if (existsSync(pidFile)) {
|
|
21
36
|
try {
|
|
22
|
-
|
|
37
|
+
const pid = Number.parseInt(readFileSync(pidFile, "utf8").trim(), 10);
|
|
38
|
+
if (!Number.isNaN(pid)) {
|
|
39
|
+
process.kill(pid, "SIGTERM");
|
|
40
|
+
console.log(chalk.green("Memory server stopped (PID", pid + ")."));
|
|
41
|
+
}
|
|
23
42
|
}
|
|
24
43
|
catch {
|
|
25
|
-
//
|
|
44
|
+
// Process may already be dead or permission denied; fall through to port fallback
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
unlinkSync(pidFile);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// ignore
|
|
52
|
+
}
|
|
26
53
|
}
|
|
27
54
|
}
|
|
55
|
+
killProcessOnPort(MEMORY_SERVER_PORT);
|
|
28
56
|
}
|
|
29
57
|
export function runDown(cwd) {
|
|
30
58
|
stopMemoryServer(cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAClD,IAAI,
|
|
1
|
+
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,54 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
1
2
|
import { existsSync, readFileSync, unlinkSync } from "node:fs";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
import chalk from "chalk";
|
|
4
5
|
import { MEMORY_SERVER_PID_FILE } from "../config/types.js";
|
|
5
6
|
import { dockerComposeDown } from "../docker/compose.js";
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const MEMORY_SERVER_PORT = Number(process.env.MEM_SERVER_PORT) || 31415;
|
|
9
|
+
|
|
10
|
+
function killProcessOnPort(port: number): boolean {
|
|
11
|
+
if (process.platform === "win32") return false;
|
|
10
12
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const out = execSync(`lsof -iTCP:${port} -sTCP:LISTEN -t`, { encoding: "utf8" });
|
|
14
|
+
const pids = out.trim().split(/\s+/).filter(Boolean);
|
|
15
|
+
for (const pidStr of pids) {
|
|
16
|
+
const pid = Number.parseInt(pidStr, 10);
|
|
17
|
+
if (Number.isNaN(pid)) continue;
|
|
18
|
+
try {
|
|
19
|
+
process.kill(pid, "SIGTERM");
|
|
20
|
+
console.log(chalk.green("Memory server stopped (PID", pid + ", port", port + ")."));
|
|
21
|
+
return true;
|
|
22
|
+
} catch {
|
|
23
|
+
// ignore
|
|
24
|
+
}
|
|
25
|
+
}
|
|
15
26
|
} catch {
|
|
16
|
-
//
|
|
17
|
-
}
|
|
27
|
+
// lsof returns non-zero when no process; ignore
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function stopMemoryServer(cwd: string): void {
|
|
33
|
+
const pidFile = join(cwd, MEMORY_SERVER_PID_FILE);
|
|
34
|
+
if (existsSync(pidFile)) {
|
|
18
35
|
try {
|
|
19
|
-
|
|
36
|
+
const pid = Number.parseInt(readFileSync(pidFile, "utf8").trim(), 10);
|
|
37
|
+
if (!Number.isNaN(pid)) {
|
|
38
|
+
process.kill(pid, "SIGTERM");
|
|
39
|
+
console.log(chalk.green("Memory server stopped (PID", pid + ")."));
|
|
40
|
+
}
|
|
20
41
|
} catch {
|
|
21
|
-
//
|
|
42
|
+
// Process may already be dead or permission denied; fall through to port fallback
|
|
43
|
+
} finally {
|
|
44
|
+
try {
|
|
45
|
+
unlinkSync(pidFile);
|
|
46
|
+
} catch {
|
|
47
|
+
// ignore
|
|
48
|
+
}
|
|
22
49
|
}
|
|
23
50
|
}
|
|
51
|
+
killProcessOnPort(MEMORY_SERVER_PORT);
|
|
24
52
|
}
|
|
25
53
|
|
|
26
54
|
export function runDown(cwd: string): void {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-02-03T02:
|
|
104
|
+
at 2026-02-03T02:53:31.179Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -169,7 +169,7 @@ export function getVectorSize(): number {
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
-
at 2026-02-03T02:
|
|
172
|
+
at 2026-02-03T02:53:31.179Z
|
|
173
173
|
</div>
|
|
174
174
|
<script src="prettify.js"></script>
|
|
175
175
|
<script>
|