@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,271 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveEntity = resolveEntity;
4
- const ref_validation_js_1 = require("../edges/ref-validation.js");
5
- const normalization_js_1 = require("../entities/normalization.js");
6
- const store_js_1 = require("../entities/store.js");
7
- const types_js_1 = require("../edges/types.js");
8
- const errors_js_1 = require("./errors.js");
9
- const TWIN_REF_KIND_SET = new Set(types_js_1.TWIN_REF_KINDS);
10
- function hasScopes(scopes) {
11
- return Array.isArray(scopes) && scopes.length > 0;
12
- }
13
- function normalizeLabel(value) {
14
- try {
15
- return (0, normalization_js_1.normalizeEntityLabel)(value).normalized;
16
- }
17
- catch (error) {
18
- throw new errors_js_1.AgentGraphValidationError(error instanceof Error ? error.message : String(error));
19
- }
20
- }
21
- function entityVisible(entity, scopes) {
22
- if (!hasScopes(scopes)) {
23
- return true;
24
- }
25
- return scopes.some((scope) => entity.scope_kind === scope.kind && entity.scope_id === scope.id);
26
- }
27
- function isAtOrBeforeAsOf(value, asOfMs) {
28
- return typeof asOfMs !== 'number' || value <= asOfMs;
29
- }
30
- function scopeVisible(scopeKind, scopeId, scopes) {
31
- if (!hasScopes(scopes)) {
32
- return true;
33
- }
34
- return scopes.some((scope) => scope.kind === scopeKind && scope.id === scopeId);
35
- }
36
- function connectorVisible(connector, connectors) {
37
- return !connectors || connectors.length === 0 || connectors.includes(connector);
38
- }
39
- function hasProjectOrTenantFilter(visibility) {
40
- return ((Array.isArray(visibility.projectRefs) && visibility.projectRefs.length > 0) ||
41
- (typeof visibility.tenantId === 'string' && visibility.tenantId.length > 0));
42
- }
43
- function refsVisible(adapter, refs, visibility) {
44
- if (refs.length === 0) {
45
- return true;
46
- }
47
- try {
48
- (0, ref_validation_js_1.assertTwinRefsVisible)(adapter, refs, visibility);
49
- return true;
50
- }
51
- catch {
52
- return false;
53
- }
54
- }
55
- function parseSourceRefs(value, context) {
56
- if (value === undefined || value === null) {
57
- return [];
58
- }
59
- if (!Array.isArray(value)) {
60
- throw new Error(`${context}.source_refs must be an array.`);
61
- }
62
- const refs = [];
63
- for (const item of value) {
64
- if (item === null ||
65
- typeof item !== 'object' ||
66
- typeof item.kind !== 'string' ||
67
- typeof item.id !== 'string') {
68
- throw new Error(`${context}.source_refs entries must be TwinRef objects.`);
69
- }
70
- const kind = item.kind;
71
- const id = item.id.trim();
72
- if (!TWIN_REF_KIND_SET.has(kind) || id.length === 0) {
73
- throw new Error(`${context}.source_refs contains an invalid TwinRef.`);
74
- }
75
- refs.push({ kind, id });
76
- }
77
- return refs;
78
- }
79
- function aliasSourceRefs(adapter, aliasId, entityId) {
80
- const rows = adapter
81
- .prepare(`
82
- SELECT relation_attrs_json
83
- FROM twin_edges
84
- WHERE edge_type = 'alias_of'
85
- AND subject_kind = 'entity'
86
- AND subject_id = ?
87
- AND object_kind = 'entity'
88
- AND object_id = ?
89
- AND relation_attrs_json IS NOT NULL
90
- ORDER BY created_at DESC, edge_id ASC
91
- `)
92
- .all(entityId, entityId);
93
- const refs = [];
94
- const seen = new Set();
95
- for (const row of rows) {
96
- if (!row.relation_attrs_json) {
97
- continue;
98
- }
99
- const parsed = JSON.parse(row.relation_attrs_json);
100
- if (parsed === null ||
101
- typeof parsed !== 'object' ||
102
- parsed.alias_id !== aliasId) {
103
- continue;
104
- }
105
- for (const ref of parseSourceRefs(parsed.source_refs, `alias ${aliasId}`)) {
106
- const key = `${ref.kind}:${ref.id}`;
107
- if (!seen.has(key)) {
108
- seen.add(key);
109
- refs.push(ref);
110
- }
111
- }
112
- }
113
- return refs;
114
- }
115
- function aliasVisible(adapter, row, visibility, asOfMs) {
116
- if (!isAtOrBeforeAsOf(row.created_at, asOfMs)) {
117
- return false;
118
- }
119
- const sourceRefs = aliasSourceRefs(adapter, row.id, row.entity_id);
120
- if (row.source_type === 'agent' && sourceRefs.length === 0) {
121
- return false;
122
- }
123
- return refsVisible(adapter, sourceRefs, visibility);
124
- }
125
- function rawRefForObservation(adapter, row) {
126
- const raw = adapter
127
- .prepare(`
128
- SELECT event_index_id
129
- FROM connector_event_index
130
- WHERE event_index_id = ?
131
- OR (source_connector = ? AND source_id = ?)
132
- ORDER BY CASE WHEN event_index_id = ? THEN 0 ELSE 1 END
133
- LIMIT 1
134
- `)
135
- .get(row.source_raw_record_id, row.source_connector, row.source_raw_record_id, row.source_raw_record_id);
136
- return raw ? { kind: 'raw', id: raw.event_index_id } : null;
137
- }
138
- function observationVisible(adapter, row, visibility, asOfMs) {
139
- if (!isAtOrBeforeAsOf(row.timestamp_observed ?? row.created_at, asOfMs)) {
140
- return false;
141
- }
142
- if (!scopeVisible(row.scope_kind, row.scope_id, visibility.scopes)) {
143
- return false;
144
- }
145
- if (!connectorVisible(row.source_connector, visibility.connectors)) {
146
- return false;
147
- }
148
- const rawRef = rawRefForObservation(adapter, row);
149
- if (!rawRef) {
150
- return !hasProjectOrTenantFilter(visibility);
151
- }
152
- return refsVisible(adapter, [rawRef], visibility);
153
- }
154
- function canonicalEntity(adapter, entityId) {
155
- try {
156
- const canonicalId = (0, store_js_1.resolveCanonicalEntityId)(adapter, entityId);
157
- const entity = (0, store_js_1.getEntityNode)(canonicalId, adapter);
158
- return entity && entity.status === 'active' ? entity : null;
159
- }
160
- catch (error) {
161
- if (error instanceof store_js_1.EntityMergeError) {
162
- throw new errors_js_1.AgentGraphValidationError(`${error.code}: ${error.message}`);
163
- }
164
- throw error;
165
- }
166
- }
167
- function contextBoost(adapter, entityId, contextRefs, visibility, asOfMs) {
168
- if (!contextRefs || contextRefs.length === 0) {
169
- return 0;
170
- }
171
- // Spread rather than re-list: see graph-query's listFilteredEdges.
172
- const edges = (0, ref_validation_js_1.listVisibleTwinEdgesForRefs)(adapter, contextRefs, { ...visibility, asOfMs });
173
- return edges.some((edge) => (edge.subject_ref.kind === 'entity' && edge.subject_ref.id === entityId) ||
174
- (edge.object_ref.kind === 'entity' && edge.object_ref.id === entityId))
175
- ? 0.2
176
- : 0;
177
- }
178
- function resolveEntity(adapter, input) {
179
- const normalized = normalizeLabel(input.label);
180
- const limit = Math.max(1, Math.floor(input.limit ?? 5));
181
- const visibility = {
182
- scopes: input.scopes,
183
- connectors: input.connectors,
184
- projectRefs: input.project_refs,
185
- tenantId: input.tenant_id,
186
- asOfMs: input.as_of_ms,
187
- ...(input.channels ? { channels: input.channels } : {}),
188
- };
189
- if (input.context_refs && input.context_refs.length > 0) {
190
- try {
191
- (0, ref_validation_js_1.assertTwinRefsVisible)(adapter, input.context_refs, visibility);
192
- }
193
- catch (error) {
194
- throw new errors_js_1.AgentGraphValidationError(error instanceof Error ? error.message : String(error));
195
- }
196
- }
197
- const candidates = new Map();
198
- const recordCandidate = (entityId, matchedLabel, matchSource, baseScore) => {
199
- const entity = canonicalEntity(adapter, entityId);
200
- if (!entity ||
201
- !entityVisible(entity, input.scopes) ||
202
- !isAtOrBeforeAsOf(entity.created_at, input.as_of_ms)) {
203
- return;
204
- }
205
- const score = baseScore + contextBoost(adapter, entity.id, input.context_refs, visibility, input.as_of_ms);
206
- const existing = candidates.get(entity.id);
207
- if (!existing || score > existing.score) {
208
- candidates.set(entity.id, {
209
- entity,
210
- matched_label: matchedLabel,
211
- match_source: matchSource,
212
- score,
213
- });
214
- }
215
- };
216
- const nodeRows = adapter
217
- .prepare(`
218
- SELECT id, preferred_label
219
- FROM entity_nodes
220
- WHERE status = 'active'
221
- `)
222
- .all();
223
- for (const row of nodeRows) {
224
- if (normalizeLabel(row.preferred_label) === normalized) {
225
- recordCandidate(row.id, row.preferred_label, 'preferred_label', 1);
226
- }
227
- }
228
- const aliasRows = adapter
229
- .prepare(`
230
- SELECT id, entity_id, label, normalized_label, source_type, created_at
231
- FROM entity_aliases
232
- WHERE status = 'active'
233
- `)
234
- .all();
235
- for (const row of aliasRows) {
236
- if (aliasVisible(adapter, row, visibility, input.as_of_ms) &&
237
- (row.normalized_label === normalized || normalizeLabel(row.label) === normalized)) {
238
- recordCandidate(row.entity_id, row.label, 'alias', 0.95);
239
- }
240
- }
241
- const observationRows = adapter
242
- .prepare(`
243
- SELECT
244
- l.canonical_entity_id, o.surface_form, o.normalized_form,
245
- o.scope_kind, o.scope_id, o.source_connector, o.source_raw_record_id,
246
- o.timestamp_observed, o.created_at
247
- FROM entity_lineage_links l
248
- JOIN entity_observations o ON o.id = l.entity_observation_id
249
- WHERE l.status = 'active'
250
- `)
251
- .all();
252
- for (const row of observationRows) {
253
- if (observationVisible(adapter, row, visibility, input.as_of_ms) &&
254
- (row.normalized_form === normalized || normalizeLabel(row.surface_form) === normalized)) {
255
- recordCandidate(row.canonical_entity_id, row.surface_form, 'observation', 0.85);
256
- }
257
- }
258
- const sorted = Array.from(candidates.values())
259
- .sort((left, right) => {
260
- if (right.score !== left.score) {
261
- return right.score - left.score;
262
- }
263
- return left.entity.id.localeCompare(right.entity.id);
264
- })
265
- .slice(0, limit);
266
- return {
267
- entity: sorted[0]?.entity ?? null,
268
- candidates: sorted,
269
- };
270
- }
271
- //# sourceMappingURL=entity-resolve.js.map
@@ -1,4 +0,0 @@
1
- export declare class AgentGraphValidationError extends Error {
2
- constructor(message: string);
3
- }
4
- //# sourceMappingURL=errors.d.ts.map
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentGraphValidationError = void 0;
4
- class AgentGraphValidationError extends Error {
5
- constructor(message) {
6
- super(message);
7
- this.name = 'AgentGraphValidationError';
8
- }
9
- }
10
- exports.AgentGraphValidationError = AgentGraphValidationError;
11
- //# sourceMappingURL=errors.js.map
@@ -1,5 +0,0 @@
1
- import type { AgentGraphAdapter, AgentGraphResult, GraphNeighborhoodInput, GraphPathsInput, GraphPathsResult, GraphTimelineInput, GraphTimelineResult } from './types.js';
2
- export declare function getGraphNeighborhood(adapter: AgentGraphAdapter, input: GraphNeighborhoodInput): AgentGraphResult;
3
- export declare function getGraphPaths(adapter: AgentGraphAdapter, input: GraphPathsInput): GraphPathsResult;
4
- export declare function getGraphTimeline(adapter: AgentGraphAdapter, input: GraphTimelineInput): GraphTimelineResult;
5
- //# sourceMappingURL=graph-query.d.ts.map
@@ -1,360 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGraphNeighborhood = getGraphNeighborhood;
4
- exports.getGraphPaths = getGraphPaths;
5
- exports.getGraphTimeline = getGraphTimeline;
6
- const ref_validation_js_1 = require("../edges/ref-validation.js");
7
- const store_js_1 = require("../entities/store.js");
8
- const errors_js_1 = require("./errors.js");
9
- const DEFAULT_GRAPH_LIMIT = 100;
10
- const DEFAULT_PATH_LIMIT = 10;
11
- const MAX_DEPTH = 5;
12
- function refKey(ref) {
13
- return `${ref.kind}:${ref.id}`;
14
- }
15
- function edgeKey(edge) {
16
- return edge.edge_id;
17
- }
18
- function eventKey(event) {
19
- if (event.kind === 'edge') {
20
- return event.edge.edge_id;
21
- }
22
- return `${event.ref.kind}:${event.ref.id}`;
23
- }
24
- function eventKindRank(kind) {
25
- if (kind === 'entity') {
26
- return 0;
27
- }
28
- if (kind === 'memory') {
29
- return 1;
30
- }
31
- if (kind === 'raw') {
32
- return 2;
33
- }
34
- if (kind === 'case') {
35
- return 3;
36
- }
37
- return 4;
38
- }
39
- function normalizeDepth(value, fallback) {
40
- if (typeof value !== 'number' || !Number.isFinite(value)) {
41
- return fallback;
42
- }
43
- return Math.max(0, Math.min(MAX_DEPTH, Math.floor(value)));
44
- }
45
- function normalizeLimit(value, fallback) {
46
- if (typeof value !== 'number' || !Number.isFinite(value)) {
47
- return fallback;
48
- }
49
- return Math.max(1, Math.floor(value));
50
- }
51
- function addNode(nodes, seen, ref) {
52
- const key = refKey(ref);
53
- if (!seen.has(key)) {
54
- seen.add(key);
55
- nodes.push(ref);
56
- }
57
- }
58
- function addRef(refs, seen, ref) {
59
- if (ref.kind === 'edge' || ref.kind === 'report') {
60
- return;
61
- }
62
- const key = refKey(ref);
63
- if (!seen.has(key)) {
64
- seen.add(key);
65
- refs.push(ref);
66
- }
67
- }
68
- function oppositeRef(edge, current) {
69
- const currentKey = refKey(current);
70
- const refs = [];
71
- if (refKey(edge.subject_ref) !== currentKey) {
72
- refs.push(edge.subject_ref);
73
- }
74
- if (refKey(edge.object_ref) !== currentKey) {
75
- refs.push(edge.object_ref);
76
- }
77
- if (refs.length === 0) {
78
- refs.push(edge.object_ref);
79
- }
80
- return refs;
81
- }
82
- function listFilteredEdges(adapter, refs, input) {
83
- // Spread, not a field-by-field re-listing. Re-listing is how the channel grant was
84
- // silently dropped here while every other path enforced it: a new field on the
85
- // visibility type simply never arrived, and nothing failed to say so.
86
- return (0, ref_validation_js_1.listVisibleTwinEdgesForRefs)(adapter, refs, {
87
- ...input.visibility,
88
- edgeTypes: input.edge_filters?.edge_types,
89
- asOfMs: input.as_of_ms,
90
- limit: input.limit,
91
- });
92
- }
93
- function assertRefsVisible(adapter, refs, visibility, asOfMs) {
94
- try {
95
- (0, ref_validation_js_1.assertTwinRefsVisible)(adapter, refs, { ...visibility, asOfMs });
96
- }
97
- catch (error) {
98
- throw new errors_js_1.AgentGraphValidationError(error instanceof Error ? error.message : String(error));
99
- }
100
- }
101
- function graphVisibility(input) {
102
- return {
103
- scopes: input.scopes,
104
- connectors: input.connectors,
105
- projectRefs: input.project_refs,
106
- tenantId: input.tenant_id,
107
- ...(input.channels ? { channels: input.channels } : {}),
108
- };
109
- }
110
- function numberMs(value, field, refId) {
111
- if (typeof value === 'number' && Number.isFinite(value)) {
112
- return Math.floor(value);
113
- }
114
- throw new Error(`Invalid ${field} timestamp for graph timeline ref ${refId}.`);
115
- }
116
- function nullableNumberMs(value, field, refId) {
117
- if (value === null || value === undefined) {
118
- return null;
119
- }
120
- return numberMs(value, field, refId);
121
- }
122
- function parseTimestampMs(value, field, refId) {
123
- if (typeof value === 'number' && Number.isFinite(value)) {
124
- return Math.floor(value);
125
- }
126
- if (typeof value === 'string') {
127
- const parsed = Date.parse(value);
128
- if (Number.isFinite(parsed)) {
129
- return parsed;
130
- }
131
- }
132
- throw new Error(`Invalid ${field} timestamp for graph timeline ref ${refId}.`);
133
- }
134
- function timelineWindow(input) {
135
- const upperBounds = [input.to_ms, input.as_of_ms].filter((value) => typeof value === 'number');
136
- return {
137
- fromMs: input.from_ms,
138
- toMs: upperBounds.length > 0 ? Math.min(...upperBounds) : undefined,
139
- };
140
- }
141
- function isInTimelineWindow(atMs, window) {
142
- return ((window.fromMs === undefined || atMs >= window.fromMs) &&
143
- (window.toMs === undefined || atMs <= window.toMs));
144
- }
145
- function loadTimelineRecordEvent(adapter, ref) {
146
- if (ref.kind === 'entity') {
147
- const entity = (0, store_js_1.getEntityNode)(ref.id, adapter);
148
- if (!entity || entity.status !== 'active') {
149
- return null;
150
- }
151
- return { kind: 'entity', at_ms: entity.created_at, ref, entity };
152
- }
153
- if (ref.kind === 'memory') {
154
- const row = adapter
155
- .prepare(`
156
- SELECT id, topic, decision, created_at, event_datetime
157
- FROM decisions
158
- WHERE id = ?
159
- LIMIT 1
160
- `)
161
- .get(ref.id);
162
- if (!row) {
163
- return null;
164
- }
165
- const eventDatetime = nullableNumberMs(row.event_datetime, 'decisions.event_datetime', ref.id);
166
- const createdAt = numberMs(row.created_at, 'decisions.created_at', ref.id);
167
- return {
168
- kind: 'memory',
169
- at_ms: eventDatetime ?? createdAt,
170
- ref,
171
- memory: {
172
- id: row.id,
173
- topic: row.topic,
174
- decision: row.decision,
175
- created_at: createdAt,
176
- event_datetime: eventDatetime,
177
- },
178
- };
179
- }
180
- if (ref.kind === 'raw') {
181
- const row = adapter
182
- .prepare(`
183
- SELECT
184
- event_index_id, source_connector, source_type, source_id, source_locator,
185
- title, event_datetime, source_timestamp_ms
186
- FROM connector_event_index
187
- WHERE event_index_id = ?
188
- LIMIT 1
189
- `)
190
- .get(ref.id);
191
- if (!row) {
192
- return null;
193
- }
194
- const eventDatetime = nullableNumberMs(row.event_datetime, 'connector_event_index.event_datetime', ref.id);
195
- const sourceTimestampMs = numberMs(row.source_timestamp_ms, 'connector_event_index.source_timestamp_ms', ref.id);
196
- return {
197
- kind: 'raw',
198
- at_ms: eventDatetime ?? sourceTimestampMs,
199
- ref,
200
- raw: {
201
- event_index_id: row.event_index_id,
202
- source_connector: row.source_connector,
203
- source_type: row.source_type,
204
- source_id: row.source_id,
205
- source_locator: row.source_locator,
206
- title: row.title,
207
- event_datetime: eventDatetime,
208
- source_timestamp_ms: sourceTimestampMs,
209
- },
210
- };
211
- }
212
- if (ref.kind === 'case') {
213
- const row = adapter
214
- .prepare(`
215
- SELECT case_id, title, status, last_activity_at, created_at, updated_at
216
- FROM case_truth
217
- WHERE case_id = ?
218
- LIMIT 1
219
- `)
220
- .get(ref.id);
221
- if (!row) {
222
- return null;
223
- }
224
- return {
225
- kind: 'case',
226
- at_ms: parseTimestampMs(row.last_activity_at ?? row.updated_at, 'case_truth.updated_at', ref.id),
227
- ref,
228
- case: {
229
- case_id: row.case_id,
230
- title: row.title,
231
- status: row.status,
232
- created_at: row.created_at,
233
- updated_at: row.updated_at,
234
- last_activity_at: row.last_activity_at,
235
- },
236
- };
237
- }
238
- return null;
239
- }
240
- function getGraphNeighborhood(adapter, input) {
241
- const depth = normalizeDepth(input.depth, 1);
242
- const limit = normalizeLimit(input.limit, DEFAULT_GRAPH_LIMIT);
243
- const visibility = graphVisibility(input);
244
- assertRefsVisible(adapter, [input.ref], visibility, input.as_of_ms);
245
- const nodes = [];
246
- const edges = [];
247
- const seenNodes = new Set();
248
- const seenEdges = new Set();
249
- addNode(nodes, seenNodes, input.ref);
250
- let frontier = [input.ref];
251
- for (let currentDepth = 0; currentDepth < depth && frontier.length > 0; currentDepth++) {
252
- const found = listFilteredEdges(adapter, frontier, {
253
- visibility,
254
- edge_filters: input.edge_filters,
255
- as_of_ms: input.as_of_ms,
256
- limit,
257
- });
258
- const nextFrontier = [];
259
- const nextKeys = new Set();
260
- for (const edge of found) {
261
- if (seenEdges.size >= limit) {
262
- break;
263
- }
264
- if (!seenEdges.has(edgeKey(edge))) {
265
- seenEdges.add(edgeKey(edge));
266
- edges.push(edge);
267
- }
268
- for (const endpoint of [edge.subject_ref, edge.object_ref]) {
269
- const before = seenNodes.size;
270
- addNode(nodes, seenNodes, endpoint);
271
- if (seenNodes.size > before && !nextKeys.has(refKey(endpoint))) {
272
- nextKeys.add(refKey(endpoint));
273
- nextFrontier.push(endpoint);
274
- }
275
- }
276
- }
277
- frontier = nextFrontier;
278
- }
279
- return { nodes, edges };
280
- }
281
- function getGraphPaths(adapter, input) {
282
- const maxDepth = normalizeDepth(input.max_depth, 3);
283
- const limit = normalizeLimit(input.limit, DEFAULT_PATH_LIMIT);
284
- const visibility = graphVisibility(input);
285
- assertRefsVisible(adapter, [input.from_ref, input.to_ref], visibility, input.as_of_ms);
286
- const targetKey = refKey(input.to_ref);
287
- const queue = [{ refs: [input.from_ref], edges: [] }];
288
- const paths = [];
289
- while (queue.length > 0 && paths.length < limit) {
290
- const path = queue.shift();
291
- if (!path) {
292
- break;
293
- }
294
- const current = path.refs[path.refs.length - 1];
295
- if (!current || path.edges.length >= maxDepth) {
296
- continue;
297
- }
298
- const edges = listFilteredEdges(adapter, [current], {
299
- visibility,
300
- edge_filters: input.edge_filters,
301
- as_of_ms: input.as_of_ms,
302
- });
303
- for (const edge of edges) {
304
- for (const next of oppositeRef(edge, current)) {
305
- if (path.refs.some((ref) => refKey(ref) === refKey(next))) {
306
- continue;
307
- }
308
- const nextPath = { refs: [...path.refs, next], edges: [...path.edges, edge] };
309
- if (refKey(next) === targetKey) {
310
- paths.push(nextPath);
311
- if (paths.length >= limit) {
312
- break;
313
- }
314
- }
315
- else {
316
- queue.push(nextPath);
317
- }
318
- }
319
- if (paths.length >= limit) {
320
- break;
321
- }
322
- }
323
- }
324
- return { paths };
325
- }
326
- function getGraphTimeline(adapter, input) {
327
- const visibility = graphVisibility(input);
328
- assertRefsVisible(adapter, [input.ref], visibility, input.as_of_ms);
329
- const limit = normalizeLimit(input.limit, DEFAULT_GRAPH_LIMIT);
330
- const window = timelineWindow(input);
331
- const edges = listFilteredEdges(adapter, [input.ref], {
332
- visibility,
333
- edge_filters: input.edge_filters,
334
- as_of_ms: input.as_of_ms,
335
- }).filter((edge) => isInTimelineWindow(edge.created_at, window));
336
- const refs = [];
337
- const seenRefs = new Set();
338
- addRef(refs, seenRefs, input.ref);
339
- for (const edge of edges) {
340
- addRef(refs, seenRefs, edge.subject_ref);
341
- addRef(refs, seenRefs, edge.object_ref);
342
- }
343
- const events = [];
344
- for (const ref of refs) {
345
- const event = loadTimelineRecordEvent(adapter, ref);
346
- if (event && isInTimelineWindow(event.at_ms, window)) {
347
- events.push(event);
348
- }
349
- }
350
- events.push(...edges.map((edge) => ({ kind: 'edge', at_ms: edge.created_at, edge })));
351
- return {
352
- ref: input.ref,
353
- events: events
354
- .sort((left, right) => left.at_ms - right.at_ms ||
355
- eventKindRank(left.kind) - eventKindRank(right.kind) ||
356
- eventKey(left).localeCompare(eventKey(right)))
357
- .slice(0, limit),
358
- };
359
- }
360
- //# sourceMappingURL=graph-query.js.map
@@ -1,6 +0,0 @@
1
- export * from './types.js';
2
- export * from './errors.js';
3
- export * from './entity-resolve.js';
4
- export * from './graph-query.js';
5
- export * from './alias-write.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1,8 +0,0 @@
1
- import type { DatabaseAdapter } from '../db-manager.js';
2
- import { type AgentSituationSourceReadInput, type VisibleAgentSituationSources } from './source-readers.js';
3
- import type { AgentSituationInput, AgentSituationPacketRecord } from './types.js';
4
- type SituationBuilderAdapter = Pick<DatabaseAdapter, 'prepare'>;
5
- export declare function listVisibleAgentSituationSources(adapter: SituationBuilderAdapter, input: AgentSituationSourceReadInput): VisibleAgentSituationSources;
6
- export declare function buildAgentSituationPacketRecord(adapter: SituationBuilderAdapter, input: AgentSituationInput): AgentSituationPacketRecord;
7
- export {};
8
- //# sourceMappingURL=builder.d.ts.map