@thinkai/tai-api-contract 2.56.0 → 2.57.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.
@@ -216,6 +216,50 @@ export interface paths {
216
216
  patch?: never;
217
217
  trace?: never;
218
218
  };
219
+ "/platform/banner": {
220
+ parameters: {
221
+ query?: never;
222
+ header?: never;
223
+ path?: never;
224
+ cookie?: never;
225
+ };
226
+ /**
227
+ * Global platform banner
228
+ * @description Returns the active global outage or maintenance banner for the platform shell, if any. No authentication required so signed-in users can see incident messaging during partial outages. When both a database-managed banner and a runtime-config fallback exist, the database value wins.
229
+ */
230
+ get: operations["getPlatformBanner"];
231
+ put?: never;
232
+ post?: never;
233
+ delete?: never;
234
+ options?: never;
235
+ head?: never;
236
+ patch?: never;
237
+ trace?: never;
238
+ };
239
+ "/admin/platform/banner": {
240
+ parameters: {
241
+ query?: never;
242
+ header?: never;
243
+ path?: never;
244
+ cookie?: never;
245
+ };
246
+ /**
247
+ * Read stored and effective global platform banner
248
+ * @description Platform admins only. Returns the database-stored banner (`stored`) for editing and the merged banner users see (`effective`, DB wins over runtime-config fallback). Requires Bearer JWT from an email on `PLATFORM_ADMIN_EMAILS`.
249
+ */
250
+ get: operations["adminGetPlatformBanner"];
251
+ /**
252
+ * Set or clear global platform banner
253
+ * @description Platform admins may activate, update, or clear (`banner: null`) the global outage/maintenance banner shown in the authenticated SPA shell. Requires Bearer JWT from an email on `PLATFORM_ADMIN_EMAILS`.
254
+ */
255
+ put: operations["adminUpsertPlatformBanner"];
256
+ post?: never;
257
+ delete?: never;
258
+ options?: never;
259
+ head?: never;
260
+ patch?: never;
261
+ trace?: never;
262
+ };
219
263
  "/me": {
220
264
  parameters: {
221
265
  query?: never;
@@ -4995,6 +5039,40 @@ export interface components {
4995
5039
  /** Format: date-time */
4996
5040
  createdAt?: string;
4997
5041
  };
5042
+ PlatformBannerDto: {
5043
+ /** @description Stable identifier used for dismiss persistence in the SPA. */
5044
+ id: string;
5045
+ /** @enum {string} */
5046
+ kind: "maintenance" | "outage" | "info";
5047
+ title: string;
5048
+ message: string;
5049
+ dismissible: boolean;
5050
+ /** @description Optional link to the public status page (status.aidrivensdlc.com). */
5051
+ statusPageUrl?: string;
5052
+ /**
5053
+ * Format: date-time
5054
+ * @description When set, the banner is hidden before this instant (UTC).
5055
+ */
5056
+ startsAt?: string;
5057
+ /**
5058
+ * Format: date-time
5059
+ * @description When set, the banner is hidden after this instant (UTC).
5060
+ */
5061
+ endsAt?: string;
5062
+ };
5063
+ PlatformBannerViewDto: {
5064
+ banner: components["schemas"]["PlatformBannerDto"] | null;
5065
+ };
5066
+ PlatformBannerUpsertDto: {
5067
+ /** @description Pass null to clear the active database-managed banner. */
5068
+ banner: components["schemas"]["PlatformBannerDto"] | null;
5069
+ };
5070
+ PlatformAdminBannerDto: {
5071
+ /** @description Banner persisted in the database (editable via PUT). */
5072
+ stored: components["schemas"]["PlatformBannerDto"] | null;
5073
+ /** @description Merged banner shown in the SPA (stored wins over runtime-config fallback). */
5074
+ effective: components["schemas"]["PlatformBannerViewDto"];
5075
+ };
4998
5076
  NotificationDto: {
4999
5077
  id: string;
5000
5078
  /** @enum {string} */
@@ -5832,6 +5910,10 @@ export type SquadDto = components['schemas']['SquadDto'];
5832
5910
  export type WorkflowDto = components['schemas']['WorkflowDto'];
5833
5911
  export type ProjectDto = components['schemas']['ProjectDto'];
5834
5912
  export type ProjectPatchDto = components['schemas']['ProjectPatchDto'];
5913
+ export type PlatformBannerDto = components['schemas']['PlatformBannerDto'];
5914
+ export type PlatformBannerViewDto = components['schemas']['PlatformBannerViewDto'];
5915
+ export type PlatformBannerUpsertDto = components['schemas']['PlatformBannerUpsertDto'];
5916
+ export type PlatformAdminBannerDto = components['schemas']['PlatformAdminBannerDto'];
5835
5917
  export type NotificationDto = components['schemas']['NotificationDto'];
5836
5918
  export type NotificationListDto = components['schemas']['NotificationListDto'];
5837
5919
  export type NotificationUnreadCountDto = components['schemas']['NotificationUnreadCountDto'];
@@ -6578,6 +6660,123 @@ export interface operations {
6578
6660
  };
6579
6661
  };
6580
6662
  };
6663
+ getPlatformBanner: {
6664
+ parameters: {
6665
+ query?: never;
6666
+ header?: never;
6667
+ path?: never;
6668
+ cookie?: never;
6669
+ };
6670
+ requestBody?: never;
6671
+ responses: {
6672
+ /** @description Active platform banner (if any) */
6673
+ 200: {
6674
+ headers: {
6675
+ [name: string]: unknown;
6676
+ };
6677
+ content: {
6678
+ "application/json": components["schemas"]["PlatformBannerViewDto"];
6679
+ };
6680
+ };
6681
+ };
6682
+ };
6683
+ adminGetPlatformBanner: {
6684
+ parameters: {
6685
+ query?: never;
6686
+ header?: never;
6687
+ path?: never;
6688
+ cookie?: never;
6689
+ };
6690
+ requestBody?: never;
6691
+ responses: {
6692
+ /** @description Admin platform banner view */
6693
+ 200: {
6694
+ headers: {
6695
+ [name: string]: unknown;
6696
+ };
6697
+ content: {
6698
+ "application/json": components["schemas"]["PlatformAdminBannerDto"];
6699
+ };
6700
+ };
6701
+ 401: components["responses"]["Unauthorized"];
6702
+ /** @description Caller is not a platform admin. */
6703
+ 403: {
6704
+ headers: {
6705
+ [name: string]: unknown;
6706
+ };
6707
+ content: {
6708
+ "application/json": components["schemas"]["ErrorMessageDto"];
6709
+ };
6710
+ };
6711
+ /** @description Platform banner persistence unavailable. */
6712
+ 503: {
6713
+ headers: {
6714
+ [name: string]: unknown;
6715
+ };
6716
+ content: {
6717
+ "application/json": components["schemas"]["ErrorMessageDto"];
6718
+ };
6719
+ };
6720
+ };
6721
+ };
6722
+ adminUpsertPlatformBanner: {
6723
+ parameters: {
6724
+ query?: never;
6725
+ header?: never;
6726
+ path?: never;
6727
+ cookie?: never;
6728
+ };
6729
+ requestBody: {
6730
+ content: {
6731
+ "application/json": components["schemas"]["PlatformBannerUpsertDto"];
6732
+ };
6733
+ };
6734
+ responses: {
6735
+ /** @description Updated platform banner */
6736
+ 200: {
6737
+ headers: {
6738
+ [name: string]: unknown;
6739
+ };
6740
+ content: {
6741
+ "application/json": components["schemas"]["PlatformBannerViewDto"];
6742
+ };
6743
+ };
6744
+ /** @description Invalid banner payload */
6745
+ 400: {
6746
+ headers: {
6747
+ [name: string]: unknown;
6748
+ };
6749
+ content: {
6750
+ "application/json": components["schemas"]["ErrorMessageDto"];
6751
+ };
6752
+ };
6753
+ 401: components["responses"]["Unauthorized"];
6754
+ /** @description Caller is not a platform admin. */
6755
+ 403: {
6756
+ headers: {
6757
+ [name: string]: unknown;
6758
+ };
6759
+ content: {
6760
+ /**
6761
+ * @example {
6762
+ * "error": "Forbidden",
6763
+ * "code": "forbidden"
6764
+ * }
6765
+ */
6766
+ "application/json": components["schemas"]["ErrorMessageDto"];
6767
+ };
6768
+ };
6769
+ /** @description Platform banner persistence unavailable. */
6770
+ 503: {
6771
+ headers: {
6772
+ [name: string]: unknown;
6773
+ };
6774
+ content: {
6775
+ "application/json": components["schemas"]["ErrorMessageDto"];
6776
+ };
6777
+ };
6778
+ };
6779
+ };
6581
6780
  getMe: {
6582
6781
  parameters: {
6583
6782
  query?: never;