@thinkai/tai-api-contract 2.148.0 → 2.149.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3819,9 +3819,15 @@ export interface paths {
3819
3819
  path?: never;
3820
3820
  cookie?: never;
3821
3821
  };
3822
- /** Get preferences for current user */
3822
+ /**
3823
+ * Get preferences for current user
3824
+ * @description Returns saved preferences, including `notificationChannels`. An empty or missing profile returns defaults (`email.status` is `digest`; every other channel cell is `off`).
3825
+ */
3823
3826
  get: operations["getMyPreferences"];
3824
- /** Upsert preferences */
3827
+ /**
3828
+ * Upsert preferences
3829
+ * @description Replaces the saved preferences object. Omitting `notificationChannels` keeps the stored cells, or the defaults when none are stored. A body that includes `notificationChannels` replaces those cells; any missing key inside it uses the default (`email.status` = `digest`, every other cell = `off`). Setting `email.status` to `off` returns 400 `notification_channel_required`. In-app `notifications` booleans are independent of these cells.
3830
+ */
3825
3831
  put: operations["putMyPreferences"];
3826
3832
  post?: never;
3827
3833
  delete?: never;
@@ -3857,7 +3863,7 @@ export interface paths {
3857
3863
  };
3858
3864
  /**
3859
3865
  * App chrome bootstrap payload
3860
- * @description Returns the authenticated user's profile, workspace list, and preferences in one response. When `workspaceId` is provided and resolves to a workspace the caller belongs to, also returns platform banner, unread notification count (`count` and `hasUnreadCritical`), journey progress, and connectors snapshot. Invalid, unknown, or non-member `workspaceId` values do not produce 403/404 — the response is still 200 with only `me`, `workspaces`, and `preferences` (workspace-scoped fields omitted).
3866
+ * @description Returns the authenticated user's profile, workspace list, and preferences (including `notificationChannels`) in one response. When `workspaceId` is provided and resolves to a workspace the caller belongs to, also returns platform banner, unread notification count (`count` and `hasUnreadCritical`), journey progress, and connectors snapshot. Invalid, unknown, or non-member `workspaceId` values do not produce 403/404 — the response is still 200 with only `me`, `workspaces`, and `preferences` (workspace-scoped fields omitted).
3861
3867
  */
3862
3868
  get: operations["getAppShell"];
3863
3869
  put?: never;
@@ -7978,6 +7984,59 @@ export interface components {
7978
7984
  /** @description System / platform announcements. */
7979
7985
  system: boolean;
7980
7986
  };
7987
+ /**
7988
+ * @description Status email delivery. `digest` (default) is the weekly mail. `immediate` sends as events arrive. `off` is not allowed.
7989
+ * @enum {string}
7990
+ */
7991
+ NotificationEmailStatusMode: "immediate" | "digest";
7992
+ /**
7993
+ * @description Email delivery for comment, activity, or system. Default `off`. `immediate` sends as events arrive. `digest` is the weekly mail.
7994
+ * @enum {string}
7995
+ */
7996
+ NotificationEmailDeliveryMode: "off" | "immediate" | "digest";
7997
+ /**
7998
+ * @description Slack or Teams delivery for one category. Default `off` until that member changes the cell. `dm` is a direct message. `channel` posts to the workspace channel an admin saved. Connecting chat does not turn cells on.
7999
+ * @enum {string}
8000
+ */
8001
+ NotificationChatDeliveryMode: "off" | "dm" | "channel";
8002
+ NotificationEmailChannelsDto: {
8003
+ status: components["schemas"]["NotificationEmailStatusMode"];
8004
+ comment: components["schemas"]["NotificationEmailDeliveryMode"];
8005
+ activity: components["schemas"]["NotificationEmailDeliveryMode"];
8006
+ system: components["schemas"]["NotificationEmailDeliveryMode"];
8007
+ };
8008
+ NotificationChatChannelsDto: {
8009
+ status: components["schemas"]["NotificationChatDeliveryMode"];
8010
+ comment: components["schemas"]["NotificationChatDeliveryMode"];
8011
+ activity: components["schemas"]["NotificationChatDeliveryMode"];
8012
+ system: components["schemas"]["NotificationChatDeliveryMode"];
8013
+ };
8014
+ /** @description Delivery cells beside the in-app Message Center switches. Defaults: `email.status` is `digest`; every other cell is `off`. Inbox rows whose type is `integration` use the `status` cell. */
8015
+ NotificationChannelsDto: {
8016
+ email: components["schemas"]["NotificationEmailChannelsDto"];
8017
+ slack: components["schemas"]["NotificationChatChannelsDto"];
8018
+ teams: components["schemas"]["NotificationChatChannelsDto"];
8019
+ };
8020
+ /** @description Partial email cells. Omitted keys are filled with defaults on save (`status` = `digest`, other keys = `off`). */
8021
+ PutNotificationEmailChannelsDto: {
8022
+ status?: components["schemas"]["NotificationEmailStatusMode"];
8023
+ comment?: components["schemas"]["NotificationEmailDeliveryMode"];
8024
+ activity?: components["schemas"]["NotificationEmailDeliveryMode"];
8025
+ system?: components["schemas"]["NotificationEmailDeliveryMode"];
8026
+ };
8027
+ /** @description Partial chat cells. Omitted keys default to `off` on save. */
8028
+ PutNotificationChatChannelsDto: {
8029
+ status?: components["schemas"]["NotificationChatDeliveryMode"];
8030
+ comment?: components["schemas"]["NotificationChatDeliveryMode"];
8031
+ activity?: components["schemas"]["NotificationChatDeliveryMode"];
8032
+ system?: components["schemas"]["NotificationChatDeliveryMode"];
8033
+ };
8034
+ /** @description Replaces stored channel cells when present on `PUT /me/preferences`. Omitted `email`, `slack`, or `teams` objects are filled with defaults. */
8035
+ PutNotificationChannelsDto: {
8036
+ email?: components["schemas"]["PutNotificationEmailChannelsDto"];
8037
+ slack?: components["schemas"]["PutNotificationChatChannelsDto"];
8038
+ teams?: components["schemas"]["PutNotificationChatChannelsDto"];
8039
+ };
7981
8040
  PreferencesDto: {
7982
8041
  theme: components["schemas"]["ThemePreference"];
7983
8042
  sidebarCollapsed: boolean;
@@ -7990,6 +8049,28 @@ export interface components {
7990
8049
  * @default false
7991
8050
  */
7992
8051
  buddyEnabled: boolean;
8052
+ notificationChannels: components["schemas"]["NotificationChannelsDto"];
8053
+ };
8054
+ /** @description Body for `PUT /me/preferences`. `notificationChannels` may be omitted to keep stored cells. */
8055
+ PutPreferencesBodyDto: {
8056
+ theme: components["schemas"]["ThemePreference"];
8057
+ sidebarCollapsed: boolean;
8058
+ /** @description IANA timezone name */
8059
+ timezone: string;
8060
+ dataRefreshInterval: components["schemas"]["DataRefreshInterval"];
8061
+ notifications: components["schemas"]["NotificationPreferencesDto"];
8062
+ /**
8063
+ * @description When true, show the ThinkAI Buddy mascot. Default and missing stored values are false (opt-in only).
8064
+ * @default false
8065
+ */
8066
+ buddyEnabled: boolean;
8067
+ notificationChannels?: components["schemas"]["PutNotificationChannelsDto"];
8068
+ };
8069
+ NotificationChannelRequiredErrorDto: {
8070
+ /** @description Status email cannot be turned off. */
8071
+ error: string;
8072
+ /** @enum {string} */
8073
+ code: "notification_channel_required";
7993
8074
  };
7994
8075
  ValidationIssueDto: {
7995
8076
  path: (string | number)[];
@@ -10719,7 +10800,18 @@ export type JourneyProgressUpdateDto = components['schemas']['JourneyProgressUpd
10719
10800
  export type ThemePreference = components['schemas']['ThemePreference'];
10720
10801
  export type DataRefreshInterval = components['schemas']['DataRefreshInterval'];
10721
10802
  export type NotificationPreferencesDto = components['schemas']['NotificationPreferencesDto'];
10803
+ export type NotificationEmailStatusMode = components['schemas']['NotificationEmailStatusMode'];
10804
+ export type NotificationEmailDeliveryMode = components['schemas']['NotificationEmailDeliveryMode'];
10805
+ export type NotificationChatDeliveryMode = components['schemas']['NotificationChatDeliveryMode'];
10806
+ export type NotificationEmailChannelsDto = components['schemas']['NotificationEmailChannelsDto'];
10807
+ export type NotificationChatChannelsDto = components['schemas']['NotificationChatChannelsDto'];
10808
+ export type NotificationChannelsDto = components['schemas']['NotificationChannelsDto'];
10809
+ export type PutNotificationEmailChannelsDto = components['schemas']['PutNotificationEmailChannelsDto'];
10810
+ export type PutNotificationChatChannelsDto = components['schemas']['PutNotificationChatChannelsDto'];
10811
+ export type PutNotificationChannelsDto = components['schemas']['PutNotificationChannelsDto'];
10722
10812
  export type PreferencesDto = components['schemas']['PreferencesDto'];
10813
+ export type PutPreferencesBodyDto = components['schemas']['PutPreferencesBodyDto'];
10814
+ export type NotificationChannelRequiredErrorDto = components['schemas']['NotificationChannelRequiredErrorDto'];
10723
10815
  export type ValidationIssueDto = components['schemas']['ValidationIssueDto'];
10724
10816
  export type PreferencesValidationErrorDto = components['schemas']['PreferencesValidationErrorDto'];
10725
10817
  export type ConsentCategoriesDto = components['schemas']['ConsentCategoriesDto'];
@@ -20836,7 +20928,7 @@ export interface operations {
20836
20928
  };
20837
20929
  requestBody: {
20838
20930
  content: {
20839
- "application/json": components["schemas"]["PreferencesDto"];
20931
+ "application/json": components["schemas"]["PutPreferencesBodyDto"];
20840
20932
  };
20841
20933
  };
20842
20934
  responses: {
@@ -20849,13 +20941,13 @@ export interface operations {
20849
20941
  "application/json": components["schemas"]["PreferencesDto"];
20850
20942
  };
20851
20943
  };
20852
- /** @description Validation failed */
20944
+ /** @description Validation failed, or Status email was set to off (`code` `notification_channel_required`). */
20853
20945
  400: {
20854
20946
  headers: {
20855
20947
  [name: string]: unknown;
20856
20948
  };
20857
20949
  content: {
20858
- "application/json": components["schemas"]["PreferencesValidationErrorDto"];
20950
+ "application/json": components["schemas"]["PreferencesValidationErrorDto"] | components["schemas"]["NotificationChannelRequiredErrorDto"];
20859
20951
  };
20860
20952
  };
20861
20953
  401: components["responses"]["Unauthorized"];