agent-working-memory 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/adapters/claude-code.d.ts.map +1 -1
- package/dist/adapters/claude-code.js +63 -3
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adapters/common.d.ts.map +1 -1
- package/dist/adapters/common.js +329 -306
- package/dist/adapters/common.js.map +1 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +29 -7
- package/dist/api/routes.js.map +1 -1
- package/dist/coordination/routes.d.ts.map +1 -1
- package/dist/coordination/routes.js +174 -170
- package/dist/coordination/routes.js.map +1 -1
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +3 -0
- package/dist/core/embeddings.js.map +1 -1
- package/dist/core/entity-extract.d.ts +3 -0
- package/dist/core/entity-extract.d.ts.map +1 -0
- package/dist/core/entity-extract.js +47 -0
- package/dist/core/entity-extract.js.map +1 -0
- package/dist/core/salience.d.ts.map +1 -1
- package/dist/core/salience.js +14 -2
- package/dist/core/salience.js.map +1 -1
- package/dist/core/whoami.d.ts +24 -0
- package/dist/core/whoami.d.ts.map +1 -0
- package/dist/core/whoami.js +66 -0
- package/dist/core/whoami.js.map +1 -0
- package/dist/core/write-pipeline.d.ts +9 -0
- package/dist/core/write-pipeline.d.ts.map +1 -1
- package/dist/core/write-pipeline.js +109 -68
- package/dist/core/write-pipeline.js.map +1 -1
- package/dist/core/write-telemetry.d.ts +33 -0
- package/dist/core/write-telemetry.d.ts.map +1 -0
- package/dist/core/write-telemetry.js +110 -0
- package/dist/core/write-telemetry.js.map +1 -0
- package/dist/engine/activation.d.ts +22 -12
- package/dist/engine/activation.d.ts.map +1 -1
- package/dist/engine/activation.js +133 -17
- package/dist/engine/activation.js.map +1 -1
- package/dist/engine/consolidation-scheduler.d.ts +1 -1
- package/dist/engine/consolidation-scheduler.js +1 -1
- package/dist/engine/consolidation.d.ts +1 -0
- package/dist/engine/consolidation.d.ts.map +1 -1
- package/dist/engine/consolidation.js +18 -0
- package/dist/engine/consolidation.js.map +1 -1
- package/dist/engine/eval.d.ts.map +1 -1
- package/dist/engine/eval.js +5 -1
- package/dist/engine/eval.js.map +1 -1
- package/dist/index.js +20 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +2 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +168 -100
- package/dist/mcp.js.map +1 -1
- package/dist/recipes/index.d.ts +57 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +81 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/storage/pglite-schema.d.ts.map +1 -1
- package/dist/storage/pglite-schema.js +27 -0
- package/dist/storage/pglite-schema.js.map +1 -1
- package/dist/storage/pglite.d.ts +5 -0
- package/dist/storage/pglite.d.ts.map +1 -1
- package/dist/storage/pglite.js +180 -138
- package/dist/storage/pglite.js.map +1 -1
- package/dist/storage/postgres.d.ts +5 -0
- package/dist/storage/postgres.d.ts.map +1 -1
- package/dist/storage/postgres.js +180 -138
- package/dist/storage/postgres.js.map +1 -1
- package/dist/storage/sqlite.d.ts +9 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +394 -326
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types/engram.d.ts +14 -0
- package/dist/types/engram.d.ts.map +1 -1
- package/dist/types/engram.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/claude-code.ts +66 -3
- package/src/adapters/common.ts +538 -515
- package/src/api/routes.ts +999 -971
- package/src/coordination/routes.ts +2155 -2150
- package/src/core/embeddings.ts +3 -0
- package/src/core/entity-extract.ts +47 -0
- package/src/core/salience.ts +529 -514
- package/src/core/whoami.ts +92 -0
- package/src/core/write-pipeline.ts +60 -8
- package/src/core/write-telemetry.ts +131 -0
- package/src/engine/activation.ts +1468 -1369
- package/src/engine/consolidation-scheduler.ts +1 -1
- package/src/engine/consolidation.ts +887 -869
- package/src/engine/eval.ts +6 -1
- package/src/index.ts +248 -227
- package/src/mcp.ts +1341 -1270
- package/src/recipes/index.ts +125 -0
- package/src/storage/pglite-schema.ts +27 -0
- package/src/storage/pglite.ts +1420 -1372
- package/src/storage/postgres.ts +1523 -1475
- package/src/storage/sqlite.ts +1936 -1861
- package/src/types/engram.ts +22 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Copyright 2026 Robert Winter / Complete Ideas
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Instance identity (D3, 2026-07-30).
|
|
5
|
+
*
|
|
6
|
+
* Answers "which AWM am I talking to?" — the recurring confusion class where
|
|
7
|
+
* sessions mix up the hosted multi-agent connector with the local instance,
|
|
8
|
+
* or run blind to sibling agent spaces in the same store (an evaluation once
|
|
9
|
+
* analyzed this project without seeing the `personal` space that held its
|
|
10
|
+
* design decisions).
|
|
11
|
+
*
|
|
12
|
+
* Exposed as the `memory_whoami` MCP tool and the `GET /whoami` HTTP route.
|
|
13
|
+
* Read-only; additive module.
|
|
14
|
+
*/
|
|
15
|
+
import { dirname, join, resolve } from 'node:path';
|
|
16
|
+
import { fileURLToPath } from 'node:url';
|
|
17
|
+
import { VERSION } from '../version.js';
|
|
18
|
+
import { getConfiguredBackend, getConfiguredPath } from '../storage/factory.js';
|
|
19
|
+
function packageRoot() {
|
|
20
|
+
// src/core/whoami.ts (dev) and dist/core/whoami.js (build) both sit two
|
|
21
|
+
// levels below the package root.
|
|
22
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
return resolve(join(here, '..', '..'));
|
|
24
|
+
}
|
|
25
|
+
export async function buildWhoami(store, agentId, surface) {
|
|
26
|
+
const coordination = process.env.AWM_COORDINATION === 'true' || process.env.AWM_COORDINATION === '1';
|
|
27
|
+
let siblings = [];
|
|
28
|
+
try {
|
|
29
|
+
const all = await store.listAgentIds();
|
|
30
|
+
siblings = all.filter(a => a !== agentId).sort();
|
|
31
|
+
}
|
|
32
|
+
catch { /* identity must never fail on a listing error */ }
|
|
33
|
+
const httpPort = Number(process.env.AWM_PORT ?? '');
|
|
34
|
+
const hookPort = Number(process.env.AWM_HOOK_PORT ?? '');
|
|
35
|
+
return {
|
|
36
|
+
agentId,
|
|
37
|
+
workspace: process.env.AWM_WORKSPACE ?? null,
|
|
38
|
+
surface,
|
|
39
|
+
mode: coordination ? 'hive' : 'standalone',
|
|
40
|
+
backend: getConfiguredBackend(),
|
|
41
|
+
storePath: getConfiguredPath(),
|
|
42
|
+
version: VERSION,
|
|
43
|
+
codePath: packageRoot(),
|
|
44
|
+
pid: process.pid,
|
|
45
|
+
ports: {
|
|
46
|
+
http: Number.isFinite(httpPort) && httpPort > 0 ? httpPort : null,
|
|
47
|
+
hookSidecar: Number.isFinite(hookPort) && hookPort > 0 ? hookPort : null,
|
|
48
|
+
},
|
|
49
|
+
siblingAgents: siblings,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Human-readable rendering for the MCP tool response. */
|
|
53
|
+
export function formatWhoami(w) {
|
|
54
|
+
return [
|
|
55
|
+
`Agent: ${w.agentId}${w.workspace ? ` (workspace: ${w.workspace})` : ''}`,
|
|
56
|
+
`Mode: ${w.mode} · Surface: ${w.surface} · Version: ${w.version}`,
|
|
57
|
+
`Backend: ${w.backend}`,
|
|
58
|
+
`Store: ${w.storePath}`,
|
|
59
|
+
`Code: ${w.codePath} (pid ${w.pid})`,
|
|
60
|
+
`Ports: http=${w.ports.http ?? 'off'} hookSidecar=${w.ports.hookSidecar ?? 'off'}`,
|
|
61
|
+
w.siblingAgents.length
|
|
62
|
+
? `Sibling agent spaces in this store: ${w.siblingAgents.join(', ')} — recall is scoped to '${w.agentId}'; other spaces need workspace recall, \`awm export --agent <id>\`, or a session configured for that agent.`
|
|
63
|
+
: 'Sibling agent spaces in this store: none',
|
|
64
|
+
].join('\n');
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/core/whoami.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,15 @@ export interface WriteInput {
|
|
|
71
71
|
* because it's deterministically retrieved; opt in if a caller wants
|
|
72
72
|
* cognitive recall over a structural engram. (0.8 Cluster A) */
|
|
73
73
|
embed?: boolean;
|
|
74
|
+
/** Provenance (D5, log-only): 'user-stated' | 'tool-output' | 'inference' | 'recipe'. */
|
|
75
|
+
originClass?: string;
|
|
76
|
+
/** Provenance (D5): session/conversation id performing the write. */
|
|
77
|
+
writerSession?: string;
|
|
78
|
+
/** Provenance (D5): cognition-recipe id+version when originClass is 'recipe'. */
|
|
79
|
+
recipeId?: string;
|
|
80
|
+
/** Temporal validity (D8): ISO bounds on when the FACT holds. */
|
|
81
|
+
validFrom?: string;
|
|
82
|
+
validTo?: string;
|
|
74
83
|
}
|
|
75
84
|
export interface WriteResult {
|
|
76
85
|
action: WriteAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"write-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAOvB,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAY9C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,oBAAoB,EAAE,eAAe,EAAE,CAAC;IAC5D;;qEAEiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,uGAAuG;IACvG,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,uDAAuD;IACvD,aAAa,EAAE,aAAa,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,iEAAiE;IACjE,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,WAAW,CAAC,CA4KtB"}
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
import { evaluateSalience, computeNoveltyWithMatch, detectUserFeedback, } from './salience.js';
|
|
38
38
|
import { embed } from './embeddings.js';
|
|
39
39
|
import { extractMetaTags } from './auto-tagger.js';
|
|
40
|
+
import { extractEntitiesFromTags } from './entity-extract.js';
|
|
41
|
+
import { reportWrite } from './write-telemetry.js';
|
|
40
42
|
import { DEFAULT_AGENT_CONFIG } from '../types/agent.js';
|
|
41
43
|
/** Confidence floor below which a matched engram is treated as "decaying out". */
|
|
42
44
|
export const HEALTHY_CONFIDENCE_FLOOR = 0.3;
|
|
@@ -84,7 +86,10 @@ export async function performWrite(engines, input) {
|
|
|
84
86
|
// Profiling: AWM_PROFILE_WRITE=1 logs ms-per-phase to stderr (v0.8.2).
|
|
85
87
|
// Off by default; zero cost when unset.
|
|
86
88
|
const profile = process.env.AWM_PROFILE_WRITE === '1';
|
|
87
|
-
|
|
89
|
+
// Timings are collected unconditionally since D1 (2026-07-30): a handful of
|
|
90
|
+
// performance.now() calls are free, and the always-on slow-write telemetry
|
|
91
|
+
// (write-telemetry.ts) needs them to explain stalls in production.
|
|
92
|
+
const startTotal = performance.now();
|
|
88
93
|
let tNovelty = 0, tCreate = 0, tEmbed = 0;
|
|
89
94
|
// Pre-embed once (v0.8.5): the embedding is needed for cosine-based novelty
|
|
90
95
|
// and is also the embedding we'll store on the engram. Computing it once
|
|
@@ -97,7 +102,7 @@ export async function performWrite(engines, input) {
|
|
|
97
102
|
// hook below will retry).
|
|
98
103
|
// Disable via AWM_NOVELTY_EMBED=0 to keep writes ultra-fast at the cost
|
|
99
104
|
// of cross-backend novelty consistency.
|
|
100
|
-
const tStartEmbed =
|
|
105
|
+
const tStartEmbed = performance.now();
|
|
101
106
|
let prewriteEmbedding = null;
|
|
102
107
|
if (process.env.AWM_NOVELTY_EMBED !== '0') {
|
|
103
108
|
try {
|
|
@@ -105,12 +110,10 @@ export async function performWrite(engines, input) {
|
|
|
105
110
|
}
|
|
106
111
|
catch { /* fall through — async embed will retry later */ }
|
|
107
112
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const tStartNovelty = profile ? performance.now() : 0;
|
|
113
|
+
tEmbed = performance.now() - tStartEmbed;
|
|
114
|
+
const tStartNovelty = performance.now();
|
|
111
115
|
const noveltyResult = await computeNoveltyWithMatch(store, input.agentId, input.concept, input.content, input.workspace ?? null, prewriteEmbedding);
|
|
112
|
-
|
|
113
|
-
tNovelty = performance.now() - tStartNovelty;
|
|
116
|
+
tNovelty = performance.now() - tStartNovelty;
|
|
114
117
|
// Effective event type — auto-promote user-feedback content.
|
|
115
118
|
const effectiveEventType = input.eventType ?? (detectUserFeedback(input.content) ? 'user_feedback' : 'observation');
|
|
116
119
|
// Effective memory class — auto-canonical for user-feedback and verified findings.
|
|
@@ -129,77 +132,102 @@ export async function performWrite(engines, input) {
|
|
|
129
132
|
memoryClass: effectiveMemoryClass,
|
|
130
133
|
});
|
|
131
134
|
// -- Reinforce / Supersede branching --
|
|
132
|
-
const tStartCreate =
|
|
135
|
+
const tStartCreate = performance.now();
|
|
136
|
+
let busyHit = false;
|
|
133
137
|
let result = null;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
else {
|
|
170
|
-
// R2 — health check on the matched engram
|
|
171
|
-
const isHealthy = matched.stage === 'active'
|
|
172
|
-
&& matched.confidence >= HEALTHY_CONFIDENCE_FLOOR
|
|
173
|
-
&& matched.supersededBy == null;
|
|
174
|
-
if (isHealthy) {
|
|
175
|
-
// R1 — reinforce (and merge new content into matched engram, v0.8.5)
|
|
176
|
-
result = await reinforceMatched(store, matched, noveltyResult, salience, input.content, input.concept);
|
|
138
|
+
try {
|
|
139
|
+
if (enableReinforcement && noveltyResult.matchedEngramId) {
|
|
140
|
+
const matched = await store.getEngram(noveltyResult.matchedEngramId);
|
|
141
|
+
// Agent-scope guard: NEVER reinforce/supersede an engram that belongs to a DIFFERENT agent. A
|
|
142
|
+
// workspace/hive recall can surface another agent's same-concept engram as the match; mutating it
|
|
143
|
+
// (merge content, re-embed, bump confidence, or supersede) would corrupt that agent's memory. A
|
|
144
|
+
// cross-agent match falls through to createNewEngram so this agent gets its own copy.
|
|
145
|
+
if (matched && matched.agentId === input.agentId) {
|
|
146
|
+
const newConcept = (input.concept ?? '').toLowerCase().trim();
|
|
147
|
+
const matchedConcept = (matched.concept ?? '').toLowerCase().trim();
|
|
148
|
+
const sameConcept = newConcept === matchedConcept && newConcept.length > 0;
|
|
149
|
+
if (sameConcept) {
|
|
150
|
+
const isCorrectionSignal = effectiveEventType === 'surprise'
|
|
151
|
+
|| effectiveEventType === 'friction';
|
|
152
|
+
if (isCorrectionSignal) {
|
|
153
|
+
// R3 — supersede the matched engram with the new write.
|
|
154
|
+
// Force `active` disposition (v0.8.5): the user explicitly flagged
|
|
155
|
+
// this write as a correction (eventType=surprise/friction). Without
|
|
156
|
+
// this override, cosine-based novelty (which correctly recognizes
|
|
157
|
+
// the correction's semantic similarity to the engram it's
|
|
158
|
+
// correcting) would push salience low and the correction would
|
|
159
|
+
// land in 'staging'. That broke the R2 superseder-reinforce chain
|
|
160
|
+
// for later writes (the chain requires stage='active'). The user's
|
|
161
|
+
// explicit correction intent must win over the duplicate-detection
|
|
162
|
+
// signal. R3 corrections always go active.
|
|
163
|
+
const correctionSalience = {
|
|
164
|
+
...salience,
|
|
165
|
+
disposition: 'active',
|
|
166
|
+
reasonCodes: [...salience.reasonCodes, 'correction:override-active'],
|
|
167
|
+
};
|
|
168
|
+
result = await createNewEngram(engines, input, correctionSalience, noveltyResult, {
|
|
169
|
+
effectiveEventType,
|
|
170
|
+
effectiveMemoryClass,
|
|
171
|
+
supersedesId: matched.id,
|
|
172
|
+
}, prewriteEmbedding);
|
|
177
173
|
}
|
|
178
|
-
else
|
|
179
|
-
//
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
&&
|
|
183
|
-
|
|
184
|
-
|
|
174
|
+
else {
|
|
175
|
+
// R2 — health check on the matched engram
|
|
176
|
+
const isHealthy = matched.stage === 'active'
|
|
177
|
+
&& matched.confidence >= HEALTHY_CONFIDENCE_FLOOR
|
|
178
|
+
&& matched.supersededBy == null;
|
|
179
|
+
if (isHealthy) {
|
|
180
|
+
// R1 — reinforce (and merge new content into matched engram, v0.8.5)
|
|
181
|
+
result = await reinforceMatched(store, matched, noveltyResult, salience, input.content, input.concept);
|
|
182
|
+
}
|
|
183
|
+
else if (matched.supersededBy) {
|
|
184
|
+
// Unhealthy match but it was superseded — try to reinforce the superseder
|
|
185
|
+
const superseder = await store.getEngram(matched.supersededBy);
|
|
186
|
+
if (superseder && superseder.stage === 'active'
|
|
187
|
+
&& superseder.confidence >= HEALTHY_CONFIDENCE_FLOOR
|
|
188
|
+
&& superseder.supersededBy == null) {
|
|
189
|
+
result = await reinforceMatched(store, superseder, noveltyResult, salience, input.content, input.concept);
|
|
190
|
+
}
|
|
185
191
|
}
|
|
186
192
|
}
|
|
187
193
|
}
|
|
188
194
|
}
|
|
189
195
|
}
|
|
196
|
+
// -- Default: create new engram (if no reinforce/supersede branch fired) --
|
|
197
|
+
if (!result) {
|
|
198
|
+
result = await createNewEngram(engines, input, salience, noveltyResult, {
|
|
199
|
+
effectiveEventType,
|
|
200
|
+
effectiveMemoryClass,
|
|
201
|
+
supersedesId: input.supersedes,
|
|
202
|
+
}, prewriteEmbedding);
|
|
203
|
+
}
|
|
190
204
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
205
|
+
catch (e) {
|
|
206
|
+
const es = `${e?.code ?? ''} ${e?.message ?? ''}`;
|
|
207
|
+
busyHit = /busy/i.test(es);
|
|
208
|
+
reportWrite({
|
|
209
|
+
totalMs: performance.now() - startTotal,
|
|
210
|
+
embedMs: tEmbed,
|
|
211
|
+
noveltyMs: tNovelty,
|
|
212
|
+
persistMs: performance.now() - tStartCreate,
|
|
213
|
+
action: 'error',
|
|
214
|
+
agentId: input.agentId,
|
|
215
|
+
busyHit,
|
|
216
|
+
});
|
|
217
|
+
throw e;
|
|
198
218
|
}
|
|
199
|
-
|
|
200
|
-
|
|
219
|
+
tCreate = performance.now() - tStartCreate;
|
|
220
|
+
const total = performance.now() - startTotal;
|
|
221
|
+
reportWrite({
|
|
222
|
+
totalMs: total,
|
|
223
|
+
embedMs: tEmbed,
|
|
224
|
+
noveltyMs: tNovelty,
|
|
225
|
+
persistMs: tCreate,
|
|
226
|
+
action: result.action,
|
|
227
|
+
agentId: input.agentId,
|
|
228
|
+
busyHit,
|
|
229
|
+
});
|
|
201
230
|
if (profile) {
|
|
202
|
-
const total = performance.now() - startTotal;
|
|
203
231
|
// Single-line stderr log; cheap to grep, easy to disable.
|
|
204
232
|
// Format: [write] action=create novelty=42.1ms create=18.3ms total=60.4ms agent=x id=y
|
|
205
233
|
// eslint-disable-next-line no-console
|
|
@@ -361,6 +389,11 @@ prewriteEmbedding = null) {
|
|
|
361
389
|
supersedes: meta.supersedesId,
|
|
362
390
|
sequence: input.sequence,
|
|
363
391
|
references: input.references,
|
|
392
|
+
originClass: input.originClass,
|
|
393
|
+
writerSession: input.writerSession,
|
|
394
|
+
recipeId: input.recipeId,
|
|
395
|
+
validFrom: input.validFrom,
|
|
396
|
+
validTo: input.validTo,
|
|
364
397
|
embedding: prewriteEmbedding && prewriteEmbedding.length > 0
|
|
365
398
|
? prewriteEmbedding
|
|
366
399
|
: undefined,
|
|
@@ -368,6 +401,14 @@ prewriteEmbedding = null) {
|
|
|
368
401
|
if (salience.disposition === 'staging') {
|
|
369
402
|
await store.updateStage(engram.id, 'staging');
|
|
370
403
|
}
|
|
404
|
+
// Entity inverted index (D9): index structured entities from tags at write
|
|
405
|
+
// time. Best-effort — retrieval does not depend on it yet (D11).
|
|
406
|
+
try {
|
|
407
|
+
const entities = extractEntitiesFromTags(tags);
|
|
408
|
+
if (entities.length > 0)
|
|
409
|
+
await store.recordEntityMentions(engram.id, input.agentId, entities);
|
|
410
|
+
}
|
|
411
|
+
catch { /* non-fatal */ }
|
|
371
412
|
// Supersession side-effects: mark the old engram, add causal edge.
|
|
372
413
|
if (meta.supersedesId) {
|
|
373
414
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-pipeline.js","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write-pipeline.js","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Start the loop-lag heartbeat. Idempotent; call once at process boot. */
|
|
2
|
+
export declare function startLoopLagMonitor(): void;
|
|
3
|
+
/**
|
|
4
|
+
* Max observed loop lag (ms beyond the expected tick) since the last read.
|
|
5
|
+
* Reading resets the max. A large value means this process's event loop was
|
|
6
|
+
* blocked (in-process ML, consolidation, sync SQL) during the window.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readMaxLoopLag(): number;
|
|
9
|
+
export declare function setConsolidationActive(active: boolean, agentId?: string): void;
|
|
10
|
+
export declare function getConsolidationState(): {
|
|
11
|
+
active: boolean;
|
|
12
|
+
agentId: string | null;
|
|
13
|
+
runningMs: number;
|
|
14
|
+
};
|
|
15
|
+
export declare function noteModelLoad(ms: number): void;
|
|
16
|
+
export declare function getModelColdLoadMs(): number | null;
|
|
17
|
+
export interface WriteTimings {
|
|
18
|
+
totalMs: number;
|
|
19
|
+
embedMs: number;
|
|
20
|
+
noveltyMs: number;
|
|
21
|
+
persistMs: number;
|
|
22
|
+
action: string;
|
|
23
|
+
agentId: string;
|
|
24
|
+
busyHit: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Report a completed write. Emits one structured stderr line when the write
|
|
28
|
+
* exceeded the slow threshold (always-on) — including loop lag and in-process
|
|
29
|
+
* consolidation state, the two signals that distinguish "DB lock wait" from
|
|
30
|
+
* "my own event loop was blocked".
|
|
31
|
+
*/
|
|
32
|
+
export declare function reportWrite(t: WriteTimings): void;
|
|
33
|
+
//# sourceMappingURL=write-telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-telemetry.d.ts","sourceRoot":"","sources":["../../src/core/write-telemetry.ts"],"names":[],"mappings":"AAmCA,2EAA2E;AAC3E,wBAAgB,mBAAmB,IAAI,IAAI,CAW1C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAQD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAI9E;AAED,wBAAgB,qBAAqB,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAMtG;AAMD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK9C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAiBjD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Copyright 2026 Robert Winter / Complete Ideas
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Write-path telemetry (D1, 2026-07-30).
|
|
5
|
+
*
|
|
6
|
+
* Purpose: prove the mechanism behind slow writes before building the
|
|
7
|
+
* serialized write service. Captures, per write:
|
|
8
|
+
* - phase wall times (embed / novelty / persist)
|
|
9
|
+
* - event-loop lag at write completion (was this process's loop blocked?)
|
|
10
|
+
* - whether a consolidation cycle was running IN THIS PROCESS
|
|
11
|
+
* - whether SQLITE_BUSY was hit
|
|
12
|
+
* - embed-model cold-load duration (first inference)
|
|
13
|
+
*
|
|
14
|
+
* Always-on slow-write warning: any write slower than AWM_SLOW_WRITE_MS
|
|
15
|
+
* (default 250ms; set 0 to disable) emits ONE structured stderr line.
|
|
16
|
+
* AWM_PROFILE_WRITE=1 continues to log every write as before.
|
|
17
|
+
*
|
|
18
|
+
* Design notes: additive module — no existing export changes (MWA vendors
|
|
19
|
+
* dist internals; nothing here alters existing paths). All timers are
|
|
20
|
+
* unref'd so they never hold the process open.
|
|
21
|
+
*/
|
|
22
|
+
const SLOW_WRITE_MS = (() => {
|
|
23
|
+
const v = Number(process.env.AWM_SLOW_WRITE_MS ?? '250');
|
|
24
|
+
return Number.isFinite(v) ? v : 250;
|
|
25
|
+
})();
|
|
26
|
+
// ---------- Event-loop lag monitor ----------
|
|
27
|
+
const TICK_MS = 500;
|
|
28
|
+
let lastTick = 0;
|
|
29
|
+
let maxLagSinceRead = 0;
|
|
30
|
+
let monitorStarted = false;
|
|
31
|
+
/** Start the loop-lag heartbeat. Idempotent; call once at process boot. */
|
|
32
|
+
export function startLoopLagMonitor() {
|
|
33
|
+
if (monitorStarted)
|
|
34
|
+
return;
|
|
35
|
+
monitorStarted = true;
|
|
36
|
+
lastTick = performance.now();
|
|
37
|
+
const t = setInterval(() => {
|
|
38
|
+
const now = performance.now();
|
|
39
|
+
const lag = now - lastTick - TICK_MS;
|
|
40
|
+
if (lag > maxLagSinceRead)
|
|
41
|
+
maxLagSinceRead = lag;
|
|
42
|
+
lastTick = now;
|
|
43
|
+
}, TICK_MS);
|
|
44
|
+
if (typeof t.unref === 'function')
|
|
45
|
+
t.unref();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Max observed loop lag (ms beyond the expected tick) since the last read.
|
|
49
|
+
* Reading resets the max. A large value means this process's event loop was
|
|
50
|
+
* blocked (in-process ML, consolidation, sync SQL) during the window.
|
|
51
|
+
*/
|
|
52
|
+
export function readMaxLoopLag() {
|
|
53
|
+
const v = maxLagSinceRead;
|
|
54
|
+
maxLagSinceRead = 0;
|
|
55
|
+
return Math.max(0, Math.round(v));
|
|
56
|
+
}
|
|
57
|
+
// ---------- In-process consolidation state ----------
|
|
58
|
+
let consolidationActive = false;
|
|
59
|
+
let consolidationAgent = null;
|
|
60
|
+
let consolidationStartedAt = 0;
|
|
61
|
+
export function setConsolidationActive(active, agentId) {
|
|
62
|
+
consolidationActive = active;
|
|
63
|
+
consolidationAgent = active ? (agentId ?? null) : null;
|
|
64
|
+
consolidationStartedAt = active ? performance.now() : 0;
|
|
65
|
+
}
|
|
66
|
+
export function getConsolidationState() {
|
|
67
|
+
return {
|
|
68
|
+
active: consolidationActive,
|
|
69
|
+
agentId: consolidationAgent,
|
|
70
|
+
runningMs: consolidationActive ? Math.round(performance.now() - consolidationStartedAt) : 0,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// ---------- Model cold-load record ----------
|
|
74
|
+
let modelColdLoadMs = null;
|
|
75
|
+
export function noteModelLoad(ms) {
|
|
76
|
+
if (modelColdLoadMs === null) {
|
|
77
|
+
modelColdLoadMs = Math.round(ms);
|
|
78
|
+
process.stderr.write(`[awm] embed model cold load: ${modelColdLoadMs}ms\n`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export function getModelColdLoadMs() {
|
|
82
|
+
return modelColdLoadMs;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Report a completed write. Emits one structured stderr line when the write
|
|
86
|
+
* exceeded the slow threshold (always-on) — including loop lag and in-process
|
|
87
|
+
* consolidation state, the two signals that distinguish "DB lock wait" from
|
|
88
|
+
* "my own event loop was blocked".
|
|
89
|
+
*/
|
|
90
|
+
export function reportWrite(t) {
|
|
91
|
+
if (SLOW_WRITE_MS <= 0)
|
|
92
|
+
return;
|
|
93
|
+
if (t.totalMs < SLOW_WRITE_MS)
|
|
94
|
+
return;
|
|
95
|
+
const consol = getConsolidationState();
|
|
96
|
+
const parts = [
|
|
97
|
+
`[awm] SLOW WRITE ${Math.round(t.totalMs)}ms`,
|
|
98
|
+
`agent=${t.agentId}`,
|
|
99
|
+
`action=${t.action}`,
|
|
100
|
+
`embed=${Math.round(t.embedMs)}ms`,
|
|
101
|
+
`novelty=${Math.round(t.noveltyMs)}ms`,
|
|
102
|
+
`persist=${Math.round(t.persistMs)}ms`,
|
|
103
|
+
`loopLagMax=${readMaxLoopLag()}ms`,
|
|
104
|
+
`consolidating=${consol.active ? `yes(${consol.agentId ?? '?'},${consol.runningMs}ms)` : 'no'}`,
|
|
105
|
+
`busy=${t.busyHit ? 'yes' : 'no'}`,
|
|
106
|
+
modelColdLoadMs !== null ? `modelColdLoad=${modelColdLoadMs}ms` : 'modelColdLoad=none',
|
|
107
|
+
];
|
|
108
|
+
process.stderr.write(parts.join(' ') + '\n');
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=write-telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-telemetry.js","sourceRoot":"","sources":["../../src/core/write-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Activation Pipeline — the core retrieval engine.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 1.
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
4
|
+
* Cognitive retrieval pipeline — phases as shipped (D4 honesty pass 2026-07-30;
|
|
5
|
+
* default-OFF phases are marked, since operators tune from this header):
|
|
6
|
+
* -1. Coreference expansion (conditional: query contains pronouns)
|
|
7
|
+
* 0. Query expansion (flan-t5-small; caller-gated, MCP default ON)
|
|
8
|
+
* 1. Vector embedding (bge-small 384d)
|
|
9
|
+
* 2. Parallel retrieval (dual FTS5/BM25 + native vector top-K)
|
|
10
|
+
* 3. Per-candidate scoring (BM25, Jaccard, cosine floor, ACT-R decay,
|
|
11
|
+
* Hebbian boost, confidence gate — computed together in phase 3b)
|
|
12
|
+
* 3.5 Rocchio pseudo-relevance feedback (conditional on BM25 signal)
|
|
13
|
+
* 3.7 Entity-bridge boost (default ON; AWM_DISABLE_ENTITY_BRIDGE=1)
|
|
14
|
+
* 3.5 Entity-index candidate injection (DEFAULT OFF; AWM_ENTITY_INDEX_FETCH=1 —
|
|
15
|
+
* D11 2026-07-30: D9 inverted-index lookup of query-named entities; injected
|
|
16
|
+
* candidates get no boost but a guaranteed rerank audition)
|
|
17
|
+
* 3.75 Query-conditioned entity bridge (DEFAULT OFF; AWM_QUERY_BRIDGE=1)
|
|
18
|
+
* 4/5 Spreading-activation graph walk (DEFAULT OFF; AWM_SPREAD=1 — parked
|
|
19
|
+
* after displacing-gold regressions; see design-proposals D11)
|
|
20
|
+
* 6. Filter + sort into rerank pool (wide pool since 0.9.0)
|
|
21
|
+
* 7. Cross-encoder rerank (ms-marco; clear-winner skip unless
|
|
22
|
+
* AWM_DISABLE_RERANK_SKIP=1)
|
|
23
|
+
* 8. Multi-channel OOD detection + agreement gate; supersession penalty;
|
|
24
|
+
* abstention enforced only when caller passes require_confidence
|
|
25
|
+
* 9. Final sort, granularity, confidence attach
|
|
16
26
|
*
|
|
17
27
|
* Logs activation events for eval metrics.
|
|
18
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAA6C,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKtG,OAAO,KAAK,EACF,gBAAgB,EAAE,eAAe,EAC1C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoIvE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBAEnC,KAAK,EAAE,WAAW;IAM9B;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA66BnE;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAKnC;YAEY,SAAS;IA+FvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,gBAAgB;IAwJ9B;;;;OAIG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhF,OAAO,CAAC,OAAO;CAchB"}
|