@manta-eu/react 0.1.0 → 0.1.2

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 (512) hide show
  1. package/README.md +100 -37
  2. package/dist/components/breadcrumbs/index.d.ts +26 -0
  3. package/dist/components/breadcrumbs/index.d.ts.map +1 -0
  4. package/dist/components/breadcrumbs/index.js +36 -0
  5. package/dist/components/channel-icon/index.d.ts +1 -2
  6. package/dist/components/channel-icon/index.d.ts.map +1 -1
  7. package/dist/components/channel-icon/index.js +0 -4
  8. package/dist/components/chip/index.d.ts +14 -0
  9. package/dist/components/chip/index.d.ts.map +1 -0
  10. package/dist/components/chip/index.js +8 -0
  11. package/dist/components/editable-text/index.d.ts +13 -0
  12. package/dist/components/editable-text/index.d.ts.map +1 -0
  13. package/dist/components/editable-text/index.js +61 -0
  14. package/dist/components/explain-fact/ExplainFact.d.ts +16 -0
  15. package/dist/components/explain-fact/ExplainFact.d.ts.map +1 -0
  16. package/dist/components/{rdfox-explain/RDFoxExplain.js → explain-fact/ExplainFact.js} +12 -12
  17. package/dist/components/explain-fact/OutdatedFactNotice.d.ts.map +1 -0
  18. package/dist/components/input/index.d.ts +2 -0
  19. package/dist/components/input/index.d.ts.map +1 -1
  20. package/dist/components/input/index.js +2 -0
  21. package/dist/components/input/input-numeric.d.ts +19 -0
  22. package/dist/components/input/input-numeric.d.ts.map +1 -0
  23. package/dist/components/input/input-numeric.js +85 -0
  24. package/dist/components/input/input-tags.d.ts +17 -0
  25. package/dist/components/input/input-tags.d.ts.map +1 -0
  26. package/dist/components/input/input-tags.js +46 -0
  27. package/dist/components/multi-select/index.d.ts +32 -0
  28. package/dist/components/multi-select/index.d.ts.map +1 -0
  29. package/dist/components/multi-select/index.js +33 -0
  30. package/dist/components/multi-select/toggle-value.d.ts +2 -0
  31. package/dist/components/multi-select/toggle-value.d.ts.map +1 -0
  32. package/dist/components/multi-select/toggle-value.js +3 -0
  33. package/dist/components/plan-row/index.d.ts +2 -1
  34. package/dist/components/plan-row/index.d.ts.map +1 -1
  35. package/dist/components/plan-row/index.js +2 -14
  36. package/dist/components/sidebar/index.d.ts +4 -1
  37. package/dist/components/sidebar/index.d.ts.map +1 -1
  38. package/dist/components/sidebar/index.js +2 -2
  39. package/dist/components/skeleton/index.js +1 -1
  40. package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts +9 -0
  41. package/dist/components/tool-invocation-card/ExplainFactResultDisplay.d.ts.map +1 -0
  42. package/dist/components/tool-invocation-card/{ExplainRDFoxResultDisplay.js → ExplainFactResultDisplay.js} +3 -3
  43. package/dist/components/tool-invocation-card/ToolOutputRenderer.js +2 -2
  44. package/dist/components/tool-invocation-card/types.d.ts +4 -4
  45. package/dist/components/tool-invocation-card/types.d.ts.map +1 -1
  46. package/dist/components/tool-invocation-card/types.js +2 -2
  47. package/dist/components/tree-multi-select/index.d.ts +1 -1
  48. package/dist/components/tree-multi-select/index.d.ts.map +1 -1
  49. package/dist/components/tree-multi-select/index.js +1 -1
  50. package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts +2 -1
  51. package/dist/components/tree-multi-select/tree-multi-select-rows.d.ts.map +1 -1
  52. package/dist/components/tree-multi-select/tree-multi-select-rows.js +21 -31
  53. package/dist/components/tree-multi-select/tree-multi-select.d.ts +2 -0
  54. package/dist/components/tree-multi-select/tree-multi-select.d.ts.map +1 -1
  55. package/dist/components/tree-multi-select/tree-multi-select.js +21 -8
  56. package/dist/explain-fact/DatalogCode.d.ts.map +1 -0
  57. package/dist/explain-fact/EntityChip.d.ts.map +1 -0
  58. package/dist/explain-fact/EntityChip.js +17 -0
  59. package/dist/explain-fact/ExplainCompactView.d.ts.map +1 -0
  60. package/dist/explain-fact/ExplainFactState.d.ts +7 -0
  61. package/dist/explain-fact/ExplainFactState.d.ts.map +1 -0
  62. package/dist/{rdfox-explain/RDFoxExplainState.js → explain-fact/ExplainFactState.js} +1 -1
  63. package/dist/explain-fact/ExplainFullView.d.ts.map +1 -0
  64. package/dist/explain-fact/ExplainStates.d.ts.map +1 -0
  65. package/dist/explain-fact/ExplainTag.d.ts.map +1 -0
  66. package/dist/explain-fact/FactNotice.d.ts +7 -0
  67. package/dist/explain-fact/FactNotice.d.ts.map +1 -0
  68. package/dist/explain-fact/FactNotice.js +25 -0
  69. package/dist/explain-fact/FactValue.d.ts.map +1 -0
  70. package/dist/explain-fact/NumDot.d.ts.map +1 -0
  71. package/dist/explain-fact/PanelLabel.d.ts.map +1 -0
  72. package/dist/explain-fact/ProofSubjectHeader.d.ts.map +1 -0
  73. package/dist/explain-fact/ProvenanceBadge.d.ts.map +1 -0
  74. package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.js +2 -1
  75. package/dist/explain-fact/RuleVariableTypes.d.ts.map +1 -0
  76. package/dist/explain-fact/SubstitutedFactNotice.d.ts.map +1 -0
  77. package/dist/explain-fact/ValuePill.d.ts.map +1 -0
  78. package/dist/explain-fact/conclusion/ConclusionCard.d.ts.map +1 -0
  79. package/dist/explain-fact/conclusion/ConclusionSubtitle.d.ts.map +1 -0
  80. package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.js +3 -1
  81. package/dist/explain-fact/conclusion/index.d.ts.map +1 -0
  82. package/dist/explain-fact/explain-styles.d.ts.map +1 -0
  83. package/dist/explain-fact/fact-token.d.ts.map +1 -0
  84. package/dist/explain-fact/formula-hues.d.ts.map +1 -0
  85. package/dist/{rdfox-explain → explain-fact}/index.d.ts +2 -3
  86. package/dist/explain-fact/index.d.ts.map +1 -0
  87. package/dist/{rdfox-explain → explain-fact}/index.js +2 -3
  88. package/dist/explain-fact/inspector/ExplainInspector.d.ts.map +1 -0
  89. package/dist/explain-fact/inspector/ExplainInspector.js +20 -0
  90. package/dist/explain-fact/inspector/InspectorBindings.d.ts.map +1 -0
  91. package/dist/explain-fact/inspector/InspectorFact.d.ts.map +1 -0
  92. package/dist/explain-fact/inspector/InspectorHeader.d.ts.map +1 -0
  93. package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.d.ts +3 -0
  94. package/dist/explain-fact/inspector/InspectorRule.d.ts.map +1 -0
  95. package/dist/{rdfox-explain → explain-fact}/inspector/InspectorRule.js +4 -5
  96. package/dist/explain-fact/inspector/SupportsSection.d.ts.map +1 -0
  97. package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.js +2 -1
  98. package/dist/explain-fact/inspector/index.d.ts.map +1 -0
  99. package/dist/explain-fact/proof-tree/ProofFactLabel.d.ts.map +1 -0
  100. package/dist/explain-fact/proof-tree/ProofRowBadge.d.ts.map +1 -0
  101. package/dist/explain-fact/proof-tree/ProofRowContent.d.ts.map +1 -0
  102. package/dist/explain-fact/proof-tree/ProofRowValue.d.ts.map +1 -0
  103. package/dist/explain-fact/proof-tree/ProofTree.d.ts.map +1 -0
  104. package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.js +1 -1
  105. package/dist/explain-fact/proof-tree/ProofTreeFormulaFooter.d.ts.map +1 -0
  106. package/dist/explain-fact/proof-tree/ProofTreeNode.d.ts.map +1 -0
  107. package/dist/explain-fact/proof-tree/SupportsTag.d.ts.map +1 -0
  108. package/dist/explain-fact/proof-tree/SupportsTag.js +6 -0
  109. package/dist/explain-fact/proof-tree/index.d.ts.map +1 -0
  110. package/dist/explain-fact/proof-tree/proof-tree-navigation.d.ts.map +1 -0
  111. package/dist/explain-fact/proof-tree/proof-tree-root-view.d.ts.map +1 -0
  112. package/dist/explain-fact/proof-tree/visible-premises.d.ts.map +1 -0
  113. package/dist/explain-fact/rule-presentation.d.ts.map +1 -0
  114. package/dist/{rdfox-explain → explain-fact}/tree-model.d.ts +18 -9
  115. package/dist/explain-fact/tree-model.d.ts.map +1 -0
  116. package/dist/{rdfox-explain → explain-fact}/tree-model.js +19 -10
  117. package/dist/explain-fact/use-fact-measure.d.ts.map +1 -0
  118. package/dist/globals.css +383 -108
  119. package/dist/graph/nodes/AdMockupCard.js +1 -1
  120. package/dist/graph/nodes/CreativeMediaCard.js +1 -1
  121. package/dist/graph/nodes/EntityCardShell.js +1 -1
  122. package/dist/hooks/use-conversation-starters.d.ts +1 -1
  123. package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
  124. package/dist/index.d.ts +3 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +3 -0
  127. package/dist/ldo-ui.d.ts +1 -1
  128. package/dist/ldo-ui.d.ts.map +1 -1
  129. package/dist/ldo-ui.js +1 -1
  130. package/dist/lib/datastore-route-paths.d.ts +2 -2
  131. package/dist/lib/datastore-route-paths.d.ts.map +1 -1
  132. package/dist/lib/datastore-route-paths.js +2 -2
  133. package/dist/lib/datastore-route-table.d.ts +36 -0
  134. package/dist/lib/datastore-route-table.d.ts.map +1 -0
  135. package/dist/lib/datastore-route-table.js +43 -0
  136. package/dist/lib/datastore-routes.d.ts +1 -1
  137. package/dist/lib/datastore-routes.d.ts.map +1 -1
  138. package/dist/lib/datastore-routes.js +1 -1
  139. package/dist/lib/spa-routes.d.ts +3 -0
  140. package/dist/lib/spa-routes.d.ts.map +1 -0
  141. package/dist/lib/spa-routes.js +5 -0
  142. package/dist/routes/data-explorer/components/Breadcrumbs.d.ts.map +1 -1
  143. package/dist/routes/data-explorer/components/Breadcrumbs.js +5 -5
  144. package/dist/routes/datastores/components/DatastoreFormDialog.d.ts +18 -0
  145. package/dist/routes/datastores/components/DatastoreFormDialog.d.ts.map +1 -0
  146. package/dist/routes/datastores/components/DatastoreFormDialog.js +27 -0
  147. package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts +2 -0
  148. package/dist/routes/datastores/components/DatastoreTableSkeleton.d.ts.map +1 -0
  149. package/dist/routes/datastores/components/DatastoreTableSkeleton.js +7 -0
  150. package/dist/routes/datastores/components/DatastoresToolbar.d.ts +18 -0
  151. package/dist/routes/datastores/components/DatastoresToolbar.d.ts.map +1 -0
  152. package/dist/routes/datastores/components/DatastoresToolbar.js +29 -0
  153. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts +14 -0
  154. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.d.ts.map +1 -0
  155. package/dist/routes/datastores/components/LinkUnlinkedDatastoreDialog.js +83 -0
  156. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts +9 -0
  157. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.d.ts.map +1 -0
  158. package/dist/routes/datastores/components/RenameDatastoreGroupDialog.js +21 -0
  159. package/dist/routes/datastores/components/StatusBadge.d.ts +21 -0
  160. package/dist/routes/datastores/components/StatusBadge.d.ts.map +1 -0
  161. package/dist/routes/datastores/components/StatusBadge.js +49 -0
  162. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts +20 -0
  163. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.d.ts.map +1 -0
  164. package/dist/routes/datastores/components/UnlinkedDatastoresPanel.js +13 -0
  165. package/dist/routes/datastores/flatten.d.ts +33 -0
  166. package/dist/routes/datastores/flatten.d.ts.map +1 -0
  167. package/dist/routes/datastores/flatten.js +86 -0
  168. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +47 -0
  169. package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -0
  170. package/dist/routes/datastores/hooks/useDatastoreColumns.js +165 -0
  171. package/dist/routes/datastores/hooks/useDatastoreTable.d.ts +14 -0
  172. package/dist/routes/datastores/hooks/useDatastoreTable.d.ts.map +1 -0
  173. package/dist/routes/datastores/hooks/useDatastoreTable.js +45 -0
  174. package/dist/routes/datastores/index.d.ts +2 -0
  175. package/dist/routes/datastores/index.d.ts.map +1 -0
  176. package/dist/routes/datastores/index.js +467 -0
  177. package/dist/routes/explain/ExplainEmpty.d.ts +2 -0
  178. package/dist/routes/explain/ExplainEmpty.d.ts.map +1 -0
  179. package/dist/routes/explain/ExplainEmpty.js +8 -0
  180. package/dist/routes/explain/index.d.ts +2 -0
  181. package/dist/routes/explain/index.d.ts.map +1 -0
  182. package/dist/routes/explain/index.js +16 -0
  183. package/dist/routes/explain/url-params.d.ts +9 -0
  184. package/dist/routes/explain/url-params.d.ts.map +1 -0
  185. package/dist/routes/explain/url-params.js +21 -0
  186. package/dist/routes/integrations/components/ConnectionRow.d.ts.map +1 -1
  187. package/dist/routes/integrations/components/ConnectionRow.js +1 -1
  188. package/dist/routes/integrations/connection-view.d.ts.map +1 -1
  189. package/dist/routes/integrations/connection-view.js +17 -1
  190. package/dist/routes/integrations/types.d.ts +2 -1
  191. package/dist/routes/integrations/types.d.ts.map +1 -1
  192. package/dist/routes/memories/components/ChangeScopeDialog.d.ts +12 -0
  193. package/dist/routes/memories/components/ChangeScopeDialog.d.ts.map +1 -0
  194. package/dist/routes/memories/components/ChangeScopeDialog.js +89 -0
  195. package/dist/routes/memories/components/ConflictMemoryCard.d.ts +13 -0
  196. package/dist/routes/memories/components/ConflictMemoryCard.d.ts.map +1 -0
  197. package/dist/routes/memories/components/ConflictMemoryCard.js +43 -0
  198. package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts +7 -0
  199. package/dist/routes/memories/components/ConflictTimeoutFooter.d.ts.map +1 -0
  200. package/dist/routes/memories/components/ConflictTimeoutFooter.js +6 -0
  201. package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts +61 -0
  202. package/dist/routes/memories/components/ConsolidationReviewDialog.d.ts.map +1 -0
  203. package/dist/routes/memories/components/ConsolidationReviewDialog.js +121 -0
  204. package/dist/routes/memories/components/EmptyStates.d.ts +18 -0
  205. package/dist/routes/memories/components/EmptyStates.d.ts.map +1 -0
  206. package/dist/routes/memories/components/EmptyStates.js +22 -0
  207. package/dist/routes/memories/components/ImportanceSlider.d.ts +11 -0
  208. package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -0
  209. package/dist/routes/memories/components/ImportanceSlider.js +31 -0
  210. package/dist/routes/memories/components/LiveContextTab.d.ts +6 -0
  211. package/dist/routes/memories/components/LiveContextTab.d.ts.map +1 -0
  212. package/dist/routes/memories/components/LiveContextTab.js +37 -0
  213. package/dist/routes/memories/components/LoadingSkeleton.d.ts +2 -0
  214. package/dist/routes/memories/components/LoadingSkeleton.d.ts.map +1 -0
  215. package/dist/routes/memories/components/LoadingSkeleton.js +7 -0
  216. package/dist/routes/memories/components/MemoriesFilters.d.ts +31 -0
  217. package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -0
  218. package/dist/routes/memories/components/MemoriesFilters.js +88 -0
  219. package/dist/routes/memories/components/MemoriesPanel.d.ts +6 -0
  220. package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -0
  221. package/dist/routes/memories/components/MemoriesPanel.js +99 -0
  222. package/dist/routes/memories/components/MemoriesTabPanel.d.ts +30 -0
  223. package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -0
  224. package/dist/routes/memories/components/MemoriesTabPanel.js +11 -0
  225. package/dist/routes/memories/components/MemoryActions.d.ts +12 -0
  226. package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -0
  227. package/dist/routes/memories/components/MemoryActions.js +24 -0
  228. package/dist/routes/memories/components/MemoryFields.d.ts +32 -0
  229. package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -0
  230. package/dist/routes/memories/components/MemoryFields.js +30 -0
  231. package/dist/routes/memories/components/MemoryFormDialog.d.ts +15 -0
  232. package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -0
  233. package/dist/routes/memories/components/MemoryFormDialog.js +299 -0
  234. package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts +9 -0
  235. package/dist/routes/memories/components/MemoryOnboardingWizard.d.ts.map +1 -0
  236. package/dist/routes/memories/components/MemoryOnboardingWizard.js +99 -0
  237. package/dist/routes/memories/components/RestoreBlockedDialog.d.ts +8 -0
  238. package/dist/routes/memories/components/RestoreBlockedDialog.d.ts.map +1 -0
  239. package/dist/routes/memories/components/RestoreBlockedDialog.js +7 -0
  240. package/dist/routes/memories/components/SchemasTab.d.ts +6 -0
  241. package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -0
  242. package/dist/routes/memories/components/SchemasTab.js +35 -0
  243. package/dist/routes/memories/components/SupersessionConflictDialog.d.ts +18 -0
  244. package/dist/routes/memories/components/SupersessionConflictDialog.d.ts.map +1 -0
  245. package/dist/routes/memories/components/SupersessionConflictDialog.js +78 -0
  246. package/dist/routes/memories/components/TeamPicker.d.ts +8 -0
  247. package/dist/routes/memories/components/TeamPicker.d.ts.map +1 -0
  248. package/dist/routes/memories/components/TeamPicker.js +25 -0
  249. package/dist/routes/memories/components/badges.d.ts +50 -0
  250. package/dist/routes/memories/components/badges.d.ts.map +1 -0
  251. package/dist/routes/memories/components/badges.js +106 -0
  252. package/dist/routes/memories/expiry-utils.d.ts +23 -0
  253. package/dist/routes/memories/expiry-utils.d.ts.map +1 -0
  254. package/dist/routes/memories/expiry-utils.js +97 -0
  255. package/dist/routes/memories/hooks/useConflictCheck.d.ts +18 -0
  256. package/dist/routes/memories/hooks/useConflictCheck.d.ts.map +1 -0
  257. package/dist/routes/memories/hooks/useConflictCheck.js +35 -0
  258. package/dist/routes/memories/hooks/useDuplicateDetection.d.ts +11 -0
  259. package/dist/routes/memories/hooks/useDuplicateDetection.d.ts.map +1 -0
  260. package/dist/routes/memories/hooks/useDuplicateDetection.js +73 -0
  261. package/dist/routes/memories/hooks/useLiveContext.d.ts +23 -0
  262. package/dist/routes/memories/hooks/useLiveContext.d.ts.map +1 -0
  263. package/dist/routes/memories/hooks/useLiveContext.js +102 -0
  264. package/dist/routes/memories/hooks/useMemoryColumns.d.ts +33 -0
  265. package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -0
  266. package/dist/routes/memories/hooks/useMemoryColumns.js +188 -0
  267. package/dist/routes/memories/hooks/useMemoryTable.d.ts +33 -0
  268. package/dist/routes/memories/hooks/useMemoryTable.d.ts.map +1 -0
  269. package/dist/routes/memories/hooks/useMemoryTable.js +121 -0
  270. package/dist/routes/memories/index.d.ts +11 -0
  271. package/dist/routes/memories/index.d.ts.map +1 -0
  272. package/dist/routes/memories/index.js +472 -0
  273. package/dist/routes/memories/memory-form-validation.d.ts +8 -0
  274. package/dist/routes/memories/memory-form-validation.d.ts.map +1 -0
  275. package/dist/routes/memories/memory-form-validation.js +33 -0
  276. package/dist/routes/memories/memory-mutation-input.d.ts +6 -0
  277. package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -0
  278. package/dist/routes/memories/memory-mutation-input.js +41 -0
  279. package/dist/routes/plans/components/actionPlansTableConfig.d.ts +3 -3
  280. package/dist/routes/rules/components/CreateRuleChatModal.d.ts +10 -0
  281. package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -0
  282. package/dist/routes/rules/components/CreateRuleChatModal.js +52 -0
  283. package/dist/routes/rules/components/RuleActionabilityBadge.d.ts +8 -0
  284. package/dist/routes/rules/components/RuleActionabilityBadge.d.ts.map +1 -0
  285. package/dist/routes/rules/components/RuleActionabilityBadge.js +18 -0
  286. package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts +6 -0
  287. package/dist/routes/rules/components/RuleAffectedActionPlansSection.d.ts.map +1 -0
  288. package/dist/routes/rules/components/RuleAffectedActionPlansSection.js +151 -0
  289. package/dist/routes/rules/components/RuleAst.d.ts +6 -0
  290. package/dist/routes/rules/components/RuleAst.d.ts.map +1 -0
  291. package/dist/routes/rules/components/RuleAst.js +23 -0
  292. package/dist/routes/rules/components/RuleDependentRulesSection.d.ts +6 -0
  293. package/dist/routes/rules/components/RuleDependentRulesSection.d.ts.map +1 -0
  294. package/dist/routes/rules/components/RuleDependentRulesSection.js +16 -0
  295. package/dist/routes/rules/components/RuleDetailsPage.d.ts +14 -0
  296. package/dist/routes/rules/components/RuleDetailsPage.d.ts.map +1 -0
  297. package/dist/routes/rules/components/RuleDetailsPage.js +51 -0
  298. package/dist/routes/rules/components/RuleProducersSection.d.ts +7 -0
  299. package/dist/routes/rules/components/RuleProducersSection.d.ts.map +1 -0
  300. package/dist/routes/rules/components/RuleProducersSection.js +10 -0
  301. package/dist/routes/rules/components/RuleSampleFactsSection.d.ts +7 -0
  302. package/dist/routes/rules/components/RuleSampleFactsSection.d.ts.map +1 -0
  303. package/dist/routes/rules/components/RuleSampleFactsSection.js +70 -0
  304. package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts +17 -0
  305. package/dist/routes/rules/components/RulesOverviewHeaderActions.d.ts.map +1 -0
  306. package/dist/routes/rules/components/RulesOverviewHeaderActions.js +55 -0
  307. package/dist/routes/rules/components/RulesOverviewPage.d.ts +13 -0
  308. package/dist/routes/rules/components/RulesOverviewPage.d.ts.map +1 -0
  309. package/dist/routes/rules/components/RulesOverviewPage.js +236 -0
  310. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts +7 -0
  311. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.d.ts.map +1 -0
  312. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapeDetails.js +47 -0
  313. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts +8 -0
  314. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.d.ts.map +1 -0
  315. package/dist/routes/rules/components/SupportedActionShapesList/SupportedActionShapesList.js +76 -0
  316. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts +6 -0
  317. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.d.ts.map +1 -0
  318. package/dist/routes/rules/components/SupportedActionShapesList/TokenList.js +9 -0
  319. package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts +2 -0
  320. package/dist/routes/rules/components/SupportedActionShapesList/index.d.ts.map +1 -0
  321. package/dist/routes/rules/components/SupportedActionShapesList/index.js +1 -0
  322. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts +20 -0
  323. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.d.ts.map +1 -0
  324. package/dist/routes/rules/components/SupportedActionShapesList/shacl-shape.js +48 -0
  325. package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts +9 -0
  326. package/dist/routes/rules/components/datalog-editor/BindingsPreview.d.ts.map +1 -0
  327. package/dist/routes/rules/components/datalog-editor/BindingsPreview.js +38 -0
  328. package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts +10 -0
  329. package/dist/routes/rules/components/datalog-editor/FactsPreview.d.ts.map +1 -0
  330. package/dist/routes/rules/components/datalog-editor/FactsPreview.js +43 -0
  331. package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts +7 -0
  332. package/dist/routes/rules/components/datalog-editor/PreviewPanel.d.ts.map +1 -0
  333. package/dist/routes/rules/components/datalog-editor/PreviewPanel.js +8 -0
  334. package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts +9 -0
  335. package/dist/routes/rules/components/datalog-editor/QueryResults.d.ts.map +1 -0
  336. package/dist/routes/rules/components/datalog-editor/QueryResults.js +22 -0
  337. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts +11 -0
  338. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.d.ts.map +1 -0
  339. package/dist/routes/rules/components/datalog-editor/SparqlQueryPanel.js +21 -0
  340. package/dist/routes/rules/components/rule-producers.d.ts +15 -0
  341. package/dist/routes/rules/components/rule-producers.d.ts.map +1 -0
  342. package/dist/routes/rules/components/rule-producers.js +76 -0
  343. package/dist/routes/rules/components/sample-facts-query.d.ts +9 -0
  344. package/dist/routes/rules/components/sample-facts-query.d.ts.map +1 -0
  345. package/dist/routes/rules/components/sample-facts-query.js +71 -0
  346. package/dist/routes/rules/datalog-editor.d.ts +6 -0
  347. package/dist/routes/rules/datalog-editor.d.ts.map +1 -0
  348. package/dist/routes/rules/datalog-editor.js +7 -0
  349. package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts +53 -0
  350. package/dist/routes/rules/hooks/useRuleFactsPreview.d.ts.map +1 -0
  351. package/dist/routes/rules/hooks/useRuleFactsPreview.js +214 -0
  352. package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts +14 -0
  353. package/dist/routes/rules/hooks/useSparqlQueryExecution.d.ts.map +1 -0
  354. package/dist/routes/rules/hooks/useSparqlQueryExecution.js +77 -0
  355. package/dist/routes/rules/pages.d.ts +6 -0
  356. package/dist/routes/rules/pages.d.ts.map +1 -0
  357. package/dist/routes/rules/pages.js +7 -0
  358. package/dist/rules/RuleNameLink.d.ts +6 -0
  359. package/dist/rules/RuleNameLink.d.ts.map +1 -0
  360. package/dist/rules/RuleNameLink.js +8 -0
  361. package/package.json +64 -24
  362. package/src/globals.css +18 -18
  363. package/src/themes/manta-dark.css +1 -4
  364. package/src/themes/manta.css +1 -0
  365. package/src/themes/standard.css +12 -11
  366. package/dist/components/channel-icon/marketer-icon.d.ts +0 -4
  367. package/dist/components/channel-icon/marketer-icon.d.ts.map +0 -1
  368. package/dist/components/channel-icon/marketer-icon.js +0 -6
  369. package/dist/components/rdfox-explain/OutdatedFactNotice.d.ts.map +0 -1
  370. package/dist/components/rdfox-explain/RDFoxExplain.d.ts +0 -16
  371. package/dist/components/rdfox-explain/RDFoxExplain.d.ts.map +0 -1
  372. package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts +0 -9
  373. package/dist/components/tool-invocation-card/ExplainRDFoxResultDisplay.d.ts.map +0 -1
  374. package/dist/lib/test-utils.d.ts +0 -4
  375. package/dist/lib/test-utils.d.ts.map +0 -1
  376. package/dist/lib/test-utils.js +0 -16
  377. package/dist/rdfox-explain/AbsentFactNotice.d.ts +0 -5
  378. package/dist/rdfox-explain/AbsentFactNotice.d.ts.map +0 -1
  379. package/dist/rdfox-explain/AbsentFactNotice.js +0 -6
  380. package/dist/rdfox-explain/DatalogCode.d.ts.map +0 -1
  381. package/dist/rdfox-explain/EntityChip.d.ts.map +0 -1
  382. package/dist/rdfox-explain/EntityChip.js +0 -9
  383. package/dist/rdfox-explain/ExplainCompactView.d.ts.map +0 -1
  384. package/dist/rdfox-explain/ExplainFullView.d.ts.map +0 -1
  385. package/dist/rdfox-explain/ExplainStates.d.ts.map +0 -1
  386. package/dist/rdfox-explain/ExplainTag.d.ts.map +0 -1
  387. package/dist/rdfox-explain/FactValue.d.ts.map +0 -1
  388. package/dist/rdfox-explain/NumDot.d.ts.map +0 -1
  389. package/dist/rdfox-explain/PanelLabel.d.ts.map +0 -1
  390. package/dist/rdfox-explain/ProofSubjectHeader.d.ts.map +0 -1
  391. package/dist/rdfox-explain/ProvenanceBadge.d.ts.map +0 -1
  392. package/dist/rdfox-explain/RDFoxExplainState.d.ts +0 -7
  393. package/dist/rdfox-explain/RDFoxExplainState.d.ts.map +0 -1
  394. package/dist/rdfox-explain/RuleVariableTypes.d.ts.map +0 -1
  395. package/dist/rdfox-explain/StoredFactNotice.d.ts +0 -5
  396. package/dist/rdfox-explain/StoredFactNotice.d.ts.map +0 -1
  397. package/dist/rdfox-explain/StoredFactNotice.js +0 -6
  398. package/dist/rdfox-explain/SubstitutedFactNotice.d.ts.map +0 -1
  399. package/dist/rdfox-explain/ValuePill.d.ts.map +0 -1
  400. package/dist/rdfox-explain/busy-aggregate-fixture.d.ts +0 -7
  401. package/dist/rdfox-explain/busy-aggregate-fixture.d.ts.map +0 -1
  402. package/dist/rdfox-explain/busy-aggregate-fixture.js +0 -6
  403. package/dist/rdfox-explain/conclusion/ConclusionCard.d.ts.map +0 -1
  404. package/dist/rdfox-explain/conclusion/ConclusionSubtitle.d.ts.map +0 -1
  405. package/dist/rdfox-explain/conclusion/index.d.ts.map +0 -1
  406. package/dist/rdfox-explain/explain-styles.d.ts.map +0 -1
  407. package/dist/rdfox-explain/fact-token.d.ts.map +0 -1
  408. package/dist/rdfox-explain/formula-hues.d.ts.map +0 -1
  409. package/dist/rdfox-explain/index.d.ts.map +0 -1
  410. package/dist/rdfox-explain/inspector/ExplainInspector.d.ts.map +0 -1
  411. package/dist/rdfox-explain/inspector/ExplainInspector.js +0 -22
  412. package/dist/rdfox-explain/inspector/InspectorBindings.d.ts.map +0 -1
  413. package/dist/rdfox-explain/inspector/InspectorFact.d.ts.map +0 -1
  414. package/dist/rdfox-explain/inspector/InspectorHeader.d.ts.map +0 -1
  415. package/dist/rdfox-explain/inspector/InspectorRule.d.ts.map +0 -1
  416. package/dist/rdfox-explain/inspector/SupportsSection.d.ts.map +0 -1
  417. package/dist/rdfox-explain/inspector/index.d.ts.map +0 -1
  418. package/dist/rdfox-explain/proof-tree/ProofFactLabel.d.ts.map +0 -1
  419. package/dist/rdfox-explain/proof-tree/ProofRowBadge.d.ts.map +0 -1
  420. package/dist/rdfox-explain/proof-tree/ProofRowContent.d.ts.map +0 -1
  421. package/dist/rdfox-explain/proof-tree/ProofRowValue.d.ts.map +0 -1
  422. package/dist/rdfox-explain/proof-tree/ProofTree.d.ts.map +0 -1
  423. package/dist/rdfox-explain/proof-tree/ProofTreeFormulaFooter.d.ts.map +0 -1
  424. package/dist/rdfox-explain/proof-tree/ProofTreeNode.d.ts.map +0 -1
  425. package/dist/rdfox-explain/proof-tree/SupportsTag.d.ts.map +0 -1
  426. package/dist/rdfox-explain/proof-tree/SupportsTag.js +0 -6
  427. package/dist/rdfox-explain/proof-tree/index.d.ts.map +0 -1
  428. package/dist/rdfox-explain/proof-tree/proof-tree-navigation.d.ts.map +0 -1
  429. package/dist/rdfox-explain/proof-tree/proof-tree-root-view.d.ts.map +0 -1
  430. package/dist/rdfox-explain/proof-tree/visible-premises.d.ts.map +0 -1
  431. package/dist/rdfox-explain/rule-presentation.d.ts.map +0 -1
  432. package/dist/rdfox-explain/tree-model.d.ts.map +0 -1
  433. package/dist/rdfox-explain/use-fact-measure.d.ts.map +0 -1
  434. package/dist/test-support.d.ts +0 -9
  435. package/dist/test-support.d.ts.map +0 -1
  436. package/dist/test-support.js +0 -18
  437. package/src/themes/marketer-dark.css +0 -70
  438. /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.d.ts +0 -0
  439. /package/dist/components/{rdfox-explain → explain-fact}/OutdatedFactNotice.js +0 -0
  440. /package/dist/{rdfox-explain → explain-fact}/DatalogCode.d.ts +0 -0
  441. /package/dist/{rdfox-explain → explain-fact}/DatalogCode.js +0 -0
  442. /package/dist/{rdfox-explain → explain-fact}/EntityChip.d.ts +0 -0
  443. /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.d.ts +0 -0
  444. /package/dist/{rdfox-explain → explain-fact}/ExplainCompactView.js +0 -0
  445. /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.d.ts +0 -0
  446. /package/dist/{rdfox-explain → explain-fact}/ExplainFullView.js +0 -0
  447. /package/dist/{rdfox-explain → explain-fact}/ExplainStates.d.ts +0 -0
  448. /package/dist/{rdfox-explain → explain-fact}/ExplainStates.js +0 -0
  449. /package/dist/{rdfox-explain → explain-fact}/ExplainTag.d.ts +0 -0
  450. /package/dist/{rdfox-explain → explain-fact}/ExplainTag.js +0 -0
  451. /package/dist/{rdfox-explain → explain-fact}/FactValue.d.ts +0 -0
  452. /package/dist/{rdfox-explain → explain-fact}/FactValue.js +0 -0
  453. /package/dist/{rdfox-explain → explain-fact}/NumDot.d.ts +0 -0
  454. /package/dist/{rdfox-explain → explain-fact}/NumDot.js +0 -0
  455. /package/dist/{rdfox-explain → explain-fact}/PanelLabel.d.ts +0 -0
  456. /package/dist/{rdfox-explain → explain-fact}/PanelLabel.js +0 -0
  457. /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.d.ts +0 -0
  458. /package/dist/{rdfox-explain → explain-fact}/ProofSubjectHeader.js +0 -0
  459. /package/dist/{rdfox-explain → explain-fact}/ProvenanceBadge.d.ts +0 -0
  460. /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.d.ts +0 -0
  461. /package/dist/{rdfox-explain → explain-fact}/RuleVariableTypes.js +0 -0
  462. /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.d.ts +0 -0
  463. /package/dist/{rdfox-explain → explain-fact}/SubstitutedFactNotice.js +0 -0
  464. /package/dist/{rdfox-explain → explain-fact}/ValuePill.d.ts +0 -0
  465. /package/dist/{rdfox-explain → explain-fact}/ValuePill.js +0 -0
  466. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.d.ts +0 -0
  467. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionCard.js +0 -0
  468. /package/dist/{rdfox-explain → explain-fact}/conclusion/ConclusionSubtitle.d.ts +0 -0
  469. /package/dist/{rdfox-explain → explain-fact}/conclusion/index.d.ts +0 -0
  470. /package/dist/{rdfox-explain → explain-fact}/conclusion/index.js +0 -0
  471. /package/dist/{rdfox-explain → explain-fact}/explain-styles.d.ts +0 -0
  472. /package/dist/{rdfox-explain → explain-fact}/explain-styles.js +0 -0
  473. /package/dist/{rdfox-explain → explain-fact}/fact-token.d.ts +0 -0
  474. /package/dist/{rdfox-explain → explain-fact}/fact-token.js +0 -0
  475. /package/dist/{rdfox-explain → explain-fact}/formula-hues.d.ts +0 -0
  476. /package/dist/{rdfox-explain → explain-fact}/formula-hues.js +0 -0
  477. /package/dist/{rdfox-explain → explain-fact}/inspector/ExplainInspector.d.ts +0 -0
  478. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.d.ts +0 -0
  479. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorBindings.js +0 -0
  480. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.d.ts +0 -0
  481. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorFact.js +0 -0
  482. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.d.ts +0 -0
  483. /package/dist/{rdfox-explain → explain-fact}/inspector/InspectorHeader.js +0 -0
  484. /package/dist/{rdfox-explain → explain-fact}/inspector/SupportsSection.d.ts +0 -0
  485. /package/dist/{rdfox-explain → explain-fact}/inspector/index.d.ts +0 -0
  486. /package/dist/{rdfox-explain → explain-fact}/inspector/index.js +0 -0
  487. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.d.ts +0 -0
  488. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofFactLabel.js +0 -0
  489. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.d.ts +0 -0
  490. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowBadge.js +0 -0
  491. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.d.ts +0 -0
  492. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowContent.js +0 -0
  493. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.d.ts +0 -0
  494. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofRowValue.js +0 -0
  495. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTree.d.ts +0 -0
  496. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.d.ts +0 -0
  497. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeFormulaFooter.js +0 -0
  498. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.d.ts +0 -0
  499. /package/dist/{rdfox-explain → explain-fact}/proof-tree/ProofTreeNode.js +0 -0
  500. /package/dist/{rdfox-explain → explain-fact}/proof-tree/SupportsTag.d.ts +0 -0
  501. /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.d.ts +0 -0
  502. /package/dist/{rdfox-explain → explain-fact}/proof-tree/index.js +0 -0
  503. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.d.ts +0 -0
  504. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-navigation.js +0 -0
  505. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.d.ts +0 -0
  506. /package/dist/{rdfox-explain → explain-fact}/proof-tree/proof-tree-root-view.js +0 -0
  507. /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.d.ts +0 -0
  508. /package/dist/{rdfox-explain → explain-fact}/proof-tree/visible-premises.js +0 -0
  509. /package/dist/{rdfox-explain → explain-fact}/rule-presentation.d.ts +0 -0
  510. /package/dist/{rdfox-explain → explain-fact}/rule-presentation.js +0 -0
  511. /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.d.ts +0 -0
  512. /package/dist/{rdfox-explain → explain-fact}/use-fact-measure.js +0 -0
@@ -0,0 +1,472 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { GQLMemoryScope, useAvailableTeamsQuery, useCreateMemoryMutation, useDeleteMemoryMutation, useConsolidateMemoriesMutation, useMemoriesQuery, useMemoryRedundancyReviewQuery, useMemorySchemasQuery, useReconfirmMemoryMutation, useRestoreMemoryMutation, useUpdateMemoryMutation, } from "@manta-eu/client";
3
+ import { parseError } from "@manta-eu/client/shared/error-utils";
4
+ import { isPresent } from "@manta-eu/lib/present";
5
+ import { useQueryClient } from "@tanstack/react-query";
6
+ import { Archive, Brain, CalendarX, CopyCheck, EyeOff, Plus, RefreshCcw } from "lucide-react";
7
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
8
+ import { useSearchParams } from "react-router";
9
+ import { toast } from "sonner";
10
+ import { match } from "ts-pattern";
11
+ import { ChangeScopeDialog } from "./components/ChangeScopeDialog.js";
12
+ import { ConsolidationReviewDialog } from "./components/ConsolidationReviewDialog.js";
13
+ import { GroupMemoriesEmptyState, MemoriesEmptyState, CompanyMemoriesEmptyState } from "./components/EmptyStates.js";
14
+ import { LiveContextTab } from "./components/LiveContextTab.js";
15
+ import { MemoriesTabPanel } from "./components/MemoriesTabPanel.js";
16
+ import { MemoryFormDialog } from "./components/MemoryFormDialog.js";
17
+ import { MemoryOnboardingWizard } from "./components/MemoryOnboardingWizard.js";
18
+ import { RestoreBlockedDialog } from "./components/RestoreBlockedDialog.js";
19
+ import { SchemasTab } from "./components/SchemasTab.js";
20
+ import { useDuplicateDetection } from "./hooks/useDuplicateDetection.js";
21
+ import { liveContextQueryKey } from "./hooks/useLiveContext.js";
22
+ import { useMemoryColumns } from "./hooks/useMemoryColumns.js";
23
+ import { useMemoryTable } from "./hooks/useMemoryTable.js";
24
+ import { buildCreateMemoryInput, buildUpdateMemoryInput, deriveLabel } from "./memory-mutation-input.js";
25
+ import { Input } from "#components/input/index";
26
+ import { PageHeader, PageHeaderActions } from "#components/layouts/page/index";
27
+ import { RouteLayout } from "#components/layouts/RouteLayout";
28
+ import { ScopeTabs } from "#components/scope-tabs/index";
29
+ import { Tabs, TabsContent } from "#components/tabs/index";
30
+ import { useAuthContext } from "#providers/AuthContext";
31
+ import { useMantaClient } from "#providers/index";
32
+ function reportMutationError(e, fallbackMessage) {
33
+ const err = parseError(e, fallbackMessage);
34
+ toast.error(err.message, { description: err.description });
35
+ }
36
+ function addMemoryButtonConfig(tab) {
37
+ return match(tab)
38
+ .with("personal", () => ({ scope: GQLMemoryScope.User, label: "Add memory" }))
39
+ .with("company", () => ({ scope: GQLMemoryScope.Company, label: "Add company memory" }))
40
+ .with("team", () => ({ scope: GQLMemoryScope.Team, label: "Add team memory" }))
41
+ .otherwise(() => null);
42
+ }
43
+ const alwaysVisibleStatusFilters = ["hideStale", "deadWeight", "unused", "needsReview"];
44
+ function ScopeMemoriesTab(props) {
45
+ const { value, tableState, memories, emptyState, visibleStatusFilters = alwaysVisibleStatusFilters, ...panelProps } = props;
46
+ return (_jsx(TabsContent, { value: value, className: "flex flex-col flex-1 min-h-0 overflow-hidden", children: _jsx(MemoriesTabPanel, { ...panelProps, ...tableState, memories: memories, emptyState: emptyState, visibleStatusFilters: visibleStatusFilters }) }));
47
+ }
48
+ function FilterableTabContent(props) {
49
+ const { value, tabs, placeholder, query, onQueryChange, children } = props;
50
+ return (_jsxs(TabsContent, { value: value, className: "flex flex-col flex-1 min-h-0 overflow-hidden", children: [_jsx("div", { className: "border-b border-muted-border px-5 py-3 shrink-0", children: _jsxs("div", { className: "flex min-w-0 flex-col gap-3 2xl:flex-row 2xl:items-center", children: [_jsx("div", { className: "min-w-0 2xl:shrink", children: tabs }), _jsx(Input, { containerClassName: "w-auto min-w-48 sm:w-64", type: "search", variant: "search", placeholder: placeholder, value: query, onChange: (e) => onQueryChange(e.target.value) })] }) }), _jsx("div", { className: "flex-1 overflow-auto p-5", children: children })] }));
51
+ }
52
+ export { deriveLabel };
53
+ export { KindBadge, ScopeBadge, preloadBadgeContent, } from "./components/badges.js";
54
+ export { formatHorizonDate, formatHorizonRelative, memoryHorizon } from "./expiry-utils.js";
55
+ export { filterMemories, } from "./hooks/useMemoryTable.js";
56
+ export { GroupMemoriesEmptyState, MemoriesEmptyState, } from "./components/EmptyStates.js";
57
+ export { LoadingSkeleton } from "./components/LoadingSkeleton.js";
58
+ export { MemoryFormDialog } from "./components/MemoryFormDialog.js";
59
+ const tableKeyPersonal = "memories-table-personal";
60
+ const tableKeyCompany = "memories-table-company";
61
+ const tableKeyGroup = "memories-table-group";
62
+ const emptyMemories = [];
63
+ const personalColumnVisibility = { createdBy: false, teams: false };
64
+ const companyColumnVisibility = { teams: false };
65
+ const teamColumnVisibility = { teams: true };
66
+ // Drops a whole group once any of its memories was merged, since the rest of it no longer describes what is stored.
67
+ function unmergedGroups(groups, merged) {
68
+ if (merged.size === 0)
69
+ return [...groups];
70
+ return groups.filter((group) => !group.memories.some((memory) => merged.has(memory.iri)));
71
+ }
72
+ const tabLabels = {
73
+ company: "Company",
74
+ team: "Team",
75
+ personal: "Personal",
76
+ schemas: "Schemas",
77
+ "live-context": "Live Context",
78
+ };
79
+ export function MemoriesRoute() {
80
+ const { datastore, datastores, user, logout, isOperator, canSwitchDatastore } = useAuthContext();
81
+ const { mantaClient } = useMantaClient();
82
+ const queryClient = useQueryClient();
83
+ const [showArchived, setShowArchived] = useState(false);
84
+ // Server-side like showArchived — these rows are absent from the response unless requested.
85
+ const [showOutOfWindow, setShowOutOfWindow] = useState(false);
86
+ const { data, isLoading, isFetching, refetch, error: queriedError, } = useMemoriesQuery(mantaClient, {
87
+ includeArchived: showArchived,
88
+ includeOutOfWindow: showOutOfWindow,
89
+ });
90
+ const { data: schemasData } = useMemorySchemasQuery(mantaClient);
91
+ const schemas = schemasData?.memorySchemas.schemas ?? [];
92
+ const allMemories = data?.memories.memories ?? emptyMemories;
93
+ const personalMemories = useMemo(() => allMemories.filter((m) => m.scope === GQLMemoryScope.User), [allMemories]);
94
+ const companyMemories = useMemo(() => allMemories.filter((m) => m.scope === GQLMemoryScope.Company), [allMemories]);
95
+ const teamMemories = useMemo(() => allMemories.filter((m) => m.scope === GQLMemoryScope.Team), [allMemories]);
96
+ const unreviewedPersonalMemories = useMemo(() => personalMemories.filter((m) => m.confidence != null && m.confidence < 1), [personalMemories]);
97
+ const errorMessage = queriedError ? parseError(queriedError, "Failed to load memories").message : null;
98
+ const personalCount = personalMemories.length;
99
+ const companyCount = companyMemories.length;
100
+ const teamCount = teamMemories.length;
101
+ const unreviewedCount = unreviewedPersonalMemories.length;
102
+ const createMutation = useCreateMemoryMutation(mantaClient);
103
+ const updateMutation = useUpdateMemoryMutation(mantaClient);
104
+ const deleteMutation = useDeleteMemoryMutation(mantaClient);
105
+ const restoreMutation = useRestoreMemoryMutation(mantaClient);
106
+ const reconfirmMutation = useReconfirmMemoryMutation(mantaClient);
107
+ const { data: teamsData } = useAvailableTeamsQuery(mantaClient, undefined, { enabled: !!isOperator });
108
+ const hasTeams = isPresent(teamsData?.availableTeams.teams);
109
+ const availableTabs = useMemo(() => [
110
+ ...(isOperator ? ["company"] : []),
111
+ ...(isOperator && hasTeams ? ["team"] : []),
112
+ "personal",
113
+ ...(isOperator ? ["schemas"] : []),
114
+ "live-context",
115
+ ], [isOperator, hasTeams]);
116
+ const [searchParams, setSearchParams] = useSearchParams();
117
+ const tabParam = searchParams.get("tab");
118
+ const activeTab = useMemo(() => {
119
+ if (tabParam && availableTabs.includes(tabParam))
120
+ return tabParam;
121
+ return availableTabs[0] ?? "personal";
122
+ }, [tabParam, availableTabs]);
123
+ useEffect(() => {
124
+ if (tabParam !== activeTab) {
125
+ setSearchParams({ tab: activeTab }, { replace: true });
126
+ }
127
+ }, [tabParam, activeTab, setSearchParams]);
128
+ useEffect(() => {
129
+ if (unreviewedCount === 0)
130
+ setUnreviewedOnly(false);
131
+ }, [unreviewedCount]);
132
+ function handleTabChange(tab) {
133
+ setSearchParams({ tab }, { replace: true });
134
+ }
135
+ const [schemasQuery, setSchemasQuery] = useState("");
136
+ const [liveContextQuery, setLiveContextQuery] = useState("");
137
+ const [addDialog, setAddDialog] = useState(null);
138
+ const [editingMemory, setEditingMemory] = useState(null);
139
+ const [movingMemory, setMovingMemory] = useState(null);
140
+ const [restoreBlocked, setRestoreBlocked] = useState(null);
141
+ const [unreviewedOnly, setUnreviewedOnly] = useState(false);
142
+ const [showCompanyOnboarding, setShowOrgOnboarding] = useState(false);
143
+ const invalidate = useCallback(() => {
144
+ void refetch();
145
+ void queryClient.invalidateQueries({ queryKey: liveContextQueryKey });
146
+ }, [refetch, queryClient]);
147
+ const handleRefresh = useCallback(() => {
148
+ void refetch();
149
+ void queryClient.refetchQueries({ queryKey: liveContextQueryKey });
150
+ }, [refetch, queryClient]);
151
+ const [consolidating, setConsolidating] = useState(false);
152
+ const consolidationScope = match(activeTab)
153
+ .with("company", () => GQLMemoryScope.Company)
154
+ .with("team", () => GQLMemoryScope.Team)
155
+ .otherwise(() => GQLMemoryScope.User);
156
+ const consolidationVariables = { input: { scope: consolidationScope, wantToStopAfterMs: 60_000 } };
157
+ const { data: reviewData, isFetching: isFindingRedundancy, error: reviewError, } = useMemoryRedundancyReviewQuery(mantaClient, consolidationVariables, { enabled: consolidating });
158
+ const consolidateMutation = useConsolidateMemoriesMutation(mantaClient);
159
+ const consolidationCandidates = match(consolidationScope)
160
+ .with(GQLMemoryScope.Company, () => companyMemories)
161
+ .with(GQLMemoryScope.Team, () => teamMemories)
162
+ .otherwise(() => personalMemories)
163
+ .filter((m) => !isPresent(m.supersededBy));
164
+ const [mergedIris, setMergedIris] = useState(() => new Set());
165
+ const applyMerge = useCallback(async (decision) => {
166
+ const result = await consolidateMutation.mutateAsync({
167
+ input: {
168
+ memoryIris: decision.memoryIris,
169
+ label: decision.label,
170
+ description: decision.description,
171
+ scope: consolidationScope,
172
+ derived: decision.kind === "pattern",
173
+ },
174
+ });
175
+ if (result.consolidateMemories.error)
176
+ throw new Error(result.consolidateMemories.error);
177
+ setMergedIris((seen) => new Set([...seen, ...decision.memoryIris]));
178
+ invalidate();
179
+ }, [consolidateMutation, consolidationScope, invalidate]);
180
+ const reviewProposals = useMemo(() => {
181
+ const review = reviewData?.memoryRedundancyReview;
182
+ return [
183
+ ...(review?.clusters ?? []).map((c) => ({ ...c, kind: "duplicate" })),
184
+ ...(review?.abstractions ?? []).map((a) => ({ ...a, kind: "pattern" })),
185
+ ];
186
+ }, [reviewData]);
187
+ const reviewGroups = unmergedGroups(reviewProposals, mergedIris);
188
+ const handleConsolidate = useCallback(async (decision) => {
189
+ const isPattern = decision.kind === "pattern";
190
+ try {
191
+ await applyMerge(decision);
192
+ toast.success(isPattern
193
+ ? `Replaced ${decision.memoryIris.length} memories with one general memory`
194
+ : `Merged ${decision.memoryIris.length} memories`);
195
+ if (reviewGroups.length <= 1)
196
+ setConsolidating(false);
197
+ }
198
+ catch (e) {
199
+ reportMutationError(e, isPattern ? "Failed to generalize memories" : "Failed to merge memories");
200
+ }
201
+ }, [applyMerge, reviewGroups.length]);
202
+ const kindFilterResetRef = useRef(null);
203
+ const handleCreate = useCallback(async (form, supersedesMemoryIris) => {
204
+ if (!addDialog)
205
+ return;
206
+ if (!isOperator && addDialog.scope !== GQLMemoryScope.User)
207
+ return;
208
+ try {
209
+ const result = await createMutation.mutateAsync({
210
+ input: buildCreateMemoryInput(form, addDialog.scope, supersedesMemoryIris),
211
+ });
212
+ if (result.createMemory.error)
213
+ throw new Error(result.createMemory.error);
214
+ toast.success("Memory added");
215
+ setAddDialog(null);
216
+ kindFilterResetRef.current?.("ALL");
217
+ invalidate();
218
+ }
219
+ catch (e) {
220
+ reportMutationError(e, "Failed to add memory");
221
+ }
222
+ }, [addDialog, createMutation, invalidate, isOperator]);
223
+ const handleUpdate = useCallback(async (form, supersedesMemoryIris) => {
224
+ if (!editingMemory)
225
+ return;
226
+ if (!isOperator && editingMemory.scope !== GQLMemoryScope.User)
227
+ return;
228
+ try {
229
+ const result = await updateMutation.mutateAsync({
230
+ input: buildUpdateMemoryInput(editingMemory.iri, form, editingMemory.scope, supersedesMemoryIris),
231
+ });
232
+ if (result.updateMemory.error)
233
+ throw new Error(result.updateMemory.error);
234
+ toast.success("Memory updated");
235
+ setEditingMemory(null);
236
+ kindFilterResetRef.current?.("ALL");
237
+ invalidate();
238
+ }
239
+ catch (e) {
240
+ reportMutationError(e, "Failed to update memory");
241
+ }
242
+ }, [editingMemory, updateMutation, invalidate, isOperator]);
243
+ const handleDelete = useCallback(async (iri) => {
244
+ const target = allMemories.find((m) => m.iri === iri);
245
+ if (!isOperator && target && target.scope !== GQLMemoryScope.User)
246
+ return;
247
+ try {
248
+ await deleteMutation.mutateAsync({ memoryIri: iri });
249
+ toast.success("Memory deleted");
250
+ invalidate();
251
+ }
252
+ catch (e) {
253
+ reportMutationError(e, "Failed to delete memory");
254
+ }
255
+ }, [deleteMutation, invalidate, isOperator, allMemories]);
256
+ const handleRestore = useCallback(async (iri) => {
257
+ try {
258
+ const result = await restoreMutation.mutateAsync({ memoryIri: iri });
259
+ const { error, blockedByIri, blockedByLabel } = result.restoreMemory;
260
+ if (error) {
261
+ // Restore is blocked while the superseding memory is still active.
262
+ if (blockedByIri) {
263
+ setRestoreBlocked({ iri, blockedByIri, blockedByLabel: blockedByLabel ?? null });
264
+ return;
265
+ }
266
+ throw new Error(error);
267
+ }
268
+ toast.success("Memory restored");
269
+ invalidate();
270
+ }
271
+ catch (e) {
272
+ reportMutationError(e, "Failed to restore memory");
273
+ }
274
+ }, [restoreMutation, invalidate]);
275
+ const handleReconfirm = useCallback(async (iri) => {
276
+ try {
277
+ const result = await reconfirmMutation.mutateAsync({ memoryIri: iri });
278
+ if (result.reconfirmMemory.error)
279
+ throw new Error(result.reconfirmMemory.error);
280
+ toast.success("Memory reconfirmed");
281
+ invalidate();
282
+ }
283
+ catch (e) {
284
+ reportMutationError(e, "Failed to reconfirm memory");
285
+ }
286
+ }, [reconfirmMutation, invalidate]);
287
+ const handleConfirmRestoreBlocked = useCallback(() => {
288
+ if (!restoreBlocked)
289
+ return;
290
+ const { iri, blockedByIri, blockedByLabel } = restoreBlocked;
291
+ void (async () => {
292
+ try {
293
+ await deleteMutation.mutateAsync({ memoryIri: blockedByIri });
294
+ const retry = await restoreMutation.mutateAsync({ memoryIri: iri });
295
+ if (retry.restoreMemory.error)
296
+ throw new Error(retry.restoreMemory.error);
297
+ toast.success(`Restored - replaced "${blockedByLabel ?? "the newer memory"}"`);
298
+ invalidate();
299
+ }
300
+ catch (e) {
301
+ reportMutationError(e, "Failed to restore memory");
302
+ }
303
+ finally {
304
+ setRestoreBlocked(null);
305
+ }
306
+ })();
307
+ }, [restoreBlocked, deleteMutation, restoreMutation, invalidate]);
308
+ const handleMove = useCallback(async (newScope, newTeams, supersedesMemoryIris) => {
309
+ if (!movingMemory)
310
+ return;
311
+ if (!isOperator)
312
+ return;
313
+ try {
314
+ const result = await updateMutation.mutateAsync({
315
+ input: {
316
+ iri: movingMemory.iri,
317
+ label: movingMemory.label,
318
+ description: movingMemory.description,
319
+ importance: movingMemory.importance,
320
+ // updateMemoryRecord overwrites kind/confidence/memorySubclass; re-send them on move.
321
+ kind: movingMemory.kind,
322
+ confidence: movingMemory.confidence,
323
+ scope: newScope,
324
+ teams: newTeams,
325
+ ...(movingMemory.memorySubclass != null ? { memorySubclass: movingMemory.memorySubclass } : {}),
326
+ ...(isPresent(supersedesMemoryIris) ? { supersedesMemoryIris } : {}),
327
+ },
328
+ });
329
+ if (result.updateMemory.error)
330
+ throw new Error(result.updateMemory.error);
331
+ toast.success("Memory moved");
332
+ setMovingMemory(null);
333
+ invalidate();
334
+ }
335
+ catch (e) {
336
+ reportMutationError(e, "Failed to move memory");
337
+ }
338
+ }, [movingMemory, updateMutation, invalidate, isOperator]);
339
+ const { duplicates } = useDuplicateDetection(unreviewedPersonalMemories, {
340
+ enabled: activeTab === "personal",
341
+ });
342
+ const columns = useMemoryColumns({
343
+ isOperator,
344
+ userId: user.id,
345
+ schemas,
346
+ onEdit: setEditingMemory,
347
+ onDelete: handleDelete,
348
+ onMove: isOperator ? setMovingMemory : undefined,
349
+ onRestore: handleRestore,
350
+ onReconfirm: handleReconfirm,
351
+ duplicates,
352
+ });
353
+ const displayedPersonalMemories = unreviewedOnly ? unreviewedPersonalMemories : personalMemories;
354
+ const personalTableState = useMemoryTable(tableKeyPersonal, displayedPersonalMemories, columns, [], personalColumnVisibility);
355
+ const companyTableState = useMemoryTable(tableKeyCompany, companyMemories, columns, [], companyColumnVisibility);
356
+ const teamTableState = useMemoryTable(tableKeyGroup, teamMemories, columns, [], teamColumnVisibility);
357
+ kindFilterResetRef.current = personalTableState.onKindFilterChange;
358
+ const handleRowClick = useCallback((m) => {
359
+ if (m.supersededBy == null)
360
+ setEditingMemory(m);
361
+ }, []);
362
+ const tabCounts = {
363
+ company: { count: companyCount },
364
+ team: { count: teamCount },
365
+ personal: { count: personalCount, secondaryCount: unreviewedCount },
366
+ };
367
+ const scopeTabs = availableTabs.map((tab) => ({
368
+ value: tab,
369
+ label: tabLabels[tab],
370
+ ...tabCounts[tab],
371
+ }));
372
+ const tabsList = _jsx(ScopeTabs, { tabs: scopeTabs, activeValue: activeTab, isLoading: isLoading });
373
+ const addMemoryButton = addMemoryButtonConfig(activeTab);
374
+ const canShowArchived = activeTab === "personal" || (isOperator && (activeTab === "company" || activeTab === "team"));
375
+ const headerActions = [
376
+ {
377
+ key: "refresh",
378
+ label: "Refresh",
379
+ icon: RefreshCcw,
380
+ variant: "tertiary",
381
+ iconOnly: true,
382
+ disabled: isFetching,
383
+ onClick: handleRefresh,
384
+ },
385
+ ...(canShowArchived
386
+ ? [
387
+ {
388
+ key: "archived",
389
+ label: showArchived ? "Hide archived" : "Show archived",
390
+ icon: showArchived ? EyeOff : Archive,
391
+ variant: "secondary",
392
+ active: showArchived,
393
+ onClick: () => setShowArchived((v) => !v),
394
+ },
395
+ {
396
+ key: "out-of-window",
397
+ label: showOutOfWindow ? "Hide expired" : "Show expired",
398
+ icon: showOutOfWindow ? EyeOff : CalendarX,
399
+ variant: "secondary",
400
+ active: showOutOfWindow,
401
+ onClick: () => setShowOutOfWindow((v) => !v),
402
+ },
403
+ ]
404
+ : []),
405
+ ...(canShowArchived
406
+ ? [
407
+ {
408
+ key: "consolidate",
409
+ label: "Review redundancy",
410
+ icon: CopyCheck,
411
+ variant: "secondary",
412
+ onClick: () => {
413
+ setMergedIris(new Set());
414
+ setConsolidating(true);
415
+ },
416
+ },
417
+ ]
418
+ : []),
419
+ ...(activeTab === "personal" && unreviewedCount > 0
420
+ ? [
421
+ {
422
+ key: "unreviewed",
423
+ label: unreviewedOnly ? "All memories" : `Unreviewed (${unreviewedCount})`,
424
+ variant: unreviewedOnly ? "secondary" : "ghost",
425
+ active: unreviewedOnly,
426
+ onClick: () => setUnreviewedOnly((v) => !v),
427
+ },
428
+ ]
429
+ : []),
430
+ ...(addMemoryButton
431
+ ? [
432
+ {
433
+ key: "add",
434
+ label: addMemoryButton.label,
435
+ icon: Plus,
436
+ onClick: () => setAddDialog({ scope: addMemoryButton.scope }),
437
+ },
438
+ ]
439
+ : []),
440
+ ];
441
+ const formDialogState = addDialog
442
+ ? {
443
+ scope: addDialog.scope,
444
+ initial: undefined,
445
+ onSave: handleCreate,
446
+ isSaving: createMutation.isPending,
447
+ onClose: () => setAddDialog(null),
448
+ }
449
+ : editingMemory
450
+ ? {
451
+ scope: editingMemory.scope,
452
+ initial: editingMemory,
453
+ onSave: handleUpdate,
454
+ isSaving: updateMutation.isPending,
455
+ onClose: () => setEditingMemory(null),
456
+ }
457
+ : null;
458
+ return (_jsxs(RouteLayout, { user: user, datastore: datastore, datastores: datastores, isOperator: isOperator, canSwitchDatastore: canSwitchDatastore, logout: logout, children: [_jsx(PageHeader, { title: "Memories", icon: Brain, actions: _jsx(PageHeaderActions, { actions: headerActions }) }), _jsxs(Tabs, { value: activeTab, onValueChange: handleTabChange, className: "flex flex-col flex-1 min-h-0 overflow-hidden", children: [_jsx(ScopeMemoriesTab, { value: "personal", tableState: personalTableState, memories: displayedPersonalMemories, tabs: tabsList, isLoading: isLoading, errorMessage: errorMessage, schemas: schemas, onRowClick: handleRowClick, visibleStatusFilters: [
459
+ ...alwaysVisibleStatusFilters,
460
+ "autoCaptured",
461
+ ...(isOperator ? ["promotion"] : []),
462
+ ], emptyState: _jsx(MemoriesEmptyState, { isOperator: isOperator, onAdd: () => setAddDialog({ scope: GQLMemoryScope.User }) }) }), isOperator && (_jsx(ScopeMemoriesTab, { value: "company", tableState: companyTableState, memories: companyMemories, tabs: tabsList, isLoading: isLoading, errorMessage: errorMessage, schemas: schemas, onRowClick: handleRowClick, emptyState: showCompanyOnboarding ? (_jsx("div", { className: "flex items-center justify-center h-full min-h-64 p-5", children: _jsx(MemoryOnboardingWizard, { scope: GQLMemoryScope.Company, onComplete: () => setShowOrgOnboarding(false), onSkip: () => setShowOrgOnboarding(false) }) })) : (_jsx(CompanyMemoriesEmptyState, { onAdd: () => setAddDialog({ scope: GQLMemoryScope.Company }), onSetUp: () => setShowOrgOnboarding(true) })) })), isOperator && hasTeams && (_jsx(ScopeMemoriesTab, { value: "team", tableState: teamTableState, memories: teamMemories, tabs: tabsList, isLoading: isLoading, errorMessage: errorMessage, schemas: schemas, onRowClick: handleRowClick, emptyState: _jsx(GroupMemoriesEmptyState, { isOperator: true, onAdd: () => setAddDialog({ scope: GQLMemoryScope.Team }) }) })), isOperator && (_jsx(FilterableTabContent, { value: "schemas", tabs: tabsList, placeholder: "Filter schemas\u2026", query: schemasQuery, onQueryChange: setSchemasQuery, children: _jsx(SchemasTab, { query: schemasQuery }) })), _jsx(FilterableTabContent, { value: "live-context", tabs: tabsList, placeholder: "Filter live context\u2026", query: liveContextQuery, onQueryChange: setLiveContextQuery, children: _jsx(LiveContextTab, { query: liveContextQuery }) })] }), formDialogState && (_jsx(MemoryFormDialog, { open: true, onOpenChange: (open) => {
463
+ if (!open)
464
+ formDialogState.onClose();
465
+ }, scope: formDialogState.scope, initial: formDialogState.initial, onSave: formDialogState.onSave, isSaving: formDialogState.isSaving, isOperator: isOperator, schemas: schemas, currentUserId: user.id })), movingMemory && (_jsx(ChangeScopeDialog, { open: true, onOpenChange: (open) => {
466
+ if (!open)
467
+ setMovingMemory(null);
468
+ }, memory: movingMemory, isOperator: isOperator, onSave: handleMove, isSaving: updateMutation.isPending, currentUserId: user.id })), _jsx(RestoreBlockedDialog, { open: restoreBlocked != null, onOpenChange: (open) => {
469
+ if (!open)
470
+ setRestoreBlocked(null);
471
+ }, blockedByLabel: restoreBlocked?.blockedByLabel ?? null, onConfirm: handleConfirmRestoreBlocked }), _jsx(ConsolidationReviewDialog, { open: consolidating, clusters: reviewGroups, isLoading: isFindingRedundancy, isSaving: consolidateMutation.isPending, candidateCount: consolidationCandidates.length, comparedCount: reviewData?.memoryRedundancyReview.comparedCount ?? null, timedOut: reviewData?.memoryRedundancyReview.timedOut ?? false, errorMessage: reviewData?.memoryRedundancyReview.error ?? (reviewError instanceof Error ? reviewError.message : null), onMerge: handleConsolidate, onClose: () => setConsolidating(false) })] }));
472
+ }
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ import type { FormErrors, MemoryFormState } from "./components/MemoryFields.js";
3
+ export declare const descriptionSchema: z.ZodString;
4
+ export declare const labelRequiredSchema: z.ZodString;
5
+ export declare const labelOptionalSchema: z.ZodString;
6
+ export declare const teamsRequiredSchema: z.ZodArray<z.ZodString>;
7
+ export declare function validateMemoryForm(form: MemoryFormState, isEdit: boolean, isTeam: boolean): FormErrors;
8
+ //# sourceMappingURL=memory-form-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-form-validation.d.ts","sourceRoot":"","sources":["../../../src/routes/memories/memory-form-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7E,eAAO,MAAM,iBAAiB,aAO3B,CAAC;AACJ,eAAO,MAAM,mBAAmB,aAIoB,CAAC;AACrD,eAAO,MAAM,mBAAmB,aAA+D,CAAC;AAChG,eAAO,MAAM,mBAAmB,yBAAyD,CAAC;AAE1F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,CAuBtG"}
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ export const descriptionSchema = z
3
+ .string()
4
+ .trim()
5
+ .min(1, "Description is required")
6
+ .max(1000, "Description must be 1000 characters or fewer - memories load into every conversation, so keep them focused. Split longer context into separate memories.");
7
+ export const labelRequiredSchema = z
8
+ .string()
9
+ .trim()
10
+ .min(1, "Label is required")
11
+ .max(100, "Label must be 100 characters or fewer");
12
+ export const labelOptionalSchema = z.string().max(100, "Label must be 100 characters or fewer");
13
+ export const teamsRequiredSchema = z.array(z.string()).min(1, "Select at least one team");
14
+ export function validateMemoryForm(form, isEdit, isTeam) {
15
+ const errors = {};
16
+ const descResult = descriptionSchema.safeParse(form.description ?? "");
17
+ if (!descResult.success)
18
+ errors.description = descResult.error.issues[0]?.message;
19
+ const labelResult = (isEdit ? labelRequiredSchema : labelOptionalSchema).safeParse(form.label);
20
+ if (!labelResult.success)
21
+ errors.label = labelResult.error.issues[0]?.message;
22
+ if (isTeam) {
23
+ const teamsResult = teamsRequiredSchema.safeParse(form.teams);
24
+ if (!teamsResult.success)
25
+ errors.teams = teamsResult.error.issues[0]?.message;
26
+ }
27
+ if (form.memoryTrustedUntil != null &&
28
+ form.memoryValidUntil != null &&
29
+ new Date(form.memoryTrustedUntil) > new Date(form.memoryValidUntil)) {
30
+ errors.memoryTrustedUntil = "Trusted until cannot be later than Valid until.";
31
+ }
32
+ return errors;
33
+ }
@@ -0,0 +1,6 @@
1
+ import { GQLMemoryScope, type GQLCreateMemoryInput, type GQLUpdateMemoryInput } from "@manta-eu/client";
2
+ import type { MemoryFormState } from "./components/MemoryFields.js";
3
+ export declare function deriveLabel(description: string): string;
4
+ export declare function buildCreateMemoryInput(form: MemoryFormState, scope: GQLMemoryScope, supersedesMemoryIris?: string[]): GQLCreateMemoryInput;
5
+ export declare function buildUpdateMemoryInput(iri: string, form: MemoryFormState, scope: GQLMemoryScope, supersedesMemoryIris?: string[]): GQLUpdateMemoryInput;
6
+ //# sourceMappingURL=memory-mutation-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-mutation-input.d.ts","sourceRoot":"","sources":["../../../src/routes/memories/memory-mutation-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAIvD;AAWD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,cAAc,EACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAC9B,oBAAoB,CAYtB;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,cAAc,EACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAC9B,oBAAoB,CAYtB"}
@@ -0,0 +1,41 @@
1
+ import { GQLMemoryScope } from "@manta-eu/client";
2
+ import { isPresent } from "@manta-eu/lib/present";
3
+ export function deriveLabel(description) {
4
+ const words = description.trim().split(/\s+/).filter(Boolean);
5
+ const label = words.slice(0, 5).join(" ");
6
+ return label.length > 45 ? label.slice(0, 42) + "…" : label;
7
+ }
8
+ function commonMemoryFormFields(form, scope) {
9
+ return {
10
+ importance: form.importance,
11
+ confidence: 1,
12
+ kind: form.kind,
13
+ ...(scope === GQLMemoryScope.Team ? { teams: form.teams } : {}),
14
+ };
15
+ }
16
+ export function buildCreateMemoryInput(form, scope, supersedesMemoryIris) {
17
+ return {
18
+ ...commonMemoryFormFields(form, scope),
19
+ label: form.label.trim() || deriveLabel(form.description ?? ""),
20
+ description: form.description ?? null,
21
+ scope,
22
+ ...(form.memorySubclass ? { memorySubclass: form.memorySubclass } : {}),
23
+ ...(isPresent(form.customProperties) ? { customProperties: form.customProperties } : {}),
24
+ ...(form.memoryValidUntil != null ? { memoryValidUntil: form.memoryValidUntil } : {}),
25
+ ...(form.memoryTrustedUntil != null ? { memoryTrustedUntil: form.memoryTrustedUntil } : {}),
26
+ ...(supersedesMemoryIris !== undefined ? { supersedesMemoryIris } : {}),
27
+ };
28
+ }
29
+ export function buildUpdateMemoryInput(iri, form, scope, supersedesMemoryIris) {
30
+ return {
31
+ ...commonMemoryFormFields(form, scope),
32
+ iri,
33
+ label: form.label,
34
+ description: form.description,
35
+ memoryValidUntil: form.memoryValidUntil,
36
+ memoryTrustedUntil: form.memoryTrustedUntil,
37
+ customProperties: form.customProperties,
38
+ ...(form.memorySubclass !== undefined ? { memorySubclass: form.memorySubclass } : {}),
39
+ ...(isPresent(supersedesMemoryIris) ? { supersedesMemoryIris } : {}),
40
+ };
41
+ }
@@ -73,9 +73,9 @@ export declare const typeFilterOptions: readonly [{
73
73
  readonly label: "None";
74
74
  }];
75
75
  export type TypeFilter = (typeof typeFilterOptions)[number]["id"];
76
- export declare const parseAsTypeFilter: Omit<import("nuqs").SingleParserBuilder<("META" | "SNAPCHAT" | "SHOPIFY" | "GOOGLE" | "NONE" | "LINKEDIN" | "WOOCOMMERCE")[]>, "parseServerSide"> & {
77
- readonly defaultValue: ("META" | "SNAPCHAT" | "SHOPIFY" | "GOOGLE" | "NONE" | "LINKEDIN" | "WOOCOMMERCE")[];
78
- parseServerSide(value: string | string[] | undefined): ("META" | "SNAPCHAT" | "SHOPIFY" | "GOOGLE" | "NONE" | "LINKEDIN" | "WOOCOMMERCE")[];
76
+ export declare const parseAsTypeFilter: Omit<import("nuqs").SingleParserBuilder<("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[]>, "parseServerSide"> & {
77
+ readonly defaultValue: ("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[];
78
+ parseServerSide(value: string | string[] | undefined): ("META" | "SNAPCHAT" | "SHOPIFY" | "NONE" | "GOOGLE" | "LINKEDIN" | "WOOCOMMERCE")[];
79
79
  };
80
80
  export declare const approvalFilterOptions: readonly [{
81
81
  readonly id: "ALL";
@@ -0,0 +1,10 @@
1
+ import type { OperatorAllowedModel } from "@manta-eu/client/shared/model";
2
+ export type CreateRuleChatModalProps = {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean) => void;
5
+ onStartFromBlankRule: () => void;
6
+ model: OperatorAllowedModel;
7
+ ruleSuggestions?: string[];
8
+ };
9
+ export declare function CreateRuleChatModal(props: CreateRuleChatModalProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=CreateRuleChatModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateRuleChatModal.d.ts","sourceRoot":"","sources":["../../../../src/routes/rules/components/CreateRuleChatModal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AA2B1E,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA+FlE"}