@zeniai/client-epic-state 5.0.95 → 5.0.96
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/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
- package/lib/entity/aiCfo/aiCfoPayload.d.ts +5 -63
- package/lib/entity/aiCfo/aiCfoReducer.d.ts +2 -23
- package/lib/entity/aiCfo/aiCfoReducer.js +9 -249
- package/lib/entity/aiCfo/aiCfoSelector.d.ts +1 -4
- package/lib/entity/aiCfo/aiCfoSelector.js +1 -19
- package/lib/entity/aiCfo/aiCfoState.d.ts +4 -97
- package/lib/entity/aiCfo/aiCfoState.js +1 -18
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +0 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +0 -7
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +0 -2
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +0 -3
- package/lib/entity/task/taskPayload.d.ts +1 -3
- package/lib/entity/task/taskPayload.js +0 -2
- package/lib/entity/task/taskState.d.ts +0 -2
- package/lib/entity/tenant/clearAllEpic.d.ts +2 -6
- package/lib/entity/tenant/clearAllEpic.js +0 -8
- package/lib/epic.d.ts +3 -18
- package/lib/epic.js +3 -18
- package/lib/esm/entity/aiCfo/aiCfoReducer.js +9 -249
- package/lib/esm/entity/aiCfo/aiCfoSelector.js +1 -17
- package/lib/esm/entity/aiCfo/aiCfoState.js +0 -15
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +0 -7
- package/lib/esm/entity/snackbar/snackbarTypes.js +0 -3
- package/lib/esm/entity/task/taskPayload.js +0 -2
- package/lib/esm/entity/tenant/clearAllEpic.js +0 -8
- package/lib/esm/epic.js +3 -18
- package/lib/esm/index.js +10 -40
- package/lib/esm/reducer.js +0 -12
- package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +3 -6
- package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -5
- package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +1 -2
- package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +2 -12
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +11 -39
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +4 -14
- package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +28 -37
- package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -25
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +4 -42
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +0 -35
- package/lib/index.d.ts +12 -47
- package/lib/index.js +22 -193
- package/lib/reducer.d.ts +0 -12
- package/lib/reducer.js +0 -12
- package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +2 -11
- package/lib/view/aiCfoView/aiCfoViewReducer.js +3 -6
- package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -5
- package/lib/view/aiCfoView/epics/createSessionEpic.js +1 -2
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +1 -8
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +2 -12
- package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +11 -19
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +4 -10
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +12 -40
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +0 -2
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +3 -13
- package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +3 -11
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +3 -1
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +28 -37
- package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/view/companyView/types/cockpitTypes.d.ts +1 -2
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
- package/lib/view/people/peopleTypes.d.ts +1 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +1 -27
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +2 -12
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +5 -43
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +1 -42
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +0 -5
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
- package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
- package/package.json +1 -1
- package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +0 -277
- package/lib/entity/cardPolicy/cardPolicyPayload.js +0 -143
- package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +0 -19
- package/lib/entity/cardPolicy/cardPolicyReducer.js +0 -175
- package/lib/entity/cardPolicy/cardPolicySelector.d.ts +0 -32
- package/lib/entity/cardPolicy/cardPolicySelector.js +0 -99
- package/lib/entity/cardPolicy/cardPolicyState.d.ts +0 -205
- package/lib/entity/cardPolicy/cardPolicyState.js +0 -14
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +0 -18
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +0 -68
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +0 -26
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +0 -47
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +0 -25
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +0 -39
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +0 -24
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +0 -105
- package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +0 -130
- package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +0 -171
- package/lib/esm/entity/cardPolicy/cardPolicySelector.js +0 -75
- package/lib/esm/entity/cardPolicy/cardPolicyState.js +0 -9
- package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +0 -64
- package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +0 -43
- package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +0 -35
- package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +0 -101
- package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +0 -38
- package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +0 -16
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +0 -52
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +0 -22
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +0 -36
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +0 -39
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +0 -34
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +0 -58
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +0 -21
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +0 -38
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +0 -289
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +0 -109
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +0 -44
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +0 -111
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +0 -25
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +0 -363
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +0 -36
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +0 -19
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +0 -6
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +0 -119
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +0 -154
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +0 -22
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +0 -39
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +0 -140
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +0 -20
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +0 -100
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +0 -96
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +0 -59
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +0 -24
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +0 -34
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +0 -57
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +0 -35
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +0 -62
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +0 -44
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +0 -10
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +0 -42
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +0 -6
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +0 -20
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +0 -56
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +0 -28
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +0 -40
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +0 -43
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +0 -38
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +0 -62
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +0 -27
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +0 -42
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +0 -294
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +0 -113
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +0 -9
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +0 -48
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +0 -115
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +0 -13
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +0 -29
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +0 -369
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +0 -6
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +0 -40
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +0 -26
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +0 -116
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +0 -10
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +0 -33
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +0 -126
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +0 -52
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +0 -158
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +0 -31
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +0 -12
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +0 -43
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +0 -10
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +0 -144
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +0 -24
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +0 -104
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +0 -22
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +0 -100
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +0 -63
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +0 -3
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +0 -28
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +0 -34
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +0 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +0 -38
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +0 -12
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +0 -61
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +0 -9
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +0 -39
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +0 -66
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +0 -3
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +0 -48
|
@@ -16,4 +16,4 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @see README.md in this directory for maintenance expectations.
|
|
18
18
|
*/
|
|
19
|
-
export type AiCfoSuggestedQuestionsPageContext = 'balance_sheet' | 'profit_loss' | 'vendors' | 'transactions' | 'cash_flow' | 'accounts_receivable' | 'accounts_payable' | 'transaction_details' | 'dashboard' | 'cash_balance' | 'card_balance' | 'cash_in_cash_out' | 'net_burn_or_income' | 'cash_position' | 'top_expenses' | 'revenue' | 'operating_expenses' | 'command_centre' | 'je_schedules' | 'reconciliation' | 'flux_analysis' | 'receipts' | 'mei' | 'task_checklist' | 'performance' | 'bills_list' | 'bills_details' | 'reimbursement_list' | 'reimbursement_details' | 'vendors_summary' | 'opex_by_vendor' | 'prepaid_expenses' | 'fixed_assets' | 'form_1099' | 'accrued_expenses' | 'forecast' | 'checking' | 'checking_details' | 'treasury' | 'cards' | '
|
|
19
|
+
export type AiCfoSuggestedQuestionsPageContext = 'balance_sheet' | 'profit_loss' | 'vendors' | 'transactions' | 'cash_flow' | 'accounts_receivable' | 'accounts_payable' | 'transaction_details' | 'dashboard' | 'cash_balance' | 'card_balance' | 'cash_in_cash_out' | 'net_burn_or_income' | 'cash_position' | 'top_expenses' | 'revenue' | 'operating_expenses' | 'command_centre' | 'je_schedules' | 'reconciliation' | 'flux_analysis' | 'receipts' | 'mei' | 'task_checklist' | 'performance' | 'bills_list' | 'bills_details' | 'reimbursement_list' | 'reimbursement_details' | 'vendors_summary' | 'opex_by_vendor' | 'prepaid_expenses' | 'fixed_assets' | 'form_1099' | 'accrued_expenses' | 'forecast' | 'checking' | 'checking_details' | 'treasury' | 'cards' | 'cards_detail' | 'people' | 'rewards' | 'notifications';
|
|
@@ -12,74 +12,16 @@ export interface YFormatPayload {
|
|
|
12
12
|
export interface ChartVisualizationPayload {
|
|
13
13
|
values: Array<Record<string, string | number>>;
|
|
14
14
|
x: string;
|
|
15
|
+
/**
|
|
16
|
+
* y can be a string or an array of strings in the API payload.
|
|
17
|
+
* We will normalize it to string[] in state.
|
|
18
|
+
*/
|
|
15
19
|
y: string | string[];
|
|
16
20
|
lines?: string[] | null;
|
|
17
21
|
y_format?: YFormatPayload;
|
|
18
22
|
}
|
|
19
|
-
export interface SuggestedCardPayload {
|
|
20
|
-
avg_spend: number;
|
|
21
|
-
card_name: string;
|
|
22
|
-
card_name_id: string;
|
|
23
|
-
card_type: 'vendor' | 'department' | 'category';
|
|
24
|
-
credit_limit: number;
|
|
25
|
-
is_suggested: boolean;
|
|
26
|
-
owner_id: string | null;
|
|
27
|
-
}
|
|
28
|
-
export interface CardsCreationInitialDataPayload {
|
|
29
|
-
mode: 'review' | 'create';
|
|
30
|
-
suggested_cards: SuggestedCardPayload[];
|
|
31
|
-
}
|
|
32
|
-
export interface DraftPolicyEntityPayload {
|
|
33
|
-
category_codes: string[];
|
|
34
|
-
merchant_names: string[];
|
|
35
|
-
}
|
|
36
|
-
export interface DraftPolicySpendLimitsPayload {
|
|
37
|
-
transaction: number;
|
|
38
|
-
[cadence: string]: number | undefined;
|
|
39
|
-
}
|
|
40
|
-
export interface DraftPolicyPayload {
|
|
41
|
-
allowed_entity: DraftPolicyEntityPayload;
|
|
42
|
-
apply_to_cards: string[];
|
|
43
|
-
blocked_entity: DraftPolicyEntityPayload;
|
|
44
|
-
description: string;
|
|
45
|
-
mode: string;
|
|
46
|
-
name: string;
|
|
47
|
-
required_receipt_threshold: number;
|
|
48
|
-
spend_limits: DraftPolicySpendLimitsPayload;
|
|
49
|
-
}
|
|
50
|
-
export interface CardPolicyStep5ReviewPayload {
|
|
51
|
-
draft_policies: DraftPolicyPayload[];
|
|
52
|
-
prompt: string;
|
|
53
|
-
grouping_source?: string;
|
|
54
|
-
}
|
|
55
|
-
export interface CardPolicyWizardPlanPayload {
|
|
56
|
-
step_5_review: CardPolicyStep5ReviewPayload;
|
|
57
|
-
}
|
|
58
|
-
export interface CardPolicyUploadSourcePayload {
|
|
59
|
-
confidence_score: number;
|
|
60
|
-
file_name: string;
|
|
61
|
-
low_confidence_fields: string[];
|
|
62
|
-
}
|
|
63
|
-
export type CardPolicyInitialDataPayload = {
|
|
64
|
-
mode: 'auto';
|
|
65
|
-
wizard_plan: CardPolicyWizardPlanPayload;
|
|
66
|
-
} | {
|
|
67
|
-
mode: 'guided';
|
|
68
|
-
wizard_plan: CardPolicyWizardPlanPayload;
|
|
69
|
-
} | {
|
|
70
|
-
mode: 'upload';
|
|
71
|
-
source?: CardPolicyUploadSourcePayload;
|
|
72
|
-
wizard_plan?: CardPolicyWizardPlanPayload;
|
|
73
|
-
};
|
|
74
|
-
export type InteractiveFormVisualizationPayload = {
|
|
75
|
-
form_type: 'cards_creation';
|
|
76
|
-
payload: CardsCreationInitialDataPayload;
|
|
77
|
-
} | {
|
|
78
|
-
form_type: 'card_policy';
|
|
79
|
-
payload: CardPolicyInitialDataPayload;
|
|
80
|
-
};
|
|
81
23
|
export interface AiCfoVisualizationPayload {
|
|
82
|
-
data: TableVisualizationPayload | ChartVisualizationPayload |
|
|
24
|
+
data: TableVisualizationPayload | ChartVisualizationPayload | null;
|
|
83
25
|
type: string | null;
|
|
84
26
|
}
|
|
85
27
|
export interface AiCfoAnswerPayload {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ID } from '../../commonStateTypes/common';
|
|
2
2
|
import { ZeniDate } from '../../zeniDayJS';
|
|
3
3
|
import { AiCfoAnswerPayload, AiCfoVisualizationPayload, ChatSessionPayload, MessagePayload } from './aiCfoPayload';
|
|
4
|
-
import { AiCfoState, AiCfoVisualization, FileAttachmentMetadata
|
|
5
|
-
import type { CardPolicyUploadSource, CardPolicyWizardPlan } from './aiCfoState';
|
|
4
|
+
import { AiCfoState, AiCfoVisualization, FileAttachmentMetadata } from './aiCfoState';
|
|
6
5
|
export declare const initialAiCfoState: AiCfoState;
|
|
7
6
|
export declare const toAiCfoVisualization: (visualization: AiCfoVisualizationPayload) => AiCfoVisualization | undefined;
|
|
8
7
|
export declare const setNewSession: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -42,26 +41,6 @@ export declare const setNewSession: import("@reduxjs/toolkit").ActionCreatorWith
|
|
|
42
41
|
}, "aiCfo/addQuestionPayload">, clearAiCfo: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfo/clearAiCfo">, deleteQuestion: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
43
42
|
chatSessionId: ID;
|
|
44
43
|
questionAnswerId: ID;
|
|
45
|
-
}, "aiCfo/deleteQuestion"
|
|
46
|
-
answerId: ID;
|
|
47
|
-
chatSessionId: ID;
|
|
48
|
-
wizardPlan: CardPolicyWizardPlan;
|
|
49
|
-
source?: CardPolicyUploadSource;
|
|
50
|
-
}, "aiCfo/updateAiCfoAnswerCardPolicyWizardPlan">, appendSyntheticAiCfoAnswer: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
51
|
-
chatSessionId: ID;
|
|
52
|
-
createdAt: ZeniDate;
|
|
53
|
-
id: ID;
|
|
54
|
-
kind: SyntheticAiCfoAnswerKind;
|
|
55
|
-
sourceQuestionAnswerId: ID;
|
|
56
|
-
entityIds?: ID[];
|
|
57
|
-
}, "aiCfo/appendSyntheticAiCfoAnswer">, updateSyntheticAiCfoAnswer: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
58
|
-
chatSessionId: ID;
|
|
59
|
-
id: ID;
|
|
60
|
-
kind: SyntheticAiCfoAnswerKind;
|
|
61
|
-
entityIds?: ID[];
|
|
62
|
-
}, "aiCfo/updateSyntheticAiCfoAnswer">, removeSyntheticAiCfoAnswer: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
63
|
-
chatSessionId: ID;
|
|
64
|
-
id: ID;
|
|
65
|
-
}, "aiCfo/removeSyntheticAiCfoAnswer">, clearSyntheticAiCfoAnswers: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "aiCfo/clearSyntheticAiCfoAnswers">;
|
|
44
|
+
}, "aiCfo/deleteQuestion">;
|
|
66
45
|
declare const _default: import("redux").Reducer<AiCfoState>;
|
|
67
46
|
export default _default;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.deleteQuestion = exports.clearAiCfo = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.setChatHistory = exports.setSessions = exports.clearSession = exports.setNewSession = exports.toAiCfoVisualization = exports.initialAiCfoState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
7
7
|
const aiCfoState_1 = require("./aiCfoState");
|
|
8
8
|
exports.initialAiCfoState = {
|
|
9
9
|
aiCfoByChatSessionId: {},
|
|
10
10
|
partialQuestionAnswers: {},
|
|
11
|
-
syntheticAnswersByChatSessionId: {},
|
|
12
11
|
};
|
|
13
12
|
// Utility: Merge two arrays of Q&A pairs, combining responses for the same question
|
|
14
13
|
function mergeQuestionAnswerPairs(existing, newQAs) {
|
|
@@ -141,174 +140,12 @@ const toAiCfoVisualization = (visualization) => {
|
|
|
141
140
|
if (visualization.type == null || visualization.data == null) {
|
|
142
141
|
return undefined;
|
|
143
142
|
}
|
|
144
|
-
// Reject unknown viz types; `?? 'table'` used to throw in the chart/table decoder
|
|
145
|
-
// when interactive-form payloads (no `values`) hit it.
|
|
146
|
-
const normalizedType = (0, aiCfoState_1.toAiCfoVisualizationTypeStrict)(visualization.type);
|
|
147
|
-
if (normalizedType == null) {
|
|
148
|
-
return undefined;
|
|
149
|
-
}
|
|
150
143
|
return {
|
|
151
|
-
type:
|
|
152
|
-
data:
|
|
153
|
-
? toInteractiveFormVisualization(visualization.data)
|
|
154
|
-
: toAiCfoVisualizationData(visualization.data),
|
|
144
|
+
type: (0, aiCfoState_1.toAiCfoVisualizationTypeStrict)(visualization.type) ?? 'table',
|
|
145
|
+
data: toAiCfoVisualizationData(visualization.data),
|
|
155
146
|
};
|
|
156
147
|
};
|
|
157
148
|
exports.toAiCfoVisualization = toAiCfoVisualization;
|
|
158
|
-
const toInteractiveFormVisualization = (data) => {
|
|
159
|
-
// When `form_type` is missing / mistyped, infer from payload shape so a malformed
|
|
160
|
-
// card-policy answer doesn't get decoded as cards_creation (wrong form + submit path).
|
|
161
|
-
const formType = (0, aiCfoState_1.toInteractiveFormTypeStrict)(data.form_type) ??
|
|
162
|
-
inferInteractiveFormTypeFromPayload(data.payload);
|
|
163
|
-
if (formType === 'card_policy') {
|
|
164
|
-
return {
|
|
165
|
-
formType: 'card_policy',
|
|
166
|
-
payload: toCardPolicyInitialData(data.payload),
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
return {
|
|
170
|
-
formType: 'cards_creation',
|
|
171
|
-
payload: toCardsCreationInitialData(data.payload),
|
|
172
|
-
};
|
|
173
|
-
};
|
|
174
|
-
const inferInteractiveFormTypeFromPayload = (payload) => {
|
|
175
|
-
if (payload != null && typeof payload === 'object' && 'mode' in payload) {
|
|
176
|
-
const mode = payload.mode;
|
|
177
|
-
if (mode === 'auto' || mode === 'guided' || mode === 'upload') {
|
|
178
|
-
return 'card_policy';
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return 'cards_creation';
|
|
182
|
-
};
|
|
183
|
-
const toCardsCreationInitialData = (payload) => {
|
|
184
|
-
const suggestedCards = payload.suggested_cards ?? [];
|
|
185
|
-
const ordered = [...suggestedCards].sort((a, b) => KIND_RANK[a.card_type] - KIND_RANK[b.card_type]);
|
|
186
|
-
const withUniqueIds = withSynthesizedIds(ordered);
|
|
187
|
-
const suggestedOnly = withUniqueIds.filter(({ card }) => card.is_suggested);
|
|
188
|
-
const cardNameOptions = withUniqueIds.map(({ card, uniqueId }) => ({
|
|
189
|
-
id: uniqueId,
|
|
190
|
-
kind: toCardKind(card.card_type),
|
|
191
|
-
label: card.card_name,
|
|
192
|
-
}));
|
|
193
|
-
const suggestedOwnerUserIdByTeamId = Object.fromEntries(suggestedOnly.map(({ card, uniqueId }) => [
|
|
194
|
-
uniqueId,
|
|
195
|
-
normalizeOwnerId(card.owner_id),
|
|
196
|
-
]));
|
|
197
|
-
const common = {
|
|
198
|
-
cardNameOptions,
|
|
199
|
-
suggestedOwnerUserIdByTeamId,
|
|
200
|
-
};
|
|
201
|
-
if (payload.mode === 'create') {
|
|
202
|
-
return {
|
|
203
|
-
...common,
|
|
204
|
-
mode: 'create',
|
|
205
|
-
cardRows: suggestedOnly.map(({ card, uniqueId }) => ({
|
|
206
|
-
cardKind: toCardKind(card.card_type),
|
|
207
|
-
id: uniqueId,
|
|
208
|
-
label: card.card_name,
|
|
209
|
-
recommendedLimit: card.credit_limit > 0 ? card.credit_limit : undefined,
|
|
210
|
-
suggestedOwnerUserId: normalizeOwnerId(card.owner_id),
|
|
211
|
-
})),
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
...common,
|
|
216
|
-
mode: 'review',
|
|
217
|
-
teamRows: suggestedOnly.map(({ card, uniqueId }) => ({
|
|
218
|
-
avgMonthlySpend: CURRENCY_FORMATTER.format(card.avg_spend),
|
|
219
|
-
cardKind: toCardKind(card.card_type),
|
|
220
|
-
id: uniqueId,
|
|
221
|
-
label: card.card_name,
|
|
222
|
-
recommendedLimit: CURRENCY_FORMATTER.format(card.credit_limit),
|
|
223
|
-
recommendedLimitCadence: 'Monthly',
|
|
224
|
-
})),
|
|
225
|
-
};
|
|
226
|
-
};
|
|
227
|
-
const CURRENCY_FORMATTER = new Intl.NumberFormat('en-US', {
|
|
228
|
-
style: 'currency',
|
|
229
|
-
currency: 'USD',
|
|
230
|
-
maximumFractionDigits: 0,
|
|
231
|
-
});
|
|
232
|
-
// BE emits `null` or `""` for "no owner picked"; collapse both to `undefined`.
|
|
233
|
-
const normalizeOwnerId = (ownerId) => (ownerId != null && ownerId !== '' ? ownerId : undefined);
|
|
234
|
-
const KIND_RANK = {
|
|
235
|
-
vendor: 0,
|
|
236
|
-
category: 1,
|
|
237
|
-
department: 2,
|
|
238
|
-
};
|
|
239
|
-
const toCardKind = (cardType) => {
|
|
240
|
-
if (cardType === 'department') {
|
|
241
|
-
return 'class';
|
|
242
|
-
}
|
|
243
|
-
if (cardType === 'category') {
|
|
244
|
-
return 'category';
|
|
245
|
-
}
|
|
246
|
-
return 'vendor';
|
|
247
|
-
};
|
|
248
|
-
// Falls back to `${kind}__${card_name_id}__${index}` when `card_name_id` collides
|
|
249
|
-
// (sample payloads ship the literal `"vendor_uuid"`), to keep RHF row keys unique.
|
|
250
|
-
const withSynthesizedIds = (cards) => {
|
|
251
|
-
const seen = new Set();
|
|
252
|
-
return cards.map((card, index) => {
|
|
253
|
-
const preferred = card.card_name_id;
|
|
254
|
-
if (preferred != null && preferred !== '' && !seen.has(preferred)) {
|
|
255
|
-
seen.add(preferred);
|
|
256
|
-
return { card, uniqueId: preferred };
|
|
257
|
-
}
|
|
258
|
-
const synthesized = `${card.card_type}__${preferred ?? 'unknown'}__${index}`;
|
|
259
|
-
seen.add(synthesized);
|
|
260
|
-
return { card, uniqueId: synthesized };
|
|
261
|
-
});
|
|
262
|
-
};
|
|
263
|
-
const toCardPolicyDraftPolicy = (payload, index) => ({
|
|
264
|
-
id: `draft-${index}`,
|
|
265
|
-
name: payload.name,
|
|
266
|
-
description: payload.description ?? '',
|
|
267
|
-
mode: payload.mode,
|
|
268
|
-
allowedEntity: {
|
|
269
|
-
categoryCodes: payload.allowed_entity?.category_codes ?? [],
|
|
270
|
-
merchantNames: payload.allowed_entity?.merchant_names ?? [],
|
|
271
|
-
},
|
|
272
|
-
blockedEntity: {
|
|
273
|
-
categoryCodes: payload.blocked_entity?.category_codes ?? [],
|
|
274
|
-
merchantNames: payload.blocked_entity?.merchant_names ?? [],
|
|
275
|
-
},
|
|
276
|
-
applyToCards: payload.apply_to_cards ?? [],
|
|
277
|
-
requiredReceiptThreshold: payload.required_receipt_threshold ?? 0,
|
|
278
|
-
spendLimits: {
|
|
279
|
-
transaction: payload.spend_limits?.transaction ?? 0,
|
|
280
|
-
},
|
|
281
|
-
});
|
|
282
|
-
const toCardPolicyStep5Review = (payload) => ({
|
|
283
|
-
draftPolicies: (payload.draft_policies ?? []).map(toCardPolicyDraftPolicy),
|
|
284
|
-
groupingSource: payload.grouping_source ?? 'none',
|
|
285
|
-
prompt: payload.prompt ?? '',
|
|
286
|
-
});
|
|
287
|
-
const toCardPolicyWizardPlan = (payload) => ({
|
|
288
|
-
step5Review: toCardPolicyStep5Review(payload.step_5_review),
|
|
289
|
-
});
|
|
290
|
-
const toCardPolicyUploadSource = (payload) => ({
|
|
291
|
-
confidenceScore: payload.confidence_score,
|
|
292
|
-
fileName: payload.file_name,
|
|
293
|
-
lowConfidenceFields: payload.low_confidence_fields ?? [],
|
|
294
|
-
});
|
|
295
|
-
const toCardPolicyInitialData = (payload) => {
|
|
296
|
-
if (payload.mode === 'upload') {
|
|
297
|
-
return {
|
|
298
|
-
policyKind: 'upload',
|
|
299
|
-
wizardPlan: payload.wizard_plan != null
|
|
300
|
-
? toCardPolicyWizardPlan(payload.wizard_plan)
|
|
301
|
-
: undefined,
|
|
302
|
-
source: payload.source != null
|
|
303
|
-
? toCardPolicyUploadSource(payload.source)
|
|
304
|
-
: undefined,
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
return {
|
|
308
|
-
policyKind: payload.mode,
|
|
309
|
-
wizardPlan: toCardPolicyWizardPlan(payload.wizard_plan),
|
|
310
|
-
};
|
|
311
|
-
};
|
|
312
149
|
const toAiCfoVisualizationData = (data) => {
|
|
313
150
|
if ('x' in data && 'y' in data) {
|
|
314
151
|
// Normalize y to always be an array
|
|
@@ -543,8 +380,10 @@ const aiCfo = (0, toolkit_1.createSlice)({
|
|
|
543
380
|
// Update state - append new complete Q&As to existing ones
|
|
544
381
|
session.questionAnswers = mergeQuestionAnswerPairs(session.questionAnswers, completeQAs);
|
|
545
382
|
},
|
|
546
|
-
|
|
547
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Upsert a Q/A pair: if the questionAnswerId exists, upsert the response block; if not, add a new Q/A entry.
|
|
385
|
+
* Used for push notification payloads that may introduce a new question.
|
|
386
|
+
*/
|
|
548
387
|
upsertOrAddQuestionAnswerPayload(draft, action) {
|
|
549
388
|
const { chatSessionId, questionAnswerId, question: { questionId, createdAt, text }, answerPayload, userId, insertQuestionAnswer, } = action.payload;
|
|
550
389
|
const session = draft.aiCfoByChatSessionId[chatSessionId];
|
|
@@ -621,82 +460,10 @@ const aiCfo = (0, toolkit_1.createSlice)({
|
|
|
621
460
|
session.questionAnswers.push(qa);
|
|
622
461
|
}
|
|
623
462
|
},
|
|
624
|
-
// Patches an upload-mode card-policy answer with the wizard plan + source returned
|
|
625
|
-
// by `policy-recommendation-from-upload`. No-op for non-upload / missing targets.
|
|
626
|
-
updateAiCfoAnswerCardPolicyWizardPlan(draft, action) {
|
|
627
|
-
const { answerId, chatSessionId, source, wizardPlan } = action.payload;
|
|
628
|
-
const session = draft.aiCfoByChatSessionId[chatSessionId];
|
|
629
|
-
if (session == null) {
|
|
630
|
-
return;
|
|
631
|
-
}
|
|
632
|
-
const qa = session.questionAnswers.find((entry) => entry.questionAnswerId === answerId);
|
|
633
|
-
if (qa == null) {
|
|
634
|
-
return;
|
|
635
|
-
}
|
|
636
|
-
for (const response of Object.values(qa.responses)) {
|
|
637
|
-
const visualization = response?.content.visualization;
|
|
638
|
-
if (visualization == null ||
|
|
639
|
-
visualization.type !== 'interactive_form') {
|
|
640
|
-
continue;
|
|
641
|
-
}
|
|
642
|
-
const data = visualization.data;
|
|
643
|
-
if (data.formType !== 'card_policy' ||
|
|
644
|
-
data.payload.policyKind !== 'upload') {
|
|
645
|
-
continue;
|
|
646
|
-
}
|
|
647
|
-
data.payload = {
|
|
648
|
-
...data.payload,
|
|
649
|
-
wizardPlan,
|
|
650
|
-
source: source ?? data.payload.source,
|
|
651
|
-
};
|
|
652
|
-
}
|
|
653
|
-
},
|
|
654
|
-
// Renders a "Creating…" placeholder while the cards/policy create mutation runs.
|
|
655
|
-
// Caller supplies a stable `id` (updated in place by `updateSyntheticAiCfoAnswer`).
|
|
656
|
-
appendSyntheticAiCfoAnswer(draft, action) {
|
|
657
|
-
const { chatSessionId, id, kind, createdAt, entityIds, sourceQuestionAnswerId, } = action.payload;
|
|
658
|
-
if (draft.syntheticAnswersByChatSessionId[chatSessionId] == null) {
|
|
659
|
-
draft.syntheticAnswersByChatSessionId[chatSessionId] = [];
|
|
660
|
-
}
|
|
661
|
-
draft.syntheticAnswersByChatSessionId[chatSessionId].push({
|
|
662
|
-
id,
|
|
663
|
-
kind,
|
|
664
|
-
entityIds: entityIds ?? [],
|
|
665
|
-
createdAt,
|
|
666
|
-
sourceQuestionAnswerId,
|
|
667
|
-
});
|
|
668
|
-
},
|
|
669
|
-
// Transitions a bubble from `creating_*` to `created_*` once the mutation completes.
|
|
670
|
-
updateSyntheticAiCfoAnswer(draft, action) {
|
|
671
|
-
const { chatSessionId, id, kind, entityIds } = action.payload;
|
|
672
|
-
const list = draft.syntheticAnswersByChatSessionId[chatSessionId];
|
|
673
|
-
if (list == null) {
|
|
674
|
-
return;
|
|
675
|
-
}
|
|
676
|
-
const entry = list.find((item) => item.id === id);
|
|
677
|
-
if (entry == null) {
|
|
678
|
-
return;
|
|
679
|
-
}
|
|
680
|
-
entry.kind = kind;
|
|
681
|
-
if (entityIds != null) {
|
|
682
|
-
entry.entityIds = entityIds;
|
|
683
|
-
}
|
|
684
|
-
},
|
|
685
|
-
removeSyntheticAiCfoAnswer(draft, action) {
|
|
686
|
-
const { chatSessionId, id } = action.payload;
|
|
687
|
-
const list = draft.syntheticAnswersByChatSessionId[chatSessionId];
|
|
688
|
-
if (list == null) {
|
|
689
|
-
return;
|
|
690
|
-
}
|
|
691
|
-
draft.syntheticAnswersByChatSessionId[chatSessionId] = list.filter((item) => item.id !== id);
|
|
692
|
-
},
|
|
693
|
-
clearSyntheticAiCfoAnswers(draft, action) {
|
|
694
|
-
delete draft.syntheticAnswersByChatSessionId[action.payload];
|
|
695
|
-
},
|
|
696
463
|
clearSession(draft, action) {
|
|
697
464
|
const sessionId = action.payload;
|
|
698
465
|
delete draft.aiCfoByChatSessionId[sessionId];
|
|
699
|
-
|
|
466
|
+
// Clear partial Q&A if it belongs to the cleared session
|
|
700
467
|
if (draft.partialQuestionAnswers?.[sessionId] != null) {
|
|
701
468
|
draft.partialQuestionAnswers[sessionId] = undefined;
|
|
702
469
|
}
|
|
@@ -704,7 +471,6 @@ const aiCfo = (0, toolkit_1.createSlice)({
|
|
|
704
471
|
clearAiCfo(draft) {
|
|
705
472
|
draft.aiCfoByChatSessionId = {};
|
|
706
473
|
draft.partialQuestionAnswers = {};
|
|
707
|
-
draft.syntheticAnswersByChatSessionId = {};
|
|
708
474
|
},
|
|
709
475
|
deleteQuestion(draft, action) {
|
|
710
476
|
const { chatSessionId, questionAnswerId } = action.payload;
|
|
@@ -717,12 +483,6 @@ const aiCfo = (0, toolkit_1.createSlice)({
|
|
|
717
483
|
if (idx !== -1) {
|
|
718
484
|
session.questionAnswers.splice(idx, 1);
|
|
719
485
|
}
|
|
720
|
-
// Drop synthetic bubbles whose sourceQuestionAnswerId is the deleted Q/A; otherwise "Creating…" / "Created" tiles outlive their Q/A.
|
|
721
|
-
const syntheticAnswers = draft.syntheticAnswersByChatSessionId[chatSessionId];
|
|
722
|
-
if (syntheticAnswers != null) {
|
|
723
|
-
draft.syntheticAnswersByChatSessionId[chatSessionId] =
|
|
724
|
-
syntheticAnswers.filter((answer) => answer.sourceQuestionAnswerId !== questionAnswerId);
|
|
725
|
-
}
|
|
726
486
|
},
|
|
727
487
|
},
|
|
728
488
|
});
|
|
@@ -735,5 +495,5 @@ const toChatSession = (chatSessionPayload) => {
|
|
|
735
495
|
createdAt: (0, zeniDayJS_1.date)(created_at),
|
|
736
496
|
};
|
|
737
497
|
};
|
|
738
|
-
_a = aiCfo.actions, exports.setNewSession = _a.setNewSession, exports.clearSession = _a.clearSession, exports.setSessions = _a.setSessions, exports.setChatHistory = _a.setChatHistory, exports.upsertAnswerPayload = _a.upsertAnswerPayload, exports.upsertOrAddQuestionAnswerPayload = _a.upsertOrAddQuestionAnswerPayload, exports.addQuestionPayload = _a.addQuestionPayload, exports.clearAiCfo = _a.clearAiCfo, exports.deleteQuestion = _a.deleteQuestion
|
|
498
|
+
_a = aiCfo.actions, exports.setNewSession = _a.setNewSession, exports.clearSession = _a.clearSession, exports.setSessions = _a.setSessions, exports.setChatHistory = _a.setChatHistory, exports.upsertAnswerPayload = _a.upsertAnswerPayload, exports.upsertOrAddQuestionAnswerPayload = _a.upsertOrAddQuestionAnswerPayload, exports.addQuestionPayload = _a.addQuestionPayload, exports.clearAiCfo = _a.clearAiCfo, exports.deleteQuestion = _a.deleteQuestion;
|
|
739
499
|
exports.default = aiCfo.reducer;
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { ID } from '../../commonStateTypes/common';
|
|
2
|
-
import { AiCfoQuestionWithAnswer, AiCfoState, ChatSession
|
|
2
|
+
import { AiCfoQuestionWithAnswer, AiCfoState, ChatSession } from './aiCfoState';
|
|
3
3
|
export declare function getAllQuestionAnswersForChatSession(state: AiCfoState, chatSessionId: ID): AiCfoQuestionWithAnswer[];
|
|
4
4
|
export declare function getQuestionAnswerByIdForChatSession(state: AiCfoState, chatSessionId: ID, questionAnswerId: ID): AiCfoQuestionWithAnswer | undefined;
|
|
5
5
|
export declare function getAllQuestionsForChatSession(state: AiCfoState, chatSessionId: ID): string[];
|
|
6
6
|
export interface AiCfoSelectorView {
|
|
7
7
|
allSessionsWithOrderedQuestionAnswers: ChatSessionWithOrderedQuestionAnswers[];
|
|
8
|
-
syntheticAnswersByChatSessionId: Record<ID, SyntheticAiCfoAnswer[]>;
|
|
9
8
|
}
|
|
10
9
|
export interface ChatSessionWithOrderedQuestionAnswers {
|
|
11
10
|
chatSession: ChatSession;
|
|
12
11
|
questionAnswers: AiCfoQuestionWithAnswer[];
|
|
13
12
|
}
|
|
14
13
|
export declare function getAiCfoSelectorView(state: AiCfoState): AiCfoSelectorView;
|
|
15
|
-
export declare function getSyntheticAiCfoAnswersForChatSession(state: AiCfoState, chatSessionId: ID): SyntheticAiCfoAnswer[];
|
|
16
|
-
export declare function getSyntheticAiCfoAnswerByQuestionAnswerId(state: AiCfoState, chatSessionId: ID, questionAnswerId: ID): SyntheticAiCfoAnswer | undefined;
|
|
@@ -4,8 +4,6 @@ exports.getAllQuestionAnswersForChatSession = getAllQuestionAnswersForChatSessio
|
|
|
4
4
|
exports.getQuestionAnswerByIdForChatSession = getQuestionAnswerByIdForChatSession;
|
|
5
5
|
exports.getAllQuestionsForChatSession = getAllQuestionsForChatSession;
|
|
6
6
|
exports.getAiCfoSelectorView = getAiCfoSelectorView;
|
|
7
|
-
exports.getSyntheticAiCfoAnswersForChatSession = getSyntheticAiCfoAnswersForChatSession;
|
|
8
|
-
exports.getSyntheticAiCfoAnswerByQuestionAnswerId = getSyntheticAiCfoAnswerByQuestionAnswerId;
|
|
9
7
|
function getAllQuestionAnswersForChatSession(state, chatSessionId) {
|
|
10
8
|
const arr = state.aiCfoByChatSessionId[chatSessionId]?.questionAnswers ?? [];
|
|
11
9
|
return arr
|
|
@@ -40,21 +38,5 @@ function getAiCfoSelectorView(state) {
|
|
|
40
38
|
: [],
|
|
41
39
|
}))
|
|
42
40
|
.sort((a, b) => b.chatSession.createdAt.valueOf() - a.chatSession.createdAt.valueOf());
|
|
43
|
-
return {
|
|
44
|
-
allSessionsWithOrderedQuestionAnswers,
|
|
45
|
-
syntheticAnswersByChatSessionId: state.syntheticAnswersByChatSessionId ?? {},
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function getSyntheticAiCfoAnswersForChatSession(state, chatSessionId) {
|
|
49
|
-
const arr = state.syntheticAnswersByChatSessionId?.[chatSessionId] ?? [];
|
|
50
|
-
return arr
|
|
51
|
-
.slice()
|
|
52
|
-
.sort((a, b) => a.createdAt.valueOf() - b.createdAt.valueOf());
|
|
53
|
-
}
|
|
54
|
-
function getSyntheticAiCfoAnswerByQuestionAnswerId(state, chatSessionId, questionAnswerId) {
|
|
55
|
-
const arr = state.syntheticAnswersByChatSessionId?.[chatSessionId];
|
|
56
|
-
if (arr == null) {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
return arr.find((answer) => answer.sourceQuestionAnswerId === questionAnswerId);
|
|
41
|
+
return { allSessionsWithOrderedQuestionAnswers };
|
|
60
42
|
}
|
|
@@ -9,13 +9,9 @@ export interface AiCfoAnswerParagraph {
|
|
|
9
9
|
}>;
|
|
10
10
|
}
|
|
11
11
|
export declare const ALL_AI_CFO_CHARTS_TYPES: readonly ["bar_chart", "pie_chart", "line_chart"];
|
|
12
|
-
export declare const ALL_AI_CFO_VISUALIZATION_TYPES: readonly ["bar_chart", "pie_chart", "line_chart", "table"
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const toInteractiveFormTypeStrict: (v: string) => "cards_creation" | "card_policy" | undefined;
|
|
16
|
-
export type InteractiveFormType = ReturnType<typeof toInteractiveFormType>;
|
|
17
|
-
export declare const toAiCfoVisualizationType: (v: string) => "bar_chart" | "pie_chart" | "line_chart" | "table" | "interactive_form";
|
|
18
|
-
export declare const toAiCfoVisualizationTypeStrict: (v: string) => "bar_chart" | "pie_chart" | "line_chart" | "table" | "interactive_form" | undefined;
|
|
12
|
+
export declare const ALL_AI_CFO_VISUALIZATION_TYPES: readonly ["bar_chart", "pie_chart", "line_chart", "table"];
|
|
13
|
+
export declare const toAiCfoVisualizationType: (v: string) => "bar_chart" | "pie_chart" | "line_chart" | "table";
|
|
14
|
+
export declare const toAiCfoVisualizationTypeStrict: (v: string) => "bar_chart" | "pie_chart" | "line_chart" | "table" | undefined;
|
|
19
15
|
export type AiCfoVisualizationType = ReturnType<typeof toAiCfoVisualizationType>;
|
|
20
16
|
export declare const toAiCfoChartType: (v: string) => "bar_chart" | "pie_chart" | "line_chart";
|
|
21
17
|
export declare const toAiCfoChartTypeStrict: (v: string) => "bar_chart" | "pie_chart" | "line_chart" | undefined;
|
|
@@ -57,87 +53,8 @@ export interface ChartVisualization {
|
|
|
57
53
|
lines?: string[];
|
|
58
54
|
yFormat?: YFormat;
|
|
59
55
|
}
|
|
60
|
-
export type CardsCardKind = 'vendor' | 'class' | 'category';
|
|
61
|
-
export interface CardNameOption {
|
|
62
|
-
id: string;
|
|
63
|
-
kind: CardsCardKind;
|
|
64
|
-
label: string;
|
|
65
|
-
}
|
|
66
|
-
export interface CardsCreationCommonData {
|
|
67
|
-
cardNameOptions: CardNameOption[];
|
|
68
|
-
suggestedOwnerUserIdByTeamId: Record<string, ID | undefined>;
|
|
69
|
-
}
|
|
70
|
-
export type CardsCreationInitialData = (CardsCreationCommonData & {
|
|
71
|
-
mode: 'review';
|
|
72
|
-
teamRows: Array<{
|
|
73
|
-
avgMonthlySpend: string;
|
|
74
|
-
cardKind: CardsCardKind;
|
|
75
|
-
id: string;
|
|
76
|
-
label: string;
|
|
77
|
-
recommendedLimit: string;
|
|
78
|
-
recommendedLimitCadence?: string;
|
|
79
|
-
}>;
|
|
80
|
-
}) | (CardsCreationCommonData & {
|
|
81
|
-
cardRows: Array<{
|
|
82
|
-
cardKind: CardsCardKind;
|
|
83
|
-
id: string;
|
|
84
|
-
label: string;
|
|
85
|
-
recommendedLimit?: number;
|
|
86
|
-
suggestedOwnerUserId?: ID;
|
|
87
|
-
}>;
|
|
88
|
-
mode: 'create';
|
|
89
|
-
});
|
|
90
|
-
export interface CardPolicyDraftPolicyEntity {
|
|
91
|
-
categoryCodes: string[];
|
|
92
|
-
merchantNames: string[];
|
|
93
|
-
}
|
|
94
|
-
export interface CardPolicySpendLimits {
|
|
95
|
-
transaction: number;
|
|
96
|
-
}
|
|
97
|
-
export interface CardPolicyDraftPolicy {
|
|
98
|
-
allowedEntity: CardPolicyDraftPolicyEntity;
|
|
99
|
-
applyToCards: string[];
|
|
100
|
-
blockedEntity: CardPolicyDraftPolicyEntity;
|
|
101
|
-
description: string;
|
|
102
|
-
id: string;
|
|
103
|
-
mode: string;
|
|
104
|
-
name: string;
|
|
105
|
-
requiredReceiptThreshold: number;
|
|
106
|
-
spendLimits: CardPolicySpendLimits;
|
|
107
|
-
}
|
|
108
|
-
export interface CardPolicyStep5Review {
|
|
109
|
-
draftPolicies: CardPolicyDraftPolicy[];
|
|
110
|
-
groupingSource: string;
|
|
111
|
-
prompt: string;
|
|
112
|
-
}
|
|
113
|
-
export interface CardPolicyWizardPlan {
|
|
114
|
-
step5Review: CardPolicyStep5Review;
|
|
115
|
-
}
|
|
116
|
-
export interface CardPolicyUploadSource {
|
|
117
|
-
confidenceScore: number;
|
|
118
|
-
fileName: string;
|
|
119
|
-
lowConfidenceFields: string[];
|
|
120
|
-
}
|
|
121
|
-
export type CardPolicyInitialData = {
|
|
122
|
-
policyKind: 'auto';
|
|
123
|
-
wizardPlan: CardPolicyWizardPlan;
|
|
124
|
-
} | {
|
|
125
|
-
policyKind: 'guided';
|
|
126
|
-
wizardPlan: CardPolicyWizardPlan;
|
|
127
|
-
} | {
|
|
128
|
-
policyKind: 'upload';
|
|
129
|
-
source?: CardPolicyUploadSource;
|
|
130
|
-
wizardPlan?: CardPolicyWizardPlan;
|
|
131
|
-
};
|
|
132
|
-
export type InteractiveFormVisualization = {
|
|
133
|
-
formType: 'cards_creation';
|
|
134
|
-
payload: CardsCreationInitialData;
|
|
135
|
-
} | {
|
|
136
|
-
formType: 'card_policy';
|
|
137
|
-
payload: CardPolicyInitialData;
|
|
138
|
-
};
|
|
139
56
|
export interface AiCfoVisualization {
|
|
140
|
-
data: TableVisualization | ChartVisualization
|
|
57
|
+
data: TableVisualization | ChartVisualization;
|
|
141
58
|
type: AiCfoVisualizationType;
|
|
142
59
|
}
|
|
143
60
|
export declare const toMessageSender: (v: string) => "user" | "agent";
|
|
@@ -196,17 +113,7 @@ export interface ChatSessionWithMessages {
|
|
|
196
113
|
chatSession: ChatSession;
|
|
197
114
|
questionAnswers: AiCfoQuestionWithAnswer[];
|
|
198
115
|
}
|
|
199
|
-
export declare const ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS: readonly ["creating_cards", "creating_policy", "created_cards", "created_policy"];
|
|
200
|
-
export type SyntheticAiCfoAnswerKind = (typeof ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS)[number];
|
|
201
|
-
export interface SyntheticAiCfoAnswer {
|
|
202
|
-
createdAt: ZeniDate;
|
|
203
|
-
entityIds: ID[];
|
|
204
|
-
id: ID;
|
|
205
|
-
kind: SyntheticAiCfoAnswerKind;
|
|
206
|
-
sourceQuestionAnswerId: ID;
|
|
207
|
-
}
|
|
208
116
|
export interface AiCfoState {
|
|
209
117
|
aiCfoByChatSessionId: Record<ID, ChatSessionWithMessages>;
|
|
210
118
|
partialQuestionAnswers: Record<ID, AiCfoQuestionWithAnswer | undefined>;
|
|
211
|
-
syntheticAnswersByChatSessionId: Record<ID, SyntheticAiCfoAnswer[]>;
|
|
212
119
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.toMessageTypeStrict = exports.toMessageSenderStrict = exports.toMessageType = exports.toMessageSender = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateType = exports.toYFormatScaleStrict = exports.toYFormatUnitStrict = exports.toYFormatTypeStrict = exports.toYFormatScale = exports.toYFormatUnit = exports.toYFormatType = exports.ALL_Y_FORMAT_SCALES = exports.ALL_Y_FORMAT_NON_CURRENCY_UNITS = exports.ALL_Y_FORMAT_TYPES = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = void 0;
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
exports.ALL_AI_CFO_CHARTS_TYPES = [
|
|
6
6
|
'bar_chart',
|
|
@@ -10,16 +10,7 @@ exports.ALL_AI_CFO_CHARTS_TYPES = [
|
|
|
10
10
|
exports.ALL_AI_CFO_VISUALIZATION_TYPES = [
|
|
11
11
|
...exports.ALL_AI_CFO_CHARTS_TYPES,
|
|
12
12
|
'table',
|
|
13
|
-
'interactive_form',
|
|
14
13
|
];
|
|
15
|
-
exports.ALL_INTERACTIVE_FORM_TYPES = [
|
|
16
|
-
'cards_creation',
|
|
17
|
-
'card_policy',
|
|
18
|
-
];
|
|
19
|
-
const toInteractiveFormType = (v) => (0, stringToUnion_1.stringToUnion)(v, exports.ALL_INTERACTIVE_FORM_TYPES);
|
|
20
|
-
exports.toInteractiveFormType = toInteractiveFormType;
|
|
21
|
-
const toInteractiveFormTypeStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v, exports.ALL_INTERACTIVE_FORM_TYPES);
|
|
22
|
-
exports.toInteractiveFormTypeStrict = toInteractiveFormTypeStrict;
|
|
23
14
|
const toAiCfoVisualizationType = (v) => (0, stringToUnion_1.stringToUnion)(v, exports.ALL_AI_CFO_VISUALIZATION_TYPES);
|
|
24
15
|
exports.toAiCfoVisualizationType = toAiCfoVisualizationType;
|
|
25
16
|
const toAiCfoVisualizationTypeStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v, exports.ALL_AI_CFO_VISUALIZATION_TYPES);
|
|
@@ -88,11 +79,3 @@ const toMessageSenderStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v,
|
|
|
88
79
|
exports.toMessageSenderStrict = toMessageSenderStrict;
|
|
89
80
|
const toMessageTypeStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v, ALL_MESSAGE_TYPES);
|
|
90
81
|
exports.toMessageTypeStrict = toMessageTypeStrict;
|
|
91
|
-
// Client-synthesized AI CFO answer bubbles (Creating…/Created) pushed when the user
|
|
92
|
-
// submits an interactive form; not streamed from the backend.
|
|
93
|
-
exports.ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS = [
|
|
94
|
-
'creating_cards',
|
|
95
|
-
'creating_policy',
|
|
96
|
-
'created_cards',
|
|
97
|
-
'created_policy',
|
|
98
|
-
];
|
|
@@ -16,7 +16,6 @@ export interface JEScheduleOtherAttributesPayload {
|
|
|
16
16
|
export interface JEScheduleAISummaryFieldPayload {
|
|
17
17
|
confidence: number;
|
|
18
18
|
reasoning: string;
|
|
19
|
-
cot?: string[];
|
|
20
19
|
predicted_value?: number | string;
|
|
21
20
|
}
|
|
22
21
|
export interface JEScheduleAISummariesPayload {
|