abmind 0.1.1 → 0.1.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.
- package/CHANGELOG.md +31 -24
- package/README.md +7 -4
- package/dist/cli/abmind-doctor.d.ts +8 -0
- package/dist/cli/abmind-doctor.d.ts.map +1 -0
- package/dist/cli/abmind-doctor.js +179 -0
- package/dist/cli/abmind-doctor.js.map +1 -0
- package/dist/cli/abmind-hook-recall.js +4 -2
- package/dist/cli/abmind-hook-recall.js.map +1 -1
- package/dist/cli/abmind-hook-wakeup.js +42 -2
- package/dist/cli/abmind-hook-wakeup.js.map +1 -1
- package/dist/cli/abmind-install-host.d.ts +7 -0
- package/dist/cli/abmind-install-host.d.ts.map +1 -0
- package/dist/cli/abmind-install-host.js +310 -0
- package/dist/cli/abmind-install-host.js.map +1 -0
- package/dist/cli/abmind-install.d.ts +1 -1
- package/dist/cli/abmind-install.js +1 -1
- package/dist/cli/abmind-rollback.d.ts +1 -1
- package/dist/cli/abmind-rollback.js +1 -1
- package/dist/cli/abmind-store.js +1 -1
- package/dist/cli/abmind-store.js.map +1 -1
- package/dist/cli/abmind-update.d.ts +2 -2
- package/dist/cli/abmind-update.js +50 -5
- package/dist/cli/abmind-update.js.map +1 -1
- package/dist/cli/abmind.d.ts +1 -1
- package/dist/cli/abmind.js +5 -2
- package/dist/cli/abmind.js.map +1 -1
- package/dist/cli/hook-output.d.ts +11 -0
- package/dist/cli/hook-output.d.ts.map +1 -0
- package/dist/cli/hook-output.js +33 -0
- package/dist/cli/hook-output.js.map +1 -0
- package/dist/src/atomic-write.d.ts +5 -0
- package/dist/src/atomic-write.d.ts.map +1 -0
- package/dist/src/atomic-write.js +18 -0
- package/dist/src/atomic-write.js.map +1 -0
- package/dist/src/backup.d.ts +2 -2
- package/dist/src/backup.d.ts.map +1 -1
- package/dist/src/backup.js +16 -6
- package/dist/src/backup.js.map +1 -1
- package/dist/src/context-engine.d.ts.map +1 -1
- package/dist/src/context-engine.js +5 -0
- package/dist/src/context-engine.js.map +1 -1
- package/dist/src/context-orchestrator.d.ts +55 -0
- package/dist/src/context-orchestrator.d.ts.map +1 -0
- package/dist/src/context-orchestrator.js +177 -0
- package/dist/src/context-orchestrator.js.map +1 -0
- package/dist/src/crypto.d.ts +8 -2
- package/dist/src/crypto.d.ts.map +1 -1
- package/dist/src/crypto.js +23 -6
- package/dist/src/crypto.js.map +1 -1
- package/dist/src/deploy-lib/cleanup.d.ts +1 -1
- package/dist/src/deploy-lib/cleanup.js +1 -1
- package/dist/src/ensure-initialized.d.ts +13 -0
- package/dist/src/ensure-initialized.d.ts.map +1 -0
- package/dist/src/ensure-initialized.js +57 -0
- package/dist/src/ensure-initialized.js.map +1 -0
- package/dist/src/entity-graph.d.ts.map +1 -1
- package/dist/src/entity-graph.js +4 -1
- package/dist/src/entity-graph.js.map +1 -1
- package/dist/src/imemory-system.d.ts +6 -1
- package/dist/src/imemory-system.d.ts.map +1 -1
- package/dist/src/index.d.ts +26 -58
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +31 -65
- package/dist/src/index.js.map +1 -1
- package/dist/src/ingest-pipeline.d.ts.map +1 -1
- package/dist/src/ingest-pipeline.js +6 -3
- package/dist/src/ingest-pipeline.js.map +1 -1
- package/dist/src/injection-scanner.d.ts.map +1 -1
- package/dist/src/injection-scanner.js +10 -1
- package/dist/src/injection-scanner.js.map +1 -1
- package/dist/src/mcp-server.js +1 -1
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mem-logger.d.ts +4 -13
- package/dist/src/mem-logger.d.ts.map +1 -1
- package/dist/src/mem-logger.js +79 -20
- package/dist/src/mem-logger.js.map +1 -1
- package/dist/src/mem-types.d.ts +1 -0
- package/dist/src/mem-types.d.ts.map +1 -1
- package/dist/src/memory-db.d.ts +6 -1
- package/dist/src/memory-db.d.ts.map +1 -1
- package/dist/src/memory-db.js +10 -1
- package/dist/src/memory-db.js.map +1 -1
- package/dist/src/memory-editor.d.ts +1 -0
- package/dist/src/memory-editor.d.ts.map +1 -1
- package/dist/src/memory-editor.js +70 -2
- package/dist/src/memory-editor.js.map +1 -1
- package/dist/src/memory-manager.d.ts +7 -1
- package/dist/src/memory-manager.d.ts.map +1 -1
- package/dist/src/memory-manager.js +26 -6
- package/dist/src/memory-manager.js.map +1 -1
- package/dist/src/message-store.d.ts +1 -1
- package/dist/src/message-store.d.ts.map +1 -1
- package/dist/src/message-store.js +12 -3
- package/dist/src/message-store.js.map +1 -1
- package/dist/src/meta-store.d.ts +10 -0
- package/dist/src/meta-store.d.ts.map +1 -0
- package/dist/src/meta-store.js +20 -0
- package/dist/src/meta-store.js.map +1 -0
- package/dist/src/native-loader.d.ts +7 -0
- package/dist/src/native-loader.d.ts.map +1 -0
- package/dist/src/native-loader.js +21 -0
- package/dist/src/native-loader.js.map +1 -0
- package/dist/src/ollama-embed.d.ts +1 -1
- package/dist/src/ollama-embed.d.ts.map +1 -1
- package/dist/src/ollama-embed.js +4 -5
- package/dist/src/ollama-embed.js.map +1 -1
- package/dist/src/openclaw-plugin/index.d.ts.map +1 -1
- package/dist/src/openclaw-plugin/index.js +30 -0
- package/dist/src/openclaw-plugin/index.js.map +1 -1
- package/dist/src/openclaw-plugin/tools.d.ts.map +1 -1
- package/dist/src/openclaw-plugin/tools.js +2 -0
- package/dist/src/openclaw-plugin/tools.js.map +1 -1
- package/dist/src/query-tokenizer.d.ts.map +1 -1
- package/dist/src/query-tokenizer.js +3 -2
- package/dist/src/query-tokenizer.js.map +1 -1
- package/dist/src/recall-benchmark.js +2 -1
- package/dist/src/recall-benchmark.js.map +1 -1
- package/dist/src/recall-engine.d.ts +2 -0
- package/dist/src/recall-engine.d.ts.map +1 -1
- package/dist/src/recall-engine.js +65 -5
- package/dist/src/recall-engine.js.map +1 -1
- package/dist/src/runtime-store.d.ts +1 -1
- package/dist/src/runtime-store.js +1 -1
- package/dist/src/session-context.js +1 -1
- package/dist/src/session-context.js.map +1 -1
- package/dist/src/sleep/basic.d.ts.map +1 -1
- package/dist/src/sleep/basic.js +2 -0
- package/dist/src/sleep/basic.js.map +1 -1
- package/dist/src/sleep/native.d.ts.map +1 -1
- package/dist/src/sleep/native.js +2 -0
- package/dist/src/sleep/native.js.map +1 -1
- package/dist/src/sleep/orchestrator.d.ts.map +1 -1
- package/dist/src/sleep/orchestrator.js +87 -5
- package/dist/src/sleep/orchestrator.js.map +1 -1
- package/dist/src/sleep/sleep-daily-summary.d.ts.map +1 -1
- package/dist/src/sleep/sleep-daily-summary.js +4 -2
- package/dist/src/sleep/sleep-daily-summary.js.map +1 -1
- package/dist/src/sleep/sleep-prompt-loader.d.ts +3 -3
- package/dist/src/sleep/sleep-prompt-loader.d.ts.map +1 -1
- package/dist/src/sleep/sleep-prompt-loader.js +19 -8
- package/dist/src/sleep/sleep-prompt-loader.js.map +1 -1
- package/dist/src/sleep/test-harness.d.ts.map +1 -1
- package/dist/src/sleep/test-harness.js +3 -2
- package/dist/src/sleep/test-harness.js.map +1 -1
- package/dist/src/sleep-data-access.js +2 -2
- package/dist/src/sleep-data-access.js.map +1 -1
- package/dist/src/sleep-state-gatherer.js +3 -3
- package/dist/src/sleep-state-gatherer.js.map +1 -1
- package/dist/src/tool-result-pruner.d.ts +29 -0
- package/dist/src/tool-result-pruner.d.ts.map +1 -0
- package/dist/src/tool-result-pruner.js +118 -0
- package/dist/src/tool-result-pruner.js.map +1 -0
- package/package.json +4 -1
- package/prompts/sleep/04-retrospective.md +1 -1
- package/prompts/sleep/07-topic-assignment.md +2 -2
- package/prompts/sleep/11-skill-review.md +2 -2
- package/prompts/sleep/SOUL-Dreamy.md +19 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,34 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to abmind
|
|
3
|
+
All notable changes to abmind. Follows [Keep a Changelog](https://keepachangelog.com/).
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html) — pre-1.0 contracts may drift between minor versions.
|
|
7
|
-
|
|
8
|
-
## [0.1.0] — 2026-04-19
|
|
9
|
-
|
|
10
|
-
First release with the sleep orchestrator living inside abmind. Previously abmind shipped memory + recall only; the orchestrator lived in AgentBridge.
|
|
5
|
+
## [0.1.2] — 2026-05-07
|
|
11
6
|
|
|
12
7
|
### Added
|
|
13
|
-
|
|
14
|
-
- **
|
|
15
|
-
-
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
-
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
- **Publish metadata** — `types`, `exports.types` condition, `repository`, `bugs`, `homepage`, `keywords`, `publishConfig`, `files` array scoped to shipped artifacts.
|
|
23
|
-
- **`CHANGELOG.md`** — this file.
|
|
8
|
+
- **Context Orchestrator** — moved from abtars into abmind (memory logic owns context)
|
|
9
|
+
- **Lazy runtime init** — `ensureInitialized()` seeds core files + runs schema migrations on first use
|
|
10
|
+
- **SOUL-Dreamy.md** — sleep identity prompt (context injection, not separate LLM call)
|
|
11
|
+
- **abmind doctor** — CLI health check (permissions, DB integrity, ollama, sqlite-vec)
|
|
12
|
+
- **Emotion boost** — `applyEmotionBoost` in recall engine (linear |e|×0.02, tie-breaker only)
|
|
13
|
+
- **Tool result pruner** — truncates oversized tool outputs before context injection
|
|
14
|
+
- **Native loader** — loads sqlite-vec from `~/.abmind/lib/` via createRequire
|
|
15
|
+
- **Bundled core templates** — SOUL.md, user_profile.md, agent_notes.md, core_facts.md, memory-tools.md
|
|
16
|
+
- **File logging** — standalone mode writes to `~/.abmind/logs/`
|
|
24
17
|
|
|
25
18
|
### Changed
|
|
19
|
+
- Public API shrunk from ~120 to ~36 exports (#432)
|
|
20
|
+
- Sleep orchestrator: identity step is context injection (prepended to first real step)
|
|
21
|
+
- Recall: `applySpacingBoost` pipeline stage
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
23
|
+
### Fixed
|
|
24
|
+
- Sleep audit regex matched 6-digit time but files use 4-digit (#444)
|
|
25
|
+
- Crypto: `decryptWithKey` uses provided key correctly
|
|
30
26
|
|
|
31
|
-
|
|
27
|
+
## [0.1.0] — 2026-04-15
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
-
|
|
29
|
+
### Added
|
|
30
|
+
- Memory engine — SQLite + FTS5 + trigram + vector search (sqlite-vec)
|
|
31
|
+
- 4-layer recall: full-text, trigram, semantic embeddings, consolidated summaries
|
|
32
|
+
- Ingest pipeline — entity extraction, emotion tagging, classification
|
|
33
|
+
- Sleep system — 17-step overnight maintenance (gc-noise, daily summary, extract, retrospective, consolidate, prune)
|
|
34
|
+
- OpenClaw plugin — memory tools for OpenClaw gateway
|
|
35
|
+
- CLI hooks — `hook-wakeup`, `hook-recall`, `hook-store` for external integrations
|
|
36
|
+
- Credential vault — encrypted secret storage (AES-256-GCM)
|
|
37
|
+
- Injection scanner — detects prompt injection in stored content
|
|
38
|
+
- NATO Admiralty Code classification (0-3 clearance levels)
|
|
39
|
+
- Session context builder — wake-up context for new sessions
|
|
40
|
+
- Embedding provider — Ollama nomic-embed-text (local, no API key)
|
|
41
|
+
- Backup/restore — `abmind backup`, `abmind restore`
|
package/README.md
CHANGED
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Persistent memory system for AI agents — store, recall, consolidate, and forget.
|
|
4
4
|
|
|
5
|
-
SQLite-backed, 4-layer recall (FTS5 + trigram + embeddings + consolidated summaries), overnight sleep maintenance, injection detection, and a classification system inspired by NATO Admiralty Codes.
|
|
5
|
+
SQLite-backed, 4-layer recall (FTS5 + trigram + embeddings + consolidated summaries), overnight sleep maintenance, injection detection, context orchestration, and a classification system inspired by NATO Admiralty Codes.
|
|
6
|
+
|
|
7
|
+
**Version:** 0.1.2 | **Docs:** [aksika.github.io/abmind](https://aksika.github.io/abmind/) | **License:** Apache 2.0
|
|
6
8
|
|
|
7
9
|
## Install
|
|
8
10
|
|
|
9
11
|
```bash
|
|
10
12
|
npm install abmind
|
|
13
|
+
abmind install
|
|
11
14
|
```
|
|
12
15
|
|
|
13
|
-
Requires Node 22+.
|
|
16
|
+
Requires Node 22+. Full guide: [docs/install.md](docs/install.md)
|
|
14
17
|
|
|
15
18
|
## Library Usage
|
|
16
19
|
|
|
@@ -148,7 +151,7 @@ Add to your host's MCP config:
|
|
|
148
151
|
{ "mcpServers": { "abmind": { "command": "abmind", "args": ["mcp"] } } }
|
|
149
152
|
```
|
|
150
153
|
|
|
151
|
-
Works with kiro-cli, Claude Code, Cursor, OpenCode, and any MCP-compatible host.
|
|
154
|
+
Works with kiro-cli, Claude Code, Codex CLI, Gemini CLI, Cursor, OpenCode, and any MCP-compatible host.
|
|
152
155
|
|
|
153
156
|
## Integration Paths
|
|
154
157
|
|
|
@@ -158,7 +161,7 @@ Works with kiro-cli, Claude Code, Cursor, OpenCode, and any MCP-compatible host.
|
|
|
158
161
|
| **MCP server** (`abmind mcp`) | Editors + hosts with MCP support |
|
|
159
162
|
| **CLI** (`abmind store/recall/...`) | Shell scripts, automation |
|
|
160
163
|
| **OpenClaw plugin** | Native OpenClaw memory slot replacement |
|
|
161
|
-
| **
|
|
164
|
+
| **abtars** | In-process memory for the bridge runtime |
|
|
162
165
|
|
|
163
166
|
## Data Location
|
|
164
167
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abmind-doctor.d.ts","sourceRoot":"","sources":["../../cli/abmind-doctor.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* abmind doctor — health check CLI (#442).
|
|
4
|
+
* Checks permissions, DB, ollama, templates, sqlite-vec.
|
|
5
|
+
* --fix auto-corrects what it can.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, statSync, readdirSync, accessSync, constants, chmodSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
const home = process.env.ABMIND_HOME ?? join(homedir(), ".abmind");
|
|
11
|
+
const fix = process.argv.includes("--fix");
|
|
12
|
+
const results = [];
|
|
13
|
+
function check(name, fn) {
|
|
14
|
+
try {
|
|
15
|
+
const r = fn();
|
|
16
|
+
results.push(r);
|
|
17
|
+
const icon = r.status === "ok" ? "[OK] " : r.status === "warn" ? "[WARN]" : r.status === "skip" ? "[SKIP]" : "[ERR] ";
|
|
18
|
+
process.stdout.write(`${icon} ${name}: ${r.message}\n`);
|
|
19
|
+
if (fix && r.fix && r.status === "warn") {
|
|
20
|
+
r.fix();
|
|
21
|
+
process.stdout.write(`[FIX] ${name} → corrected\n`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
results.push({ status: "error", message: String(err) });
|
|
26
|
+
process.stdout.write(`[ERR] ${name}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function checkDirMode(path, expected) {
|
|
30
|
+
if (!existsSync(path))
|
|
31
|
+
return { status: "warn", message: "missing" };
|
|
32
|
+
const mode = statSync(path).mode & 0o777;
|
|
33
|
+
if (mode === expected)
|
|
34
|
+
return { status: "ok", message: `${path} (${mode.toString(8)})` };
|
|
35
|
+
return { status: "warn", message: `${mode.toString(8)} — should be ${expected.toString(8)}`, fix: () => chmodSync(path, expected) };
|
|
36
|
+
}
|
|
37
|
+
function checkFilesMode(dir, expected) {
|
|
38
|
+
if (!existsSync(dir))
|
|
39
|
+
return { status: "skip", message: "dir missing" };
|
|
40
|
+
const bad = [];
|
|
41
|
+
for (const f of readdirSync(dir)) {
|
|
42
|
+
const p = join(dir, f);
|
|
43
|
+
const st = statSync(p);
|
|
44
|
+
if (st.isFile() && (st.mode & 0o777) !== expected)
|
|
45
|
+
bad.push(f);
|
|
46
|
+
}
|
|
47
|
+
if (bad.length === 0)
|
|
48
|
+
return { status: "ok", message: `all files ${expected.toString(8)}` };
|
|
49
|
+
return {
|
|
50
|
+
status: "warn",
|
|
51
|
+
message: `${bad.length} file(s) not ${expected.toString(8)}: ${bad.slice(0, 3).join(", ")}`,
|
|
52
|
+
fix: () => { for (const f of bad)
|
|
53
|
+
chmodSync(join(dir, f), expected); },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// ── Checks ──────────────────────────────────────────────────────────────────
|
|
57
|
+
process.stdout.write(`abmind doctor\n${"=".repeat(40)}\n`);
|
|
58
|
+
check("root ~/.abmind/", () => checkDirMode(home, 0o700));
|
|
59
|
+
check("config/ permissions", () => checkDirMode(join(home, "config"), 0o700));
|
|
60
|
+
check("config/* files", () => checkFilesMode(join(home, "config"), 0o600));
|
|
61
|
+
check("memory/ permissions", () => checkDirMode(join(home, "memory"), 0o700));
|
|
62
|
+
check("memory.db exists", () => {
|
|
63
|
+
const p = join(home, "memory", "memory.db");
|
|
64
|
+
return existsSync(p) ? { status: "ok", message: p } : { status: "warn", message: "missing — run abmind to initialize" };
|
|
65
|
+
});
|
|
66
|
+
check("core templates", () => {
|
|
67
|
+
const coreDir = join(home, "memory", "core");
|
|
68
|
+
if (!existsSync(coreDir))
|
|
69
|
+
return { status: "warn", message: "missing — run abmind install" };
|
|
70
|
+
const files = readdirSync(coreDir).filter(f => f.endsWith(".md"));
|
|
71
|
+
return files.length >= 4
|
|
72
|
+
? { status: "ok", message: `${files.length} templates` }
|
|
73
|
+
: { status: "warn", message: `only ${files.length} templates (expected ≥4)` };
|
|
74
|
+
});
|
|
75
|
+
check("logs/ writable", () => {
|
|
76
|
+
const logsDir = join(home, "logs");
|
|
77
|
+
if (!existsSync(logsDir))
|
|
78
|
+
return { status: "warn", message: "missing", fix: () => { require("fs").mkdirSync(logsDir, { recursive: true, mode: 0o700 }); } };
|
|
79
|
+
try {
|
|
80
|
+
accessSync(logsDir, constants.W_OK);
|
|
81
|
+
return { status: "ok", message: "writable" };
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return { status: "warn", message: "not writable" };
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
check("ollama reachable", () => {
|
|
88
|
+
try {
|
|
89
|
+
const { execSync } = require("child_process");
|
|
90
|
+
execSync("curl -sf http://localhost:11434/api/tags", { timeout: 3000, stdio: "pipe" });
|
|
91
|
+
return { status: "ok", message: "localhost:11434" };
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return { status: "warn", message: "ollama not running or not reachable" };
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
check("embedding model", () => {
|
|
98
|
+
try {
|
|
99
|
+
const { execSync } = require("child_process");
|
|
100
|
+
const out = execSync("curl -sf http://localhost:11434/api/tags", { timeout: 3000, encoding: "utf-8" });
|
|
101
|
+
const models = JSON.parse(out).models?.map((m) => m.name) ?? [];
|
|
102
|
+
const has = models.some((n) => n.includes("nomic-embed-text"));
|
|
103
|
+
return has ? { status: "ok", message: "nomic-embed-text" } : { status: "warn", message: `not found (available: ${models.slice(0, 3).join(", ")})` };
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return { status: "skip", message: "ollama not reachable" };
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
check("sqlite-vec", () => {
|
|
110
|
+
try {
|
|
111
|
+
require.resolve("sqlite-vec");
|
|
112
|
+
return { status: "ok", message: "loadable" };
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return { status: "warn", message: "not installed (brute-force fallback)" };
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
check("IPC socket", () => {
|
|
119
|
+
const sock = join(home, "memory.sock");
|
|
120
|
+
if (!existsSync(sock))
|
|
121
|
+
return { status: "skip", message: "not running (bridge offline)" };
|
|
122
|
+
return { status: "ok", message: sock };
|
|
123
|
+
});
|
|
124
|
+
// _meta checks (#447)
|
|
125
|
+
check("sleep health", () => {
|
|
126
|
+
const dbPath = join(home, "memory", "memory.db");
|
|
127
|
+
if (!existsSync(dbPath))
|
|
128
|
+
return { status: "skip", message: "no DB" };
|
|
129
|
+
try {
|
|
130
|
+
const Database = require("better-sqlite3");
|
|
131
|
+
const db = new Database(dbPath, { readonly: true });
|
|
132
|
+
const get = (key) => {
|
|
133
|
+
const row = db.prepare("SELECT value FROM _meta WHERE key = ?").get(key);
|
|
134
|
+
return row?.value ?? null;
|
|
135
|
+
};
|
|
136
|
+
const lastSuccess = get("sleep_last_success_ts");
|
|
137
|
+
const failures = parseInt(get("sleep_consecutive_failures") ?? "0", 10);
|
|
138
|
+
db.close();
|
|
139
|
+
if (failures > 3)
|
|
140
|
+
return { status: "warn", message: `${failures} consecutive failures` };
|
|
141
|
+
if (lastSuccess) {
|
|
142
|
+
const ageH = Math.round((Date.now() - parseInt(lastSuccess, 10)) / 3600000);
|
|
143
|
+
if (ageH > 48)
|
|
144
|
+
return { status: "warn", message: `last success ${ageH}h ago (>48h)` };
|
|
145
|
+
return { status: "ok", message: `last success ${ageH}h ago, ${failures} failures` };
|
|
146
|
+
}
|
|
147
|
+
return { status: "skip", message: "no sleep runs recorded yet" };
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return { status: "skip", message: "cannot read _meta" };
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
check("backup age", () => {
|
|
154
|
+
const dbPath = join(home, "memory", "memory.db");
|
|
155
|
+
if (!existsSync(dbPath))
|
|
156
|
+
return { status: "skip", message: "no DB" };
|
|
157
|
+
try {
|
|
158
|
+
const Database = require("better-sqlite3");
|
|
159
|
+
const db = new Database(dbPath, { readonly: true });
|
|
160
|
+
const row = db.prepare("SELECT value FROM _meta WHERE key = 'last_backup_ts'").get();
|
|
161
|
+
db.close();
|
|
162
|
+
if (!row)
|
|
163
|
+
return { status: "warn", message: "no backup recorded" };
|
|
164
|
+
const ageD = Math.round((Date.now() - parseInt(row.value, 10)) / 86400000);
|
|
165
|
+
if (ageD > 7)
|
|
166
|
+
return { status: "warn", message: `last backup ${ageD} days ago (>7d)` };
|
|
167
|
+
return { status: "ok", message: `last backup ${ageD}d ago` };
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return { status: "skip", message: "cannot read _meta" };
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
// ── Summary ─────────────────────────────────────────────────────────────────
|
|
174
|
+
const ok = results.filter(r => r.status === "ok").length;
|
|
175
|
+
const warn = results.filter(r => r.status === "warn").length;
|
|
176
|
+
const err = results.filter(r => r.status === "error").length;
|
|
177
|
+
process.stdout.write(`\n${ok} passed, ${warn} warnings, ${err} errors\n`);
|
|
178
|
+
process.exit(err > 0 ? 1 : 0);
|
|
179
|
+
//# sourceMappingURL=abmind-doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abmind-doctor.js","sourceRoot":"","sources":["../../cli/abmind-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,8 +107,10 @@ Env vars:
|
|
|
107
107
|
lines.push(line);
|
|
108
108
|
total += line.length + 1;
|
|
109
109
|
}
|
|
110
|
-
if (lines.length > 1)
|
|
111
|
-
|
|
110
|
+
if (lines.length > 1) {
|
|
111
|
+
const { resolveHookFormat, writeHookOutput } = await import("./hook-output.js");
|
|
112
|
+
writeHookOutput(lines.join("\n") + "\n", resolveHookFormat());
|
|
113
|
+
}
|
|
112
114
|
}
|
|
113
115
|
finally {
|
|
114
116
|
memory.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-hook-recall.js","sourceRoot":"","sources":["../../cli/abmind-hook-recall.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"abmind-hook-recall.js","sourceRoot":"","sources":["../../cli/abmind-hook-recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,20 +57,31 @@ Disable via env var: ABMIND_HOOKS_DISABLED=true`,
|
|
|
57
57
|
}
|
|
58
58
|
try {
|
|
59
59
|
await readStdinJson(); // payload is just { hook_event_name, cwd } — we don't use the contents, but drain stdin cleanly
|
|
60
|
+
const { resolveHookFormat, writeHookOutput } = await import("./hook-output.js");
|
|
61
|
+
const format = resolveHookFormat();
|
|
60
62
|
const config = loadMemoryConfig();
|
|
61
63
|
const memory = new MemoryManager(config);
|
|
62
64
|
await memory.initialize({ skipEmbeddingCheck: true });
|
|
63
65
|
try {
|
|
64
66
|
const maxChars = Number(process.env.ABMIND_HOOK_WAKEUP_MAX_CHARS ?? DEFAULT_WAKEUP_CHARS);
|
|
65
67
|
const wakeUp = memory.buildWakeUp(maxChars);
|
|
68
|
+
let output = "";
|
|
66
69
|
if (wakeUp && wakeUp.trim()) {
|
|
67
|
-
|
|
70
|
+
output = wakeUp;
|
|
68
71
|
}
|
|
69
72
|
// #366 — check if extraction is needed
|
|
70
73
|
const extractionBlock = buildExtractionInjection(memory);
|
|
71
74
|
if (extractionBlock) {
|
|
72
|
-
|
|
75
|
+
output += (output ? "\n\n" : "") + extractionBlock;
|
|
73
76
|
}
|
|
77
|
+
// #529 — check if full sleep is overdue (>24h since last audit)
|
|
78
|
+
if (!extractionBlock) {
|
|
79
|
+
const sleepBlock = buildSleepInjection(memory);
|
|
80
|
+
if (sleepBlock) {
|
|
81
|
+
output += (output ? "\n\n" : "") + sleepBlock;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
writeHookOutput(output, format);
|
|
74
85
|
}
|
|
75
86
|
finally {
|
|
76
87
|
memory.close();
|
|
@@ -140,4 +151,33 @@ Run this extraction routine before responding to the user:
|
|
|
140
151
|
Extract: facts about the user, decisions made, preferences stated, lessons learned. Skip: greetings, tool outputs, debugging noise.
|
|
141
152
|
---`;
|
|
142
153
|
}
|
|
154
|
+
/** #529 — Inject full sleep instructions when sleep is overdue (>24h since last audit). */
|
|
155
|
+
function buildSleepInjection(memory) {
|
|
156
|
+
const memDir = memory.getConfig().memoryDir;
|
|
157
|
+
const sleepDir = join(memDir, "sleep");
|
|
158
|
+
try {
|
|
159
|
+
const files = readdirSync(sleepDir).filter(f => f.startsWith("sleep_")).sort();
|
|
160
|
+
if (files.length === 0)
|
|
161
|
+
return null; // never slept — don't force on first run
|
|
162
|
+
const latest = files[files.length - 1];
|
|
163
|
+
const st = statSync(join(sleepDir, latest));
|
|
164
|
+
const hoursSince = (Date.now() - st.mtimeMs) / 3600_000;
|
|
165
|
+
if (hoursSince < 24)
|
|
166
|
+
return null; // recent enough
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
return `---
|
|
172
|
+
⚠️ MEMORY CONSOLIDATION OVERDUE (>24h since last sleep cycle)
|
|
173
|
+
|
|
174
|
+
Run the full sleep pipeline before responding:
|
|
175
|
+
|
|
176
|
+
1. Run: \`abmind sleep --level native\`
|
|
177
|
+
2. Wait for completion (may take 30-60s)
|
|
178
|
+
3. Proceed with user's request normally.
|
|
179
|
+
|
|
180
|
+
This consolidates memories, detects contradictions, and maintains memory health.
|
|
181
|
+
---`;
|
|
182
|
+
}
|
|
143
183
|
//# sourceMappingURL=abmind-hook-wakeup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-hook-wakeup.js","sourceRoot":"","sources":["../../cli/abmind-hook-wakeup.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,WAAW;oBAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;;;;;;gDAMwC;IAC9C,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,cAAc,EAAE,CAAC;QACjB,oBAAoB,EAAE,CAAC;QAEvB,IAAI,aAAa,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,aAAa,EAAE,CAAC,CAAC,gGAAgG;YAEvH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,oBAAoB,CAAC,CAAC;gBAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5B,
|
|
1
|
+
{"version":3,"file":"abmind-hook-wakeup.js","sourceRoot":"","sources":["../../cli/abmind-hook-wakeup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abmind-install-host.d.ts","sourceRoot":"","sources":["../../cli/abmind-install-host.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|