@monoes/monomindcli 2.16.12 → 2.16.13

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 (217) hide show
  1. package/.claude/agents/core/coder.md +1 -1
  2. package/.claude/agents/engineering/engineering-devops-automator.md +1 -1
  3. package/.claude/agents/github/repo-architect.md +1 -1
  4. package/.claude/agents/testing/production-validator.md +1 -1
  5. package/.claude/agents/testing/testing-tool-evaluator.md +1 -1
  6. package/.claude/commands/github/pr-manager.md +1 -1
  7. package/.claude/helpers/pick-rank.cjs +34 -4
  8. package/.claude/skills/monolean-audit/SKILL.md +1 -1
  9. package/dist/src/commands/cleanup-data.d.ts +30 -0
  10. package/dist/src/commands/cleanup-data.d.ts.map +1 -0
  11. package/dist/src/commands/cleanup-data.js +138 -0
  12. package/dist/src/commands/cleanup-data.js.map +1 -0
  13. package/dist/src/commands/cleanup-scratch.d.ts +43 -0
  14. package/dist/src/commands/cleanup-scratch.d.ts.map +1 -0
  15. package/dist/src/commands/cleanup-scratch.js +125 -0
  16. package/dist/src/commands/cleanup-scratch.js.map +1 -0
  17. package/dist/src/commands/cleanup.d.ts +2 -39
  18. package/dist/src/commands/cleanup.d.ts.map +1 -1
  19. package/dist/src/commands/cleanup.js +5 -247
  20. package/dist/src/commands/cleanup.js.map +1 -1
  21. package/dist/src/commands/doctor-gitignore-checks.d.ts +10 -0
  22. package/dist/src/commands/doctor-gitignore-checks.d.ts.map +1 -0
  23. package/dist/src/commands/doctor-gitignore-checks.js +141 -0
  24. package/dist/src/commands/doctor-gitignore-checks.js.map +1 -0
  25. package/dist/src/commands/doctor-helpers-checks.d.ts +10 -0
  26. package/dist/src/commands/doctor-helpers-checks.d.ts.map +1 -0
  27. package/dist/src/commands/doctor-helpers-checks.js +292 -0
  28. package/dist/src/commands/doctor-helpers-checks.js.map +1 -0
  29. package/dist/src/commands/doctor-memory-checks.d.ts +47 -0
  30. package/dist/src/commands/doctor-memory-checks.d.ts.map +1 -0
  31. package/dist/src/commands/doctor-memory-checks.js +298 -0
  32. package/dist/src/commands/doctor-memory-checks.js.map +1 -0
  33. package/dist/src/commands/doctor-monograph-checks.d.ts +9 -0
  34. package/dist/src/commands/doctor-monograph-checks.d.ts.map +1 -0
  35. package/dist/src/commands/doctor-monograph-checks.js +331 -0
  36. package/dist/src/commands/doctor-monograph-checks.js.map +1 -0
  37. package/dist/src/commands/doctor-project-checks.d.ts +7 -66
  38. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  39. package/dist/src/commands/doctor-project-checks.js +10 -1331
  40. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  41. package/dist/src/commands/doctor-routing-checks.d.ts +10 -0
  42. package/dist/src/commands/doctor-routing-checks.d.ts.map +1 -0
  43. package/dist/src/commands/doctor-routing-checks.js +194 -0
  44. package/dist/src/commands/doctor-routing-checks.js.map +1 -0
  45. package/dist/src/commands/doctor-worker-checks.d.ts +17 -0
  46. package/dist/src/commands/doctor-worker-checks.d.ts.map +1 -0
  47. package/dist/src/commands/doctor-worker-checks.js +122 -0
  48. package/dist/src/commands/doctor-worker-checks.js.map +1 -0
  49. package/dist/src/commands/hooks-routing-commands.js +1 -1
  50. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  51. package/dist/src/commands/init.d.ts.map +1 -1
  52. package/dist/src/commands/init.js +6 -15
  53. package/dist/src/commands/init.js.map +1 -1
  54. package/dist/src/index.js +2 -2
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/init/never-commit.d.ts +3 -3
  57. package/dist/src/init/types.d.ts +1 -1
  58. package/dist/src/init/types.js +1 -1
  59. package/dist/src/knowledge/document-store.js +1 -1
  60. package/dist/src/knowledge/document-store.js.map +1 -1
  61. package/dist/src/mcp-tools/hooks-edit-command.d.ts +10 -0
  62. package/dist/src/mcp-tools/hooks-edit-command.d.ts.map +1 -0
  63. package/dist/src/mcp-tools/hooks-edit-command.js +247 -0
  64. package/dist/src/mcp-tools/hooks-edit-command.js.map +1 -0
  65. package/dist/src/mcp-tools/hooks-learning.d.ts +9 -0
  66. package/dist/src/mcp-tools/hooks-learning.d.ts.map +1 -0
  67. package/dist/src/mcp-tools/hooks-learning.js +408 -0
  68. package/dist/src/mcp-tools/hooks-learning.js.map +1 -0
  69. package/dist/src/mcp-tools/hooks-metrics-list.d.ts +8 -0
  70. package/dist/src/mcp-tools/hooks-metrics-list.d.ts.map +1 -0
  71. package/dist/src/mcp-tools/hooks-metrics-list.js +205 -0
  72. package/dist/src/mcp-tools/hooks-metrics-list.js.map +1 -0
  73. package/dist/src/mcp-tools/hooks-route.d.ts +12 -0
  74. package/dist/src/mcp-tools/hooks-route.d.ts.map +1 -0
  75. package/dist/src/mcp-tools/hooks-route.js +251 -0
  76. package/dist/src/mcp-tools/hooks-route.js.map +1 -0
  77. package/dist/src/mcp-tools/hooks-routing.d.ts +6 -27
  78. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  79. package/dist/src/mcp-tools/hooks-routing.js +6 -1727
  80. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  81. package/dist/src/mcp-tools/hooks-session.d.ts +9 -0
  82. package/dist/src/mcp-tools/hooks-session.d.ts.map +1 -0
  83. package/dist/src/mcp-tools/hooks-session.js +243 -0
  84. package/dist/src/mcp-tools/hooks-session.js.map +1 -0
  85. package/dist/src/mcp-tools/hooks-task.d.ts +17 -0
  86. package/dist/src/mcp-tools/hooks-task.d.ts.map +1 -0
  87. package/dist/src/mcp-tools/hooks-task.js +427 -0
  88. package/dist/src/mcp-tools/hooks-task.js.map +1 -0
  89. package/dist/src/mcp-tools/hooks-tools.d.ts +2 -1
  90. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  91. package/dist/src/mcp-tools/hooks-tools.js +2 -1
  92. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  93. package/dist/src/mcp-tools/memory-tools.js +1 -1
  94. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  95. package/dist/src/memory/bm25-index.d.ts +2 -2
  96. package/dist/src/memory/bm25-index.js +2 -2
  97. package/dist/src/memory/embedding-operations.js +2 -2
  98. package/dist/src/memory/embedding-operations.js.map +1 -1
  99. package/dist/src/memory/entity-name-key.d.ts +1 -1
  100. package/dist/src/memory/entity-name-key.js +1 -1
  101. package/dist/src/memory/hnsw-operations.d.ts +1 -1
  102. package/dist/src/memory/hnsw-operations.js +1 -1
  103. package/dist/src/memory/memory-bridge-backend.d.ts +43 -0
  104. package/dist/src/memory/memory-bridge-backend.d.ts.map +1 -0
  105. package/dist/src/memory/memory-bridge-backend.js +363 -0
  106. package/dist/src/memory/memory-bridge-backend.js.map +1 -0
  107. package/dist/src/memory/memory-bridge-core.d.ts +42 -0
  108. package/dist/src/memory/memory-bridge-core.d.ts.map +1 -0
  109. package/dist/src/memory/memory-bridge-core.js +126 -0
  110. package/dist/src/memory/memory-bridge-core.js.map +1 -0
  111. package/dist/src/memory/memory-bridge-entries.d.ts +131 -0
  112. package/dist/src/memory/memory-bridge-entries.d.ts.map +1 -0
  113. package/dist/src/memory/memory-bridge-entries.js +227 -0
  114. package/dist/src/memory/memory-bridge-entries.js.map +1 -0
  115. package/dist/src/memory/memory-bridge-feedback.d.ts +60 -0
  116. package/dist/src/memory/memory-bridge-feedback.d.ts.map +1 -0
  117. package/dist/src/memory/memory-bridge-feedback.js +118 -0
  118. package/dist/src/memory/memory-bridge-feedback.js.map +1 -0
  119. package/dist/src/memory/memory-bridge-paths.d.ts +123 -0
  120. package/dist/src/memory/memory-bridge-paths.d.ts.map +1 -0
  121. package/dist/src/memory/memory-bridge-paths.js +335 -0
  122. package/dist/src/memory/memory-bridge-paths.js.map +1 -0
  123. package/dist/src/memory/memory-bridge-search.d.ts +48 -0
  124. package/dist/src/memory/memory-bridge-search.d.ts.map +1 -0
  125. package/dist/src/memory/memory-bridge-search.js +383 -0
  126. package/dist/src/memory/memory-bridge-search.js.map +1 -0
  127. package/dist/src/memory/memory-bridge-sessions.d.ts +38 -0
  128. package/dist/src/memory/memory-bridge-sessions.d.ts.map +1 -0
  129. package/dist/src/memory/memory-bridge-sessions.js +109 -0
  130. package/dist/src/memory/memory-bridge-sessions.js.map +1 -0
  131. package/dist/src/memory/memory-bridge-store.d.ts +58 -0
  132. package/dist/src/memory/memory-bridge-store.d.ts.map +1 -0
  133. package/dist/src/memory/memory-bridge-store.js +201 -0
  134. package/dist/src/memory/memory-bridge-store.js.map +1 -0
  135. package/dist/src/memory/memory-bridge.d.ts +10 -438
  136. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  137. package/dist/src/memory/memory-bridge.js +14 -1787
  138. package/dist/src/memory/memory-bridge.js.map +1 -1
  139. package/dist/src/memory/memory-kg-claims.d.ts +52 -0
  140. package/dist/src/memory/memory-kg-claims.d.ts.map +1 -0
  141. package/dist/src/memory/memory-kg-claims.js +99 -0
  142. package/dist/src/memory/memory-kg-claims.js.map +1 -0
  143. package/dist/src/memory/memory-kg-index.d.ts +86 -0
  144. package/dist/src/memory/memory-kg-index.d.ts.map +1 -0
  145. package/dist/src/memory/memory-kg-index.js +256 -0
  146. package/dist/src/memory/memory-kg-index.js.map +1 -0
  147. package/dist/src/memory/memory-kg-ingest.d.ts +44 -0
  148. package/dist/src/memory/memory-kg-ingest.d.ts.map +1 -0
  149. package/dist/src/memory/memory-kg-ingest.js +361 -0
  150. package/dist/src/memory/memory-kg-ingest.js.map +1 -0
  151. package/dist/src/memory/memory-kg-model.d.ts +168 -0
  152. package/dist/src/memory/memory-kg-model.d.ts.map +1 -0
  153. package/dist/src/memory/memory-kg-model.js +158 -0
  154. package/dist/src/memory/memory-kg-model.js.map +1 -0
  155. package/dist/src/memory/memory-kg-names.d.ts +64 -0
  156. package/dist/src/memory/memory-kg-names.d.ts.map +1 -0
  157. package/dist/src/memory/memory-kg-names.js +187 -0
  158. package/dist/src/memory/memory-kg-names.js.map +1 -0
  159. package/dist/src/memory/memory-kg-promote.d.ts +79 -0
  160. package/dist/src/memory/memory-kg-promote.d.ts.map +1 -0
  161. package/dist/src/memory/memory-kg-promote.js +248 -0
  162. package/dist/src/memory/memory-kg-promote.js.map +1 -0
  163. package/dist/src/memory/memory-kg-rebuild.d.ts +77 -0
  164. package/dist/src/memory/memory-kg-rebuild.d.ts.map +1 -0
  165. package/dist/src/memory/memory-kg-rebuild.js +299 -0
  166. package/dist/src/memory/memory-kg-rebuild.js.map +1 -0
  167. package/dist/src/memory/memory-kg-rollback.d.ts +47 -0
  168. package/dist/src/memory/memory-kg-rollback.d.ts.map +1 -0
  169. package/dist/src/memory/memory-kg-rollback.js +193 -0
  170. package/dist/src/memory/memory-kg-rollback.js.map +1 -0
  171. package/dist/src/memory/memory-kg-rules.d.ts +64 -0
  172. package/dist/src/memory/memory-kg-rules.d.ts.map +1 -0
  173. package/dist/src/memory/memory-kg-rules.js +251 -0
  174. package/dist/src/memory/memory-kg-rules.js.map +1 -0
  175. package/dist/src/memory/memory-kg-scan.d.ts +118 -0
  176. package/dist/src/memory/memory-kg-scan.d.ts.map +1 -0
  177. package/dist/src/memory/memory-kg-scan.js +209 -0
  178. package/dist/src/memory/memory-kg-scan.js.map +1 -0
  179. package/dist/src/memory/memory-kg-search.d.ts +80 -0
  180. package/dist/src/memory/memory-kg-search.d.ts.map +1 -0
  181. package/dist/src/memory/memory-kg-search.js +239 -0
  182. package/dist/src/memory/memory-kg-search.js.map +1 -0
  183. package/dist/src/memory/memory-kg.d.ts +19 -547
  184. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  185. package/dist/src/memory/memory-kg.js +10 -2389
  186. package/dist/src/memory/memory-kg.js.map +1 -1
  187. package/dist/src/ui/org-hil.mjs +1 -1
  188. package/dist/src/ui/routes-org-agents.mjs +318 -0
  189. package/dist/src/ui/routes-org-approvals.mjs +133 -0
  190. package/dist/src/ui/routes-org-config.mjs +459 -0
  191. package/dist/src/ui/routes-org-control.mjs +300 -0
  192. package/dist/src/ui/routes-org-files.mjs +172 -0
  193. package/dist/src/ui/routes-org-helpers.mjs +84 -0
  194. package/dist/src/ui/routes-org-knowledge.mjs +262 -0
  195. package/dist/src/ui/routes-org-lifecycle.mjs +224 -0
  196. package/dist/src/ui/routes-org-live.mjs +278 -0
  197. package/dist/src/ui/routes-org-mastermind.mjs +346 -0
  198. package/dist/src/ui/routes-org-planning.mjs +398 -0
  199. package/dist/src/ui/routes-org-runs.mjs +430 -0
  200. package/dist/src/ui/routes-org-status.mjs +342 -0
  201. package/dist/src/ui/routes-org-workflows.mjs +212 -0
  202. package/dist/src/ui/routes-org.mjs +26 -3847
  203. package/dist/src/ui/server.mjs +1 -1
  204. package/dist/src/utils/native-error.d.ts +1 -1
  205. package/dist/src/utils/native-error.js +1 -1
  206. package/dist/src/utils/paths.d.ts +2 -1
  207. package/dist/src/utils/paths.d.ts.map +1 -1
  208. package/dist/src/utils/paths.js +2 -1
  209. package/dist/src/utils/paths.js.map +1 -1
  210. package/dist/tsconfig.tsbuildinfo +1 -1
  211. package/org-skills/adversarial-reviewer/SKILL.md +1 -1
  212. package/org-skills/board-deck-builder/SKILL.md +1 -1
  213. package/org-skills/code-reviewer/SKILL.md +1 -1
  214. package/org-skills/debugging-wizard/SKILL.md +1 -1
  215. package/org-skills/scientific-thinking-literature-review/SKILL.md +1 -1
  216. package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +1 -1
  217. package/package.json +8 -8
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Memory Bridge — the write path: bridgeStoreEntry (upsert identity, dedup
3
+ * gate, compare-and-swap) and the usage-recording helper it shares with the
4
+ * feedback loop. Split out of memory-bridge.ts, which re-exports the public
5
+ * symbols.
6
+ */
7
+ import { _embedder, flushBackend, getBackend } from './memory-bridge-backend.js';
8
+ import { BRIDGE_EMBEDDING_MODEL, BRIDGE_MAX_KEY_LEN, BRIDGE_MAX_VALUE_LEN, entryWeights, generateId, getAutomemConfig, logBridgeError, MAX_TAG_LEN, MAX_TAGS, } from './memory-bridge-core.js';
9
+ // ===== Core CRUD =====
10
+ export async function bridgeStoreEntry(options) {
11
+ const backend = await getBackend(options.dbPath);
12
+ if (!backend)
13
+ return null;
14
+ try {
15
+ const key = typeof options.key === 'string' && options.key.length > BRIDGE_MAX_KEY_LEN
16
+ ? options.key.slice(0, BRIDGE_MAX_KEY_LEN)
17
+ : options.key;
18
+ if (typeof options.value === 'string' && options.value.length > BRIDGE_MAX_VALUE_LEN) {
19
+ return {
20
+ success: false,
21
+ id: '',
22
+ error: `Value exceeds the ${BRIDGE_MAX_VALUE_LEN}-character cap (BRIDGE_MAX_VALUE_LEN = 16 KB); got ${options.value.length}. Split the content into smaller entries.`,
23
+ };
24
+ }
25
+ const value = options.value;
26
+ const namespace = options.namespace ?? 'default';
27
+ const tags = Array.isArray(options.tags)
28
+ ? // src: tags carry the ingest source path for excerpt provenance — paths
29
+ // routinely exceed the general 64-char tag cap, so they get 512.
30
+ options.tags
31
+ .filter((t) => typeof t === 'string' &&
32
+ t.length > 0 &&
33
+ t.length <= (t.startsWith('src:') ? 512 : MAX_TAG_LEN))
34
+ .slice(0, MAX_TAGS)
35
+ : [];
36
+ const now = Date.now();
37
+ // Upsert resolves the EXISTING identity BEFORE minting anything: a
38
+ // re-ingest must update the row in place and keep the id the caller was
39
+ // already handed. The old store-new-then-delete-old order silently
40
+ // orphaned every outstanding reference — feedback against a
41
+ // previously-returned id then matched nothing and reported
42
+ // `success: true, applied: 0`, i.e. success while training nothing (K5).
43
+ let existing = null;
44
+ if (options.upsert) {
45
+ try {
46
+ existing = await backend.getByKey(namespace, key);
47
+ }
48
+ catch (e) {
49
+ logBridgeError('bridgeStoreEntry.upsertLookup', e); /* treat as no existing entry */
50
+ }
51
+ }
52
+ const id = existing?.id ?? generateId('entry');
53
+ // Generate embedding
54
+ let embedding;
55
+ let embeddingInfo;
56
+ if (options.generateEmbeddingFlag !== false && value.length > 0 && _embedder) {
57
+ try {
58
+ embedding = await _embedder(value);
59
+ embeddingInfo = { dimensions: embedding.length, model: BRIDGE_EMBEDDING_MODEL };
60
+ }
61
+ catch (e) {
62
+ if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
63
+ console.error('[memory-bridge] embedding generation failed — storing entry without embedding:', e);
64
+ }
65
+ }
66
+ const mod = await import('@monoes/memory');
67
+ const entry = mod.createDefaultEntry({
68
+ key,
69
+ content: value,
70
+ namespace,
71
+ tags,
72
+ // On a revision the stored metadata merges UNDER the caller's, so
73
+ // learned signal (feedback_weight, frequency_weight) survives while every
74
+ // field the caller states explicitly still wins. Same merge semantics the
75
+ // backend's own update() uses.
76
+ metadata: existing
77
+ ? { ...(existing.metadata ?? {}), ...(options.metadata ?? {}) }
78
+ : options.metadata,
79
+ expiresAt: options.ttl ? now + options.ttl * 1000 : undefined,
80
+ });
81
+ // Override id and set embedding
82
+ entry.id = id;
83
+ if (embedding)
84
+ entry.embedding = embedding;
85
+ if (existing) {
86
+ // Carry the record's history forward. createdAt in particular anchors the
87
+ // entry in the backend's `created_at DESC` ordering: a revision keeps its
88
+ // position instead of jumping to the head of every scan.
89
+ entry.createdAt = existing.createdAt;
90
+ entry.updatedAt = now;
91
+ entry.version = (existing.version ?? 1) + 1;
92
+ entry.accessCount = existing.accessCount ?? 0;
93
+ entry.lastAccessedAt = existing.lastAccessedAt ?? now;
94
+ }
95
+ // Dedup gate: skip if a near-duplicate already exists IN THIS NAMESPACE —
96
+ // an unscoped search let a similar entry in some other namespace swallow
97
+ // the store entirely (returned duplicate:true, nothing written where asked).
98
+ const automemCfg = getAutomemConfig();
99
+ if (embedding && !options.upsert) {
100
+ try {
101
+ const similar = await backend.search(embedding, {
102
+ k: 1,
103
+ threshold: automemCfg.dedupThreshold,
104
+ filters: { type: 'exact', namespace },
105
+ });
106
+ if (similar.length > 0 && similar[0].score >= automemCfg.dedupThreshold) {
107
+ // Re-storing near-identical content is a usage signal: the fact keeps
108
+ // being worth remembering. Reinforce the surviving entry.
109
+ await recordUsageOnBackend(backend, [similar[0].entry.id]).catch(() => {
110
+ /* best effort */
111
+ });
112
+ return { success: true, id: similar[0].entry.id, duplicate: true };
113
+ }
114
+ }
115
+ catch (e) {
116
+ logBridgeError('bridgeStoreEntry.dedupSearch', e); /* non-fatal — store anyway */
117
+ }
118
+ }
119
+ // Compare-and-swap path (K5): a caller merging onto a row it read earlier
120
+ // (or asserting the row is still absent) asks for that check to be part of
121
+ // the write, atomically, instead of trusting its own stale read.
122
+ if (options.ifVersion !== undefined) {
123
+ if (options.ifVersion === 'absent') {
124
+ if (existing)
125
+ return {
126
+ success: false,
127
+ id: existing.id,
128
+ conflict: true,
129
+ error: 'ifVersion=absent but entry already exists',
130
+ };
131
+ const created = typeof backend.storeIfAbsent === 'function' ? await backend.storeIfAbsent(entry) : null;
132
+ if (created === null) {
133
+ // Backend predates storeIfAbsent (or is a test double) — fall back to
134
+ // the plain unconditional write rather than fail every caller.
135
+ await backend.store(entry);
136
+ }
137
+ else if (!created) {
138
+ return { success: false, id: '', conflict: true, error: 'entry created concurrently' };
139
+ }
140
+ }
141
+ else {
142
+ if (!existing)
143
+ return { success: false, id: '', conflict: true, error: 'entry no longer exists' };
144
+ const written = typeof backend.storeIfVersion === 'function'
145
+ ? await backend.storeIfVersion(entry, options.ifVersion)
146
+ : null;
147
+ if (written === null) {
148
+ await backend.store(entry);
149
+ }
150
+ else if (!written) {
151
+ return {
152
+ success: false,
153
+ id,
154
+ conflict: true,
155
+ error: `version conflict: entry changed concurrently (expected version ${options.ifVersion})`,
156
+ };
157
+ }
158
+ }
159
+ await flushBackend(backend);
160
+ return { success: true, id, embedding: embeddingInfo };
161
+ }
162
+ // store() is INSERT OR REPLACE keyed on id, so reusing the existing id
163
+ // rewrites that row in place — there is no old row left to delete, and no
164
+ // window in which a failed store leaves the previous data destroyed.
165
+ await backend.store(entry);
166
+ await flushBackend(backend);
167
+ return { success: true, id, embedding: embeddingInfo };
168
+ }
169
+ catch (err) {
170
+ logBridgeError('bridgeStoreEntry', err);
171
+ const message = err instanceof Error ? err.message : String(err);
172
+ return { success: false, id: '', error: message };
173
+ }
174
+ }
175
+ export async function recordUsageOnBackend(backend, entryIds) {
176
+ let updated = 0;
177
+ const skipped = [];
178
+ for (const id of entryIds) {
179
+ if (typeof id !== 'string' || !id)
180
+ continue;
181
+ try {
182
+ const entry = await backend.get(id);
183
+ if (!entry) {
184
+ skipped.push({ id, reason: 'not_found' });
185
+ continue;
186
+ }
187
+ const { frequency } = entryWeights(entry.metadata);
188
+ await backend.update(id, {
189
+ metadata: { frequency_weight: frequency + 1 },
190
+ lastAccessedAt: Date.now(),
191
+ });
192
+ updated++;
193
+ }
194
+ catch (e) {
195
+ logBridgeError('recordUsageOnBackend.entryUpdate', e);
196
+ skipped.push({ id, reason: 'error' });
197
+ }
198
+ }
199
+ return { updated, skipped };
200
+ }
201
+ //# sourceMappingURL=memory-bridge-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-bridge-store.js","sourceRoot":"","sources":["../../../src/memory/memory-bridge-store.ts"],"names":[],"mappings":"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"}