@zeniai/client-epic-state 5.2.32 → 5.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/lib/commonPayloadTypes/classesView/reportByClassPayloadV2.d.ts +13 -1
  2. package/lib/entity/sectionClassesViewV2/sectionClassesViewEpic.js +10 -7
  3. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +3 -3
  4. package/lib/entity/sectionProjectView/sectionProjectViewEpic.js +6 -2
  5. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +3 -3
  6. package/lib/entity/sectionProjectView/sectionProjectViewReducer.js +4 -3
  7. package/lib/epic.js +12 -0
  8. package/lib/esm/entity/class/classReducer.js +1 -1
  9. package/lib/esm/entity/sectionClassesViewV2/sectionClassesViewEpic.js +10 -7
  10. package/lib/esm/entity/sectionProjectView/sectionProjectViewEpic.js +6 -2
  11. package/lib/esm/entity/sectionProjectView/sectionProjectViewReducer.js +5 -4
  12. package/lib/esm/epic.js +12 -0
  13. package/lib/esm/index.js +2 -2
  14. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +266 -1
  15. package/lib/esm/view/aiCfoView/aiCfoViewSelector.js +50 -0
  16. package/lib/esm/view/aiCfoView/epics/deleteRoutineEpic.js +35 -0
  17. package/lib/esm/view/aiCfoView/epics/fetchRoutineRunsEpic.js +35 -0
  18. package/lib/esm/view/aiCfoView/epics/fetchRoutinesEpic.js +37 -0
  19. package/lib/esm/view/aiCfoView/epics/runRoutineEpic.js +34 -0
  20. package/lib/esm/view/aiCfoView/epics/saveRoutineEpic.js +65 -0
  21. package/lib/esm/view/aiCfoView/epics/setRoutineEnabledEpic.js +28 -0
  22. package/lib/esm/view/aiCfoView/epics/toRoutine.js +64 -0
  23. package/lib/esm/view/aiCfoView/epics/toRoutineRun.js +42 -0
  24. package/lib/esm/view/expenseAutomationView/selectors/fluxAnalysisViewSelector.js +12 -10
  25. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +3 -11
  26. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +10 -11
  27. package/lib/index.d.ts +3 -3
  28. package/lib/index.js +55 -40
  29. package/lib/view/aiCfoView/aiCfoViewPayload.d.ts +90 -0
  30. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +164 -123
  31. package/lib/view/aiCfoView/aiCfoViewReducer.js +268 -3
  32. package/lib/view/aiCfoView/aiCfoViewSelector.d.ts +13 -1
  33. package/lib/view/aiCfoView/aiCfoViewSelector.js +55 -0
  34. package/lib/view/aiCfoView/aiCfoViewState.d.ts +157 -0
  35. package/lib/view/aiCfoView/epics/deleteRoutineEpic.d.ts +18 -0
  36. package/lib/view/aiCfoView/epics/deleteRoutineEpic.js +39 -0
  37. package/lib/view/aiCfoView/epics/fetchRoutineRunsEpic.d.ts +13 -0
  38. package/lib/view/aiCfoView/epics/fetchRoutineRunsEpic.js +39 -0
  39. package/lib/view/aiCfoView/epics/fetchRoutinesEpic.d.ts +7 -0
  40. package/lib/view/aiCfoView/epics/fetchRoutinesEpic.js +41 -0
  41. package/lib/view/aiCfoView/epics/runRoutineEpic.d.ts +14 -0
  42. package/lib/view/aiCfoView/epics/runRoutineEpic.js +38 -0
  43. package/lib/view/aiCfoView/epics/saveRoutineEpic.d.ts +13 -0
  44. package/lib/view/aiCfoView/epics/saveRoutineEpic.js +69 -0
  45. package/lib/view/aiCfoView/epics/setRoutineEnabledEpic.d.ts +15 -0
  46. package/lib/view/aiCfoView/epics/setRoutineEnabledEpic.js +32 -0
  47. package/lib/view/aiCfoView/epics/toRoutine.d.ts +17 -0
  48. package/lib/view/aiCfoView/epics/toRoutine.js +69 -0
  49. package/lib/view/aiCfoView/epics/toRoutineRun.d.ts +12 -0
  50. package/lib/view/aiCfoView/epics/toRoutineRun.js +47 -0
  51. package/lib/view/cashFlowClassesView/cashFlowClassesViewPayload.d.ts +4 -4
  52. package/lib/view/cashFlowProjectView/cashFlowProjectViewPayload.d.ts +4 -4
  53. package/lib/view/expenseAutomationView/selectors/fluxAnalysisViewSelector.js +12 -10
  54. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +3 -11
  55. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +10 -11
  56. package/lib/view/profitAndLossProjectView/profitAndLossProjectViewPayload.d.ts +12 -0
  57. package/package.json +1 -1
@@ -139,4 +139,94 @@ export type FetchSkillVersionsResponse = ZeniAPIResponse<SkillVersionListDataPay
139
139
  /** Create and update both answer with the same shape a detail read returns. */
140
140
  export type SaveSkillResponse = ZeniAPIResponse<SkillDetailDataPayload>;
141
141
  export type FetchSkillDetailResponse = ZeniAPIResponse<SkillDetailDataPayload>;
142
+ /**
143
+ * One routine as the server sends it, from GET/POST/PUT /1.0/routines.
144
+ *
145
+ * Every field past the identity trio is optional here because the mapper is the
146
+ * only place that decides what a missing one means. Typing them required would
147
+ * let a `?? fallback` sit beside a field the compiler believed was always
148
+ * present — each silently claiming the other is wrong.
149
+ */
150
+ export interface RoutinePayload {
151
+ name: string;
152
+ schedule_id: string;
153
+ consecutive_failures?: number;
154
+ day_of_month?: number | null;
155
+ enabled?: boolean;
156
+ hour?: number;
157
+ is_ad_hoc?: boolean;
158
+ last_run_at?: string | null;
159
+ last_status?: string | null;
160
+ /**
161
+ * Absent on a routine whose skill was deleted, which the mapper turns into
162
+ * "" and the detail page reports. Typed required, it was the exact thing the
163
+ * note above warns against: `toRoutine` fell back with `?? ''`, the guard
164
+ * deliberately did not require it, and a test had to cast to build one — all
165
+ * three disagreeing with the type.
166
+ */
167
+ macro_id?: string | null;
168
+ minute?: number;
169
+ next_run_at?: string | null;
170
+ pinned_version?: number | null;
171
+ recurrence?: string;
172
+ session_id?: string | null;
173
+ tz_name?: string;
174
+ unread_runs?: number;
175
+ weekday?: number | null;
176
+ }
177
+ export interface RoutineListDataPayload {
178
+ max_routines?: number;
179
+ routines?: RoutinePayload[];
180
+ routines_enabled?: boolean;
181
+ }
182
+ /**
183
+ * What the client may send. Narrower than a routine: `schedule_id`,
184
+ * `pinned_version` on create, and every run-outcome field are the server's to
185
+ * set, so sending them is a 400 rather than a silent no-op.
186
+ */
187
+ export interface RoutineWritePayload extends Record<string, unknown> {
188
+ hour: number;
189
+ name: string;
190
+ recurrence: string;
191
+ tz_name: string;
192
+ day_of_month?: number;
193
+ enabled?: boolean;
194
+ /** Exactly one of macro_id and prompt. Both, or neither, is refused. */
195
+ macro_id?: string;
196
+ minute?: number;
197
+ prompt?: string;
198
+ weekday?: number;
199
+ }
200
+ export type FetchRoutinesResponse = ZeniAPIResponse<RoutineListDataPayload>;
201
+ /** Create and update both answer with a single routine. */
202
+ export type SaveRoutineResponse = ZeniAPIResponse<RoutinePayload>;
203
+ /**
204
+ * The answer to a Run-now. `status` is 'queued', or 'already_running' when the
205
+ * same routine was already started this minute — both are 200s, and neither
206
+ * carries the routine.
207
+ */
208
+ export interface RunRoutineDataPayload {
209
+ run_id?: string;
210
+ schedule_id?: string;
211
+ status?: string;
212
+ }
213
+ export type RunRoutineResponse = ZeniAPIResponse<RunRoutineDataPayload>;
214
+ /** One past or in-flight run, as GET /1.0/routines/{id}/runs returns it. */
215
+ export interface RoutineRunPayload {
216
+ run_id: string;
217
+ attempt?: number;
218
+ error?: string | null;
219
+ finished_at?: string | null;
220
+ is_manual?: boolean;
221
+ question_answer_id?: string | null;
222
+ scheduled_for?: string | null;
223
+ session_id?: string | null;
224
+ started_at?: string | null;
225
+ status?: string;
226
+ }
227
+ export interface RoutineRunsDataPayload {
228
+ runs?: RoutineRunPayload[];
229
+ session_id?: string | null;
230
+ }
231
+ export type RoutineRunsResponse = ZeniAPIResponse<RoutineRunsDataPayload>;
142
232
  export {};
@@ -5,51 +5,23 @@ import { ChatSessionPayload } from '../../entity/aiCfo/aiCfoPayload';
5
5
  import { AiCfoAnswerResponseType } from '../../entity/aiCfo/aiCfoState';
6
6
  import { ZeniAPIStatus } from '../../responsePayload';
7
7
  import { ContextStatus, FeedbackType, SubmitFeedbackPayload } from './aiCfoViewPayload';
8
- import { AiCfoViewState, Skill, SkillDetail, SkillDraft, SkillVersion, SkillVisibility } from './aiCfoViewState';
8
+ import { AiCfoViewState, Routine, RoutineDraft, RoutineRun, Skill, SkillDetail, SkillDraft, SkillVersion, SkillVisibility } from './aiCfoViewState';
9
9
  export declare const initialAiCfoViewState: AiCfoViewState;
10
- export declare const submitQuestion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[sessionId: string, questionAnswerId: string, userId: string, questionId: string, createdAt: import("dayjs").Dayjs, question: string, files?: File[] | undefined, macroId?: string | undefined], {
11
- sessionId: string;
12
- questionAnswerId: string;
13
- userId: string;
14
- questionId: string;
15
- createdAt: import("dayjs").Dayjs;
16
- question: string;
17
- files: File[] | undefined;
18
- macroId: string | undefined;
19
- }, "aiCfoView/submitQuestion", never, never>, submitQuestionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "aiCfoView/submitQuestionSuccess">, submitQuestionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
20
- error: ZeniAPIStatus;
21
- sessionId: ID;
22
- }, "aiCfoView/submitQuestionFailure">, updateResponseState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
10
+ export declare const acceptMasterTOS: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userRoleId: string], {
11
+ userRoleId: string;
12
+ }, "aiCfoView/acceptMasterTOS", never, never>, acceptMasterTOSFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/acceptMasterTOSFailure">, acceptMasterTOSSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/acceptMasterTOSSuccess">, applyAiCfoSidePanelHostPageTransition: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
13
+ newAiCfoSidePanelHostPageKey: string;
14
+ /** When omitted or null, clears the active session (empty / suggested questions). */
15
+ nextCurrentChatSessionId?: ID | null;
16
+ }, "aiCfoView/applyAiCfoSidePanelHostPageTransition">, clearAiCfoSidePanelHostPageContext: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearAiCfoSidePanelHostPageContext">, clearCurrentSessionId: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearCurrentSessionId">, clearDeleteChatSessionStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
23
17
  chatSessionId: ID;
24
- fetchState: FetchStateAndError;
25
- responseType: AiCfoAnswerResponseType;
26
- }, "aiCfoView/updateResponseState">, updateAiCfoViewScrollPosition: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "aiCfoView/updateAiCfoViewScrollPosition">, updateCurrentInput: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "aiCfoView/updateCurrentInput">, submitFeedback: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string, chatMessageId: string, feedbackType: FeedbackType, questionText?: string | undefined, answerText?: string | undefined, model?: string | undefined], SubmitFeedbackPayload, "aiCfoView/submitFeedback", never, never>, submitFeedbackSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatMessageId: string], {
27
- chatMessageId: string;
28
- }, "aiCfoView/submitFeedbackSuccess", never, never>, submitFeedbackFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatMessageId: string, error: ZeniAPIStatus<Record<string, unknown>>], {
29
- chatMessageId: string;
30
- error: ZeniAPIStatus<Record<string, unknown>>;
31
- }, "aiCfoView/submitFeedbackFailure", never, never>, setSession: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
32
- agentId: string;
33
- sessionId: string;
34
- /**
35
- * Set only by the side-panel host-page sync, which re-applies a page's saved
36
- * session rather than acting on a user's choice. Such a restore can fire at any
37
- * time — when the sessions list resolves, say — including while the user is
38
- * deliberately looking at the Skills browser, so it must not close it.
39
- */
40
- isRestore?: boolean;
41
- }, "aiCfoView/setSession">, createSession: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[agentId: string, userId: string, contextRefId?: string | undefined, contextType?: string | undefined, pageContext?: string | undefined], {
18
+ }, "aiCfoView/clearDeleteChatSessionStatus">, clearLastContextMessage: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearLastContextMessage">, clearSkillDetail: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearSkillDetail">, clearSkillMutation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearSkillMutation">, closeRoutineRuns: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/closeRoutineRuns">, closeRoutinesBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/closeRoutinesBrowser">, closeSkillsBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/closeSkillsBrowser">, createSession: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[agentId: string, userId: string, contextRefId?: string | undefined, contextType?: string | undefined, pageContext?: string | undefined], {
42
19
  agentId: string;
43
20
  contextRefId: string | undefined;
44
21
  contextType: string | undefined;
45
22
  pageContext: string | undefined;
46
23
  userId: string;
47
- }, "aiCfoView/createSession", never, never>, createSessionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
48
- agentId: string;
49
- sessionId: ID;
50
- contextMessage?: string;
51
- contextStatus?: ContextStatus;
52
- }, "aiCfoView/createSessionSuccess">, createSessionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/createSessionFailure">, createSessionAndSubmit: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[agentId: string, userId: string, questionAnswerId: string, questionId: string, createdAt: import("dayjs").Dayjs, question: string, files?: File[] | undefined, pageContext?: string | undefined, macroId?: string | undefined], {
24
+ }, "aiCfoView/createSession", never, never>, createSessionAndSubmit: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[agentId: string, userId: string, questionAnswerId: string, questionId: string, createdAt: import("dayjs").Dayjs, question: string, files?: File[] | undefined, pageContext?: string | undefined, macroId?: string | undefined], {
53
25
  agentId: string;
54
26
  userId: string;
55
27
  questionAnswerId: string;
@@ -59,133 +31,202 @@ export declare const submitQuestion: import("@reduxjs/toolkit").ActionCreatorWit
59
31
  files: File[] | undefined;
60
32
  pageContext: string | undefined;
61
33
  macroId: string | undefined;
62
- }, "aiCfoView/createSessionAndSubmit", never, never>, initializeNewSessionState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
34
+ }, "aiCfoView/createSessionAndSubmit", never, never>, createSessionAndSubmitFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/createSessionAndSubmitFailure">, createSessionAndSubmitSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/createSessionAndSubmitSuccess">, createSessionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/createSessionFailure">, createSessionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
63
35
  agentId: string;
64
36
  sessionId: ID;
65
- }, "aiCfoView/initializeNewSessionState">, createSessionAndSubmitSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/createSessionAndSubmitSuccess">, createSessionAndSubmitFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/createSessionAndSubmitFailure">, fetchChatSessionsForUser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/fetchChatSessionsForUser">, fetchChatSessionsForUserSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
66
- nextPageToken: PageToken;
67
- sessions: ChatSessionPayload[];
68
- }, "aiCfoView/fetchChatSessionsForUserSuccess">, fetchChatSessionsForUserFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchChatSessionsForUserFailure">, fetchChatHistory: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string, userId: string], {
69
- chatSessionId: string;
70
- userId: string;
71
- }, "aiCfoView/fetchChatHistory", never, never>, fetchChatHistorySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
72
- chatSessionId: ID;
73
- nextPageToken: PageToken;
74
- }, "aiCfoView/fetchChatHistorySuccess">, fetchChatHistoryFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
75
- chatSessionId: ID;
76
- error: ZeniAPIStatus;
77
- }, "aiCfoView/fetchChatHistoryFailure">, clearCurrentSessionId: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearCurrentSessionId">, clearLastContextMessage: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearLastContextMessage">, stopSubmit: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
37
+ contextMessage?: string;
38
+ contextStatus?: ContextStatus;
39
+ }, "aiCfoView/createSessionSuccess">, deleteChatSession: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
78
40
  chatSessionId: string;
79
- }, "aiCfoView/stopSubmit", never, never>, stopSubmitSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
80
- chatSessionId: ID;
81
- isOnlyQuestionInSession: boolean;
82
- question: string;
83
- }, "aiCfoView/stopSubmitSuccess">, stopSubmitFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
41
+ }, "aiCfoView/deleteChatSession", never, never>, deleteChatSessionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
84
42
  chatSessionId: ID;
85
43
  error: ZeniAPIStatus;
86
- }, "aiCfoView/stopSubmitFailure">, stopSubmitQuestion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
87
- chatSessionId: string;
88
- }, "aiCfoView/stopSubmitQuestion", never, never>, stopSubmitQuestionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
89
- chatSessionId: ID;
90
- isOnlyQuestionInSession: boolean;
91
- question: string;
92
- }, "aiCfoView/stopSubmitQuestionSuccess">, stopSubmitQuestionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
+ }, "aiCfoView/deleteChatSessionFailure">, deleteChatSessionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
93
45
  chatSessionId: ID;
94
- error: ZeniAPIStatus;
95
- }, "aiCfoView/stopSubmitQuestionFailure">, acceptMasterTOS: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userRoleId: string], {
96
- userRoleId: string;
97
- }, "aiCfoView/acceptMasterTOS", never, never>, acceptMasterTOSSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/acceptMasterTOSSuccess">, acceptMasterTOSFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/acceptMasterTOSFailure">, deleteChatSession: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
46
+ }, "aiCfoView/deleteChatSessionSuccess">, deleteRoutine: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
47
+ scheduleId: string;
48
+ }], {
49
+ scheduleId: string;
50
+ }, "aiCfoView/deleteRoutine", never, never>, deleteRoutineFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
51
+ scheduleId: string;
52
+ status: ZeniAPIStatus;
53
+ }, "aiCfoView/deleteRoutineFailure">, deleteRoutineSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
54
+ scheduleId: string;
55
+ }, "aiCfoView/deleteRoutineSuccess">, deleteSkill: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
56
+ macroId: string;
57
+ }], {
58
+ macroId: string;
59
+ }, "aiCfoView/deleteSkill", never, never>, deleteSkillFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/deleteSkillFailure">, deleteSkillSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
60
+ macroId: string;
61
+ }, "aiCfoView/deleteSkillSuccess">, fetchChatHistory: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string, userId: string], {
98
62
  chatSessionId: string;
99
- }, "aiCfoView/deleteChatSession", never, never>, deleteChatSessionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
100
- chatSessionId: ID;
101
- }, "aiCfoView/deleteChatSessionSuccess">, deleteChatSessionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
63
+ userId: string;
64
+ }, "aiCfoView/fetchChatHistory", never, never>, fetchChatHistoryFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
102
65
  chatSessionId: ID;
103
66
  error: ZeniAPIStatus;
104
- }, "aiCfoView/deleteChatSessionFailure">, clearDeleteChatSessionStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
67
+ }, "aiCfoView/fetchChatHistoryFailure">, fetchChatHistorySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
105
68
  chatSessionId: ID;
106
- }, "aiCfoView/clearDeleteChatSessionStatus">, updateCotCollapsedState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
107
- isCollapsed: boolean;
108
- questionAnswerId: ID;
109
- }, "aiCfoView/updateCotCollapsedState">, fetchSuggestedQuestions: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
110
- pageContext: AiCfoSuggestedQuestionsPageContext;
111
- /**
112
- * AI Card Creation flow: when true, the epic appends `&no_card_created=true`
113
- * so the backend tailors prompts for a tenant that has not yet created a
114
- * card. The bucket key is unchanged (`pageContext`); see
115
- * `useFetchSuggestedQuestionsWhenReady` for the refetch-on-flag-flip rule.
116
- */
117
- noCardCreated?: boolean;
118
- }, "aiCfoView/fetchSuggestedQuestions">, fetchSuggestedQuestionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
119
- generatedAt: string;
120
- pageContext: AiCfoSuggestedQuestionsPageContext;
121
- suggestedQuestions: string[];
122
- }, "aiCfoView/fetchSuggestedQuestionsSuccess">, fetchSuggestedQuestionsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
69
+ nextPageToken: PageToken;
70
+ }, "aiCfoView/fetchChatHistorySuccess">, fetchChatSessionsForUser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/fetchChatSessionsForUser">, fetchChatSessionsForUserFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchChatSessionsForUserFailure">, fetchChatSessionsForUserSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
71
+ nextPageToken: PageToken;
72
+ sessions: ChatSessionPayload[];
73
+ }, "aiCfoView/fetchChatSessionsForUserSuccess">, fetchRoutineRuns: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
74
+ scheduleId: string;
75
+ }], {
76
+ scheduleId: string;
77
+ }, "aiCfoView/fetchRoutineRuns", never, never>, fetchRoutineRunsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchRoutineRunsFailure">, fetchRoutineRunsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
78
+ runs: RoutineRun[];
79
+ scheduleId: string;
80
+ sessionId: string | null;
81
+ }], {
82
+ runs: RoutineRun[];
83
+ scheduleId: string;
84
+ sessionId: string | null;
85
+ }, "aiCfoView/fetchRoutineRunsSuccess", never, never>, fetchRoutines: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/fetchRoutines">, fetchRoutinesFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchRoutinesFailure">, fetchRoutinesSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
86
+ maxRoutines: number;
87
+ routines: Routine[];
88
+ routinesEnabled: boolean;
89
+ }, "aiCfoView/fetchRoutinesSuccess">, fetchSkillDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
90
+ macroId: string;
91
+ }, "aiCfoView/fetchSkillDetail">, fetchSkillDetailFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
123
92
  error: ZeniAPIStatus;
124
- pageContext: AiCfoSuggestedQuestionsPageContext;
125
- }, "aiCfoView/fetchSuggestedQuestionsFailure">, fetchSkills: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/fetchSkills">, fetchSkillsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
126
- canPublish: boolean;
127
- skills: Skill[];
128
- skillsEnabled: boolean;
129
- }, "aiCfoView/fetchSkillsSuccess">, fetchSkillsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchSkillsFailure">, fetchSkillDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
130
93
  macroId: string;
131
- }, "aiCfoView/fetchSkillDetail">, fetchSkillDetailSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
94
+ }, "aiCfoView/fetchSkillDetailFailure">, fetchSkillDetailSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
132
95
  detail: SkillDetail;
133
96
  macroId: string;
134
- }, "aiCfoView/fetchSkillDetailSuccess">, fetchSkillDetailFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
135
- error: ZeniAPIStatus;
136
- macroId: string;
137
- }, "aiCfoView/fetchSkillDetailFailure">, clearSkillDetail: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearSkillDetail">, clearSkillMutation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearSkillMutation">, deleteSkill: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
138
- macroId: string;
139
- }], {
140
- macroId: string;
141
- }, "aiCfoView/deleteSkill", never, never>, deleteSkillSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
142
- macroId: string;
143
- }, "aiCfoView/deleteSkillSuccess">, deleteSkillFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/deleteSkillFailure">, fetchSkillVersionBody: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
97
+ }, "aiCfoView/fetchSkillDetailSuccess">, fetchSkills: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/fetchSkills">, fetchSkillsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/fetchSkillsFailure">, fetchSkillsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
98
+ canPublish: boolean;
99
+ skills: Skill[];
100
+ skillsEnabled: boolean;
101
+ }, "aiCfoView/fetchSkillsSuccess">, fetchSkillVersionBody: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
144
102
  macroId: string;
145
103
  version: number;
146
104
  }], {
147
105
  macroId: string;
148
106
  version: number;
149
- }, "aiCfoView/fetchSkillVersionBody", never, never>, fetchSkillVersionBodySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
150
- instructions: string;
107
+ }, "aiCfoView/fetchSkillVersionBody", never, never>, fetchSkillVersionBodyFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
108
+ error: ZeniAPIStatus;
151
109
  macroId: string;
152
110
  version: number;
153
- }, "aiCfoView/fetchSkillVersionBodySuccess">, fetchSkillVersionBodyFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
154
- error: ZeniAPIStatus;
111
+ }, "aiCfoView/fetchSkillVersionBodyFailure">, fetchSkillVersionBodySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
112
+ instructions: string;
155
113
  macroId: string;
156
114
  version: number;
157
- }, "aiCfoView/fetchSkillVersionBodyFailure">, fetchSkillVersions: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
115
+ }, "aiCfoView/fetchSkillVersionBodySuccess">, fetchSkillVersions: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
158
116
  macroId: string;
159
117
  }], {
160
118
  macroId: string;
161
- }, "aiCfoView/fetchSkillVersions", never, never>, fetchSkillVersionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
119
+ }, "aiCfoView/fetchSkillVersions", never, never>, fetchSkillVersionsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
120
+ error: ZeniAPIStatus;
121
+ macroId: string;
122
+ }, "aiCfoView/fetchSkillVersionsFailure">, fetchSkillVersionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
162
123
  macroId: string;
163
124
  versions: SkillVersion[];
164
- }, "aiCfoView/fetchSkillVersionsSuccess">, fetchSkillVersionsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
125
+ }, "aiCfoView/fetchSkillVersionsSuccess">, fetchSuggestedQuestions: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
126
+ pageContext: AiCfoSuggestedQuestionsPageContext;
127
+ /**
128
+ * AI Card Creation flow: when true, the epic appends `&no_card_created=true`
129
+ * so the backend tailors prompts for a tenant that has not yet created a
130
+ * card. The bucket key is unchanged (`pageContext`); see
131
+ * `useFetchSuggestedQuestionsWhenReady` for the refetch-on-flag-flip rule.
132
+ */
133
+ noCardCreated?: boolean;
134
+ }, "aiCfoView/fetchSuggestedQuestions">, fetchSuggestedQuestionsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
165
135
  error: ZeniAPIStatus;
166
- macroId: string;
167
- }, "aiCfoView/fetchSkillVersionsFailure">, saveSkill: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
136
+ pageContext: AiCfoSuggestedQuestionsPageContext;
137
+ }, "aiCfoView/fetchSuggestedQuestionsFailure">, fetchSuggestedQuestionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
138
+ generatedAt: string;
139
+ pageContext: AiCfoSuggestedQuestionsPageContext;
140
+ suggestedQuestions: string[];
141
+ }, "aiCfoView/fetchSuggestedQuestionsSuccess">, initializeNewSessionState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
142
+ agentId: string;
143
+ sessionId: ID;
144
+ }, "aiCfoView/initializeNewSessionState">, openRoutinesBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/openRoutinesBrowser">, openSkillsBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/openSkillsBrowser">, runRoutine: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
145
+ scheduleId: string;
146
+ }], {
147
+ scheduleId: string;
148
+ }, "aiCfoView/runRoutine", never, never>, runRoutineFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/runRoutineFailure">, runRoutineSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/runRoutineSuccess">, saveRoutine: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
149
+ draft: RoutineDraft;
150
+ scheduleId?: string;
151
+ }], {
152
+ draft: RoutineDraft;
153
+ scheduleId?: string;
154
+ }, "aiCfoView/saveRoutine", never, never>, saveRoutineFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/saveRoutineFailure">, saveRoutineSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/saveRoutineSuccess">, saveSkill: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
168
155
  draft: SkillDraft;
169
156
  macroId?: string;
170
157
  }], {
171
158
  draft: SkillDraft;
172
159
  macroId?: string;
173
- }, "aiCfoView/saveSkill", never, never>, saveSkillSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
160
+ }, "aiCfoView/saveSkill", never, never>, saveSkillFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/saveSkillFailure">, saveSkillSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
174
161
  detail: SkillDetail;
175
162
  macroId: string;
176
- }, "aiCfoView/saveSkillSuccess">, saveSkillFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/saveSkillFailure">, setSkillVisibility: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
163
+ }, "aiCfoView/saveSkillSuccess">, setRoutineEnabled: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
164
+ enabled: boolean;
165
+ scheduleId: string;
166
+ }], {
167
+ enabled: boolean;
168
+ scheduleId: string;
169
+ }, "aiCfoView/setRoutineEnabled", never, never>, setSession: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
170
+ agentId: string;
171
+ sessionId: string;
172
+ /**
173
+ * Set only by the side-panel host-page sync, which re-applies a page's saved
174
+ * session rather than acting on a user's choice. Such a restore can fire at any
175
+ * time — when the sessions list resolves, say — including while the user is
176
+ * deliberately looking at the Skills browser, so it must not close it.
177
+ */
178
+ isRestore?: boolean;
179
+ }, "aiCfoView/setSession">, setSkillVisibility: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
177
180
  macroId: string;
178
181
  visibility: SkillVisibility;
179
182
  }], {
180
183
  macroId: string;
181
184
  visibility: SkillVisibility;
182
- }, "aiCfoView/setSkillVisibility", never, never>, setSkillVisibilitySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
185
+ }, "aiCfoView/setSkillVisibility", never, never>, setSkillVisibilityFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/setSkillVisibilityFailure">, setSkillVisibilitySuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
183
186
  detail: SkillDetail;
184
187
  macroId: string;
185
- }, "aiCfoView/setSkillVisibilitySuccess">, setSkillVisibilityFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/setSkillVisibilityFailure">, openSkillsBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/openSkillsBrowser">, closeSkillsBrowser: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/closeSkillsBrowser">, applyAiCfoSidePanelHostPageTransition: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
186
- newAiCfoSidePanelHostPageKey: string;
187
- /** When omitted or null, clears the active session (empty / suggested questions). */
188
- nextCurrentChatSessionId?: ID | null;
189
- }, "aiCfoView/applyAiCfoSidePanelHostPageTransition">, clearAiCfoSidePanelHostPageContext: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearAiCfoSidePanelHostPageContext">;
188
+ }, "aiCfoView/setSkillVisibilitySuccess">, stopSubmit: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
189
+ chatSessionId: string;
190
+ }, "aiCfoView/stopSubmit", never, never>, stopSubmitFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
191
+ chatSessionId: ID;
192
+ error: ZeniAPIStatus;
193
+ }, "aiCfoView/stopSubmitFailure">, stopSubmitQuestion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
194
+ chatSessionId: string;
195
+ }, "aiCfoView/stopSubmitQuestion", never, never>, stopSubmitQuestionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
196
+ chatSessionId: ID;
197
+ error: ZeniAPIStatus;
198
+ }, "aiCfoView/stopSubmitQuestionFailure">, stopSubmitQuestionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
199
+ chatSessionId: ID;
200
+ isOnlyQuestionInSession: boolean;
201
+ question: string;
202
+ }, "aiCfoView/stopSubmitQuestionSuccess">, stopSubmitSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
203
+ chatSessionId: ID;
204
+ isOnlyQuestionInSession: boolean;
205
+ question: string;
206
+ }, "aiCfoView/stopSubmitSuccess">, submitFeedback: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string, chatMessageId: string, feedbackType: FeedbackType, questionText?: string | undefined, answerText?: string | undefined, model?: string | undefined], SubmitFeedbackPayload, "aiCfoView/submitFeedback", never, never>, submitFeedbackFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatMessageId: string, error: ZeniAPIStatus<Record<string, unknown>>], {
207
+ chatMessageId: string;
208
+ error: ZeniAPIStatus<Record<string, unknown>>;
209
+ }, "aiCfoView/submitFeedbackFailure", never, never>, submitFeedbackSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatMessageId: string], {
210
+ chatMessageId: string;
211
+ }, "aiCfoView/submitFeedbackSuccess", never, never>, submitQuestion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[sessionId: string, questionAnswerId: string, userId: string, questionId: string, createdAt: import("dayjs").Dayjs, question: string, files?: File[] | undefined, macroId?: string | undefined], {
212
+ sessionId: string;
213
+ questionAnswerId: string;
214
+ userId: string;
215
+ questionId: string;
216
+ createdAt: import("dayjs").Dayjs;
217
+ question: string;
218
+ files: File[] | undefined;
219
+ macroId: string | undefined;
220
+ }, "aiCfoView/submitQuestion", never, never>, submitQuestionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
221
+ error: ZeniAPIStatus;
222
+ sessionId: ID;
223
+ }, "aiCfoView/submitQuestionFailure">, submitQuestionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "aiCfoView/submitQuestionSuccess">, updateAiCfoViewScrollPosition: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "aiCfoView/updateAiCfoViewScrollPosition">, updateCotCollapsedState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
224
+ isCollapsed: boolean;
225
+ questionAnswerId: ID;
226
+ }, "aiCfoView/updateCotCollapsedState">, updateCurrentInput: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "aiCfoView/updateCurrentInput">, updateResponseState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
227
+ chatSessionId: ID;
228
+ fetchState: FetchStateAndError;
229
+ responseType: AiCfoAnswerResponseType;
230
+ }, "aiCfoView/updateResponseState">;
190
231
  declare const _default: import("redux").Reducer<AiCfoViewState>;
191
232
  export default _default;