abmind 0.2.6 → 0.2.7-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/SUPPORTED-SURFACE.md +20 -2
- package/dist/cli/abmind-hook-recall.js +17 -40
- package/dist/cli/abmind-hook-recall.js.map +1 -1
- package/dist/cli/abmind-hook-store.js +10 -31
- package/dist/cli/abmind-hook-store.js.map +1 -1
- package/dist/cli/abmind-hook-wakeup.js +17 -3
- package/dist/cli/abmind-hook-wakeup.js.map +1 -1
- package/dist/cli/abmind-install.js +19 -19
- package/dist/cli/abmind-install.js.map +1 -1
- package/dist/cli/abmind-restore.js +10 -0
- package/dist/cli/abmind-restore.js.map +1 -1
- package/dist/cli/abmind-sleep.d.ts +9 -5
- package/dist/cli/abmind-sleep.d.ts.map +1 -1
- package/dist/cli/abmind-sleep.js +61 -14
- package/dist/cli/abmind-sleep.js.map +1 -1
- package/dist/cli/hook-lifecycle-adapter.d.ts +11 -0
- package/dist/cli/hook-lifecycle-adapter.d.ts.map +1 -0
- package/dist/cli/hook-lifecycle-adapter.js +33 -0
- package/dist/cli/hook-lifecycle-adapter.js.map +1 -0
- package/dist/src/context-engine.d.ts +13 -3
- package/dist/src/context-engine.d.ts.map +1 -1
- package/dist/src/context-engine.js +22 -5
- package/dist/src/context-engine.js.map +1 -1
- package/dist/src/context-orchestrator.d.ts +20 -2
- package/dist/src/context-orchestrator.d.ts.map +1 -1
- package/dist/src/context-orchestrator.js +11 -3
- package/dist/src/context-orchestrator.js.map +1 -1
- package/dist/src/context-tier-renderer.d.ts +8 -1
- package/dist/src/context-tier-renderer.d.ts.map +1 -1
- package/dist/src/context-tier-renderer.js +7 -2
- package/dist/src/context-tier-renderer.js.map +1 -1
- package/dist/src/ensure-initialized.d.ts +5 -0
- package/dist/src/ensure-initialized.d.ts.map +1 -1
- package/dist/src/ensure-initialized.js +19 -28
- package/dist/src/ensure-initialized.js.map +1 -1
- package/dist/src/host-integration/identity.d.ts +10 -0
- package/dist/src/host-integration/identity.d.ts.map +1 -0
- package/dist/src/host-integration/identity.js +66 -0
- package/dist/src/host-integration/identity.js.map +1 -0
- package/dist/src/host-integration/index.d.ts +5 -0
- package/dist/src/host-integration/index.d.ts.map +1 -0
- package/dist/src/host-integration/index.js +4 -0
- package/dist/src/host-integration/index.js.map +1 -0
- package/dist/src/host-integration/lifecycle.d.ts +14 -0
- package/dist/src/host-integration/lifecycle.d.ts.map +1 -0
- package/dist/src/host-integration/lifecycle.js +192 -0
- package/dist/src/host-integration/lifecycle.js.map +1 -0
- package/dist/src/host-integration/render.d.ts +5 -0
- package/dist/src/host-integration/render.d.ts.map +1 -0
- package/dist/src/host-integration/render.js +20 -0
- package/dist/src/host-integration/render.js.map +1 -0
- package/dist/src/host-integration/types.d.ts +107 -0
- package/dist/src/host-integration/types.d.ts.map +1 -0
- package/dist/src/host-integration/types.js +2 -0
- package/dist/src/host-integration/types.js.map +1 -0
- package/dist/src/imemory-system.d.ts +1 -1
- package/dist/src/imemory-system.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/maintenance-service.d.ts +11 -0
- package/dist/src/maintenance-service.d.ts.map +1 -1
- package/dist/src/maintenance-service.js +43 -0
- package/dist/src/maintenance-service.js.map +1 -1
- package/dist/src/memory-manager.d.ts +6 -2
- package/dist/src/memory-manager.d.ts.map +1 -1
- package/dist/src/memory-manager.js +9 -5
- package/dist/src/memory-manager.js.map +1 -1
- package/dist/src/message-store.d.ts +15 -3
- package/dist/src/message-store.d.ts.map +1 -1
- package/dist/src/message-store.js +28 -9
- package/dist/src/message-store.js.map +1 -1
- package/dist/src/openclaw-plugin/index.d.ts.map +1 -1
- package/dist/src/openclaw-plugin/index.js +3 -2
- package/dist/src/openclaw-plugin/index.js.map +1 -1
- package/dist/src/pi-plugin/abtars-client.d.ts +22 -0
- package/dist/src/pi-plugin/abtars-client.d.ts.map +1 -0
- package/dist/src/pi-plugin/abtars-client.js +153 -0
- package/dist/src/pi-plugin/abtars-client.js.map +1 -0
- package/dist/src/pi-plugin/abtars-tools.d.ts +8 -0
- package/dist/src/pi-plugin/abtars-tools.d.ts.map +1 -0
- package/dist/src/pi-plugin/abtars-tools.js +317 -0
- package/dist/src/pi-plugin/abtars-tools.js.map +1 -0
- package/dist/src/pi-plugin/identity.d.ts +8 -0
- package/dist/src/pi-plugin/identity.d.ts.map +1 -0
- package/dist/src/pi-plugin/identity.js +37 -0
- package/dist/src/pi-plugin/identity.js.map +1 -0
- package/dist/src/pi-plugin/index.d.ts +3 -0
- package/dist/src/pi-plugin/index.d.ts.map +1 -0
- package/dist/src/pi-plugin/index.js +139 -0
- package/dist/src/pi-plugin/index.js.map +1 -0
- package/dist/src/pi-plugin/messages.d.ts +4 -0
- package/dist/src/pi-plugin/messages.d.ts.map +1 -0
- package/dist/src/pi-plugin/messages.js +36 -0
- package/dist/src/pi-plugin/messages.js.map +1 -0
- package/dist/src/pi-plugin/pi-types.d.ts +126 -0
- package/dist/src/pi-plugin/pi-types.d.ts.map +1 -0
- package/dist/src/pi-plugin/pi-types.js +15 -0
- package/dist/src/pi-plugin/pi-types.js.map +1 -0
- package/dist/src/pi-plugin/runtime.d.ts +21 -0
- package/dist/src/pi-plugin/runtime.d.ts.map +1 -0
- package/dist/src/pi-plugin/runtime.js +60 -0
- package/dist/src/pi-plugin/runtime.js.map +1 -0
- package/dist/src/pi-plugin/tools.d.ts +11 -0
- package/dist/src/pi-plugin/tools.d.ts.map +1 -0
- package/dist/src/pi-plugin/tools.js +136 -0
- package/dist/src/pi-plugin/tools.js.map +1 -0
- package/dist/src/reconcile.d.ts +2 -0
- package/dist/src/reconcile.d.ts.map +1 -1
- package/dist/src/reconcile.js +21 -4
- package/dist/src/reconcile.js.map +1 -1
- package/dist/src/session-context.d.ts +1 -0
- package/dist/src/session-context.d.ts.map +1 -1
- package/dist/src/session-context.js +42 -23
- package/dist/src/session-context.js.map +1 -1
- package/dist/src/sleep/basic.d.ts +1 -1
- package/dist/src/sleep/basic.d.ts.map +1 -1
- package/dist/src/sleep/basic.js +5 -2
- package/dist/src/sleep/basic.js.map +1 -1
- package/dist/src/sleep/catchup.d.ts +3 -5
- package/dist/src/sleep/catchup.d.ts.map +1 -1
- package/dist/src/sleep/catchup.js +37 -55
- package/dist/src/sleep/catchup.js.map +1 -1
- package/dist/src/sleep/contracts.d.ts +112 -0
- package/dist/src/sleep/contracts.d.ts.map +1 -0
- package/dist/src/sleep/contracts.js +25 -0
- package/dist/src/sleep/contracts.js.map +1 -0
- package/dist/src/sleep/llm-budget.d.ts +34 -14
- package/dist/src/sleep/llm-budget.d.ts.map +1 -1
- package/dist/src/sleep/llm-budget.js +66 -52
- package/dist/src/sleep/llm-budget.js.map +1 -1
- package/dist/src/sleep/orchestrator.d.ts +19 -69
- package/dist/src/sleep/orchestrator.d.ts.map +1 -1
- package/dist/src/sleep/orchestrator.js +286 -270
- package/dist/src/sleep/orchestrator.js.map +1 -1
- package/dist/src/sleep/state.d.ts +7 -19
- package/dist/src/sleep/state.d.ts.map +1 -1
- package/dist/src/sleep/state.js +5 -38
- package/dist/src/sleep/state.js.map +1 -1
- package/dist/src/sleep/test-harness.d.ts +3 -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/soul-seeder.d.ts +36 -0
- package/dist/src/soul-seeder.d.ts.map +1 -0
- package/dist/src/soul-seeder.js +69 -0
- package/dist/src/soul-seeder.js.map +1 -0
- package/dist/src/wake-up-builder.d.ts +3 -1
- package/dist/src/wake-up-builder.d.ts.map +1 -1
- package/dist/src/wake-up-builder.js +29 -5
- package/dist/src/wake-up-builder.js.map +1 -1
- package/package.json +20 -2
- package/dist/cli/abmind-rollback.d.ts +0 -8
- package/dist/cli/abmind-rollback.d.ts.map +0 -1
- package/dist/cli/abmind-rollback.js +0 -78
- package/dist/cli/abmind-rollback.js.map +0 -1
- package/dist/src/native-loader.d.ts +0 -7
- package/dist/src/native-loader.d.ts.map +0 -1
- package/dist/src/native-loader.js +0 -21
- package/dist/src/native-loader.js.map +0 -1
- package/dist/src/recall-benchmark.d.ts +0 -13
- package/dist/src/recall-benchmark.d.ts.map +0 -1
- package/dist/src/recall-benchmark.js +0 -260
- package/dist/src/recall-benchmark.js.map +0 -1
- package/dist/src/sleep/runtime.d.ts +0 -15
- package/dist/src/sleep/runtime.d.ts.map +0 -1
- package/dist/src/sleep/runtime.js +0 -2
- package/dist/src/sleep/runtime.js.map +0 -1
- package/dist/src/wake-up-renderer.d.ts +0 -24
- package/dist/src/wake-up-renderer.d.ts.map +0 -1
- package/dist/src/wake-up-renderer.js +0 -148
- package/dist/src/wake-up-renderer.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abmind",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7-alpha.1",
|
|
4
4
|
"description": "Standalone AI agent memory system — SQLite, FTS5, embeddings, 4-layer recall, sleep maintenance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"embeddings",
|
|
13
13
|
"recall",
|
|
14
14
|
"sleep",
|
|
15
|
-
"consolidation"
|
|
15
|
+
"consolidation",
|
|
16
|
+
"pi-package"
|
|
16
17
|
],
|
|
17
18
|
"homepage": "https://github.com/aksika/abmind",
|
|
18
19
|
"repository": {
|
|
@@ -40,6 +41,10 @@
|
|
|
40
41
|
"types": "./dist/src/deploy-lib/index.d.ts",
|
|
41
42
|
"default": "./dist/src/deploy-lib/index.js"
|
|
42
43
|
},
|
|
44
|
+
"./pi-plugin": {
|
|
45
|
+
"types": "./dist/src/pi-plugin/index.d.ts",
|
|
46
|
+
"default": "./dist/src/pi-plugin/index.js"
|
|
47
|
+
},
|
|
43
48
|
"./package.json": "./package.json"
|
|
44
49
|
},
|
|
45
50
|
"bin": {
|
|
@@ -70,18 +75,31 @@
|
|
|
70
75
|
"zod": "4.4.3"
|
|
71
76
|
},
|
|
72
77
|
"peerDependencies": {
|
|
78
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
73
79
|
"@sinclair/typebox": ">=0.32.0"
|
|
74
80
|
},
|
|
75
81
|
"peerDependenciesMeta": {
|
|
82
|
+
"@earendil-works/pi-coding-agent": {
|
|
83
|
+
"optional": true
|
|
84
|
+
},
|
|
76
85
|
"@sinclair/typebox": {
|
|
77
86
|
"optional": true
|
|
78
87
|
}
|
|
79
88
|
},
|
|
89
|
+
"pi": {
|
|
90
|
+
"extensions": [
|
|
91
|
+
"./dist/src/pi-plugin/index.js"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
80
94
|
"devDependencies": {
|
|
95
|
+
"@earendil-works/pi-agent-core": "file:../../pi/packages/agent",
|
|
96
|
+
"@earendil-works/pi-ai": "file:../../pi/packages/ai",
|
|
97
|
+
"@earendil-works/pi-coding-agent": "file:../../pi/packages/coding-agent",
|
|
81
98
|
"@sinclair/typebox": "^0.34.49",
|
|
82
99
|
"@types/better-sqlite3": "^7.6.13",
|
|
83
100
|
"@types/node": "^22.19.17",
|
|
84
101
|
"fast-check": "^3.23.2",
|
|
102
|
+
"typebox": "^1.1.38",
|
|
85
103
|
"typescript": "^5.9.3",
|
|
86
104
|
"vitest": "^3.2.4"
|
|
87
105
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-rollback.d.ts","sourceRoot":"","sources":["../../cli/abmind-rollback.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* abmind rollback [--to vX.Y.Z] — flip current to prior release.
|
|
4
|
-
* Mirrors abtars rollback. Validates target exists; refuses if
|
|
5
|
-
* package_lock_hash mismatches.
|
|
6
|
-
*/
|
|
7
|
-
import { acquireLock, activate, packagePaths, readManifest, releaseExists, writeManifest } from '../src/deploy-lib/index.js';
|
|
8
|
-
import { printBanner } from './banner.js';
|
|
9
|
-
async function run() {
|
|
10
|
-
const argv = process.argv.slice(2);
|
|
11
|
-
const to = argv.includes('--to') ? argv[argv.indexOf('--to') + 1] : undefined;
|
|
12
|
-
const paths = packagePaths('abmind');
|
|
13
|
-
const manifest = await readManifest(paths.manifest);
|
|
14
|
-
await printBanner("rollback");
|
|
15
|
-
if (!manifest || !manifest.version) {
|
|
16
|
-
process.stderr.write(`No active abmind release; nothing to roll back.\n`);
|
|
17
|
-
return 2;
|
|
18
|
-
}
|
|
19
|
-
if (manifest.priorReleases.length === 0 && to === undefined) {
|
|
20
|
-
process.stderr.write(`No prior releases recorded.\n`);
|
|
21
|
-
return 2;
|
|
22
|
-
}
|
|
23
|
-
const target = to ?? manifest.priorReleases[0].version;
|
|
24
|
-
if (target === manifest.version) {
|
|
25
|
-
process.stdout.write(`Already at ${target}; no-op.\n`);
|
|
26
|
-
return 0;
|
|
27
|
-
}
|
|
28
|
-
if (!(await releaseExists(paths.releases, target))) {
|
|
29
|
-
const available = [manifest.version, ...manifest.priorReleases.map((r) => r.version)];
|
|
30
|
-
process.stderr.write(`Target '${target}' does not exist.\nAvailable: ${available.join(', ')}\n` +
|
|
31
|
-
`If pruned, rebuild from the target's git SHA with 'abmind update --from-local'.\n`);
|
|
32
|
-
return 2;
|
|
33
|
-
}
|
|
34
|
-
const targetRecord = manifest.priorReleases.find((r) => r.version === target) ?? null;
|
|
35
|
-
if (manifest.packageLockHash &&
|
|
36
|
-
targetRecord?.packageLockHash &&
|
|
37
|
-
manifest.packageLockHash !== targetRecord.packageLockHash) {
|
|
38
|
-
process.stderr.write(`v${manifest.version} pinned different deps than v${target}.\n` +
|
|
39
|
-
`Rollback via symlink is unsafe. Instead:\n` +
|
|
40
|
-
` git checkout ${targetRecord.commit ?? '<commit>'}\n` +
|
|
41
|
-
` abmind update --from-local\n`);
|
|
42
|
-
return 3;
|
|
43
|
-
}
|
|
44
|
-
const release = await acquireLock(paths.lock, `rollback --to ${target}`);
|
|
45
|
-
try {
|
|
46
|
-
await activate(paths.current, target);
|
|
47
|
-
process.stdout.write(`✓ current -> releases/${target}\n`);
|
|
48
|
-
const newPrior = {
|
|
49
|
-
version: manifest.version,
|
|
50
|
-
commit: manifest.commit,
|
|
51
|
-
activatedAt: manifest.activatedAt,
|
|
52
|
-
packageLockHash: manifest.packageLockHash,
|
|
53
|
-
};
|
|
54
|
-
const remainingPriors = manifest.priorReleases.filter((r) => r.version !== target);
|
|
55
|
-
await writeManifest(paths.manifest, {
|
|
56
|
-
...manifest,
|
|
57
|
-
version: target,
|
|
58
|
-
commit: targetRecord?.commit ?? null,
|
|
59
|
-
packageLockHash: targetRecord?.packageLockHash ?? null,
|
|
60
|
-
activatedAt: new Date().toISOString(),
|
|
61
|
-
priorReleases: [newPrior, ...remainingPriors],
|
|
62
|
-
});
|
|
63
|
-
process.stdout.write(`\nabmind rollback complete: ${target}\n`);
|
|
64
|
-
return 0;
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
await release();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
const exitCode = await run();
|
|
72
|
-
process.exit(exitCode);
|
|
73
|
-
}
|
|
74
|
-
catch (err) {
|
|
75
|
-
process.stderr.write(`error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
76
|
-
process.exit(1);
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=abmind-rollback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abmind-rollback.js","sourceRoot":"","sources":["../../cli/abmind-rollback.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AAChJ,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,UAAU,GAAG;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9E,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC1E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;IAChE,IAAI,MAAM,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,YAAY,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,WAAW,MAAM,iCAAiC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxE,mFAAmF,CACtF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAChB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;IACnE,IACE,QAAQ,CAAC,eAAe;QACxB,YAAY,EAAE,eAAe;QAC7B,QAAQ,CAAC,eAAe,KAAK,YAAY,CAAC,eAAe,EACzD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,QAAQ,CAAC,OAAO,gCAAgC,MAAM,KAAK;YAC7D,4CAA4C;YAC5C,kBAAkB,YAAY,CAAC,MAAM,IAAI,UAAU,IAAI;YACvD,gCAAgC,CACnC,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,IAAI,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAiB;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;SAC1C,CAAC;QACF,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;QACnF,MAAM,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;YAClC,GAAG,QAAQ;YACX,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,IAAI;YACpC,eAAe,EAAE,YAAY,EAAE,eAAe,IAAI,IAAI;YACtD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,CAAC,QAAQ,EAAE,GAAG,eAAe,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* native-loader — loads native Node addons from ~/.abmind/lib/node_modules/.
|
|
3
|
-
* Survives abtars updates (persistent path, not in release node_modules).
|
|
4
|
-
*/
|
|
5
|
-
/** Load a native addon from ~/.abmind/lib/node_modules/. Falls back to standard require. */
|
|
6
|
-
export declare function loadNative<T = unknown>(name: string): T;
|
|
7
|
-
//# sourceMappingURL=native-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.d.ts","sourceRoot":"","sources":["../../src/native-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAQvD"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* native-loader — loads native Node addons from ~/.abmind/lib/node_modules/.
|
|
3
|
-
* Survives abtars updates (persistent path, not in release node_modules).
|
|
4
|
-
*/
|
|
5
|
-
import { createRequire } from "node:module";
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { homedir } from "node:os";
|
|
8
|
-
const LIB_DIR = join(process.env["ABMIND_HOME"] ?? join(homedir(), ".abmind"), "lib", "node_modules");
|
|
9
|
-
const nativeRequire = createRequire(join(LIB_DIR, "_"));
|
|
10
|
-
/** Load a native addon from ~/.abmind/lib/node_modules/. Falls back to standard require. */
|
|
11
|
-
export function loadNative(name) {
|
|
12
|
-
try {
|
|
13
|
-
return nativeRequire(name);
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
// Fallback: require from package's own node_modules (dev/test)
|
|
17
|
-
const localRequire = createRequire(import.meta.url);
|
|
18
|
-
return localRequire(name);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=native-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-loader.js","sourceRoot":"","sources":["../../src/native-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AACtG,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAExD,4FAA4F;AAC5F,MAAM,UAAU,UAAU,CAAc,IAAY;IAClD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAI,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,IAAI,CAAM,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* recall-benchmark — measures recall pipeline efficacy.
|
|
3
|
-
*
|
|
4
|
-
* Runs a set of test queries against the live memory.db, captures per-stage
|
|
5
|
-
* hits, timing, and unique contribution. Outputs JSON + human-readable summary.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* npx tsx src/memory/recall-benchmark.ts
|
|
9
|
-
* npx tsx src/memory/recall-benchmark.ts --queries path/to/queries.json
|
|
10
|
-
* npx tsx src/memory/recall-benchmark.ts --snapshot (dump golden set template)
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=recall-benchmark.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recall-benchmark.d.ts","sourceRoot":"","sources":["../../src/recall-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* recall-benchmark — measures recall pipeline efficacy.
|
|
3
|
-
*
|
|
4
|
-
* Runs a set of test queries against the live memory.db, captures per-stage
|
|
5
|
-
* hits, timing, and unique contribution. Outputs JSON + human-readable summary.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* npx tsx src/memory/recall-benchmark.ts
|
|
9
|
-
* npx tsx src/memory/recall-benchmark.ts --queries path/to/queries.json
|
|
10
|
-
* npx tsx src/memory/recall-benchmark.ts --snapshot (dump golden set template)
|
|
11
|
-
*/
|
|
12
|
-
import { join } from "node:path";
|
|
13
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
14
|
-
import { createRequire } from "node:module";
|
|
15
|
-
const require = createRequire(import.meta.url);
|
|
16
|
-
let _BenchDb = null;
|
|
17
|
-
function getBenchDatabase() { if (!_BenchDb)
|
|
18
|
-
_BenchDb = require("better-sqlite3"); return _BenchDb; }
|
|
19
|
-
import { MemoryIndex } from "./memory-index.js";
|
|
20
|
-
import { recallSearch } from "./recall-engine.js";
|
|
21
|
-
import { abmindHome } from "./mem-paths.js";
|
|
22
|
-
// ── Default queries ─────────────────────────────────────────────────────────
|
|
23
|
-
const DEFAULT_QUERIES = [
|
|
24
|
-
// Personal facts
|
|
25
|
-
{ label: "user name", keywords: ["user", "name"] },
|
|
26
|
-
{ label: "user language", keywords: ["Hungarian", "English", "language"], original: "magyar" },
|
|
27
|
-
{ label: "user environment", keywords: ["WSL", "environment"], original: "környezet" },
|
|
28
|
-
{ label: "user preferences", keywords: ["pizza", "cheese"], original: "sajt" },
|
|
29
|
-
{ label: "user communication style", keywords: ["frustration", "meta-commentary"] },
|
|
30
|
-
// Technical facts
|
|
31
|
-
{ label: "deploy commands", keywords: ["deploy", "scripts"] },
|
|
32
|
-
{ label: "heartbeat interval", keywords: ["heartbeat", "interval"] },
|
|
33
|
-
{ label: "whisper STT", keywords: ["whisper", "voice", "transcription"] },
|
|
34
|
-
{ label: "FTS5 Hungarian", keywords: ["FTS5", "Hungarian", "agglutination"] },
|
|
35
|
-
{ label: "recall pipeline stages", keywords: ["recall", "pipeline", "stages"] },
|
|
36
|
-
// Decisions
|
|
37
|
-
{ label: "prompt file security", keywords: ["prompt", "security", "moved"] },
|
|
38
|
-
{ label: "classification system", keywords: ["NATO", "classification", "SECRET"] },
|
|
39
|
-
{ label: "emotion scoring", keywords: ["emotion", "scoring", "under-detecting"] },
|
|
40
|
-
{ label: "mnt/c forbidden", keywords: ["mnt", "forbidden", "Windows"] },
|
|
41
|
-
{ label: "A2A memory policy", keywords: ["A2A", "memory", "tool"] },
|
|
42
|
-
// Events
|
|
43
|
-
{ label: "Twitter access", keywords: ["Twitter", "X.com", "cookie"] },
|
|
44
|
-
{ label: "daily AI news cron", keywords: ["AI", "news", "cron", "daily"] },
|
|
45
|
-
{ label: "vision capability", keywords: ["vision", "image", "Telegram"] },
|
|
46
|
-
{ label: "refactor deployment", keywords: ["refactor", "deployed", "preparation"] },
|
|
47
|
-
{ label: "Spain trip", keywords: ["Fuengirola", "Spain", "Easter"] },
|
|
48
|
-
// Lessons
|
|
49
|
-
{ label: "pivot on failures", keywords: ["pivot", "failures", "Browsie"] },
|
|
50
|
-
{ label: "search before bluffing", keywords: ["search", "bluffing", "szerda"] },
|
|
51
|
-
{ label: "lead with content", keywords: ["lead", "content", "narration"] },
|
|
52
|
-
{ label: "never claim unavailable", keywords: ["unavailable", "tool", "bash"] },
|
|
53
|
-
{ label: "translation fix policy", keywords: ["translation", "fix", "edit"] },
|
|
54
|
-
// Cross-cutting
|
|
55
|
-
{ label: "Molty", keywords: ["Molty", "OpenClaw", "Mac"] },
|
|
56
|
-
{ label: "Browsie agent", keywords: ["Browsie", "browser", "subagent"] },
|
|
57
|
-
{ label: "cron monitoring", keywords: ["cron", "monitoring", "lastExit"] },
|
|
58
|
-
{ label: "self-healing", keywords: ["self-healing", "heartbeat", "errors"] },
|
|
59
|
-
{ label: "entity recall", keywords: ["entity", "entities", "tagged"] },
|
|
60
|
-
// Bilingual — S2 tests (original-language queries)
|
|
61
|
-
{ label: "HU: password/jelszó", keywords: ["password"], original: "jelszó" },
|
|
62
|
-
{ label: "HU: authorization/engedély", keywords: ["authorization"], original: "engedélyezési" },
|
|
63
|
-
{ label: "HU: Home Assistant/eszközök", keywords: ["Home Assistant"], original: "eszközök" },
|
|
64
|
-
{ label: "HU: Mac environment", keywords: ["Mac"], original: "környezet" },
|
|
65
|
-
{ label: "HU: memory test", keywords: ["memory test"], original: "memória teszt" },
|
|
66
|
-
// Edge cases — vague queries
|
|
67
|
-
{ label: "vague: what happened Tuesday", keywords: ["Tuesday"] },
|
|
68
|
-
{ label: "vague: email", keywords: ["email"] },
|
|
69
|
-
{ label: "vague: bug", keywords: ["bug"] },
|
|
70
|
-
// Edge cases — Hungarian only (no English keyword)
|
|
71
|
-
{ label: "Hungarian: szundi", keywords: ["szundi"], original: "szundi" },
|
|
72
|
-
{ label: "Hungarian: kedd", keywords: ["kedd"], original: "kedd" },
|
|
73
|
-
// Negative — should return few/no results
|
|
74
|
-
{ label: "negative: quantum computing", keywords: ["quantum", "computing", "qubit"] },
|
|
75
|
-
{ label: "negative: kubernetes", keywords: ["kubernetes", "k8s", "pod"] },
|
|
76
|
-
];
|
|
77
|
-
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
78
|
-
function buildDeps(dbPath) {
|
|
79
|
-
const db = new (getBenchDatabase())(dbPath, { readonly: true });
|
|
80
|
-
// Register custom SQL functions needed by recall-engine
|
|
81
|
-
db.function("strip_emojis", (text) => {
|
|
82
|
-
if (typeof text !== "string")
|
|
83
|
-
return text;
|
|
84
|
-
return text.replace(/[\p{Emoji_Presentation}\p{Extended_Pictographic}]/gu, "").replace(/ {2,}/g, " ").trim();
|
|
85
|
-
});
|
|
86
|
-
db.function("strip_diacritics", (text) => {
|
|
87
|
-
if (typeof text !== "string")
|
|
88
|
-
return text;
|
|
89
|
-
return text.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
90
|
-
});
|
|
91
|
-
const index = new MemoryIndex(db);
|
|
92
|
-
const home = abmindHome();
|
|
93
|
-
return {
|
|
94
|
-
db,
|
|
95
|
-
index,
|
|
96
|
-
memoryDir: join(home, "memory"),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
function uniqueContribution(stageHits, allPriorHits) {
|
|
100
|
-
let unique = 0;
|
|
101
|
-
for (const h of stageHits) {
|
|
102
|
-
const key = h.content.slice(0, 80);
|
|
103
|
-
if (!allPriorHits.has(key)) {
|
|
104
|
-
unique++;
|
|
105
|
-
allPriorHits.add(key);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return unique;
|
|
109
|
-
}
|
|
110
|
-
function computePrecision(_results, relevantIds, extractedIds) {
|
|
111
|
-
const relevant = new Set(relevantIds);
|
|
112
|
-
const top10 = extractedIds.slice(0, 10);
|
|
113
|
-
const hits = top10.filter(id => relevant.has(id)).length;
|
|
114
|
-
const p10 = top10.length > 0 ? hits / top10.length : 0;
|
|
115
|
-
const r10 = relevant.size > 0 ? hits / relevant.size : 0;
|
|
116
|
-
const firstRelevant = top10.findIndex(id => relevant.has(id));
|
|
117
|
-
const mrr = firstRelevant >= 0 ? 1 / (firstRelevant + 1) : 0;
|
|
118
|
-
return { p10, r10, mrr };
|
|
119
|
-
}
|
|
120
|
-
// ── Main ────────────────────────────────────────────────────────────────────
|
|
121
|
-
async function main() {
|
|
122
|
-
const args = process.argv.slice(2);
|
|
123
|
-
const dbPath = join(abmindHome(), "memory", "memory.db");
|
|
124
|
-
if (!existsSync(dbPath)) {
|
|
125
|
-
console.error(`DB not found: ${dbPath}`);
|
|
126
|
-
process.exit(1);
|
|
127
|
-
}
|
|
128
|
-
// Load queries
|
|
129
|
-
let queries = DEFAULT_QUERIES;
|
|
130
|
-
const queriesFlag = args.indexOf("--queries");
|
|
131
|
-
if (queriesFlag >= 0 && args[queriesFlag + 1]) {
|
|
132
|
-
queries = JSON.parse(readFileSync(args[queriesFlag + 1], "utf-8"));
|
|
133
|
-
}
|
|
134
|
-
// Snapshot mode: dump golden set template
|
|
135
|
-
if (args.includes("--snapshot")) {
|
|
136
|
-
const deps = buildDeps(dbPath);
|
|
137
|
-
const db = deps.db;
|
|
138
|
-
const memories = db.prepare("SELECT id, SUBSTR(content_en, 1, 150) as preview FROM extracted_memories ORDER BY id").all();
|
|
139
|
-
const template = queries.map(q => ({ ...q, relevantIds: [], _memories: "see below" }));
|
|
140
|
-
const out = { queries: template, memories };
|
|
141
|
-
const outPath = join(abmindHome(), "memory", "recall-golden-set.json");
|
|
142
|
-
writeFileSync(outPath, JSON.stringify(out, null, 2));
|
|
143
|
-
console.log(`Golden set template written to ${outPath}`);
|
|
144
|
-
console.log(`${memories.length} memories, ${queries.length} queries`);
|
|
145
|
-
console.log("Fill in relevantIds[] for each query, then run: npx tsx src/memory/recall-benchmark.ts --queries ${outPath}");
|
|
146
|
-
db.close();
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
const deps = buildDeps(dbPath);
|
|
150
|
-
const db = deps.db;
|
|
151
|
-
const memoryCount = db.prepare("SELECT COUNT(*) as c FROM extracted_memories").get().c;
|
|
152
|
-
const messageCount = db.prepare("SELECT COUNT(*) as c FROM messages").get().c;
|
|
153
|
-
// Detect the primary userId (most memories)
|
|
154
|
-
const primaryChatId = db.prepare("SELECT user_id, COUNT(*) as cnt FROM extracted_memories GROUP BY user_id ORDER BY cnt DESC LIMIT 1").get()?.user_id ?? process.env["ABMIND_USER_ID"];
|
|
155
|
-
if (!primaryChatId) {
|
|
156
|
-
console.error("No memories found and ABMIND_USER_ID not set");
|
|
157
|
-
db.close();
|
|
158
|
-
process.exit(1);
|
|
159
|
-
}
|
|
160
|
-
console.log(`\nRecall Benchmark — ${memoryCount} memories, ${messageCount} messages, ${queries.length} queries (userId=${primaryChatId})\n`);
|
|
161
|
-
const stageStats = {};
|
|
162
|
-
const queryResults = [];
|
|
163
|
-
const hasGolden = queries.some(q => q.relevantIds && q.relevantIds.length > 0);
|
|
164
|
-
const precisionResults = [];
|
|
165
|
-
for (const q of queries) {
|
|
166
|
-
const params = {
|
|
167
|
-
translated: q.keywords,
|
|
168
|
-
original: q.original,
|
|
169
|
-
userId: primaryChatId,
|
|
170
|
-
limit: 10,
|
|
171
|
-
trackRecalls: false,
|
|
172
|
-
};
|
|
173
|
-
const result = await recallSearch(deps, params);
|
|
174
|
-
const seen = new Set();
|
|
175
|
-
const stageBreakdown = {};
|
|
176
|
-
// Process stages in pipeline order
|
|
177
|
-
for (const [stageName, stageResult] of Object.entries(result.stages)) {
|
|
178
|
-
const uniq = uniqueContribution(stageResult.hits, seen);
|
|
179
|
-
stageBreakdown[stageName] = { hits: stageResult.hits.length, uniqueHits: uniq, ms: stageResult.ms };
|
|
180
|
-
if (!stageStats[stageName])
|
|
181
|
-
stageStats[stageName] = { totalHits: 0, uniqueHits: 0, totalMs: 0, queriesWithHits: 0 };
|
|
182
|
-
stageStats[stageName].totalHits += stageResult.hits.length;
|
|
183
|
-
stageStats[stageName].uniqueHits += uniq;
|
|
184
|
-
stageStats[stageName].totalMs += stageResult.ms;
|
|
185
|
-
if (stageResult.hits.length > 0)
|
|
186
|
-
stageStats[stageName].queriesWithHits++;
|
|
187
|
-
}
|
|
188
|
-
const qr = {
|
|
189
|
-
label: q.label,
|
|
190
|
-
keywords: q.keywords,
|
|
191
|
-
totalResults: result.results.length,
|
|
192
|
-
shortCircuitAfter: result.shortCircuitAfter,
|
|
193
|
-
extractedIds: result.extractedIds,
|
|
194
|
-
stages: stageBreakdown,
|
|
195
|
-
topResults: result.results.slice(0, 5).map(r => ({
|
|
196
|
-
content: r.content.slice(0, 120),
|
|
197
|
-
source: r.source,
|
|
198
|
-
score: Math.round(r.score * 1000) / 1000,
|
|
199
|
-
})),
|
|
200
|
-
};
|
|
201
|
-
queryResults.push(qr);
|
|
202
|
-
// Precision if golden labels exist
|
|
203
|
-
if (q.relevantIds && q.relevantIds.length > 0) {
|
|
204
|
-
const p = computePrecision(result.results, q.relevantIds, result.extractedIds);
|
|
205
|
-
precisionResults.push({ label: q.label, ...p });
|
|
206
|
-
}
|
|
207
|
-
// Console progress
|
|
208
|
-
const stageHits = Object.entries(stageBreakdown)
|
|
209
|
-
.filter(([, v]) => v.hits > 0)
|
|
210
|
-
.map(([k, v]) => `${k}:${v.hits}(${v.uniqueHits}u)`)
|
|
211
|
-
.join(" ");
|
|
212
|
-
console.log(` ${q.label.padEnd(35)} → ${result.results.length} results [${stageHits}]${result.shortCircuitAfter ? ` sc:${result.shortCircuitAfter}` : ""}`);
|
|
213
|
-
}
|
|
214
|
-
// Dead stages
|
|
215
|
-
const deadStages = Object.entries(stageStats)
|
|
216
|
-
.filter(([, s]) => s.uniqueHits === 0)
|
|
217
|
-
.map(([name]) => name);
|
|
218
|
-
// Build report
|
|
219
|
-
const report = {
|
|
220
|
-
timestamp: new Date().toISOString(),
|
|
221
|
-
dbPath,
|
|
222
|
-
memoryCount,
|
|
223
|
-
messageCount,
|
|
224
|
-
queryCount: queries.length,
|
|
225
|
-
stageStats,
|
|
226
|
-
deadStages,
|
|
227
|
-
queries: queryResults,
|
|
228
|
-
};
|
|
229
|
-
if (hasGolden && precisionResults.length > 0) {
|
|
230
|
-
const meanP = precisionResults.reduce((s, p) => s + p.p10, 0) / precisionResults.length;
|
|
231
|
-
report.precision = { mean: meanP, perQuery: precisionResults };
|
|
232
|
-
}
|
|
233
|
-
// Write report
|
|
234
|
-
const outDir = join(abmindHome(), "memory", "benchmarks");
|
|
235
|
-
mkdirSync(outDir, { recursive: true });
|
|
236
|
-
const outPath = join(outDir, `recall-${new Date().toISOString().slice(0, 19).replace(/:/g, "")}.json`);
|
|
237
|
-
writeFileSync(outPath, JSON.stringify(report, null, 2));
|
|
238
|
-
// Summary
|
|
239
|
-
console.log("\n── Stage Summary ──────────────────────────────────────────────");
|
|
240
|
-
console.log("Stage".padEnd(8), "Hits".padStart(6), "Unique".padStart(8), "Avg ms".padStart(8), "Queries".padStart(9));
|
|
241
|
-
for (const [name, s] of Object.entries(stageStats).sort(([a], [b]) => a.localeCompare(b))) {
|
|
242
|
-
const avgMs = queries.length > 0 ? Math.round(s.totalMs / queries.length) : 0;
|
|
243
|
-
const marker = s.uniqueHits === 0 ? " ← DEAD" : "";
|
|
244
|
-
console.log(name.padEnd(8), String(s.totalHits).padStart(6), String(s.uniqueHits).padStart(8), String(avgMs).padStart(8), `${s.queriesWithHits}/${queries.length}`.padStart(9), marker);
|
|
245
|
-
}
|
|
246
|
-
if (deadStages.length > 0) {
|
|
247
|
-
console.log(`\n⚠️ Dead stages (zero unique hits across all queries): ${deadStages.join(", ")}`);
|
|
248
|
-
}
|
|
249
|
-
if (report.precision) {
|
|
250
|
-
console.log(`\n── Precision (golden labels) ──────────────────────────────────`);
|
|
251
|
-
console.log(`Mean P@10: ${(report.precision.mean * 100).toFixed(1)}%`);
|
|
252
|
-
for (const p of report.precision.perQuery) {
|
|
253
|
-
console.log(` ${p.label.padEnd(35)} P@10=${(p.p10 * 100).toFixed(0)}% R@10=${(p.r10 * 100).toFixed(0)}% MRR=${p.mrr.toFixed(2)}`);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
console.log(`\nReport saved: ${outPath}`);
|
|
257
|
-
db.close();
|
|
258
|
-
}
|
|
259
|
-
main().catch(err => { console.error(err); process.exit(1); });
|
|
260
|
-
//# sourceMappingURL=recall-benchmark.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recall-benchmark.js","sourceRoot":"","sources":["../../src/recall-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,IAAI,QAAQ,GAAgC,IAAI,CAAC;AACjD,SAAS,gBAAgB,KAA2B,IAAI,CAAC,QAAQ;IAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAyB,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;AACnJ,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAyE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA+C5C,+EAA+E;AAE/E,MAAM,eAAe,GAAgB;IACnC,iBAAiB;IACjB,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAClD,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC9F,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE;IACtF,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC9E,EAAE,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE;IACnF,kBAAkB;IAClB,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;IAC7D,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;IACpE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE;IACzE,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE;IAC7E,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;IAC/E,YAAY;IACZ,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;IAC5E,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE;IAClF,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE;IACjF,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE;IACvE,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnE,SAAS;IACT,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IACrE,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE;IACzE,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE;IACnF,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IACpE,UAAU;IACV,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;IAC/E,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAC/E,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;IAC7E,gBAAgB;IAChB,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC1D,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;IACxE,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE;IAC1E,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE;IAC5E,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;IACtE,mDAAmD;IACnD,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC5E,EAAE,KAAK,EAAE,4BAA4B,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE;IAC/F,EAAE,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC5F,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC1E,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE;IAClF,6BAA6B;IAC7B,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;IAC9C,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IAC1C,mDAAmD;IACnD,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACxE,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;IAClE,0CAA0C;IAC1C,EAAE,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;IACrF,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;CAC1E,CAAC;AAEF,gFAAgF;AAEhF,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,wDAAwD;IACxD,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAa,EAAE,EAAE;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,qDAAqD,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAa,EAAE,EAAE;QAChD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,OAAO;QACL,EAAE;QACF,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAsB,EAAE,YAAyB;IAC3E,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM,EAAE,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAqB,EAAE,WAAqB,EAAE,YAAsB;IAC5F,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEzD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEvF,eAAe;IACf,IAAI,OAAO,GAAgB,eAAe,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAE,EAAE,OAAO,CAAC,CAAgB,CAAC;IACrF,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,EAA4C,CAAC;QACpK,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,EAAc,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACnG,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACvE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,6GAA6G,CAAC,CAAC;QAC3H,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnB,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAC1G,MAAM,YAAY,GAAI,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAEjG,4CAA4C;IAC5C,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B,oGAAoG,CACrG,CAAC,GAAG,EAA0B,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,CAAC,aAAa,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAEnH,OAAO,CAAC,GAAG,CAAC,wBAAwB,WAAW,cAAc,YAAY,cAAc,OAAO,CAAC,MAAM,oBAAoB,aAAa,KAAK,CAAC,CAAC;IAE7I,MAAM,UAAU,GAA+B,EAAE,CAAC;IAClD,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAoE,EAAE,CAAC;IAE7F,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAiB;YAC3B,UAAU,EAAE,CAAC,CAAC,QAAQ;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,KAAK;SACpB,CAAC;QAEF,MAAM,MAAM,GAAiB,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,cAAc,GAAqE,EAAE,CAAC;QAE5F,mCAAmC;QACnC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;YAEpG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;YACpH,UAAU,CAAC,SAAS,CAAE,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5D,UAAU,CAAC,SAAS,CAAE,CAAC,UAAU,IAAI,IAAI,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAE,CAAC,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC;YACjD,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,SAAS,CAAE,CAAC,eAAe,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,EAAE,GAAgB;YACtB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI;aACzC,CAAC,CAAC;SACJ,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,mCAAmC;QACnC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC/E,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC;aACnD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,cAAc,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjK,CAAC;IAED,cAAc;IACd,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,eAAe;IACf,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM;QACN,WAAW;QACX,YAAY;QACZ,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,UAAU;QACV,UAAU;QACV,OAAO,EAAE,YAAY;KACtB,CAAC;IAEF,IAAI,SAAS,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACxF,MAAM,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IACjE,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC1D,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACvG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAExD,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1L,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,4DAA4D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAC1C,EAAE,CAAC,KAAK,EAAE,CAAC;AACb,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SleepRuntime — one-method LLM injection interface for the sleep orchestrator.
|
|
3
|
-
*
|
|
4
|
-
* Callers (bridge in-process, standalone CLI shell-out, Openclaw plugin, MCP) provide
|
|
5
|
-
* their own implementation. Abmind ships no default; the library never spawns a child
|
|
6
|
-
* process itself. See docs/plans/163-sleep-to-abmind.md for the injection rationale.
|
|
7
|
-
*/
|
|
8
|
-
export interface SleepRuntime {
|
|
9
|
-
/**
|
|
10
|
-
* Send the prompt to an LLM, return the full text response.
|
|
11
|
-
* Must reject on transport failure; the orchestrator handles retry/backoff via LlmBudget.
|
|
12
|
-
*/
|
|
13
|
-
complete(prompt: string): Promise<string>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/sleep/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/sleep/runtime.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wake-up-renderer.ts — Compression Level 2 rendering for wake-up context.
|
|
3
|
-
* Entity header + topic grouping + elide defaults.
|
|
4
|
-
* Operates on stored ABM-L, produces ultra-compact output.
|
|
5
|
-
*/
|
|
6
|
-
export type CompressionLevel = "signal" | "full" | "compact" | "ultra";
|
|
7
|
-
/** Pick compression level based on token budget. */
|
|
8
|
-
export declare function pickLevel(budgetTokens: number): CompressionLevel;
|
|
9
|
-
interface MemoryEntry {
|
|
10
|
-
content_compressed: string;
|
|
11
|
-
topic: string;
|
|
12
|
-
emotion_arc?: string | null;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Render core memories for wake-up context at the given compression level.
|
|
16
|
-
*/
|
|
17
|
-
export declare function renderWakeUp(entries: ReadonlyArray<MemoryEntry>, level: CompressionLevel): string;
|
|
18
|
-
/**
|
|
19
|
-
* Compress a daily summary to ABM-L bullet points.
|
|
20
|
-
* Input: raw markdown daily. Output: compact ABM-L lines.
|
|
21
|
-
*/
|
|
22
|
-
export declare function compressDailySummary(markdown: string, date: string): string;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=wake-up-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wake-up-renderer.d.ts","sourceRoot":"","sources":["../../src/wake-up-renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAKhE;AAED,UAAU,WAAW;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAwED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAWjG;AA0BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB3E"}
|