@jungjaehoon/mama-core 1.5.0 → 1.7.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 (103) hide show
  1. package/README.md +48 -10
  2. package/db/migrations/032-add-memory-provenance-columns.sql +21 -0
  3. package/db/migrations/033-create-model-runs-and-tool-traces.sql +53 -0
  4. package/db/migrations/034-add-connector-event-scope-columns.sql +14 -0
  5. package/db/migrations/035-create-twin-edges.sql +63 -0
  6. package/db/migrations/036-create-agent-situation-packets.sql +61 -0
  7. package/db/migrations/037-create-context-packets.sql +32 -0
  8. package/dist/agent-graph/alias-write.d.ts +3 -0
  9. package/dist/agent-graph/alias-write.js +231 -0
  10. package/dist/agent-graph/entity-resolve.d.ts +3 -0
  11. package/dist/agent-graph/entity-resolve.js +275 -0
  12. package/dist/agent-graph/errors.d.ts +4 -0
  13. package/dist/agent-graph/errors.js +11 -0
  14. package/dist/agent-graph/graph-query.d.ts +5 -0
  15. package/dist/agent-graph/graph-query.js +359 -0
  16. package/dist/agent-graph/index.d.ts +6 -0
  17. package/dist/agent-graph/index.js +22 -0
  18. package/dist/agent-graph/types.d.ts +162 -0
  19. package/dist/agent-graph/types.js +3 -0
  20. package/dist/agent-situation/builder.d.ts +8 -0
  21. package/dist/agent-situation/builder.js +239 -0
  22. package/dist/agent-situation/cache-key.d.ts +4 -0
  23. package/dist/agent-situation/cache-key.js +64 -0
  24. package/dist/agent-situation/index.d.ts +7 -0
  25. package/dist/agent-situation/index.js +28 -0
  26. package/dist/agent-situation/packet-store.d.ts +27 -0
  27. package/dist/agent-situation/packet-store.js +228 -0
  28. package/dist/agent-situation/ranking-policy.d.ts +18 -0
  29. package/dist/agent-situation/ranking-policy.js +75 -0
  30. package/dist/agent-situation/source-readers.d.ts +52 -0
  31. package/dist/agent-situation/source-readers.js +300 -0
  32. package/dist/agent-situation/types.d.ts +195 -0
  33. package/dist/agent-situation/types.js +3 -0
  34. package/dist/cases/search-rollup.d.ts +4 -0
  35. package/dist/cases/search-rollup.js +84 -0
  36. package/dist/cases/wiki-page-index.js +6 -2
  37. package/dist/connectors/event-index.d.ts +1 -0
  38. package/dist/connectors/event-index.js +19 -4
  39. package/dist/connectors/raw-query.d.ts +18 -0
  40. package/dist/connectors/raw-query.js +305 -0
  41. package/dist/connectors/types.d.ts +40 -0
  42. package/dist/context-compile/boundary-defaults.d.ts +12 -0
  43. package/dist/context-compile/boundary-defaults.js +105 -0
  44. package/dist/context-compile/compiler-policy.d.ts +39 -0
  45. package/dist/context-compile/compiler-policy.js +147 -0
  46. package/dist/context-compile/compiler.d.ts +18 -0
  47. package/dist/context-compile/compiler.js +401 -0
  48. package/dist/context-compile/index.d.ts +9 -0
  49. package/dist/context-compile/index.js +25 -0
  50. package/dist/context-compile/packet-store.d.ts +9 -0
  51. package/dist/context-compile/packet-store.js +255 -0
  52. package/dist/context-compile/ref.d.ts +7 -0
  53. package/dist/context-compile/ref.js +102 -0
  54. package/dist/context-compile/source-readers.d.ts +69 -0
  55. package/dist/context-compile/source-readers.js +707 -0
  56. package/dist/context-compile/types.d.ts +138 -0
  57. package/dist/context-compile/types.js +11 -0
  58. package/dist/context-compile/visibility.d.ts +21 -0
  59. package/dist/context-compile/visibility.js +200 -0
  60. package/dist/db-adapter/node-sqlite-adapter.d.ts +9 -0
  61. package/dist/db-adapter/node-sqlite-adapter.js +207 -0
  62. package/dist/db-manager.d.ts +8 -1
  63. package/dist/db-manager.js +53 -5
  64. package/dist/edges/ref-validation.d.ts +8 -0
  65. package/dist/edges/ref-validation.js +301 -0
  66. package/dist/edges/store.d.ts +10 -0
  67. package/dist/edges/store.js +343 -0
  68. package/dist/edges/types.d.ts +88 -0
  69. package/dist/edges/types.js +18 -0
  70. package/dist/embeddings.d.ts +3 -0
  71. package/dist/embeddings.js +49 -9
  72. package/dist/entities/store.d.ts +4 -1
  73. package/dist/entities/store.js +206 -78
  74. package/dist/entities/types.d.ts +5 -1
  75. package/dist/entities/types.js +1 -1
  76. package/dist/index.d.ts +18 -3
  77. package/dist/index.js +54 -4
  78. package/dist/mama-api.d.ts +32 -35
  79. package/dist/mama-api.js +173 -22
  80. package/dist/memory/api.d.ts +17 -56
  81. package/dist/memory/api.js +494 -52
  82. package/dist/memory/event-store.d.ts +3 -0
  83. package/dist/memory/event-store.js +21 -2
  84. package/dist/memory/provenance-audit.d.ts +22 -0
  85. package/dist/memory/provenance-audit.js +112 -0
  86. package/dist/memory/provenance-query.d.ts +11 -0
  87. package/dist/memory/provenance-query.js +193 -0
  88. package/dist/memory/provenance.d.ts +29 -0
  89. package/dist/memory/provenance.js +137 -0
  90. package/dist/memory/scope-backfill.d.ts +17 -0
  91. package/dist/memory/scope-backfill.js +77 -0
  92. package/dist/memory/types.d.ts +87 -14
  93. package/dist/model-runs/store.d.ts +13 -0
  94. package/dist/model-runs/store.js +457 -0
  95. package/dist/model-runs/tool-trace-store.d.ts +4 -0
  96. package/dist/model-runs/tool-trace-store.js +114 -0
  97. package/dist/model-runs/types.d.ts +69 -0
  98. package/dist/model-runs/types.js +5 -0
  99. package/dist/runtime/trusted-provenance.d.ts +3 -0
  100. package/dist/runtime/trusted-provenance.js +6 -0
  101. package/dist/search/search-quality.d.ts +36 -0
  102. package/dist/search/search-quality.js +29 -0
  103. package/package.json +11 -3
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntityMergeError = void 0;
4
+ exports.clearEntityTableColumnCache = clearEntityTableColumnCache;
4
5
  exports.parseObservationRow = parseObservationRow;
5
6
  exports.createEntityNode = createEntityNode;
6
7
  exports.getEntityNode = getEntityNode;
@@ -25,6 +26,13 @@ class EntityMergeError extends Error {
25
26
  }
26
27
  exports.EntityMergeError = EntityMergeError;
27
28
  const MAX_MERGE_CHAIN_DEPTH = 8;
29
+ const OBSERVATION_CONTEXT_KEY_COLUMNS = [
30
+ 'workspace_context_key',
31
+ 'channel_context_key',
32
+ 'thread_context_key',
33
+ 'actor_context_key',
34
+ ];
35
+ const tableColumnCache = new WeakMap();
28
36
  function now() {
29
37
  return Date.now();
30
38
  }
@@ -32,6 +40,58 @@ function normalizeSourceLocator(value) {
32
40
  // Write empty-string as the null sentinel so SQLite UNIQUE can collapse null-like locators; parseObservationRow maps it back to null on read.
33
41
  return value ?? '';
34
42
  }
43
+ function normalizeContextKey(value) {
44
+ return value ?? '';
45
+ }
46
+ function sourceLocatorForInput(input) {
47
+ return normalizeSourceLocator(input.source_locator);
48
+ }
49
+ function channelContextKey(input) {
50
+ if (input.channel_context_key !== undefined) {
51
+ return normalizeContextKey(input.channel_context_key);
52
+ }
53
+ if (input.scope_kind !== 'channel' || !input.scope_id) {
54
+ return '';
55
+ }
56
+ return input.scope_id.startsWith(`${input.source_connector}:`)
57
+ ? input.scope_id
58
+ : `${input.source_connector}:${input.scope_id}`;
59
+ }
60
+ function actorContextKey(input) {
61
+ if (input.actor_context_key !== undefined) {
62
+ return normalizeContextKey(input.actor_context_key);
63
+ }
64
+ if (input.observation_type === 'author') {
65
+ return input.surface_form;
66
+ }
67
+ return input.related_surface_forms.find((value) => value.trim().length > 0) ?? '';
68
+ }
69
+ function observationContextKeys(input) {
70
+ return {
71
+ workspace_context_key: normalizeContextKey(input.workspace_context_key ?? input.source_connector),
72
+ channel_context_key: channelContextKey(input),
73
+ thread_context_key: normalizeContextKey(input.thread_context_key),
74
+ actor_context_key: actorContextKey(input),
75
+ };
76
+ }
77
+ function tableColumnNames(adapter, tableName) {
78
+ let adapterCache = tableColumnCache.get(adapter);
79
+ if (!adapterCache) {
80
+ adapterCache = new Map();
81
+ tableColumnCache.set(adapter, adapterCache);
82
+ }
83
+ const cached = adapterCache.get(tableName);
84
+ if (cached) {
85
+ return cached;
86
+ }
87
+ const rows = adapter.prepare(`PRAGMA table_info(${tableName})`).all();
88
+ const columns = new Set(rows.map((row) => row.name));
89
+ adapterCache.set(tableName, columns);
90
+ return columns;
91
+ }
92
+ function clearEntityTableColumnCache(adapter) {
93
+ tableColumnCache.delete(adapter);
94
+ }
35
95
  function requireStringField(row, field) {
36
96
  if (typeof row[field] !== 'string' || row[field].length === 0) {
37
97
  throw new Error(`Invalid entity observation row: ${field} must be a non-empty string`);
@@ -134,6 +194,10 @@ function parseObservationRow(row) {
134
194
  source_connector: requireStringField(row, 'source_connector'),
135
195
  source_locator: sourceLocator && sourceLocator.length > 0 ? sourceLocator : null,
136
196
  source_raw_record_id: requireStringField(row, 'source_raw_record_id'),
197
+ workspace_context_key: optionalStringFieldIfPresent(row, 'workspace_context_key'),
198
+ channel_context_key: optionalStringFieldIfPresent(row, 'channel_context_key'),
199
+ thread_context_key: optionalStringFieldIfPresent(row, 'thread_context_key'),
200
+ actor_context_key: optionalStringFieldIfPresent(row, 'actor_context_key'),
137
201
  created_at: createdAt,
138
202
  };
139
203
  }
@@ -226,44 +290,152 @@ function listEntityAliases(entityId, adapter = (0, db_manager_js_1.getAdapter)()
226
290
  created_at: Number(row.created_at),
227
291
  }));
228
292
  }
229
- async function upsertEntityObservation(input) {
230
- await (0, db_manager_js_1.initDB)();
231
- const adapter = (0, db_manager_js_1.getAdapter)();
232
- const createdAt = now();
233
- const normalizedSourceLocator = normalizeSourceLocator(input.source_locator);
293
+ function observationContextColumns(columns) {
294
+ return OBSERVATION_CONTEXT_KEY_COLUMNS.filter((column) => columns.has(column));
295
+ }
296
+ function observationInsertValues(input, normalizedSourceLocator, contextColumns, contextKeys, createdAt) {
297
+ const columns = [
298
+ 'id',
299
+ 'observation_type',
300
+ 'entity_kind_hint',
301
+ 'surface_form',
302
+ 'normalized_form',
303
+ 'lang',
304
+ 'script',
305
+ 'context_summary',
306
+ 'related_surface_forms',
307
+ 'timestamp_observed',
308
+ 'scope_kind',
309
+ 'scope_id',
310
+ 'extractor_version',
311
+ 'embedding_model_version',
312
+ 'source_connector',
313
+ 'source_locator',
314
+ 'source_raw_record_id',
315
+ ...contextColumns,
316
+ 'created_at',
317
+ ];
318
+ const values = [
319
+ input.id,
320
+ input.observation_type,
321
+ input.entity_kind_hint,
322
+ input.surface_form,
323
+ input.normalized_form,
324
+ input.lang,
325
+ input.script,
326
+ input.context_summary,
327
+ JSON.stringify(input.related_surface_forms),
328
+ input.timestamp_observed,
329
+ input.scope_kind,
330
+ input.scope_id,
331
+ input.extractor_version,
332
+ input.embedding_model_version,
333
+ input.source_connector,
334
+ normalizedSourceLocator,
335
+ input.source_raw_record_id,
336
+ ...contextColumns.map((column) => contextKeys[column]),
337
+ createdAt,
338
+ ];
339
+ return { columns, values };
340
+ }
341
+ function findExistingObservation(adapter, input, normalizedSourceLocator, contextColumns, contextKeys) {
342
+ const conditions = [
343
+ 'source_connector = ?',
344
+ 'source_locator = ?',
345
+ 'source_raw_record_id = ?',
346
+ 'observation_type = ?',
347
+ ...contextColumns.map((column) => `COALESCE(${column}, '') = ?`),
348
+ ];
349
+ const params = [
350
+ input.source_connector,
351
+ normalizedSourceLocator,
352
+ input.source_raw_record_id,
353
+ input.observation_type,
354
+ ...contextColumns.map((column) => contextKeys[column]),
355
+ ];
356
+ return adapter
357
+ .prepare(`
358
+ SELECT id FROM entity_observations
359
+ WHERE ${conditions.join(' AND ')}
360
+ ORDER BY created_at ASC, id ASC
361
+ LIMIT 1
362
+ `)
363
+ .get(...params);
364
+ }
365
+ function insertObservation(adapter, input, normalizedSourceLocator, contextColumns, contextKeys, createdAt) {
366
+ const insert = observationInsertValues(input, normalizedSourceLocator, contextColumns, contextKeys, createdAt);
367
+ const placeholders = insert.columns.map(() => '?').join(', ');
234
368
  adapter
235
369
  .prepare(`
236
- INSERT INTO entity_observations (
237
- id, observation_type, entity_kind_hint, surface_form, normalized_form, lang, script,
238
- context_summary, related_surface_forms, timestamp_observed, scope_kind, scope_id,
239
- extractor_version, embedding_model_version, source_connector, source_locator,
240
- source_raw_record_id, created_at
241
- )
242
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
243
- ON CONFLICT(source_connector, source_locator, source_raw_record_id, observation_type)
244
- DO UPDATE SET
245
- entity_kind_hint = excluded.entity_kind_hint,
246
- surface_form = excluded.surface_form,
247
- normalized_form = excluded.normalized_form,
248
- lang = excluded.lang,
249
- script = excluded.script,
250
- context_summary = excluded.context_summary,
251
- related_surface_forms = excluded.related_surface_forms,
252
- timestamp_observed = excluded.timestamp_observed,
253
- scope_kind = excluded.scope_kind,
254
- scope_id = excluded.scope_id,
255
- extractor_version = excluded.extractor_version,
256
- embedding_model_version = excluded.embedding_model_version,
257
- source_locator = excluded.source_locator,
258
- created_at = entity_observations.created_at
370
+ INSERT INTO entity_observations (${insert.columns.join(', ')})
371
+ VALUES (${placeholders})
259
372
  `)
260
- .run(input.id, input.observation_type, input.entity_kind_hint, input.surface_form, input.normalized_form, input.lang, input.script, input.context_summary, JSON.stringify(input.related_surface_forms), input.timestamp_observed, input.scope_kind, input.scope_id, input.extractor_version, input.embedding_model_version, input.source_connector, normalizedSourceLocator, input.source_raw_record_id, createdAt);
261
- const saved = adapter
373
+ .run(...insert.values);
374
+ }
375
+ function updateObservation(adapter, id, input, normalizedSourceLocator, contextColumns, contextKeys) {
376
+ const assignments = [
377
+ 'entity_kind_hint = ?',
378
+ 'surface_form = ?',
379
+ 'normalized_form = ?',
380
+ 'lang = ?',
381
+ 'script = ?',
382
+ 'context_summary = ?',
383
+ 'related_surface_forms = ?',
384
+ 'timestamp_observed = ?',
385
+ 'scope_kind = ?',
386
+ 'scope_id = ?',
387
+ 'extractor_version = ?',
388
+ 'embedding_model_version = ?',
389
+ 'source_locator = ?',
390
+ ...contextColumns.map((column) => `${column} = ?`),
391
+ ];
392
+ const values = [
393
+ input.entity_kind_hint,
394
+ input.surface_form,
395
+ input.normalized_form,
396
+ input.lang,
397
+ input.script,
398
+ input.context_summary,
399
+ JSON.stringify(input.related_surface_forms),
400
+ input.timestamp_observed,
401
+ input.scope_kind,
402
+ input.scope_id,
403
+ input.extractor_version,
404
+ input.embedding_model_version,
405
+ normalizedSourceLocator,
406
+ ...contextColumns.map((column) => contextKeys[column]),
407
+ id,
408
+ ];
409
+ adapter
262
410
  .prepare(`
263
- SELECT * FROM entity_observations
264
- WHERE source_connector = ? AND source_locator = ? AND source_raw_record_id = ? AND observation_type = ?
411
+ UPDATE entity_observations
412
+ SET ${assignments.join(', ')}
413
+ WHERE id = ?
265
414
  `)
266
- .get(input.source_connector, normalizedSourceLocator, input.source_raw_record_id, input.observation_type);
415
+ .run(...values);
416
+ }
417
+ function saveObservation(adapter, input) {
418
+ const columns = tableColumnNames(adapter, 'entity_observations');
419
+ const contextColumns = observationContextColumns(columns);
420
+ const contextKeys = observationContextKeys(input);
421
+ const normalizedSourceLocator = sourceLocatorForInput(input);
422
+ const existing = findExistingObservation(adapter, input, normalizedSourceLocator, contextColumns, contextKeys);
423
+ if (existing) {
424
+ const id = requireStringField(existing, 'id');
425
+ updateObservation(adapter, id, input, normalizedSourceLocator, contextColumns, contextKeys);
426
+ return { id, created: false };
427
+ }
428
+ insertObservation(adapter, input, normalizedSourceLocator, contextColumns, contextKeys, now());
429
+ return { id: input.id, created: true };
430
+ }
431
+ async function upsertEntityObservation(input) {
432
+ await (0, db_manager_js_1.initDB)();
433
+ const adapter = (0, db_manager_js_1.getAdapter)();
434
+ const result = saveObservation(adapter, input);
435
+ const saved = adapter.prepare('SELECT * FROM entity_observations WHERE id = ?').get(result.id);
436
+ if (!saved) {
437
+ throw new Error(`Failed to load saved entity observation ${result.id}`);
438
+ }
267
439
  return parseObservationRow(saved);
268
440
  }
269
441
  async function upsertEntityObservations(inputs) {
@@ -271,51 +443,7 @@ async function upsertEntityObservations(inputs) {
271
443
  const adapter = (0, db_manager_js_1.getAdapter)();
272
444
  const observations = [];
273
445
  const upsertOne = (input) => {
274
- const normalizedSourceLocator = normalizeSourceLocator(input.source_locator);
275
- const existing = adapter
276
- .prepare(`
277
- SELECT id FROM entity_observations
278
- WHERE source_connector = ? AND source_locator = ? AND source_raw_record_id = ? AND observation_type = ?
279
- `)
280
- .get(input.source_connector, normalizedSourceLocator, input.source_raw_record_id, input.observation_type);
281
- const createdAt = now();
282
- adapter
283
- .prepare(`
284
- INSERT INTO entity_observations (
285
- id, observation_type, entity_kind_hint, surface_form, normalized_form, lang, script,
286
- context_summary, related_surface_forms, timestamp_observed, scope_kind, scope_id,
287
- extractor_version, embedding_model_version, source_connector, source_locator,
288
- source_raw_record_id, created_at
289
- )
290
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
291
- ON CONFLICT(source_connector, source_locator, source_raw_record_id, observation_type)
292
- DO UPDATE SET
293
- entity_kind_hint = excluded.entity_kind_hint,
294
- surface_form = excluded.surface_form,
295
- normalized_form = excluded.normalized_form,
296
- lang = excluded.lang,
297
- script = excluded.script,
298
- context_summary = excluded.context_summary,
299
- related_surface_forms = excluded.related_surface_forms,
300
- timestamp_observed = excluded.timestamp_observed,
301
- scope_kind = excluded.scope_kind,
302
- scope_id = excluded.scope_id,
303
- extractor_version = excluded.extractor_version,
304
- embedding_model_version = excluded.embedding_model_version,
305
- source_locator = excluded.source_locator,
306
- created_at = entity_observations.created_at
307
- `)
308
- .run(input.id, input.observation_type, input.entity_kind_hint, input.surface_form, input.normalized_form, input.lang, input.script, input.context_summary, JSON.stringify(input.related_surface_forms), input.timestamp_observed, input.scope_kind, input.scope_id, input.extractor_version, input.embedding_model_version, input.source_connector, normalizedSourceLocator, input.source_raw_record_id, createdAt);
309
- const saved = adapter
310
- .prepare(`
311
- SELECT * FROM entity_observations
312
- WHERE source_connector = ? AND source_locator = ? AND source_raw_record_id = ? AND observation_type = ?
313
- `)
314
- .get(input.source_connector, normalizedSourceLocator, input.source_raw_record_id, input.observation_type);
315
- observations.push({
316
- id: requireStringField(saved, 'id'),
317
- created: !existing,
318
- });
446
+ observations.push(saveObservation(adapter, input));
319
447
  };
320
448
  if ('transaction' in adapter && typeof adapter.transaction === 'function') {
321
449
  const txResult = adapter.transaction(() => {
@@ -12,7 +12,7 @@ export declare const ENTITY_NODE_STATUSES: readonly ["active", "merged", "archiv
12
12
  export type EntityNodeStatus = (typeof ENTITY_NODE_STATUSES)[number];
13
13
  export declare const ENTITY_ALIAS_STATUSES: readonly ["active", "suppressed"];
14
14
  export type EntityAliasStatus = (typeof ENTITY_ALIAS_STATUSES)[number];
15
- export declare const ENTITY_OBSERVATION_TYPES: readonly ["generic", "author", "channel"];
15
+ export declare const ENTITY_OBSERVATION_TYPES: readonly ["generic", "author", "channel", "thread"];
16
16
  export type EntityObservationType = (typeof ENTITY_OBSERVATION_TYPES)[number];
17
17
  export declare const ENTITY_CANDIDATE_KINDS: readonly ["alias_to_entity", "entity_to_entity", "cluster"];
18
18
  export type EntityCandidateKind = (typeof ENTITY_CANDIDATE_KINDS)[number];
@@ -71,6 +71,10 @@ export interface EntityObservation {
71
71
  source_connector: string;
72
72
  source_locator: string | null;
73
73
  source_raw_record_id: string;
74
+ workspace_context_key?: string | null;
75
+ channel_context_key?: string | null;
76
+ thread_context_key?: string | null;
77
+ actor_context_key?: string | null;
74
78
  created_at: number;
75
79
  }
76
80
  export interface EntityResolutionCandidate {
@@ -14,7 +14,7 @@ exports.ENTITY_MERGE_ACTION_TYPES = ['merge', 'reject', 'defer', 'split'];
14
14
  exports.ENTITY_SCOPE_KINDS = ['project', 'channel', 'user', 'global'];
15
15
  exports.ENTITY_NODE_STATUSES = ['active', 'merged', 'archived'];
16
16
  exports.ENTITY_ALIAS_STATUSES = ['active', 'suppressed'];
17
- exports.ENTITY_OBSERVATION_TYPES = ['generic', 'author', 'channel'];
17
+ exports.ENTITY_OBSERVATION_TYPES = ['generic', 'author', 'channel', 'thread'];
18
18
  exports.ENTITY_CANDIDATE_KINDS = ['alias_to_entity', 'entity_to_entity', 'cluster'];
19
19
  exports.ENTITY_ACTOR_TYPES = ['system', 'user', 'agent'];
20
20
  exports.ENTITY_INGEST_RUN_STATUSES = ['running', 'complete', 'failed'];
package/dist/index.d.ts CHANGED
@@ -15,10 +15,23 @@ export { createAdapter, DatabaseAdapter, SQLiteAdapter, type AdapterConfig, type
15
15
  export { getSessionDecisions, incrementUsageSuccess, incrementUsageFailure, getDecisionById, traverseDecisionChain, DB_PATH, DB_DIR, LEGACY_DB_PATH, DEFAULT_DB_PATH, } from './memory-store.js';
16
16
  import mama from './mama-api.js';
17
17
  export { mama };
18
- export { MEMORY_SCOPE_KINDS, MEMORY_KINDS, MEMORY_STATUSES, MEMORY_EDGE_TYPES, createEmptyRecallBundle, type MemoryScopeKind, type MemoryKind, type MemoryStatus, type MemoryEdgeType, type MemoryScopeRef, type MemoryRecord, type MemorySearchResultHit, type MemoryEdge, type ProfileSnapshot, type RecallBundle, type ConversationMessage, type IngestConversationInput, type ExtractedMemoryUnit, type IngestConversationResult, } from './memory/types.js';
19
- export { saveMemory, recallMemory, buildProfile, ingestMemory, evolveMemory, buildMemoryBootstrap, createAuditAck, recordMemoryAudit, ingestConversation, setExtractionFn, upsertChannelSummary, getChannelSummary, } from './memory/api.js';
18
+ export { MEMORY_SCOPE_KINDS, MEMORY_KINDS, MEMORY_STATUSES, MEMORY_EDGE_TYPES, createEmptyRecallBundle, type MemoryScopeKind, type MemoryKind, type MemoryStatus, type MemoryEdgeType, type MemoryScopeRef, type MemorySourceRef, type MemoryRecord, type MemoryWriteProvenance, type MemoryProvenanceRecord, type PublicSaveMemoryInput, type PublicIngestMemoryInput, type PublicIngestConversationInput, type MemorySearchResultHit, type MemoryEdge, type ProfileSnapshot, type RecallBundle, type ConversationMessage, type IngestConversationInput, type ExtractedMemoryUnit, type IngestConversationResult, } from './memory/types.js';
19
+ export { saveMemory, saveMemoryWithTrustedProvenance, recallMemory, buildProfile, ingestMemory, ingestWithTrustedProvenance, evolveMemory, buildMemoryBootstrap, createAuditAck, recordMemoryAudit, ingestConversation, ingestConversationWithTrustedProvenance, setExtractionFn, upsertChannelSummary, getChannelSummary, } from './memory/api.js';
20
20
  export { buildExtractionPrompt, parseExtractionResponse } from './memory/extraction-prompt.js';
21
- export { appendMemoryEvent, listRecentMemoryEvents } from './memory/event-store.js';
21
+ export { appendMemoryEvent, insertMemoryEventInTransaction, listMemoryEventsForMemory, listRecentMemoryEvents, } from './memory/event-store.js';
22
+ export { createTrustedProvenanceCapability, assertTrustedProvenanceCapability, type TrustedProvenanceCapability, type TrustedMemoryWriteOptions, } from './memory/provenance.js';
23
+ export { getMemoryProvenance, listMemoriesByEnvelopeHash, listMemoriesByGatewayCallId, listMemoriesByModelRunId, } from './memory/provenance-query.js';
24
+ export { backfillLegacyMemoryProvenance, backfillConnectorEventScopeMetadata, type BackfillResult, type ConnectorEventScopeBackfillInput, } from './memory/scope-backfill.js';
25
+ export { getMemoryProvenanceAudit, listMemoryProvenanceAudit, type MemoryProvenanceAuditRecord, type MemoryProvenanceAuditListOptions, } from './memory/provenance-audit.js';
26
+ export { MODEL_RUN_STATUSES, type ModelRunStatus, type BeginModelRunInput, type ModelRunRecord, type AppendToolTraceInput, type ToolTraceRecord, } from './model-runs/types.js';
27
+ export { beginModelRun, beginModelRunInAdapter, commitModelRun, commitModelRunInAdapter, failModelRun, failModelRunInAdapter, getModelRun, getModelRunInAdapter, } from './model-runs/store.js';
28
+ export { appendToolTrace, listToolTracesForRun } from './model-runs/tool-trace-store.js';
29
+ export { TWIN_EDGE_SOURCES, TWIN_EDGE_TYPES, TWIN_REF_KINDS, type InsertTwinEdgeInput, type ListVisibleTwinEdgesOptions, type TwinEdgeRecord, type TwinEdgeSource, type TwinEdgeType, type TwinRef, type TwinRefKind, type TwinScopeRef, } from './edges/types.js';
30
+ export { getTwinEdge, insertTwinEdge, listTwinEdgesForRefs, mapTwinEdgeRow, } from './edges/store.js';
31
+ export { assertTwinRefsVisibleToScopes, listVisibleTwinEdgesForRefs, } from './edges/ref-validation.js';
32
+ export * from './context-compile/index.js';
33
+ export * from './agent-situation/index.js';
34
+ export * from './agent-graph/index.js';
22
35
  export * from './entities/types.js';
23
36
  export * from './entities/errors.js';
24
37
  export * from './entities/store.js';
@@ -72,10 +85,12 @@ export * from './cases/composition-overrides.js';
72
85
  export * from './cases/freshness.js';
73
86
  export * from './cases/membership-explain.js';
74
87
  export * from './connectors/event-index.js';
88
+ export * from './connectors/raw-query.js';
75
89
  export * from './connectors/types.js';
76
90
  export * from './search/question-type.js';
77
91
  export * from './search/feedback-store.js';
78
92
  export * from './search/ranker-features.js';
79
93
  export * from './search/ranker-trainer.js';
80
94
  export * from './search/ranker-rescore.js';
95
+ export * from './search/search-quality.js';
81
96
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -26,10 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.recallMemory = exports.saveMemory = exports.createEmptyRecallBundle = exports.MEMORY_EDGE_TYPES = exports.MEMORY_STATUSES = exports.MEMORY_KINDS = exports.MEMORY_SCOPE_KINDS = exports.mama = exports.DEFAULT_DB_PATH = exports.LEGACY_DB_PATH = exports.DB_DIR = exports.DB_PATH = exports.traverseDecisionChain = exports.getDecisionById = exports.incrementUsageFailure = exports.incrementUsageSuccess = exports.getSessionDecisions = exports.SQLiteAdapter = exports.DatabaseAdapter = exports.createAdapter = exports.reindexEmbeddings = exports.fts5Search = exports.getDbPath = exports.getPreparedStmt = exports.updateDecisionOutcome = exports.querySemanticEdges = exports.queryDecisionGraph = exports.insertDecisionWithEmbedding = exports.queryVectorSearch = exports.vectorSearch = exports.insertEmbedding = exports.closeDB = exports.getAdapter = exports.getDB = exports.initDB = exports.TIMEOUT_MS = exports.HOST = exports.DEFAULT_PORT = exports.getServerPort = exports.isServerRunning = exports.getServerStatus = exports.getEmbeddingFromServer = exports.EmbeddingCache = exports.MODEL_NAME = exports.EMBEDDING_DIM = exports.embeddingCache = exports.cosineSimilarity = exports.generateBatchEmbeddings = exports.generateEnhancedEmbedding = exports.generateEmbedding = void 0;
30
- exports.logComplete = exports.logProgress = exports.getTierBanner = exports.getTierDescription = exports.checkDatabase = exports.checkEmbeddings = exports.checkSQLite = exports.checkNodeVersion = exports.validateTier = exports.VALID_EDGE_TYPES = exports.updateConfidence = exports.getSupersededChainDepth = exports.createEdgesFromReasoning = exports.parseReasoningForRelationships = exports.detectRefinement = exports.calculateCombinedConfidence = exports.markSuperseded = exports.createSupersedesEdge = exports.createEdge = exports.getPreviousDecision = exports.generateDecisionId = exports.learnDecision = exports.testRelevanceScoring = exports.formatTopNContext = exports.selectTopDecisions = exports.calculateRelevance = exports.DEFAULT_CONFIG = exports.getConfigPath = exports.updateConfig = exports.getCacheDir = exports.getEmbeddingDim = exports.getModelName = exports.loadConfig = exports.CanonicalizeError = exports.targetRefHash = exports.canonicalizeJSON = exports.listRecentMemoryEvents = exports.appendMemoryEvent = exports.parseExtractionResponse = exports.buildExtractionPrompt = exports.getChannelSummary = exports.upsertChannelSummary = exports.setExtractionFn = exports.ingestConversation = exports.recordMemoryAudit = exports.createAuditAck = exports.buildMemoryBootstrap = exports.evolveMemory = exports.ingestMemory = exports.buildProfile = void 0;
31
- exports.analyzeIntent = exports.injectDecisionContext = exports.RECENT_WINDOW_MS = exports.PARTIAL_INDICATORS = exports.SUCCESS_INDICATORS = exports.FAILURE_INDICATORS = exports.onUserPromptSubmit = exports.markOutcome = exports.getEvidenceImpact = exports.calculateDurationDays = exports.getRecentDecision = exports.extractFailureReason = exports.matchesPartialIndicators = exports.matchesSuccessIndicators = exports.matchesFailureIndicators = exports.analyzeOutcome = exports.extractCodeExample = exports.extractQuickAnswer = exports.estimateTokens = exports.ensureTokenBudget = exports.formatTrustContext = exports.formatInstantAnswer = exports.formatTeaser = exports.formatList = exports.formatRecall = exports.formatLegacyContext = exports.formatContext = exports.isMAMAError = exports.wrapError = exports.ErrorCodes = exports.TimeoutError = exports.RateLimitError = exports.LinkError = exports.ConfigurationError = exports.EmbeddingError = exports.DatabaseError = exports.ValidationError = exports.NotFoundError = exports.MAMAError = exports.formatTimeAgo = exports.DebugLogger = exports.error = exports.warn = exports.info = exports.debug = exports.logSearching = exports.logLoading = exports.logInfo = exports.logError = exports.logFailed = void 0;
32
- exports.notifyInsight = exports.FALLBACK_MODEL = exports.DEFAULT_MODEL = exports.listModels = exports.isAvailable = exports.analyzeQueryIntent = exports.analyzeDecision = exports.generate = exports.extractTopicKeywords = void 0;
29
+ exports.saveMemoryWithTrustedProvenance = exports.saveMemory = exports.createEmptyRecallBundle = exports.MEMORY_EDGE_TYPES = exports.MEMORY_STATUSES = exports.MEMORY_KINDS = exports.MEMORY_SCOPE_KINDS = exports.mama = exports.DEFAULT_DB_PATH = exports.LEGACY_DB_PATH = exports.DB_DIR = exports.DB_PATH = exports.traverseDecisionChain = exports.getDecisionById = exports.incrementUsageFailure = exports.incrementUsageSuccess = exports.getSessionDecisions = exports.SQLiteAdapter = exports.DatabaseAdapter = exports.createAdapter = exports.reindexEmbeddings = exports.fts5Search = exports.getDbPath = exports.getPreparedStmt = exports.updateDecisionOutcome = exports.querySemanticEdges = exports.queryDecisionGraph = exports.insertDecisionWithEmbedding = exports.queryVectorSearch = exports.vectorSearch = exports.insertEmbedding = exports.closeDB = exports.getAdapter = exports.getDB = exports.initDB = exports.TIMEOUT_MS = exports.HOST = exports.DEFAULT_PORT = exports.getServerPort = exports.isServerRunning = exports.getServerStatus = exports.getEmbeddingFromServer = exports.EmbeddingCache = exports.MODEL_NAME = exports.EMBEDDING_DIM = exports.embeddingCache = exports.cosineSimilarity = exports.generateBatchEmbeddings = exports.generateEnhancedEmbedding = exports.generateEmbedding = void 0;
30
+ exports.canonicalizeJSON = exports.listVisibleTwinEdgesForRefs = exports.assertTwinRefsVisibleToScopes = exports.mapTwinEdgeRow = exports.listTwinEdgesForRefs = exports.insertTwinEdge = exports.getTwinEdge = exports.TWIN_REF_KINDS = exports.TWIN_EDGE_TYPES = exports.TWIN_EDGE_SOURCES = exports.listToolTracesForRun = exports.appendToolTrace = exports.getModelRunInAdapter = exports.getModelRun = exports.failModelRunInAdapter = exports.failModelRun = exports.commitModelRunInAdapter = exports.commitModelRun = exports.beginModelRunInAdapter = exports.beginModelRun = exports.MODEL_RUN_STATUSES = exports.listMemoryProvenanceAudit = exports.getMemoryProvenanceAudit = exports.backfillConnectorEventScopeMetadata = exports.backfillLegacyMemoryProvenance = exports.listMemoriesByModelRunId = exports.listMemoriesByGatewayCallId = exports.listMemoriesByEnvelopeHash = exports.getMemoryProvenance = exports.assertTrustedProvenanceCapability = exports.createTrustedProvenanceCapability = exports.listRecentMemoryEvents = exports.listMemoryEventsForMemory = exports.insertMemoryEventInTransaction = exports.appendMemoryEvent = exports.parseExtractionResponse = exports.buildExtractionPrompt = exports.getChannelSummary = exports.upsertChannelSummary = exports.setExtractionFn = exports.ingestConversationWithTrustedProvenance = exports.ingestConversation = exports.recordMemoryAudit = exports.createAuditAck = exports.buildMemoryBootstrap = exports.evolveMemory = exports.ingestWithTrustedProvenance = exports.ingestMemory = exports.buildProfile = exports.recallMemory = void 0;
31
+ exports.DatabaseError = exports.ValidationError = exports.NotFoundError = exports.MAMAError = exports.formatTimeAgo = exports.DebugLogger = exports.error = exports.warn = exports.info = exports.debug = exports.logSearching = exports.logLoading = exports.logInfo = exports.logError = exports.logFailed = exports.logComplete = exports.logProgress = exports.getTierBanner = exports.getTierDescription = exports.checkDatabase = exports.checkEmbeddings = exports.checkSQLite = exports.checkNodeVersion = exports.validateTier = exports.VALID_EDGE_TYPES = exports.updateConfidence = exports.getSupersededChainDepth = exports.createEdgesFromReasoning = exports.parseReasoningForRelationships = exports.detectRefinement = exports.calculateCombinedConfidence = exports.markSuperseded = exports.createSupersedesEdge = exports.createEdge = exports.getPreviousDecision = exports.generateDecisionId = exports.learnDecision = exports.testRelevanceScoring = exports.formatTopNContext = exports.selectTopDecisions = exports.calculateRelevance = exports.DEFAULT_CONFIG = exports.getConfigPath = exports.updateConfig = exports.getCacheDir = exports.getEmbeddingDim = exports.getModelName = exports.loadConfig = exports.CanonicalizeError = exports.targetRefHash = void 0;
32
+ exports.notifyInsight = exports.FALLBACK_MODEL = exports.DEFAULT_MODEL = exports.listModels = exports.isAvailable = exports.analyzeQueryIntent = exports.analyzeDecision = exports.generate = exports.extractTopicKeywords = exports.analyzeIntent = exports.injectDecisionContext = exports.RECENT_WINDOW_MS = exports.PARTIAL_INDICATORS = exports.SUCCESS_INDICATORS = exports.FAILURE_INDICATORS = exports.onUserPromptSubmit = exports.markOutcome = exports.getEvidenceImpact = exports.calculateDurationDays = exports.getRecentDecision = exports.extractFailureReason = exports.matchesPartialIndicators = exports.matchesSuccessIndicators = exports.matchesFailureIndicators = exports.analyzeOutcome = exports.extractCodeExample = exports.extractQuickAnswer = exports.estimateTokens = exports.ensureTokenBudget = exports.formatTrustContext = exports.formatInstantAnswer = exports.formatTeaser = exports.formatList = exports.formatRecall = exports.formatLegacyContext = exports.formatContext = exports.isMAMAError = exports.wrapError = exports.ErrorCodes = exports.TimeoutError = exports.RateLimitError = exports.LinkError = exports.ConfigurationError = exports.EmbeddingError = void 0;
33
33
  var embeddings_js_1 = require("./embeddings.js");
34
34
  Object.defineProperty(exports, "generateEmbedding", { enumerable: true, get: function () { return embeddings_js_1.generateEmbedding; } });
35
35
  Object.defineProperty(exports, "generateEnhancedEmbedding", { enumerable: true, get: function () { return embeddings_js_1.generateEnhancedEmbedding; } });
@@ -88,14 +88,17 @@ Object.defineProperty(exports, "MEMORY_EDGE_TYPES", { enumerable: true, get: fun
88
88
  Object.defineProperty(exports, "createEmptyRecallBundle", { enumerable: true, get: function () { return types_js_1.createEmptyRecallBundle; } });
89
89
  var api_js_1 = require("./memory/api.js");
90
90
  Object.defineProperty(exports, "saveMemory", { enumerable: true, get: function () { return api_js_1.saveMemory; } });
91
+ Object.defineProperty(exports, "saveMemoryWithTrustedProvenance", { enumerable: true, get: function () { return api_js_1.saveMemoryWithTrustedProvenance; } });
91
92
  Object.defineProperty(exports, "recallMemory", { enumerable: true, get: function () { return api_js_1.recallMemory; } });
92
93
  Object.defineProperty(exports, "buildProfile", { enumerable: true, get: function () { return api_js_1.buildProfile; } });
93
94
  Object.defineProperty(exports, "ingestMemory", { enumerable: true, get: function () { return api_js_1.ingestMemory; } });
95
+ Object.defineProperty(exports, "ingestWithTrustedProvenance", { enumerable: true, get: function () { return api_js_1.ingestWithTrustedProvenance; } });
94
96
  Object.defineProperty(exports, "evolveMemory", { enumerable: true, get: function () { return api_js_1.evolveMemory; } });
95
97
  Object.defineProperty(exports, "buildMemoryBootstrap", { enumerable: true, get: function () { return api_js_1.buildMemoryBootstrap; } });
96
98
  Object.defineProperty(exports, "createAuditAck", { enumerable: true, get: function () { return api_js_1.createAuditAck; } });
97
99
  Object.defineProperty(exports, "recordMemoryAudit", { enumerable: true, get: function () { return api_js_1.recordMemoryAudit; } });
98
100
  Object.defineProperty(exports, "ingestConversation", { enumerable: true, get: function () { return api_js_1.ingestConversation; } });
101
+ Object.defineProperty(exports, "ingestConversationWithTrustedProvenance", { enumerable: true, get: function () { return api_js_1.ingestConversationWithTrustedProvenance; } });
99
102
  Object.defineProperty(exports, "setExtractionFn", { enumerable: true, get: function () { return api_js_1.setExtractionFn; } });
100
103
  Object.defineProperty(exports, "upsertChannelSummary", { enumerable: true, get: function () { return api_js_1.upsertChannelSummary; } });
101
104
  Object.defineProperty(exports, "getChannelSummary", { enumerable: true, get: function () { return api_js_1.getChannelSummary; } });
@@ -104,7 +107,52 @@ Object.defineProperty(exports, "buildExtractionPrompt", { enumerable: true, get:
104
107
  Object.defineProperty(exports, "parseExtractionResponse", { enumerable: true, get: function () { return extraction_prompt_js_1.parseExtractionResponse; } });
105
108
  var event_store_js_1 = require("./memory/event-store.js");
106
109
  Object.defineProperty(exports, "appendMemoryEvent", { enumerable: true, get: function () { return event_store_js_1.appendMemoryEvent; } });
110
+ Object.defineProperty(exports, "insertMemoryEventInTransaction", { enumerable: true, get: function () { return event_store_js_1.insertMemoryEventInTransaction; } });
111
+ Object.defineProperty(exports, "listMemoryEventsForMemory", { enumerable: true, get: function () { return event_store_js_1.listMemoryEventsForMemory; } });
107
112
  Object.defineProperty(exports, "listRecentMemoryEvents", { enumerable: true, get: function () { return event_store_js_1.listRecentMemoryEvents; } });
113
+ var provenance_js_1 = require("./memory/provenance.js");
114
+ Object.defineProperty(exports, "createTrustedProvenanceCapability", { enumerable: true, get: function () { return provenance_js_1.createTrustedProvenanceCapability; } });
115
+ Object.defineProperty(exports, "assertTrustedProvenanceCapability", { enumerable: true, get: function () { return provenance_js_1.assertTrustedProvenanceCapability; } });
116
+ var provenance_query_js_1 = require("./memory/provenance-query.js");
117
+ Object.defineProperty(exports, "getMemoryProvenance", { enumerable: true, get: function () { return provenance_query_js_1.getMemoryProvenance; } });
118
+ Object.defineProperty(exports, "listMemoriesByEnvelopeHash", { enumerable: true, get: function () { return provenance_query_js_1.listMemoriesByEnvelopeHash; } });
119
+ Object.defineProperty(exports, "listMemoriesByGatewayCallId", { enumerable: true, get: function () { return provenance_query_js_1.listMemoriesByGatewayCallId; } });
120
+ Object.defineProperty(exports, "listMemoriesByModelRunId", { enumerable: true, get: function () { return provenance_query_js_1.listMemoriesByModelRunId; } });
121
+ var scope_backfill_js_1 = require("./memory/scope-backfill.js");
122
+ Object.defineProperty(exports, "backfillLegacyMemoryProvenance", { enumerable: true, get: function () { return scope_backfill_js_1.backfillLegacyMemoryProvenance; } });
123
+ Object.defineProperty(exports, "backfillConnectorEventScopeMetadata", { enumerable: true, get: function () { return scope_backfill_js_1.backfillConnectorEventScopeMetadata; } });
124
+ var provenance_audit_js_1 = require("./memory/provenance-audit.js");
125
+ Object.defineProperty(exports, "getMemoryProvenanceAudit", { enumerable: true, get: function () { return provenance_audit_js_1.getMemoryProvenanceAudit; } });
126
+ Object.defineProperty(exports, "listMemoryProvenanceAudit", { enumerable: true, get: function () { return provenance_audit_js_1.listMemoryProvenanceAudit; } });
127
+ var types_js_2 = require("./model-runs/types.js");
128
+ Object.defineProperty(exports, "MODEL_RUN_STATUSES", { enumerable: true, get: function () { return types_js_2.MODEL_RUN_STATUSES; } });
129
+ var store_js_1 = require("./model-runs/store.js");
130
+ Object.defineProperty(exports, "beginModelRun", { enumerable: true, get: function () { return store_js_1.beginModelRun; } });
131
+ Object.defineProperty(exports, "beginModelRunInAdapter", { enumerable: true, get: function () { return store_js_1.beginModelRunInAdapter; } });
132
+ Object.defineProperty(exports, "commitModelRun", { enumerable: true, get: function () { return store_js_1.commitModelRun; } });
133
+ Object.defineProperty(exports, "commitModelRunInAdapter", { enumerable: true, get: function () { return store_js_1.commitModelRunInAdapter; } });
134
+ Object.defineProperty(exports, "failModelRun", { enumerable: true, get: function () { return store_js_1.failModelRun; } });
135
+ Object.defineProperty(exports, "failModelRunInAdapter", { enumerable: true, get: function () { return store_js_1.failModelRunInAdapter; } });
136
+ Object.defineProperty(exports, "getModelRun", { enumerable: true, get: function () { return store_js_1.getModelRun; } });
137
+ Object.defineProperty(exports, "getModelRunInAdapter", { enumerable: true, get: function () { return store_js_1.getModelRunInAdapter; } });
138
+ var tool_trace_store_js_1 = require("./model-runs/tool-trace-store.js");
139
+ Object.defineProperty(exports, "appendToolTrace", { enumerable: true, get: function () { return tool_trace_store_js_1.appendToolTrace; } });
140
+ Object.defineProperty(exports, "listToolTracesForRun", { enumerable: true, get: function () { return tool_trace_store_js_1.listToolTracesForRun; } });
141
+ var types_js_3 = require("./edges/types.js");
142
+ Object.defineProperty(exports, "TWIN_EDGE_SOURCES", { enumerable: true, get: function () { return types_js_3.TWIN_EDGE_SOURCES; } });
143
+ Object.defineProperty(exports, "TWIN_EDGE_TYPES", { enumerable: true, get: function () { return types_js_3.TWIN_EDGE_TYPES; } });
144
+ Object.defineProperty(exports, "TWIN_REF_KINDS", { enumerable: true, get: function () { return types_js_3.TWIN_REF_KINDS; } });
145
+ var store_js_2 = require("./edges/store.js");
146
+ Object.defineProperty(exports, "getTwinEdge", { enumerable: true, get: function () { return store_js_2.getTwinEdge; } });
147
+ Object.defineProperty(exports, "insertTwinEdge", { enumerable: true, get: function () { return store_js_2.insertTwinEdge; } });
148
+ Object.defineProperty(exports, "listTwinEdgesForRefs", { enumerable: true, get: function () { return store_js_2.listTwinEdgesForRefs; } });
149
+ Object.defineProperty(exports, "mapTwinEdgeRow", { enumerable: true, get: function () { return store_js_2.mapTwinEdgeRow; } });
150
+ var ref_validation_js_1 = require("./edges/ref-validation.js");
151
+ Object.defineProperty(exports, "assertTwinRefsVisibleToScopes", { enumerable: true, get: function () { return ref_validation_js_1.assertTwinRefsVisibleToScopes; } });
152
+ Object.defineProperty(exports, "listVisibleTwinEdgesForRefs", { enumerable: true, get: function () { return ref_validation_js_1.listVisibleTwinEdgesForRefs; } });
153
+ __exportStar(require("./context-compile/index.js"), exports);
154
+ __exportStar(require("./agent-situation/index.js"), exports);
155
+ __exportStar(require("./agent-graph/index.js"), exports);
108
156
  __exportStar(require("./entities/types.js"), exports);
109
157
  __exportStar(require("./entities/errors.js"), exports);
110
158
  __exportStar(require("./entities/store.js"), exports);
@@ -253,10 +301,12 @@ __exportStar(require("./cases/composition-overrides.js"), exports);
253
301
  __exportStar(require("./cases/freshness.js"), exports);
254
302
  __exportStar(require("./cases/membership-explain.js"), exports);
255
303
  __exportStar(require("./connectors/event-index.js"), exports);
304
+ __exportStar(require("./connectors/raw-query.js"), exports);
256
305
  __exportStar(require("./connectors/types.js"), exports);
257
306
  __exportStar(require("./search/question-type.js"), exports);
258
307
  __exportStar(require("./search/feedback-store.js"), exports);
259
308
  __exportStar(require("./search/ranker-features.js"), exports);
260
309
  __exportStar(require("./search/ranker-trainer.js"), exports);
261
310
  __exportStar(require("./search/ranker-rescore.js"), exports);
311
+ __exportStar(require("./search/search-quality.js"), exports);
262
312
  //# sourceMappingURL=index.js.map