@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.
Files changed (36) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/coverage/lcov-report/chunking/chunker.ts.html +1 -1
  3. package/packages/cli/coverage/lcov-report/chunking/hash.ts.html +1 -1
  4. package/packages/cli/coverage/lcov-report/chunking/index.html +1 -1
  5. package/packages/cli/coverage/lcov-report/chunking/types.ts.html +1 -1
  6. package/packages/cli/coverage/lcov-report/config/index.html +1 -1
  7. package/packages/cli/coverage/lcov-report/config/load.ts.html +1 -1
  8. package/packages/cli/coverage/lcov-report/config/types.ts.html +1 -1
  9. package/packages/cli/coverage/lcov-report/embedding/index.html +1 -1
  10. package/packages/cli/coverage/lcov-report/embedding/stub.ts.html +1 -1
  11. package/packages/cli/coverage/lcov-report/index.html +1 -1
  12. package/packages/cli/coverage/lcov-report/qdrant/index.html +1 -1
  13. package/packages/cli/coverage/lcov-report/qdrant/upsert.ts.html +1 -1
  14. package/packages/cli/coverage/lcov-report/scope/allowlist.ts.html +1 -1
  15. package/packages/cli/coverage/lcov-report/scope/ignore.ts.html +1 -1
  16. package/packages/cli/coverage/lcov-report/scope/index.html +1 -1
  17. package/packages/cli/coverage/tmp/{coverage-88905-1770086028547-0.json → coverage-23357-1770087210243-0.json} +1 -1
  18. package/packages/cli/coverage/tmp/{coverage-88906-1770086028593-0.json → coverage-23358-1770087210290-0.json} +1 -1
  19. package/packages/cli/coverage/tmp/{coverage-88907-1770086028592-0.json → coverage-23359-1770087210287-0.json} +1 -1
  20. package/packages/cli/coverage/tmp/{coverage-88908-1770086028592-0.json → coverage-23360-1770087210287-0.json} +1 -1
  21. package/packages/cli/coverage/tmp/{coverage-88909-1770086028598-0.json → coverage-23361-1770087210293-0.json} +1 -1
  22. package/packages/cli/coverage/tmp/{coverage-88910-1770086028593-0.json → coverage-23362-1770087210286-0.json} +1 -1
  23. package/packages/cli/coverage/tmp/{coverage-88911-1770086028594-0.json → coverage-23363-1770087210287-0.json} +1 -1
  24. package/packages/cli/coverage/tmp/{coverage-88912-1770086028648-0.json → coverage-23364-1770087210344-0.json} +1 -1
  25. package/packages/cli/coverage/tmp/{coverage-88913-1770086028615-0.json → coverage-23365-1770087210310-0.json} +1 -1
  26. package/packages/cli/coverage/tmp/{coverage-88914-1770086028612-0.json → coverage-23366-1770087210304-0.json} +1 -1
  27. package/packages/cli/dist/commands/down.js +41 -13
  28. package/packages/cli/dist/commands/down.js.map +1 -1
  29. package/packages/cli/src/commands/down.ts +39 -11
  30. package/packages/server/coverage/lcov-report/index.html +1 -1
  31. package/packages/server/coverage/lcov-report/stub.ts.html +1 -1
  32. package/packages/server/coverage/tmp/{coverage-88999-1770086029452-0.json → coverage-23452-1770087211129-0.json} +1 -1
  33. package/packages/server/coverage/tmp/{coverage-89000-1770086029487-0.json → coverage-23453-1770087211164-0.json} +1 -1
  34. package/packages/server/dist/api/store.js +11 -6
  35. package/packages/server/dist/api/store.js.map +1 -1
  36. 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
- function stopMemoryServer(cwd) {
7
- const pidFile = join(cwd, MEMORY_SERVER_PID_FILE);
8
- if (!existsSync(pidFile))
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 pid = Number.parseInt(readFileSync(pidFile, "utf8").trim(), 10);
12
- if (Number.isNaN(pid))
13
- return;
14
- process.kill(pid, "SIGTERM");
15
- console.log(chalk.green("Memory server stopped (PID", pid + ")."));
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
- // Process may already be dead; ignore
29
+ // lsof returns non-zero when no process; ignore
19
30
  }
20
- finally {
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
- unlinkSync(pidFile);
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
- // ignore
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,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO;QAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
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
- function stopMemoryServer(cwd: string): void {
8
- const pidFile = join(cwd, MEMORY_SERVER_PID_FILE);
9
- if (!existsSync(pidFile)) return;
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 pid = Number.parseInt(readFileSync(pidFile, "utf8").trim(), 10);
12
- if (Number.isNaN(pid)) return;
13
- process.kill(pid, "SIGTERM");
14
- console.log(chalk.green("Memory server stopped (PID", pid + ")."));
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
- // Process may already be dead; ignore
17
- } finally {
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
- unlinkSync(pidFile);
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
- // ignore
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:33:49.502Z
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:33:49.502Z
172
+ at 2026-02-03T02:53:31.179Z
173
173
  </div>
174
174
  <script src="prettify.js"></script>
175
175
  <script>