agent-working-memory 0.7.16 → 0.8.5

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.
Files changed (200) hide show
  1. package/README.md +156 -15
  2. package/dist/adapters/claude-code.d.ts.map +1 -1
  3. package/dist/adapters/claude-code.js +2 -16
  4. package/dist/adapters/claude-code.js.map +1 -1
  5. package/dist/adapters/codex.d.ts.map +1 -1
  6. package/dist/adapters/codex.js +2 -11
  7. package/dist/adapters/codex.js.map +1 -1
  8. package/dist/adapters/common.d.ts +18 -0
  9. package/dist/adapters/common.d.ts.map +1 -1
  10. package/dist/adapters/common.js +254 -141
  11. package/dist/adapters/common.js.map +1 -1
  12. package/dist/adapters/cursor.d.ts.map +1 -1
  13. package/dist/adapters/cursor.js +2 -15
  14. package/dist/adapters/cursor.js.map +1 -1
  15. package/dist/adapters/http.d.ts.map +1 -1
  16. package/dist/adapters/http.js +28 -34
  17. package/dist/adapters/http.js.map +1 -1
  18. package/dist/api/routes.d.ts +1 -1
  19. package/dist/api/routes.d.ts.map +1 -1
  20. package/dist/api/routes.js +280 -113
  21. package/dist/api/routes.js.map +1 -1
  22. package/dist/cli/migrate.d.ts +42 -0
  23. package/dist/cli/migrate.d.ts.map +1 -0
  24. package/dist/cli/migrate.js +268 -0
  25. package/dist/cli/migrate.js.map +1 -0
  26. package/dist/cli.js +45 -1
  27. package/dist/cli.js.map +1 -1
  28. package/dist/coordination/circuit-breaker.d.ts +24 -0
  29. package/dist/coordination/circuit-breaker.d.ts.map +1 -0
  30. package/dist/coordination/circuit-breaker.js +70 -0
  31. package/dist/coordination/circuit-breaker.js.map +1 -0
  32. package/dist/coordination/failure-modes.d.ts +21 -0
  33. package/dist/coordination/failure-modes.d.ts.map +1 -0
  34. package/dist/coordination/failure-modes.js +49 -0
  35. package/dist/coordination/failure-modes.js.map +1 -0
  36. package/dist/coordination/peer-decisions.js +7 -7
  37. package/dist/coordination/routes.d.ts.map +1 -1
  38. package/dist/coordination/routes.js +44 -1
  39. package/dist/coordination/routes.js.map +1 -1
  40. package/dist/coordination/schema.d.ts.map +1 -1
  41. package/dist/coordination/schema.js +18 -0
  42. package/dist/coordination/schema.js.map +1 -1
  43. package/dist/coordination/schemas.d.ts +9 -9
  44. package/dist/coordination/stale.d.ts +9 -1
  45. package/dist/coordination/stale.d.ts.map +1 -1
  46. package/dist/coordination/stale.js +53 -9
  47. package/dist/coordination/stale.js.map +1 -1
  48. package/dist/core/embeddings.d.ts +16 -10
  49. package/dist/core/embeddings.d.ts.map +1 -1
  50. package/dist/core/embeddings.js +54 -38
  51. package/dist/core/embeddings.js.map +1 -1
  52. package/dist/core/ml-worker-entry.d.ts +17 -0
  53. package/dist/core/ml-worker-entry.d.ts.map +1 -0
  54. package/dist/core/ml-worker-entry.js +193 -0
  55. package/dist/core/ml-worker-entry.js.map +1 -0
  56. package/dist/core/ml-worker.d.ts +59 -0
  57. package/dist/core/ml-worker.d.ts.map +1 -0
  58. package/dist/core/ml-worker.js +253 -0
  59. package/dist/core/ml-worker.js.map +1 -0
  60. package/dist/core/query-expander.d.ts +13 -15
  61. package/dist/core/query-expander.d.ts.map +1 -1
  62. package/dist/core/query-expander.js +48 -54
  63. package/dist/core/query-expander.js.map +1 -1
  64. package/dist/core/reranker.d.ts +9 -19
  65. package/dist/core/reranker.d.ts.map +1 -1
  66. package/dist/core/reranker.js +33 -35
  67. package/dist/core/reranker.js.map +1 -1
  68. package/dist/core/salience.d.ts +32 -5
  69. package/dist/core/salience.d.ts.map +1 -1
  70. package/dist/core/salience.js +201 -28
  71. package/dist/core/salience.js.map +1 -1
  72. package/dist/core/write-pipeline.d.ts +128 -0
  73. package/dist/core/write-pipeline.d.ts.map +1 -0
  74. package/dist/core/write-pipeline.js +405 -0
  75. package/dist/core/write-pipeline.js.map +1 -0
  76. package/dist/engine/activation.d.ts +2 -2
  77. package/dist/engine/activation.d.ts.map +1 -1
  78. package/dist/engine/activation.js +238 -115
  79. package/dist/engine/activation.js.map +1 -1
  80. package/dist/engine/confidence.d.ts +62 -0
  81. package/dist/engine/confidence.d.ts.map +1 -0
  82. package/dist/engine/confidence.js +100 -0
  83. package/dist/engine/confidence.js.map +1 -0
  84. package/dist/engine/connections.d.ts +47 -8
  85. package/dist/engine/connections.d.ts.map +1 -1
  86. package/dist/engine/connections.js +83 -22
  87. package/dist/engine/connections.js.map +1 -1
  88. package/dist/engine/consolidation-scheduler.d.ts +46 -10
  89. package/dist/engine/consolidation-scheduler.d.ts.map +1 -1
  90. package/dist/engine/consolidation-scheduler.js +170 -50
  91. package/dist/engine/consolidation-scheduler.js.map +1 -1
  92. package/dist/engine/consolidation.d.ts +16 -2
  93. package/dist/engine/consolidation.d.ts.map +1 -1
  94. package/dist/engine/consolidation.js +143 -44
  95. package/dist/engine/consolidation.js.map +1 -1
  96. package/dist/engine/eval.d.ts +2 -2
  97. package/dist/engine/eval.d.ts.map +1 -1
  98. package/dist/engine/eval.js +9 -9
  99. package/dist/engine/eval.js.map +1 -1
  100. package/dist/engine/eviction.d.ts +4 -4
  101. package/dist/engine/eviction.d.ts.map +1 -1
  102. package/dist/engine/eviction.js +15 -15
  103. package/dist/engine/eviction.js.map +1 -1
  104. package/dist/engine/retraction.d.ts +93 -5
  105. package/dist/engine/retraction.d.ts.map +1 -1
  106. package/dist/engine/retraction.js +238 -19
  107. package/dist/engine/retraction.js.map +1 -1
  108. package/dist/engine/staging.d.ts +1 -1
  109. package/dist/engine/staging.d.ts.map +1 -1
  110. package/dist/engine/staging.js +3 -3
  111. package/dist/engine/staging.js.map +1 -1
  112. package/dist/hooks/sidecar.d.ts +1 -1
  113. package/dist/hooks/sidecar.d.ts.map +1 -1
  114. package/dist/hooks/sidecar.js +4 -4
  115. package/dist/hooks/sidecar.js.map +1 -1
  116. package/dist/index.js +48 -31
  117. package/dist/index.js.map +1 -1
  118. package/dist/mcp.js +110 -155
  119. package/dist/mcp.js.map +1 -1
  120. package/dist/storage/factory.d.ts +55 -0
  121. package/dist/storage/factory.d.ts.map +1 -0
  122. package/dist/storage/factory.js +135 -0
  123. package/dist/storage/factory.js.map +1 -0
  124. package/dist/storage/pglite-schema.d.ts +20 -0
  125. package/dist/storage/pglite-schema.d.ts.map +1 -0
  126. package/dist/storage/pglite-schema.js +165 -0
  127. package/dist/storage/pglite-schema.js.map +1 -0
  128. package/dist/storage/pglite.d.ts +187 -0
  129. package/dist/storage/pglite.d.ts.map +1 -0
  130. package/dist/storage/pglite.js +1114 -0
  131. package/dist/storage/pglite.js.map +1 -0
  132. package/dist/storage/sqlite.d.ts +117 -0
  133. package/dist/storage/sqlite.d.ts.map +1 -1
  134. package/dist/storage/sqlite.js +357 -8
  135. package/dist/storage/sqlite.js.map +1 -1
  136. package/dist/storage/store.d.ts +63 -0
  137. package/dist/storage/store.d.ts.map +1 -0
  138. package/dist/storage/store.js +27 -0
  139. package/dist/storage/store.js.map +1 -0
  140. package/dist/types/engram.d.ts +92 -2
  141. package/dist/types/engram.d.ts.map +1 -1
  142. package/dist/types/engram.js.map +1 -1
  143. package/package.json +3 -1
  144. package/src/adapters/claude-code.ts +218 -234
  145. package/src/adapters/codex.ts +252 -262
  146. package/src/adapters/common.ts +411 -284
  147. package/src/adapters/cursor.ts +135 -150
  148. package/src/adapters/http.ts +93 -100
  149. package/src/adapters/index.ts +31 -31
  150. package/src/adapters/types.ts +75 -75
  151. package/src/api/index.ts +3 -3
  152. package/src/api/routes.ts +367 -120
  153. package/src/cli/migrate.ts +307 -0
  154. package/src/cli.ts +37 -1
  155. package/src/coordination/circuit-breaker.ts +83 -0
  156. package/src/coordination/events.ts +90 -90
  157. package/src/coordination/failure-modes.ts +50 -0
  158. package/src/coordination/peer-decisions.ts +105 -105
  159. package/src/coordination/plugin-loader.ts +60 -60
  160. package/src/coordination/plugin.ts +44 -44
  161. package/src/coordination/routes.ts +56 -1
  162. package/src/coordination/schema.ts +13 -0
  163. package/src/coordination/stale.ts +80 -11
  164. package/src/coordination/types.ts +311 -311
  165. package/src/coordination/write-mutex.ts +69 -69
  166. package/src/core/auto-tagger.ts +168 -168
  167. package/src/core/decay.ts +63 -63
  168. package/src/core/embeddings.ts +110 -93
  169. package/src/core/index.ts +5 -5
  170. package/src/core/logger.ts +36 -36
  171. package/src/core/ml-worker-entry.ts +194 -0
  172. package/src/core/ml-worker.ts +281 -0
  173. package/src/core/query-expander.ts +122 -128
  174. package/src/core/reranker.ts +119 -125
  175. package/src/core/salience.ts +200 -33
  176. package/src/core/write-pipeline.ts +521 -0
  177. package/src/engine/activation.ts +235 -109
  178. package/src/engine/confidence.ts +120 -0
  179. package/src/engine/connections.ts +162 -103
  180. package/src/engine/consolidation-scheduler.ts +242 -125
  181. package/src/engine/consolidation.ts +138 -45
  182. package/src/engine/eval.ts +102 -102
  183. package/src/engine/eviction.ts +101 -101
  184. package/src/engine/index.ts +8 -8
  185. package/src/engine/retraction.ts +366 -116
  186. package/src/engine/staging.ts +74 -74
  187. package/src/hooks/sidecar.ts +5 -5
  188. package/src/index.ts +42 -28
  189. package/src/mcp.ts +105 -152
  190. package/src/storage/factory.ts +147 -0
  191. package/src/storage/index.ts +3 -3
  192. package/src/storage/pglite-schema.ts +166 -0
  193. package/src/storage/pglite.ts +1363 -0
  194. package/src/storage/sqlite.ts +402 -7
  195. package/src/storage/store.ts +80 -0
  196. package/src/types/agent.ts +67 -67
  197. package/src/types/checkpoint.ts +46 -46
  198. package/src/types/engram.ts +101 -3
  199. package/src/types/eval.ts +100 -100
  200. package/src/types/index.ts +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"activation.js","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activation.js","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Retrieval confidence — score-distribution-aware signal that complements
3
+ * the per-result `score`. The shape of the result set carries information
4
+ * the raw scores do not:
5
+ *
6
+ * - Confident recall: top-1 dominates, sharp cliff, non-trivial floor.
7
+ * - Noisy recall: many similar scores, flat distribution, weak floor.
8
+ * - "Best of bad bunch": sharp cliff but the cliff sits below a usable
9
+ * floor — the system found a winner among uninteresting candidates.
10
+ *
11
+ * Research grounding:
12
+ * - Geifman & El-Yaniv, "Selective Classification for Deep Neural
13
+ * Networks" (NeurIPS 2017): abstaining improves precision on confused
14
+ * inputs more than recalibrating thresholds.
15
+ * - Roitero et al, "Predictive Confidence in Retrieval" (SIGIR 2022):
16
+ * score-distribution shape predicts retrieval quality better than
17
+ * top-1 score in isolation.
18
+ * - Carmel & Yom-Tov, "Estimating Query Difficulty for IR" (Synthesis
19
+ * Lectures, 2010): post-retrieval predictors — sharpness, depth of
20
+ * score drop — correlate with TREC topic difficulty.
21
+ *
22
+ * AWM 0.8.5 integration: confidence is computed once per recall after
23
+ * final scoring and attached to every `ActivationResult`. Consumers may
24
+ * use it however they like (display, abstention, paired retrieval).
25
+ * Default behavior of recall is unchanged — confidence is data, not a
26
+ * gate, in PR-1.
27
+ *
28
+ * Configurable via env vars (initial weights tuned to favour sharpness):
29
+ * AWM_CONF_SHARPNESS_W (default 0.4) — weight of top1/mean(top5) signal
30
+ * AWM_CONF_CLIFF_W (default 0.3) — weight of (top1 - top10) / top1
31
+ * AWM_CONF_FLOOR_W (default 0.3) — weight of top1 absolute score
32
+ */
33
+ export interface RecallConfidence {
34
+ /** Composite confidence in [0, 1]. Higher = recall result is more trustworthy. */
35
+ confidence: number;
36
+ /** top1 / mean(top5), mapped to [0, 1] via (s-1)/(s+1). High = clear winner. */
37
+ sharpness: number;
38
+ /** (top1 - top10) / top1 in [0, 1]. High = sharp dropoff after winner. */
39
+ cliff: number;
40
+ /** top1 raw score, clamped to [0, 1]. Low = "best of bad bunch" risk. */
41
+ floor: number;
42
+ }
43
+ /**
44
+ * Compute recall confidence from an ordered (descending) array of result scores.
45
+ *
46
+ * Returns a confidence near 0 when:
47
+ * - Empty result set (no winner)
48
+ * - Flat distribution (sharpness ~1, cliff ~0)
49
+ * - Low absolute scores (floor low — "best of bad bunch")
50
+ *
51
+ * Returns a confidence near 1 when:
52
+ * - top-1 dominates (sharpness >> 1)
53
+ * - Sharp cliff after top-1 (cliff close to 1)
54
+ * - top-1 is itself a strong absolute match (floor close to 1)
55
+ *
56
+ * Edge cases:
57
+ * - 1 result: cliff is 0 (no runner-up). Sharpness defaults to 1 (no peers
58
+ * to dominate). Confidence anchored entirely by floor.
59
+ * - 0 results: all zero, confidence = 0.
60
+ */
61
+ export declare function computeRecallConfidence(scoresDesc: number[]): RecallConfidence;
62
+ //# sourceMappingURL=confidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../../src/engine/confidence.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAmD9E"}
@@ -0,0 +1,100 @@
1
+ // Copyright 2026 Robert Winter / Complete Ideas
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Retrieval confidence — score-distribution-aware signal that complements
5
+ * the per-result `score`. The shape of the result set carries information
6
+ * the raw scores do not:
7
+ *
8
+ * - Confident recall: top-1 dominates, sharp cliff, non-trivial floor.
9
+ * - Noisy recall: many similar scores, flat distribution, weak floor.
10
+ * - "Best of bad bunch": sharp cliff but the cliff sits below a usable
11
+ * floor — the system found a winner among uninteresting candidates.
12
+ *
13
+ * Research grounding:
14
+ * - Geifman & El-Yaniv, "Selective Classification for Deep Neural
15
+ * Networks" (NeurIPS 2017): abstaining improves precision on confused
16
+ * inputs more than recalibrating thresholds.
17
+ * - Roitero et al, "Predictive Confidence in Retrieval" (SIGIR 2022):
18
+ * score-distribution shape predicts retrieval quality better than
19
+ * top-1 score in isolation.
20
+ * - Carmel & Yom-Tov, "Estimating Query Difficulty for IR" (Synthesis
21
+ * Lectures, 2010): post-retrieval predictors — sharpness, depth of
22
+ * score drop — correlate with TREC topic difficulty.
23
+ *
24
+ * AWM 0.8.5 integration: confidence is computed once per recall after
25
+ * final scoring and attached to every `ActivationResult`. Consumers may
26
+ * use it however they like (display, abstention, paired retrieval).
27
+ * Default behavior of recall is unchanged — confidence is data, not a
28
+ * gate, in PR-1.
29
+ *
30
+ * Configurable via env vars (initial weights tuned to favour sharpness):
31
+ * AWM_CONF_SHARPNESS_W (default 0.4) — weight of top1/mean(top5) signal
32
+ * AWM_CONF_CLIFF_W (default 0.3) — weight of (top1 - top10) / top1
33
+ * AWM_CONF_FLOOR_W (default 0.3) — weight of top1 absolute score
34
+ */
35
+ const SHARPNESS_W = parseFloat(process.env.AWM_CONF_SHARPNESS_W ?? '0.4');
36
+ const CLIFF_W = parseFloat(process.env.AWM_CONF_CLIFF_W ?? '0.3');
37
+ const FLOOR_W = parseFloat(process.env.AWM_CONF_FLOOR_W ?? '0.3');
38
+ /**
39
+ * Compute recall confidence from an ordered (descending) array of result scores.
40
+ *
41
+ * Returns a confidence near 0 when:
42
+ * - Empty result set (no winner)
43
+ * - Flat distribution (sharpness ~1, cliff ~0)
44
+ * - Low absolute scores (floor low — "best of bad bunch")
45
+ *
46
+ * Returns a confidence near 1 when:
47
+ * - top-1 dominates (sharpness >> 1)
48
+ * - Sharp cliff after top-1 (cliff close to 1)
49
+ * - top-1 is itself a strong absolute match (floor close to 1)
50
+ *
51
+ * Edge cases:
52
+ * - 1 result: cliff is 0 (no runner-up). Sharpness defaults to 1 (no peers
53
+ * to dominate). Confidence anchored entirely by floor.
54
+ * - 0 results: all zero, confidence = 0.
55
+ */
56
+ export function computeRecallConfidence(scoresDesc) {
57
+ if (scoresDesc.length === 0) {
58
+ return { confidence: 0, sharpness: 0, cliff: 0, floor: 0 };
59
+ }
60
+ const top1 = scoresDesc[0];
61
+ // Floor: clamp top1 into [0, 1]. AWM composite scores already lie in this
62
+ // range under normal use, but be defensive.
63
+ const floor = Math.max(0, Math.min(1, top1));
64
+ // Sharpness: top1 / mean(top-5). Skip if only 1 result (no peers).
65
+ let sharpness = 0;
66
+ if (scoresDesc.length >= 2) {
67
+ const window = scoresDesc.slice(0, Math.min(5, scoresDesc.length));
68
+ const mean = window.reduce((s, v) => s + v, 0) / window.length;
69
+ if (mean > 0) {
70
+ const ratio = top1 / mean; // typically in [1, K]
71
+ sharpness = (ratio - 1) / (ratio + 1); // maps [1, ∞) → [0, 1)
72
+ }
73
+ }
74
+ // Cliff: how steep is the drop from top-1 to the K-th candidate?
75
+ // Use top-10 (or last available). If only 1 result, no cliff to measure.
76
+ let cliff = 0;
77
+ if (scoresDesc.length >= 2 && top1 > 0) {
78
+ const tail = scoresDesc[Math.min(9, scoresDesc.length - 1)];
79
+ cliff = Math.max(0, Math.min(1, (top1 - tail) / top1));
80
+ }
81
+ // Geometric blend — any near-zero component pulls confidence down.
82
+ // Add a tiny epsilon so log/zero doesn't collapse the whole signal when
83
+ // a result is genuinely sharp but the cliff is computed off only 2-3
84
+ // candidates (cliff small even for confident recalls).
85
+ const EPS = 0.05;
86
+ const s = sharpness + EPS;
87
+ const c = cliff + EPS;
88
+ const f = floor + EPS;
89
+ // Weighted geometric mean: prod(x_i ^ w_i)
90
+ const logConf = SHARPNESS_W * Math.log(s)
91
+ + CLIFF_W * Math.log(c)
92
+ + FLOOR_W * Math.log(f);
93
+ const totalW = SHARPNESS_W + CLIFF_W + FLOOR_W;
94
+ // Subtract epsilon contribution so the floor of confidence is ~0 when all
95
+ // signals are zero (rather than the value of EPS).
96
+ const rawConf = Math.exp(logConf / totalW) - EPS;
97
+ const confidence = Math.max(0, Math.min(1, rawConf));
98
+ return { confidence, sharpness, cliff, floor };
99
+ }
100
+ //# sourceMappingURL=confidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.js","sourceRoot":"","sources":["../../src/engine/confidence.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,25 @@
1
1
  /**
2
2
  * Connection Engine — discovers links between memories.
3
3
  *
4
- * Runs asynchronously. When a new engram is written, the connection
5
- * engine checks it against existing memories and forms association
6
- * edges where resonance exceeds a threshold.
4
+ * **Lifecycle (v0.8.2):** `enqueue()` just appends to an in-memory queue and
5
+ * returns. The queue is drained by `processQueue()`, which is called from
6
+ * the consolidation cycle. Per-write inline drain was removed because each
7
+ * `findConnections` call runs a full activation cycle (embed + BM25 + vector
8
+ * + rerank) — ~200-500 ms of event-loop blocking per write, queued ahead
9
+ * of subsequent requests under load.
7
10
  *
8
- * Connection memories are first-class engrams they can themselves
9
- * activate and form higher-order connections, producing emergent
10
- * associative structure over time.
11
+ * Cold-start exception: when the agent has fewer than
12
+ * `AWM_CONNECTION_COLD_START_THRESHOLD` (default 10) active engrams, callers
13
+ * can opt into inline drain via `enqueueAndMaybeFlush()` so the first few
14
+ * writes still produce a useful association graph before the next
15
+ * consolidation cycle fires. Once the pool grows past the threshold, all
16
+ * discovery defers to consolidation regardless.
17
+ *
18
+ * Footprint: when AWM is idle and no consolidation is running, the queue
19
+ * is a plain `string[]` — no timers, no background work, ~24 bytes per
20
+ * queued ID. AWM remains cheap to NOT use.
11
21
  */
12
- import type { EngramStore } from '../storage/sqlite.js';
22
+ import type { IEngramStore as EngramStore } from '../storage/store.js';
13
23
  import type { ActivationEngine } from './activation.js';
14
24
  export declare class ConnectionEngine {
15
25
  private store;
@@ -20,9 +30,38 @@ export declare class ConnectionEngine {
20
30
  constructor(store: EngramStore, engine: ActivationEngine, threshold?: number);
21
31
  /**
22
32
  * Queue a newly written engram for connection discovery.
33
+ *
34
+ * Synchronous and non-triggering. The queue is drained later by:
35
+ * - `processQueue()` called from the consolidation cycle, or
36
+ * - `enqueueAndMaybeFlush()` for cold-start inline drain.
23
37
  */
24
38
  enqueue(engramId: string): void;
25
- private processQueue;
39
+ /**
40
+ * Queue + opportunistic inline drain for cold-start agents.
41
+ *
42
+ * If the agent has fewer than `AWM_CONNECTION_COLD_START_THRESHOLD`
43
+ * active engrams (default 10), drain the queue inline so the first few
44
+ * writes produce a useful association graph before consolidation runs.
45
+ * Once the pool grows past the threshold, this falls back to deferred
46
+ * (consolidation-driven) drain.
47
+ *
48
+ * Returns immediately — the inline drain runs as a fire-and-forget
49
+ * background task so the calling write doesn't block on it.
50
+ */
51
+ enqueueAndMaybeFlush(engramId: string, agentId: string): void;
52
+ private maybeDrainColdStart;
53
+ /**
54
+ * Drain the queue: run connection discovery for every queued engram.
55
+ *
56
+ * Called from the consolidation cycle (`ConsolidationEngine.consolidate`)
57
+ * at the start of each run, and from `enqueueAndMaybeFlush()` for
58
+ * cold-start agents. Reentrant-safe via the `processing` flag.
59
+ *
60
+ * Exposed publicly so callers (consolidation, tests) can explicitly drain.
61
+ */
62
+ processQueue(): Promise<void>;
63
+ /** Number of engrams currently queued for connection discovery. */
64
+ queueSize(): number;
26
65
  /**
27
66
  * Find and create connections for a given engram.
28
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/engine/connections.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAS;gBAGzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,MAAY;IAOzB;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;YAOjB,YAAY;IAkB1B;;OAEG;YACW,eAAe;CAoC9B"}
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/engine/connections.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAS;gBAGzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,MAAY;IAOzB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;YAM/C,mBAAmB;IAYjC;;;;;;;;OAQG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBnC,mEAAmE;IACnE,SAAS,IAAI,MAAM;IAInB;;OAEG;YACW,eAAe;CAoC9B"}
@@ -3,14 +3,25 @@
3
3
  /**
4
4
  * Connection Engine — discovers links between memories.
5
5
  *
6
- * Runs asynchronously. When a new engram is written, the connection
7
- * engine checks it against existing memories and forms association
8
- * edges where resonance exceeds a threshold.
6
+ * **Lifecycle (v0.8.2):** `enqueue()` just appends to an in-memory queue and
7
+ * returns. The queue is drained by `processQueue()`, which is called from
8
+ * the consolidation cycle. Per-write inline drain was removed because each
9
+ * `findConnections` call runs a full activation cycle (embed + BM25 + vector
10
+ * + rerank) — ~200-500 ms of event-loop blocking per write, queued ahead
11
+ * of subsequent requests under load.
9
12
  *
10
- * Connection memories are first-class engrams they can themselves
11
- * activate and form higher-order connections, producing emergent
12
- * associative structure over time.
13
+ * Cold-start exception: when the agent has fewer than
14
+ * `AWM_CONNECTION_COLD_START_THRESHOLD` (default 10) active engrams, callers
15
+ * can opt into inline drain via `enqueueAndMaybeFlush()` so the first few
16
+ * writes still produce a useful association graph before the next
17
+ * consolidation cycle fires. Once the pool grows past the threshold, all
18
+ * discovery defers to consolidation regardless.
19
+ *
20
+ * Footprint: when AWM is idle and no consolidation is running, the queue
21
+ * is a plain `string[]` — no timers, no background work, ~24 bytes per
22
+ * queued ID. AWM remains cheap to NOT use.
13
23
  */
24
+ const COLD_START_THRESHOLD = Number(process.env.AWM_CONNECTION_COLD_START_THRESHOLD ?? 10);
14
25
  export class ConnectionEngine {
15
26
  store;
16
27
  engine;
@@ -24,28 +35,78 @@ export class ConnectionEngine {
24
35
  }
25
36
  /**
26
37
  * Queue a newly written engram for connection discovery.
38
+ *
39
+ * Synchronous and non-triggering. The queue is drained later by:
40
+ * - `processQueue()` called from the consolidation cycle, or
41
+ * - `enqueueAndMaybeFlush()` for cold-start inline drain.
27
42
  */
28
43
  enqueue(engramId) {
29
44
  this.queue.push(engramId);
30
- if (!this.processing) {
31
- this.processQueue();
45
+ }
46
+ /**
47
+ * Queue + opportunistic inline drain for cold-start agents.
48
+ *
49
+ * If the agent has fewer than `AWM_CONNECTION_COLD_START_THRESHOLD`
50
+ * active engrams (default 10), drain the queue inline so the first few
51
+ * writes produce a useful association graph before consolidation runs.
52
+ * Once the pool grows past the threshold, this falls back to deferred
53
+ * (consolidation-driven) drain.
54
+ *
55
+ * Returns immediately — the inline drain runs as a fire-and-forget
56
+ * background task so the calling write doesn't block on it.
57
+ */
58
+ enqueueAndMaybeFlush(engramId, agentId) {
59
+ this.queue.push(engramId);
60
+ if (this.processing)
61
+ return;
62
+ void this.maybeDrainColdStart(agentId);
63
+ }
64
+ async maybeDrainColdStart(agentId) {
65
+ try {
66
+ const count = await this.store.getActiveCount(agentId);
67
+ if (count < COLD_START_THRESHOLD) {
68
+ await this.processQueue();
69
+ }
70
+ }
71
+ catch {
72
+ // Cold-start drain is best-effort. The next consolidation cycle
73
+ // will drain whatever stayed queued.
32
74
  }
33
75
  }
76
+ /**
77
+ * Drain the queue: run connection discovery for every queued engram.
78
+ *
79
+ * Called from the consolidation cycle (`ConsolidationEngine.consolidate`)
80
+ * at the start of each run, and from `enqueueAndMaybeFlush()` for
81
+ * cold-start agents. Reentrant-safe via the `processing` flag.
82
+ *
83
+ * Exposed publicly so callers (consolidation, tests) can explicitly drain.
84
+ */
34
85
  async processQueue() {
86
+ if (this.processing)
87
+ return; // Reentrancy guard
35
88
  this.processing = true;
36
- while (this.queue.length > 0) {
37
- const engramId = this.queue.shift();
38
- const engram = this.store.getEngram(engramId);
39
- if (!engram || engram.stage !== 'active')
40
- continue;
41
- try {
42
- await this.findConnections(engram);
43
- }
44
- catch {
45
- // Connection discovery is best-effort — don't crash the server
89
+ try {
90
+ while (this.queue.length > 0) {
91
+ const engramId = this.queue.shift();
92
+ const engram = await this.store.getEngram(engramId);
93
+ if (!engram || engram.stage !== 'active')
94
+ continue;
95
+ try {
96
+ await this.findConnections(engram);
97
+ }
98
+ catch {
99
+ // Connection discovery is best-effort — don't crash the server
100
+ }
46
101
  }
47
102
  }
48
- this.processing = false;
103
+ finally {
104
+ this.processing = false;
105
+ }
106
+ }
107
+ /** Number of engrams currently queued for connection discovery. */
108
+ queueSize() {
109
+ return this.queue.length;
49
110
  }
50
111
  /**
51
112
  * Find and create connections for a given engram.
@@ -59,7 +120,7 @@ export class ConnectionEngine {
59
120
  internal: true,
60
121
  });
61
122
  // Filter out self and already-connected engrams
62
- const existing = this.store.getAssociationsFor(engram.id);
123
+ const existing = await this.store.getAssociationsFor(engram.id);
63
124
  const existingIds = new Set(existing.map(a => a.fromEngramId === engram.id ? a.toEngramId : a.fromEngramId));
64
125
  for (const result of results) {
65
126
  if (result.engram.id === engram.id)
@@ -67,9 +128,9 @@ export class ConnectionEngine {
67
128
  if (existingIds.has(result.engram.id))
68
129
  continue;
69
130
  // Create a connection association
70
- this.store.upsertAssociation(engram.id, result.engram.id, result.score, 'connection');
131
+ await this.store.upsertAssociation(engram.id, result.engram.id, result.score, 'connection');
71
132
  // Bidirectional
72
- this.store.upsertAssociation(result.engram.id, engram.id, result.score, 'connection');
133
+ await this.store.upsertAssociation(result.engram.id, engram.id, result.score, 'connection');
73
134
  }
74
135
  }
75
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/engine/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/engine/connections.ts"],"names":[],"mappings":"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"}