@jungjaehoon/mama-core 2.4.0 → 4.0.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 (374) hide show
  1. package/README.md +76 -239
  2. package/db/migrations/030-case-first-memory-substrate.sql +13 -98
  3. package/db/migrations/034-add-connector-event-scope-columns.sql +9 -13
  4. package/db/migrations/039-add-connector-event-operator-ingest-seq.sql +9 -95
  5. package/db/migrations/062-refresh-connector-event-sequences.sql +9 -113
  6. package/db/migrations/063-refresh-legacy-connector-event-updates.sql +9 -32
  7. package/db/migrations/067-add-connector-event-source-entity-id.sql +9 -13
  8. package/db/migrations/068-tool-trace-diagnostics.sql +13 -0
  9. package/db/migrations/069-create-registry-nodes.sql +52 -0
  10. package/db/migrations/070-record-identity.sql +35 -0
  11. package/db/migrations/071-service-operation-origins.sql +187 -0
  12. package/db/migrations/072-observation-versions.sql +29 -0
  13. package/db/migrations/073-registry-corrections.sql +45 -0
  14. package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
  15. package/db/migrations/075-agent-judgments.sql +58 -0
  16. package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
  17. package/db/migrations/077-legacy-record-kind.sql +6 -0
  18. package/db/migrations/078-source-ingest-commands.sql +18 -0
  19. package/db/migrations/079-twin-edge-relations.sql +43 -0
  20. package/db/migrations/080-restore-duration-days.sql +7 -0
  21. package/db/migrations/081-mailbox.sql +61 -0
  22. package/db/migrations/082-commitments-row-id.sql +12 -0
  23. package/db/migrations/083-observation-is-the-evidence.sql +49 -0
  24. package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
  25. package/db/migrations/085-a-migration-has-a-source.sql +37 -0
  26. package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
  27. package/db/migrations/087-mailbox-payload.sql +5 -0
  28. package/db/migrations/088-native-input-journal.sql +14 -0
  29. package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
  30. package/db/migrations/090-model-run-native-inputs.sql +29 -0
  31. package/db/migrations/091-native-turn-results.sql +11 -0
  32. package/db/migrations/092-restore-decision-fts.sql +34 -0
  33. package/db/migrations/093-native-turn-primary-kind.sql +14 -0
  34. package/db/migrations/094-commitment-run-provenance.sql +9 -0
  35. package/db/migrations/095-model-run-native-input-identity.sql +39 -0
  36. package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
  37. package/db/migrations/097-native-input-json-validity.sql +37 -0
  38. package/db/migrations/098-workflow-memory-kind.sql +105 -0
  39. package/dist/action-contracts.d.ts +212 -0
  40. package/dist/action-contracts.js +10 -0
  41. package/dist/api/catalog.d.ts +118 -0
  42. package/dist/api/catalog.js +1756 -0
  43. package/dist/api/dispatch.d.ts +76 -0
  44. package/dist/api/dispatch.js +372 -0
  45. package/dist/canonicalize.d.ts +2 -2
  46. package/dist/canonicalize.js +3 -3
  47. package/dist/client/client.d.ts +33 -0
  48. package/dist/client/client.js +123 -0
  49. package/dist/client/ipc.d.ts +81 -0
  50. package/dist/client/ipc.js +314 -0
  51. package/dist/db-adapter/base-adapter.d.ts +6 -66
  52. package/dist/db-adapter/base-adapter.js +6 -6
  53. package/dist/db-adapter/index.d.ts +5 -5
  54. package/dist/db-adapter/index.js +2 -5
  55. package/dist/db-adapter/node-sqlite-adapter.d.ts +87 -15
  56. package/dist/db-adapter/node-sqlite-adapter.js +2045 -568
  57. package/dist/db-manager.d.ts +53 -97
  58. package/dist/db-manager.js +121 -603
  59. package/dist/embedding/embedder.d.ts +132 -0
  60. package/dist/embedding/embedder.js +299 -0
  61. package/dist/identity/principal-repository.d.ts +2 -2
  62. package/dist/index.d.ts +43 -58
  63. package/dist/index.js +99 -145
  64. package/dist/{context-compile/channel-grant.d.ts → knowledge/access.d.ts} +12 -17
  65. package/dist/knowledge/access.js +663 -0
  66. package/dist/knowledge/case-errors.d.ts +31 -0
  67. package/dist/knowledge/case-errors.js +40 -0
  68. package/dist/{cases/search-rollup.d.ts → knowledge/case-search-rollup.d.ts} +5 -4
  69. package/dist/{cases/search-rollup.js → knowledge/case-search-rollup.js} +6 -8
  70. package/dist/{cases/store.d.ts → knowledge/case-store.d.ts} +3 -6
  71. package/dist/{cases/store.js → knowledge/case-store.js} +7 -42
  72. package/dist/{cases/timeline-range.d.ts → knowledge/case-timeline-range.d.ts} +3 -3
  73. package/dist/{cases/timeline-range.js → knowledge/case-timeline-range.js} +47 -25
  74. package/dist/{cases/types.d.ts → knowledge/case-types.d.ts} +8 -2
  75. package/dist/{cases/types.js → knowledge/case-types.js} +1 -1
  76. package/dist/knowledge/commitments.d.ts +188 -0
  77. package/dist/knowledge/commitments.js +370 -0
  78. package/dist/knowledge/decision-edges.d.ts +70 -0
  79. package/dist/knowledge/decision-edges.js +123 -0
  80. package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
  81. package/dist/knowledge/graph-query.js +1585 -0
  82. package/dist/knowledge/identity.d.ts +16 -0
  83. package/dist/knowledge/identity.js +22 -0
  84. package/dist/knowledge/index.d.ts +47 -0
  85. package/dist/knowledge/index.js +90 -0
  86. package/dist/knowledge/judgments.d.ts +118 -0
  87. package/dist/knowledge/judgments.js +808 -0
  88. package/dist/knowledge/observations.d.ts +160 -0
  89. package/dist/knowledge/observations.js +449 -0
  90. package/dist/knowledge/question-type.d.ts +34 -0
  91. package/dist/knowledge/question-type.js +70 -0
  92. package/dist/{search → knowledge}/ranker-features.js +1 -1
  93. package/dist/{search → knowledge}/search-quality.d.ts +0 -1
  94. package/dist/knowledge/search.d.ts +38 -0
  95. package/dist/knowledge/search.js +91 -0
  96. package/dist/knowledge/source-ingest.d.ts +65 -0
  97. package/dist/knowledge/source-ingest.js +174 -0
  98. package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
  99. package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
  100. package/dist/knowledge/work-dates.d.ts +49 -0
  101. package/dist/knowledge/work-dates.js +120 -0
  102. package/dist/mama-api.d.ts +116 -778
  103. package/dist/mama-api.js +313 -2457
  104. package/dist/memory/api.d.ts +264 -24
  105. package/dist/memory/api.js +1633 -843
  106. package/dist/memory/bootstrap-builder.d.ts +2 -1
  107. package/dist/memory/bootstrap-builder.js +5 -5
  108. package/dist/memory/channel-summary-state-store.d.ts +3 -2
  109. package/dist/memory/channel-summary-state-store.js +53 -51
  110. package/dist/memory/channel-summary-store.d.ts +5 -3
  111. package/dist/memory/channel-summary-store.js +3 -8
  112. package/dist/memory/dashboard-read.d.ts +46 -0
  113. package/dist/memory/dashboard-read.js +94 -0
  114. package/dist/memory/event-store.d.ts +3 -3
  115. package/dist/memory/event-store.js +3 -10
  116. package/dist/memory/finding-store.d.ts +3 -2
  117. package/dist/memory/finding-store.js +2 -7
  118. package/dist/memory/graph-read.d.ts +52 -0
  119. package/dist/memory/graph-read.js +130 -0
  120. package/dist/memory/judgment-types.d.ts +394 -0
  121. package/dist/memory/judgment-types.js +16 -0
  122. package/dist/memory/provenance-audit.d.ts +5 -2
  123. package/dist/memory/provenance-audit.js +8 -14
  124. package/dist/memory/provenance-live.d.ts +141 -0
  125. package/dist/memory/provenance-live.js +409 -0
  126. package/dist/memory/provenance-query.d.ts +5 -4
  127. package/dist/memory/provenance-query.js +21 -29
  128. package/dist/memory/provenance-resolver.d.ts +191 -0
  129. package/dist/memory/provenance-resolver.js +155 -0
  130. package/dist/memory/provenance.d.ts +1 -11
  131. package/dist/memory/provenance.js +2 -33
  132. package/dist/memory/recall-sanitize.d.ts +55 -0
  133. package/dist/memory/recall-sanitize.js +144 -0
  134. package/dist/memory/secret-filter.d.ts +32 -0
  135. package/dist/memory/secret-filter.js +126 -0
  136. package/dist/memory/truth-store.d.ts +2 -1
  137. package/dist/memory/truth-store.js +1 -4
  138. package/dist/memory/types.d.ts +74 -24
  139. package/dist/memory/types.js +75 -5
  140. package/dist/memory/write-adapters.d.ts +98 -0
  141. package/dist/memory/write-adapters.js +242 -0
  142. package/dist/operations/owner-action-effects.d.ts +53 -0
  143. package/dist/operations/owner-action-effects.js +96 -0
  144. package/dist/provenance/source-ref.d.ts +1 -1
  145. package/dist/provenance/source-ref.js +0 -2
  146. package/dist/registry/corrections.d.ts +31 -0
  147. package/dist/registry/corrections.js +332 -0
  148. package/dist/registry/record-identity.d.ts +49 -0
  149. package/dist/registry/record-identity.js +133 -0
  150. package/dist/registry/store.d.ts +101 -0
  151. package/dist/registry/store.js +395 -0
  152. package/dist/registry/types.d.ts +28 -0
  153. package/dist/registry/types.js +5 -0
  154. package/dist/relevance-scorer.js +2 -2
  155. package/dist/runtime/agent-event-bus.d.ts +50 -0
  156. package/dist/runtime/agent-event-bus.js +101 -0
  157. package/dist/runtime/drivers/claude-cli-wrapper.d.ts +155 -0
  158. package/dist/runtime/drivers/claude-cli-wrapper.js +392 -0
  159. package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
  160. package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
  161. package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
  162. package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
  163. package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
  164. package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
  165. package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
  166. package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
  167. package/dist/runtime/drivers/codex-home.d.ts +20 -0
  168. package/dist/runtime/drivers/codex-home.js +674 -0
  169. package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
  170. package/dist/runtime/drivers/codex-thread-registry.js +433 -0
  171. package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
  172. package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
  173. package/dist/runtime/drivers/persistent-cli-process.d.ts +424 -0
  174. package/dist/runtime/drivers/persistent-cli-process.js +1543 -0
  175. package/dist/runtime/drivers/types.d.ts +456 -0
  176. package/dist/runtime/drivers/types.js +110 -0
  177. package/dist/runtime/mailbox.d.ts +223 -0
  178. package/dist/runtime/mailbox.js +582 -0
  179. package/dist/runtime/model-run-store.d.ts +28 -0
  180. package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
  181. package/dist/runtime/model-run-types.d.ts +132 -0
  182. package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
  183. package/dist/runtime/native-effect-observer.d.ts +22 -0
  184. package/dist/runtime/native-effect-observer.js +103 -0
  185. package/dist/runtime/native-input-journal.d.ts +46 -0
  186. package/dist/runtime/native-input-journal.js +308 -0
  187. package/dist/runtime/native-prompt.d.ts +118 -0
  188. package/dist/runtime/native-prompt.js +496 -0
  189. package/dist/runtime/native-session.d.ts +10 -0
  190. package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
  191. package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
  192. package/dist/runtime/native-tool-trace-observer.js +65 -0
  193. package/dist/runtime/native-turn.d.ts +272 -0
  194. package/dist/runtime/native-turn.js +1041 -0
  195. package/dist/runtime/operations.d.ts +236 -0
  196. package/dist/runtime/operations.js +565 -0
  197. package/dist/runtime/post-tool-handler.d.ts +74 -0
  198. package/dist/runtime/post-tool-handler.js +137 -0
  199. package/dist/runtime/prompt-layers.d.ts +126 -0
  200. package/dist/runtime/prompt-layers.js +239 -0
  201. package/dist/runtime/runtime-process.d.ts +102 -0
  202. package/dist/runtime/runtime-process.js +206 -0
  203. package/dist/runtime/runtime.d.ts +278 -0
  204. package/dist/runtime/runtime.js +563 -0
  205. package/dist/runtime/session-pool.d.ts +176 -0
  206. package/dist/runtime/session-pool.js +369 -0
  207. package/dist/runtime/stimulus-payload.d.ts +5 -0
  208. package/dist/runtime/stimulus-payload.js +50 -0
  209. package/dist/runtime/subagent-bridge.d.ts +24 -0
  210. package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
  211. package/dist/runtime/text-completion.d.ts +22 -0
  212. package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
  213. package/dist/runtime/token-estimator.d.ts +25 -0
  214. package/dist/runtime/token-estimator.js +75 -0
  215. package/dist/runtime/tool-trace-store.d.ts +22 -0
  216. package/dist/runtime/tool-trace-store.js +242 -0
  217. package/dist/runtime/trace-summary.d.ts +5 -0
  218. package/dist/runtime/trace-summary.js +74 -0
  219. package/dist/runtime/turn-text.d.ts +23 -0
  220. package/dist/runtime/turn-text.js +41 -0
  221. package/dist/storage/database.d.ts +67 -0
  222. package/dist/storage/database.js +158 -0
  223. package/package.json +20 -34
  224. package/dist/agent-graph/alias-write.d.ts +0 -3
  225. package/dist/agent-graph/alias-write.js +0 -234
  226. package/dist/agent-graph/entity-resolve.d.ts +0 -3
  227. package/dist/agent-graph/entity-resolve.js +0 -271
  228. package/dist/agent-graph/errors.d.ts +0 -4
  229. package/dist/agent-graph/errors.js +0 -11
  230. package/dist/agent-graph/graph-query.d.ts +0 -5
  231. package/dist/agent-graph/graph-query.js +0 -360
  232. package/dist/agent-graph/index.d.ts +0 -6
  233. package/dist/agent-situation/builder.d.ts +0 -8
  234. package/dist/agent-situation/builder.js +0 -239
  235. package/dist/agent-situation/cache-key.d.ts +0 -4
  236. package/dist/agent-situation/cache-key.js +0 -64
  237. package/dist/agent-situation/index.d.ts +0 -7
  238. package/dist/agent-situation/index.js +0 -28
  239. package/dist/agent-situation/packet-store.d.ts +0 -27
  240. package/dist/agent-situation/packet-store.js +0 -228
  241. package/dist/agent-situation/ranking-policy.d.ts +0 -18
  242. package/dist/agent-situation/ranking-policy.js +0 -75
  243. package/dist/agent-situation/source-readers.d.ts +0 -52
  244. package/dist/agent-situation/source-readers.js +0 -300
  245. package/dist/agent-situation/types.d.ts +0 -195
  246. package/dist/cases/wiki-page-index.d.ts +0 -37
  247. package/dist/cases/wiki-page-index.js +0 -201
  248. package/dist/config-loader.d.ts +0 -68
  249. package/dist/config-loader.js +0 -239
  250. package/dist/connectors/event-index.d.ts +0 -24
  251. package/dist/connectors/event-index.js +0 -245
  252. package/dist/connectors/raw-query.d.ts +0 -40
  253. package/dist/connectors/raw-query.js +0 -412
  254. package/dist/connectors/types.d.ts +0 -117
  255. package/dist/connectors/types.js +0 -3
  256. package/dist/context-compile/boundary-defaults.d.ts +0 -12
  257. package/dist/context-compile/boundary-defaults.js +0 -105
  258. package/dist/context-compile/channel-grant.js +0 -66
  259. package/dist/context-compile/compiler-policy.d.ts +0 -39
  260. package/dist/context-compile/compiler-policy.js +0 -147
  261. package/dist/context-compile/compiler.d.ts +0 -18
  262. package/dist/context-compile/compiler.js +0 -404
  263. package/dist/context-compile/index.d.ts +0 -10
  264. package/dist/context-compile/index.js +0 -26
  265. package/dist/context-compile/packet-store.d.ts +0 -8
  266. package/dist/context-compile/packet-store.js +0 -239
  267. package/dist/context-compile/ref.d.ts +0 -7
  268. package/dist/context-compile/ref.js +0 -102
  269. package/dist/context-compile/source-readers.d.ts +0 -70
  270. package/dist/context-compile/source-readers.js +0 -840
  271. package/dist/context-compile/types.d.ts +0 -155
  272. package/dist/context-compile/types.js +0 -11
  273. package/dist/context-compile/visibility.d.ts +0 -21
  274. package/dist/context-compile/visibility.js +0 -224
  275. package/dist/decision-tracker.d.ts +0 -206
  276. package/dist/decision-tracker.js +0 -481
  277. package/dist/edges/ref-validation.d.ts +0 -7
  278. package/dist/edges/ref-validation.js +0 -321
  279. package/dist/edges/store.d.ts +0 -8
  280. package/dist/edges/store.js +0 -129
  281. package/dist/embedding-client.d.ts +0 -28
  282. package/dist/embedding-client.js +0 -53
  283. package/dist/embedding-server/index.d.ts +0 -67
  284. package/dist/embedding-server/index.js +0 -405
  285. package/dist/embedding-server/mobile/auth.d.ts +0 -44
  286. package/dist/embedding-server/mobile/auth.js +0 -150
  287. package/dist/embedding-server/mobile/daemon.d.ts +0 -129
  288. package/dist/embedding-server/mobile/daemon.js +0 -313
  289. package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
  290. package/dist/embedding-server/mobile/output-parser.js +0 -241
  291. package/dist/embedding-server/mobile/session-api.d.ts +0 -57
  292. package/dist/embedding-server/mobile/session-api.js +0 -261
  293. package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
  294. package/dist/embedding-server/mobile/session-manager.js +0 -378
  295. package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
  296. package/dist/embedding-server/mobile/websocket-handler.js +0 -486
  297. package/dist/embeddings.d.ts +0 -68
  298. package/dist/embeddings.js +0 -244
  299. package/dist/entities/audit-metrics.d.ts +0 -68
  300. package/dist/entities/audit-metrics.js +0 -124
  301. package/dist/entities/candidate-generator.d.ts +0 -8
  302. package/dist/entities/candidate-generator.js +0 -24
  303. package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
  304. package/dist/entities/entity-linked-decision-counts.js +0 -29
  305. package/dist/entities/entity-list.d.ts +0 -22
  306. package/dist/entities/entity-list.js +0 -3
  307. package/dist/entities/entity-orphan-list.d.ts +0 -17
  308. package/dist/entities/entity-orphan-list.js +0 -3
  309. package/dist/entities/entity-search.d.ts +0 -20
  310. package/dist/entities/entity-search.js +0 -3
  311. package/dist/entities/errors.d.ts +0 -55
  312. package/dist/entities/errors.js +0 -100
  313. package/dist/entities/lineage-store.d.ts +0 -28
  314. package/dist/entities/lineage-store.js +0 -204
  315. package/dist/entities/normalization.d.ts +0 -14
  316. package/dist/entities/normalization.js +0 -63
  317. package/dist/entities/policy-store.d.ts +0 -8
  318. package/dist/entities/policy-store.js +0 -75
  319. package/dist/entities/policy-types.d.ts +0 -72
  320. package/dist/entities/policy-types.js +0 -59
  321. package/dist/entities/projection.d.ts +0 -8
  322. package/dist/entities/projection.js +0 -82
  323. package/dist/entities/provenance-query.d.ts +0 -32
  324. package/dist/entities/provenance-query.js +0 -3
  325. package/dist/entities/read-identity.d.ts +0 -31
  326. package/dist/entities/read-identity.js +0 -264
  327. package/dist/entities/recall-bridge.d.ts +0 -5
  328. package/dist/entities/recall-bridge.js +0 -171
  329. package/dist/entities/resolution-engine.d.ts +0 -8
  330. package/dist/entities/resolution-engine.js +0 -3
  331. package/dist/entities/rollback-preview.d.ts +0 -35
  332. package/dist/entities/rollback-preview.js +0 -3
  333. package/dist/entities/source-locator.d.ts +0 -3
  334. package/dist/entities/source-locator.js +0 -32
  335. package/dist/entities/store.d.ts +0 -69
  336. package/dist/entities/store.js +0 -544
  337. package/dist/entities/types.d.ts +0 -166
  338. package/dist/entities/types.js +0 -30
  339. package/dist/memory/extraction-prompt.d.ts +0 -4
  340. package/dist/memory/extraction-prompt.js +0 -89
  341. package/dist/memory/scope-backfill.d.ts +0 -14
  342. package/dist/memory/scope-backfill.js +0 -3
  343. package/dist/memory/scope-store.d.ts +0 -4
  344. package/dist/memory/scope-store.js +0 -9
  345. package/dist/memory-store.d.ts +0 -87
  346. package/dist/memory-store.js +0 -78
  347. package/dist/model-runs/store.d.ts +0 -13
  348. package/dist/model-runs/tool-trace-store.d.ts +0 -4
  349. package/dist/model-runs/tool-trace-store.js +0 -118
  350. package/dist/model-runs/types.d.ts +0 -72
  351. package/dist/notification-manager.d.ts +0 -7
  352. package/dist/notification-manager.js +0 -12
  353. package/dist/outcome-tracker.d.ts +0 -151
  354. package/dist/outcome-tracker.js +0 -271
  355. package/dist/query-intent.d.ts +0 -23
  356. package/dist/query-intent.js +0 -114
  357. package/dist/runtime/trusted-provenance.d.ts +0 -3
  358. package/dist/runtime/trusted-provenance.js +0 -6
  359. package/dist/search/question-type.d.ts +0 -5
  360. package/dist/search/question-type.js +0 -41
  361. package/dist/test-utils.d.ts +0 -80
  362. package/dist/test-utils.js +0 -218
  363. package/dist/tier-validator.d.ts +0 -43
  364. package/dist/tier-validator.js +0 -159
  365. package/dist/time-formatter.d.ts +0 -25
  366. package/dist/time-formatter.js +0 -93
  367. /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
  368. /package/dist/{search → knowledge}/feedback-store.js +0 -0
  369. /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
  370. /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
  371. /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
  372. /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
  373. /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
  374. /package/dist/{search → knowledge}/search-quality.js +0 -0
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.projectEntityToRecallSummary = projectEntityToRecallSummary;
4
- const errors_js_1 = require("./errors.js");
5
- function formatTimelineEventForRecall(latestEvent) {
6
- if (!latestEvent) {
7
- return null;
8
- }
9
- const parts = [];
10
- const eventType = latestEvent.event_type.trim();
11
- const summary = latestEvent.summary.trim();
12
- const details = latestEvent.details?.trim() ?? '';
13
- if (eventType.length > 0) {
14
- parts.push(eventType);
15
- }
16
- if (summary.length > 0) {
17
- parts.push(summary);
18
- }
19
- if (details.length > 0 && details !== summary) {
20
- try {
21
- const parsed = JSON.parse(details);
22
- if (parsed && typeof parsed === 'object') {
23
- parts.push(JSON.stringify(parsed));
24
- }
25
- else {
26
- parts.push(details);
27
- }
28
- }
29
- catch {
30
- parts.push(details);
31
- }
32
- }
33
- return parts.length > 0 ? parts.join('\n') : null;
34
- }
35
- function assertNoCircularMerge(node, options) {
36
- if (!options?.nodeLookup) {
37
- return;
38
- }
39
- const seen = new Set();
40
- let current = options.nodeLookup[node.id] ?? node;
41
- while (current?.merged_into) {
42
- if (seen.has(current.id)) {
43
- throw new errors_js_1.EntityLabelMissingError({
44
- entity_id: node.id,
45
- reason: 'circular_merged_into_chain',
46
- });
47
- }
48
- seen.add(current.id);
49
- current = options.nodeLookup[current.merged_into];
50
- }
51
- }
52
- function projectEntityToRecallSummary(node, aliases, latestEvent, options) {
53
- if (!node.preferred_label.trim()) {
54
- throw new errors_js_1.EntityLabelMissingError({
55
- entity_id: node.id,
56
- reason: 'missing_preferred_label',
57
- });
58
- }
59
- assertNoCircularMerge(node, options);
60
- const aliasText = aliases.map((alias) => alias.label).join(', ');
61
- const detailParts = [formatTimelineEventForRecall(latestEvent), aliasText].filter((value) => Boolean(value));
62
- const scopeKind = node.scope_kind ?? 'global';
63
- const scopeId = node.scope_kind === null ? 'global' : (node.scope_id ?? 'global');
64
- return {
65
- id: node.id,
66
- topic: `entity/${node.id}`,
67
- kind: 'fact',
68
- summary: node.preferred_label,
69
- details: detailParts.join('\n'),
70
- confidence: 0.9,
71
- status: 'active',
72
- scopes: [{ kind: scopeKind, id: scopeId }],
73
- source: {
74
- package: 'mama-core',
75
- source_type: 'entity_canonical',
76
- project_id: node.scope_id ?? undefined,
77
- },
78
- created_at: node.created_at,
79
- updated_at: node.updated_at,
80
- };
81
- }
82
- //# sourceMappingURL=projection.js.map
@@ -1,32 +0,0 @@
1
- import { type SourceLocatorKind } from './source-locator.js';
2
- import type { MemoryRecord } from '../memory/types.js';
3
- export interface ProvenanceObservationSummary {
4
- id: string;
5
- observation_type: string;
6
- entity_kind_hint: string | null;
7
- surface_form: string;
8
- normalized_form: string;
9
- lang: string | null;
10
- script: string | null;
11
- context_summary: string | null;
12
- scope_kind: string;
13
- scope_id: string | null;
14
- extractor_version: string;
15
- embedding_model_version: string | null;
16
- source_connector: string;
17
- source_locator: string | null;
18
- source_locator_kind: SourceLocatorKind;
19
- source_raw_record_id: string;
20
- created_at: number;
21
- }
22
- export interface MemoryProvenanceResult {
23
- status: 'legacy' | 'manual' | 'dropped' | 'resolved';
24
- memory: MemoryRecord;
25
- observations: ProvenanceObservationSummary[];
26
- audit: {
27
- event_type: 'provenance.empty_batch' | 'provenance.link_write_failed';
28
- reason: string | null;
29
- created_at: number;
30
- } | null;
31
- }
32
- //# sourceMappingURL=provenance-query.d.ts.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=provenance-query.js.map
@@ -1,31 +0,0 @@
1
- import type { MemoryRecord } from '../memory/types.js';
2
- export interface CanonicalReadEntity {
3
- id: string;
4
- label: string;
5
- kind: string;
6
- }
7
- export type ReadIdentity = {
8
- kind: 'canonical';
9
- entities: CanonicalReadEntity[];
10
- primaryEntity: CanonicalReadEntity;
11
- legacyTopic: string | null;
12
- shadowConflict: boolean;
13
- displaySubject?: string | null;
14
- displayTopic?: string | null;
15
- displaySuffix?: string | null;
16
- } | {
17
- kind: 'topic';
18
- topic: string;
19
- displaySubject?: string | null;
20
- displayTopic?: string | null;
21
- displaySuffix?: string | null;
22
- } | {
23
- kind: 'raw';
24
- label: string;
25
- displaySubject?: string | null;
26
- displayTopic?: string | null;
27
- displaySuffix?: string | null;
28
- };
29
- export declare function resolveReadIdentity(record: Pick<MemoryRecord, 'topic' | 'summary'>, entities: CanonicalReadEntity[]): ReadIdentity;
30
- export declare function loadDecisionReadIdentityIndex(decisionIds: string[]): Promise<Map<string, CanonicalReadEntity[]>>;
31
- //# sourceMappingURL=read-identity.d.ts.map
@@ -1,264 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveReadIdentity = resolveReadIdentity;
4
- exports.loadDecisionReadIdentityIndex = loadDecisionReadIdentityIndex;
5
- const db_manager_js_1 = require("../db-manager.js");
6
- function normalizeText(value) {
7
- return value.normalize('NFKC').trim().replace(/\s+/gu, ' ').toLowerCase();
8
- }
9
- function normalizeLooseText(value) {
10
- return normalizeText(value ?? '')
11
- .replace(/[_-]+/gu, ' ')
12
- .replace(/[^\p{Letter}\p{Number}\s/]+/gu, ' ')
13
- .replace(/\s+/gu, ' ')
14
- .trim();
15
- }
16
- function humanizeTopicSegment(segment) {
17
- return segment.normalize('NFKC').replace(/[_]+/gu, ' ').replace(/\s+/gu, ' ').trim();
18
- }
19
- function humanizeTopicLabel(topic) {
20
- if (typeof topic !== 'string') {
21
- return null;
22
- }
23
- const segments = topic
24
- .split('/')
25
- .map((segment) => humanizeTopicSegment(segment))
26
- .filter((segment) => segment.length > 0);
27
- if (segments.length === 0) {
28
- const fallback = humanizeTopicSegment(topic);
29
- return fallback.length > 0 ? fallback : null;
30
- }
31
- return segments.join(' / ');
32
- }
33
- function hasProjectishSignal(label) {
34
- return /(?:案件|相談|窓|民泊|project|room|board|launch|client|feedback|delivery)/iu.test(label ?? '');
35
- }
36
- function looksLikeMachineGeneratedLabel(label) {
37
- return /^(slack|chatwork|telegram|line|kakao)(:|$)/iu.test(label ?? '');
38
- }
39
- function looksLikeParticipantLabel(label) {
40
- if (!label) {
41
- return false;
42
- }
43
- const trimmed = label.trim();
44
- if (/^(kagemusha|system)$/iu.test(trimmed)) {
45
- return true;
46
- }
47
- if (hasProjectishSignal(trimmed)) {
48
- return false;
49
- }
50
- if (/[·,]/u.test(trimmed)) {
51
- return true;
52
- }
53
- if (trimmed.length === 0 || trimmed.length > 20) {
54
- return false;
55
- }
56
- if (/[A-Za-z0-9]/u.test(trimmed)) {
57
- return false;
58
- }
59
- return /^[\p{Script=Hangul}\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\s()]+$/u.test(trimmed);
60
- }
61
- function hasNonEmptyTopic(record) {
62
- return typeof record.topic === 'string' && record.topic.trim().length > 0;
63
- }
64
- function sortCanonicalReadEntities(entities) {
65
- return [...entities].sort((left, right) => {
66
- if (left.kind !== right.kind) {
67
- return left.kind.localeCompare(right.kind);
68
- }
69
- if (left.label !== right.label) {
70
- return left.label.localeCompare(right.label);
71
- }
72
- return left.id.localeCompare(right.id);
73
- });
74
- }
75
- function hasShadowConflict(record, primaryEntity) {
76
- if (!hasNonEmptyTopic(record)) {
77
- return false;
78
- }
79
- const summary = normalizeText(record.summary ?? '');
80
- const label = normalizeText(primaryEntity.label);
81
- if (!summary || !label) {
82
- return false;
83
- }
84
- if (summary === label) {
85
- return false;
86
- }
87
- if (summary.includes(label) || label.includes(summary)) {
88
- return false;
89
- }
90
- return true;
91
- }
92
- function getLegacyTopic(record) {
93
- return hasNonEmptyTopic(record) ? record.topic.trim() : null;
94
- }
95
- function getLegacyNamespace(record) {
96
- const legacyTopic = getLegacyTopic(record);
97
- if (!legacyTopic) {
98
- return null;
99
- }
100
- const humanized = humanizeTopicSegment(legacyTopic.split('/')[0] ?? '');
101
- if (normalizeLooseText(humanized) === 'entity') {
102
- return null;
103
- }
104
- return humanized || null;
105
- }
106
- function selectDisplayEntity(entities, primaryEntity) {
107
- return (entities.find((entity) => ['project', 'work_item', 'organization'].includes(entity.kind)) ??
108
- primaryEntity);
109
- }
110
- function buildDisplaySubject(record, entities, primaryEntity) {
111
- const preferredEntity = selectDisplayEntity(entities, primaryEntity);
112
- const preferredLabel = preferredEntity.label?.trim();
113
- const legacyNamespace = getLegacyNamespace(record);
114
- const summary = record.summary?.trim();
115
- if (summary && typeof record.topic === 'string' && record.topic.startsWith('entity/')) {
116
- return summary;
117
- }
118
- if (legacyNamespace &&
119
- preferredLabel &&
120
- normalizeLooseText(preferredLabel) !== normalizeLooseText(legacyNamespace) &&
121
- (looksLikeMachineGeneratedLabel(preferredLabel) || looksLikeParticipantLabel(preferredLabel))) {
122
- return legacyNamespace;
123
- }
124
- if (preferredLabel && !looksLikeMachineGeneratedLabel(preferredLabel)) {
125
- return preferredLabel;
126
- }
127
- if (legacyNamespace) {
128
- return legacyNamespace;
129
- }
130
- return summary || humanizeTopicLabel(getLegacyTopic(record)) || preferredLabel || null;
131
- }
132
- function buildDisplayTopic(record, entities, primaryEntity) {
133
- const summary = record.summary?.trim();
134
- if (summary && typeof record.topic === 'string' && record.topic.startsWith('entity/')) {
135
- return summary;
136
- }
137
- const preferredEntity = selectDisplayEntity(entities, primaryEntity);
138
- const subjectLabel = preferredEntity.kind !== 'person' && preferredEntity.label.trim().length > 0
139
- ? preferredEntity.label.trim()
140
- : '';
141
- const humanizedTopic = humanizeTopicLabel(getLegacyTopic(record));
142
- if (!subjectLabel) {
143
- return humanizedTopic || summary || null;
144
- }
145
- if (!humanizedTopic) {
146
- return subjectLabel;
147
- }
148
- const normalizedSubject = normalizeLooseText(subjectLabel);
149
- const normalizedTopic = normalizeLooseText(humanizedTopic);
150
- const tokens = normalizedTopic.split(' ').filter((token) => token.length > 0);
151
- const genericTokens = new Set(['spine', 'fb', 'fix', 'pdf', 'sd', 'ex', 'ar', 'r18', 'sp']);
152
- const informativeTokens = tokens.filter((token) => !genericTokens.has(token) && !/^\d+$/u.test(token) && token.length > 1);
153
- const lowSignalTopic = normalizedTopic.length === 0 || informativeTokens.length === 0;
154
- if (lowSignalTopic || normalizedTopic === normalizedSubject) {
155
- return subjectLabel;
156
- }
157
- return humanizedTopic;
158
- }
159
- function buildDisplaySuffix(record, entities, primaryEntity) {
160
- const displaySubject = buildDisplaySubject(record, entities, primaryEntity);
161
- const displayTopic = buildDisplayTopic(record, entities, primaryEntity);
162
- if (!displaySubject || !displayTopic) {
163
- return null;
164
- }
165
- const normalizedSubject = normalizeLooseText(displaySubject);
166
- const normalizedTopic = normalizeLooseText(displayTopic);
167
- if (!normalizedTopic || normalizedTopic === normalizedSubject) {
168
- return null;
169
- }
170
- const subjectParts = displaySubject
171
- .split('/')
172
- .map((part) => part.trim())
173
- .filter(Boolean);
174
- const topicParts = displayTopic
175
- .split('/')
176
- .map((part) => part.trim())
177
- .filter(Boolean);
178
- if (topicParts.length > 1 && subjectParts.length > 0) {
179
- const firstTopicPart = topicParts[0] ?? '';
180
- const firstSubjectPart = subjectParts[subjectParts.length - 1] ?? '';
181
- if (normalizeLooseText(firstTopicPart) === normalizeLooseText(firstSubjectPart)) {
182
- const suffix = topicParts.slice(1).join(' / ').trim();
183
- return suffix.length > 0 ? suffix : null;
184
- }
185
- }
186
- return displayTopic;
187
- }
188
- function resolveReadIdentity(record, entities) {
189
- if (entities.length > 0) {
190
- const sortedEntities = sortCanonicalReadEntities(entities);
191
- const primaryEntity = sortedEntities[0];
192
- return {
193
- kind: 'canonical',
194
- entities: sortedEntities,
195
- primaryEntity,
196
- legacyTopic: getLegacyTopic(record),
197
- shadowConflict: hasShadowConflict(record, primaryEntity),
198
- displaySubject: buildDisplaySubject(record, sortedEntities, primaryEntity),
199
- displayTopic: buildDisplayTopic(record, sortedEntities, primaryEntity),
200
- displaySuffix: buildDisplaySuffix(record, sortedEntities, primaryEntity),
201
- };
202
- }
203
- if (hasNonEmptyTopic(record)) {
204
- return {
205
- kind: 'topic',
206
- topic: record.topic.trim(),
207
- displaySubject: null,
208
- displayTopic: humanizeTopicLabel(record.topic),
209
- displaySuffix: null,
210
- };
211
- }
212
- return {
213
- kind: 'raw',
214
- label: record.summary.trim() || '<unknown>',
215
- displaySubject: null,
216
- displayTopic: record.summary.trim() || '<unknown>',
217
- displaySuffix: null,
218
- };
219
- }
220
- async function loadDecisionReadIdentityIndex(decisionIds) {
221
- await (0, db_manager_js_1.initDB)();
222
- const uniqueDecisionIds = Array.from(new Set(decisionIds
223
- .filter((decisionId) => typeof decisionId === 'string')
224
- .map((decisionId) => decisionId.trim())
225
- .filter((decisionId) => decisionId.length > 0)));
226
- const index = new Map();
227
- if (uniqueDecisionIds.length === 0) {
228
- return index;
229
- }
230
- const placeholders = uniqueDecisionIds.map(() => '?').join(', ');
231
- const rows = (0, db_manager_js_1.getAdapter)()
232
- .prepare(`
233
- SELECT
234
- des.decision_id,
235
- n.id AS entity_id,
236
- n.preferred_label AS entity_label,
237
- n.kind AS entity_kind
238
- FROM decision_entity_sources des
239
- JOIN entity_lineage_links l
240
- ON l.entity_observation_id = des.entity_observation_id
241
- AND l.status = 'active'
242
- JOIN entity_nodes n
243
- ON n.id = l.canonical_entity_id
244
- WHERE des.decision_id IN (${placeholders})
245
- AND n.status = 'active'
246
- AND n.merged_into IS NULL
247
- GROUP BY des.decision_id, n.id, n.preferred_label, n.kind
248
- `)
249
- .all(...uniqueDecisionIds);
250
- for (const row of rows) {
251
- const existing = index.get(row.decision_id) ?? [];
252
- existing.push({
253
- id: row.entity_id,
254
- label: row.entity_label,
255
- kind: row.entity_kind,
256
- });
257
- index.set(row.decision_id, existing);
258
- }
259
- for (const [decisionId, entities] of index.entries()) {
260
- index.set(decisionId, sortCanonicalReadEntities(entities));
261
- }
262
- return index;
263
- }
264
- //# sourceMappingURL=read-identity.js.map
@@ -1,5 +0,0 @@
1
- import type { MemoryRecord, MemoryScopeRef } from '../memory/types.js';
2
- export declare function queryCanonicalEntities(query: string, scopes: MemoryScopeRef[], options?: {
3
- limit?: number;
4
- }): Promise<MemoryRecord[]>;
5
- //# sourceMappingURL=recall-bridge.d.ts.map
@@ -1,171 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.queryCanonicalEntities = queryCanonicalEntities;
4
- const db_manager_js_1 = require("../db-manager.js");
5
- const projection_js_1 = require("./projection.js");
6
- const read_identity_js_1 = require("./read-identity.js");
7
- const store_js_1 = require("./store.js");
8
- function mapNode(row) {
9
- return {
10
- id: String(row.id),
11
- kind: row.kind,
12
- preferred_label: String(row.preferred_label),
13
- status: row.status,
14
- scope_kind: typeof row.scope_kind === 'string' ? row.scope_kind : null,
15
- scope_id: typeof row.scope_id === 'string' ? row.scope_id : null,
16
- merged_into: typeof row.merged_into === 'string' ? row.merged_into : null,
17
- created_at: Number(row.created_at),
18
- updated_at: Number(row.updated_at),
19
- };
20
- }
21
- function mapAlias(row) {
22
- return {
23
- id: String(row.id),
24
- entity_id: String(row.entity_id),
25
- label: String(row.label),
26
- normalized_label: String(row.normalized_label),
27
- lang: typeof row.lang === 'string' ? row.lang : null,
28
- script: typeof row.script === 'string' ? row.script : null,
29
- label_type: row.label_type,
30
- source_type: String(row.source_type),
31
- source_ref: typeof row.source_ref === 'string' ? row.source_ref : null,
32
- confidence: typeof row.confidence === 'number' ? row.confidence : null,
33
- status: row.status,
34
- created_at: Number(row.created_at),
35
- };
36
- }
37
- function mapTimeline(row) {
38
- return {
39
- id: String(row.id),
40
- entity_id: String(row.entity_id),
41
- event_type: String(row.event_type),
42
- valid_from: typeof row.valid_from === 'number' ? row.valid_from : null,
43
- valid_to: typeof row.valid_to === 'number' ? row.valid_to : null,
44
- observed_at: typeof row.observed_at === 'number' ? row.observed_at : null,
45
- source_ref: typeof row.source_ref === 'string' ? row.source_ref : null,
46
- summary: String(row.summary),
47
- details: typeof row.details === 'string' ? row.details : null,
48
- created_at: Number(row.created_at),
49
- };
50
- }
51
- function escapeLikeQuery(query) {
52
- return query.replace(/[\\%_]/g, '\\$&');
53
- }
54
- async function queryCanonicalEntities(query, scopes, options = {}) {
55
- await (0, db_manager_js_1.initDB)();
56
- const adapter = (0, db_manager_js_1.getAdapter)();
57
- const escapedQuery = escapeLikeQuery(query);
58
- // Match aliases and labels regardless of whether the owning node is merged,
59
- // then chain-walk each match to its canonical terminal. Without this,
60
- // searching by the old name of a merged entity returns nothing because the
61
- // filter `n.status='active' AND n.merged_into IS NULL` would drop the
62
- // source row. Matches the read-time chain-walking approach in the canonical
63
- // entity ontology implementation plan.
64
- const matchedRows = adapter
65
- .prepare(`
66
- SELECT DISTINCT n.id AS matched_id
67
- FROM entity_nodes n
68
- LEFT JOIN entity_aliases a ON a.entity_id = n.id
69
- LEFT JOIN entity_lineage_links l ON l.canonical_entity_id = n.id AND l.status = 'active'
70
- LEFT JOIN entity_observations o ON o.id = l.entity_observation_id
71
- WHERE (
72
- lower(n.preferred_label) LIKE '%' || lower(?) || '%' ESCAPE '\\'
73
- OR lower(COALESCE(a.label, '')) LIKE '%' || lower(?) || '%' ESCAPE '\\'
74
- OR lower(COALESCE(o.surface_form, '')) LIKE '%' || lower(?) || '%' ESCAPE '\\'
75
- )
76
- `)
77
- .all(escapedQuery, escapedQuery, escapedQuery);
78
- const canonicalIdSet = new Set();
79
- for (const match of matchedRows) {
80
- try {
81
- canonicalIdSet.add((0, store_js_1.resolveCanonicalEntityId)(adapter, match.matched_id));
82
- }
83
- catch (err) {
84
- // Cycle or missing node — skip this match rather than poison the whole
85
- // recall. Merge integrity errors are surfaced elsewhere (the review
86
- // handler 409 path) where the user can actually act on them.
87
- if (!(err instanceof store_js_1.EntityMergeError)) {
88
- throw err;
89
- }
90
- }
91
- }
92
- if (canonicalIdSet.size === 0) {
93
- return [];
94
- }
95
- const canonicalIds = Array.from(canonicalIdSet);
96
- const placeholders = canonicalIds.map(() => '?').join(', ');
97
- const rows = adapter
98
- .prepare(`
99
- SELECT *
100
- FROM entity_nodes
101
- WHERE id IN (${placeholders})
102
- AND status = 'active'
103
- AND merged_into IS NULL
104
- ORDER BY updated_at DESC
105
- `)
106
- .all(...canonicalIds);
107
- const scopedRows = scopes.length === 0
108
- ? rows
109
- : rows.filter((row) =>
110
- // Fix 2 part B (P0): globally-scoped entities are not bound to
111
- // any narrower scope and must surface in every scoped query.
112
- // Without this passthrough, switching person observations from
113
- // channel-scope to global-scope (Fix 2 part A in
114
- // history-extractor.ts) would make persons invisible to scoped
115
- // recall callers, breaking the time-travel use case the fix is
116
- // meant to enable. scope_id is intentionally not compared for
117
- // globals — the global predicate is `scope_kind='global'` alone.
118
- row.scope_kind === 'global' ||
119
- scopes.some((scope) => scope.kind === row.scope_kind && row.scope_id === scope.id));
120
- const limitedRows = scopedRows.slice(0, options.limit ?? 10);
121
- const nodeLookup = Object.fromEntries(limitedRows.map((row) => [String(row.id), mapNode(row)]));
122
- const entityIds = limitedRows.map((row) => String(row.id));
123
- const aliasesByEntity = new Map();
124
- const latestTimelineByEntity = new Map();
125
- if (entityIds.length > 0) {
126
- const placeholders = entityIds.map(() => '?').join(', ');
127
- const aliasRows = adapter
128
- .prepare(`
129
- SELECT * FROM entity_aliases
130
- WHERE entity_id IN (${placeholders})
131
- ORDER BY entity_id ASC, created_at ASC
132
- `)
133
- .all(...entityIds);
134
- for (const row of aliasRows) {
135
- const alias = mapAlias(row);
136
- const existing = aliasesByEntity.get(alias.entity_id) ?? [];
137
- existing.push(alias);
138
- aliasesByEntity.set(alias.entity_id, existing);
139
- }
140
- const timelineRows = adapter
141
- .prepare(`
142
- SELECT *
143
- FROM (
144
- SELECT *,
145
- ROW_NUMBER() OVER (
146
- PARTITION BY entity_id
147
- ORDER BY COALESCE(observed_at, created_at) DESC
148
- ) AS row_num
149
- FROM entity_timeline_events
150
- WHERE entity_id IN (${placeholders})
151
- )
152
- WHERE row_num = 1
153
- `)
154
- .all(...entityIds);
155
- for (const row of timelineRows) {
156
- const timeline = mapTimeline(row);
157
- latestTimelineByEntity.set(timeline.entity_id, timeline);
158
- }
159
- }
160
- const result = [];
161
- for (const row of limitedRows) {
162
- const node = mapNode(row);
163
- const projected = (0, projection_js_1.projectEntityToRecallSummary)(node, aliasesByEntity.get(node.id) ?? [], latestTimelineByEntity.get(node.id) ?? null, { nodeLookup });
164
- projected.read_identity = (0, read_identity_js_1.resolveReadIdentity)(projected, [
165
- { id: node.id, label: node.preferred_label, kind: node.kind },
166
- ]);
167
- result.push(projected);
168
- }
169
- return result;
170
- }
171
- //# sourceMappingURL=recall-bridge.js.map
@@ -1,8 +0,0 @@
1
- import type { EntityMergeAction, EntityResolutionCandidate } from './types.js';
2
- export interface ResolutionDecision {
3
- candidate: EntityResolutionCandidate;
4
- decision: 'auto_merge' | 'review';
5
- reason: string;
6
- actions: EntityMergeAction[];
7
- }
8
- //# sourceMappingURL=resolution-engine.d.ts.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=resolution-engine.js.map
@@ -1,35 +0,0 @@
1
- export interface RollbackPreviewInput {
2
- entityId: string;
3
- mergeActionId?: string;
4
- observationId?: string;
5
- maxAffectedRows?: number;
6
- }
7
- export interface RollbackPreviewEntityChange {
8
- entity_id: string;
9
- label: string;
10
- status_after: 'active' | 'merged';
11
- active_lineage_after: number;
12
- summary: string;
13
- }
14
- export interface RollbackPreviewMemoryChange {
15
- id: string;
16
- topic: string;
17
- summary: string;
18
- created_at: number;
19
- }
20
- export interface RollbackPreviewMetricMovement {
21
- metric: 'false_merge_rate' | 'projection_fragmentation_rate';
22
- direction: 'increase' | 'decrease';
23
- reason: string;
24
- }
25
- export interface RollbackPreviewResult {
26
- entity_id: string;
27
- merge_action_id: string | null;
28
- preview_unavailable: boolean;
29
- history_incomplete: boolean;
30
- truncated: boolean;
31
- changed_entities: RollbackPreviewEntityChange[];
32
- changed_memories: RollbackPreviewMemoryChange[];
33
- metric_movement: RollbackPreviewMetricMovement[];
34
- }
35
- //# sourceMappingURL=rollback-preview.d.ts.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=rollback-preview.js.map
@@ -1,3 +0,0 @@
1
- export type SourceLocatorKind = 'db' | 'file' | 'url' | 'connector' | 'unknown';
2
- export declare function detectSourceLocatorKind(locator: string | null | undefined): SourceLocatorKind;
3
- //# sourceMappingURL=source-locator.d.ts.map