@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.
@@ -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;
@@ -1678,6 +1722,26 @@ export interface paths {
1678
1722
  patch?: never;
1679
1723
  trace?: never;
1680
1724
  };
1725
+ "/workspaces/{workspaceId}/agentic-foundation/repo-scope": {
1726
+ parameters: {
1727
+ query?: never;
1728
+ header?: never;
1729
+ path?: never;
1730
+ cookie?: never;
1731
+ };
1732
+ get?: never;
1733
+ /**
1734
+ * Update Agentic Foundation repository scope
1735
+ * @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.
1736
+ */
1737
+ put: operations["putAgenticFoundationRepoScope"];
1738
+ post?: never;
1739
+ delete?: never;
1740
+ options?: never;
1741
+ head?: never;
1742
+ patch?: never;
1743
+ trace?: never;
1744
+ };
1681
1745
  "/workspaces/{workspaceId}/agentic-foundation/dashboard": {
1682
1746
  parameters: {
1683
1747
  query?: never;
@@ -4669,10 +4733,10 @@ export interface components {
4669
4733
  */
4670
4734
  archivedAt?: string | null;
4671
4735
  /**
4672
- * @description Why the repo was archived. Only present when `archivedAt` is set.
4736
+ * @description Why the repo was archived. `user_removed` means excluded from Agentic Foundation scope only. Only present when `archivedAt` is set.
4673
4737
  * @enum {string|null}
4674
4738
  */
4675
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4739
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4676
4740
  /**
4677
4741
  * @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.
4678
4742
  * @enum {string|null}
@@ -4727,7 +4791,7 @@ export interface components {
4727
4791
  /** Format: date-time */
4728
4792
  archivedAt?: string | null;
4729
4793
  /** @enum {string|null} */
4730
- archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | null;
4794
+ archivedReason?: "github_removed" | "installation_disconnected" | "installation_replaced" | "superseded" | "user_removed" | null;
4731
4795
  /**
4732
4796
  * @description See RepoReadinessScoreDto.eligibilityStatus. Language support is advisory (#729) and surfaced via `warnings`.
4733
4797
  * @enum {string|null}
@@ -4975,6 +5039,40 @@ export interface components {
4975
5039
  /** Format: date-time */
4976
5040
  createdAt?: string;
4977
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
+ };
4978
5076
  NotificationDto: {
4979
5077
  id: string;
4980
5078
  /** @enum {string} */
@@ -5253,6 +5351,34 @@ export interface components {
5253
5351
  */
5254
5352
  runId?: string | null;
5255
5353
  };
5354
+ PutAgenticFoundationRepoScopeChangeDto: {
5355
+ /** Format: uuid */
5356
+ repoId: string;
5357
+ /** @description `true` to include in Agentic Foundation scope (unarchive user_removed). `false` to exclude (soft-archive with archived_reason user_removed). */
5358
+ included: boolean;
5359
+ };
5360
+ PutAgenticFoundationRepoScopeBodyDto: {
5361
+ changes: components["schemas"]["PutAgenticFoundationRepoScopeChangeDto"][];
5362
+ };
5363
+ PutAgenticFoundationRepoScopeAppliedDto: {
5364
+ /** Format: uuid */
5365
+ repoId: string;
5366
+ /** @enum {string} */
5367
+ status: "Active" | "Inactive";
5368
+ /** Format: uuid */
5369
+ runId?: string | null;
5370
+ };
5371
+ PutAgenticFoundationRepoScopeFailureDto: {
5372
+ /** Format: uuid */
5373
+ repoId: string;
5374
+ /** @enum {string} */
5375
+ code: "not_found" | "scan_in_progress" | "not_archived" | "already_active" | "system_archived" | "forbidden";
5376
+ message: string;
5377
+ };
5378
+ PutAgenticFoundationRepoScopeResponseDto: {
5379
+ applied: components["schemas"]["PutAgenticFoundationRepoScopeAppliedDto"][];
5380
+ failures: components["schemas"]["PutAgenticFoundationRepoScopeFailureDto"][];
5381
+ };
5256
5382
  /**
5257
5383
  * @description Type of workspace lifecycle event.
5258
5384
  * @enum {string}
@@ -5784,6 +5910,10 @@ export type SquadDto = components['schemas']['SquadDto'];
5784
5910
  export type WorkflowDto = components['schemas']['WorkflowDto'];
5785
5911
  export type ProjectDto = components['schemas']['ProjectDto'];
5786
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'];
5787
5917
  export type NotificationDto = components['schemas']['NotificationDto'];
5788
5918
  export type NotificationListDto = components['schemas']['NotificationListDto'];
5789
5919
  export type NotificationUnreadCountDto = components['schemas']['NotificationUnreadCountDto'];
@@ -5816,6 +5946,11 @@ export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAi
5816
5946
  export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
5817
5947
  export type PatchRepoArchiveBodyDto = components['schemas']['PatchRepoArchiveBodyDto'];
5818
5948
  export type PatchRepoArchiveResponseDto = components['schemas']['PatchRepoArchiveResponseDto'];
5949
+ export type PutAgenticFoundationRepoScopeChangeDto = components['schemas']['PutAgenticFoundationRepoScopeChangeDto'];
5950
+ export type PutAgenticFoundationRepoScopeBodyDto = components['schemas']['PutAgenticFoundationRepoScopeBodyDto'];
5951
+ export type PutAgenticFoundationRepoScopeAppliedDto = components['schemas']['PutAgenticFoundationRepoScopeAppliedDto'];
5952
+ export type PutAgenticFoundationRepoScopeFailureDto = components['schemas']['PutAgenticFoundationRepoScopeFailureDto'];
5953
+ export type PutAgenticFoundationRepoScopeResponseDto = components['schemas']['PutAgenticFoundationRepoScopeResponseDto'];
5819
5954
  export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
5820
5955
  export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
5821
5956
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
@@ -6525,6 +6660,123 @@ export interface operations {
6525
6660
  };
6526
6661
  };
6527
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
+ };
6528
6780
  getMe: {
6529
6781
  parameters: {
6530
6782
  query?: never;
@@ -10316,6 +10568,66 @@ export interface operations {
10316
10568
  };
10317
10569
  };
10318
10570
  };
10571
+ putAgenticFoundationRepoScope: {
10572
+ parameters: {
10573
+ query?: never;
10574
+ header?: never;
10575
+ path: {
10576
+ workspaceId: components["parameters"]["WorkspaceId"];
10577
+ };
10578
+ cookie?: never;
10579
+ };
10580
+ requestBody: {
10581
+ content: {
10582
+ /**
10583
+ * @example {
10584
+ * "changes": [
10585
+ * {
10586
+ * "repoId": "00000000-0000-0000-0000-000000000101",
10587
+ * "included": false
10588
+ * },
10589
+ * {
10590
+ * "repoId": "00000000-0000-0000-0000-000000000102",
10591
+ * "included": true
10592
+ * }
10593
+ * ]
10594
+ * }
10595
+ */
10596
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeBodyDto"];
10597
+ };
10598
+ };
10599
+ responses: {
10600
+ /** @description Scope changes applied (possibly with per-repo failures) */
10601
+ 200: {
10602
+ headers: {
10603
+ [name: string]: unknown;
10604
+ };
10605
+ content: {
10606
+ "application/json": components["schemas"]["PutAgenticFoundationRepoScopeResponseDto"];
10607
+ };
10608
+ };
10609
+ /** @description Invalid request body */
10610
+ 400: {
10611
+ headers: {
10612
+ [name: string]: unknown;
10613
+ };
10614
+ content: {
10615
+ "application/json": components["schemas"]["ErrorMessageDto"];
10616
+ };
10617
+ };
10618
+ 401: components["responses"]["Unauthorized"];
10619
+ 403: components["responses"]["Forbidden"];
10620
+ /** @description Workspace does not exist */
10621
+ 404: {
10622
+ headers: {
10623
+ [name: string]: unknown;
10624
+ };
10625
+ content: {
10626
+ "application/json": components["schemas"]["ErrorMessageDto"];
10627
+ };
10628
+ };
10629
+ };
10630
+ };
10319
10631
  getAgenticFoundationDashboard: {
10320
10632
  parameters: {
10321
10633
  query?: never;