hmem-mcp 4.0.0 → 5.1.21
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 +161 -205
- package/dist/cli-checkpoint.d.ts +16 -0
- package/dist/cli-checkpoint.js +233 -0
- package/dist/cli-checkpoint.js.map +1 -0
- package/dist/cli-context-inject.d.ts +19 -0
- package/dist/cli-context-inject.js +77 -0
- package/dist/cli-context-inject.js.map +1 -0
- package/dist/cli-env.d.ts +16 -0
- package/dist/cli-env.js +40 -0
- package/dist/cli-env.js.map +1 -0
- package/dist/cli-hook-startup.d.ts +20 -0
- package/dist/cli-hook-startup.js +101 -0
- package/dist/cli-hook-startup.js.map +1 -0
- package/dist/cli-init.js +148 -10
- package/dist/cli-init.js.map +1 -1
- package/dist/cli-log-exchange.js +87 -23
- package/dist/cli-log-exchange.js.map +1 -1
- package/dist/cli-statusline.d.ts +14 -0
- package/dist/cli-statusline.js +172 -0
- package/dist/cli-statusline.js.map +1 -0
- package/dist/cli.js +30 -2
- package/dist/cli.js.map +1 -1
- package/dist/hmem-config.d.ts +31 -0
- package/dist/hmem-config.js +76 -12
- package/dist/hmem-config.js.map +1 -1
- package/dist/hmem-store.d.ts +62 -1
- package/dist/hmem-store.js +364 -46
- package/dist/hmem-store.js.map +1 -1
- package/dist/mcp-server.js +405 -99
- package/dist/mcp-server.js.map +1 -1
- package/dist/session-cache.d.ts +11 -0
- package/dist/session-cache.js +25 -0
- package/dist/session-cache.js.map +1 -1
- package/package.json +1 -1
- package/scripts/autoresearch-nightly.sh +84 -0
- package/scripts/hmem-statusline.sh +4 -0
- package/skills/hmem-config/SKILL.md +112 -147
- package/skills/hmem-curate/SKILL.md +56 -6
- package/skills/hmem-new-project/SKILL.md +164 -0
- package/skills/hmem-read/SKILL.md +174 -146
- package/skills/hmem-release/SKILL.md +141 -0
- package/skills/hmem-self-curate/SKILL.md +49 -7
- package/skills/hmem-setup/SKILL.md +169 -87
- package/skills/hmem-sync-setup/SKILL.md +16 -3
- package/skills/hmem-update/SKILL.md +254 -0
- package/skills/hmem-wipe/SKILL.md +75 -0
- package/skills/hmem-write/SKILL.md +113 -61
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cli-statusline.ts
|
|
3
|
+
*
|
|
4
|
+
* Generates Claude Code statusline output.
|
|
5
|
+
* Reads JSON from stdin (Claude Code statusline protocol),
|
|
6
|
+
* queries hmem DB for active project, outputs formatted line.
|
|
7
|
+
*
|
|
8
|
+
* Usage: cat | hmem statusline
|
|
9
|
+
*
|
|
10
|
+
* The shell script wrapper becomes a one-liner:
|
|
11
|
+
* #!/bin/bash
|
|
12
|
+
* cat | hmem statusline
|
|
13
|
+
*/
|
|
14
|
+
import fs from "node:fs";
|
|
15
|
+
import path from "node:path";
|
|
16
|
+
import { resolveHmemPath } from "./hmem-store.js";
|
|
17
|
+
import { resolveEnvDefaults } from "./cli-env.js";
|
|
18
|
+
import { loadHmemConfig } from "./hmem-config.js";
|
|
19
|
+
// ANSI color helpers
|
|
20
|
+
const C = {
|
|
21
|
+
green: "\x1b[01;32m",
|
|
22
|
+
yellow: "\x1b[01;33m",
|
|
23
|
+
red: "\x1b[01;31m",
|
|
24
|
+
cyan: "\x1b[00;36m",
|
|
25
|
+
gray: "\x1b[00;90m",
|
|
26
|
+
white: "\x1b[00;37m",
|
|
27
|
+
reset: "\x1b[00m",
|
|
28
|
+
};
|
|
29
|
+
const CACHE_FILE = "/tmp/.hmem_statusline_cache";
|
|
30
|
+
const CACHE_TTL = 30; // seconds
|
|
31
|
+
function buildContextBar(input) {
|
|
32
|
+
const pct = input.context_window?.used_percentage;
|
|
33
|
+
if (pct == null)
|
|
34
|
+
return "";
|
|
35
|
+
const usedInt = Math.round(pct);
|
|
36
|
+
const filled = Math.floor(usedInt * 20 / 100);
|
|
37
|
+
const empty = 20 - filled;
|
|
38
|
+
const bar = "#".repeat(filled) + "-".repeat(empty);
|
|
39
|
+
const color = usedInt >= 80 ? C.red : usedInt >= 50 ? C.yellow : C.green;
|
|
40
|
+
// Total context tokens
|
|
41
|
+
const cu = input.context_window?.current_usage;
|
|
42
|
+
const totalCtx = (cu?.input_tokens ?? 0)
|
|
43
|
+
+ (cu?.cache_creation_input_tokens ?? 0)
|
|
44
|
+
+ (cu?.cache_read_input_tokens ?? 0);
|
|
45
|
+
const tokLabel = totalCtx > 0
|
|
46
|
+
? `${Math.round(totalCtx / 1000)}k`
|
|
47
|
+
: `${usedInt}%`;
|
|
48
|
+
return `${color}[${bar}]${C.reset} ${C.white}${tokLabel}${C.reset}`;
|
|
49
|
+
}
|
|
50
|
+
async function getHmemStatus() {
|
|
51
|
+
const empty = { project: "", exchanges: 0, interval: 0 };
|
|
52
|
+
// Check cache
|
|
53
|
+
try {
|
|
54
|
+
if (fs.existsSync(CACHE_FILE)) {
|
|
55
|
+
const raw = fs.readFileSync(CACHE_FILE, "utf-8");
|
|
56
|
+
const newline = raw.indexOf("\n");
|
|
57
|
+
if (newline > 0) {
|
|
58
|
+
const cacheTs = parseInt(raw.substring(0, newline), 10);
|
|
59
|
+
const age = Math.floor(Date.now() / 1000) - cacheTs;
|
|
60
|
+
if (age < CACHE_TTL) {
|
|
61
|
+
return JSON.parse(raw.substring(newline + 1));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch { /* ignore */ }
|
|
67
|
+
// Query DB
|
|
68
|
+
let status = empty;
|
|
69
|
+
try {
|
|
70
|
+
resolveEnvDefaults();
|
|
71
|
+
const projectDir = process.env.HMEM_PROJECT_DIR || process.env.COUNCIL_PROJECT_DIR;
|
|
72
|
+
if (!projectDir)
|
|
73
|
+
return writeCache(empty);
|
|
74
|
+
const agentId = process.env.HMEM_AGENT_ID || process.env.COUNCIL_AGENT_ID || "";
|
|
75
|
+
const templateName = agentId.replace(/_\d+$/, "");
|
|
76
|
+
let hmemPath;
|
|
77
|
+
try {
|
|
78
|
+
hmemPath = resolveHmemPath(projectDir, templateName);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
const agentsDir = path.join(projectDir, "Agents");
|
|
82
|
+
if (fs.existsSync(agentsDir)) {
|
|
83
|
+
for (const dir of fs.readdirSync(agentsDir)) {
|
|
84
|
+
const candidate = path.join(agentsDir, dir, `${dir}.hmem`);
|
|
85
|
+
if (fs.existsSync(candidate)) {
|
|
86
|
+
hmemPath = candidate;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (!hmemPath)
|
|
92
|
+
return writeCache(empty);
|
|
93
|
+
}
|
|
94
|
+
// Load config for checkpoint interval
|
|
95
|
+
const hmemConfig = loadHmemConfig(path.dirname(hmemPath));
|
|
96
|
+
const Database = (await import("better-sqlite3")).default;
|
|
97
|
+
const db = new Database(hmemPath, { readonly: true });
|
|
98
|
+
try {
|
|
99
|
+
// Active project
|
|
100
|
+
let projRow = db.prepare("SELECT id, title FROM memories WHERE prefix='P' AND active=1 LIMIT 1").get();
|
|
101
|
+
if (!projRow) {
|
|
102
|
+
projRow = db.prepare("SELECT id, title FROM memories WHERE prefix='P' AND obsolete!=1 AND irrelevant!=1 ORDER BY updated_at DESC LIMIT 1").get();
|
|
103
|
+
}
|
|
104
|
+
let project = "";
|
|
105
|
+
if (projRow) {
|
|
106
|
+
const name = projRow.title.split("|")[0].trim();
|
|
107
|
+
project = `${projRow.id} ${name}`;
|
|
108
|
+
}
|
|
109
|
+
// Exchange count since last checkpoint
|
|
110
|
+
let exchanges = 0;
|
|
111
|
+
const oRow = db.prepare("SELECT id FROM memories WHERE prefix='O' AND active=1 AND obsolete!=1 AND irrelevant!=1 LIMIT 1").get();
|
|
112
|
+
if (oRow) {
|
|
113
|
+
const totalExchanges = db.prepare("SELECT COUNT(*) as n FROM memory_nodes WHERE root_id = ? AND depth = 2").get(oRow.id)?.n ?? 0;
|
|
114
|
+
const interval = hmemConfig.checkpointInterval;
|
|
115
|
+
exchanges = interval > 0 ? totalExchanges % interval : totalExchanges;
|
|
116
|
+
status = { project, exchanges, interval };
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
status = { project, exchanges: 0, interval: hmemConfig.checkpointInterval };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
db.close();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch { /* ignore */ }
|
|
127
|
+
return writeCache(status);
|
|
128
|
+
}
|
|
129
|
+
function writeCache(value) {
|
|
130
|
+
try {
|
|
131
|
+
const now = Math.floor(Date.now() / 1000);
|
|
132
|
+
fs.writeFileSync(CACHE_FILE, `${now}\n${JSON.stringify(value)}\n`);
|
|
133
|
+
}
|
|
134
|
+
catch { /* ignore */ }
|
|
135
|
+
return value;
|
|
136
|
+
}
|
|
137
|
+
export async function statusline() {
|
|
138
|
+
// Read JSON from stdin
|
|
139
|
+
let input = {};
|
|
140
|
+
try {
|
|
141
|
+
const chunks = [];
|
|
142
|
+
for await (const chunk of process.stdin)
|
|
143
|
+
chunks.push(chunk);
|
|
144
|
+
input = JSON.parse(Buffer.concat(chunks).toString("utf-8"));
|
|
145
|
+
}
|
|
146
|
+
catch { /* no input — still show project */ }
|
|
147
|
+
const parts = [];
|
|
148
|
+
const ctxBar = buildContextBar(input);
|
|
149
|
+
if (ctxBar)
|
|
150
|
+
parts.push(ctxBar);
|
|
151
|
+
const status = await getHmemStatus();
|
|
152
|
+
if (status.project) {
|
|
153
|
+
parts.push(`${C.cyan}${status.project}${C.reset}`);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
parts.push(`${C.gray}no project${C.reset}`);
|
|
157
|
+
}
|
|
158
|
+
// Checkpoint progress: "3/5" exchanges since last checkpoint
|
|
159
|
+
if (status.interval > 0) {
|
|
160
|
+
const ratio = `${status.exchanges}/${status.interval}`;
|
|
161
|
+
// Color: gray normally, yellow when close (1 away), green right after checkpoint (0)
|
|
162
|
+
const cpColor = status.exchanges === 0 ? C.green
|
|
163
|
+
: status.exchanges >= status.interval - 1 ? C.yellow
|
|
164
|
+
: C.gray;
|
|
165
|
+
parts.push(`${cpColor}${ratio}${C.reset}`);
|
|
166
|
+
}
|
|
167
|
+
if (parts.length > 0) {
|
|
168
|
+
const sep = ` ${C.gray}|${C.reset} `;
|
|
169
|
+
process.stdout.write(parts.join(sep));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=cli-statusline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-statusline.js","sourceRoot":"","sources":["../src/cli-statusline.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -25,11 +25,35 @@ switch (command) {
|
|
|
25
25
|
await logExchange();
|
|
26
26
|
break;
|
|
27
27
|
}
|
|
28
|
+
case "context-inject": {
|
|
29
|
+
const { contextInject } = await import("./cli-context-inject.js");
|
|
30
|
+
await contextInject();
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case "checkpoint": {
|
|
34
|
+
const { checkpoint } = await import("./cli-checkpoint.js");
|
|
35
|
+
await checkpoint();
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case "hook-startup": {
|
|
39
|
+
const { hookStartup } = await import("./cli-hook-startup.js");
|
|
40
|
+
await hookStartup();
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case "statusline": {
|
|
44
|
+
const { statusline } = await import("./cli-statusline.js");
|
|
45
|
+
await statusline();
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
28
48
|
case "version":
|
|
29
49
|
case "--version":
|
|
30
|
-
case "-v":
|
|
31
|
-
|
|
50
|
+
case "-v": {
|
|
51
|
+
const { createRequire } = await import("node:module");
|
|
52
|
+
const require = createRequire(import.meta.url);
|
|
53
|
+
const pkg = require("../package.json");
|
|
54
|
+
console.log(`hmem ${pkg.version}`);
|
|
32
55
|
break;
|
|
56
|
+
}
|
|
33
57
|
default:
|
|
34
58
|
console.log(`hmem — Humanlike Memory for AI Agents
|
|
35
59
|
|
|
@@ -38,6 +62,10 @@ Usage:
|
|
|
38
62
|
hmem init Install hmem for AI coding tools (interactive or with flags)
|
|
39
63
|
hmem update-skills Copy/update skill files to detected AI tools
|
|
40
64
|
hmem log-exchange Log a chat exchange to active O-entry (called by Stop hook)
|
|
65
|
+
hmem context-inject Output compressed context for re-injection after /clear
|
|
66
|
+
hmem checkpoint Extract knowledge from recent exchanges via Haiku (background)
|
|
67
|
+
hmem hook-startup UserPromptSubmit hook — counter, checkpoint reminders (cross-platform)
|
|
68
|
+
hmem statusline Generate statusline for Claude Code (reads JSON from stdin)
|
|
41
69
|
hmem version Show version
|
|
42
70
|
|
|
43
71
|
Environment variables (for serve):
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,OAAO;QACV,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM;IAER,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM;IACR,CAAC;IAED,KAAK,eAAe,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,YAAY,EAAE,CAAC;QACf,MAAM;IACR,CAAC;IAED,KAAK,cAAc,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC;IACf,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,OAAO;QACV,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM;IAER,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM;IACR,CAAC;IAED,KAAK,eAAe,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,YAAY,EAAE,CAAC;QACf,MAAM;IACR,CAAC;IAED,KAAK,cAAc,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM;IACR,CAAC;IAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM;IACR,CAAC;IAED,KAAK,YAAY,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC3D,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM;IACR,CAAC;IAED,KAAK,cAAc,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM;IACR,CAAC;IAED,KAAK,YAAY,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC3D,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC;IACf,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI,CAAC,CAAC,CAAC;QACV,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,MAAM;IACR,CAAC;IAED;QACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EA8B6D,CAAC,CAAC;QAC3E,MAAM;AACV,CAAC"}
|
package/dist/hmem-config.d.ts
CHANGED
|
@@ -74,6 +74,37 @@ export interface HmemConfig {
|
|
|
74
74
|
accessMin?: number;
|
|
75
75
|
accessMax?: number;
|
|
76
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Number of messages between automatic save reminders (checkpoint hook).
|
|
79
|
+
* Set to 0 to disable. Default: 20.
|
|
80
|
+
*/
|
|
81
|
+
checkpointInterval: number;
|
|
82
|
+
/**
|
|
83
|
+
* Checkpoint mode: "remind" = inject additionalContext reminder (default),
|
|
84
|
+
* "auto" = spawn a Haiku subagent that saves directly (no user interaction).
|
|
85
|
+
*/
|
|
86
|
+
checkpointMode: "remind" | "auto";
|
|
87
|
+
/**
|
|
88
|
+
* Number of recent O-entries (session logs) to inject at startup and on load_project.
|
|
89
|
+
* Set to 0 to disable. Default: 10.
|
|
90
|
+
*/
|
|
91
|
+
recentOEntries: number;
|
|
92
|
+
/**
|
|
93
|
+
* Token threshold for context clear recommendation.
|
|
94
|
+
* When cumulative hmem output exceeds this, the agent is told to flush + /clear.
|
|
95
|
+
* Set to 0 to disable. Default: 100000.
|
|
96
|
+
*/
|
|
97
|
+
contextTokenThreshold: number;
|
|
98
|
+
/**
|
|
99
|
+
* load_project display configuration: which L2 sections to expand.
|
|
100
|
+
* withBody: L2 seq numbers whose L3 children show title + body (e.g. Overview)
|
|
101
|
+
* withChildren: L2 seq numbers whose L3 children are all listed as titles (e.g. Bugs, Open Tasks)
|
|
102
|
+
* Default: withBody=[1], withChildren=[6,8]
|
|
103
|
+
*/
|
|
104
|
+
loadProjectExpand: {
|
|
105
|
+
withBody: number[];
|
|
106
|
+
withChildren: number[];
|
|
107
|
+
};
|
|
77
108
|
/** Sync configuration — single server or array for multi-server redundancy. */
|
|
78
109
|
sync?: SyncConfigBlock | SyncConfigBlock[];
|
|
79
110
|
}
|
package/dist/hmem-config.js
CHANGED
|
@@ -19,6 +19,7 @@ export const DEFAULT_PREFIXES = {
|
|
|
19
19
|
R: "Rule",
|
|
20
20
|
O: "Original",
|
|
21
21
|
I: "Infrastructure",
|
|
22
|
+
C: "Convention",
|
|
22
23
|
};
|
|
23
24
|
/**
|
|
24
25
|
* Default descriptions for prefix category headers (X0000 entries).
|
|
@@ -38,6 +39,7 @@ export const DEFAULT_PREFIX_DESCRIPTIONS = {
|
|
|
38
39
|
R: "(R)ules — user-defined rules and constraints",
|
|
39
40
|
O: "(O)riginal context — raw session history with progressive summarization (auto-generated by flush_context)",
|
|
40
41
|
I: "(I)nfrastructure — devices, servers, deployments, network. Active device = the one the agent runs on.",
|
|
42
|
+
C: "(C)onventions — reusable patterns, coding standards, and workflows. Entries tagged #universal are loaded with every project.",
|
|
41
43
|
};
|
|
42
44
|
export const DEFAULT_CONFIG = {
|
|
43
45
|
maxCharsPerLevel: [200, 2_500, 10_000, 25_000, 50_000],
|
|
@@ -47,6 +49,14 @@ export const DEFAULT_CONFIG = {
|
|
|
47
49
|
maxTitleChars: 50,
|
|
48
50
|
accessCountTopN: 5,
|
|
49
51
|
prefixDescriptions: { ...DEFAULT_PREFIX_DESCRIPTIONS },
|
|
52
|
+
checkpointInterval: 5,
|
|
53
|
+
checkpointMode: "remind",
|
|
54
|
+
recentOEntries: 10,
|
|
55
|
+
contextTokenThreshold: 100_000,
|
|
56
|
+
loadProjectExpand: {
|
|
57
|
+
withBody: [1], // .1 Overview: show L3 title + body
|
|
58
|
+
withChildren: [6, 8], // .6 Bugs, .8 Open Tasks: list all L3 children as titles
|
|
59
|
+
},
|
|
50
60
|
bulkReadV2: {
|
|
51
61
|
topAccessCount: 3,
|
|
52
62
|
topNewestCount: 5,
|
|
@@ -92,6 +102,8 @@ export function saveHmemConfig(projectDir, config) {
|
|
|
92
102
|
prefixes: config.prefixes,
|
|
93
103
|
prefixDescriptions: config.prefixDescriptions,
|
|
94
104
|
bulkReadV2: config.bulkReadV2,
|
|
105
|
+
recentOEntries: config.recentOEntries,
|
|
106
|
+
contextTokenThreshold: config.contextTokenThreshold,
|
|
95
107
|
},
|
|
96
108
|
};
|
|
97
109
|
if (config.sync) {
|
|
@@ -109,7 +121,7 @@ export function saveHmemConfig(projectDir, config) {
|
|
|
109
121
|
}
|
|
110
122
|
/** Known memory config keys — used to detect unified vs flat format. */
|
|
111
123
|
const MEMORY_KEYS = new Set(["maxL1Chars", "maxLnChars", "maxCharsPerLevel", "maxDepth",
|
|
112
|
-
"defaultReadLimit", "prefixes", "prefixDescriptions", "bulkReadV2", "maxTitleChars", "accessCountTopN"]);
|
|
124
|
+
"defaultReadLimit", "prefixes", "prefixDescriptions", "bulkReadV2", "maxTitleChars", "accessCountTopN", "recentOEntries", "contextTokenThreshold", "loadProjectExpand"]);
|
|
113
125
|
/**
|
|
114
126
|
* Load hmem.config.json from projectDir.
|
|
115
127
|
* Unknown keys are ignored. Missing keys fall back to defaults.
|
|
@@ -128,7 +140,7 @@ export function loadHmemConfig(projectDir) {
|
|
|
128
140
|
&& !Array.isArray(raw.memory)
|
|
129
141
|
&& Object.keys(raw.memory).some((k) => MEMORY_KEYS.has(k));
|
|
130
142
|
const memoryRaw = isUnified ? raw.memory : raw;
|
|
131
|
-
const syncRaw = raw.sync
|
|
143
|
+
const syncRaw = raw.sync ?? undefined;
|
|
132
144
|
const cfg = {
|
|
133
145
|
...DEFAULT_CONFIG,
|
|
134
146
|
prefixDescriptions: { ...DEFAULT_PREFIX_DESCRIPTIONS },
|
|
@@ -142,6 +154,22 @@ export function loadHmemConfig(projectDir) {
|
|
|
142
154
|
cfg.accessCountTopN = memoryRaw.accessCountTopN;
|
|
143
155
|
if (typeof memoryRaw.maxTitleChars === "number" && memoryRaw.maxTitleChars >= 10 && memoryRaw.maxTitleChars <= 120)
|
|
144
156
|
cfg.maxTitleChars = memoryRaw.maxTitleChars;
|
|
157
|
+
if (typeof memoryRaw.checkpointInterval === "number" && memoryRaw.checkpointInterval >= 0)
|
|
158
|
+
cfg.checkpointInterval = memoryRaw.checkpointInterval;
|
|
159
|
+
if (memoryRaw.checkpointMode === "remind" || memoryRaw.checkpointMode === "auto")
|
|
160
|
+
cfg.checkpointMode = memoryRaw.checkpointMode;
|
|
161
|
+
if (typeof memoryRaw.recentOEntries === "number" && memoryRaw.recentOEntries >= 0)
|
|
162
|
+
cfg.recentOEntries = memoryRaw.recentOEntries;
|
|
163
|
+
if (typeof memoryRaw.contextTokenThreshold === "number" && memoryRaw.contextTokenThreshold >= 0)
|
|
164
|
+
cfg.contextTokenThreshold = memoryRaw.contextTokenThreshold;
|
|
165
|
+
// load_project expand config
|
|
166
|
+
if (memoryRaw.loadProjectExpand && typeof memoryRaw.loadProjectExpand === "object") {
|
|
167
|
+
const lpe = memoryRaw.loadProjectExpand;
|
|
168
|
+
if (Array.isArray(lpe.withBody) && lpe.withBody.every((n) => typeof n === "number"))
|
|
169
|
+
cfg.loadProjectExpand.withBody = lpe.withBody;
|
|
170
|
+
if (Array.isArray(lpe.withChildren) && lpe.withChildren.every((n) => typeof n === "number"))
|
|
171
|
+
cfg.loadProjectExpand.withChildren = lpe.withChildren;
|
|
172
|
+
}
|
|
145
173
|
// Prefixes: merge user-defined with defaults (user can override or add)
|
|
146
174
|
if (memoryRaw.prefixes && typeof memoryRaw.prefixes === "object" && !Array.isArray(memoryRaw.prefixes)) {
|
|
147
175
|
const merged = { ...DEFAULT_PREFIXES };
|
|
@@ -209,17 +237,53 @@ export function loadHmemConfig(projectDir) {
|
|
|
209
237
|
else {
|
|
210
238
|
cfg.maxCharsPerLevel = linearLimits(DEFAULT_CONFIG.maxCharsPerLevel[0], DEFAULT_CONFIG.maxCharsPerLevel[DEFAULT_CONFIG.maxCharsPerLevel.length - 1], cfg.maxDepth);
|
|
211
239
|
}
|
|
212
|
-
// Parse sync section
|
|
213
|
-
if (syncRaw
|
|
214
|
-
|
|
215
|
-
serverUrl
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
240
|
+
// Parse sync section — supports single object or array (multi-server)
|
|
241
|
+
if (syncRaw) {
|
|
242
|
+
const parseSyncBlock = (s) => {
|
|
243
|
+
if (!s || typeof s !== "object" || !s.serverUrl || !s.userId || !s.salt)
|
|
244
|
+
return null;
|
|
245
|
+
return {
|
|
246
|
+
serverUrl: s.serverUrl, userId: s.userId, salt: s.salt,
|
|
247
|
+
token: s.token, syncSecrets: s.syncSecrets !== undefined ? s.syncSecrets : true,
|
|
248
|
+
lastPushAt: s.lastPushAt ?? null, lastPullAt: s.lastPullAt ?? null,
|
|
249
|
+
...(s.name ? { name: s.name } : {}),
|
|
250
|
+
};
|
|
222
251
|
};
|
|
252
|
+
if (Array.isArray(syncRaw)) {
|
|
253
|
+
const blocks = syncRaw.map(parseSyncBlock).filter((b) => b !== null);
|
|
254
|
+
if (blocks.length > 0)
|
|
255
|
+
cfg.sync = blocks;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
const block = parseSyncBlock(syncRaw);
|
|
259
|
+
if (block)
|
|
260
|
+
cfg.sync = block;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Auto-migrate legacy (flat) config to unified { memory: { ... } } format
|
|
264
|
+
if (!isUnified) {
|
|
265
|
+
try {
|
|
266
|
+
// Preserve any extra keys (sync, lastSeenVersion, etc.)
|
|
267
|
+
const migrated = {};
|
|
268
|
+
migrated.memory = {
|
|
269
|
+
maxCharsPerLevel: cfg.maxCharsPerLevel,
|
|
270
|
+
maxDepth: cfg.maxDepth,
|
|
271
|
+
defaultReadLimit: cfg.defaultReadLimit,
|
|
272
|
+
maxTitleChars: cfg.maxTitleChars,
|
|
273
|
+
accessCountTopN: cfg.accessCountTopN,
|
|
274
|
+
checkpointInterval: cfg.checkpointInterval,
|
|
275
|
+
checkpointMode: cfg.checkpointMode,
|
|
276
|
+
recentOEntries: cfg.recentOEntries,
|
|
277
|
+
contextTokenThreshold: cfg.contextTokenThreshold,
|
|
278
|
+
};
|
|
279
|
+
if (raw.sync)
|
|
280
|
+
migrated.sync = raw.sync;
|
|
281
|
+
fs.writeFileSync(configPath, JSON.stringify(migrated, null, 2) + "\n", "utf-8");
|
|
282
|
+
console.error(`[hmem] Config auto-migrated to v5 format → hmem.config.json updated`);
|
|
283
|
+
}
|
|
284
|
+
catch (migErr) {
|
|
285
|
+
console.error(`[hmem] Config migration failed: ${migErr}`);
|
|
286
|
+
}
|
|
223
287
|
}
|
|
224
288
|
return cfg;
|
|
225
289
|
}
|
package/dist/hmem-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmem-config.js","sourceRoot":"","sources":["../src/hmem-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hmem-config.js","sourceRoot":"","sources":["../src/hmem-config.ts"],"names":[],"mappings":"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"}
|
package/dist/hmem-store.d.ts
CHANGED
|
@@ -50,6 +50,8 @@ export interface MemoryEntry {
|
|
|
50
50
|
irrelevant?: boolean;
|
|
51
51
|
/** True if this entry is actively relevant (root-only). When any entry in a prefix has active=1, only active entries of that prefix are expanded in bulk reads. */
|
|
52
52
|
active?: boolean;
|
|
53
|
+
/** ISO timestamp of last modification (write/update/append). Used for sync status. */
|
|
54
|
+
updated_at?: string;
|
|
53
55
|
/** True if this entry was already delivered in a previous bulk read (session cache). */
|
|
54
56
|
suppressed?: boolean;
|
|
55
57
|
/**
|
|
@@ -57,7 +59,7 @@ export interface MemoryEntry {
|
|
|
57
59
|
* 'favorite' = favorite flag set, 'access' = top-N by access_count.
|
|
58
60
|
* Rendered as [♥] or [★] in output.
|
|
59
61
|
*/
|
|
60
|
-
promoted?: "access" | "favorite" | "subnode";
|
|
62
|
+
promoted?: "access" | "favorite" | "subnode" | "task";
|
|
61
63
|
/**
|
|
62
64
|
* In bulk reads: number of direct children NOT shown (only the latest child is included).
|
|
63
65
|
* undefined = ID-based read (all direct children shown as usual).
|
|
@@ -159,6 +161,8 @@ export interface ReadOptions {
|
|
|
159
161
|
contextFor?: string;
|
|
160
162
|
/** Minimum weighted tag score for context_for matches. Default: 4. Tier weights: rare(<=5)=3, medium(6-20)=2, common(>20)=1. */
|
|
161
163
|
minTagScore?: number;
|
|
164
|
+
/** Bypass V2 selection, project gate, and session cache — return all matching rows directly. Used for explicit filters (after, before, prefix, tag, stale_days). */
|
|
165
|
+
directResults?: boolean;
|
|
162
166
|
}
|
|
163
167
|
export interface WriteResult {
|
|
164
168
|
id: string;
|
|
@@ -255,6 +259,26 @@ export declare class HmemStore {
|
|
|
255
259
|
*/
|
|
256
260
|
importFromHmem(sourcePath: string, dryRun?: boolean): ImportResult;
|
|
257
261
|
private _doImport;
|
|
262
|
+
/**
|
|
263
|
+
* Get the most recent O-entries (session logs), optionally filtered by project link.
|
|
264
|
+
* Returns entries ordered by created_at DESC (newest first).
|
|
265
|
+
*/
|
|
266
|
+
getRecentOEntries(limit: number, linkedTo?: string): {
|
|
267
|
+
id: string;
|
|
268
|
+
title: string;
|
|
269
|
+
created_at: string;
|
|
270
|
+
}[];
|
|
271
|
+
/**
|
|
272
|
+
* Get the last N exchanges (user message + agent response) from an O-entry.
|
|
273
|
+
* Exchange structure: L2 = title, L4 (X.1) = user message, L5 (X.1.1) = agent response.
|
|
274
|
+
* Returns newest first.
|
|
275
|
+
*/
|
|
276
|
+
getOEntryExchanges(oEntryId: string, limit: number, skipSkillDialogs?: boolean): {
|
|
277
|
+
nodeId: string;
|
|
278
|
+
seq: number;
|
|
279
|
+
userText: string;
|
|
280
|
+
agentText: string;
|
|
281
|
+
}[];
|
|
258
282
|
/**
|
|
259
283
|
* Get statistics about the memory store.
|
|
260
284
|
*/
|
|
@@ -302,6 +326,22 @@ export declare class HmemStore {
|
|
|
302
326
|
appendExchange(parentId: string, userText: string, agentText: string): {
|
|
303
327
|
id: string;
|
|
304
328
|
};
|
|
329
|
+
/**
|
|
330
|
+
* Append a checkpoint summary as a tagged L2 node under an O-entry.
|
|
331
|
+
* The summary sits alongside exchanges in the L2 sequence.
|
|
332
|
+
* Returns the node ID.
|
|
333
|
+
*/
|
|
334
|
+
appendCheckpointSummary(oEntryId: string, summaryText: string): string;
|
|
335
|
+
/**
|
|
336
|
+
* Get checkpoint summaries for an O-entry, newest first.
|
|
337
|
+
* Returns the summary content + the seq number (to know which exchanges it covers).
|
|
338
|
+
*/
|
|
339
|
+
getCheckpointSummaries(oEntryId: string, limit?: number): {
|
|
340
|
+
nodeId: string;
|
|
341
|
+
seq: number;
|
|
342
|
+
content: string;
|
|
343
|
+
created_at: string;
|
|
344
|
+
}[];
|
|
305
345
|
/**
|
|
306
346
|
* Bump access_count on a root entry or node.
|
|
307
347
|
* Returns true if the entry was found and bumped.
|
|
@@ -318,6 +358,10 @@ export declare class HmemStore {
|
|
|
318
358
|
private validateTags;
|
|
319
359
|
/** Replace all tags on an entry/node. Pass empty array to clear. */
|
|
320
360
|
private setTags;
|
|
361
|
+
/** Add a single tag to an entry/node without removing existing tags. */
|
|
362
|
+
addTag(entryId: string, tag: string): void;
|
|
363
|
+
/** Find and tag untagged checkpoint summary nodes ([CP] prefix) under an O-entry. */
|
|
364
|
+
tagNewCheckpointSummaries(oEntryId: string): string[];
|
|
321
365
|
/** Get tags for a single entry/node. */
|
|
322
366
|
private fetchTags;
|
|
323
367
|
/** Bulk-fetch tags for multiple IDs at once. */
|
|
@@ -394,7 +438,24 @@ export declare class HmemStore {
|
|
|
394
438
|
/** Count L2 children of a root entry (direct children only). */
|
|
395
439
|
countDirectChildren(rootId: string): number;
|
|
396
440
|
getActiveO(): string;
|
|
441
|
+
/** Get the active O-entry ID without creating one. Returns null if none active. */
|
|
442
|
+
getActiveOId(): string | null;
|
|
443
|
+
/** Get the active project entry. Returns null if none active. */
|
|
444
|
+
getActiveProject(): {
|
|
445
|
+
id: string;
|
|
446
|
+
title: string;
|
|
447
|
+
} | null;
|
|
448
|
+
/** Find a child node by content/title pattern. Returns node ID or null. */
|
|
449
|
+
findChildNode(parentId: string, pattern: string, depth?: number): string | null;
|
|
450
|
+
/** Find a child node of a root entry by content/title pattern. */
|
|
451
|
+
findRootChildNode(rootId: string, pattern: string, depth: number): string | null;
|
|
397
452
|
bumpAccess(id: string): void;
|
|
453
|
+
/**
|
|
454
|
+
* Auto-purge: physically delete irrelevant entries older than maxAgeDays.
|
|
455
|
+
* Only deletes entries where irrelevant=1 — entries rescued by bumpAccess survive.
|
|
456
|
+
* Returns the number of deleted entries.
|
|
457
|
+
*/
|
|
458
|
+
purgeIrrelevant(maxAgeDays?: number): number;
|
|
398
459
|
private bumpNodeAccess;
|
|
399
460
|
/**
|
|
400
461
|
* Follow the obsolete chain from an entry to its final valid correction.
|