abmind 0.1.3 → 0.1.5-alpha.1
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 +47 -0
- package/README.md +90 -61
- package/config/.env.memory.example +114 -0
- package/dist/cli/abmind-backup.js +10 -10
- package/dist/cli/abmind-backup.js.map +1 -1
- package/dist/cli/abmind-bundle.js +4 -0
- package/dist/cli/abmind-bundle.js.map +1 -1
- package/dist/cli/abmind-hook-notification.d.ts +6 -0
- package/dist/cli/abmind-hook-notification.d.ts.map +1 -0
- package/dist/cli/abmind-hook-notification.js +56 -0
- package/dist/cli/abmind-hook-notification.js.map +1 -0
- package/dist/cli/abmind-hook-postToolUse.d.ts +10 -0
- package/dist/cli/abmind-hook-postToolUse.d.ts.map +1 -0
- package/dist/cli/abmind-hook-postToolUse.js +85 -0
- package/dist/cli/abmind-hook-postToolUse.js.map +1 -0
- package/dist/cli/abmind-hook-postcompact.d.ts +9 -0
- package/dist/cli/abmind-hook-postcompact.d.ts.map +1 -0
- package/dist/cli/abmind-hook-postcompact.js +64 -0
- package/dist/cli/abmind-hook-postcompact.js.map +1 -0
- package/dist/cli/abmind-hook-postuserprompt.d.ts +7 -0
- package/dist/cli/abmind-hook-postuserprompt.d.ts.map +1 -0
- package/dist/cli/abmind-hook-postuserprompt.js +69 -0
- package/dist/cli/abmind-hook-postuserprompt.js.map +1 -0
- package/dist/cli/abmind-hook-preToolUse.d.ts +10 -0
- package/dist/cli/abmind-hook-preToolUse.d.ts.map +1 -0
- package/dist/cli/abmind-hook-preToolUse.js +61 -0
- package/dist/cli/abmind-hook-preToolUse.js.map +1 -0
- package/dist/cli/abmind-hook-precompact.d.ts +7 -0
- package/dist/cli/abmind-hook-precompact.d.ts.map +1 -0
- package/dist/cli/abmind-hook-precompact.js +63 -0
- package/dist/cli/abmind-hook-precompact.js.map +1 -0
- package/dist/cli/abmind-hook-preuserprompt.d.ts +16 -0
- package/dist/cli/abmind-hook-preuserprompt.d.ts.map +1 -0
- package/dist/cli/abmind-hook-preuserprompt.js +125 -0
- package/dist/cli/abmind-hook-preuserprompt.js.map +1 -0
- package/dist/cli/abmind-hook-store.js +26 -3
- package/dist/cli/abmind-hook-store.js.map +1 -1
- package/dist/cli/abmind-hook-subagentstart.d.ts +6 -0
- package/dist/cli/abmind-hook-subagentstart.d.ts.map +1 -0
- package/dist/cli/abmind-hook-subagentstart.js +56 -0
- package/dist/cli/abmind-hook-subagentstart.js.map +1 -0
- package/dist/cli/abmind-hook-subagentstop.d.ts +6 -0
- package/dist/cli/abmind-hook-subagentstop.d.ts.map +1 -0
- package/dist/cli/abmind-hook-subagentstop.js +58 -0
- package/dist/cli/abmind-hook-subagentstop.js.map +1 -0
- package/dist/cli/abmind-hook-toolfailure.d.ts +7 -0
- package/dist/cli/abmind-hook-toolfailure.d.ts.map +1 -0
- package/dist/cli/abmind-hook-toolfailure.js +66 -0
- package/dist/cli/abmind-hook-toolfailure.js.map +1 -0
- package/dist/cli/abmind-hook-wakeup.js +10 -0
- package/dist/cli/abmind-hook-wakeup.js.map +1 -1
- package/dist/cli/abmind-install.js +251 -11
- package/dist/cli/abmind-install.js.map +1 -1
- package/dist/cli/abmind-restore.d.ts +1 -1
- package/dist/cli/abmind-restore.js +14 -36
- package/dist/cli/abmind-restore.js.map +1 -1
- package/dist/cli/abmind-retro-extract.js +41 -5
- package/dist/cli/abmind-retro-extract.js.map +1 -1
- package/dist/cli/abmind-sleep-state.js +1 -1
- package/dist/cli/abmind-sleep-state.js.map +1 -1
- package/dist/cli/abmind.js +2 -0
- package/dist/cli/abmind.js.map +1 -1
- package/dist/src/backup.d.ts +3 -1
- package/dist/src/backup.d.ts.map +1 -1
- package/dist/src/backup.js +11 -4
- package/dist/src/backup.js.map +1 -1
- package/dist/src/context-engine.d.ts +1 -1
- package/dist/src/context-engine.d.ts.map +1 -1
- package/dist/src/context-engine.js +1 -1
- package/dist/src/context-engine.js.map +1 -1
- package/dist/src/context-orchestrator.js +3 -3
- package/dist/src/context-orchestrator.js.map +1 -1
- package/dist/src/crypto.d.ts +6 -0
- package/dist/src/crypto.d.ts.map +1 -1
- package/dist/src/crypto.js +100 -17
- package/dist/src/crypto.js.map +1 -1
- package/dist/src/ensure-initialized.d.ts +1 -1
- package/dist/src/ensure-initialized.js +1 -1
- package/dist/src/env-schema.d.ts +2 -0
- package/dist/src/env-schema.d.ts.map +1 -1
- package/dist/src/env-schema.js +3 -1
- package/dist/src/env-schema.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/keyring.d.ts +9 -0
- package/dist/src/keyring.d.ts.map +1 -0
- package/dist/src/keyring.js +60 -0
- package/dist/src/keyring.js.map +1 -0
- package/dist/src/mem-types.d.ts +1 -1
- package/dist/src/mem-types.d.ts.map +1 -1
- package/dist/src/memory-backend.d.ts +3 -0
- package/dist/src/memory-backend.d.ts.map +1 -1
- package/dist/src/memory-config.js +1 -1
- package/dist/src/memory-config.js.map +1 -1
- package/dist/src/memory-db.d.ts +1 -6
- package/dist/src/memory-db.d.ts.map +1 -1
- package/dist/src/memory-db.js +7 -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 +17 -16
- package/dist/src/memory-editor.js.map +1 -1
- package/dist/src/memory-ipc-client.d.ts +3 -0
- package/dist/src/memory-ipc-client.d.ts.map +1 -1
- package/dist/src/memory-ipc-client.js +4 -0
- package/dist/src/memory-ipc-client.js.map +1 -1
- package/dist/src/message-store.js +1 -1
- package/dist/src/message-store.js.map +1 -1
- package/dist/src/recall-benchmark.js +4 -2
- package/dist/src/recall-benchmark.js.map +1 -1
- package/dist/src/redact-secrets.d.ts.map +1 -1
- package/dist/src/redact-secrets.js +3 -0
- package/dist/src/redact-secrets.js.map +1 -1
- package/dist/src/session-context.d.ts +6 -5
- package/dist/src/session-context.d.ts.map +1 -1
- package/dist/src/session-context.js +134 -66
- package/dist/src/session-context.js.map +1 -1
- package/dist/src/sleep/levels.d.ts +7 -6
- package/dist/src/sleep/levels.d.ts.map +1 -1
- package/dist/src/sleep/levels.js.map +1 -1
- package/dist/src/sleep/orchestrator.d.ts +1 -1
- package/dist/src/sleep/orchestrator.d.ts.map +1 -1
- package/dist/src/sleep/orchestrator.js +80 -38
- package/dist/src/sleep/orchestrator.js.map +1 -1
- package/dist/src/sleep/sleep-daily-summary.d.ts +6 -2
- package/dist/src/sleep/sleep-daily-summary.d.ts.map +1 -1
- package/dist/src/sleep/sleep-daily-summary.js +34 -12
- package/dist/src/sleep/sleep-daily-summary.js.map +1 -1
- package/dist/src/sleep/sleep-extract-daily.d.ts.map +1 -1
- package/dist/src/sleep/sleep-extract-daily.js +3 -0
- package/dist/src/sleep/sleep-extract-daily.js.map +1 -1
- package/dist/src/sleep/sleep-prompt-loader.js +3 -3
- package/dist/src/sleep/sleep-prompt-loader.js.map +1 -1
- package/dist/src/sleep-data-access.d.ts +4 -2
- package/dist/src/sleep-data-access.d.ts.map +1 -1
- package/dist/src/sleep-data-access.js +49 -13
- package/dist/src/sleep-data-access.js.map +1 -1
- package/dist/src/sqlite-backend.d.ts +3 -0
- package/dist/src/sqlite-backend.d.ts.map +1 -1
- package/dist/src/sqlite-backend.js +3 -0
- package/dist/src/sqlite-backend.js.map +1 -1
- package/dist/src/status-block.d.ts +7 -0
- package/dist/src/status-block.d.ts.map +1 -0
- package/dist/src/status-block.js +67 -0
- package/dist/src/status-block.js.map +1 -0
- package/dist/src/wake-up-renderer.d.ts +0 -5
- package/dist/src/wake-up-renderer.d.ts.map +1 -1
- package/dist/src/wake-up-renderer.js +0 -34
- package/dist/src/wake-up-renderer.js.map +1 -1
- package/package.json +6 -3
- package/prompts/sleep/03-retrospective.md +23 -0
- package/prompts/sleep/04-extract-memories.md +3 -0
- package/prompts/sleep/06-retro-derive.md +39 -0
- package/prompts/sleep/08-memory-maintenance.md +39 -0
- package/prompts/sleep/{13-consolidation.md → 11-consolidation.md} +4 -1
- package/templates/core/SOUL.md +24 -0
- package/templates/core/agent_notes.md +7 -0
- package/templates/core/core_facts.md +10 -0
- package/templates/core/memory-tools.md +43 -0
- package/templates/core/user_profile.md +7 -0
- package/templates/with-abmind-hooks.json +26 -0
- package/dist/cli/abmind-backfill.d.ts +0 -3
- package/dist/cli/abmind-backfill.d.ts.map +0 -1
- package/dist/cli/abmind-backfill.js +0 -64
- package/dist/cli/abmind-backfill.js.map +0 -1
- package/dist/cli/abmind-memory-stats.d.ts +0 -3
- package/dist/cli/abmind-memory-stats.d.ts.map +0 -1
- package/dist/cli/abmind-memory-stats.js +0 -45
- package/dist/cli/abmind-memory-stats.js.map +0 -1
- package/dist/cli/abmind-reset.d.ts +0 -11
- package/dist/cli/abmind-reset.d.ts.map +0 -1
- package/dist/cli/abmind-reset.js +0 -143
- package/dist/cli/abmind-reset.js.map +0 -1
- package/dist/cli/abmind-status.d.ts +0 -3
- package/dist/cli/abmind-status.d.ts.map +0 -1
- package/dist/cli/abmind-status.js +0 -45
- package/dist/cli/abmind-status.js.map +0 -1
- package/prompts/sleep/03-extract-from-daily.md +0 -3
- package/prompts/sleep/04-retrospective.md +0 -30
- package/prompts/sleep/07-topic-assignment.md +0 -23
- package/prompts/sleep/08-core-promotion.md +0 -26
- package/prompts/sleep/09-merge.md +0 -19
- package/prompts/sleep/12-core-knowledge.md +0 -14
- package/prompts/sleep/14-emotion-context.md +0 -17
- /package/prompts/sleep/{15-contradiction-and-graph.md → 05-contradiction-and-graph.md} +0 -0
- /package/prompts/sleep/{06-feedback.md → 07-feedback.md} +0 -0
- /package/prompts/sleep/{10-translation.md → 09-translation.md} +0 -0
- /package/prompts/sleep/{11-skill-review.md → 10-skill-review.md} +0 -0
- /package/prompts/sleep/{16-rem-synthesis.md → 12-rem-synthesis.md} +0 -0
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/** abmind memory-stats — Show memory system stats. */
|
|
3
|
-
import { runCliRaw } from "../src/cli-runner-raw.js";
|
|
4
|
-
import { loadMemoryConfig } from "../src/memory-config.js";
|
|
5
|
-
import { MemoryManager } from "../src/memory-manager.js";
|
|
6
|
-
await runCliRaw(import.meta.url, {
|
|
7
|
-
name: "abmind-memory-stats",
|
|
8
|
-
help: `Usage:
|
|
9
|
-
abmind memory-stats
|
|
10
|
-
|
|
11
|
-
Prints memory-system stats: message count, memory count, DB size,
|
|
12
|
-
heartbeat state, per-type breakdown, consolidation-file counts.`,
|
|
13
|
-
flags: [],
|
|
14
|
-
handler: async () => {
|
|
15
|
-
const memory = new MemoryManager(loadMemoryConfig());
|
|
16
|
-
await memory.initialize({ skipEmbeddingCheck: true });
|
|
17
|
-
try {
|
|
18
|
-
const stats = memory.getStats();
|
|
19
|
-
if (!stats) {
|
|
20
|
-
console.error("Memory not initialized");
|
|
21
|
-
process.exitCode = 1;
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
console.log(`Memory Status
|
|
25
|
-
─────────────
|
|
26
|
-
Messages: ${stats.totalMessages}
|
|
27
|
-
Memories: ${stats.extractedMemories}
|
|
28
|
-
DB size: ${(stats.dbSizeBytes / 1024 / 1024).toFixed(1)} MB
|
|
29
|
-
Heartbeat: ${stats.heartbeatRunning ? "running" : "stopped"}
|
|
30
|
-
|
|
31
|
-
By type:`);
|
|
32
|
-
for (const [type, count] of Object.entries(stats.extractedByType)) {
|
|
33
|
-
console.log(` ${type}: ${count}`);
|
|
34
|
-
}
|
|
35
|
-
console.log(`\nConsolidation files:
|
|
36
|
-
Daily: ${stats.consolidationFiles.daily}
|
|
37
|
-
Weekly: ${stats.consolidationFiles.weekly}
|
|
38
|
-
Quarterly: ${stats.consolidationFiles.quarterly}`);
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
memory.close();
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=abmind-memory-stats.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-memory-stats.js","sourceRoot":"","sources":["../../cli/abmind-memory-stats.ts"],"names":[],"mappings":";AACA,sDAAsD;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;;;;gEAIwD;IAC9D,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEtF,OAAO,CAAC,GAAG,CAAC;;gBAEF,KAAK,CAAC,aAAa;gBACnB,KAAK,CAAC,iBAAiB;gBACvB,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;SAErD,CAAC,CAAC;YACL,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC;eACH,KAAK,CAAC,kBAAkB,CAAC,KAAK;eAC9B,KAAK,CAAC,kBAAkB,CAAC,MAAM;eAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* abmind reset --scope <config|config+data|full>
|
|
4
|
-
*
|
|
5
|
-
* Mirrors agentbridge reset for the abmind runtime.
|
|
6
|
-
* - config — wipe config/ only
|
|
7
|
-
* - config+data — wipe config/ + memory/ + topics/
|
|
8
|
-
* - full — wipe ~/.abmind/ entirely + remove PATH symlinks we own
|
|
9
|
-
*/
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=abmind-reset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-reset.d.ts","sourceRoot":"","sources":["../../cli/abmind-reset.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
package/dist/cli/abmind-reset.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* abmind reset --scope <config|config+data|full>
|
|
4
|
-
*
|
|
5
|
-
* Mirrors agentbridge reset for the abmind runtime.
|
|
6
|
-
* - config — wipe config/ only
|
|
7
|
-
* - config+data — wipe config/ + memory/ + topics/
|
|
8
|
-
* - full — wipe ~/.abmind/ entirely + remove PATH symlinks we own
|
|
9
|
-
*/
|
|
10
|
-
import { mkdir } from 'node:fs/promises';
|
|
11
|
-
import { createInterface } from 'node:readline/promises';
|
|
12
|
-
import { basename, dirname, join } from 'node:path';
|
|
13
|
-
import { isUnsafeRemovalTarget, packagePaths, readManifest, removePath, resolveUserBinDir, safeCopyTree } from '../src/deploy-lib/index.js';
|
|
14
|
-
const OWNED_PATH_LINKS = ['abmind', 'abmind-embed'];
|
|
15
|
-
function scopePaths(home, scope) {
|
|
16
|
-
if (scope === 'config')
|
|
17
|
-
return [join(home, 'config')];
|
|
18
|
-
if (scope === 'config+data') {
|
|
19
|
-
return [join(home, 'config'), join(home, 'memory'), join(home, 'topics')];
|
|
20
|
-
}
|
|
21
|
-
return [home];
|
|
22
|
-
}
|
|
23
|
-
async function promptYesNo(q) {
|
|
24
|
-
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
25
|
-
try {
|
|
26
|
-
const a = (await rl.question(`${q} [y/N] `)).trim().toLowerCase();
|
|
27
|
-
return a === 'y' || a === 'yes';
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
rl.close();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
async function removePathLinks(dryRun) {
|
|
34
|
-
const userBinDir = resolveUserBinDir();
|
|
35
|
-
const paths = packagePaths('abmind');
|
|
36
|
-
const { lstat, readlink, unlink } = await import('node:fs/promises');
|
|
37
|
-
const removed = [];
|
|
38
|
-
for (const name of OWNED_PATH_LINKS) {
|
|
39
|
-
const link = join(userBinDir, name);
|
|
40
|
-
const expectedTarget = join(paths.bin, name);
|
|
41
|
-
try {
|
|
42
|
-
const s = await lstat(link);
|
|
43
|
-
if (!s.isSymbolicLink())
|
|
44
|
-
continue;
|
|
45
|
-
const target = await readlink(link);
|
|
46
|
-
// Exact-match only. Don't clobber a symlink to a DIFFERENT install
|
|
47
|
-
// just because both paths contain '.abmind/bin/'.
|
|
48
|
-
if (target !== expectedTarget)
|
|
49
|
-
continue;
|
|
50
|
-
if (dryRun)
|
|
51
|
-
removed.push(`[dry-run] rm ${link}`);
|
|
52
|
-
else {
|
|
53
|
-
await unlink(link);
|
|
54
|
-
removed.push(link);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
if (err.code !== 'ENOENT')
|
|
59
|
-
throw err;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return removed;
|
|
63
|
-
}
|
|
64
|
-
function parseFlags(argv) {
|
|
65
|
-
const scope = argv.includes('--scope') ? argv[argv.indexOf('--scope') + 1] : undefined;
|
|
66
|
-
return {
|
|
67
|
-
scope,
|
|
68
|
-
yes: argv.includes('--yes'),
|
|
69
|
-
dryRun: argv.includes('--dry-run'),
|
|
70
|
-
nonInteractive: argv.includes('--non-interactive'),
|
|
71
|
-
noBackup: argv.includes('--no-backup'),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
async function run() {
|
|
75
|
-
const opts = parseFlags(process.argv.slice(3));
|
|
76
|
-
if (!opts.scope) {
|
|
77
|
-
process.stderr.write(`error: --scope required. One of: config | config+data | full\n`);
|
|
78
|
-
return 2;
|
|
79
|
-
}
|
|
80
|
-
const paths = packagePaths('abmind');
|
|
81
|
-
const manifest = await readManifest(paths.manifest);
|
|
82
|
-
const targets = scopePaths(paths.home, opts.scope);
|
|
83
|
-
for (const t of targets) {
|
|
84
|
-
if (isUnsafeRemovalTarget(t)) {
|
|
85
|
-
process.stderr.write(`refused: target ${t} is unsafe\n`);
|
|
86
|
-
return 3;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
process.stdout.write(`abmind reset --scope ${opts.scope}${opts.dryRun ? ' (DRY-RUN)' : ''}\n`);
|
|
90
|
-
if (manifest)
|
|
91
|
-
process.stdout.write(` current: ${manifest.version || '(unset)'}\n`);
|
|
92
|
-
for (const t of targets)
|
|
93
|
-
process.stdout.write(` - ${t}\n`);
|
|
94
|
-
if (opts.scope === 'full') {
|
|
95
|
-
process.stdout.write(` plus PATH symlinks:\n`);
|
|
96
|
-
for (const n of OWNED_PATH_LINKS)
|
|
97
|
-
process.stdout.write(` - ${join(resolveUserBinDir(), n)}\n`);
|
|
98
|
-
}
|
|
99
|
-
if (!opts.dryRun) {
|
|
100
|
-
if (opts.yes) {
|
|
101
|
-
// proceed
|
|
102
|
-
}
|
|
103
|
-
else if (opts.nonInteractive) {
|
|
104
|
-
process.stderr.write(`refused: --non-interactive requires --yes for destructive ops\n`);
|
|
105
|
-
return 4;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
if (!(await promptYesNo('Proceed?'))) {
|
|
109
|
-
process.stdout.write(`aborted\n`);
|
|
110
|
-
return 1;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (opts.scope === 'full' && !opts.noBackup && !opts.dryRun) {
|
|
115
|
-
const ts = new Date().toISOString().replace(/[:.]/g, '-');
|
|
116
|
-
const backup = join(dirname(paths.home), `${basename(paths.home)}.reset-${ts}.bak`);
|
|
117
|
-
// safeCopyTree skips sockets/FIFOs — real ~/.abmind has memory.sock.
|
|
118
|
-
await safeCopyTree(paths.home, backup, { preserveTimestamps: true });
|
|
119
|
-
process.stdout.write(`✓ backup at ${backup}\n`);
|
|
120
|
-
}
|
|
121
|
-
for (const t of targets) {
|
|
122
|
-
const removed = await removePath(t, { dryRun: opts.dryRun });
|
|
123
|
-
process.stdout.write(`${opts.dryRun ? '[dry-run] ' : ''}${removed ? '✓' : '·'} ${t}\n`);
|
|
124
|
-
}
|
|
125
|
-
if (opts.scope === 'full') {
|
|
126
|
-
const linksRemoved = await removePathLinks(opts.dryRun);
|
|
127
|
-
for (const l of linksRemoved)
|
|
128
|
-
process.stdout.write(`✓ ${l}\n`);
|
|
129
|
-
}
|
|
130
|
-
process.stdout.write(`\nabmind reset complete.\n`);
|
|
131
|
-
// Quiet unused-import checker.
|
|
132
|
-
void mkdir;
|
|
133
|
-
return 0;
|
|
134
|
-
}
|
|
135
|
-
try {
|
|
136
|
-
const exitCode = await run();
|
|
137
|
-
process.exit(exitCode);
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
process.stderr.write(`error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
141
|
-
process.exit(1);
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=abmind-reset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-reset.js","sourceRoot":"","sources":["../../cli/abmind-reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-status.d.ts","sourceRoot":"","sources":["../../cli/abmind-status.ts"],"names":[],"mappings":""}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/** abmind status — Show memory system stats. */
|
|
3
|
-
import { runCliRaw } from "../src/cli-runner-raw.js";
|
|
4
|
-
import { loadMemoryConfig } from "../src/memory-config.js";
|
|
5
|
-
import { MemoryManager } from "../src/memory-manager.js";
|
|
6
|
-
await runCliRaw(import.meta.url, {
|
|
7
|
-
name: "abmind-status",
|
|
8
|
-
help: `Usage:
|
|
9
|
-
abmind status
|
|
10
|
-
|
|
11
|
-
Prints memory-system stats: message count, memory count, DB size,
|
|
12
|
-
heartbeat state, per-type breakdown, consolidation-file counts.`,
|
|
13
|
-
flags: [],
|
|
14
|
-
handler: async () => {
|
|
15
|
-
const memory = new MemoryManager(loadMemoryConfig());
|
|
16
|
-
await memory.initialize({ skipEmbeddingCheck: true });
|
|
17
|
-
try {
|
|
18
|
-
const stats = memory.getStats();
|
|
19
|
-
if (!stats) {
|
|
20
|
-
console.error("Memory not initialized");
|
|
21
|
-
process.exitCode = 1;
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
console.log(`Memory Status
|
|
25
|
-
─────────────
|
|
26
|
-
Messages: ${stats.totalMessages}
|
|
27
|
-
Memories: ${stats.extractedMemories}
|
|
28
|
-
DB size: ${(stats.dbSizeBytes / 1024 / 1024).toFixed(1)} MB
|
|
29
|
-
Heartbeat: ${stats.heartbeatRunning ? "running" : "stopped"}
|
|
30
|
-
|
|
31
|
-
By type:`);
|
|
32
|
-
for (const [type, count] of Object.entries(stats.extractedByType)) {
|
|
33
|
-
console.log(` ${type}: ${count}`);
|
|
34
|
-
}
|
|
35
|
-
console.log(`\nConsolidation files:
|
|
36
|
-
Daily: ${stats.consolidationFiles.daily}
|
|
37
|
-
Weekly: ${stats.consolidationFiles.weekly}
|
|
38
|
-
Quarterly: ${stats.consolidationFiles.quarterly}`);
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
memory.close();
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=abmind-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-status.js","sourceRoot":"","sources":["../../cli/abmind-status.ts"],"names":[],"mappings":";AACA,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IAC/B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;;;;gEAIwD;IAC9D,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEtF,OAAO,CAAC,GAAG,CAAC;;gBAEF,KAAK,CAAC,aAAa;gBACnB,KAAK,CAAC,iBAAiB;gBACvB,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;SAErD,CAAC,CAAC;YACL,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC;eACH,KAAK,CAAC,kBAAkB,CAAC,KAAK;eAC9B,KAAK,CAAC,kBAAkB,CAAC,MAAM;eAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Daily Retrospective + Memory Extraction
|
|
2
|
-
|
|
3
|
-
Write a daily retrospective based on today's conversations, then extract lasting memories from it.
|
|
4
|
-
|
|
5
|
-
## Pre-loaded data
|
|
6
|
-
|
|
7
|
-
Today's clean messages:
|
|
8
|
-
${CLEAN_MESSAGES}
|
|
9
|
-
|
|
10
|
-
## Task 1: Write Retrospective
|
|
11
|
-
|
|
12
|
-
Write a retrospective covering:
|
|
13
|
-
|
|
14
|
-
1. **What happened** — key events, tasks, decisions made today.
|
|
15
|
-
2. **Emotional attribution** — how the user seemed to feel during different interactions. Note shifts in tone or energy.
|
|
16
|
-
3. **Lessons** — what went well, what didn't, what to do differently.
|
|
17
|
-
4. **Recurring errors** — check if any errors appeared multiple times today and were fixed the same way. If so, note: "Recurring: [error] was fixed by [action] — consider adding as auto-fix rule via `abtars-autofix add`."
|
|
18
|
-
5. **Agent notes update** — if anything learned today should persist (user preferences, project context, recurring patterns), update `agent_notes.md` via `abmind edit`.
|
|
19
|
-
|
|
20
|
-
Write the retrospective to `${RETRO_PATH}`.
|
|
21
|
-
|
|
22
|
-
## Task 2: Extract Memories from Retrospective
|
|
23
|
-
|
|
24
|
-
From the retrospective you just wrote, extract lessons, mistakes, and insights as permanent memories:
|
|
25
|
-
|
|
26
|
-
1. For each candidate, run `abmind recall` with the key phrase to check for duplicates.
|
|
27
|
-
2. If no duplicate exists, store via `abmind store`.
|
|
28
|
-
3. If a mistake repeats a previously stored mistake, store it with escalated emotion score (`-2` from previous).
|
|
29
|
-
|
|
30
|
-
Respond with a brief confirmation of what was written to the retro file, followed by the count of memories stored.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Topic Assignment
|
|
2
|
-
|
|
3
|
-
Assign topics to untagged memories.
|
|
4
|
-
|
|
5
|
-
## Pre-loaded data
|
|
6
|
-
|
|
7
|
-
Untagged memories:
|
|
8
|
-
${UNTAGGED_MEMORIES}
|
|
9
|
-
|
|
10
|
-
## Topics
|
|
11
|
-
|
|
12
|
-
`coding`, `personal`, `work`, `finance`, `health`, `projects`, `tools`, `people`
|
|
13
|
-
|
|
14
|
-
## Task
|
|
15
|
-
|
|
16
|
-
For each memory, read its content and assign the most fitting topic AND 3-5 search keywords (synonyms a user might query with):
|
|
17
|
-
```
|
|
18
|
-
abmind edit --memory-id N --topic <topic> --keyword "synonym1, synonym2, synonym3"
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
If a memory spans multiple topics, pick the primary one.
|
|
22
|
-
|
|
23
|
-
Respond with the assignments made.
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Core Promotion
|
|
2
|
-
|
|
3
|
-
Promote worthy general-tier memories to core tier.
|
|
4
|
-
|
|
5
|
-
## Pre-loaded data
|
|
6
|
-
|
|
7
|
-
Promotion candidates (high relevance, frequently recalled):
|
|
8
|
-
${PROMOTION_CANDIDATES}
|
|
9
|
-
|
|
10
|
-
${CONTRADICTION_WARNINGS}
|
|
11
|
-
|
|
12
|
-
## Constraints
|
|
13
|
-
|
|
14
|
-
- Budget: 100 core entries max. Do not exceed.
|
|
15
|
-
- Only promote memories that represent enduring facts, strong preferences, or critical context.
|
|
16
|
-
- Do not promote transient or time-bound information.
|
|
17
|
-
- If a contradiction is flagged: invalidate the older memory (`abmind edit --memory-id <older> --valid-to <today>`) before promoting the newer one.
|
|
18
|
-
|
|
19
|
-
## Task
|
|
20
|
-
|
|
21
|
-
For each worthy candidate:
|
|
22
|
-
```
|
|
23
|
-
abmind edit --memory-id N --tier core
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Respond with the list of promotions made.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Memory Merge
|
|
2
|
-
|
|
3
|
-
Review near-duplicate memory pairs and merge or invalidate.
|
|
4
|
-
|
|
5
|
-
## Pre-loaded data
|
|
6
|
-
|
|
7
|
-
Candidate pairs (similar content, same topic):
|
|
8
|
-
${MERGE_CANDIDATES}
|
|
9
|
-
|
|
10
|
-
## Rules
|
|
11
|
-
|
|
12
|
-
- Max 5 merges per run.
|
|
13
|
-
- If both express the same fact: `abmind store --merge --merge-ids A,B`
|
|
14
|
-
- If one contradicts the other: invalidate the older one via `abmind edit --memory-id <older> --valid-to <today>`
|
|
15
|
-
- If they are related but distinct, skip.
|
|
16
|
-
|
|
17
|
-
## Task
|
|
18
|
-
|
|
19
|
-
Review each pair and act accordingly. Respond with merges and invalidations performed.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Core Knowledge Review
|
|
2
|
-
|
|
3
|
-
Review and maintain `agent_notes.md` and `user_profile.md`.
|
|
4
|
-
|
|
5
|
-
**SOUL.md is read-only** — never modify it. Identity is human-managed.
|
|
6
|
-
|
|
7
|
-
## Task
|
|
8
|
-
|
|
9
|
-
1. Read `agent_notes.md` and `user_profile.md`.
|
|
10
|
-
2. Remove entries that are outdated or no longer accurate.
|
|
11
|
-
3. Update entries that have become stale based on recent interactions.
|
|
12
|
-
4. Keep files concise — no redundancy.
|
|
13
|
-
|
|
14
|
-
Respond with changes made.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Emotion Context
|
|
2
|
-
|
|
3
|
-
Infer emotional context for memories that have emotion tags but no context explaining why.
|
|
4
|
-
|
|
5
|
-
## Pre-loaded data
|
|
6
|
-
|
|
7
|
-
Memories with emotion tags but missing emotion_context:
|
|
8
|
-
${EMOTION_CONTEXT_GAPS}
|
|
9
|
-
|
|
10
|
-
## Task
|
|
11
|
-
|
|
12
|
-
For each memory:
|
|
13
|
-
1. Read the content and emotion tags.
|
|
14
|
-
2. Infer WHY the emotion applies in 3–5 words (e.g., "frustrated by repeated bug", "proud of shipping fast").
|
|
15
|
-
3. Apply: `abmind edit --memory-id N --emotion-context "reason"`
|
|
16
|
-
|
|
17
|
-
Respond with the count of contexts added.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|