@pcircle/memesh 4.5.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +6 -4
  3. package/.mcp.json +1 -1
  4. package/AGENTS.md +95 -0
  5. package/README.de.md +130 -39
  6. package/README.md +188 -43
  7. package/README.zh-TW.md +133 -41
  8. package/dashboard/dist/index.html +9 -9
  9. package/dist/cli/view-live.js +3 -3
  10. package/dist/core/analytics.d.ts +3 -3
  11. package/dist/core/analytics.d.ts.map +1 -1
  12. package/dist/core/analytics.js.map +1 -1
  13. package/dist/core/auto-tagger.d.ts.map +1 -1
  14. package/dist/core/auto-tagger.js +4 -9
  15. package/dist/core/auto-tagger.js.map +1 -1
  16. package/dist/core/briefing.d.ts +8 -0
  17. package/dist/core/briefing.d.ts.map +1 -0
  18. package/dist/core/briefing.js +91 -0
  19. package/dist/core/briefing.js.map +1 -0
  20. package/dist/core/capture-flag.d.ts +5 -0
  21. package/dist/core/capture-flag.d.ts.map +1 -0
  22. package/dist/core/capture-flag.js +10 -0
  23. package/dist/core/capture-flag.js.map +1 -0
  24. package/dist/core/config.d.ts +0 -1
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js +2 -1
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/conflict-candidates.d.ts +20 -0
  29. package/dist/core/conflict-candidates.d.ts.map +1 -0
  30. package/dist/core/conflict-candidates.js +79 -0
  31. package/dist/core/conflict-candidates.js.map +1 -0
  32. package/dist/core/conflict-judge.d.ts +47 -0
  33. package/dist/core/conflict-judge.d.ts.map +1 -0
  34. package/dist/core/conflict-judge.js +189 -0
  35. package/dist/core/conflict-judge.js.map +1 -0
  36. package/dist/core/demo.d.ts +2 -2
  37. package/dist/core/demo.d.ts.map +1 -1
  38. package/dist/core/demo.js.map +1 -1
  39. package/dist/core/digest-validator.d.ts.map +1 -1
  40. package/dist/core/digest-validator.js +3 -5
  41. package/dist/core/digest-validator.js.map +1 -1
  42. package/dist/core/doctor.d.ts +3 -0
  43. package/dist/core/doctor.d.ts.map +1 -1
  44. package/dist/core/doctor.js +207 -85
  45. package/dist/core/doctor.js.map +1 -1
  46. package/dist/core/dreamer.d.ts +20 -9
  47. package/dist/core/dreamer.d.ts.map +1 -1
  48. package/dist/core/dreamer.js +416 -58
  49. package/dist/core/dreamer.js.map +1 -1
  50. package/dist/core/embedder.d.ts +7 -5
  51. package/dist/core/embedder.d.ts.map +1 -1
  52. package/dist/core/embedder.js +38 -9
  53. package/dist/core/embedder.js.map +1 -1
  54. package/dist/core/extractor.d.ts.map +1 -1
  55. package/dist/core/extractor.js +2 -1
  56. package/dist/core/extractor.js.map +1 -1
  57. package/dist/core/failure-analyzer.d.ts.map +1 -1
  58. package/dist/core/failure-analyzer.js +7 -12
  59. package/dist/core/failure-analyzer.js.map +1 -1
  60. package/dist/core/graph.d.ts +4 -4
  61. package/dist/core/graph.d.ts.map +1 -1
  62. package/dist/core/graph.js.map +1 -1
  63. package/dist/core/install-channel.d.ts +1 -1
  64. package/dist/core/install-channel.d.ts.map +1 -1
  65. package/dist/core/install-channel.js +16 -5
  66. package/dist/core/install-channel.js.map +1 -1
  67. package/dist/core/install-hooks.d.ts +6 -0
  68. package/dist/core/install-hooks.d.ts.map +1 -1
  69. package/dist/core/install-hooks.js +0 -0
  70. package/dist/core/install-hooks.js.map +1 -1
  71. package/dist/core/json-utils.d.ts +1 -0
  72. package/dist/core/json-utils.d.ts.map +1 -1
  73. package/dist/core/json-utils.js +19 -10
  74. package/dist/core/json-utils.js.map +1 -1
  75. package/dist/core/kg-backfill.d.ts +3 -4
  76. package/dist/core/kg-backfill.d.ts.map +1 -1
  77. package/dist/core/kg-backfill.js +1 -4
  78. package/dist/core/kg-backfill.js.map +1 -1
  79. package/dist/core/lesson-engine.d.ts +1 -0
  80. package/dist/core/lesson-engine.d.ts.map +1 -1
  81. package/dist/core/lesson-engine.js +1 -0
  82. package/dist/core/lesson-engine.js.map +1 -1
  83. package/dist/core/lifecycle.d.ts +4 -4
  84. package/dist/core/lifecycle.d.ts.map +1 -1
  85. package/dist/core/lifecycle.js +15 -22
  86. package/dist/core/lifecycle.js.map +1 -1
  87. package/dist/core/llm-client.d.ts.map +1 -1
  88. package/dist/core/llm-client.js +3 -6
  89. package/dist/core/llm-client.js.map +1 -1
  90. package/dist/core/llm-telemetry.d.ts +4 -4
  91. package/dist/core/llm-telemetry.d.ts.map +1 -1
  92. package/dist/core/llm-telemetry.js +1 -1
  93. package/dist/core/llm-telemetry.js.map +1 -1
  94. package/dist/core/memory-tool.d.ts.map +1 -1
  95. package/dist/core/memory-tool.js +8 -4
  96. package/dist/core/memory-tool.js.map +1 -1
  97. package/dist/core/operations.d.ts.map +1 -1
  98. package/dist/core/operations.js +41 -17
  99. package/dist/core/operations.js.map +1 -1
  100. package/dist/core/paths.d.ts +3 -0
  101. package/dist/core/paths.d.ts.map +1 -1
  102. package/dist/core/paths.js +67 -1
  103. package/dist/core/paths.js.map +1 -1
  104. package/dist/core/patterns.d.ts +2 -2
  105. package/dist/core/patterns.d.ts.map +1 -1
  106. package/dist/core/patterns.js.map +1 -1
  107. package/dist/core/project-tags.d.ts +3 -3
  108. package/dist/core/project-tags.d.ts.map +1 -1
  109. package/dist/core/project-tags.js.map +1 -1
  110. package/dist/core/projects.d.ts +2 -2
  111. package/dist/core/projects.d.ts.map +1 -1
  112. package/dist/core/projects.js.map +1 -1
  113. package/dist/core/prompt-safety.d.ts +1 -0
  114. package/dist/core/prompt-safety.d.ts.map +1 -1
  115. package/dist/core/prompt-safety.js +7 -0
  116. package/dist/core/prompt-safety.js.map +1 -1
  117. package/dist/core/schema-export.d.ts.map +1 -1
  118. package/dist/core/schema-export.js +27 -30
  119. package/dist/core/schema-export.js.map +1 -1
  120. package/dist/core/serializer.d.ts.map +1 -1
  121. package/dist/core/serializer.js +45 -4
  122. package/dist/core/serializer.js.map +1 -1
  123. package/dist/core/setup.d.ts +29 -0
  124. package/dist/core/setup.d.ts.map +1 -0
  125. package/dist/core/setup.js +127 -0
  126. package/dist/core/setup.js.map +1 -0
  127. package/dist/core/stats.d.ts +2 -2
  128. package/dist/core/stats.d.ts.map +1 -1
  129. package/dist/core/stats.js.map +1 -1
  130. package/dist/core/task-state-store.d.ts +17 -0
  131. package/dist/core/task-state-store.d.ts.map +1 -0
  132. package/dist/core/task-state-store.js +45 -0
  133. package/dist/core/task-state-store.js.map +1 -0
  134. package/dist/core/task-state.d.ts +19 -0
  135. package/dist/core/task-state.d.ts.map +1 -0
  136. package/dist/core/task-state.js +91 -0
  137. package/dist/core/task-state.js.map +1 -0
  138. package/dist/core/time-utils.d.ts +2 -0
  139. package/dist/core/time-utils.d.ts.map +1 -0
  140. package/dist/core/time-utils.js +14 -0
  141. package/dist/core/time-utils.js.map +1 -0
  142. package/dist/core/title.d.ts +5 -0
  143. package/dist/core/title.d.ts.map +1 -0
  144. package/dist/core/title.js +14 -0
  145. package/dist/core/title.js.map +1 -0
  146. package/dist/core/transcript-extractor.d.ts +5 -6
  147. package/dist/core/transcript-extractor.d.ts.map +1 -1
  148. package/dist/core/transcript-extractor.js +4 -24
  149. package/dist/core/transcript-extractor.js.map +1 -1
  150. package/dist/core/transcript-source.d.ts.map +1 -1
  151. package/dist/core/transcript-source.js +2 -3
  152. package/dist/core/transcript-source.js.map +1 -1
  153. package/dist/core/types.d.ts +21 -7
  154. package/dist/core/types.d.ts.map +1 -1
  155. package/dist/core/types.js +2 -0
  156. package/dist/core/types.js.map +1 -1
  157. package/dist/core/work-topology.d.ts +33 -0
  158. package/dist/core/work-topology.d.ts.map +1 -0
  159. package/dist/core/work-topology.js +183 -0
  160. package/dist/core/work-topology.js.map +1 -0
  161. package/dist/db.d.ts +5 -10
  162. package/dist/db.d.ts.map +1 -1
  163. package/dist/db.js +194 -196
  164. package/dist/db.js.map +1 -1
  165. package/dist/knowledge-graph.d.ts +4 -2
  166. package/dist/knowledge-graph.d.ts.map +1 -1
  167. package/dist/knowledge-graph.js +68 -49
  168. package/dist/knowledge-graph.js.map +1 -1
  169. package/dist/mcp/server.js +2 -1
  170. package/dist/mcp/server.js.map +1 -1
  171. package/dist/skills-manifest.json +61 -36
  172. package/dist/storage/conflicts.d.ts +3 -3
  173. package/dist/storage/conflicts.d.ts.map +1 -1
  174. package/dist/storage/conflicts.js +2 -7
  175. package/dist/storage/conflicts.js.map +1 -1
  176. package/dist/storage/fts-index.d.ts +6 -4
  177. package/dist/storage/fts-index.d.ts.map +1 -1
  178. package/dist/storage/fts-index.js +16 -4
  179. package/dist/storage/fts-index.js.map +1 -1
  180. package/dist/storage/schema.d.ts +20 -0
  181. package/dist/storage/schema.d.ts.map +1 -0
  182. package/dist/storage/schema.js +274 -0
  183. package/dist/storage/schema.js.map +1 -0
  184. package/dist/storage/sqlite.d.ts +20 -0
  185. package/dist/storage/sqlite.d.ts.map +1 -0
  186. package/dist/storage/sqlite.js +64 -0
  187. package/dist/storage/sqlite.js.map +1 -0
  188. package/dist/storage/vector-index.d.ts +3 -0
  189. package/dist/storage/vector-index.d.ts.map +1 -0
  190. package/dist/storage/vector-index.js +7 -0
  191. package/dist/storage/vector-index.js.map +1 -0
  192. package/dist/transports/cli/cli.d.ts +1 -4
  193. package/dist/transports/cli/cli.d.ts.map +1 -1
  194. package/dist/transports/cli/cli.js +494 -76
  195. package/dist/transports/cli/cli.js.map +1 -1
  196. package/dist/transports/http/retired-routes.d.ts.map +1 -1
  197. package/dist/transports/http/retired-routes.js +1 -0
  198. package/dist/transports/http/retired-routes.js.map +1 -1
  199. package/dist/transports/http/server.d.ts.map +1 -1
  200. package/dist/transports/http/server.js +243 -323
  201. package/dist/transports/http/server.js.map +1 -1
  202. package/dist/transports/mcp/handlers.d.ts +48 -94
  203. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  204. package/dist/transports/mcp/handlers.js +77 -56
  205. package/dist/transports/mcp/handlers.js.map +1 -1
  206. package/dist/transports/schemas.d.ts +31 -40
  207. package/dist/transports/schemas.d.ts.map +1 -1
  208. package/dist/transports/schemas.js +31 -37
  209. package/dist/transports/schemas.js.map +1 -1
  210. package/hooks/hooks.json +0 -10
  211. package/llms-install.md +138 -0
  212. package/package.json +19 -18
  213. package/scripts/hooks/_generated/capture-flag.js +17 -0
  214. package/scripts/hooks/_generated/core-paths.js +67 -1
  215. package/scripts/hooks/_generated/fts-index.js +16 -4
  216. package/scripts/hooks/_generated/schema.js +281 -0
  217. package/scripts/hooks/_generated/sqlite.js +71 -0
  218. package/scripts/hooks/_generated/task-state.js +98 -0
  219. package/scripts/hooks/_generated/time-utils.js +21 -0
  220. package/scripts/hooks/_generated/title.js +21 -0
  221. package/scripts/hooks/_generated/work-topology.js +190 -0
  222. package/scripts/hooks/_shared.js +269 -534
  223. package/scripts/hooks/post-commit.js +55 -10
  224. package/scripts/hooks/pre-compact.js +22 -7
  225. package/scripts/hooks/pre-edit-recall.js +9 -11
  226. package/scripts/hooks/session-start.js +230 -106
  227. package/scripts/hooks/session-summary.js +176 -73
  228. package/scripts/hooks/user-prompt-intent.js +3 -2
  229. package/skills/memesh/SKILL.md +97 -77
  230. package/README.es.md +0 -470
  231. package/README.fr.md +0 -462
  232. package/README.ja.md +0 -470
  233. package/README.ko.md +0 -470
  234. package/README.pt.md +0 -462
  235. package/README.th.md +0 -463
  236. package/README.vi.md +0 -462
  237. package/README.zh-CN.md +0 -469
  238. package/dist/cli/view.d.ts +0 -3
  239. package/dist/cli/view.d.ts.map +0 -1
  240. package/dist/cli/view.js +0 -523
  241. package/dist/cli/view.js.map +0 -1
  242. package/dist/core/skill-usage-log.d.ts +0 -11
  243. package/dist/core/skill-usage-log.d.ts.map +0 -1
  244. package/dist/core/skill-usage-log.js +0 -125
  245. package/dist/core/skill-usage-log.js.map +0 -1
  246. package/dist/core/verifier.d.ts +0 -40
  247. package/dist/core/verifier.d.ts.map +0 -1
  248. package/dist/core/verifier.js +0 -206
  249. package/dist/core/verifier.js.map +0 -1
  250. package/dist/mcp/launcher.d.ts +0 -3
  251. package/dist/mcp/launcher.d.ts.map +0 -1
  252. package/dist/mcp/launcher.js +0 -37
  253. package/dist/mcp/launcher.js.map +0 -1
  254. package/scripts/hooks/pre-bash-orchestration-nudge.js +0 -155
  255. package/scripts/postinstall-rebuild.mjs +0 -41
  256. package/skills/agentic-orchestration/SKILL.md +0 -399
@@ -1,6 +1,7 @@
1
1
  import { findConflicts, trackAccess } from './storage/conflicts.js';
2
- import { insertFtsRow, removeFromFts, tokenizeQuery, renderMatchExpression, registerNfcFunction, SQL_NFC_FUNCTION, } from './storage/fts-index.js';
2
+ import { indexedObservationText, insertFtsRow, joinIndexedObservations, removeFromFts, tokenizeQuery, renderMatchExpression, registerNfcFunction, SQL_NFC_FUNCTION, } from './storage/fts-index.js';
3
3
  import { computeSignalScore } from './core/signal-scorer.js';
4
+ import { hasVectorIndex } from './storage/vector-index.js';
4
5
  const MAX_QUERY_TERMS = 32;
5
6
  function buildMatchExpression(db, query) {
6
7
  const terms = tokenizeQuery(query);
@@ -81,13 +82,45 @@ export class KnowledgeGraph {
81
82
  });
82
83
  }
83
84
  const insertResult = this.db
84
- .prepare('INSERT OR IGNORE INTO entities (name, type, metadata, namespace) VALUES (?, ?, ?, ?)')
85
- .run(name, type, JSON.stringify(incomingMetadata), opts?.namespace ?? 'personal');
85
+ .prepare('INSERT OR IGNORE INTO entities (name, type, metadata, namespace, title) VALUES (?, ?, ?, ?, ?)')
86
+ .run(name, type, JSON.stringify(incomingMetadata), opts?.namespace ?? 'personal', opts?.title ?? null);
86
87
  const isNewEntity = insertResult.changes > 0;
87
88
  const row = this.db
88
- .prepare('SELECT id, status FROM entities WHERE name = ?')
89
+ .prepare('SELECT id, status, namespace, title FROM entities WHERE name = ?')
89
90
  .get(name);
90
91
  const entityId = row.id;
92
+ const previousTitle = row.title;
93
+ if (!isNewEntity && opts?.title !== undefined && opts.title !== previousTitle) {
94
+ this.db
95
+ .prepare('UPDATE entities SET title = ? WHERE id = ?')
96
+ .run(opts.title, entityId);
97
+ const metaRow = this.db.prepare('SELECT metadata FROM entities WHERE id = ?').get(entityId);
98
+ let metadata = {};
99
+ if (metaRow?.metadata) {
100
+ try {
101
+ const parsed = JSON.parse(metaRow.metadata);
102
+ metadata = (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) ? parsed : {};
103
+ }
104
+ catch {
105
+ console.error(`MeMesh: healed corrupted metadata for entity ${entityId} during title update.`);
106
+ }
107
+ }
108
+ delete metadata.title_source;
109
+ this.db.prepare('UPDATE entities SET metadata = ? WHERE id = ?')
110
+ .run(JSON.stringify(metadata), entityId);
111
+ }
112
+ const previousNamespace = row.namespace ?? 'personal';
113
+ const requestedNamespace = opts?.namespace;
114
+ if (!isNewEntity && requestedNamespace !== undefined && requestedNamespace !== previousNamespace) {
115
+ this.db
116
+ .prepare('UPDATE entities SET namespace = ? WHERE id = ?')
117
+ .run(requestedNamespace, entityId);
118
+ this.updateEntityMetadata(name, (meta) => ({
119
+ ...meta,
120
+ previous_namespace: previousNamespace,
121
+ namespace_moved_at: new Date().toISOString(),
122
+ }));
123
+ }
91
124
  const wasArchived = !isNewEntity && row.status === 'archived';
92
125
  if (wasArchived) {
93
126
  this.db
@@ -97,7 +130,7 @@ export class KnowledgeGraph {
97
130
  const prevObs = isNewEntity || wasArchived
98
131
  ? []
99
132
  : this.db
100
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
133
+ .prepare('SELECT content FROM observations WHERE entity_id = ? ORDER BY id')
101
134
  .all(entityId);
102
135
  if (!isNewEntity && !wasArchived) {
103
136
  const prevSet = new Set(prevObs.map((o) => o.content));
@@ -122,7 +155,7 @@ export class KnowledgeGraph {
122
155
  insertObs.run(entityId, obs);
123
156
  }
124
157
  }
125
- this.rebuildFts(entityId, name, prevObsText);
158
+ this.rebuildFts(entityId, name, prevObsText, previousTitle);
126
159
  if (opts?.tags?.length) {
127
160
  const insertTag = this.db.prepare('INSERT OR IGNORE INTO tags (entity_id, tag) VALUES (?, ?)');
128
161
  for (const tag of opts.tags) {
@@ -163,7 +196,7 @@ export class KnowledgeGraph {
163
196
  }
164
197
  getEntity(name) {
165
198
  const row = this.db
166
- .prepare('SELECT id, name, type, created_at, metadata, status, access_count, last_accessed_at, confidence, namespace FROM entities WHERE name = ?')
199
+ .prepare('SELECT id, name, title, type, created_at, metadata, status, access_count, last_accessed_at, confidence, namespace FROM entities WHERE name = ?')
167
200
  .get(name);
168
201
  if (!row)
169
202
  return null;
@@ -179,6 +212,7 @@ export class KnowledgeGraph {
179
212
  return {
180
213
  id: row.id,
181
214
  name: row.name,
215
+ title: row.title,
182
216
  type: row.type,
183
217
  created_at: row.created_at,
184
218
  metadata: row.metadata ? this.parseMetadata(row.metadata) : undefined,
@@ -202,7 +236,7 @@ export class KnowledgeGraph {
202
236
  if (opts?.namespace)
203
237
  params.push(opts.namespace);
204
238
  const entityRows = this.db
205
- .prepare(`SELECT id, name, type, created_at, metadata, status, access_count, last_accessed_at, confidence, namespace
239
+ .prepare(`SELECT id, name, title, type, created_at, metadata, status, access_count, last_accessed_at, confidence, namespace
206
240
  FROM entities WHERE id IN (${placeholders}) ${statusFilter} ${namespaceFilter}`)
207
241
  .all(...params);
208
242
  const entityMap = new Map();
@@ -258,6 +292,7 @@ export class KnowledgeGraph {
258
292
  results.push({
259
293
  id: row.id,
260
294
  name: row.name,
295
+ title: row.title,
261
296
  type: row.type,
262
297
  created_at: row.created_at,
263
298
  metadata: row.metadata ? this.parseMetadata(row.metadata) : undefined,
@@ -348,9 +383,10 @@ export class KnowledgeGraph {
348
383
  registerNfcFunction(this.db);
349
384
  const termClause = likeTerms
350
385
  .map(() => `(${SQL_NFC_FUNCTION}(e.name) LIKE ? ESCAPE '\\' ` +
386
+ `OR ${SQL_NFC_FUNCTION}(COALESCE(e.title, '')) LIKE ? ESCAPE '\\' ` +
351
387
  `OR ${SQL_NFC_FUNCTION}(o.content) LIKE ? ESCAPE '\\')`)
352
388
  .join(' OR ');
353
- const archivedParams = likeTerms.flatMap((t) => [t, t]);
389
+ const archivedParams = likeTerms.flatMap((t) => [t, t, t]);
354
390
  if (opts?.tag)
355
391
  archivedParams.push(opts.tag);
356
392
  if (opts?.namespace)
@@ -433,38 +469,27 @@ export class KnowledgeGraph {
433
469
  }
434
470
  clearEntityData(name) {
435
471
  const row = this.db
436
- .prepare('SELECT id FROM entities WHERE name = ?')
472
+ .prepare('SELECT id, title FROM entities WHERE name = ?')
437
473
  .get(name);
438
474
  if (!row)
439
475
  return;
440
- const prevObs = this.db
441
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
442
- .all(row.id);
443
- const prevObsText = prevObs.length > 0
444
- ? prevObs.map((o) => o.content).join(' ')
445
- : undefined;
476
+ const prevObsText = indexedObservationText(this.db, row.id);
446
477
  this.db.prepare('DELETE FROM observations WHERE entity_id = ?').run(row.id);
447
478
  this.db.prepare('DELETE FROM tags WHERE entity_id = ?').run(row.id);
448
- this.rebuildFts(row.id, name, prevObsText);
479
+ this.rebuildFts(row.id, name, prevObsText, row.title);
449
480
  }
450
481
  archiveEntity(name) {
451
482
  const row = this.db
452
- .prepare('SELECT id, status FROM entities WHERE name = ?')
483
+ .prepare('SELECT id, status, title FROM entities WHERE name = ?')
453
484
  .get(name);
454
485
  if (!row)
455
486
  return { archived: false };
456
- const allObs = this.db
457
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
458
- .all(row.id);
459
- const obsText = allObs.map((o) => o.content).join(' ');
460
- removeFromFts(this.db, row.id, name, obsText);
461
- try {
487
+ removeFromFts(this.db, row.id, name, indexedObservationText(this.db, row.id), row.title);
488
+ if (hasVectorIndex(this.db)) {
462
489
  this.db
463
490
  .prepare('DELETE FROM entities_vec WHERE rowid = ?')
464
491
  .run(BigInt(row.id));
465
492
  }
466
- catch {
467
- }
468
493
  this.db
469
494
  .prepare("UPDATE entities SET status = 'archived' WHERE id = ?")
470
495
  .run(row.id);
@@ -472,44 +497,38 @@ export class KnowledgeGraph {
472
497
  }
473
498
  removeObservation(entityName, observationContent) {
474
499
  const row = this.db
475
- .prepare('SELECT id FROM entities WHERE name = ?')
500
+ .prepare('SELECT id, title FROM entities WHERE name = ?')
476
501
  .get(entityName);
477
502
  if (!row)
478
- return { removed: false, remainingObservations: 0 };
503
+ return { removed: false, remainingObservations: 0, entityFound: false };
479
504
  const prevObs = this.db
480
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
505
+ .prepare('SELECT content FROM observations WHERE entity_id = ? ORDER BY id')
481
506
  .all(row.id);
482
- const prevObsText = prevObs.map((o) => o.content).join(' ');
507
+ const prevObsText = joinIndexedObservations(prevObs.map((o) => o.content));
483
508
  const deleteResult = this.db
484
509
  .prepare('DELETE FROM observations WHERE entity_id = ? AND content = ?')
485
510
  .run(row.id, observationContent);
486
511
  if (deleteResult.changes === 0) {
487
- return { removed: false, remainingObservations: prevObs.length };
512
+ return { removed: false, remainingObservations: prevObs.length, entityFound: true };
488
513
  }
489
- this.rebuildFts(row.id, entityName, prevObsText);
514
+ this.rebuildFts(row.id, entityName, prevObsText, row.title);
490
515
  const remaining = this.db
491
516
  .prepare('SELECT COUNT(*) as c FROM observations WHERE entity_id = ?')
492
517
  .get(row.id);
493
- return { removed: true, remainingObservations: remaining.c };
518
+ return { removed: true, remainingObservations: remaining.c, entityFound: true };
494
519
  }
495
520
  deleteEntity(name) {
496
521
  const row = this.db
497
- .prepare('SELECT id FROM entities WHERE name = ?')
522
+ .prepare('SELECT id, title FROM entities WHERE name = ?')
498
523
  .get(name);
499
524
  if (!row)
500
525
  return { deleted: false };
501
- const allObs = this.db
502
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
503
- .all(row.id);
504
- const obsText = allObs.map((o) => o.content).join(' ');
505
- removeFromFts(this.db, row.id, name, obsText);
506
- try {
526
+ removeFromFts(this.db, row.id, name, indexedObservationText(this.db, row.id), row.title);
527
+ if (hasVectorIndex(this.db)) {
507
528
  this.db
508
529
  .prepare('DELETE FROM entities_vec WHERE rowid = ?')
509
530
  .run(BigInt(row.id));
510
531
  }
511
- catch {
512
- }
513
532
  this.db.prepare('DELETE FROM entities WHERE id = ?').run(row.id);
514
533
  return { deleted: true };
515
534
  }
@@ -524,15 +543,15 @@ export class KnowledgeGraph {
524
543
  return {};
525
544
  }
526
545
  }
527
- rebuildFts(entityId, entityName, previousObsText) {
546
+ rebuildFts(entityId, entityName, previousObsText, previousTitle) {
528
547
  if (previousObsText !== undefined) {
529
- removeFromFts(this.db, entityId, entityName, previousObsText);
548
+ removeFromFts(this.db, entityId, entityName, previousObsText, previousTitle);
530
549
  }
531
- const allObs = this.db
532
- .prepare('SELECT content FROM observations WHERE entity_id = ?')
533
- .all(entityId);
534
- const obsText = allObs.map((o) => o.content).join(' ');
535
- insertFtsRow(this.db, entityId, entityName, obsText);
550
+ const obsText = indexedObservationText(this.db, entityId);
551
+ const currentTitleRow = this.db
552
+ .prepare('SELECT title FROM entities WHERE id = ?')
553
+ .get(entityId);
554
+ insertFtsRow(this.db, entityId, entityName, obsText, currentTitleRow?.title ?? null);
536
555
  }
537
556
  }
538
557
  //# sourceMappingURL=knowledge-graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextpro
7
7
  import { fileURLToPath } from 'url';
8
8
  import { openDatabase, closeDatabase } from '../db.js';
9
9
  import { handleTool, TOOL_DEFINITIONS } from './tools.js';
10
+ import { normalizeClientHost } from '../transports/mcp/handlers.js';
10
11
  import { logCapabilities } from '../core/config.js';
11
12
  const packageJsonPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../package.json');
12
13
  const packageVersion = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')).version ?? '0.0.0';
@@ -20,7 +21,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
20
21
  }));
21
22
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
22
23
  const { name, arguments: args } = request.params;
23
- return handleTool(name, args);
24
+ return handleTool(name, args, normalizeClientHost(server.getClientVersion()?.name));
24
25
  });
25
26
  async function main() {
26
27
  openDatabase();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,oBAAoB,CACrB,CAAC;AACF,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;AAE1E,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAGF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAGH,KAAK,UAAU,IAAI;IACjB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,CAAC;QAAC,aAAa,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAmB,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEhC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,IAAI,CAAC;QAAC,aAAa,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAmB,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,oBAAoB,CACrB,CAAC;AACF,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;AAE1E,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAGF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAKJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC;AAGH,KAAK,UAAU,IAAI;IACjB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,CAAC;QAAC,aAAa,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAmB,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEhC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,IAAI,CAAC;QAAC,aAAa,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAmB,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -3,73 +3,98 @@
3
3
  "entries": [
4
4
  {
5
5
  "path": ".claude-plugin/plugin.json",
6
- "sha256": "678e8e8a8a7e10b41418bcbe059c7ae253fa3db0b63a054f3518b67bc946e355",
7
- "bytes": 442
6
+ "sha256": "485b5f993aec41ab055f7f2d7ad4a8fb115a9d165dc39fac04cdd7d5e9214837",
7
+ "bytes": 524
8
8
  },
9
9
  {
10
10
  "path": ".mcp.json",
11
- "sha256": "f24a2a2da6a8f9d388ac50fd3108b50835123edd0c77e1c7bc936a16add0c3cb",
12
- "bytes": 134
11
+ "sha256": "b3f72e0ed3ca2d34267f25f5f478d6f9e087f4058fcbf2e72a89759a3e324aad",
12
+ "bytes": 132
13
13
  },
14
14
  {
15
15
  "path": "hooks/hooks.json",
16
- "sha256": "ea54bdce8d52e14acdc3e5ddf3c7f241e6cfb45952ca720bbd4618d5bf94a241",
17
- "bytes": 1767
16
+ "sha256": "a382a07ea95a4bf593042faeabb685e520e254b70280bfd86ee1020068ee9a59",
17
+ "bytes": 1520
18
+ },
19
+ {
20
+ "path": "scripts/hooks/_generated/capture-flag.js",
21
+ "sha256": "926c85a60b4ff4ac391666dad392f16358e875a14f2dda66edf99b1d636a0a38",
22
+ "bytes": 901
18
23
  },
19
24
  {
20
25
  "path": "scripts/hooks/_generated/core-paths.js",
21
- "sha256": "3284eae4d09d5f6d37fbbf290179c753260845e5da7f2b6c87498704d74306ab",
22
- "bytes": 2688
26
+ "sha256": "f83cb1fee08b5d297d2c4cf94d491b70e5093095590891593ec1e755bb0c92d7",
27
+ "bytes": 5056
23
28
  },
24
29
  {
25
30
  "path": "scripts/hooks/_generated/fts-index.js",
26
- "sha256": "f6d0bf6f92a134fadf632e00545519f291590ffa80bde3021cef094f52cb7665",
27
- "bytes": 3478
31
+ "sha256": "989b5970d61088188a30d7f007efea783eb83b6f3f855184eb27cacf9d9f27b0",
32
+ "bytes": 4037
28
33
  },
29
34
  {
30
- "path": "scripts/hooks/_shared.js",
31
- "sha256": "8e2bc8082997e1da4eabc1c9cb9adb15bf24fad1ff00cc60a98f3bf4fbc86e70",
32
- "bytes": 46487
35
+ "path": "scripts/hooks/_generated/schema.js",
36
+ "sha256": "7af0e2791213a6a0d5807d8ae5b2b5801bcb408c86cf179ac9d73fff83489423",
37
+ "bytes": 12700
33
38
  },
34
39
  {
35
- "path": "scripts/hooks/post-commit.js",
36
- "sha256": "2c42b76e2ca44342c0be9375717813f910a2ec0a1a59548e5c3c3abab47d19fa",
37
- "bytes": 5545
40
+ "path": "scripts/hooks/_generated/sqlite.js",
41
+ "sha256": "e03ec8e4268b4176d9947513a788ba99a22fbdf9326a6b6e1f978e4a2086f6e3",
42
+ "bytes": 2838
43
+ },
44
+ {
45
+ "path": "scripts/hooks/_generated/task-state.js",
46
+ "sha256": "937bb65e07ef82333857a8bc88e37013286644ec490ec788aa250db0b59a80d4",
47
+ "bytes": 3532
48
+ },
49
+ {
50
+ "path": "scripts/hooks/_generated/time-utils.js",
51
+ "sha256": "4d7861484c12f33996207fdece4e9ccc8ded03d5243fd2771c63652af9c48736",
52
+ "bytes": 1110
53
+ },
54
+ {
55
+ "path": "scripts/hooks/_generated/title.js",
56
+ "sha256": "28b3d47924785f905cb7dc8a28660cf2451d04a78501bae1ecede06d42be5e9c",
57
+ "bytes": 1057
38
58
  },
39
59
  {
40
- "path": "scripts/hooks/pre-bash-orchestration-nudge.js",
41
- "sha256": "d8dac333d31634b91109ee12a5ff00ea14fb1c7fd12609cdab5b5d244cb6d40a",
42
- "bytes": 6458
60
+ "path": "scripts/hooks/_generated/work-topology.js",
61
+ "sha256": "6ad8bb1271a161110445a165c795bf15f047e1f5892674824e7eb6c525ed18da",
62
+ "bytes": 6706
63
+ },
64
+ {
65
+ "path": "scripts/hooks/_shared.js",
66
+ "sha256": "96ae414ea8b2f5fd56804b6846159fafcbf2dba7d382096f36f3edef86e437d7",
67
+ "bytes": 35195
68
+ },
69
+ {
70
+ "path": "scripts/hooks/post-commit.js",
71
+ "sha256": "da50568994b91984029cf077a03dc99e8441b1942f4c31fc641f5c36b43970f7",
72
+ "bytes": 8220
43
73
  },
44
74
  {
45
75
  "path": "scripts/hooks/pre-compact.js",
46
- "sha256": "0ef046aab8de40f862465bd71e4833a3906f9d42fb58f85dc07e5d93e6625ad0",
47
- "bytes": 7171
76
+ "sha256": "69828d76b9e3f739a8f838f7baf8d3aac37328a5deb9caaaa31f1b4dc719cfe5",
77
+ "bytes": 8197
48
78
  },
49
79
  {
50
80
  "path": "scripts/hooks/pre-edit-recall.js",
51
- "sha256": "4c79ccabae3ef7d388f3cdf04247c8fe4df49679824fe51b77fa4f308aa0ea5a",
52
- "bytes": 10345
81
+ "sha256": "a55355c05751ed2195af10b1402b6c731cca752be9df51d5f166b3b212a7000d",
82
+ "bytes": 10365
53
83
  },
54
84
  {
55
85
  "path": "scripts/hooks/session-start.js",
56
- "sha256": "96c185001b9ea781e86cc77e1751621008d27ddbc81c8b277ec0ade1b7deb4d7",
57
- "bytes": 44254
86
+ "sha256": "93b12eaa2e64f718b274ce7dd8b3bc4c530bb5c4ebfa7aeb84b3d77118e86e23",
87
+ "bytes": 51643
58
88
  },
59
89
  {
60
90
  "path": "scripts/hooks/session-summary.js",
61
- "sha256": "5105006b7045f24fdca1d2b7edc6c3a74c680a6c2e4fa45e7f8e263b0cc94f7a",
62
- "bytes": 39695
91
+ "sha256": "51fca53686a9e384763c9ff286d15e9a935fbe78664b5f8926a8f410ddba0e78",
92
+ "bytes": 46791
63
93
  },
64
94
  {
65
95
  "path": "scripts/hooks/user-prompt-intent.js",
66
- "sha256": "75143339c275ca3ec034d04454bd1e02281dcb892f4cb1515508a912466d699b",
67
- "bytes": 7457
68
- },
69
- {
70
- "path": "skills/agentic-orchestration/SKILL.md",
71
- "sha256": "6fde8a8d961d3c70c31e95cad529aebbaff1e668fc021d619eeaf0bdd7072a04",
72
- "bytes": 18202
96
+ "sha256": "a39c9806d403769924159da831258c85aec744799b8b71b54f0196c442a24de9",
97
+ "bytes": 7577
73
98
  },
74
99
  {
75
100
  "path": "skills/memesh-review/SKILL.md",
@@ -78,8 +103,8 @@
78
103
  },
79
104
  {
80
105
  "path": "skills/memesh/SKILL.md",
81
- "sha256": "106d26edfd0a45f63902517f3f5ba214e31271bee3028f13f4c222f750a98f24",
82
- "bytes": 7156
106
+ "sha256": "5f5df41e580f6b9ead0efcc73367a182bee54f7c787ee474df81c90074870600",
107
+ "bytes": 8958
83
108
  }
84
109
  ]
85
110
  }
@@ -1,4 +1,4 @@
1
- import type Database from 'better-sqlite3';
2
- export declare function findConflicts(db: Database.Database, entityNames: string[]): string[];
3
- export declare function trackAccess(db: Database.Database, entityIds: number[]): void;
1
+ import type { MemeshDatabase } from './sqlite.js';
2
+ export declare function findConflicts(db: MemeshDatabase, entityNames: string[]): string[];
3
+ export declare function trackAccess(db: MemeshDatabase, entityIds: number[]): void;
4
4
  //# sourceMappingURL=conflicts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../src/storage/conflicts.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqBpF;AA2BD,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAYN"}
1
+ {"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../src/storage/conflicts.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAYlD,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqBjF;AA2BD,wBAAgB,WAAW,CACzB,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAWN"}
@@ -21,12 +21,7 @@ export function trackAccess(db, entityIds) {
21
21
  if (entityIds.length === 0)
22
22
  return;
23
23
  const now = new Date().toISOString();
24
- const stmt = db.prepare('UPDATE entities SET access_count = access_count + 1, last_accessed_at = ? WHERE id = ?');
25
- const txn = db.transaction(() => {
26
- for (const id of entityIds) {
27
- stmt.run(now, id);
28
- }
29
- });
30
- txn();
24
+ const placeholders = entityIds.map(() => '?').join(',');
25
+ db.prepare(`UPDATE entities SET access_count = access_count + 1, last_accessed_at = ? WHERE id IN (${placeholders})`).run(now, ...entityIds);
31
26
  }
32
27
  //# sourceMappingURL=conflicts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../src/storage/conflicts.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,WAAqB;IACxE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;4BAME,YAAY;0BACd,YAAY;GACnC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAkD,CAAC;IAExF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,kBAAkB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA2BD,MAAM,UAAU,WAAW,CACzB,EAAqB,EACrB,SAAmB;IAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,wFAAwF,CACzF,CAAC;IACF,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,GAAG,EAAE,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../src/storage/conflicts.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,aAAa,CAAC,EAAkB,EAAE,WAAqB;IACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;4BAME,YAAY;0BACd,YAAY;GACnC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAkD,CAAC;IAExF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,kBAAkB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA2BD,MAAM,UAAU,WAAW,CACzB,EAAkB,EAClB,SAAmB;IAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAKrC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,EAAE,CAAC,OAAO,CACR,0FAA0F,YAAY,GAAG,CAC1G,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type Database from 'better-sqlite3';
1
+ import type { MemeshDatabase } from './sqlite.js';
2
2
  export declare const UNSPACED_SCRIPT_RANGES: ReadonlyArray<readonly [number, number]>;
3
3
  export declare const UNSPACED_SCRIPT_CLASS: string;
4
4
  export declare const UNSPACED_SCRIPT_GLOB_RUN3: string;
@@ -6,10 +6,12 @@ export declare function segmentUnspacedScripts(text: string): string;
6
6
  export declare function toIndexForm(text: string): string;
7
7
  export declare function tokenizeQuery(text: string): string[];
8
8
  export declare const SQL_NFC_FUNCTION = "memesh_nfc";
9
- export declare function registerNfcFunction(db: Database.Database): void;
9
+ export declare function registerNfcFunction(db: MemeshDatabase): void;
10
10
  export declare function hasSearchableTerms(text: string): boolean;
11
11
  export declare function renderMatchExpression(terms: string[]): string | null;
12
12
  export declare function isLoneUnspacedChar(term: string): boolean;
13
- export declare function removeFromFts(db: Database.Database, entityId: number, name: string, prevObsText: string): void;
14
- export declare function insertFtsRow(db: Database.Database, entityId: number, name: string, observationsText: string): void;
13
+ export declare function removeFromFts(db: MemeshDatabase, entityId: number, name: string, prevObsText: string, prevTitle?: string | null): void;
14
+ export declare function joinIndexedObservations(contents: string[]): string;
15
+ export declare function indexedObservationText(db: MemeshDatabase, entityId: number): string;
16
+ export declare function insertFtsRow(db: MemeshDatabase, entityId: number, name: string, observationsText: string, title?: string | null): void;
15
17
  //# sourceMappingURL=fts-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fts-index.d.ts","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAwC3C,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3E,CAAC;AAWF,eAAO,MAAM,qBAAqB,QAExB,CAAC;AA4BX,eAAO,MAAM,yBAAyB,QAC8C,CAAC;AA2BrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3D;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AA4BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpD;AAmBD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAa7C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAM/D;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CASpE;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,IAAI,CAiBN;AA+BD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GACvB,IAAI,CAIN"}
1
+ {"version":3,"file":"fts-index.d.ts","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAwClE,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3E,CAAC;AAWF,eAAO,MAAM,qBAAqB,QAExB,CAAC;AA4BX,eAAO,MAAM,yBAAyB,QAC8C,CAAC;AA2BrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3D;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AA4BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpD;AAmBD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAa7C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAM5D;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CASpE;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAwCD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI,CAqBN;AA8BD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAElE;AAcD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnF;AAQD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,IAAI,CAQN"}
@@ -54,9 +54,12 @@ const LONE_UNSPACED_CHAR = new RegExp(`[${UNSPACED_SCRIPT_CLASS}]`, 'u');
54
54
  export function isLoneUnspacedChar(term) {
55
55
  return [...term].length === 1 && LONE_UNSPACED_CHAR.test(term);
56
56
  }
57
- export function removeFromFts(db, entityId, name, prevObsText) {
57
+ function foldTitleIntoObservations(title, observationsText) {
58
+ return title ? `${title} ${observationsText}` : observationsText;
59
+ }
60
+ export function removeFromFts(db, entityId, name, prevObsText, prevTitle) {
58
61
  try {
59
- db.prepare("INSERT INTO entities_fts (entities_fts, rowid, name, observations) VALUES('delete', ?, ?, ?)").run(entityId, toIndexForm(name), toIndexForm(prevObsText));
62
+ db.prepare("INSERT INTO entities_fts (entities_fts, rowid, name, observations) VALUES('delete', ?, ?, ?)").run(entityId, toIndexForm(name), toIndexForm(foldTitleIntoObservations(prevTitle, prevObsText)));
60
63
  }
61
64
  catch (err) {
62
65
  if (isBenignFtsDeleteError(err))
@@ -68,7 +71,16 @@ function isBenignFtsDeleteError(err) {
68
71
  const msg = err?.message ?? '';
69
72
  return /no such rowid|values do not match|no such row\b/i.test(msg);
70
73
  }
71
- export function insertFtsRow(db, entityId, name, observationsText) {
72
- db.prepare('INSERT INTO entities_fts (rowid, name, observations) VALUES (?, ?, ?)').run(entityId, toIndexForm(name), toIndexForm(observationsText));
74
+ export function joinIndexedObservations(contents) {
75
+ return contents.join(' ');
76
+ }
77
+ export function indexedObservationText(db, entityId) {
78
+ const rows = db
79
+ .prepare('SELECT content FROM observations WHERE entity_id = ? ORDER BY id')
80
+ .all(entityId);
81
+ return joinIndexedObservations(rows.map((o) => o.content));
82
+ }
83
+ export function insertFtsRow(db, entityId, name, observationsText, title) {
84
+ db.prepare('INSERT INTO entities_fts (rowid, name, observations) VALUES (?, ?, ?)').run(entityId, toIndexForm(name), toIndexForm(foldTitleIntoObservations(title, observationsText)));
73
85
  }
74
86
  //# sourceMappingURL=fts-index.js.map