@thinkai/tai-api-contract 2.55.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.
@@ -217,6 +217,50 @@ export interface paths {
217
217
  patch?: never;
218
218
  trace?: never;
219
219
  };
220
+ "/platform/banner": {
221
+ parameters: {
222
+ query?: never;
223
+ header?: never;
224
+ path?: never;
225
+ cookie?: never;
226
+ };
227
+ /**
228
+ * Global platform banner
229
+ * @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.
230
+ */
231
+ get: operations["getPlatformBanner"];
232
+ put?: never;
233
+ post?: never;
234
+ delete?: never;
235
+ options?: never;
236
+ head?: never;
237
+ patch?: never;
238
+ trace?: never;
239
+ };
240
+ "/admin/platform/banner": {
241
+ parameters: {
242
+ query?: never;
243
+ header?: never;
244
+ path?: never;
245
+ cookie?: never;
246
+ };
247
+ /**
248
+ * Read stored and effective global platform banner
249
+ * @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`.
250
+ */
251
+ get: operations["adminGetPlatformBanner"];
252
+ /**
253
+ * Set or clear global platform banner
254
+ * @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`.
255
+ */
256
+ put: operations["adminUpsertPlatformBanner"];
257
+ post?: never;
258
+ delete?: never;
259
+ options?: never;
260
+ head?: never;
261
+ patch?: never;
262
+ trace?: never;
263
+ };
220
264
  "/me": {
221
265
  parameters: {
222
266
  query?: never;
@@ -1679,6 +1723,26 @@ export interface paths {
1679
1723
  patch?: never;
1680
1724
  trace?: never;
1681
1725
  };
1726
+ "/workspaces/{workspaceId}/agentic-foundation/repo-scope": {
1727
+ parameters: {
1728
+ query?: never;
1729
+ header?: never;
1730
+ path?: never;
1731
+ cookie?: never;
1732
+ };
1733
+ get?: never;
1734
+ /**
1735
+ * Update Agentic Foundation repository scope
1736
+ * @description Bulk include/exclude materialized repos from Agentic Foundation by toggling the existing `user_removed` archive state. Excluded repos remain integrated for productivity metrics. Only workspace admins may call this endpoint. Partial failures are reported per repo.
1737
+ */
1738
+ put: operations["putAgenticFoundationRepoScope"];
1739
+ post?: never;
1740
+ delete?: never;
1741
+ options?: never;
1742
+ head?: never;
1743
+ patch?: never;
1744
+ trace?: never;
1745
+ };
1682
1746
  "/workspaces/{workspaceId}/agentic-foundation/dashboard": {
1683
1747
  parameters: {
1684
1748
  query?: never;
@@ -4670,10 +4734,10 @@ export interface components {
4670
4734
  */
4671
4735
  archivedAt?: string | null;
4672
4736
  /**
4673
- * @description Why the repo was archived. Only present when `archivedAt` is set.
4737
+ * @description Why the repo was archived. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
4674
4738
  * @enum {string|null}
4675
4739
  */
4676
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4740
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4677
4741
  /**
4678
4742
  * @description Whether the repo can be analyzed (#44/#729). Language support no longer makes a repo `ineligible` — a missing v1-supported stack is surfaced via `warnings` and the repo stays analyzable. It becomes `ineligible` when the most recent scan hit a hard size/file-count limit (e.g. code-size or file-count exceeded): the repo is then restricted here too so this surface matches the GitHub connect list's size gate after the scan. Null until the first sync/scan computes it.
4679
4743
  * @enum {string|null}
@@ -4728,7 +4792,7 @@ export interface components {
4728
4792
  /** Format: date-time */
4729
4793
  archivedAt?: string | null;
4730
4794
  /** @enum {string|null} */
4731
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4795
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4732
4796
  /**
4733
4797
  * @description See RepoReadinessScoreDto.eligibilityStatus. Language support is advisory (#729) and surfaced via `warnings`.
4734
4798
  * @enum {string|null}
@@ -4976,6 +5040,40 @@ export interface components {
4976
5040
  /** Format: date-time */
4977
5041
  createdAt?: string;
4978
5042
  };
5043
+ PlatformBannerDto: {
5044
+ /** @description Stable identifier used for dismiss persistence in the SPA. */
5045
+ id: string;
5046
+ /** @enum {string} */
5047
+ kind: "maintenance" | "outage" | "info";
5048
+ title: string;
5049
+ message: string;
5050
+ dismissible: boolean;
5051
+ /** @description Optional link to the public status page (status.aidrivensdlc.com). */
5052
+ statusPageUrl?: string;
5053
+ /**
5054
+ * Format: date-time
5055
+ * @description When set, the banner is hidden before this instant (UTC).
5056
+ */
5057
+ startsAt?: string;
5058
+ /**
5059
+ * Format: date-time
5060
+ * @description When set, the banner is hidden after this instant (UTC).
5061
+ */
5062
+ endsAt?: string;
5063
+ };
5064
+ PlatformBannerViewDto: {
5065
+ banner: components["schemas"]["PlatformBannerDto"] | null;
5066
+ };
5067
+ PlatformBannerUpsertDto: {
5068
+ /** @description Pass null to clear the active database-managed banner. */
5069
+ banner: components["schemas"]["PlatformBannerDto"] | null;
5070
+ };
5071
+ PlatformAdminBannerDto: {
5072
+ /** @description Banner persisted in the database (editable via PUT). */
5073
+ stored: components["schemas"]["PlatformBannerDto"] | null;
5074
+ /** @description Merged banner shown in the SPA (stored wins over runtime-config fallback). */
5075
+ effective: components["schemas"]["PlatformBannerViewDto"];
5076
+ };
4979
5077
  NotificationDto: {
4980
5078
  id: string;
4981
5079
  /** @enum {string} */
@@ -5254,6 +5352,34 @@ export interface components {
5254
5352
  */
5255
5353
  runId?: string | null;
5256
5354
  };
5355
+ PutAgenticFoundationRepoScopeChangeDto: {
5356
+ /** Format: uuid */
5357
+ repoId: string;
5358
+ /** @description `true` to include in Agentic Foundation scope (unarchive user_removed). `false` to exclude (soft-archive with archived_reason user_removed). */
5359
+ included: boolean;
5360
+ };
5361
+ PutAgenticFoundationRepoScopeBodyDto: {
5362
+ changes: components["schemas"]["PutAgenticFoundationRepoScopeChangeDto"][];
5363
+ };
5364
+ PutAgenticFoundationRepoScopeAppliedDto: {
5365
+ /** Format: uuid */
5366
+ repoId: string;
5367
+ /** @enum {string} */
5368
+ status: "Active" | "Inactive";
5369
+ /** Format: uuid */
5370
+ runId?: string | null;
5371
+ };
5372
+ PutAgenticFoundationRepoScopeFailureDto: {
5373
+ /** Format: uuid */
5374
+ repoId: string;
5375
+ /** @enum {string} */
5376
+ code: "not_found" | "scan_in_progress" | "not_archived" | "already_active" | "system_archived" | "forbidden";
5377
+ message: string;
5378
+ };
5379
+ PutAgenticFoundationRepoScopeResponseDto: {
5380
+ applied: components["schemas"]["PutAgenticFoundationRepoScopeAppliedDto"][];
5381
+ failures: components["schemas"]["PutAgenticFoundationRepoScopeFailureDto"][];
5382
+ };
5257
5383
  /**
5258
5384
  * @description Type of workspace lifecycle event.
5259
5385
  * @enum {string}
@@ -5785,6 +5911,10 @@ export type SquadDto = components['schemas']['SquadDto'];
5785
5911
  export type WorkflowDto = components['schemas']['WorkflowDto'];
5786
5912
  export type ProjectDto = components['schemas']['ProjectDto'];
5787
5913
  export type ProjectPatchDto = components['schemas']['ProjectPatchDto'];
5914
+ export type PlatformBannerDto = components['schemas']['PlatformBannerDto'];
5915
+ export type PlatformBannerViewDto = components['schemas']['PlatformBannerViewDto'];
5916
+ export type PlatformBannerUpsertDto = components['schemas']['PlatformBannerUpsertDto'];
5917
+ export type PlatformAdminBannerDto = components['schemas']['PlatformAdminBannerDto'];
5788
5918
  export type NotificationDto = components['schemas']['NotificationDto'];
5789
5919
  export type NotificationListDto = components['schemas']['NotificationListDto'];
5790
5920
  export type NotificationUnreadCountDto = components['schemas']['NotificationUnreadCountDto'];
@@ -5817,6 +5947,11 @@ export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAi
5817
5947
  export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
5818
5948
  export type PatchRepoArchiveBodyDto = components['schemas']['PatchRepoArchiveBodyDto'];
5819
5949
  export type PatchRepoArchiveResponseDto = components['schemas']['PatchRepoArchiveResponseDto'];
5950
+ export type PutAgenticFoundationRepoScopeChangeDto = components['schemas']['PutAgenticFoundationRepoScopeChangeDto'];
5951
+ export type PutAgenticFoundationRepoScopeBodyDto = components['schemas']['PutAgenticFoundationRepoScopeBodyDto'];
5952
+ export type PutAgenticFoundationRepoScopeAppliedDto = components['schemas']['PutAgenticFoundationRepoScopeAppliedDto'];
5953
+ export type PutAgenticFoundationRepoScopeFailureDto = components['schemas']['PutAgenticFoundationRepoScopeFailureDto'];
5954
+ export type PutAgenticFoundationRepoScopeResponseDto = components['schemas']['PutAgenticFoundationRepoScopeResponseDto'];
5820
5955
  export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
5821
5956
  export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
5822
5957
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
@@ -6526,6 +6661,123 @@ export interface operations {
6526
6661
  };
6527
6662
  };
6528
6663
  };
6664
+ getPlatformBanner: {
6665
+ parameters: {
6666
+ query?: never;
6667
+ header?: never;
6668
+ path?: never;
6669
+ cookie?: never;
6670
+ };
6671
+ requestBody?: never;
6672
+ responses: {
6673
+ /** @description Active platform banner (if any) */
6674
+ 200: {
6675
+ headers: {
6676
+ [name: string]: unknown;
6677
+ };
6678
+ content: {
6679
+ "application/json": components["schemas"]["PlatformBannerViewDto"];
6680
+ };
6681
+ };
6682
+ };
6683
+ };
6684
+ adminGetPlatformBanner: {
6685
+ parameters: {
6686
+ query?: never;
6687
+ header?: never;
6688
+ path?: never;
6689
+ cookie?: never;
6690
+ };
6691
+ requestBody?: never;
6692
+ responses: {
6693
+ /** @description Admin platform banner view */
6694
+ 200: {
6695
+ headers: {
6696
+ [name: string]: unknown;
6697
+ };
6698
+ content: {
6699
+ "application/json": components["schemas"]["PlatformAdminBannerDto"];
6700
+ };
6701
+ };
6702
+ 401: components["responses"]["Unauthorized"];
6703
+ /** @description Caller is not a platform admin. */
6704
+ 403: {
6705
+ headers: {
6706
+ [name: string]: unknown;
6707
+ };
6708
+ content: {
6709
+ "application/json": components["schemas"]["ErrorMessageDto"];
6710
+ };
6711
+ };
6712
+ /** @description Platform banner persistence unavailable. */
6713
+ 503: {
6714
+ headers: {
6715
+ [name: string]: unknown;
6716
+ };
6717
+ content: {
6718
+ "application/json": components["schemas"]["ErrorMessageDto"];
6719
+ };
6720
+ };
6721
+ };
6722
+ };
6723
+ adminUpsertPlatformBanner: {
6724
+ parameters: {
6725
+ query?: never;
6726
+ header?: never;
6727
+ path?: never;
6728
+ cookie?: never;
6729
+ };
6730
+ requestBody: {
6731
+ content: {
6732
+ "application/json": components["schemas"]["PlatformBannerUpsertDto"];
6733
+ };
6734
+ };
6735
+ responses: {
6736
+ /** @description Updated platform banner */
6737
+ 200: {
6738
+ headers: {
6739
+ [name: string]: unknown;
6740
+ };
6741
+ content: {
6742
+ "application/json": components["schemas"]["PlatformBannerViewDto"];
6743
+ };
6744
+ };
6745
+ /** @description Invalid banner payload */
6746
+ 400: {
6747
+ headers: {
6748
+ [name: string]: unknown;
6749
+ };
6750
+ content: {
6751
+ "application/json": components["schemas"]["ErrorMessageDto"];
6752
+ };
6753
+ };
6754
+ 401: components["responses"]["Unauthorized"];
6755
+ /** @description Caller is not a platform admin. */
6756
+ 403: {
6757
+ headers: {
6758
+ [name: string]: unknown;
6759
+ };
6760
+ content: {
6761
+ /**
6762
+ * @example {
6763
+ * "error": "Forbidden",
6764
+ * "code": "forbidden"
6765
+ * }
6766
+ */
6767
+ "application/json": components["schemas"]["ErrorMessageDto"];
6768
+ };
6769
+ };
6770
+ /** @description Platform banner persistence unavailable. */
6771
+ 503: {
6772
+ headers: {
6773
+ [name: string]: unknown;
6774
+ };
6775
+ content: {
6776
+ "application/json": components["schemas"]["ErrorMessageDto"];
6777
+ };
6778
+ };
6779
+ };
6780
+ };
6529
6781
  getMe: {
6530
6782
  parameters: {
6531
6783
  query?: never;
@@ -10317,6 +10569,66 @@ export interface operations {
10317
10569
  };
10318
10570
  };
10319
10571
  };
10572
+ putAgenticFoundationRepoScope: {
10573
+ parameters: {
10574
+ query?: never;
10575
+ header?: never;
10576
+ path: {
10577
+ workspaceId: components["parameters"]["WorkspaceId"];
10578
+ };
10579
+ cookie?: never;
10580
+ };
10581
+ requestBody: {
10582
+ content: {
10583
+ /**
10584
+ * @example {
10585
+ * "changes": [
10586
+ * {
10587
+ * "repoId": "00000000-0000-0000-0000-000000000101",
10588
+ * "included": false
10589
+ * },
10590
+ * {
10591
+ * "repoId": "00000000-0000-0000-0000-000000000102",
10592
+ * "included": true
10593
+ * }
10594
+ * ]
10595
+ * }
10596
+ */
10597
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeBodyDto"];
10598
+ };
10599
+ };
10600
+ responses: {
10601
+ /** @description Scope changes applied (possibly with per-repo failures) */
10602
+ 200: {
10603
+ headers: {
10604
+ [name: string]: unknown;
10605
+ };
10606
+ content: {
10607
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeResponseDto"];
10608
+ };
10609
+ };
10610
+ /** @description Invalid request body */
10611
+ 400: {
10612
+ headers: {
10613
+ [name: string]: unknown;
10614
+ };
10615
+ content: {
10616
+ "application/json": components["schemas"]["ErrorMessageDto"];
10617
+ };
10618
+ };
10619
+ 401: components["responses"]["Unauthorized"];
10620
+ 403: components["responses"]["Forbidden"];
10621
+ /** @description Workspace does not exist */
10622
+ 404: {
10623
+ headers: {
10624
+ [name: string]: unknown;
10625
+ };
10626
+ content: {
10627
+ "application/json": components["schemas"]["ErrorMessageDto"];
10628
+ };
10629
+ };
10630
+ };
10631
+ };
10320
10632
  getAgenticFoundationDashboard: {
10321
10633
  parameters: {
10322
10634
  query?: never;