@exellix/exellix-runtime 3.5.1

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 (318) hide show
  1. package/README.md +422 -0
  2. package/dist/catalox-inventory/catalox-execution-matrix-inventory-cli.d.ts +4 -0
  3. package/dist/catalox-inventory/catalox-execution-matrix-inventory-cli.d.ts.map +1 -0
  4. package/dist/catalox-inventory/catalox-execution-matrix-inventory-cli.js +311 -0
  5. package/dist/catalox-inventory/catalox-execution-matrix-inventory-cli.js.map +1 -0
  6. package/dist/catalox-inventory/catalox-execution-matrix-inventory.d.ts +64 -0
  7. package/dist/catalox-inventory/catalox-execution-matrix-inventory.d.ts.map +1 -0
  8. package/dist/catalox-inventory/catalox-execution-matrix-inventory.js +226 -0
  9. package/dist/catalox-inventory/catalox-execution-matrix-inventory.js.map +1 -0
  10. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.d.ts +145 -0
  11. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.d.ts.map +1 -0
  12. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.js +477 -0
  13. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.js.map +1 -0
  14. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.spec.d.ts +2 -0
  15. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.spec.d.ts.map +1 -0
  16. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.spec.js +34 -0
  17. package/dist/catalox-inventory/catalox-xmemory-entity-count-report.spec.js.map +1 -0
  18. package/dist/cli/argv.d.ts +5 -0
  19. package/dist/cli/argv.d.ts.map +1 -0
  20. package/dist/cli/argv.js +32 -0
  21. package/dist/cli/argv.js.map +1 -0
  22. package/dist/cli/commands/health.d.ts +2 -0
  23. package/dist/cli/commands/health.d.ts.map +1 -0
  24. package/dist/cli/commands/health.js +23 -0
  25. package/dist/cli/commands/health.js.map +1 -0
  26. package/dist/cli/commands/matrix-link.d.ts +2 -0
  27. package/dist/cli/commands/matrix-link.d.ts.map +1 -0
  28. package/dist/cli/commands/matrix-link.js +56 -0
  29. package/dist/cli/commands/matrix-link.js.map +1 -0
  30. package/dist/cli/commands/matrix-read.d.ts +2 -0
  31. package/dist/cli/commands/matrix-read.d.ts.map +1 -0
  32. package/dist/cli/commands/matrix-read.js +73 -0
  33. package/dist/cli/commands/matrix-read.js.map +1 -0
  34. package/dist/cli/env.d.ts +6 -0
  35. package/dist/cli/env.d.ts.map +1 -0
  36. package/dist/cli/env.js +39 -0
  37. package/dist/cli/env.js.map +1 -0
  38. package/dist/cli/exellix-runtime-cli.d.ts +3 -0
  39. package/dist/cli/exellix-runtime-cli.d.ts.map +1 -0
  40. package/dist/cli/exellix-runtime-cli.js +55 -0
  41. package/dist/cli/exellix-runtime-cli.js.map +1 -0
  42. package/dist/cli/help.d.ts +19 -0
  43. package/dist/cli/help.d.ts.map +1 -0
  44. package/dist/cli/help.js +94 -0
  45. package/dist/cli/help.js.map +1 -0
  46. package/dist/client-toolbox/bundle.d.ts +17 -0
  47. package/dist/client-toolbox/bundle.d.ts.map +1 -0
  48. package/dist/client-toolbox/bundle.js +17 -0
  49. package/dist/client-toolbox/bundle.js.map +1 -0
  50. package/dist/client-toolbox/client-toolbox.spec.d.ts +2 -0
  51. package/dist/client-toolbox/client-toolbox.spec.d.ts.map +1 -0
  52. package/dist/client-toolbox/client-toolbox.spec.js +145 -0
  53. package/dist/client-toolbox/client-toolbox.spec.js.map +1 -0
  54. package/dist/client-toolbox/index.d.ts +4 -0
  55. package/dist/client-toolbox/index.d.ts.map +1 -0
  56. package/dist/client-toolbox/index.js +4 -0
  57. package/dist/client-toolbox/index.js.map +1 -0
  58. package/dist/client-toolbox/matrix-config.d.ts +67 -0
  59. package/dist/client-toolbox/matrix-config.d.ts.map +1 -0
  60. package/dist/client-toolbox/matrix-config.js +140 -0
  61. package/dist/client-toolbox/matrix-config.js.map +1 -0
  62. package/dist/client-toolbox/matrix-materialize.d.ts +56 -0
  63. package/dist/client-toolbox/matrix-materialize.d.ts.map +1 -0
  64. package/dist/client-toolbox/matrix-materialize.js +130 -0
  65. package/dist/client-toolbox/matrix-materialize.js.map +1 -0
  66. package/dist/dev/matrix-read-dashboard-smoke.d.ts +2 -0
  67. package/dist/dev/matrix-read-dashboard-smoke.d.ts.map +1 -0
  68. package/dist/dev/matrix-read-dashboard-smoke.js +12 -0
  69. package/dist/dev/matrix-read-dashboard-smoke.js.map +1 -0
  70. package/dist/dev/runtime-real-dev-server.d.ts +2 -0
  71. package/dist/dev/runtime-real-dev-server.d.ts.map +1 -0
  72. package/dist/dev/runtime-real-dev-server.js +90 -0
  73. package/dist/dev/runtime-real-dev-server.js.map +1 -0
  74. package/dist/execution-matrix/catalox-loader.d.ts +55 -0
  75. package/dist/execution-matrix/catalox-loader.d.ts.map +1 -0
  76. package/dist/execution-matrix/catalox-loader.js +199 -0
  77. package/dist/execution-matrix/catalox-loader.js.map +1 -0
  78. package/dist/execution-matrix/catalox-matrix-host.d.ts +20 -0
  79. package/dist/execution-matrix/catalox-matrix-host.d.ts.map +1 -0
  80. package/dist/execution-matrix/catalox-matrix-host.js +19 -0
  81. package/dist/execution-matrix/catalox-matrix-host.js.map +1 -0
  82. package/dist/execution-matrix/collections.d.ts +16 -0
  83. package/dist/execution-matrix/collections.d.ts.map +1 -0
  84. package/dist/execution-matrix/collections.js +75 -0
  85. package/dist/execution-matrix/collections.js.map +1 -0
  86. package/dist/execution-matrix/config-store.d.ts +104 -0
  87. package/dist/execution-matrix/config-store.d.ts.map +1 -0
  88. package/dist/execution-matrix/config-store.js +273 -0
  89. package/dist/execution-matrix/config-store.js.map +1 -0
  90. package/dist/execution-matrix/constants.d.ts +19 -0
  91. package/dist/execution-matrix/constants.d.ts.map +1 -0
  92. package/dist/execution-matrix/constants.js +19 -0
  93. package/dist/execution-matrix/constants.js.map +1 -0
  94. package/dist/execution-matrix/contracts.d.ts +568 -0
  95. package/dist/execution-matrix/contracts.d.ts.map +1 -0
  96. package/dist/execution-matrix/contracts.js +44 -0
  97. package/dist/execution-matrix/contracts.js.map +1 -0
  98. package/dist/execution-matrix/data-source.d.ts +43 -0
  99. package/dist/execution-matrix/data-source.d.ts.map +1 -0
  100. package/dist/execution-matrix/data-source.js +307 -0
  101. package/dist/execution-matrix/data-source.js.map +1 -0
  102. package/dist/execution-matrix/eligibility.d.ts +48 -0
  103. package/dist/execution-matrix/eligibility.d.ts.map +1 -0
  104. package/dist/execution-matrix/eligibility.js +89 -0
  105. package/dist/execution-matrix/eligibility.js.map +1 -0
  106. package/dist/execution-matrix/execution-matrix-claim-pause.d.ts +20 -0
  107. package/dist/execution-matrix/execution-matrix-claim-pause.d.ts.map +1 -0
  108. package/dist/execution-matrix/execution-matrix-claim-pause.js +18 -0
  109. package/dist/execution-matrix/execution-matrix-claim-pause.js.map +1 -0
  110. package/dist/execution-matrix/execution-matrix-claim-pause.spec.d.ts +2 -0
  111. package/dist/execution-matrix/execution-matrix-claim-pause.spec.d.ts.map +1 -0
  112. package/dist/execution-matrix/execution-matrix-claim-pause.spec.js +23 -0
  113. package/dist/execution-matrix/execution-matrix-claim-pause.spec.js.map +1 -0
  114. package/dist/execution-matrix/execution-matrix.live.spec.d.ts +2 -0
  115. package/dist/execution-matrix/execution-matrix.live.spec.d.ts.map +1 -0
  116. package/dist/execution-matrix/execution-matrix.live.spec.js +152 -0
  117. package/dist/execution-matrix/execution-matrix.live.spec.js.map +1 -0
  118. package/dist/execution-matrix/execution-matrix.live.xmemory.spec.d.ts +2 -0
  119. package/dist/execution-matrix/execution-matrix.live.xmemory.spec.d.ts.map +1 -0
  120. package/dist/execution-matrix/execution-matrix.live.xmemory.spec.js +346 -0
  121. package/dist/execution-matrix/execution-matrix.live.xmemory.spec.js.map +1 -0
  122. package/dist/execution-matrix/execution-matrix.spec.d.ts +2 -0
  123. package/dist/execution-matrix/execution-matrix.spec.d.ts.map +1 -0
  124. package/dist/execution-matrix/execution-matrix.spec.js +1786 -0
  125. package/dist/execution-matrix/execution-matrix.spec.js.map +1 -0
  126. package/dist/execution-matrix/execution-mode.d.ts +34 -0
  127. package/dist/execution-matrix/execution-mode.d.ts.map +1 -0
  128. package/dist/execution-matrix/execution-mode.js +72 -0
  129. package/dist/execution-matrix/execution-mode.js.map +1 -0
  130. package/dist/execution-matrix/factory.d.ts +72 -0
  131. package/dist/execution-matrix/factory.d.ts.map +1 -0
  132. package/dist/execution-matrix/factory.js +77 -0
  133. package/dist/execution-matrix/factory.js.map +1 -0
  134. package/dist/execution-matrix/graph-engine-datafilters-reexport.spec.d.ts +2 -0
  135. package/dist/execution-matrix/graph-engine-datafilters-reexport.spec.d.ts.map +1 -0
  136. package/dist/execution-matrix/graph-engine-datafilters-reexport.spec.js +48 -0
  137. package/dist/execution-matrix/graph-engine-datafilters-reexport.spec.js.map +1 -0
  138. package/dist/execution-matrix/graph-entry-xmemory-load.d.ts +130 -0
  139. package/dist/execution-matrix/graph-entry-xmemory-load.d.ts.map +1 -0
  140. package/dist/execution-matrix/graph-entry-xmemory-load.js +146 -0
  141. package/dist/execution-matrix/graph-entry-xmemory-load.js.map +1 -0
  142. package/dist/execution-matrix/graph-entry-xmemory-load.spec.d.ts +2 -0
  143. package/dist/execution-matrix/graph-entry-xmemory-load.spec.d.ts.map +1 -0
  144. package/dist/execution-matrix/graph-entry-xmemory-load.spec.js +66 -0
  145. package/dist/execution-matrix/graph-entry-xmemory-load.spec.js.map +1 -0
  146. package/dist/execution-matrix/graph-operational-aggregates.d.ts +47 -0
  147. package/dist/execution-matrix/graph-operational-aggregates.d.ts.map +1 -0
  148. package/dist/execution-matrix/graph-operational-aggregates.js +137 -0
  149. package/dist/execution-matrix/graph-operational-aggregates.js.map +1 -0
  150. package/dist/execution-matrix/graph-operational-lifecycle.d.ts +43 -0
  151. package/dist/execution-matrix/graph-operational-lifecycle.d.ts.map +1 -0
  152. package/dist/execution-matrix/graph-operational-lifecycle.js +88 -0
  153. package/dist/execution-matrix/graph-operational-lifecycle.js.map +1 -0
  154. package/dist/execution-matrix/graph-operational.spec.d.ts +2 -0
  155. package/dist/execution-matrix/graph-operational.spec.d.ts.map +1 -0
  156. package/dist/execution-matrix/graph-operational.spec.js +203 -0
  157. package/dist/execution-matrix/graph-operational.spec.js.map +1 -0
  158. package/dist/execution-matrix/index.d.ts +73 -0
  159. package/dist/execution-matrix/index.d.ts.map +1 -0
  160. package/dist/execution-matrix/index.js +57 -0
  161. package/dist/execution-matrix/index.js.map +1 -0
  162. package/dist/execution-matrix/live-tier-open.d.ts +6 -0
  163. package/dist/execution-matrix/live-tier-open.d.ts.map +1 -0
  164. package/dist/execution-matrix/live-tier-open.js +6 -0
  165. package/dist/execution-matrix/live-tier-open.js.map +1 -0
  166. package/dist/execution-matrix/materializer.d.ts +99 -0
  167. package/dist/execution-matrix/materializer.d.ts.map +1 -0
  168. package/dist/execution-matrix/materializer.js +210 -0
  169. package/dist/execution-matrix/materializer.js.map +1 -0
  170. package/dist/execution-matrix/matrix-activix.d.ts +24 -0
  171. package/dist/execution-matrix/matrix-activix.d.ts.map +1 -0
  172. package/dist/execution-matrix/matrix-activix.js +34 -0
  173. package/dist/execution-matrix/matrix-activix.js.map +1 -0
  174. package/dist/execution-matrix/matrix-data-tier.d.ts +55 -0
  175. package/dist/execution-matrix/matrix-data-tier.d.ts.map +1 -0
  176. package/dist/execution-matrix/matrix-data-tier.js +74 -0
  177. package/dist/execution-matrix/matrix-data-tier.js.map +1 -0
  178. package/dist/execution-matrix/matrix-execute-graph-adapter.d.ts +43 -0
  179. package/dist/execution-matrix/matrix-execute-graph-adapter.d.ts.map +1 -0
  180. package/dist/execution-matrix/matrix-execute-graph-adapter.js +62 -0
  181. package/dist/execution-matrix/matrix-execute-graph-adapter.js.map +1 -0
  182. package/dist/execution-matrix/matrix-execute-graph-adapter.spec.d.ts +2 -0
  183. package/dist/execution-matrix/matrix-execute-graph-adapter.spec.d.ts.map +1 -0
  184. package/dist/execution-matrix/matrix-execute-graph-adapter.spec.js +60 -0
  185. package/dist/execution-matrix/matrix-execute-graph-adapter.spec.js.map +1 -0
  186. package/dist/execution-matrix/matrix-logxer.d.ts +15 -0
  187. package/dist/execution-matrix/matrix-logxer.d.ts.map +1 -0
  188. package/dist/execution-matrix/matrix-logxer.js +65 -0
  189. package/dist/execution-matrix/matrix-logxer.js.map +1 -0
  190. package/dist/execution-matrix/matrix-read-tier.d.ts +41 -0
  191. package/dist/execution-matrix/matrix-read-tier.d.ts.map +1 -0
  192. package/dist/execution-matrix/matrix-read-tier.js +41 -0
  193. package/dist/execution-matrix/matrix-read-tier.js.map +1 -0
  194. package/dist/execution-matrix/memorix-entity-type-helpers.d.ts +25 -0
  195. package/dist/execution-matrix/memorix-entity-type-helpers.d.ts.map +1 -0
  196. package/dist/execution-matrix/memorix-entity-type-helpers.js +32 -0
  197. package/dist/execution-matrix/memorix-entity-type-helpers.js.map +1 -0
  198. package/dist/execution-matrix/memorix-entity-type-helpers.spec.d.ts +2 -0
  199. package/dist/execution-matrix/memorix-entity-type-helpers.spec.d.ts.map +1 -0
  200. package/dist/execution-matrix/memorix-entity-type-helpers.spec.js +83 -0
  201. package/dist/execution-matrix/memorix-entity-type-helpers.spec.js.map +1 -0
  202. package/dist/execution-matrix/memorix-inference-persister.d.ts +73 -0
  203. package/dist/execution-matrix/memorix-inference-persister.d.ts.map +1 -0
  204. package/dist/execution-matrix/memorix-inference-persister.js +126 -0
  205. package/dist/execution-matrix/memorix-inference-persister.js.map +1 -0
  206. package/dist/execution-matrix/memorix-inference-persister.spec.d.ts +2 -0
  207. package/dist/execution-matrix/memorix-inference-persister.spec.d.ts.map +1 -0
  208. package/dist/execution-matrix/memorix-inference-persister.spec.js +117 -0
  209. package/dist/execution-matrix/memorix-inference-persister.spec.js.map +1 -0
  210. package/dist/execution-matrix/memorix-matrix-entity-facet.d.ts +71 -0
  211. package/dist/execution-matrix/memorix-matrix-entity-facet.d.ts.map +1 -0
  212. package/dist/execution-matrix/memorix-matrix-entity-facet.js +91 -0
  213. package/dist/execution-matrix/memorix-matrix-entity-facet.js.map +1 -0
  214. package/dist/execution-matrix/memorix-matrix-entity-facet.spec.d.ts +2 -0
  215. package/dist/execution-matrix/memorix-matrix-entity-facet.spec.d.ts.map +1 -0
  216. package/dist/execution-matrix/memorix-matrix-entity-facet.spec.js +151 -0
  217. package/dist/execution-matrix/memorix-matrix-entity-facet.spec.js.map +1 -0
  218. package/dist/execution-matrix/memorix-runtime-tier.d.ts +153 -0
  219. package/dist/execution-matrix/memorix-runtime-tier.d.ts.map +1 -0
  220. package/dist/execution-matrix/memorix-runtime-tier.js +185 -0
  221. package/dist/execution-matrix/memorix-runtime-tier.js.map +1 -0
  222. package/dist/execution-matrix/memorix-tier-statistics.d.ts +103 -0
  223. package/dist/execution-matrix/memorix-tier-statistics.d.ts.map +1 -0
  224. package/dist/execution-matrix/memorix-tier-statistics.js +164 -0
  225. package/dist/execution-matrix/memorix-tier-statistics.js.map +1 -0
  226. package/dist/execution-matrix/memory-store.d.ts +20 -0
  227. package/dist/execution-matrix/memory-store.d.ts.map +1 -0
  228. package/dist/execution-matrix/memory-store.js +185 -0
  229. package/dist/execution-matrix/memory-store.js.map +1 -0
  230. package/dist/execution-matrix/navigator.d.ts +97 -0
  231. package/dist/execution-matrix/navigator.d.ts.map +1 -0
  232. package/dist/execution-matrix/navigator.js +119 -0
  233. package/dist/execution-matrix/navigator.js.map +1 -0
  234. package/dist/execution-matrix/orchestrator.d.ts +204 -0
  235. package/dist/execution-matrix/orchestrator.d.ts.map +1 -0
  236. package/dist/execution-matrix/orchestrator.js +656 -0
  237. package/dist/execution-matrix/orchestrator.js.map +1 -0
  238. package/dist/execution-matrix/records-eligibility.d.ts +34 -0
  239. package/dist/execution-matrix/records-eligibility.d.ts.map +1 -0
  240. package/dist/execution-matrix/records-eligibility.js +110 -0
  241. package/dist/execution-matrix/records-eligibility.js.map +1 -0
  242. package/dist/execution-matrix/records-eligibility.spec.d.ts +2 -0
  243. package/dist/execution-matrix/records-eligibility.spec.d.ts.map +1 -0
  244. package/dist/execution-matrix/records-eligibility.spec.js +154 -0
  245. package/dist/execution-matrix/records-eligibility.spec.js.map +1 -0
  246. package/dist/execution-matrix/run-loop.d.ts +140 -0
  247. package/dist/execution-matrix/run-loop.d.ts.map +1 -0
  248. package/dist/execution-matrix/run-loop.js +350 -0
  249. package/dist/execution-matrix/run-loop.js.map +1 -0
  250. package/dist/execution-matrix/runtime-connectivity-health.d.ts +128 -0
  251. package/dist/execution-matrix/runtime-connectivity-health.d.ts.map +1 -0
  252. package/dist/execution-matrix/runtime-connectivity-health.js +253 -0
  253. package/dist/execution-matrix/runtime-connectivity-health.js.map +1 -0
  254. package/dist/execution-matrix/runtime-connectivity-health.spec.d.ts +2 -0
  255. package/dist/execution-matrix/runtime-connectivity-health.spec.d.ts.map +1 -0
  256. package/dist/execution-matrix/runtime-connectivity-health.spec.js +23 -0
  257. package/dist/execution-matrix/runtime-connectivity-health.spec.js.map +1 -0
  258. package/dist/execution-matrix/runtime-objects.d.ts +16 -0
  259. package/dist/execution-matrix/runtime-objects.d.ts.map +1 -0
  260. package/dist/execution-matrix/runtime-objects.js +20 -0
  261. package/dist/execution-matrix/runtime-objects.js.map +1 -0
  262. package/dist/execution-matrix/runtime-store.d.ts +114 -0
  263. package/dist/execution-matrix/runtime-store.d.ts.map +1 -0
  264. package/dist/execution-matrix/runtime-store.js +506 -0
  265. package/dist/execution-matrix/runtime-store.js.map +1 -0
  266. package/dist/execution-matrix/snapshot-runner.d.ts +50 -0
  267. package/dist/execution-matrix/snapshot-runner.d.ts.map +1 -0
  268. package/dist/execution-matrix/snapshot-runner.js +111 -0
  269. package/dist/execution-matrix/snapshot-runner.js.map +1 -0
  270. package/dist/execution-matrix/source-resolver-factories.d.ts +31 -0
  271. package/dist/execution-matrix/source-resolver-factories.d.ts.map +1 -0
  272. package/dist/execution-matrix/source-resolver-factories.js +71 -0
  273. package/dist/execution-matrix/source-resolver-factories.js.map +1 -0
  274. package/dist/execution-matrix/source-resolver-factories.spec.d.ts +2 -0
  275. package/dist/execution-matrix/source-resolver-factories.spec.d.ts.map +1 -0
  276. package/dist/execution-matrix/source-resolver-factories.spec.js +127 -0
  277. package/dist/execution-matrix/source-resolver-factories.spec.js.map +1 -0
  278. package/dist/execution-matrix/source-resolver.d.ts +31 -0
  279. package/dist/execution-matrix/source-resolver.d.ts.map +1 -0
  280. package/dist/execution-matrix/source-resolver.js +26 -0
  281. package/dist/execution-matrix/source-resolver.js.map +1 -0
  282. package/dist/execution-matrix/status.d.ts +7 -0
  283. package/dist/execution-matrix/status.d.ts.map +1 -0
  284. package/dist/execution-matrix/status.js +33 -0
  285. package/dist/execution-matrix/status.js.map +1 -0
  286. package/dist/execution-matrix/xmemory-entity-collections.d.ts +69 -0
  287. package/dist/execution-matrix/xmemory-entity-collections.d.ts.map +1 -0
  288. package/dist/execution-matrix/xmemory-entity-collections.js +120 -0
  289. package/dist/execution-matrix/xmemory-entity-collections.js.map +1 -0
  290. package/dist/execution-matrix/xmemory-entity-collections.spec.d.ts +2 -0
  291. package/dist/execution-matrix/xmemory-entity-collections.spec.d.ts.map +1 -0
  292. package/dist/execution-matrix/xmemory-entity-collections.spec.js +112 -0
  293. package/dist/execution-matrix/xmemory-entity-collections.spec.js.map +1 -0
  294. package/dist/execution-matrix/xmemory-op-tier.d.ts +172 -0
  295. package/dist/execution-matrix/xmemory-op-tier.d.ts.map +1 -0
  296. package/dist/execution-matrix/xmemory-op-tier.js +339 -0
  297. package/dist/execution-matrix/xmemory-op-tier.js.map +1 -0
  298. package/dist/execution-matrix/xmemory-op-tier.spec.d.ts +2 -0
  299. package/dist/execution-matrix/xmemory-op-tier.spec.d.ts.map +1 -0
  300. package/dist/execution-matrix/xmemory-op-tier.spec.js +198 -0
  301. package/dist/execution-matrix/xmemory-op-tier.spec.js.map +1 -0
  302. package/dist/execution-matrix/xronox-matrix-factory.d.ts +38 -0
  303. package/dist/execution-matrix/xronox-matrix-factory.d.ts.map +1 -0
  304. package/dist/execution-matrix/xronox-matrix-factory.js +77 -0
  305. package/dist/execution-matrix/xronox-matrix-factory.js.map +1 -0
  306. package/dist/execution-matrix/xronox-store-native-driver-hooks.d.ts +15 -0
  307. package/dist/execution-matrix/xronox-store-native-driver-hooks.d.ts.map +1 -0
  308. package/dist/execution-matrix/xronox-store-native-driver-hooks.js +41 -0
  309. package/dist/execution-matrix/xronox-store-native-driver-hooks.js.map +1 -0
  310. package/dist/test-fixtures/exellix-test-matrix-ids.d.ts +16 -0
  311. package/dist/test-fixtures/exellix-test-matrix-ids.d.ts.map +1 -0
  312. package/dist/test-fixtures/exellix-test-matrix-ids.js +16 -0
  313. package/dist/test-fixtures/exellix-test-matrix-ids.js.map +1 -0
  314. package/dist/test-fixtures/seed-exellix-test-matrix-config.d.ts +26 -0
  315. package/dist/test-fixtures/seed-exellix-test-matrix-config.d.ts.map +1 -0
  316. package/dist/test-fixtures/seed-exellix-test-matrix-config.js +82 -0
  317. package/dist/test-fixtures/seed-exellix-test-matrix-config.js.map +1 -0
  318. package/package.json +67 -0
package/README.md ADDED
@@ -0,0 +1,422 @@
1
+ # @exellix/exellix-runtime
2
+
3
+ > **Integrating a BFF or worker?** → **[docs/client-integration.md](docs/client-integration.md)** (install, Mongo, reads, jobs HTTP, checklist) · **[docs/graph-execution-record-placement.md](docs/graph-execution-record-placement.md)** (record → `runtime.input` only) · **[docs/README.md](docs/README.md)** (full index)
4
+
5
+ TypeScript runtime for **orchestrating Exellix graph execution at scale**: an **execution matrix** ties many inputs (from xmemory) to one or more graphs, tracks per-graph lifecycle (`not-started` → `in-progress` → `completed` | `failed` | `skipped`), stores successful **inferences** on the row document, and records **failures** in a separate collection. Design-time matrix definitions live in **Catalox**; durable execution state lives in **MongoDB** (matrix rows, failures, snapshots, and config collections — opened via **`createExellixMatrixDataTier`** from this package; **`@exellix/exellix-jobs`** composes **this** package for worker semantics). Individual graph runs go through **@exellix/graph-engine** (this package depends on **`^5.14.0`**; `createExellixGraphRuntime().executeGraph` receives `{ model: GraphModelObject, runtime: GraphRuntimeObject }`, and `MatrixGraphExecuteOverrides` is the optional runtime layer after the matrix supplies `jobId`, `job`, `input`, and `executionMemory`).
6
+
7
+ **Why keep this package:** **`@exellix/exellix-jobs`** (worker deployable) wraps claims and operator HTTP. **Read dashboards** and **Mongo wiring** live here too (**`openMatrixReadTier`**, **`createExellixMatrixDataTier`**). The **domain** — contracts, materialization, orchestration, Memorix bridge, eligibility — is centralized in **`@exellix/exellix-runtime`**.
8
+
9
+ This package does not embed a web UI; it exposes the data-tier API your BFF and **`@exellix/exellix-jobs`** build on. **Read-only dashboards** use **`openMatrixReadTier`** (or lower-level **`fetchExecutionMatrixNavigatorPage`**, **`fetchSourceJoinView`**, etc.). Published builds track **`package.json`** / [CHANGELOG.md](CHANGELOG.md). Memorix integration targets **`@x12i/xmemory-store` ≥ 2.9.8** and **`@x12i/xmemory-scoper` ≥ 1.9.11** (scoped views, scoped-data reads, graph-entry inventory): besides **`runMongoAggregate`** and namespace-scoped **`getXmemoryTierStatistics`**, this package re-exports **tier factories** (**`createXmemoryDataTier`** / **`createScoperMongoClient`**), **filter catalog** (**`getTierFilterCatalog`**, cache clears), and **shared fetch predicates** (**`buildTierFetchMatch`**, **`buildDatePresetMatches`**, **`resolveSurfaceDbCollection`**, **`stableScopeKey`**, facet/metadata constants) so hosts can build dashboards and list endpoints without a second import path. For **Layer-01 graph entry** payloads, use **`loadGraphEntryMemorixPayload`** (scoper-only I/O) and **`buildExecutionSeedWithMemorixLayer`**; for **structured record gates** aligned with graph-engine, import **`evaluateStructuredDataFilters`** (and helpers) from this package — same implementation as **`@exellix/graph-engine`**.
10
+
11
+ ## Architecture
12
+
13
+ ```mermaid
14
+ flowchart LR
15
+ subgraph design [Design time]
16
+ Catalox[Catalox native catalog]
17
+ end
18
+ subgraph source [Source data]
19
+ Xmemory[xmemory-scoper / store]
20
+ end
21
+ subgraph runtime [Runtime]
22
+ Materializer[Materializer]
23
+ Store[ExecutionMatrixRuntime]
24
+ Orchestrator[Orchestrator]
25
+ Engine[graph-engine executeGraph]
26
+ end
27
+ Catalox --> Materializer
28
+ Xmemory --> Materializer
29
+ Materializer --> Store
30
+ Store --> Orchestrator
31
+ Orchestrator --> Engine
32
+ Engine --> Store
33
+ ```
34
+
35
+ 1. **Catalox** — **Matrix** template (`metadata.catalogType: "execution-matrix"`): `data.input`, `data.graphs[]` (references to graph ids). **Graph** definitions (e.g. catalog `exellix-graphs`, `metadata.catalogType: "graphs"`): `data.graphId`, `data.mappedInput[]`, `data.execution` (`priority`, optional `conditions` / `conditionRelations`). See [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md). Repo-local seed example: `npm run use-case:create-exellix-graphs-catalog`.
36
+ 2. **xmemory** — Your host resolves selectors into concrete `input` rows (`XmemoryInputResolver` in code).
37
+ 3. **Mongo matrix collections** — `exellix_execution_matrix_rows` and `exellix_execution_matrix_failures` (and related config collections) hold runtime rows, statuses, inferences, and failure payloads. Open them with **`createExellixMatrixDataTier`** from **`@exellix/exellix-runtime`** — hosts should not wire **`@x12i/xronox-store`** directly.
38
+ 4. **Executable graphs** — DAG JSON must satisfy graph-engine **5.14.x** canonical rules (see **`assertCanonicalGraphDocument`**). **Model root:** **`id`**, optional **`version`**, **`modelConfig`** (`{ cases: [{ modelConfig, when? }] }`), **`jobKnowledge`**, **`nodes`**, optional **`edges`**, **`variables`**, required root **`response`**, optional **`metadata`** (design-time fields such as **`graphEntry`** live under **`metadata`** only). **`nodes`** must be a **`GraphNode[]` array** (record-keyed maps are rejected). **Task nodes:** **`skillKey`** / **`variables`** on the node root; payload bindings in **`inputsConfig`**; prompts and variable hooks in **`taskVariable`** (deprecated: **`node.inputs`**). **Execution wiring** (`narrix`, **`aiTaskProfile`** / **`webScoping`**, **`executionStrategies`**, **`aiTasksOutputValidation`**, **`modelConfig`**, **`llmCall`**, local-skill paths, …) belongs under **`taskConfiguration`**, not **`metadata`**. **Runtime:** `runtime.input` → `executionMemory.input`; optional **`runtime.inputs`** is a separate caller bag on **`RunTaskRequest.inputs`**. **Variables:** job/graph bucket **`jobVariables.*`** (alias `variables.*`); task bucket **`taskVariables.*`** (see [docs/format/](docs/format/)). Author web retrieval under **`taskConfiguration.aiTaskProfile.webScoping`** only. Layer-01 seeding: **`buildExecutionSeedFromGraphEntry`** (delegates to graph-engine). Memorix Layer-01: **`loadGraphEntryMemorixPayload`** + **`buildExecutionSeedWithMemorixLayer`**. Structured gates: **`evaluateStructuredDataFilters`**. Run-log metadata on task responses: **`runLog`**, **`logxerRunId`** only. Narrative: [docs/exellix-graph-format.md](docs/exellix-graph-format.md) · typed contracts: [docs/format/graph-model-object-format.md](docs/format/graph-model-object-format.md).
39
+
40
+ ## Related packages
41
+
42
+ | Package | Role |
43
+ |---------|------|
44
+ | **`@exellix/exellix-runtime`** (this repo) | **One library for hosts:** Mongo (`createExellixMatrixDataTier`), reads (`openMatrixReadTier`), materialize, claims, health helpers — not a standalone HTTP server. |
45
+ | **`@exellix/exellix-jobs`** | **Optional** separate process: supervised claims + operator HTTP (`/v1/health`, `/workers/status`, …). Your BFF still uses **runtime** for dashboards. |
46
+ | **`@exellix/graph-engine`** | Playground and matrix `executeGraph` — see [client-boundary.md](docs/client-boundary.md). |
47
+
48
+ Deprecated: `@exellix/exellix-matrix-persister`, `@exellix/exellix-matrix-read` → use this package ≥ 3.1.
49
+
50
+ ## Requirements
51
+
52
+ - **Node.js** 18+ (recommended 20+) for native `fetch` / `crypto` usage in the dependency tree.
53
+ - **npm** (or compatible) with access to registries configured for scoped packages (for example `@exellix/*`, `@x12i/*` via [`.npmrc`](.npmrc) if you use GitHub Packages or a private registry).
54
+
55
+ ## Installation
56
+
57
+ From the repository root:
58
+
59
+ ```bash
60
+ npm install
61
+ ```
62
+
63
+ The package is intended to be **published** or installed from a registry / monorepo workspace (`npm pack`, GitHub Packages, etc.). Run `npm run build` before publish so `dist/` matches `package.json` `exports`.
64
+
65
+ **Mongo wiring:** import **`createExellixMatrixDataTier`** from **`@exellix/exellix-runtime`** (3.1+). The separate **`@exellix/exellix-matrix-persister`** package is deprecated — use runtime only.
66
+
67
+ **Integrating a host (BFF / worker):** see **[docs/client-integration.md](docs/client-integration.md)**.
68
+
69
+ ## Build and verification
70
+
71
+ Copy [`.env.example`](.env.example) to `.env` when running Mongo-backed checks locally.
72
+
73
+ ### One command
74
+
75
+ | Command | What runs |
76
+ |---------|-----------|
77
+ | **`npm run verify`** | `build` + **unit** tests (default, no Mongo) |
78
+ | **`npm run verify:ci`** | Same as `verify` (explicit CI alias) |
79
+ | **`npm run verify:all`** | `build` + unit + **live** + **read smoke** (skips live/smoke if env missing; use `--require-mongo` to fail instead) |
80
+
81
+ ```bash
82
+ npm run verify # fast — always safe in CI
83
+ npm run verify:all # full stack when .env has MONGO_URI (+ smoke ids)
84
+ ```
85
+
86
+ Orchestrator: [`scripts/verify-suite.mjs`](scripts/verify-suite.mjs) — import `runVerify`, `runVerifyAll`, `runUnitTests`, `runLiveTests`, `runReadSmoke`, `hasMongoEnv`, `hasReadSmokeEnv`.
87
+
88
+ ### Individual steps
89
+
90
+ ```bash
91
+ npm run build # tsc → dist/
92
+ npm run test # alias for test:unit
93
+ npm run test:unit # vitest, src/**/*.spec.ts (no Mongo)
94
+ npm run test:live # test/execution-matrix/*.live*.spec.ts
95
+ npm run test:smoke # matrix-read CLI (alias: matrix:read)
96
+ npm run test:watch # vitest watch mode
97
+ npm run cli -- help # unified toolbox CLI (matrix-link, matrix-read, health, catalox-inventory)
98
+ npm run matrix:link # link graph → matrix + materialize rows
99
+ npm run matrix:read # read-only dashboard JSON
100
+ npm run catalox:inventory
101
+ ```
102
+
103
+ | Script | Requires |
104
+ |--------|----------|
105
+ | `test:unit` / `verify` | Nothing |
106
+ | `test:live` | `MONGO_URI` (+ writable `execution_db` / `config_db`) |
107
+ | `test:smoke` / `matrix:read` | `MONGO_URI` (+ `.env.test` fixture ids, auto-seeded) |
108
+ | `test:matrix:seed` | `MONGO_URI` — creates test-only config in Mongo |
109
+ | `matrix:link` | `MONGO_URI`, `GRAPH_ID`, `MATRIX_CATALOG_ID` (or `.env.test` for fixture) |
110
+
111
+ **Smoke optional env:** `MATRIX_RUN_ID`, `INPUT_GROUP_BY_PATH`, `execution_db`, `config_db`, `MULTI_GRAPH_LIMIT`, `NAVIGATOR_LIMIT`, `INCLUDE_NAVIGATOR=0`; for `entityFacet`: `MATRIX_READ_MEMORIX_ENABLED=true`, `ENTITY_TYPE`, `NAMESPACE`.
112
+
113
+ **Release status:** [docs/blockers/GAP-ANALYSIS.md](docs/blockers/GAP-ANALYSIS.md) · [docs/blockers/README.md](docs/blockers/README.md)
114
+
115
+ ## Quick start
116
+
117
+ Typical flow: validate a Catalox matrix item → materialize rows → persist → claim → run graph → update status.
118
+
119
+ ```ts
120
+ import {
121
+ executionMatrixPayloadFromCatalogItem,
122
+ graphCatalogPayloadFromCatalogItem,
123
+ materializeExecutionMatrixRuntimeRows,
124
+ processNextMatrixClaim,
125
+ processNextMatrixGraphExecution,
126
+ } from '@exellix/exellix-runtime';
127
+ // Plus: createExellixMatrixDataTier, createExecutionMatrixRuntime, createExellixConfigStore from @exellix/exellix-runtime,
128
+ // and createExellixGraphRuntime from @exellix/graph-engine.
129
+
130
+ // 1) Load matrix + graph definitions from Catalox (each { data, metadata })
131
+ const payload = executionMatrixPayloadFromCatalogItem(matrixCatalogItem);
132
+ const graphRecords = payload.graphs.map((id) =>
133
+ graphCatalogPayloadFromCatalogItem(graphCatalogItemsById.get(id)),
134
+ );
135
+
136
+ // 2) Resolve inputs (from xmemory or any source) into one row per unit of work
137
+ const inputRows = [{ entityId: 'e-1' /* … */ }];
138
+
139
+ const rows = materializeExecutionMatrixRuntimeRows({
140
+ matrixCatalogId: 'my-matrix-catalog',
141
+ matrixItemId: matrixCatalogItem.itemId,
142
+ matrixRunId: 'batch-2026-04-26',
143
+ payload,
144
+ graphRecords,
145
+ inputRows,
146
+ });
147
+
148
+ // 3) const tier = await createExellixMatrixDataTier({}); then createExecutionMatrixRuntime(tier.rows, tier.failures, { snapshots: tier.snapshots }).
149
+ // (MONGO_URI / execution_db / MONGO_ROLE come from env by default — see “Mongo, execution_db, ERC” below)
150
+ // then runtime.insertRuntimeRow(row) for each row.
151
+
152
+ // 4) Worker — pick a mode:
153
+ // await processNextMatrixClaim(
154
+ // {
155
+ // runtime,
156
+ // executeGraph: graphRuntime.executeGraph.bind(graphRuntime),
157
+ // resolveGraphEntry: ({ graphId }) => graphEntryById.get(graphId),
158
+ // },
159
+ // { matrixCatalogId: 'my-matrix-catalog', matrixRunId: 'batch-2026-04-26', graphId: 'my-graph.v1' },
160
+ // );
161
+
162
+ // Runtime mode (single run): provide an external jobId, optionally enable graph-engine debugMode.
163
+ // Graph-engine 5.x: a single canonical executor handles both regular and debug runs; pass
164
+ // `debugMode: true` and the response carries `ExecuteGraphResult.debug.nodes`.
165
+ // await processNextMatrixClaim(
166
+ // {
167
+ // runtime,
168
+ // executeGraph: graphRuntime.executeGraph.bind(graphRuntime),
169
+ // resolveGraphEntry: ({ graphId }) => graphEntryById.get(graphId),
170
+ // },
171
+ // {
172
+ // matrixCatalogId: 'my-matrix-catalog',
173
+ // matrixRunId: 'batch-2026-04-26',
174
+ // graphId: 'my-graph.v1',
175
+ // jobId: 'job_ext_123',
176
+ // debugMode: true,
177
+ // },
178
+ // );
179
+ // Or “next one” across several graphs (tries graph ids in order):
180
+ // await processNextMatrixGraphExecution(
181
+ // { runtime, executeGraph, resolveGraphEntry: ({ graphId }) => graphEntryById.get(graphId) },
182
+ // { matrixCatalogId: 'my-matrix-catalog', matrixRunId: 'batch-2026-04-26', graphIds: ['g.a', 'g.b'] },
183
+ // );
184
+
185
+ // Optional: resolve graphEntry from a loaded graph document — same as graph-engine:
186
+ // resolveGraphEntryFromGraph(loadedGraph) // metadata.graphEntry
187
+ // Optional: validate requiredExecutionPaths after seeding — validateExecutionSeedPaths(execution, graphEntry)
188
+ //
189
+ // Optional: Layer-01 Memorix + graph entry — load scoped-data / narrative / snapshot via scoper, merge into seed:
190
+ // import { loadGraphEntryMemorixPayload, buildExecutionSeedWithMemorixLayer } from '@exellix/exellix-runtime';
191
+ // const memorix = await loadGraphEntryMemorixPayload(
192
+ // { nx, opDb: 'xmemory-op', metadataDb: 'xmemory-meta' },
193
+ // { mode: 'scoped-data-by-source-key', entityType: 'subnet', sourceId: row.input.sourceId },
194
+ // );
195
+ // if (!memorix.ok) { /* handle GraphEntryXmemoryLoadCodes */ }
196
+ // const { execution } = buildExecutionSeedWithMemorixLayer(graphEntry, row.input, memorix.seedSources);
197
+ //
198
+ // Optional: structured dataFilters preflight (same semantics as graph-engine executor):
199
+ // import { evaluateStructuredDataFilters, EXELLIX_STRUCTURED_DATA_FILTERS_V1 } from '@exellix/exellix-runtime';
200
+ // const gate = evaluateStructuredDataFilters(graphEntry.conditions?.dataFilters, scopedDataPayload);
201
+ //
202
+ // Optional: forward LLM / traceability overrides to `executeGraph` per worker default + per-call.
203
+ // Per-call shallow-merges over deps; absent fields fall back to graph-engine env defaults.
204
+ // See docs/execution-matrix-runtime.md → "Forwarding LLM / traceability overrides to executeGraph".
205
+ // await processMatrixGraphBatch(
206
+ // {
207
+ // runtime,
208
+ // executeGraph: graphRuntime.executeGraph.bind(graphRuntime),
209
+ // resolveGraphModel: ({ graphId }) => graphModelById.get(graphId),
210
+ // resolveGraphEntry: ({ graphId }) => graphEntryById.get(graphId),
211
+ // executeOverrides: { modelConfig: { cases: [{ modelConfig: { xynthesisModel: 'xynth-default', skillModel: 'skill-default' } }] }, runLogMode: 'summary' },
212
+ // },
213
+ // {
214
+ // matrixCatalogId: 'my-matrix-catalog',
215
+ // matrixRunId: 'batch-2026-04-26',
216
+ // graphIds: ['g.a', 'g.b'],
217
+ // limit: 1,
218
+ // jobId: 'job_ext_123',
219
+ // executeOverrides: { modelConfig: { cases: [{ modelConfig: { xynthesisModel: 'xynth-fast', skillModel: 'skill-fast' } }] }, runTaskExecutionMode: 'trace' },
220
+ // },
221
+ // );
222
+ ```
223
+
224
+ For **tests and local scripts** without Mongo atomic updates, use [`MemoryMatrixCollection`](src/execution-matrix/memory-store.ts) with `createExecutionMatrixRuntime` and `serializeClaims: true` (see tests under `src/execution-matrix/*.spec.ts`).
225
+
226
+ ## Client toolbox
227
+
228
+ High-level helpers and a **unified CLI** for the operations hosts repeat: open Mongo, link a graph into a matrix config, publish operational state, materialize runtime rows, read dashboards, probe connectivity, and run Catalox inventory.
229
+
230
+ ### Programmatic API
231
+
232
+ Import from `@exellix/exellix-runtime`:
233
+
234
+ | Function | Purpose |
235
+ |----------|---------|
236
+ | **`openMatrixClientBundle`** | `createExellixMatrixDataTier` + `createExecutionMatrixRuntime` + `createExellixConfigStore` (default `serializeClaims: true`) |
237
+ | **`ensureGraphLinkedInMatrix`** | Create matrix config or append `graphId` to `payload.graphs` |
238
+ | **`ensureExecutionMatrixConfigForGraph`** | Idempotent graph + matrix bootstrap for a single graph (Studio dev hosts) |
239
+ | **`publishGraphForMatrixRun`** | `patchOperational` (e.g. Published + Running) with optimistic concurrency |
240
+ | **`loadGraphRecordsForMatrix`** | Load graph payloads for every id on a matrix config |
241
+ | **`resolveDefaultMaterializeInputRows`** | One row per `mappedInput` entry, or `[{}]` |
242
+ | **`materializeAndInsertMatrixRows`** | Materialize + `insertRuntimeRow` when matrix already references the graph |
243
+ | **`linkAndMaterializeMatrixRun`** | Full flow: link → optional publish → materialize → insert (opens/closes bundle unless you pass `deps`) |
244
+
245
+ Example (same as a one-off `link-and-materialize` script):
246
+
247
+ ```ts
248
+ import { linkAndMaterializeMatrixRun } from '@exellix/exellix-runtime';
249
+
250
+ const result = await linkAndMaterializeMatrixRun({
251
+ matrixCatalogId: 'my-matrix-1',
252
+ graphId: 'live_g2_1778998284284_vfz22c',
253
+ matrixRunId: `run-${Date.now()}`,
254
+ // dryRun: true, // preview rows without insert
255
+ // publishOperational: false,
256
+ });
257
+ console.log(result.rowCount, result.matrixRowIds);
258
+ ```
259
+
260
+ Lower-level pieces remain available: **`buildMatrixMaterializeContext`** (Catalox items), **`materializeExecutionMatrixRuntimeRows`**, **`openMatrixReadTier`**, orchestration (`processNextMatrixClaim`, …). See [docs/client-integration.md](docs/client-integration.md).
261
+
262
+ ### CLI
263
+
264
+ After `npm run build`:
265
+
266
+ ```bash
267
+ npx exellix-runtime help
268
+ npx exellix-runtime matrix-link --graph-id=G --matrix-catalog-id=M
269
+ npx exellix-runtime matrix-read
270
+ npx exellix-runtime health --probe-dependencies
271
+ npx exellix-runtime catalox-inventory -- --format=markdown --out=reports/inventory.md
272
+ ```
273
+
274
+ | npm script | Command | Requires |
275
+ |------------|---------|----------|
276
+ | **`npm run cli`** | `exellix-runtime <command>` | — |
277
+ | **`npm run matrix:link`** | `matrix-link` | `MONGO_URI`, `GRAPH_ID`, `MATRIX_CATALOG_ID` (or flags) |
278
+ | **`npm run matrix:read`** | `matrix-read` | `MONGO_URI`, `MATRIX_CATALOG_ID`, `GRAPH_ID` |
279
+ | **`npm run test:smoke`** | alias for `matrix:read` | same as matrix-read |
280
+ | **`npm run catalox:inventory`** | `catalox-inventory` | Firebase and/or `MONGO_URI` (see CLI help) |
281
+
282
+ Loads repo **`.env`** then **`.env.test`** (test-only smoke ids — never production). Run **`npm run test:matrix:seed`** once to create the fixture in Mongo. Run **`npx exellix-runtime help matrix-link`** for flags (`--dry-run`, `--skip-operational`, `--input-rows-json`, …).
283
+
284
+ ## Public API (by concern)
285
+
286
+ | Area | Main symbols | Role |
287
+ |------|----------------|------|
288
+ | Types | `ExecutionMatrixRuntimeRecord`, `ExecutionMatrixCatalogPayload`, `ExecutionMatrixStatus`, `MatrixGraphExecuteOverrides`, **`ExecutionMatrixStepSummary`**, **`RecordsEligibilityPolicy`**, **`SourceExecutionStatusMap`**, re-exported `ExecuteGraphInput` / `GraphExecutionRequest` / `GraphModelObject` / `GraphRuntimeObject` / `HostExecuteGraphRunOptions` (from `@exellix/graph-engine`), … | Shared contracts |
289
+ | Graph format | Types `Graph`, `GraphDocumentMetadata`, `GraphNode`, `TaskNode`, `FinalizerNode`, `GraphEntryContract`, `GraphResponseContract`, finalizer / catalog-planning types (`CatalogRequestEntry`, …); **`assertCanonicalGraphDocument`**, **`getCanonicalGraphDocumentViolations`**, **`CANONICAL_GRAPH_TOP_LEVEL_KEYS`**, **`mergeGraphDocumentModel`**, **`EXELLIX_GRAPH_MODEL_VARIABLE_KEY`**, **`validateCatalogPlanning`**, **`isCatalogBinding`**, **`isCatalogRequestEntry`**, **`ExellixGraphError`**, **`ExellixGraphErrorCode`** | Executable DAG JSON model — graph-engine **5.x**: **`nodes`** array, task **`skillKey`** / **`variables`** on the node root, execution fields under **`taskConfiguration`** (see **`TaskNode.taskConfiguration`** / **`TaskNodeTaskConfiguration`** in **`@exellix/graph-engine`**). Re-exported here so hosts validate without a second dependency; normative prose in [docs/exellix-graph-format.md](docs/exellix-graph-format.md) |
290
+ | Status | `normalizeExecutionMatrixStatus` | Canonical status strings (e.g. legacy `not-strated` → `not-started`) |
291
+ | Collections | `executionMatrixStoreCollectionDefs`, collection name constants | Used by **`createExellixMatrixDataTier`** / internal wiring |
292
+ | Persistence | `ExecutionMatrixRuntime`, `createExecutionMatrixRuntime` | CRUD, claims, completion, **`listFailureRecords`** / **`getFailureRecord`** / **`getLatestFailureRecordForRowGraph`**, **`batchLookupSourceExecutionStatuses`** |
293
+ | Catalox | `parseExecutionMatrixCatalogPayload`, `executionMatrixPayloadFromCatalogItem`, `parseGraphCatalogPayload`, `graphCatalogPayloadFromCatalogItem` | Validate / parse matrix + graph catalog `data` |
294
+ | Materialization | `materializeExecutionMatrixRuntimeRows`, `sortGraphRecordsForMatrix`, `mergeMappedInputEntries`, `buildExecutionSeedFromGraphEntry`, `resolveInputRowsWithResolver`; re-exported `resolveGraphEntryFromGraph`, `createResolveGraphEntryFromLoader`, `validateExecutionSeedPaths`, types `BuildExecutionSeedSources` / `BuildExecutionSeedResult` | Rows from matrix + graph records; **`buildExecutionSeedFromGraphEntry`** delegates to **`@exellix/graph-engine`** (same Layer-01 path rules; matrix row `input` → `execution.input.*`); optional **`runtimeScope`** on materialize + resolver for tenant/xmemory alignment |
295
+ | **Graph entry + Memorix (scoper)** | **`loadGraphEntryMemorixPayload`**, **`buildExecutionSeedWithMemorixLayer`**, **`GraphEntryXmemoryLoadCodes`**, request union types (`mode`: **`scoped-data-row`**, **`scoped-data-by-source-key`**, **`narrative`**, **`snapshot-scoped-data`**) | Loads Layer-01 artifacts via **`@x12i/xmemory-scoper`** only (no raw **`xmemory-store`** reads for entity bodies in this helper). Modes: entity+question (`getXScopedDataByEntityAndQuestionId`), entity type + source/document id (`getXScopedDataDocumentBySourceKey`), narrative (`getScopedAnswer` / `getScopedAnswerWithContext`), snapshot (`getScopedDataFromSnapshot`). Merge with matrix **`input`** using **`buildExecutionSeedWithMemorixLayer`**. Unit tests: [`graph-entry-xmemory-load.spec.ts`](src/execution-matrix/graph-entry-xmemory-load.spec.ts) |
296
+ | **Structured `dataFilters`** | **`evaluateStructuredDataFilters`**, **`evaluateDataFilterPredicate`**, **`getStructuredDataFilterPathViolations`**, **`isStructuredDataFiltersV1`**, **`EXELLIX_STRUCTURED_DATA_FILTERS_V1`**, types **`EvaluateStructuredDataFiltersResult`**, **`EvaluateStructuredDataFiltersOptions`**, **`StructuredDataFiltersV1`**, **`ConditionsDataFilters`** | Re-exported from **`@exellix/graph-engine`** (≥ **5.3.8**, aligned with **5.14.x**) — same semantics as the executor for graph-entry / task **`conditions.dataFilters`**. Pass the **scoped `data` payload** as **`record`** (the object whose properties back `data.*` paths). Unit tests: [`graph-engine-datafilters-reexport.spec.ts`](src/execution-matrix/graph-engine-datafilters-reexport.spec.ts) |
297
+ | Orchestration | `processNextMatrixClaim`, `processMatrixClaimForRow`, `claimNextAcrossGraphs`, `processMatrixGraphBatch`, `processNextMatrixGraphExecution`, `processAllMatrixGraphExecutions`, `executeMatrixGraphForClaim`, `mergeClaimExtraFilter`, `mergeMatrixGraphExecuteOverrides`, **`createMatrixExecuteGraphAdapter`**, **`OrchestratorExecuteGraphInput`** | Claim → choose **mode** (runtime: external `jobId`, optional `debugMode: true`; autonomous: generated stable `jobId`) → resolve `GraphModelObject` → build `GraphRuntimeObject` → single **`executeGraph({ model, runtime })`** call → persist; optional **`runtimeScope`** on deps merges into `extraFilter`; optional **`executeOverrides`** merge into `runtime` only |
298
+ | Source resolver | **`createMatrixSourceResolverFromRecordLikeDataSource`**, **`createMatrixSourceResolverFromEffectiveConfig`**, **`diffSourceIdsAgainstMatrix`**, **`DEFAULT_MATRIX_SOURCE_LIST_CAP`** | Wire `record` / `query-snapshot` sources for `fetchSourceJoinView` / run loop; `event` / `storage` need custom resolvers |
299
+ | UI / BFF (read dashboards) | **`openMatrixReadTier`** → `graphDashboard`, `multiGraphOverview`, `sourceJoinView`, `navigatorPage`, `entityFacet`, **`listFailureRecords`**, **`getFailureRecord`** ([client-integration.md](docs/client-integration.md)). **Lower-level:** `fetchExecutionMatrixNavigatorPage`, `fetchSourceJoinView`, `runtime.listFailureRecords`, … when you already hold **`ExecutionMatrixRuntime`** |
300
+ | Records eligibility | **`rollupSourceExecutionStatuses`**, **`evaluateRecordsEligibility`**, **`pickFresherExecutionStepSummary`**, **`defaultRecordsSourceKeyPath`**; types **`ExecutionMatrixStepSummary`**, **`SourceExecutionStatusMap`**, **`RecordsEligibilityPolicy`**, **`BatchLookupSourceExecutionStatusesOptions`** | Multi-graph / cross-matrix views keyed by stable source id (`input.sourceId` by default); distinct from catalog **`EligibilityPolicy`** — see [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → “Records eligibility” |
301
+ | Memorix op-tier + entity facet | **`fetchMemorixMatrixEntityFacet`** (**`namespace`** required), **`pickTierEntityTypeSectionCounts`**, **`buildMatrixRowEntityTypeExtraFilter`**, **`buildSnapshotsReadFilter`**, **`ExecutionMatrixRuntime.countSnapshots`**, **`RECOMMENDED_TIER_STATS_SCOPED_DATA_GROUP_PATHS`**, thing/view/Memorix-snapshot filter builders, **`listXmemoryTierThings`** / **`listXmemoryTierThingsPaged`**, scoped-views / scoped-data helpers in [`xmemory-op-tier.ts`](src/execution-matrix/xmemory-op-tier.ts), [`memorix-matrix-entity-facet.ts`](src/execution-matrix/memorix-matrix-entity-facet.ts) | Operational tier + **`getXmemoryTierStatistics`** (per-surface **`matchedDocTotal`** + paginated **`entityTypes`**); re-exported **`getTierFilterCatalog`**, **`clearTierFetchCaches`**, **`buildTierFetchMatch`**, tier factories — see [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → “Entity-type facet” |
302
+ | Memorix inference persister | **`prepareMemorixRecordForGraph`**, **`createMemorixInferencePersister`**, **`createMemorixInferencePersisterFromXronox`**, **`buildMemorixInferenceCollectionName`** | Optional side-channel persistence: strip top-level source **`_id`** before graph execution, then write graph outputs to **`${entityName}-infernces`** in **`MEMORIX_DB`** (default **`memorix`**) — see [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → “Opt-in Memorix inference persister” |
303
+ | XMemory store (passthrough) | **`createXmemoryDataTier`**, **`withEnrichmentFallback`**, **`getScoperStoreBindings`**, **`getTierFilterCatalog`**, **`getXmemoryTierStatistics`**, **`clearTierFetchCaches`**, **`buildTierFetchMatch`**, **`resolveXmemoryStoreEnv`**, **`ENV_KEYS`**, `TIER_*` / `DEFAULT_*` constants | Same symbols as **`@x12i/xmemory-store`** — import from **`@exellix/exellix-runtime`** for one dependency surface; see [`src/execution-matrix/index.ts`](src/execution-matrix/index.ts) |
304
+ | Matrix Mongo wiring | **`createExellixMatrixDataTier`** | Opens Mongo collections; pass handles to **`createExecutionMatrixRuntime`** / **`createExellixConfigStore`** |
305
+ | **Client toolbox** | **`openMatrixClientBundle`**, **`ensureGraphLinkedInMatrix`**, **`publishGraphForMatrixRun`**, **`materializeAndInsertMatrixRows`**, **`linkAndMaterializeMatrixRun`**, … | Host scripts / BFF bootstrap without re-wiring Mongo; see [Client toolbox](#client-toolbox) |
306
+ | Catalox host | `buildMatrixMaterializeContext` | Pair matrix + graph native items into validated `payload` + `graphRecords` after fetch |
307
+
308
+ Matrix types, orchestration, **`createExellixMatrixDataTier`**, and **xmemory** re-exports live in [`src/execution-matrix/index.ts`](src/execution-matrix/index.ts). **`@x12i/xronox-store`** is not re-exported from the package root (see [docs/migrations/v3-xronox-internal-only.md](docs/migrations/v3-xronox-internal-only.md)).
309
+
310
+ ## Persistence and concurrency
311
+
312
+ | Collection | Primary key | Purpose |
313
+ |------------|-------------|---------|
314
+ | `exellix_execution_matrix_rows` | `matrixRowId` | Per-input row: `execution[]` (per-graph status), `inferences[]` (successful `finalOutput` slices) |
315
+ | `exellix_execution_matrix_failures` | `failureId` | Failure audit trail (`reason`, `trace`, `runLog`, …) |
316
+
317
+ **Collection I/O** follows the xronox-shaped document API (`insert` / `getByKey` / `readMany` / `update`) on the handles you pass into **`createExecutionMatrixRuntime`** (typically from **`createExellixMatrixDataTier`**). This package does **not** open a native Mongo `Db` handle itself. Claims use read–modify–write on the rows collection; **`serializeClaims`** defaults to **`true`** so overlapping workers serialize `claimNext` / `claimRecord` (set **`serializeClaims: false`** only for a single dedicated worker). **`getStatusCounts`** walks eligible rows via store reads; **`countFailureRecords`** counts failure docs via **`readMany`** (capped). Prefer **`listFailureRecords`** / **`getFailureRecord`** over calling the failures collection directly ([docs/client-boundary.md](docs/client-boundary.md)).
318
+
319
+ **Per-graph tracking:** each row’s **`execution[]`** holds one slot per catalog graph (`graphId`, `status`, `jobId`, `lastAttempt`, …). **`inferences[]`** stores successful outputs keyed by **`graphId`**. Read tabs / dashboards with **`fetchExecutionMatrixMultiGraphOverview`**, **`fetchExecutionMatrixNavigatorPage`**, **`listWaiting` / `listCompleted` / …**, **`fetchSourceJoinView`**, or raw **`listRecords`**.
320
+
321
+ **Optional Memorix inference persistence:** call **`prepareMemorixRecordForGraph`** before graph execution to remove source **`_id`** from the graph input while retaining it as **`itemId`**. After execution, call **`persistInferences`** on a **`MemorixInferencePersister`** to write `{ _itemId, infernces, metadata }` documents to **`${entityName}-infernces`**. Array outputs write one document per item.
322
+
323
+ ## Env: `MONGO_URI`, `execution_db`, `config_db`, roles
324
+
325
+ **Env-Ready rule:** each package documents env **for itself only**. **`@x12i/xronox`** documents **ERC 2.0** for the engine ([README](https://www.npmjs.com/package/@x12i/xronox), [ERC 2.0](https://github.com/xeonox/erc-standard)). **`@x12i/xronox-store`** documents **its** constructor contract (`mongoUri`, `mongoDb`, …) — it does **not** own **`execution_db`** or other keys defined by this library.
326
+
327
+ **This package (`@exellix/exellix-runtime`)** reads the keys in **[`.env.example`](.env.example)** when factories are called without overrides.
328
+
329
+ | Env / option | Role |
330
+ |--------------|------|
331
+ | **`MONGO_URI`** | Required for live factories / **`npm run test:live`** unless you pass `mongoUri` explicitly. |
332
+ | **`execution_db`** | Operational DB name (rows, failures, snapshots). Default **`exellix-runtime`**. |
333
+ | **`config_db`** | Configuration DB name (`ExellixConfigStore`). Default **`exellix`**. |
334
+ | **`MEMORIX_DB`** | Optional inference side-channel DB for `createMemorixInferencePersisterFromXronox`. Default **`memorix`**. |
335
+ | **`MONGO_ROLE`** | xronox role for the **runtime** store; default **`execution`**. |
336
+ | **`CONFIG_MONGO_ROLE`** | Optional role for the **config** store; falls back to **`MONGO_ROLE`**, then **`config`**. |
337
+ | **`MEMORIX_MONGO_ROLE`** | Optional role for the Memorix inference persister; falls back to **`MONGO_ROLE`**, then **`memorix`**. |
338
+
339
+ **Monitoring:** treat dashboards and alerts as a **UI** concern; this library exposes **list** + **`getStatusCounts`** (optional failure-count helpers belong in **this** repo per [reports/roles-and-boundaries.md](reports/roles-and-boundaries.md)). Matrix retry / reconciliation policy belongs to this runtime or the product deployable that runs it; **xronox-store** remains a generic document store.
340
+
341
+ ### Optional `runtimeScope` (tenant / partition)
342
+
343
+ When a run must be scoped (tenant, shard, etc.), pass the **same** optional object everywhere:
344
+
345
+ 1. **`materializeExecutionMatrixRuntimeRows({ …, runtimeScope })`** — shallow-merged onto each row `input` **after** the resolved work-unit row (scope **overwrites** colliding keys). Use Mongo document paths that match claim filters, e.g. `{ "input.tenantId": "acme" }`.
346
+ 2. **`resolveInputRowsWithResolver(selector, resolver, runtimeScope)`** — forwarded to **`XmemoryInputResolver(selector, runtimeScope)`** so xmemory queries see the same scope.
347
+ 3. **`ProcessMatrixClaimDeps.runtimeScope`** — merged into orchestrated **`extraFilter`** on **`claimNext` / `claimRecord` / batch** (`mergeClaimExtraFilter` in the orchestrator; **scope wins** on duplicate keys).
348
+
349
+ ## Documentation
350
+
351
+ | Document | Contents |
352
+ |----------|-----------|
353
+ | **[docs/README.md](docs/README.md)** | **Documentation index** — reading paths by role |
354
+ | **[docs/client-integration.md](docs/client-integration.md)** | **Client implementation guide** — install, bootstrap, reads, worker, jobs HTTP (3.1+) |
355
+ | [docs/client-boundary.md](docs/client-boundary.md) | Graph-engine playground vs execution-matrix host responsibilities |
356
+ | [docs/bff-matrix-adapter.md](docs/bff-matrix-adapter.md) | Suggested BFF routes (companion to client-integration) |
357
+ | [docs/blockers/GAP-ANALYSIS.md](docs/blockers/GAP-ANALYSIS.md) | Gap analysis + last **`npm test`** / **`test:live`** status |
358
+ | [docs/blockers/README.md](docs/blockers/README.md) | **`CHECKLIST-*`** per package + **`BLOCKER-*`** upstream items |
359
+ | [docs/migrations/v3-xronox-internal-only.md](docs/migrations/v3-xronox-internal-only.md) | Runtime **3.x**: Mongo via **`createExellixMatrixDataTier`**; xronox factories on **`internal/xronox-matrix`** only |
360
+ | [docs/inspection-and-testkit-ownership.md](docs/inspection-and-testkit-ownership.md) | Keep inspection / testkit on graph-engine; alias policy |
361
+ | [docs/xmemory-resolver-pattern.md](docs/xmemory-resolver-pattern.md) | `XmemoryInputResolver` contract and tenant scope alignment |
362
+ | Graph entry Memorix bridge (code) | [`src/execution-matrix/graph-entry-xmemory-load.ts`](src/execution-matrix/graph-entry-xmemory-load.ts) | `loadGraphEntryMemorixPayload` / `buildExecutionSeedWithMemorixLayer`; upstream FR status notes under [`reports/`](reports/) |
363
+ | [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) | End-to-end behavior, Catalox convention, collections, Mongo vs memory |
364
+ | [docs/exellix-graph-format.md](docs/exellix-graph-format.md) | Graph JSON authoring (Narrix, local skills, layers 01/08) |
365
+ | [docs/format/graph-model-object-format.md](docs/format/graph-model-object-format.md) | Static **`GraphModelObject`** contract (`response`, `inputsConfig`, `modelConfig.cases`, …) |
366
+ | [docs/format/graph-runtime-object-format.md](docs/format/graph-runtime-object-format.md) | Per-run **`GraphRuntimeObject`** (`input` / `inputs`, variable buckets, `jobVariables`) |
367
+ | [docs/format/task-node-model-object-format.md](docs/format/task-node-model-object-format.md) | **`TaskNode`** model fields |
368
+ | [docs/format/task-node-runtime-object-format.md](docs/format/task-node-runtime-object-format.md) | Per-node runtime overrides (`runtime.nodes[nodeId]`) |
369
+ | [reports/roles-and-boundaries.md](reports/roles-and-boundaries.md) | **Canonical** split: this package vs product/deployer decisions vs Catalox / xmemory / graph-engine / xronox-store |
370
+ | [reports/exellix-runtime-gap-closure-roadmap.md](reports/exellix-runtime-gap-closure-roadmap.md) | This repo’s remaining runtime backlog + real upstream FRs |
371
+ | [reports/fr-graph-engine-execute-graph-input-parity.md](reports/fr-graph-engine-execute-graph-input-parity.md) | Historical FR / notes. Graph-engine **5.x** frames execution as `{ model, runtime }`; this package exposes the model/runtime types and keeps `MatrixGraphExecuteOverrides` scoped to optional runtime fields |
372
+ | [reports/host-decisions-needed.md](reports/host-decisions-needed.md) | Product/deployer decisions that dependency READMEs cannot answer |
373
+ | [`.env.example`](.env.example) | Env keys **`createExellixMatrixDataTier`** reads (`MONGO_URI`, `execution_db`, `config_db`, …) |
374
+ | [documentations/execution-matrix-catalog-content.md](documentations/execution-matrix-catalog-content.md) | Design-phase catalog content shape for Catalox authors |
375
+
376
+ ## Package entry
377
+
378
+ - **Module**: `import { … } from '@exellix/exellix-runtime'` or `@exellix/exellix-runtime/execution-matrix` (same surface; see [`package.json`](package.json) `exports`).
379
+ - **Types**: emitted next to `dist/` after `npm run build`.
380
+
381
+ ## Layout
382
+
383
+ ```
384
+ src/execution-matrix/ # implementation + unit tests (*.spec.ts co-located)
385
+ test/execution-matrix/ # live Mongo integration tests (*.live*.spec.ts)
386
+ src/client-toolbox/ # host helpers (link, materialize, open bundle) — published API
387
+ src/cli/ # unified `exellix-runtime` CLI (bin)
388
+ src/dev/ # thin smoke entry → matrix-read CLI
389
+ use-cases/ # repo-local Catalox seed / operator scripts (not published in dist)
390
+ docs/ # runtime and graph format docs
391
+ reports/ # role boundaries, product decisions, and runtime backlog
392
+ documentations/ # authoring specs (catalog content, conventions)
393
+ dist/ # build output (gitignored in typical setups)
394
+ ```
395
+
396
+ ## Dependencies (summary)
397
+
398
+ - **`@exellix/graph-engine` ^5.14.0** — Injected **`createExellixGraphRuntime().executeGraph`** receives **`ExecuteGraphInput = { model: GraphModelObject, runtime: GraphRuntimeObject }`**. **Graph JSON:** array **`nodes`**; required root **`response`**; **`modelConfig`** / task overrides as **`{ cases: [...] }`**; task **`inputsConfig`** + **`taskVariable`** (not legacy **`node.inputs`**); execution config under **`taskConfiguration`**; planning-only **`metadata`**. **Runtime:** `input` vs `inputs` are distinct; variable buckets **`jobVariables.*`** / **`taskVariables.*`**. **`evaluateStructuredDataFilters`** matches executor semantics for structured gates. `MatrixGraphExecuteOverrides` merges into `runtime` (`modelConfig` as `ModelConfigSelection` or flat `{ xynthesisModel, skillModel }`, `aliasConfig`, `nodes`, memory bags, run-log options, …). This repo wraps **`buildExecutionSeedFromGraphEntry`**, re-exports model/runtime types and matrix host helpers, and documents contracts under **[docs/format/](docs/format/)**. Run-log metadata on mocked **`runTask`** responses: **`runLog`**, **`logxerRunId`** only.
399
+ - **`openMatrixReadTier`** (this package, **3.1+**) — read dashboards; used by **`npm run matrix-read:smoke`**. Replaces **`@exellix/exellix-matrix-read`**.
400
+ - **`createExellixMatrixDataTier`** (this package, **3.1+**) — Mongo matrix + config collections; replaces **`@exellix/exellix-matrix-persister`**.
401
+ - **`@x12i/xmemory-store` ^2.9.8** — Declared dependency (tier factories, statistics, scoped-data reads); re-exported from [`src/execution-matrix/index.ts`](src/execution-matrix/index.ts) for one import surface. Required for the matrix-read smoke script when enabling Memorix (`MATRIX_READ_MEMORIX_ENABLED=true`).
402
+ - **`@x12i/xronox-store`** (direct dependency) — document collection implementation behind **`createExellixMatrixDataTier`**. **Not** re-exported from the package root.
403
+ - **`@x12i/xmemory-scoper` ^1.9.11** — Scoped views, scoped-data reads (**`getXScopedDataByEntityAndQuestionId`**, **`getXScopedDataDocumentBySourceKey`**), narrative helpers, graph-entry Memorix inventory, etc. **`loadGraphEntryMemorixPayload`** in this repo calls into scoper with an **`NxMongoClient`** you supply (typically from **`createNxMongoAdapter`** + **`createXmemoryDataTier`** wiring).
404
+ - `@x12i/catalox` — Declared for consumers that wire catalogs; matrix code imports graph-engine types and leaves Catalox wiring to your host.
405
+
406
+ ## What's new: typed data sources, run-mode loop, and configuration CRUD
407
+
408
+ The execution matrix now models the full data tier between source data and graph runs:
409
+
410
+ - **Graph entry + Memorix + `dataFilters` (2.6.8+)** — **`loadGraphEntryMemorixPayload`** / **`buildExecutionSeedWithMemorixLayer`** ([`graph-entry-xmemory-load.ts`](src/execution-matrix/graph-entry-xmemory-load.ts)): scoper-backed Layer-01 loads (**`scoped-data-row`**, **`scoped-data-by-source-key`**, **`narrative`**, **`snapshot-scoped-data`**). **`evaluateStructuredDataFilters`** and related symbols are **re-exported** from graph-engine for BFF / CI gate preview. See [CHANGELOG.md](CHANGELOG.md) **2.6.8** and unit tests under **`src/execution-matrix/*xmemory*.spec.ts`** / **`graph-engine-datafilters-reexport.spec.ts`**.
411
+ - **Records eligibility (2.2+)** — **`rollupSourceExecutionStatuses`** merges rows into a **source key → graph id → step summary** map; **`ExecutionMatrixRuntime.batchLookupSourceExecutionStatuses`** runs capped **`listRecords`** queries across multiple **`{ matrixCatalogId, matrixRunId?, graphIds? }`** scopes; **`evaluateRecordsEligibility`** applies optional required outcomes (**missing graph ⇒ `not-started`**) and per-graph cooldown vs **`lastAttempt.endedAt`**. **`buildXScopedDataEntityTypeFilter(catalogId)`** shares the canonical **`entityType` / `entity_type`** filter for Memorix scoped-data counts (**`tier.env.scopedDataCollection`**, default **`x-scoped-data`**). Details: [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → “Records eligibility”, “Memorix operational tier”.
412
+ - **Typed `dataSource`** on the matrix payload (`event` / `storage` / `record` / `query-snapshot`), each with its own polling cadence and validation. See [`DataSource`](src/execution-matrix/contracts.ts).
413
+ - **Execution mode** (`continuous` vs `single-pass`) decoupled from the source kind. `continuous` runs an in-process loop driven by an `AbortSignal` the host owns; `single-pass` runs one cycle and returns. No timers, no cron — see `runMatrixContinuously` / `runMatrixOncePass` in [`src/execution-matrix/run-loop.ts`](src/execution-matrix/run-loop.ts).
414
+ - **Matrix claim eligibility** — catalog `EligibilityPolicy` plus `eligibilityToClaim(policy, now)` to derive `{ fromStatuses, extraFilter }`. `lastAttempt` is persisted on each runtime step (`status`, `endedAt`, `modelProfile?`, `jobId?`) so age / model-profile filters work across re-runs. (Separate from **records graph eligibility** in the bullet above.)
415
+ - **Snapshots** — `query-snapshot` sources run a JS transform under `node:vm` (best-effort isolation, hard-capped at 5s wall clock) and persist the result in `exellix_execution_matrix_snapshots`. CRUD via `runtime.insertSnapshot / getSnapshot / listSnapshots` (**optional `entityType`** on records; **`countSnapshots`**, **`extraFilter`**, **`skip`** on list).
416
+ - **Entity-type facet (2.2.2+)** — **`fetchMemorixMatrixEntityFacet`** combines Memorix **`things` / scoped views / scoped data / x-snapshots** samples + tier statistics (**`entityTypes`** buckets per surface, aligned with **`@x12i/xmemory-store`**) with matrix rows and matrix snapshots. Callers must pass **`namespace`** (partition key for tier analytics). [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → “Entity-type facet”.
417
+ - **Source-aware listings** — `listWaiting / listInProgress / listCompleted / listFailed / listSkipped` plus `fetchSourceJoinView(deps, q)` which diffs the upstream source (via `MatrixSourceResolver`) against materialized matrix rows.
418
+ - **Two-database split** — operational data (`exellix-runtime` DB) and configuration (`exellix` DB) are both opened by **`createExellixMatrixDataTier`** from this package. The runtime never touches those DBs except through **`ExecutionMatrixRuntime`** + **`ExellixConfigStore`** constructed from the returned handles.
419
+ - **Configuration CRUD** — `ExellixConfigStore.matrices.{create,get,update,delete,list,getEffectiveConfig}` and `.graphs.{...}` with optimistic concurrency (`expectedVersion`) and re-validation on every write. Run loops can be dispatched by `matrixCatalogId` via `runMatrixOncePassByCatalogId` / `runMatrixContinuouslyByCatalogId`, which re-resolve config at the start of every cycle so live edits propagate without restart.
420
+ - **No runner CRUD.** Lifecycle stays on the host: start = call `runMatrixContinuously`; stop = `controller.abort()`.
421
+
422
+ Full reference and rationale: [docs/execution-matrix-runtime.md](docs/execution-matrix-runtime.md) → "Database split", "Data sources", "Execution mode and polling", "Eligibility", "Records eligibility", "Memorix operational tier", "Entity-type facet", "Snapshots", "Source-join view", "Run-mode loop and on-demand single pass", "Configuration CRUD".
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ /** Run catalox inventory with optional forwarded argv (used by unified `exellix-runtime` CLI). */
3
+ export declare function runCataloxInventoryCli(forwardArgv?: readonly string[]): Promise<void>;
4
+ //# sourceMappingURL=catalox-execution-matrix-inventory-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalox-execution-matrix-inventory-cli.d.ts","sourceRoot":"","sources":["../../src/catalox-inventory/catalox-execution-matrix-inventory-cli.ts"],"names":[],"mappings":";AA2LA,kGAAkG;AAClG,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3F"}