agent-working-memory 0.16.1 → 0.18.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.
Files changed (170) hide show
  1. package/README.md +321 -318
  2. package/dist/adapters/common.d.ts +34 -0
  3. package/dist/adapters/common.d.ts.map +1 -1
  4. package/dist/adapters/common.js +528 -444
  5. package/dist/adapters/common.js.map +1 -1
  6. package/dist/api/routes.d.ts.map +1 -1
  7. package/dist/api/routes.js +19 -0
  8. package/dist/api/routes.js.map +1 -1
  9. package/dist/cli/migrate.d.ts.map +1 -1
  10. package/dist/cli/migrate.js +31 -29
  11. package/dist/cli/migrate.js.map +1 -1
  12. package/dist/core/asked-value.d.ts +37 -0
  13. package/dist/core/asked-value.d.ts.map +1 -0
  14. package/dist/core/asked-value.js +77 -0
  15. package/dist/core/asked-value.js.map +1 -0
  16. package/dist/core/conflicts.d.ts +89 -0
  17. package/dist/core/conflicts.d.ts.map +1 -0
  18. package/dist/core/conflicts.js +267 -0
  19. package/dist/core/conflicts.js.map +1 -0
  20. package/dist/core/embeddings.d.ts +14 -2
  21. package/dist/core/embeddings.d.ts.map +1 -1
  22. package/dist/core/embeddings.js +32 -10
  23. package/dist/core/embeddings.js.map +1 -1
  24. package/dist/core/format-recall.d.ts +21 -1
  25. package/dist/core/format-recall.d.ts.map +1 -1
  26. package/dist/core/format-recall.js +60 -5
  27. package/dist/core/format-recall.js.map +1 -1
  28. package/dist/core/ml-worker.d.ts +24 -1
  29. package/dist/core/ml-worker.d.ts.map +1 -1
  30. package/dist/core/ml-worker.js +165 -4
  31. package/dist/core/ml-worker.js.map +1 -1
  32. package/dist/core/model-daemon-client.d.ts +77 -0
  33. package/dist/core/model-daemon-client.d.ts.map +1 -0
  34. package/dist/core/model-daemon-client.js +383 -0
  35. package/dist/core/model-daemon-client.js.map +1 -0
  36. package/dist/core/model-daemon-server.d.ts +71 -0
  37. package/dist/core/model-daemon-server.d.ts.map +1 -0
  38. package/dist/core/model-daemon-server.js +363 -0
  39. package/dist/core/model-daemon-server.js.map +1 -0
  40. package/dist/core/model-daemon.d.ts +137 -0
  41. package/dist/core/model-daemon.d.ts.map +1 -0
  42. package/dist/core/model-daemon.js +231 -0
  43. package/dist/core/model-daemon.js.map +1 -0
  44. package/dist/core/query-expander.d.ts +5 -0
  45. package/dist/core/query-expander.d.ts.map +1 -1
  46. package/dist/core/query-expander.js +3 -2
  47. package/dist/core/query-expander.js.map +1 -1
  48. package/dist/core/recall-config.d.ts +1 -1
  49. package/dist/core/recall-config.d.ts.map +1 -1
  50. package/dist/core/recall-config.js +5 -0
  51. package/dist/core/recall-config.js.map +1 -1
  52. package/dist/core/rerank-window.d.ts +7 -2
  53. package/dist/core/rerank-window.d.ts.map +1 -1
  54. package/dist/core/rerank-window.js +9 -4
  55. package/dist/core/rerank-window.js.map +1 -1
  56. package/dist/core/rerank2.d.ts +52 -2
  57. package/dist/core/rerank2.d.ts.map +1 -1
  58. package/dist/core/rerank2.js +60 -3
  59. package/dist/core/rerank2.js.map +1 -1
  60. package/dist/core/reranker.d.ts +19 -0
  61. package/dist/core/reranker.d.ts.map +1 -1
  62. package/dist/core/reranker.js +76 -12
  63. package/dist/core/reranker.js.map +1 -1
  64. package/dist/core/salience.d.ts +2 -0
  65. package/dist/core/salience.d.ts.map +1 -1
  66. package/dist/core/salience.js +45 -18
  67. package/dist/core/salience.js.map +1 -1
  68. package/dist/core/trust.d.ts +32 -0
  69. package/dist/core/trust.d.ts.map +1 -0
  70. package/dist/core/trust.js +66 -0
  71. package/dist/core/trust.js.map +1 -0
  72. package/dist/core/validity.d.ts +21 -0
  73. package/dist/core/validity.d.ts.map +1 -0
  74. package/dist/core/validity.js +41 -0
  75. package/dist/core/validity.js.map +1 -0
  76. package/dist/core/whoami.d.ts +3 -0
  77. package/dist/core/whoami.d.ts.map +1 -1
  78. package/dist/core/whoami.js +14 -0
  79. package/dist/core/whoami.js.map +1 -1
  80. package/dist/core/write-pipeline.d.ts +48 -0
  81. package/dist/core/write-pipeline.d.ts.map +1 -1
  82. package/dist/core/write-pipeline.js +104 -4
  83. package/dist/core/write-pipeline.js.map +1 -1
  84. package/dist/engine/activation.d.ts.map +1 -1
  85. package/dist/engine/activation.js +27 -4
  86. package/dist/engine/activation.js.map +1 -1
  87. package/dist/engine/consolidation.d.ts.map +1 -1
  88. package/dist/engine/consolidation.js +67 -5
  89. package/dist/engine/consolidation.js.map +1 -1
  90. package/dist/hooks/prime-query.d.ts +57 -0
  91. package/dist/hooks/prime-query.d.ts.map +1 -0
  92. package/dist/hooks/prime-query.js +388 -0
  93. package/dist/hooks/prime-query.js.map +1 -0
  94. package/dist/hooks/prime.d.ts +8 -0
  95. package/dist/hooks/prime.d.ts.map +1 -1
  96. package/dist/hooks/prime.js +21 -2
  97. package/dist/hooks/prime.js.map +1 -1
  98. package/dist/hooks/sidecar.d.ts +7 -0
  99. package/dist/hooks/sidecar.d.ts.map +1 -1
  100. package/dist/hooks/sidecar.js +10 -2
  101. package/dist/hooks/sidecar.js.map +1 -1
  102. package/dist/index.js +11 -3
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp.js +148 -103
  105. package/dist/mcp.js.map +1 -1
  106. package/dist/model-daemon.d.ts +8 -0
  107. package/dist/model-daemon.d.ts.map +1 -0
  108. package/dist/model-daemon.js +45 -0
  109. package/dist/model-daemon.js.map +1 -0
  110. package/dist/storage/factory.d.ts.map +1 -1
  111. package/dist/storage/factory.js +5 -0
  112. package/dist/storage/factory.js.map +1 -1
  113. package/dist/storage/pglite-schema.d.ts.map +1 -1
  114. package/dist/storage/pglite-schema.js +176 -170
  115. package/dist/storage/pglite-schema.js.map +1 -1
  116. package/dist/storage/pglite.d.ts +5 -0
  117. package/dist/storage/pglite.d.ts.map +1 -1
  118. package/dist/storage/pglite.js +165 -153
  119. package/dist/storage/pglite.js.map +1 -1
  120. package/dist/storage/postgres.d.ts +5 -0
  121. package/dist/storage/postgres.d.ts.map +1 -1
  122. package/dist/storage/postgres.js +165 -153
  123. package/dist/storage/postgres.js.map +1 -1
  124. package/dist/storage/sqlite.d.ts +22 -0
  125. package/dist/storage/sqlite.d.ts.map +1 -1
  126. package/dist/storage/sqlite.js +400 -363
  127. package/dist/storage/sqlite.js.map +1 -1
  128. package/dist/types/engram.d.ts +33 -0
  129. package/dist/types/engram.d.ts.map +1 -1
  130. package/dist/types/engram.js.map +1 -1
  131. package/package.json +106 -106
  132. package/plugin/.claude-plugin/plugin.json +1 -1
  133. package/plugin/README.md +1 -1
  134. package/plugin/bin/awm-mcp-launcher.cjs +2 -2
  135. package/plugin/skills/awm-memory/SKILL.md +16 -5
  136. package/src/adapters/common.ts +881 -800
  137. package/src/api/routes.ts +20 -0
  138. package/src/cli/migrate.ts +309 -307
  139. package/src/core/asked-value.ts +74 -0
  140. package/src/core/conflicts.ts +280 -0
  141. package/src/core/embeddings.ts +35 -10
  142. package/src/core/format-recall.ts +83 -25
  143. package/src/core/ml-worker.ts +458 -281
  144. package/src/core/model-daemon-client.ts +374 -0
  145. package/src/core/model-daemon-server.ts +344 -0
  146. package/src/core/model-daemon.ts +243 -0
  147. package/src/core/query-expander.ts +127 -126
  148. package/src/core/recall-config.ts +5 -0
  149. package/src/core/rerank-window.ts +164 -159
  150. package/src/core/rerank2.ts +143 -82
  151. package/src/core/reranker.ts +78 -11
  152. package/src/core/salience.ts +45 -18
  153. package/src/core/trust.ts +65 -0
  154. package/src/core/validity.ts +47 -0
  155. package/src/core/whoami.ts +136 -120
  156. package/src/core/write-pipeline.ts +143 -4
  157. package/src/engine/activation.ts +27 -4
  158. package/src/engine/consolidation.ts +950 -887
  159. package/src/hooks/prime-query.ts +375 -0
  160. package/src/hooks/prime.ts +25 -2
  161. package/src/hooks/sidecar.ts +13 -3
  162. package/src/index.ts +255 -248
  163. package/src/mcp.ts +1521 -1475
  164. package/src/model-daemon.ts +48 -0
  165. package/src/storage/factory.ts +25 -19
  166. package/src/storage/pglite-schema.ts +199 -193
  167. package/src/storage/pglite.ts +1513 -1498
  168. package/src/storage/postgres.ts +1613 -1598
  169. package/src/storage/sqlite.ts +2056 -2019
  170. package/src/types/engram.ts +30 -0
@@ -10,6 +10,25 @@
10
10
  * AWM 0.8.x: inference dispatches through ml-worker.ts (currently in-process
11
11
  * — see ml-worker.ts for the worker_threads → in-process revert rationale).
12
12
  */
13
+ import { type PreTrainedTokenizer } from '@huggingface/transformers';
14
+ /**
15
+ * The query the cross-encoder sees: unchanged when it fits the cap, else its first and
16
+ * last halves. Both ends, because a pasted prompt puts the question either before the
17
+ * paste or after it. Special tokens typed into a long query ([SEP], [UNK]) are dropped by
18
+ * the decode; a query under the cap passes through untouched.
19
+ */
20
+ export declare function capRerankQuery(tok: PreTrainedTokenizer, query: string, maxTokens?: number): string;
21
+ /** Exported with its caps as parameters so tests can compare settings in one process. */
22
+ export declare function inProcessRerank(args: {
23
+ query: string;
24
+ passages: string[];
25
+ }, caps?: {
26
+ batch?: number;
27
+ queryTokens?: number;
28
+ }): Promise<Array<{
29
+ index: number;
30
+ score: number;
31
+ }>>;
13
32
  /** Kept for backwards compat. */
14
33
  export declare function getReranker(): Promise<any>;
15
34
  export interface RerankResult {
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAqHH,iCAAiC;AACjC,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAGhD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGvF"}
1
+ {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,2BAA2B,CAAC;AAkFnC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAsB,GAAG,MAAM,CAY/G;AAoDD,yFAAyF;AACzF,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3C,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAalD;AAQD,iCAAiC;AACjC,wBAAsB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAGhD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGvF"}
@@ -13,7 +13,7 @@
13
13
  * — see ml-worker.ts for the worker_threads → in-process revert rationale).
14
14
  */
15
15
  import { AutoTokenizer, AutoModelForSequenceClassification, } from '@huggingface/transformers';
16
- import { dispatchRerank, registerInProcessHandlers } from './ml-worker.js';
16
+ import { dispatchRerank, registerInferenceConfig, registerInProcessHandlers } from './ml-worker.js';
17
17
  import { ensureModelCacheDir } from './model-cache.js';
18
18
  const DEFAULT_MODEL = 'Xenova/ms-marco-MiniLM-L-6-v2';
19
19
  const MODEL_ID = process.env.AWM_RERANKER_MODEL || DEFAULT_MODEL;
@@ -56,11 +56,60 @@ async function ensureLoaded() {
56
56
  function sigmoid(x) {
57
57
  return 1 / (1 + Math.exp(-x));
58
58
  }
59
- async function inProcessRerank(args) {
60
- const { query, passages } = args;
61
- if (passages.length === 0)
62
- return [];
63
- await ensureLoaded();
59
+ /**
60
+ * Input-shape caps for the cross-encoder. They exist for MEMORY, and one of them also
61
+ * fixes RANKING.
62
+ *
63
+ * onnxruntime-node keeps a CPU memory arena per model that grows to the largest tensor
64
+ * it has ever run and never shrinks. A cross-encoder's attention tensor is
65
+ * batch x heads x seq x seq floats, so its size is quadratic in the padded pair length.
66
+ * Measured 2026-10-16 on AWM 0.17.0: six Claude Code sessions held 13.2 GB, JS heap flat
67
+ * at ~85 MB, and one process reranking 24 long pairs kept ~1.75 GB after going idle.
68
+ * The shapes come from the prime hook, which recalls with the WHOLE user prompt (pastes
69
+ * included), and from recall's 24-40 passage pool: 40 pairs at 512 tokens make one
70
+ * attention tensor of 40 x 12 x 512 x 512 x 4 B = ~500 MB.
71
+ *
72
+ * - AWM_RERANK_BATCH (default 8): passages are scored in chunks. A pair's score depends
73
+ * only on that pair (padding is masked), so this changes memory, not order.
74
+ * - AWM_RERANK_QUERY_TOKENS (default 128): a longer query keeps its first and last
75
+ * halves. transformers.js truncates a too-long pair by cutting tokens off the END,
76
+ * which is the passage: before this cap, a ~510-token query left the passage no tokens
77
+ * at all, and every memory was scored against the query alone. Passages are already
78
+ * capped at ~400 chars (rerank-window.ts), so a 128-token query typically keeps a
79
+ * pair under ~260 tokens (more for CJK text or a raised AWM_RERANK_TRUNC).
80
+ *
81
+ * An explicit 0 disables a cap. Anything else that is not a non-negative integer (empty,
82
+ * 'off', -1) falls back to the default, as AWM_RERANK_TRUNC does: a typo must not quietly
83
+ * bring back the unbounded shape.
84
+ */
85
+ function shapeCap(name, fallback) {
86
+ const v = Number(process.env[name]?.trim() || NaN);
87
+ return Number.isInteger(v) && v >= 0 ? v : fallback;
88
+ }
89
+ const RERANK_BATCH = shapeCap('AWM_RERANK_BATCH', 8);
90
+ const RERANK_QUERY_TOKENS = shapeCap('AWM_RERANK_QUERY_TOKENS', 128);
91
+ /**
92
+ * The query the cross-encoder sees: unchanged when it fits the cap, else its first and
93
+ * last halves. Both ends, because a pasted prompt puts the question either before the
94
+ * paste or after it. Special tokens typed into a long query ([SEP], [UNK]) are dropped by
95
+ * the decode; a query under the cap passes through untouched.
96
+ */
97
+ export function capRerankQuery(tok, query, maxTokens = RERANK_QUERY_TOKENS) {
98
+ if (maxTokens <= 0)
99
+ return query;
100
+ const ids = tok.encode(query, { add_special_tokens: false });
101
+ if (ids.length <= maxTokens)
102
+ return query;
103
+ const head = Math.ceil(maxTokens / 2);
104
+ const tail = maxTokens - head;
105
+ const decode = (part) => tok.decode(part, { skip_special_tokens: true, clean_up_tokenization_spaces: true });
106
+ // A tail that starts mid-word decodes with a leading '##' continuation marker, which
107
+ // would re-encode as two stray '#' tokens.
108
+ return tail > 0
109
+ ? `${decode(ids.slice(0, head))} ${decode(ids.slice(ids.length - tail)).replace(/^##/, '')}`
110
+ : decode(ids.slice(0, head));
111
+ }
112
+ async function scoreChunk(query, passages, offset) {
64
113
  // Batch path
65
114
  try {
66
115
  const queries = passages.map(() => query);
@@ -83,9 +132,8 @@ async function inProcessRerank(args) {
83
132
  const results = [];
84
133
  for (let i = 0; i < passages.length; i++) {
85
134
  const rawLogit = Number(data[i] ?? 0);
86
- results.push({ index: i, score: sigmoid(rawLogit) });
135
+ results.push({ index: offset + i, score: sigmoid(rawLogit) });
87
136
  }
88
- results.sort((a, b) => b.score - a.score);
89
137
  return results;
90
138
  }
91
139
  catch {
@@ -103,18 +151,34 @@ async function inProcessRerank(args) {
103
151
  const output = await model(inputs);
104
152
  const logits = output.logits ?? output.last_hidden_state;
105
153
  const rawLogit = logits.data[0];
106
- results.push({ index: i, score: sigmoid(rawLogit) });
154
+ results.push({ index: offset + i, score: sigmoid(rawLogit) });
107
155
  }
108
156
  catch {
109
- results.push({ index: i, score: 0 });
157
+ results.push({ index: offset + i, score: 0 });
110
158
  }
111
159
  }
112
- results.sort((a, b) => b.score - a.score);
113
160
  return results;
114
161
  }
115
162
  }
163
+ /** Exported with its caps as parameters so tests can compare settings in one process. */
164
+ export async function inProcessRerank(args, caps = {}) {
165
+ const { passages } = args;
166
+ if (passages.length === 0)
167
+ return [];
168
+ await ensureLoaded();
169
+ const query = capRerankQuery(tokenizer, args.query, caps.queryTokens ?? RERANK_QUERY_TOKENS);
170
+ const batch = caps.batch ?? RERANK_BATCH;
171
+ const size = batch > 0 ? batch : passages.length;
172
+ const results = [];
173
+ for (let b = 0; b < passages.length; b += size) {
174
+ results.push(...await scoreChunk(query, passages.slice(b, b + size), b));
175
+ }
176
+ results.sort((a, b) => b.score - a.score);
177
+ return results;
178
+ }
116
179
  // Register the in-process handler with the pool
117
- registerInProcessHandlers({ rerank: inProcessRerank });
180
+ registerInProcessHandlers({ rerank: (args) => inProcessRerank(args) });
181
+ registerInferenceConfig({ rerankModel: MODEL_ID, rerankDtype: DTYPE, rerankBatch: RERANK_BATCH, rerankQueryTokens: RERANK_QUERY_TOKENS });
118
182
  // --- Public API ---
119
183
  /** Kept for backwards compat. */
120
184
  export async function getReranker() {
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../../src/core/reranker.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@
10
10
  import type { SalienceFeatures, MemoryClass } from '../types/index.js';
11
11
  import type { IEngramStore as EngramStore } from '../storage/store.js';
12
12
  export type SalienceEventType = 'decision' | 'friction' | 'surprise' | 'causal' | 'observation' | 'user_feedback';
13
+ /** True when at least one feedback name is configured; otherwise the detector is off. */
14
+ export declare function userFeedbackDetectionEnabled(): boolean;
13
15
  /** Returns true if the content looks like direct user feedback that should auto-promote to canonical. */
14
16
  export declare function detectUserFeedback(content: string): boolean;
15
17
  /** Returns true if the content looks like a verified operational/batch record that should auto-bump salience. */
@@ -1 +1 @@
1
- {"version":3,"file":"salience.d.ts","sourceRoot":"","sources":["../../src/core/salience.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAqClH,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG3D;AA2BD,iHAAiH;AACjH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO9D;AA6BD,qGAAqG;AACrG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,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,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,eAAe,GAAE,MAAY,EAC7B,gBAAgB,GAAE,MAAY,GAC7B,cAAc,CA4JhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C3H;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC1B,OAAO,CAAC,aAAa,CAAC,CA+FxB"}
1
+ {"version":3,"file":"salience.d.ts","sourceRoot":"","sources":["../../src/core/salience.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAoDlH,yFAAyF;AACzF,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAED,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU3D;AA2BD,iHAAiH;AACjH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO9D;AA6BD,qGAAqG;AACrG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,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,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,eAAe,GAAE,MAAY,EAC7B,gBAAgB,GAAE,MAAY,GAC7B,cAAc,CA4JhB;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C3H;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC1B,OAAO,CAAC,aAAa,CAAC,CA+FxB"}
@@ -10,38 +10,65 @@
10
10
  * - Deterministic heuristics first, LLM augmentation optional
11
11
  */
12
12
  /**
13
- * Auto-detect user-feedback memories: content that begins with a known user's
14
- * name + a feedback verb. These memories represent direct human decisions and
15
- * must never be discarded. Examples:
16
- * "Robert verbatim: 'LMS programs-first like CRM'"
17
- * "Katherine said the CEC cycle resets on promotion"
18
- * "Nancy directed Tier 1 has no grace period"
13
+ * Auto-detect user-feedback memories: content that begins with a configured
14
+ * stakeholder's name + a feedback verb. These memories represent direct human
15
+ * decisions and must never be discarded. With AWM_FEEDBACK_NAMES="Ada,Grace":
16
+ * "Ada verbatim: 'programs-first, like the CRM'"
17
+ * "Grace said the certification cycle resets on promotion"
18
+ * "Ada directed that tier 1 has no grace period"
19
19
  *
20
20
  * Why this exists: the BM25 novelty check collapses near-duplicates regardless
21
21
  * of whether the content is a NEW decision or a repeat observation. User
22
- * feedback often shares terminology with prior memories ("LMS", "ECP",
23
- * "officials") and gets discarded at salience 0.14 (verified in activity log
24
- * 2026-05-06T19:08:47). Detecting "Robert said X" → canonical class bypasses
25
- * the salience filter entirely.
22
+ * feedback often shares terminology with prior memories (the same handful of
23
+ * domain nouns recur in every one) and gets discarded at salience 0.14 (verified
24
+ * in activity log 2026-05-06T19:08:47). Detecting "<name> said X" → canonical
25
+ * class bypasses the salience filter entirely.
26
26
  *
27
- * Tune via AWM_FEEDBACK_NAMES (comma list). Pattern requires word boundary at
28
- * start so "Roberta" or "Hannahs" don't match.
27
+ * Set via AWM_FEEDBACK_NAMES (comma list). A name must be followed by whitespace
28
+ * and then a verb, so a longer name sharing a configured prefix ("Adaline" for a
29
+ * configured "Ada") does not match.
29
30
  */
30
- // D4 (2026-07-30): names/verbs are configurable so the library is not coupled
31
- // to one organization's staff list. AWM_FEEDBACK_NAMES / AWM_FEEDBACK_VERBS
32
- // take comma-separated lists. The built-in default preserves existing installs;
33
- // a future 1.0 flips the default to empty with the installer seeding values.
34
- const DEFAULT_FEEDBACK_NAMES = 'Robert,Katherine,Catherine,Nancy,Brandy,Brandi,Hannah,Marilyn,Kaylee,Pete,Abby,Tom,Wendy,Sita,Nick,Rob,Joan,Jennifer,Cindy,Jason,Alex,Molly';
31
+ // D4 (2026-07-30): names/verbs are configurable so the library is not coupled to one
32
+ // organization's staff list. AWM_FEEDBACK_NAMES / AWM_FEEDBACK_VERBS take comma lists.
33
+ //
34
+ // 2026-10-11: the default is now EMPTY, which disables the detector until an operator
35
+ // configures it. It previously shipped 22 real first names — a deployment's own staff
36
+ // list, published in the npm tarball (`src/` is in package.json `files`) and readable by
37
+ // anyone who installed the package. That is other people's data, and a general-purpose
38
+ // library has no business carrying it. The flip was the decision of record from the start
39
+ // (docs/archive/eval-decisions-2026-07-30.md:37, "installer seeds Robert's current values
40
+ // so behavior is unchanged for him"); D4 shipped only the configurability half and
41
+ // deferred the flip to 1.0. It is brought forward here because the exposure is live.
42
+ //
43
+ // Operators who relied on the built-in list must now set AWM_FEEDBACK_NAMES explicitly —
44
+ // in the MCP server's `env` block, since that is the only place guaranteed to be read
45
+ // (the .env loader in cli.ts/mcp.ts resolves against process.cwd(), which an MCP server
46
+ // does not control). Without it, "<name> said X" no longer auto-promotes to canonical;
47
+ // an explicit memory_class: 'canonical' on the write still does.
48
+ const DEFAULT_FEEDBACK_NAMES = '';
35
49
  const DEFAULT_FEEDBACK_VERBS = 'said,verbatim,feedback,asked,wants,prefers,requested,directed,decided,confirmed,clarified,chose,specified,explained';
36
50
  function csvToAlternation(env, fallback) {
37
51
  return (env ?? fallback).split(',').map(x => x.trim()).filter(Boolean)
38
52
  .map(x => x.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
39
53
  .join('|');
40
54
  }
41
- const USER_FEEDBACK_PATTERN = new RegExp('^(' + csvToAlternation(process.env.AWM_FEEDBACK_NAMES, DEFAULT_FEEDBACK_NAMES) + ')\\s+(' +
55
+ const FEEDBACK_NAMES_ALTERNATION = csvToAlternation(process.env.AWM_FEEDBACK_NAMES, DEFAULT_FEEDBACK_NAMES);
56
+ const USER_FEEDBACK_PATTERN = new RegExp('^(' + FEEDBACK_NAMES_ALTERNATION + ')\\s+(' +
42
57
  csvToAlternation(process.env.AWM_FEEDBACK_VERBS, DEFAULT_FEEDBACK_VERBS) + ')\\b', 'i');
58
+ /** True when at least one feedback name is configured; otherwise the detector is off. */
59
+ export function userFeedbackDetectionEnabled() {
60
+ return FEEDBACK_NAMES_ALTERNATION.length > 0;
61
+ }
43
62
  /** Returns true if the content looks like direct user feedback that should auto-promote to canonical. */
44
63
  export function detectUserFeedback(content) {
64
+ // No configured names means the detector is OFF, as a decision rather than as an
65
+ // accident of the regex. An empty name list compiles to `^()\s+(said|asked|...)`, whose
66
+ // empty first group matches the empty string — so the pattern degrades to "starts with
67
+ // whitespace then a feedback verb". That is unreachable today only because the content
68
+ // is trimmed one line below, which makes correctness depend on the order of two
69
+ // unrelated statements. Check the configuration instead.
70
+ if (!userFeedbackDetectionEnabled())
71
+ return false;
45
72
  if (typeof content !== 'string' || content.length === 0)
46
73
  return false;
47
74
  return USER_FEEDBACK_PATTERN.test(content.trim());
@@ -1 +1 @@
1
- {"version":3,"file":"salience.js","sourceRoot":"","sources":["../../src/core/salience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"salience.js","sourceRoot":"","sources":["../../src/core/salience.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Trust tiers on writes and memories, and the one rule the write pipeline
3
+ * applies with them: a merge or a replacement must never RAISE the trust of
4
+ * text, and must never retire a more-trusted memory on the word of a
5
+ * less-trusted write.
6
+ *
7
+ * Found by MWA BL-17 (2026-10-14/15), five isolated-review rounds with
8
+ * probes: the pipeline merged a write into an existing memory on concept
9
+ * equality and the merged engram KEPT THE OLD ENGRAM'S TAGS — so a poisoned
10
+ * skill merged into a clean one came back trust=medium and primeable; a
11
+ * planted untrusted decoy under the same concept let a poisoned near-copy
12
+ * merge into the trusted fact; an archived trusted fact was revived with
13
+ * poisoned text merged in; and an R3 "correction" (eventType surprise) from
14
+ * untrusted text retired a trusted memory. MWA works around all of it in its
15
+ * own wrapper. Any other client writing mixed-trust content was exposed.
16
+ *
17
+ * AWM has no trust model of its own, and this does not add one. It reads the
18
+ * tag MWA's memory spine already writes (`trust=<tier>`) and refuses the
19
+ * dangerous direction. The write is still stored — as its own engram, with
20
+ * its own tags — so nothing is lost and the conflict mark can say the two
21
+ * disagree. Untagged writes and memories are unaffected: the rule only fires
22
+ * when the write is EXPLICITLY untrusted, or when both sides carry a tier and
23
+ * the write's is lower.
24
+ */
25
+ /** The tier a `trust=<tier>` tag declares, or null when there is none. */
26
+ export declare function trustTier(tags: readonly string[] | null | undefined): number | null;
27
+ /**
28
+ * True when `writeTags` must not merge into, supersede or revive a memory
29
+ * carrying `targetTags`.
30
+ */
31
+ export declare function mergeBlockedByTrust(writeTags: readonly string[] | null | undefined, targetTags: readonly string[] | null | undefined): boolean;
32
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/core/trust.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAYnF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC/C,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAC/C,OAAO,CAOT"}
@@ -0,0 +1,66 @@
1
+ // Copyright 2026 Robert Winter / Complete Ideas
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Trust tiers on writes and memories, and the one rule the write pipeline
5
+ * applies with them: a merge or a replacement must never RAISE the trust of
6
+ * text, and must never retire a more-trusted memory on the word of a
7
+ * less-trusted write.
8
+ *
9
+ * Found by MWA BL-17 (2026-10-14/15), five isolated-review rounds with
10
+ * probes: the pipeline merged a write into an existing memory on concept
11
+ * equality and the merged engram KEPT THE OLD ENGRAM'S TAGS — so a poisoned
12
+ * skill merged into a clean one came back trust=medium and primeable; a
13
+ * planted untrusted decoy under the same concept let a poisoned near-copy
14
+ * merge into the trusted fact; an archived trusted fact was revived with
15
+ * poisoned text merged in; and an R3 "correction" (eventType surprise) from
16
+ * untrusted text retired a trusted memory. MWA works around all of it in its
17
+ * own wrapper. Any other client writing mixed-trust content was exposed.
18
+ *
19
+ * AWM has no trust model of its own, and this does not add one. It reads the
20
+ * tag MWA's memory spine already writes (`trust=<tier>`) and refuses the
21
+ * dangerous direction. The write is still stored — as its own engram, with
22
+ * its own tags — so nothing is lost and the conflict mark can say the two
23
+ * disagree. Untagged writes and memories are unaffected: the rule only fires
24
+ * when the write is EXPLICITLY untrusted, or when both sides carry a tier and
25
+ * the write's is lower.
26
+ */
27
+ /** Ordered tiers; higher is more trusted. */
28
+ const TIERS = {
29
+ untrusted: 0, none: 0, quarantine: 0,
30
+ low: 1,
31
+ medium: 2, med: 2,
32
+ high: 3, trusted: 3, verified: 3, owner: 3,
33
+ };
34
+ /** The tier a `trust=<tier>` tag declares, or null when there is none. */
35
+ export function trustTier(tags) {
36
+ if (!tags)
37
+ return null;
38
+ let found = null;
39
+ for (const t of tags) {
40
+ const m = /^trust=([a-z]+)$/i.exec(t.trim());
41
+ if (!m)
42
+ continue;
43
+ const v = TIERS[m[1].toLowerCase()];
44
+ if (v === undefined)
45
+ continue;
46
+ // Several tags: the lowest wins — a memory is as trusted as its least trusted label.
47
+ found = found === null ? v : Math.min(found, v);
48
+ }
49
+ return found;
50
+ }
51
+ /**
52
+ * True when `writeTags` must not merge into, supersede or revive a memory
53
+ * carrying `targetTags`.
54
+ */
55
+ export function mergeBlockedByTrust(writeTags, targetTags) {
56
+ const w = trustTier(writeTags);
57
+ if (w === null)
58
+ return false; // untagged write: no rule
59
+ const t = trustTier(targetTags);
60
+ if (w === 0)
61
+ return t === null || t > 0; // explicitly untrusted: only into untrusted
62
+ if (t === null)
63
+ return false; // tagged write, untagged target: no rule
64
+ return w < t;
65
+ }
66
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/core/trust.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,6CAA6C;AAC7C,MAAM,KAAK,GAA2B;IACpC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IACpC,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;CAC3C,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,IAA0C;IAClE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,qFAAqF;QACrF,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAA+C,EAC/C,UAAgD;IAEhD,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAkB,0BAA0B;IACzE,MAAM,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAO,4CAA4C;IAC3F,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAkB,yCAAyC;IACxF,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Temporal validity (D8) — the one place that decides whether a memory's
3
+ * `valid_from` / `valid_to` window holds at a given moment.
4
+ *
5
+ * Until 2026-10-19 nothing read these fields except the two recall formatters,
6
+ * which printed `[valid until …]` on expired memories exactly as on current
7
+ * ones. The live store was serving 482 memories past their `valid_to` as
8
+ * current (97 active, 385 archived). The guidance given to agents ("use
9
+ * `valid_to` … so the memory expires") promised behaviour the code did not have.
10
+ *
11
+ * Ranking (activation.ts Phase 8c), the MCP recall format and the prime hook
12
+ * all go through here so they cannot disagree about what "expired" means.
13
+ */
14
+ export type ValidityState = 'current' | 'expired' | 'not-yet-valid';
15
+ /** The fields this needs — any engram-shaped object qualifies. */
16
+ export interface TemporallyBounded {
17
+ validFrom?: string | null;
18
+ validTo?: string | null;
19
+ }
20
+ export declare function validityState(e: TemporallyBounded, now?: number): ValidityState;
21
+ //# sourceMappingURL=validity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validity.d.ts","sourceRoot":"","sources":["../../src/core/validity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAEpE,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAcD,wBAAgB,aAAa,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,GAAE,MAAmB,GAAG,aAAa,CAU3F"}
@@ -0,0 +1,41 @@
1
+ // Copyright 2026 Robert Winter / Complete Ideas
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Temporal validity (D8) — the one place that decides whether a memory's
5
+ * `valid_from` / `valid_to` window holds at a given moment.
6
+ *
7
+ * Until 2026-10-19 nothing read these fields except the two recall formatters,
8
+ * which printed `[valid until …]` on expired memories exactly as on current
9
+ * ones. The live store was serving 482 memories past their `valid_to` as
10
+ * current (97 active, 385 archived). The guidance given to agents ("use
11
+ * `valid_to` … so the memory expires") promised behaviour the code did not have.
12
+ *
13
+ * Ranking (activation.ts Phase 8c), the MCP recall format and the prime hook
14
+ * all go through here so they cannot disagree about what "expired" means.
15
+ */
16
+ /**
17
+ * A date-only `valid_to` ("2026-01-15") means "through that day", so it is
18
+ * compared against the END of that day in UTC. A full datetime is taken as
19
+ * written. An unparseable value is ignored: a bad bound must not hide a memory.
20
+ */
21
+ function boundMs(value, endOfDay) {
22
+ const t = Date.parse(value);
23
+ if (!Number.isFinite(t))
24
+ return NaN;
25
+ const dateOnly = /^\d{4}-\d{2}-\d{2}$/.test(value.trim());
26
+ return dateOnly && endOfDay ? t + 86_400_000 - 1 : t;
27
+ }
28
+ export function validityState(e, now = Date.now()) {
29
+ if (e.validTo) {
30
+ const until = boundMs(e.validTo, true);
31
+ if (Number.isFinite(until) && now > until)
32
+ return 'expired';
33
+ }
34
+ if (e.validFrom) {
35
+ const from = boundMs(e.validFrom, false);
36
+ if (Number.isFinite(from) && now < from)
37
+ return 'not-yet-valid';
38
+ }
39
+ return 'current';
40
+ }
41
+ //# sourceMappingURL=validity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validity.js","sourceRoot":"","sources":["../../src/core/validity.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;GAYG;AAUH;;;;GAIG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,QAAiB;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAoB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1E,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK;YAAE,OAAO,SAAS,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI;YAAE,OAAO,eAAe,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { modelDaemonStatus } from './ml-worker.js';
1
2
  export interface WhoamiInfo {
2
3
  agentId: string;
3
4
  workspace: string | null;
@@ -23,6 +24,8 @@ export interface WhoamiInfo {
23
24
  fingerprint: string;
24
25
  flags: Record<string, string>;
25
26
  };
27
+ /** Where inference runs: this process, or the shared model daemon (AWM_MODEL_DAEMON=1). */
28
+ models: ReturnType<typeof modelDaemonStatus>;
26
29
  siblingAgents: string[];
27
30
  }
28
31
  /** Store subset whoami needs — every backend implements listAgentIds. */
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/core/whoami.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC9C;AASD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,GAAG,MAAM;AACvB;;;;;;GAMG;AACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,UAAU,CAAC,CA4BrB;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAmBlD"}
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/core/whoami.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC/D,2FAA2F;IAC3F,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC9C;AASD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,GAAG,MAAM;AACvB;;;;;;GAMG;AACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,UAAU,CAAC,CA6BrB;AAaD,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAoBlD"}
@@ -18,6 +18,7 @@ import { VERSION } from '../version.js';
18
18
  import { getConfiguredBackend, getConfiguredPath } from '../storage/factory.js';
19
19
  import { activeRecallConfig, recallConfigFingerprint } from './recall-config.js';
20
20
  import { embeddingHealth } from './embeddings.js';
21
+ import { modelDaemonStatus } from './ml-worker.js';
21
22
  function packageRoot() {
22
23
  // src/core/whoami.ts (dev) and dist/core/whoami.js (build) both sit two
23
24
  // levels below the package root.
@@ -59,9 +60,21 @@ boundHookPort) {
59
60
  : (Number.isFinite(hookPort) && hookPort > 0 ? hookPort : null),
60
61
  },
61
62
  recall: { fingerprint: recallConfigFingerprint(), flags: activeRecallConfig() },
63
+ models: modelDaemonStatus(),
62
64
  siblingAgents: siblings,
63
65
  };
64
66
  }
67
+ function formatModels(m) {
68
+ if (!m.enabled)
69
+ return 'in this process';
70
+ const fallback = m.fallbacks
71
+ ? ` · ${m.fallbacks} fallback(s) to in-process, last: ${m.lastFallbackReason} at ${m.lastFallbackAt}`
72
+ : '';
73
+ const where = m.mode === 'daemon' ? `shared daemon pid ${m.daemonPid}`
74
+ : m.mode === 'in-process-fallback' ? 'in this process (daemon unavailable)'
75
+ : 'shared daemon (not connected yet)';
76
+ return `${where} · fingerprint ${m.fingerprint} · ${m.requests} request(s)${fallback}`;
77
+ }
65
78
  /** Human-readable rendering for the MCP tool response. */
66
79
  export function formatWhoami(w) {
67
80
  return [
@@ -72,6 +85,7 @@ export function formatWhoami(w) {
72
85
  `Code: ${w.codePath} (pid ${w.pid})`,
73
86
  `Ports: http=${w.ports.http ?? 'off'} hookSidecar=${w.ports.hookSidecar ?? 'off'}`,
74
87
  `Recall config: ${w.recall.fingerprint}`,
88
+ `Models: ${formatModels(w.models)}`,
75
89
  ...(embeddingHealth().dimensionMismatches > 0
76
90
  ? [`\u26a0 EMBEDDING INTEGRITY: ${embeddingHealth().dimensionMismatches} dimension mismatches ` +
77
91
  `(expected ${embeddingHealth().expectedDimensions}d). Affected memories score 0 on the ` +
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/core/whoami.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/core/whoami.ts"],"names":[],"mappings":"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"}