@manta-eu/react 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/components/AppErrorBoundary.d.ts.map +1 -1
- package/dist/components/AppErrorBoundary.js +14 -11
- package/dist/components/AppErrorBoundary.js.map +1 -1
- package/dist/components/app-gate/AppGate.d.ts +8 -0
- package/dist/components/app-gate/AppGate.d.ts.map +1 -0
- package/dist/components/app-gate/AppGate.js +68 -0
- package/dist/components/app-gate/AppGate.js.map +1 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts +7 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts.map +1 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.js +19 -0
- package/dist/components/app-gate/AwaitingDatastoreStatus.js.map +1 -0
- package/dist/components/app-gate/EnterDatastoreRoute.d.ts +2 -0
- package/dist/components/app-gate/EnterDatastoreRoute.d.ts.map +1 -0
- package/dist/components/app-gate/EnterDatastoreRoute.js +25 -0
- package/dist/components/app-gate/EnterDatastoreRoute.js.map +1 -0
- package/dist/components/app-gate/ErrorRoute.d.ts +2 -0
- package/dist/components/app-gate/ErrorRoute.d.ts.map +1 -0
- package/dist/components/app-gate/ErrorRoute.js +27 -0
- package/dist/components/app-gate/ErrorRoute.js.map +1 -0
- package/dist/components/app-gate/FailureAlert.d.ts +5 -0
- package/dist/components/app-gate/FailureAlert.d.ts.map +1 -0
- package/dist/components/app-gate/FailureAlert.js +9 -0
- package/dist/components/app-gate/FailureAlert.js.map +1 -0
- package/dist/components/app-gate/NoDatastoreAccess.d.ts +8 -0
- package/dist/components/app-gate/NoDatastoreAccess.d.ts.map +1 -0
- package/dist/components/app-gate/NoDatastoreAccess.js +9 -0
- package/dist/components/app-gate/NoDatastoreAccess.js.map +1 -0
- package/dist/components/app-gate/NotFoundRoute.d.ts +2 -0
- package/dist/components/app-gate/NotFoundRoute.d.ts.map +1 -0
- package/dist/components/app-gate/NotFoundRoute.js +9 -0
- package/dist/components/app-gate/NotFoundRoute.js.map +1 -0
- package/dist/components/app-gate/PendingInvitations.d.ts +5 -0
- package/dist/components/app-gate/PendingInvitations.d.ts.map +1 -0
- package/dist/components/app-gate/PendingInvitations.js +58 -0
- package/dist/components/app-gate/PendingInvitations.js.map +1 -0
- package/dist/components/app-gate/ServiceError.d.ts +8 -0
- package/dist/components/app-gate/ServiceError.d.ts.map +1 -0
- package/dist/components/app-gate/ServiceError.js +10 -0
- package/dist/components/app-gate/ServiceError.js.map +1 -0
- package/dist/components/app-gate/index.d.ts +3 -0
- package/dist/components/app-gate/index.d.ts.map +1 -0
- package/dist/components/app-gate/index.js +3 -0
- package/dist/components/app-gate/index.js.map +1 -0
- package/dist/components/app-gate/sdk-route-elements.d.ts +23 -0
- package/dist/components/app-gate/sdk-route-elements.d.ts.map +1 -0
- package/dist/components/app-gate/sdk-route-elements.js +35 -0
- package/dist/components/app-gate/sdk-route-elements.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +7 -0
- package/dist/components/app-shell/AppShell.d.ts.map +1 -0
- package/dist/components/app-shell/AppShell.js +10 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/app-shell/AppShellRoutes.d.ts +9 -0
- package/dist/components/app-shell/AppShellRoutes.d.ts.map +1 -0
- package/dist/components/app-shell/AppShellRoutes.js +20 -0
- package/dist/components/app-shell/AppShellRoutes.js.map +1 -0
- package/dist/components/app-shell/GroupDatastores.d.ts +8 -0
- package/dist/components/app-shell/GroupDatastores.d.ts.map +1 -0
- package/dist/components/app-shell/GroupDatastores.js +15 -0
- package/dist/components/app-shell/GroupDatastores.js.map +1 -0
- package/dist/components/app-shell/GroupRoute.d.ts +2 -0
- package/dist/components/app-shell/GroupRoute.d.ts.map +1 -0
- package/dist/components/app-shell/GroupRoute.js +22 -0
- package/dist/components/app-shell/GroupRoute.js.map +1 -0
- package/dist/components/app-shell/index.d.ts +3 -0
- package/dist/components/app-shell/index.d.ts.map +1 -0
- package/dist/components/app-shell/index.js +3 -0
- package/dist/components/app-shell/index.js.map +1 -0
- package/dist/components/authenticated-chat/index.d.ts +1 -2
- package/dist/components/authenticated-chat/index.d.ts.map +1 -1
- package/dist/components/authenticated-chat/index.js +1 -12
- package/dist/components/authenticated-chat/index.js.map +1 -1
- package/dist/components/chat-view/Chat.d.ts +2 -1
- package/dist/components/chat-view/Chat.d.ts.map +1 -1
- package/dist/components/chat-view/Chat.js +3 -2
- package/dist/components/chat-view/Chat.js.map +1 -1
- package/dist/components/chat-view/MessageItem.d.ts.map +1 -1
- package/dist/components/chat-view/MessageItem.js +4 -2
- package/dist/components/chat-view/MessageItem.js.map +1 -1
- package/dist/components/chat-view/tool-part-rendering.d.ts +1 -0
- package/dist/components/chat-view/tool-part-rendering.d.ts.map +1 -1
- package/dist/components/chat-view/tool-part-rendering.js +8 -1
- package/dist/components/chat-view/tool-part-rendering.js.map +1 -1
- package/dist/components/chip/index.d.ts +1 -0
- package/dist/components/chip/index.d.ts.map +1 -1
- package/dist/components/chip/index.js +2 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/embedded-chat/index.d.ts +1 -1
- package/dist/components/embedded-chat/index.d.ts.map +1 -1
- package/dist/components/embedded-chat/index.js +1 -1
- package/dist/components/embedded-chat/index.js.map +1 -1
- package/dist/components/input/input-date-time.d.ts +6 -0
- package/dist/components/input/input-date-time.d.ts.map +1 -1
- package/dist/components/input/input-date-time.js +2 -1
- package/dist/components/input/input-date-time.js.map +1 -1
- package/dist/components/input/input-date.d.ts +22 -0
- package/dist/components/input/input-date.d.ts.map +1 -1
- package/dist/components/input/input-date.js +28 -14
- package/dist/components/input/input-date.js.map +1 -1
- package/dist/components/input/input-time.d.ts +9 -0
- package/dist/components/input/input-time.d.ts.map +1 -1
- package/dist/components/input/input-time.js +29 -18
- package/dist/components/input/input-time.js.map +1 -1
- package/dist/components/layouts/RouteLayout.d.ts +0 -9
- package/dist/components/layouts/RouteLayout.d.ts.map +1 -1
- package/dist/components/layouts/RouteLayout.js +7 -4
- package/dist/components/layouts/RouteLayout.js.map +1 -1
- package/dist/components/layouts/Sidebar.d.ts +1 -8
- package/dist/components/layouts/Sidebar.d.ts.map +1 -1
- package/dist/components/layouts/Sidebar.js +7 -14
- package/dist/components/layouts/Sidebar.js.map +1 -1
- package/dist/components/plan-limits/PlanLimitsDialog.d.ts +20 -0
- package/dist/components/plan-limits/PlanLimitsDialog.d.ts.map +1 -0
- package/dist/components/plan-limits/PlanLimitsDialog.js +109 -0
- package/dist/components/plan-limits/PlanLimitsDialog.js.map +1 -0
- package/dist/components/plan-limits/index.d.ts +4 -0
- package/dist/components/plan-limits/index.d.ts.map +1 -0
- package/dist/components/plan-limits/index.js +2 -0
- package/dist/components/plan-limits/index.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-client.d.ts +15 -0
- package/dist/components/plan-limits/plan-limits-client.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-client.js +44 -0
- package/dist/components/plan-limits/plan-limits-client.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-model.d.ts +66 -0
- package/dist/components/plan-limits/plan-limits-model.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-model.js +123 -0
- package/dist/components/plan-limits/plan-limits-model.js.map +1 -0
- package/dist/components/plan-limits/plan-limits-save.d.ts +31 -0
- package/dist/components/plan-limits/plan-limits-save.d.ts.map +1 -0
- package/dist/components/plan-limits/plan-limits-save.js +43 -0
- package/dist/components/plan-limits/plan-limits-save.js.map +1 -0
- package/dist/components/planning/PlanLimitsAction.d.ts +6 -0
- package/dist/components/planning/PlanLimitsAction.d.ts.map +1 -0
- package/dist/components/planning/PlanLimitsAction.js +19 -0
- package/dist/components/planning/PlanLimitsAction.js.map +1 -0
- package/dist/components/slider/index.d.ts.map +1 -1
- package/dist/components/slider/index.js +2 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/datastore-picker/datastore-picker-rows.d.ts +7 -0
- package/dist/datastore-picker/datastore-picker-rows.d.ts.map +1 -1
- package/dist/datastore-picker/datastore-picker-rows.js +26 -22
- package/dist/datastore-picker/datastore-picker-rows.js.map +1 -1
- package/dist/globals.css +85 -2
- package/dist/hooks/use-action-plans-list.d.ts +3 -0
- package/dist/hooks/use-action-plans-list.d.ts.map +1 -1
- package/dist/hooks/use-action-plans-list.js +8 -9
- package/dist/hooks/use-action-plans-list.js.map +1 -1
- package/dist/hooks/use-activity-feed.d.ts +10 -1
- package/dist/hooks/use-activity-feed.d.ts.map +1 -1
- package/dist/hooks/use-activity-feed.js +9 -11
- package/dist/hooks/use-activity-feed.js.map +1 -1
- package/dist/hooks/use-entity.d.ts +4 -3
- package/dist/hooks/use-entity.d.ts.map +1 -1
- package/dist/hooks/use-entity.js +4 -4
- package/dist/hooks/use-entity.js.map +1 -1
- package/dist/hooks/use-manual-actions.d.ts +1 -1
- package/dist/hooks/use-manual-actions.d.ts.map +1 -1
- package/dist/hooks/use-manual-actions.js +5 -5
- package/dist/hooks/use-manual-actions.js.map +1 -1
- package/dist/hooks/use-unsaved-changes-warning.d.ts +2 -0
- package/dist/hooks/use-unsaved-changes-warning.d.ts.map +1 -0
- package/dist/hooks/use-unsaved-changes-warning.js +13 -0
- package/dist/hooks/use-unsaved-changes-warning.js.map +1 -0
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +4 -3
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useChatPanelSync.d.ts.map +1 -1
- package/dist/hooks/useChatPanelSync.js +2 -3
- package/dist/hooks/useChatPanelSync.js.map +1 -1
- package/dist/hooks/useDatastoreSelection.d.ts.map +1 -1
- package/dist/hooks/useDatastoreSelection.js +11 -4
- package/dist/hooks/useDatastoreSelection.js.map +1 -1
- package/dist/hooks/useExecuteAction.d.ts +1 -0
- package/dist/hooks/useExecuteAction.d.ts.map +1 -1
- package/dist/hooks/useExecuteAction.js.map +1 -1
- package/dist/hooks/useLoginRedirect.d.ts +6 -0
- package/dist/hooks/useLoginRedirect.d.ts.map +1 -0
- package/dist/hooks/useLoginRedirect.js +51 -0
- package/dist/hooks/useLoginRedirect.js.map +1 -0
- package/dist/hooks/usePlanLimits.d.ts +18 -0
- package/dist/hooks/usePlanLimits.d.ts.map +1 -0
- package/dist/hooks/usePlanLimits.js +56 -0
- package/dist/hooks/usePlanLimits.js.map +1 -0
- package/dist/ldo-ui.d.ts +1 -1
- package/dist/ldo-ui.d.ts.map +1 -1
- package/dist/ldo-ui.js.map +1 -1
- package/dist/lib/app-tools.d.ts +18 -0
- package/dist/lib/app-tools.d.ts.map +1 -0
- package/dist/lib/app-tools.js +42 -0
- package/dist/lib/app-tools.js.map +1 -0
- package/dist/lib/chat-types.d.ts +3 -0
- package/dist/lib/chat-types.d.ts.map +1 -1
- package/dist/lib/chat-types.js.map +1 -1
- package/dist/lib/datastore-route-table.d.ts +3 -0
- package/dist/lib/datastore-route-table.d.ts.map +1 -1
- package/dist/lib/datastore-route-table.js +6 -0
- package/dist/lib/datastore-route-table.js.map +1 -1
- package/dist/lib/graphql-error.d.ts +2 -0
- package/dist/lib/graphql-error.d.ts.map +1 -0
- package/dist/lib/graphql-error.js +7 -0
- package/dist/lib/graphql-error.js.map +1 -0
- package/dist/lib/update-notice.d.ts +2 -1
- package/dist/lib/update-notice.d.ts.map +1 -1
- package/dist/lib/update-notice.js +8 -2
- package/dist/lib/update-notice.js.map +1 -1
- package/dist/providers/ActiveChatProvider.d.ts +2 -0
- package/dist/providers/ActiveChatProvider.d.ts.map +1 -1
- package/dist/providers/ActiveChatProvider.js +6 -3
- package/dist/providers/ActiveChatProvider.js.map +1 -1
- package/dist/providers/ActiveDatastoreProvider.d.ts +12 -0
- package/dist/providers/ActiveDatastoreProvider.d.ts.map +1 -1
- package/dist/providers/ActiveDatastoreProvider.js +114 -11
- package/dist/providers/ActiveDatastoreProvider.js.map +1 -1
- package/dist/providers/AuthContext.d.ts +1 -0
- package/dist/providers/AuthContext.d.ts.map +1 -1
- package/dist/providers/AuthContext.js.map +1 -1
- package/dist/providers/KnowledgeGraphStateContext.d.ts +2 -2
- package/dist/providers/KnowledgeGraphStateContext.d.ts.map +1 -1
- package/dist/providers/KnowledgeGraphStateProvider.d.ts.map +1 -1
- package/dist/providers/KnowledgeGraphStateProvider.js +8 -49
- package/dist/providers/KnowledgeGraphStateProvider.js.map +1 -1
- package/dist/providers/MantaClientProvider.d.ts.map +1 -1
- package/dist/providers/MantaClientProvider.js +3 -3
- package/dist/providers/MantaClientProvider.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/routes/activity/detail/ActivityDetailRoute.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityDetailRoute.js +1 -3
- package/dist/routes/activity/detail/ActivityDetailRoute.js.map +1 -1
- package/dist/routes/activity/index.d.ts.map +1 -1
- package/dist/routes/activity/index.js +1 -3
- package/dist/routes/activity/index.js.map +1 -1
- package/dist/routes/chat/index.d.ts +2 -21
- package/dist/routes/chat/index.d.ts.map +1 -1
- package/dist/routes/chat/index.js +4 -2
- package/dist/routes/chat/index.js.map +1 -1
- package/dist/routes/data-collection/index.d.ts.map +1 -1
- package/dist/routes/data-collection/index.js +1 -3
- package/dist/routes/data-collection/index.js.map +1 -1
- package/dist/routes/data-explorer/components/DataExplorerLayout.d.ts.map +1 -1
- package/dist/routes/data-explorer/components/DataExplorerLayout.js +1 -3
- package/dist/routes/data-explorer/components/DataExplorerLayout.js.map +1 -1
- package/dist/routes/data-explorer/components/class-detail/UsedByRules.js +2 -2
- package/dist/routes/data-explorer/components/class-detail/UsedByRules.js.map +1 -1
- package/dist/routes/datastores/index.d.ts.map +1 -1
- package/dist/routes/datastores/index.js +2 -2
- package/dist/routes/datastores/index.js.map +1 -1
- package/dist/routes/explain/index.d.ts.map +1 -1
- package/dist/routes/explain/index.js +1 -3
- package/dist/routes/explain/index.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/DashConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts +0 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js +3 -2
- package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts +0 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js +4 -3
- package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js +0 -1
- package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js.map +1 -1
- package/dist/routes/integrations/types.d.ts +2 -1
- package/dist/routes/integrations/types.d.ts.map +1 -1
- package/dist/routes/integrations/types.js +16 -0
- package/dist/routes/integrations/types.js.map +1 -1
- package/dist/routes/memories/components/DateValueInput.d.ts +16 -0
- package/dist/routes/memories/components/DateValueInput.d.ts.map +1 -0
- package/dist/routes/memories/components/DateValueInput.js +35 -0
- package/dist/routes/memories/components/DateValueInput.js.map +1 -0
- package/dist/routes/memories/components/EntityValuePicker.d.ts +11 -0
- package/dist/routes/memories/components/EntityValuePicker.d.ts.map +1 -0
- package/dist/routes/memories/components/EntityValuePicker.js +61 -0
- package/dist/routes/memories/components/EntityValuePicker.js.map +1 -0
- package/dist/routes/memories/components/FieldLabel.d.ts +12 -0
- package/dist/routes/memories/components/FieldLabel.d.ts.map +1 -0
- package/dist/routes/memories/components/FieldLabel.js +12 -0
- package/dist/routes/memories/components/FieldLabel.js.map +1 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts +2 -0
- package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -1
- package/dist/routes/memories/components/ImportanceSlider.js +4 -1
- package/dist/routes/memories/components/ImportanceSlider.js.map +1 -1
- package/dist/routes/memories/components/MemoriesFilters.d.ts +2 -2
- package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoriesFilters.js.map +1 -1
- package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoriesPanel.js +4 -0
- package/dist/routes/memories/components/MemoriesPanel.js.map +1 -1
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts +2 -2
- package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryActions.d.ts +2 -0
- package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryActions.js +3 -3
- package/dist/routes/memories/components/MemoryActions.js.map +1 -1
- package/dist/routes/memories/components/MemoryFields.d.ts +15 -3
- package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryFields.js +34 -5
- package/dist/routes/memories/components/MemoryFields.js.map +1 -1
- package/dist/routes/memories/components/MemoryFormDialog.d.ts +6 -3
- package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -1
- package/dist/routes/memories/components/MemoryFormDialog.js +105 -59
- package/dist/routes/memories/components/MemoryFormDialog.js.map +1 -1
- package/dist/routes/memories/components/MemoryPropertyFields.d.ts +10 -0
- package/dist/routes/memories/components/MemoryPropertyFields.d.ts.map +1 -0
- package/dist/routes/memories/components/MemoryPropertyFields.js +67 -0
- package/dist/routes/memories/components/MemoryPropertyFields.js.map +1 -0
- package/dist/routes/memories/components/RuleDraftDialog.d.ts +7 -0
- package/dist/routes/memories/components/RuleDraftDialog.d.ts.map +1 -0
- package/dist/routes/memories/components/RuleDraftDialog.js +20 -0
- package/dist/routes/memories/components/RuleDraftDialog.js.map +1 -0
- package/dist/routes/memories/components/SchemasTab.d.ts +17 -2
- package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -1
- package/dist/routes/memories/components/SchemasTab.js +146 -28
- package/dist/routes/memories/components/SchemasTab.js.map +1 -1
- package/dist/routes/memories/components/badges.d.ts +7 -0
- package/dist/routes/memories/components/badges.d.ts.map +1 -1
- package/dist/routes/memories/components/badges.js +11 -3
- package/dist/routes/memories/components/badges.js.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts +4 -2
- package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -1
- package/dist/routes/memories/hooks/useMemoryColumns.js +31 -15
- package/dist/routes/memories/hooks/useMemoryColumns.js.map +1 -1
- package/dist/routes/memories/index.d.ts +2 -1
- package/dist/routes/memories/index.d.ts.map +1 -1
- package/dist/routes/memories/index.js +72 -30
- package/dist/routes/memories/index.js.map +1 -1
- package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -1
- package/dist/routes/memories/memory-mutation-input.js +5 -2
- package/dist/routes/memories/memory-mutation-input.js.map +1 -1
- package/dist/routes/memories/memory-property-values.d.ts +13 -0
- package/dist/routes/memories/memory-property-values.d.ts.map +1 -0
- package/dist/routes/memories/memory-property-values.js +40 -0
- package/dist/routes/memories/memory-property-values.js.map +1 -0
- package/dist/routes/memories/schemas/AllowedValuesField.d.ts +14 -0
- package/dist/routes/memories/schemas/AllowedValuesField.d.ts.map +1 -0
- package/dist/routes/memories/schemas/AllowedValuesField.js +64 -0
- package/dist/routes/memories/schemas/AllowedValuesField.js.map +1 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.d.ts +127 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.d.ts.map +1 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.js +285 -0
- package/dist/routes/memories/schemas/MemorySchemaPage.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts +20 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js +54 -0
- package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts +15 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.js +8 -0
- package/dist/routes/memories/schemas/SchemaConfirmDialog.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.d.ts +15 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.js +74 -0
- package/dist/routes/memories/schemas/SchemaDetailPage.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.d.ts +10 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.js +242 -0
- package/dist/routes/memories/schemas/SchemaEditorForm.js.map +1 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts +13 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts.map +1 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.js +13 -0
- package/dist/routes/memories/schemas/SchemaTemplatesDialog.js.map +1 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.d.ts +12 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.d.ts.map +1 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.js +10 -0
- package/dist/routes/memories/schemas/ValueTypeSelect.js.map +1 -0
- package/dist/routes/memories/schemas/schema-form.d.ts +72 -0
- package/dist/routes/memories/schemas/schema-form.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-form.js +279 -0
- package/dist/routes/memories/schemas/schema-form.js.map +1 -0
- package/dist/routes/memories/schemas/schema-impact.d.ts +13 -0
- package/dist/routes/memories/schemas/schema-impact.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-impact.js +40 -0
- package/dist/routes/memories/schemas/schema-impact.js.map +1 -0
- package/dist/routes/memories/schemas/schema-route.d.ts +18 -0
- package/dist/routes/memories/schemas/schema-route.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-route.js +21 -0
- package/dist/routes/memories/schemas/schema-route.js.map +1 -0
- package/dist/routes/memories/schemas/schema-rule-context.d.ts +17 -0
- package/dist/routes/memories/schemas/schema-rule-context.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-rule-context.js +83 -0
- package/dist/routes/memories/schemas/schema-rule-context.js.map +1 -0
- package/dist/routes/memories/schemas/schema-table.d.ts +11 -0
- package/dist/routes/memories/schemas/schema-table.d.ts.map +1 -0
- package/dist/routes/memories/schemas/schema-table.js +34 -0
- package/dist/routes/memories/schemas/schema-table.js.map +1 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts +32 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.js +31 -0
- package/dist/routes/memories/schemas/useMemorySchemaMutations.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts +51 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.js +175 -0
- package/dist/routes/memories/schemas/useSchemaChangeReview.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts +46 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.js +93 -0
- package/dist/routes/memories/schemas/useSchemaLifecycle.js.map +1 -0
- package/dist/routes/memories/schemas/useSchemasTab.d.ts +18 -0
- package/dist/routes/memories/schemas/useSchemasTab.d.ts.map +1 -0
- package/dist/routes/memories/schemas/useSchemasTab.js +92 -0
- package/dist/routes/memories/schemas/useSchemasTab.js.map +1 -0
- package/dist/routes/plans/index.d.ts.map +1 -1
- package/dist/routes/plans/index.js +2 -2
- package/dist/routes/plans/index.js.map +1 -1
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts +7 -1
- package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -1
- package/dist/routes/rules/components/CreateRuleChatModal.js +9 -4
- package/dist/routes/rules/components/CreateRuleChatModal.js.map +1 -1
- package/dist/routes/rules/components/RuleValueControls.d.ts.map +1 -1
- package/dist/routes/rules/components/RuleValueControls.js +3 -24
- package/dist/routes/rules/components/RuleValueControls.js.map +1 -1
- package/dist/routes/rules/components/rule-value-input.d.ts +11 -0
- package/dist/routes/rules/components/rule-value-input.d.ts.map +1 -0
- package/dist/routes/rules/components/rule-value-input.js +24 -0
- package/dist/routes/rules/components/rule-value-input.js.map +1 -0
- package/dist/routes/rules/components/rules.utils.d.ts +5 -0
- package/dist/routes/rules/components/rules.utils.d.ts.map +1 -1
- package/dist/routes/rules/components/rules.utils.js +18 -3
- package/dist/routes/rules/components/rules.utils.js.map +1 -1
- package/dist/routes/rules/pages.d.ts +1 -1
- package/dist/routes/rules/pages.d.ts.map +1 -1
- package/dist/routes/rules/pages.js +1 -1
- package/dist/routes/rules/pages.js.map +1 -1
- package/dist/shared/graph-derived-queries.d.ts.map +1 -1
- package/dist/shared/graph-derived-queries.js +4 -1
- package/dist/shared/graph-derived-queries.js.map +1 -1
- package/dist/worker/index.d.ts +22 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +110 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/policy.d.ts +21 -0
- package/dist/worker/policy.d.ts.map +1 -0
- package/dist/worker/policy.js +42 -0
- package/dist/worker/policy.js.map +1 -0
- package/dist/worker/proxy.d.ts +14 -0
- package/dist/worker/proxy.d.ts.map +1 -0
- package/dist/worker/proxy.js +58 -0
- package/dist/worker/proxy.js.map +1 -0
- package/dist/worker/session.d.ts +24 -0
- package/dist/worker/session.d.ts.map +1 -0
- package/dist/worker/session.js +72 -0
- package/dist/worker/session.js.map +1 -0
- package/package.json +52 -7
- package/src/app-subpaths.json +9 -1
- package/src/components/AppErrorBoundary.tsx +14 -11
- package/src/components/app-gate/AppGate.tsx +122 -0
- package/src/components/app-gate/AwaitingDatastoreStatus.tsx +35 -0
- package/src/components/app-gate/EnterDatastoreRoute.tsx +30 -0
- package/src/components/app-gate/ErrorRoute.tsx +43 -0
- package/src/components/app-gate/FailureAlert.tsx +15 -0
- package/src/components/app-gate/NoDatastoreAccess.tsx +26 -0
- package/src/components/app-gate/NotFoundRoute.tsx +20 -0
- package/src/components/app-gate/PendingInvitations.tsx +134 -0
- package/src/components/app-gate/ServiceError.tsx +27 -0
- package/src/components/app-gate/index.ts +2 -0
- package/src/components/app-gate/sdk-route-elements.tsx +46 -0
- package/src/components/app-shell/AppShell.tsx +22 -0
- package/src/components/app-shell/AppShellRoutes.tsx +34 -0
- package/src/components/app-shell/GroupDatastores.tsx +28 -0
- package/src/components/app-shell/GroupRoute.tsx +34 -0
- package/src/components/app-shell/index.ts +2 -0
- package/src/components/authenticated-chat/index.tsx +1 -34
- package/src/components/chat-view/Chat.tsx +9 -3
- package/src/components/chat-view/MessageItem.tsx +10 -2
- package/src/components/chat-view/tool-part-rendering.ts +10 -1
- package/src/components/chip/index.tsx +8 -1
- package/src/components/embedded-chat/index.tsx +2 -1
- package/src/components/input/input-date-time.tsx +10 -3
- package/src/components/input/input-date.tsx +93 -21
- package/src/components/input/input-time.tsx +59 -26
- package/src/components/layouts/RouteLayout.tsx +11 -50
- package/src/components/layouts/Sidebar.tsx +21 -23
- package/src/components/plan-limits/PlanLimitsDialog.tsx +331 -0
- package/src/components/plan-limits/index.tsx +3 -0
- package/src/components/plan-limits/plan-limits-client.ts +71 -0
- package/src/components/plan-limits/plan-limits-model.ts +180 -0
- package/src/components/plan-limits/plan-limits-save.ts +68 -0
- package/src/components/planning/PlanLimitsAction.tsx +44 -0
- package/src/components/slider/index.tsx +2 -1
- package/src/datastore-picker/datastore-picker-rows.ts +36 -20
- package/src/hooks/use-action-plans-list.ts +20 -12
- package/src/hooks/use-activity-feed.ts +30 -14
- package/src/hooks/use-entity.ts +11 -6
- package/src/hooks/use-manual-actions.ts +11 -6
- package/src/hooks/use-unsaved-changes-warning.ts +12 -0
- package/src/hooks/useAuth.ts +5 -3
- package/src/hooks/useChatPanelSync.ts +2 -3
- package/src/hooks/useDatastoreSelection.ts +10 -4
- package/src/hooks/useExecuteAction.ts +2 -0
- package/src/hooks/useLoginRedirect.ts +66 -0
- package/src/hooks/usePlanLimits.ts +97 -0
- package/src/ldo-ui.ts +1 -0
- package/src/lib/app-tools.ts +63 -0
- package/src/lib/chat-types.ts +5 -0
- package/src/lib/datastore-route-table.ts +9 -0
- package/src/lib/graphql-error.ts +7 -0
- package/src/lib/update-notice.ts +12 -2
- package/src/providers/ActiveChatProvider.tsx +8 -3
- package/src/providers/ActiveDatastoreProvider.tsx +179 -9
- package/src/providers/AuthContext.ts +1 -0
- package/src/providers/KnowledgeGraphStateContext.ts +2 -2
- package/src/providers/KnowledgeGraphStateProvider.tsx +13 -65
- package/src/providers/MantaClientProvider.tsx +8 -3
- package/src/providers/index.tsx +7 -4
- package/src/routes/activity/detail/ActivityDetailRoute.tsx +1 -10
- package/src/routes/activity/index.tsx +1 -10
- package/src/routes/chat/index.tsx +11 -47
- package/src/routes/data-collection/index.tsx +1 -11
- package/src/routes/data-explorer/components/DataExplorerLayout.tsx +1 -11
- package/src/routes/data-explorer/components/class-detail/UsedByRules.tsx +2 -2
- package/src/routes/datastores/index.tsx +3 -9
- package/src/routes/explain/index.tsx +1 -11
- package/src/routes/integrations/components/connect-forms/DashConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleAdsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/InferalCredentialConnectForm.tsx +5 -3
- package/src/routes/integrations/components/connect-forms/KlaviyoConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/OAuthSetupConnectForm.tsx +7 -7
- package/src/routes/integrations/components/connect-forms/TriplewhaleConnectForm.tsx +0 -1
- package/src/routes/integrations/components/connect-forms/WoocommerceConnectForm.tsx +0 -1
- package/src/routes/integrations/types.ts +22 -6
- package/src/routes/memories/components/DateValueInput.tsx +72 -0
- package/src/routes/memories/components/EntityValuePicker.tsx +132 -0
- package/src/routes/memories/components/FieldLabel.tsx +49 -0
- package/src/routes/memories/components/ImportanceSlider.tsx +5 -1
- package/src/routes/memories/components/MemoriesFilters.tsx +2 -2
- package/src/routes/memories/components/MemoriesPanel.tsx +7 -3
- package/src/routes/memories/components/MemoriesTabPanel.tsx +2 -2
- package/src/routes/memories/components/MemoryActions.tsx +26 -2
- package/src/routes/memories/components/MemoryFields.tsx +75 -12
- package/src/routes/memories/components/MemoryFormDialog.tsx +305 -199
- package/src/routes/memories/components/MemoryPropertyFields.tsx +288 -0
- package/src/routes/memories/components/RuleDraftDialog.tsx +35 -0
- package/src/routes/memories/components/SchemasTab.tsx +481 -118
- package/src/routes/memories/components/badges.tsx +16 -4
- package/src/routes/memories/hooks/useMemoryColumns.tsx +69 -35
- package/src/routes/memories/index.tsx +125 -51
- package/src/routes/memories/memory-mutation-input.ts +5 -2
- package/src/routes/memories/memory-property-values.ts +83 -0
- package/src/routes/memories/schemas/AllowedValuesField.tsx +188 -0
- package/src/routes/memories/schemas/MemorySchemaPage.tsx +476 -0
- package/src/routes/memories/schemas/SchemaChangeReviewDialog.tsx +290 -0
- package/src/routes/memories/schemas/SchemaConfirmDialog.tsx +62 -0
- package/src/routes/memories/schemas/SchemaDetailPage.tsx +373 -0
- package/src/routes/memories/schemas/SchemaEditorForm.tsx +990 -0
- package/src/routes/memories/schemas/SchemaTemplatesDialog.tsx +81 -0
- package/src/routes/memories/schemas/ValueTypeSelect.tsx +37 -0
- package/src/routes/memories/schemas/schema-form.ts +360 -0
- package/src/routes/memories/schemas/schema-impact.ts +66 -0
- package/src/routes/memories/schemas/schema-route.ts +30 -0
- package/src/routes/memories/schemas/schema-rule-context.ts +103 -0
- package/src/routes/memories/schemas/schema-table.ts +54 -0
- package/src/routes/memories/schemas/useMemorySchemaMutations.ts +49 -0
- package/src/routes/memories/schemas/useSchemaChangeReview.ts +238 -0
- package/src/routes/memories/schemas/useSchemaLifecycle.tsx +151 -0
- package/src/routes/memories/schemas/useSchemasTab.ts +119 -0
- package/src/routes/plans/index.tsx +3 -14
- package/src/routes/rules/components/CreateRuleChatModal.tsx +46 -22
- package/src/routes/rules/components/RuleValueControls.tsx +3 -35
- package/src/routes/rules/components/rule-value-input.ts +34 -0
- package/src/routes/rules/components/rules.utils.ts +25 -3
- package/src/routes/rules/pages.ts +5 -1
- package/src/shared/graph-derived-queries.ts +6 -0
- package/src/themes/manta-dark.css +4 -0
- package/src/worker/index.ts +175 -0
- package/src/worker/policy.ts +62 -0
- package/src/worker/proxy.ts +101 -0
- package/src/worker/session.ts +111 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Button } from "#components/button/index";
|
|
2
|
+
import { StatusScreen } from "#components/layouts/StatusScreen";
|
|
3
|
+
import { Link, useSearchParams } from "react-router";
|
|
4
|
+
import { match } from "ts-pattern";
|
|
5
|
+
|
|
6
|
+
type ErrorCopy = {
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const genericErrorCopy: ErrorCopy = {
|
|
12
|
+
title: "Something went wrong",
|
|
13
|
+
description: "We couldn't open this link.",
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function copyForStatus(status: string | null): ErrorCopy {
|
|
17
|
+
return match(status)
|
|
18
|
+
.with("400", () => ({
|
|
19
|
+
title: "Broken link",
|
|
20
|
+
description: "This link isn't valid.",
|
|
21
|
+
}))
|
|
22
|
+
.with("404", () => ({
|
|
23
|
+
title: "Nothing to open",
|
|
24
|
+
description: "We couldn't find anything at this link.",
|
|
25
|
+
}))
|
|
26
|
+
.otherwise(() => genericErrorCopy);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function ErrorRoute() {
|
|
30
|
+
const [searchParams] = useSearchParams();
|
|
31
|
+
|
|
32
|
+
const { title, description } = copyForStatus(searchParams.get("status"));
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div className="h-screen w-full">
|
|
36
|
+
<StatusScreen title={title} description={description} role="alert">
|
|
37
|
+
<Button asChild variant="secondary">
|
|
38
|
+
<Link to="/">Back to Manta</Link>
|
|
39
|
+
</Button>
|
|
40
|
+
</StatusScreen>
|
|
41
|
+
</div>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
|
|
3
|
+
export type FailureAlertProps = { failure?: string };
|
|
4
|
+
|
|
5
|
+
export function FailureAlert(props: FailureAlertProps) {
|
|
6
|
+
const { failure } = props;
|
|
7
|
+
|
|
8
|
+
if (!isPresent(failure)) return null;
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<p role="alert" className="text-center text-balance typography-small text-error-foreground">
|
|
12
|
+
{failure}
|
|
13
|
+
</p>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { Button } from "#components/button/index";
|
|
3
|
+
import { StatusScreen } from "#components/layouts/StatusScreen";
|
|
4
|
+
import type { Datastore } from "#lib/chat-types";
|
|
5
|
+
|
|
6
|
+
export type NoDatastoreAccessProps = { requestedDatastoreId: string; datastore?: Datastore; onEnter: () => void };
|
|
7
|
+
|
|
8
|
+
export function NoDatastoreAccess(props: NoDatastoreAccessProps) {
|
|
9
|
+
const { requestedDatastoreId, datastore, onEnter } = props;
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div className="h-screen">
|
|
13
|
+
<StatusScreen
|
|
14
|
+
title={`You don't have access to "${requestedDatastoreId}"`}
|
|
15
|
+
description="Ask whoever shared this link to grant you access, or open one of your own datastores."
|
|
16
|
+
role="alert"
|
|
17
|
+
>
|
|
18
|
+
{isPresent(datastore) && (
|
|
19
|
+
<Button variant="tertiary" rounded="sm" data-testid="no-datastore-access-enter" onClick={onEnter}>
|
|
20
|
+
Go to {datastore.name}
|
|
21
|
+
</Button>
|
|
22
|
+
)}
|
|
23
|
+
</StatusScreen>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Button } from "#components/button/index";
|
|
2
|
+
import { RouteLayout } from "#components/layouts/RouteLayout";
|
|
3
|
+
import { StatusScreen } from "#components/layouts/StatusScreen";
|
|
4
|
+
import { Link } from "react-router";
|
|
5
|
+
|
|
6
|
+
export function NotFoundRoute() {
|
|
7
|
+
return (
|
|
8
|
+
<RouteLayout>
|
|
9
|
+
<StatusScreen
|
|
10
|
+
title="Page not found"
|
|
11
|
+
description="This page doesn't exist, or your account doesn't have access to it."
|
|
12
|
+
role="alert"
|
|
13
|
+
>
|
|
14
|
+
<Button asChild variant="secondary">
|
|
15
|
+
<Link to="/">Back to Manta</Link>
|
|
16
|
+
</Button>
|
|
17
|
+
</StatusScreen>
|
|
18
|
+
</RouteLayout>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { match } from "ts-pattern";
|
|
4
|
+
import { AwaitingDatastoreStatus } from "./AwaitingDatastoreStatus";
|
|
5
|
+
import { FailureAlert } from "./FailureAlert";
|
|
6
|
+
import { Button } from "#components/button/index";
|
|
7
|
+
import { LoadingView } from "#components/chat-view/LoadingView";
|
|
8
|
+
import { StatusScreen } from "#components/layouts/StatusScreen";
|
|
9
|
+
import { userContextQueryKey } from "#hooks/useAuth";
|
|
10
|
+
import { graphqlErrorMessage } from "#lib/graphql-error";
|
|
11
|
+
import { useMantaClient } from "#providers/MantaClientProvider";
|
|
12
|
+
import {
|
|
13
|
+
useAcceptInvitationMutation,
|
|
14
|
+
useDeclineInvitationMutation,
|
|
15
|
+
usePendingInvitationsQuery,
|
|
16
|
+
} from "@manta-eu/client";
|
|
17
|
+
|
|
18
|
+
export type PendingInvitationsProps = { onSignOut: () => void };
|
|
19
|
+
|
|
20
|
+
const invitationsStaleMs = 30_000;
|
|
21
|
+
|
|
22
|
+
export function PendingInvitations(props: PendingInvitationsProps) {
|
|
23
|
+
const { onSignOut } = props;
|
|
24
|
+
|
|
25
|
+
const { mantaClient } = useMantaClient();
|
|
26
|
+
|
|
27
|
+
const queryClient = useQueryClient();
|
|
28
|
+
|
|
29
|
+
const invitationsQuery = usePendingInvitationsQuery(mantaClient, undefined, {
|
|
30
|
+
staleTime: invitationsStaleMs,
|
|
31
|
+
refetchInterval: invitationsStaleMs,
|
|
32
|
+
refetchIntervalInBackground: false,
|
|
33
|
+
retry: 1,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
function refreshInvitations() {
|
|
37
|
+
return queryClient.invalidateQueries({ queryKey: usePendingInvitationsQuery.getKey() });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const acceptMutation = useAcceptInvitationMutation(mantaClient, {
|
|
41
|
+
onSuccess: () => queryClient.invalidateQueries({ queryKey: userContextQueryKey }),
|
|
42
|
+
onError: refreshInvitations,
|
|
43
|
+
});
|
|
44
|
+
const declineMutation = useDeclineInvitationMutation(mantaClient, { onSettled: refreshInvitations });
|
|
45
|
+
|
|
46
|
+
const invitations = invitationsQuery.data?.pendingInvitations ?? [];
|
|
47
|
+
const [only] = invitations;
|
|
48
|
+
|
|
49
|
+
const busy = acceptMutation.isPending || declineMutation.isPending;
|
|
50
|
+
|
|
51
|
+
const failure = match({ acceptMutation, declineMutation, invitationsQuery })
|
|
52
|
+
.with({ acceptMutation: { isError: true } }, (failed) =>
|
|
53
|
+
graphqlErrorMessage(failed.acceptMutation.error, "The invitation could not be accepted. Try again."),
|
|
54
|
+
)
|
|
55
|
+
.with({ declineMutation: { isError: true } }, (failed) =>
|
|
56
|
+
graphqlErrorMessage(failed.declineMutation.error, "The invitation could not be declined. Try again."),
|
|
57
|
+
)
|
|
58
|
+
.with({ invitationsQuery: { isError: true } }, (failed) =>
|
|
59
|
+
graphqlErrorMessage(
|
|
60
|
+
failed.invitationsQuery.error,
|
|
61
|
+
"Your invitations could not be loaded. Reload the page to try again.",
|
|
62
|
+
),
|
|
63
|
+
)
|
|
64
|
+
.otherwise(() => undefined);
|
|
65
|
+
|
|
66
|
+
if (acceptMutation.isSuccess) return <AwaitingDatastoreStatus inOrganization onSignOut={onSignOut} />;
|
|
67
|
+
|
|
68
|
+
if (invitationsQuery.isPending) return <LoadingView />;
|
|
69
|
+
|
|
70
|
+
if (!isPresent(invitations)) {
|
|
71
|
+
return <AwaitingDatastoreStatus inOrganization={false} failure={failure} onSignOut={onSignOut} />;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<div className="h-screen w-full">
|
|
76
|
+
<StatusScreen
|
|
77
|
+
title="You've been invited"
|
|
78
|
+
description={
|
|
79
|
+
invitations.length === 1 && isPresent(only)
|
|
80
|
+
? `${only.organizationName} invited you to join their organization.`
|
|
81
|
+
: "These organizations invited you. Pick the one to join."
|
|
82
|
+
}
|
|
83
|
+
branded
|
|
84
|
+
>
|
|
85
|
+
<div className="flex w-104 max-w-full flex-col gap-4">
|
|
86
|
+
<FailureAlert failure={failure} />
|
|
87
|
+
<ul className="divide-y divide-muted-border overflow-hidden rounded-lg-v4 border border-muted-border bg-card text-left">
|
|
88
|
+
{invitations.map((invitation) => (
|
|
89
|
+
<li key={invitation.organizationId} className="flex items-center gap-3 px-4 py-3">
|
|
90
|
+
<span className="min-w-0 flex-1 truncate typography-body-semibold text-default-foreground">
|
|
91
|
+
{invitation.organizationName}
|
|
92
|
+
</span>
|
|
93
|
+
<Button
|
|
94
|
+
variant="tertiary"
|
|
95
|
+
size="sm"
|
|
96
|
+
data-testid="decline-invitation"
|
|
97
|
+
aria-label={`Decline ${invitation.organizationName}'s invitation`}
|
|
98
|
+
disabled={busy}
|
|
99
|
+
onClick={() => {
|
|
100
|
+
acceptMutation.reset();
|
|
101
|
+
declineMutation.mutate({ organizationId: invitation.organizationId });
|
|
102
|
+
}}
|
|
103
|
+
>
|
|
104
|
+
Decline
|
|
105
|
+
</Button>
|
|
106
|
+
<Button
|
|
107
|
+
size="sm"
|
|
108
|
+
data-testid="accept-invitation"
|
|
109
|
+
aria-label={`Join ${invitation.organizationName}`}
|
|
110
|
+
disabled={busy}
|
|
111
|
+
onClick={() => {
|
|
112
|
+
declineMutation.reset();
|
|
113
|
+
acceptMutation.mutate({ organizationId: invitation.organizationId });
|
|
114
|
+
}}
|
|
115
|
+
>
|
|
116
|
+
Join
|
|
117
|
+
</Button>
|
|
118
|
+
</li>
|
|
119
|
+
))}
|
|
120
|
+
</ul>
|
|
121
|
+
<Button
|
|
122
|
+
variant="tertiary"
|
|
123
|
+
rounded="sm"
|
|
124
|
+
data-testid="awaiting-datastore-sign-out"
|
|
125
|
+
onClick={onSignOut}
|
|
126
|
+
className="self-center"
|
|
127
|
+
>
|
|
128
|
+
Sign out
|
|
129
|
+
</Button>
|
|
130
|
+
</div>
|
|
131
|
+
</StatusScreen>
|
|
132
|
+
</div>
|
|
133
|
+
);
|
|
134
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { Button } from "#components/button/index";
|
|
3
|
+
import { StatusScreen } from "#components/layouts/StatusScreen";
|
|
4
|
+
|
|
5
|
+
export type ServiceErrorProps = { title?: string; message: string; onRetry?: () => void; onSignOut?: () => void };
|
|
6
|
+
|
|
7
|
+
export function ServiceError(props: ServiceErrorProps) {
|
|
8
|
+
const { title = "Something went wrong", message, onRetry, onSignOut } = props;
|
|
9
|
+
|
|
10
|
+
const handleRetry = onRetry ?? (() => window.location.reload());
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div data-testid="service-error" className="h-screen w-full">
|
|
14
|
+
<StatusScreen title={title} description={message} role="alert">
|
|
15
|
+
<Button variant="tertiary" rounded="sm" onClick={handleRetry}>
|
|
16
|
+
{isPresent(onRetry) ? "Try again" : "Retry"}
|
|
17
|
+
</Button>
|
|
18
|
+
|
|
19
|
+
{isPresent(onSignOut) && (
|
|
20
|
+
<Button variant="tertiary" rounded="sm" data-testid="service-error-sign-out" onClick={onSignOut}>
|
|
21
|
+
Sign out
|
|
22
|
+
</Button>
|
|
23
|
+
)}
|
|
24
|
+
</StatusScreen>
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { GroupRoute } from "#components/app-shell/GroupRoute";
|
|
2
|
+
import { AuthenticatedChat } from "#components/authenticated-chat/index";
|
|
3
|
+
import { EnterDatastoreRoute } from "./EnterDatastoreRoute";
|
|
4
|
+
import { NotFoundRoute } from "./NotFoundRoute";
|
|
5
|
+
import type { RouteElements } from "#lib/datastore-route-table";
|
|
6
|
+
import { ActivityRoute } from "#routes/activity/index";
|
|
7
|
+
import { ActivityDetailRoute } from "#routes/activity/detail/ActivityDetailRoute";
|
|
8
|
+
import { DataCollectionRoute } from "#routes/data-collection/index";
|
|
9
|
+
import {
|
|
10
|
+
DataDetailRoute,
|
|
11
|
+
DataExplorerCoverageRoute,
|
|
12
|
+
DataExplorerEntityRoute,
|
|
13
|
+
DataExplorerFilesRoute,
|
|
14
|
+
DataExplorerIndexRoute,
|
|
15
|
+
DataExplorerIngestRoute,
|
|
16
|
+
DataExplorerLayout,
|
|
17
|
+
DataExplorerPrefixRoute,
|
|
18
|
+
DataExplorerRecentRoute,
|
|
19
|
+
DataExplorerTypeRoute,
|
|
20
|
+
} from "#routes/data-explorer/index";
|
|
21
|
+
import { ExplainRoute } from "#routes/explain/index";
|
|
22
|
+
import { MemoriesRoute } from "#routes/memories/index";
|
|
23
|
+
import { PlansRoute } from "#routes/plans/index";
|
|
24
|
+
|
|
25
|
+
export const sdkRouteElements = {
|
|
26
|
+
Chat: <AuthenticatedChat />,
|
|
27
|
+
EnterDatastore: <EnterDatastoreRoute />,
|
|
28
|
+
Group: <GroupRoute />,
|
|
29
|
+
Plans: <PlansRoute />,
|
|
30
|
+
Explain: <ExplainRoute />,
|
|
31
|
+
Memories: <MemoriesRoute />,
|
|
32
|
+
Activity: <ActivityRoute />,
|
|
33
|
+
ActivityDetail: <ActivityDetailRoute />,
|
|
34
|
+
DataExplorerLayout: <DataExplorerLayout />,
|
|
35
|
+
DataExplorerIndex: <DataExplorerIndexRoute />,
|
|
36
|
+
DataExplorerRecent: <DataExplorerRecentRoute />,
|
|
37
|
+
DataExplorerCoverage: <DataExplorerCoverageRoute />,
|
|
38
|
+
DataExplorerFiles: <DataExplorerFilesRoute />,
|
|
39
|
+
DataExplorerIngest: <DataExplorerIngestRoute />,
|
|
40
|
+
DataCollection: <DataCollectionRoute />,
|
|
41
|
+
DataExplorerPrefix: <DataExplorerPrefixRoute />,
|
|
42
|
+
DataExplorerType: <DataExplorerTypeRoute />,
|
|
43
|
+
DataEntity: <DataExplorerEntityRoute />,
|
|
44
|
+
DataDetail: <DataDetailRoute />,
|
|
45
|
+
NotFound: <NotFoundRoute />,
|
|
46
|
+
} satisfies RouteElements;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AppGate } from "#components/app-gate/index";
|
|
2
|
+
import { Providers } from "#providers/index";
|
|
3
|
+
import { NavExtrasProvider, type NavExtra } from "#providers/NavExtrasProvider";
|
|
4
|
+
import { AppShellRoutes, type AppShellRoutesProps } from "./AppShellRoutes";
|
|
5
|
+
|
|
6
|
+
export type AppShellProps = AppShellRoutesProps & { navItems?: NavExtra[] };
|
|
7
|
+
|
|
8
|
+
export function AppShell(props: AppShellProps) {
|
|
9
|
+
const { navItems, ...routes } = props;
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<Providers mantaBaseUrl={window.location.origin}>
|
|
13
|
+
<NavExtrasProvider items={navItems}>
|
|
14
|
+
<div className="typography-body text-default-foreground">
|
|
15
|
+
<AppGate>
|
|
16
|
+
<AppShellRoutes {...routes} />
|
|
17
|
+
</AppGate>
|
|
18
|
+
</div>
|
|
19
|
+
</NavExtrasProvider>
|
|
20
|
+
</Providers>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { sdkRouteElements } from "#components/app-gate/index";
|
|
3
|
+
import type { RouteElements } from "#lib/datastore-route-table";
|
|
4
|
+
import { getDatastoreRoutes, getGlobalRoutes } from "#lib/datastore-routes";
|
|
5
|
+
import { useActiveDatastore } from "#providers/index";
|
|
6
|
+
import { useAuthContext } from "#providers/AuthContext";
|
|
7
|
+
import { ChatManagerProvider, type ChatManagerProviderProps } from "#providers/ChatManagerProvider";
|
|
8
|
+
import { DatastoresRoute } from "#routes/datastores/index";
|
|
9
|
+
import type { ReactNode } from "react";
|
|
10
|
+
|
|
11
|
+
export type AppShellRoutesProps = Pick<ChatManagerProviderProps, "onStartupTiming"> & {
|
|
12
|
+
routes?: Partial<RouteElements>;
|
|
13
|
+
datastoreRoutes?: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export function AppShellRoutes(props: AppShellRoutesProps) {
|
|
17
|
+
const { routes, datastoreRoutes, onStartupTiming } = props;
|
|
18
|
+
|
|
19
|
+
const { canManageDatastores, datastore } = useAuthContext();
|
|
20
|
+
|
|
21
|
+
const { datastoreId: routeDatastoreId } = useActiveDatastore();
|
|
22
|
+
|
|
23
|
+
const elements: RouteElements = {
|
|
24
|
+
...sdkRouteElements,
|
|
25
|
+
...(canManageDatastores && { Datastores: <DatastoresRoute /> }),
|
|
26
|
+
...routes,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<ChatManagerProvider key={datastore?.id} datastoreId={datastore?.id} onStartupTiming={onStartupTiming}>
|
|
31
|
+
{isPresent(routeDatastoreId) ? getDatastoreRoutes(elements, datastoreRoutes) : getGlobalRoutes(elements)}
|
|
32
|
+
</ChatManagerProvider>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isPresent } from "@manta-eu/lib/present";
|
|
2
|
+
import { Button } from "#components/button/index";
|
|
3
|
+
import { LoadingView } from "#components/chat-view/LoadingView";
|
|
4
|
+
import { EmptyState } from "#components/empty-state/index";
|
|
5
|
+
import type { Datastore } from "#lib/chat-types";
|
|
6
|
+
import { Building2 } from "lucide-react";
|
|
7
|
+
|
|
8
|
+
export type GroupDatastoresProps = { members: Datastore[]; isLoading: boolean; onOpen: (datastoreId: string) => void };
|
|
9
|
+
|
|
10
|
+
export function GroupDatastores(props: GroupDatastoresProps) {
|
|
11
|
+
const { members, isLoading, onOpen } = props;
|
|
12
|
+
|
|
13
|
+
if (isLoading) return <LoadingView />;
|
|
14
|
+
|
|
15
|
+
if (!isPresent(members)) return <EmptyState icon={Building2} title="No datastores you can open are in this group." />;
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<ul data-testid="group-datastores" className="flex flex-col gap-1">
|
|
19
|
+
{members.map((member) => (
|
|
20
|
+
<li key={member.id}>
|
|
21
|
+
<Button variant="ghost" rounded="lg" className="w-full justify-start" onClick={() => onOpen(member.id)}>
|
|
22
|
+
{member.name}
|
|
23
|
+
</Button>
|
|
24
|
+
</li>
|
|
25
|
+
))}
|
|
26
|
+
</ul>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useDatastoreTreeQuery } from "@manta-eu/client";
|
|
2
|
+
import { PageBody, PageHeader } from "#components/layouts/page/index";
|
|
3
|
+
import { RouteLayout } from "#components/layouts/RouteLayout";
|
|
4
|
+
import { datastoreOfTreeNode, groupMembers } from "#datastore-picker/datastore-picker-rows";
|
|
5
|
+
import { useActiveDatastore, useMantaClient } from "#providers/index";
|
|
6
|
+
import { useAuthContext } from "#providers/AuthContext";
|
|
7
|
+
import { Building2 } from "lucide-react";
|
|
8
|
+
import { useParams } from "react-router";
|
|
9
|
+
import { GroupDatastores } from "./GroupDatastores";
|
|
10
|
+
|
|
11
|
+
export function GroupRoute() {
|
|
12
|
+
const { group = "" } = useParams();
|
|
13
|
+
|
|
14
|
+
const { datastores = [], isOperator } = useAuthContext();
|
|
15
|
+
|
|
16
|
+
const { enterDatastore } = useActiveDatastore();
|
|
17
|
+
|
|
18
|
+
const { mantaClient } = useMantaClient();
|
|
19
|
+
|
|
20
|
+
const { data, isLoading } = useDatastoreTreeQuery(mantaClient, undefined, { enabled: isOperator });
|
|
21
|
+
|
|
22
|
+
const reachable = isOperator ? (data?.datastoreTree ?? []).map(datastoreOfTreeNode) : datastores;
|
|
23
|
+
const name = reachable.find(({ id }) => id === group)?.name ?? group;
|
|
24
|
+
const members = groupMembers(reachable, group);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<RouteLayout>
|
|
28
|
+
<PageHeader title={name} icon={Building2} />
|
|
29
|
+
<PageBody>
|
|
30
|
+
<GroupDatastores members={members} isLoading={isLoading} onOpen={enterDatastore} />
|
|
31
|
+
</PageBody>
|
|
32
|
+
</RouteLayout>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -1,34 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { cn } from "#lib/utils";
|
|
3
|
-
import { ChatRoute } from "#routes/chat/index";
|
|
4
|
-
|
|
5
|
-
export function AuthenticatedChat(props: AuthenticatedChatProps) {
|
|
6
|
-
const { datastore, user, onLogout, isOperator, canSwitchDatastore, datastores, ...otherProps } =
|
|
7
|
-
resolveChatProps(props);
|
|
8
|
-
|
|
9
|
-
if (!user) {
|
|
10
|
-
console.error("AuthenticatedChat: user object is required");
|
|
11
|
-
return (
|
|
12
|
-
<div className="flex items-center justify-center min-h-screen">
|
|
13
|
-
<div className="text-center space-y-2">
|
|
14
|
-
<h2 className="typography-large-body-semibold text-error-foreground">Authentication Error</h2>
|
|
15
|
-
|
|
16
|
-
<p className="typography-small text-muted-foreground">Invalid user session. Please sign in again.</p>
|
|
17
|
-
|
|
18
|
-
{onLogout && (
|
|
19
|
-
<button
|
|
20
|
-
onClick={onLogout}
|
|
21
|
-
className={cn("px-4 py-2 rounded-lg transition-colors", "bg-background hover:bg-accent")}
|
|
22
|
-
>
|
|
23
|
-
Sign Out
|
|
24
|
-
</button>
|
|
25
|
-
)}
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<ChatRoute {...{ ...otherProps, isOperator, canSwitchDatastore, datastore, datastores, user, logout: onLogout }} />
|
|
33
|
-
);
|
|
34
|
-
}
|
|
1
|
+
export { ChatRoute as AuthenticatedChat, type ChatRouteProps as AuthenticatedChatRouteProps } from "#routes/chat/index";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { extractPlanName, humanizePlanName } from "@manta-eu/client/shared/agent-mode";
|
|
2
2
|
import { ChatContextKind, type ChatContext } from "@manta-eu/client/shared/agent-types";
|
|
3
3
|
import type { ChatUIMessage } from "@manta-eu/client/shared/index";
|
|
4
|
+
import { uploadedFileRoutePath } from "@manta-eu/client/shared/datastore-path";
|
|
4
5
|
import { createUserMessage } from "@manta-eu/client/shared/message-utils";
|
|
5
6
|
import {
|
|
6
7
|
anthropicPrimaryModel,
|
|
@@ -48,7 +49,7 @@ import { useShouldAutoFocusInput } from "#hooks/use-should-auto-focus-input";
|
|
|
48
49
|
import { useConversationGraphContext } from "#hooks/useConversationGraphContext";
|
|
49
50
|
import { useSelectedModel } from "#hooks/useSelectedModel";
|
|
50
51
|
import { isDevBuild } from "#lib/build-config";
|
|
51
|
-
import type { ChatDraft, CopilotMenuDefaults, Datastore, PageContext, User } from "#lib/chat-types";
|
|
52
|
+
import type { AppTools, ChatDraft, CopilotMenuDefaults, Datastore, PageContext, User } from "#lib/chat-types";
|
|
52
53
|
import { findLatestShowcase } from "#lib/find-latest-showcase";
|
|
53
54
|
import { useFileUpload } from "#lib/hooks/useFileUpload";
|
|
54
55
|
import { planStatusLabel } from "#lib/plan-status-label";
|
|
@@ -69,6 +70,7 @@ export type ChatProps = {
|
|
|
69
70
|
isOperator: boolean;
|
|
70
71
|
onCloseAction?: () => void;
|
|
71
72
|
pageContext?: PageContext;
|
|
73
|
+
appTools?: AppTools;
|
|
72
74
|
allowedModels?: MantaModelId[];
|
|
73
75
|
initialPrompt?: string;
|
|
74
76
|
initialDraft?: ChatDraft;
|
|
@@ -174,7 +176,11 @@ export function Chat(props: ChatProps) {
|
|
|
174
176
|
const composerCarryOver = useRef<ComposerCarryOver>({ conversationId: undefined, text: "" });
|
|
175
177
|
const content = <ChatContent {...props} turnState={turnState} composerCarryOver={composerCarryOver} />;
|
|
176
178
|
|
|
177
|
-
return
|
|
179
|
+
return (
|
|
180
|
+
<ActiveChatProvider appTools={props.appTools}>
|
|
181
|
+
{props.isEmbedded ? <Suspense>{content}</Suspense> : content}
|
|
182
|
+
</ActiveChatProvider>
|
|
183
|
+
);
|
|
178
184
|
}
|
|
179
185
|
|
|
180
186
|
function referenceToFilePart(reference: UploadedFileReference, uploadsUrl: string): FileUIPart {
|
|
@@ -380,7 +386,7 @@ function ChatContent(props: ChatContentProps) {
|
|
|
380
386
|
try {
|
|
381
387
|
const { uploaded, failed } = await uploadFiles(files);
|
|
382
388
|
|
|
383
|
-
const uploadsUrl = new URL(datastorePath(
|
|
389
|
+
const uploadsUrl = new URL(datastorePath(uploadedFileRoutePath), mantaBaseUrl.origin).toString();
|
|
384
390
|
fileParts = uploaded.map((reference) => referenceToFilePart(reference, uploadsUrl));
|
|
385
391
|
|
|
386
392
|
if (isPresent(failed)) {
|
|
@@ -17,7 +17,11 @@ import { hasInlineVisualOutput } from "../tool-invocation-card/types";
|
|
|
17
17
|
import { FileMessagePart } from "./FileMessagePart";
|
|
18
18
|
import { MessageStepGroup } from "./MessageStepGroup";
|
|
19
19
|
import { TextMessagePart } from "./TextMessagePart";
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
filterSupersededRequestUserInputErrors,
|
|
22
|
+
hasAnsweredApprovalInLastStep,
|
|
23
|
+
isStandaloneToolPart,
|
|
24
|
+
} from "./tool-part-rendering";
|
|
21
25
|
import { ToolMessagePart } from "./ToolMessagePart";
|
|
22
26
|
import { Banner } from "#components/banner/index";
|
|
23
27
|
import { groupMessageParts } from "#lib/message-grouping";
|
|
@@ -71,7 +75,11 @@ function resolveFallbackText(
|
|
|
71
75
|
|
|
72
76
|
return match(message.metadata?.responseState)
|
|
73
77
|
.returnType<FallbackText | null>()
|
|
74
|
-
.with("finished", () =>
|
|
78
|
+
.with("finished", () =>
|
|
79
|
+
hasAnsweredApprovalInLastStep(message.parts)
|
|
80
|
+
? null
|
|
81
|
+
: { part: finishedWithoutFinalResponsePart, muted: false },
|
|
82
|
+
)
|
|
75
83
|
.with("failed", () => ({ part: failedAssistantResponsePart, muted: false }))
|
|
76
84
|
.with(P.union("in-progress", "aborted", undefined), () => null)
|
|
77
85
|
.exhaustive();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { questionnaireInputSchema, requestUserInputToolPartType } from "@manta-eu/client/shared/questionnaire";
|
|
2
|
-
import { isStaticToolUIPart, type ToolUIPart, type UIMessage } from "ai";
|
|
2
|
+
import { isStaticToolUIPart, isToolUIPart, type ToolUIPart, type UIMessage } from "ai";
|
|
3
|
+
import { findLastIndex } from "ramda";
|
|
3
4
|
|
|
4
5
|
const standaloneToolPartTypes = new Set<ToolUIPart["type"]>(["tool-actionPlanShowcase", requestUserInputToolPartType]);
|
|
5
6
|
|
|
@@ -20,6 +21,14 @@ export function isStandaloneToolPart(part: ToolUIPart): boolean {
|
|
|
20
21
|
return standaloneToolPartTypes.has(part.type) || part.state === "approval-requested";
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
export function hasAnsweredApprovalInLastStep(parts: UIMessage["parts"]): boolean {
|
|
25
|
+
const lastStepStartIndex = findLastIndex((part) => part.type === "step-start", parts);
|
|
26
|
+
|
|
27
|
+
return parts
|
|
28
|
+
.slice(lastStepStartIndex + 1)
|
|
29
|
+
.some((part) => isToolUIPart(part) && part.approval?.approved !== undefined);
|
|
30
|
+
}
|
|
31
|
+
|
|
23
32
|
export function isPendingRequestUserInputPart(part: UIMessage["parts"][number]): boolean {
|
|
24
33
|
return (
|
|
25
34
|
isStaticToolUIPart(part) &&
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { X } from "lucide-react";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
5
|
+
import { cn } from "#style";
|
|
5
6
|
|
|
6
7
|
export type ChipProps = {
|
|
7
8
|
label: ReactNode;
|
|
@@ -9,12 +10,18 @@ export type ChipProps = {
|
|
|
9
10
|
removeLabel: string;
|
|
10
11
|
onRemove: () => void;
|
|
11
12
|
disabled?: boolean;
|
|
13
|
+
className?: string;
|
|
12
14
|
};
|
|
13
15
|
|
|
14
16
|
/** A removable pill shared by MultiSelect and InputTags; hides its remove button when disabled. */
|
|
15
17
|
export function Chip(props: ChipProps) {
|
|
16
18
|
return (
|
|
17
|
-
<span
|
|
19
|
+
<span
|
|
20
|
+
className={cn(
|
|
21
|
+
"inline-flex max-w-full items-center gap-1 rounded-sm bg-faint px-1.5 py-0.5 typography-caption text-default-foreground",
|
|
22
|
+
props.className,
|
|
23
|
+
)}
|
|
24
|
+
>
|
|
18
25
|
<span className="truncate">{props.label}</span>
|
|
19
26
|
{!props.disabled && (
|
|
20
27
|
<button
|
|
@@ -13,7 +13,7 @@ import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvi
|
|
|
13
13
|
import { useMantaClient } from "#providers/MantaClientProvider";
|
|
14
14
|
import { ActionPlansPage, PlanDetailRouteContent, useActionPlanRouteState } from "#routes/plans/index";
|
|
15
15
|
|
|
16
|
-
export type { ChatDraft, ChatStartupReport } from "#lib/chat-types";
|
|
16
|
+
export type { AppTool, AppTools, ChatDraft, ChatStartupReport } from "#lib/chat-types";
|
|
17
17
|
|
|
18
18
|
export function EmbeddedChat(props: AuthenticatedChatProps) {
|
|
19
19
|
const inRouter = useInRouterContext();
|
|
@@ -105,6 +105,7 @@ function EmbeddedContent(props: ResolvedChatProps) {
|
|
|
105
105
|
isEmbedded
|
|
106
106
|
isOperator={isOperator}
|
|
107
107
|
pageContext={props.pageContext}
|
|
108
|
+
appTools={props.appTools}
|
|
108
109
|
title={props.title}
|
|
109
110
|
mark={props.mark}
|
|
110
111
|
initialPrompt={props.initialPrompt}
|
|
@@ -7,16 +7,23 @@ export type InputDateTimeProps = {
|
|
|
7
7
|
onChange: (date: Date) => void;
|
|
8
8
|
minDate?: Date;
|
|
9
9
|
maxDate?: Date;
|
|
10
|
+
allowPast?: boolean;
|
|
10
11
|
disabled?: boolean;
|
|
11
12
|
className?: string;
|
|
12
13
|
align?: "start" | "center" | "end";
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
invalid?: boolean;
|
|
16
|
+
minuteStep?: number;
|
|
17
|
+
"aria-label"?: string;
|
|
18
|
+
"aria-describedby"?: string;
|
|
13
19
|
};
|
|
14
20
|
|
|
15
21
|
export function InputDateTime(props: InputDateTimeProps) {
|
|
22
|
+
const { id, minuteStep, "aria-label": label, ...shared } = props;
|
|
16
23
|
return (
|
|
17
|
-
<span
|
|
18
|
-
<InputDate {...
|
|
19
|
-
<InputTime {...
|
|
24
|
+
<span className="flex flex-wrap items-center gap-2">
|
|
25
|
+
<InputDate {...shared} id={id} aria-label={label} />
|
|
26
|
+
<InputTime {...shared} minuteStep={minuteStep} aria-label={label ? `${label} time` : undefined} />
|
|
20
27
|
</span>
|
|
21
28
|
);
|
|
22
29
|
}
|