@scotthuang/engram 0.4.6 → 0.4.7
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/dist/logger.d.ts +1 -1
- package/dist/logger.js +26 -3
- package/dist/logger.js.map +1 -1
- package/package.json +4 -2
package/dist/logger.d.ts
CHANGED
package/dist/logger.js
CHANGED
|
@@ -7,6 +7,29 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { mkdirSync, appendFileSync } from "node:fs";
|
|
9
9
|
import { join } from "node:path";
|
|
10
|
+
/**
|
|
11
|
+
* 格式化本地时间为 YYYY-MM-DD HH:mm:ss.SSS 格式
|
|
12
|
+
* 使用本机时区而非 UTC,方便阅读和按天归档
|
|
13
|
+
*/
|
|
14
|
+
function localTimestamp(now) {
|
|
15
|
+
const y = now.getFullYear();
|
|
16
|
+
const M = String(now.getMonth() + 1).padStart(2, "0");
|
|
17
|
+
const d = String(now.getDate()).padStart(2, "0");
|
|
18
|
+
const h = String(now.getHours()).padStart(2, "0");
|
|
19
|
+
const m = String(now.getMinutes()).padStart(2, "0");
|
|
20
|
+
const s = String(now.getSeconds()).padStart(2, "0");
|
|
21
|
+
const ms = String(now.getMilliseconds()).padStart(3, "0");
|
|
22
|
+
return `${y}-${M}-${d} ${h}:${m}:${s}.${ms}`;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 获取本地日期字符串 YYYY-MM-DD(用于日志文件名)
|
|
26
|
+
*/
|
|
27
|
+
function localDateStr(now) {
|
|
28
|
+
const y = now.getFullYear();
|
|
29
|
+
const M = String(now.getMonth() + 1).padStart(2, "0");
|
|
30
|
+
const d = String(now.getDate()).padStart(2, "0");
|
|
31
|
+
return `${y}-${M}-${d}`;
|
|
32
|
+
}
|
|
10
33
|
class Logger {
|
|
11
34
|
logDir = null;
|
|
12
35
|
currentDate = "";
|
|
@@ -32,12 +55,12 @@ class Logger {
|
|
|
32
55
|
}
|
|
33
56
|
}
|
|
34
57
|
/**
|
|
35
|
-
*
|
|
58
|
+
* 确保当天的日志文件路径是最新的(使用本地日期)
|
|
36
59
|
*/
|
|
37
60
|
ensureLogFile() {
|
|
38
61
|
if (!this.logDir)
|
|
39
62
|
return null;
|
|
40
|
-
const today = new Date()
|
|
63
|
+
const today = localDateStr(new Date());
|
|
41
64
|
if (today !== this.currentDate) {
|
|
42
65
|
this.currentDate = today;
|
|
43
66
|
this.currentLogPath = join(this.logDir, `${today}.log`);
|
|
@@ -48,7 +71,7 @@ class Logger {
|
|
|
48
71
|
* 写一行日志
|
|
49
72
|
*/
|
|
50
73
|
write(level, message) {
|
|
51
|
-
const timestamp = new Date()
|
|
74
|
+
const timestamp = localTimestamp(new Date());
|
|
52
75
|
const line = `${timestamp} [${level}] ${message}`;
|
|
53
76
|
// 始终输出到 console(保持现有行为)
|
|
54
77
|
if (level === "ERROR") {
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,MAAM;IACF,MAAM,GAAkB,IAAI,CAAC;IAC7B,WAAW,GAAW,EAAE,CAAC;IACzB,cAAc,GAAW,EAAE,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,SAAkB;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scotthuang/engram",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "分层语义记忆系统 - OpenClaw Plugin",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"openclaw": {
|
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
"build": "tsc",
|
|
30
30
|
"check": "npm run typecheck && npm run lint",
|
|
31
31
|
"test": "vitest run",
|
|
32
|
-
"test:watch": "vitest"
|
|
32
|
+
"test:watch": "vitest",
|
|
33
|
+
"tool:dump": "node scripts/dump-vectors.cjs",
|
|
34
|
+
"tool:settle": "node scripts/manual-settle.cjs"
|
|
33
35
|
},
|
|
34
36
|
"keywords": [],
|
|
35
37
|
"author": "",
|