@thinkai/tai-api-contract 2.106.0 → 2.108.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.
@@ -1430,6 +1430,26 @@ export interface paths {
1430
1430
  patch?: never;
1431
1431
  trace?: never;
1432
1432
  };
1433
+ "/workspaces/{workspaceId}/integrations/connectors-snapshot": {
1434
+ parameters: {
1435
+ query?: never;
1436
+ header?: never;
1437
+ path?: never;
1438
+ cookie?: never;
1439
+ };
1440
+ /**
1441
+ * Workspace connectors snapshot for settings UI
1442
+ * @description Returns workspace config plus GitHub App and GitHub Actions integration status in one response (lighter than separate config and integration status calls).
1443
+ */
1444
+ get: operations["getWorkspaceConnectorsSnapshot"];
1445
+ put?: never;
1446
+ post?: never;
1447
+ delete?: never;
1448
+ options?: never;
1449
+ head?: never;
1450
+ patch?: never;
1451
+ trace?: never;
1452
+ };
1433
1453
  "/workspaces/{workspaceId}/integrations/github": {
1434
1454
  parameters: {
1435
1455
  query?: never;
@@ -3306,6 +3326,26 @@ export interface paths {
3306
3326
  patch?: never;
3307
3327
  trace?: never;
3308
3328
  };
3329
+ "/me/app-shell": {
3330
+ parameters: {
3331
+ query?: never;
3332
+ header?: never;
3333
+ path?: never;
3334
+ cookie?: never;
3335
+ };
3336
+ /**
3337
+ * App chrome bootstrap payload
3338
+ * @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, 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).
3339
+ */
3340
+ get: operations["getAppShell"];
3341
+ put?: never;
3342
+ post?: never;
3343
+ delete?: never;
3344
+ options?: never;
3345
+ head?: never;
3346
+ patch?: never;
3347
+ trace?: never;
3348
+ };
3309
3349
  "/workspaces/{workspaceId}/org-chart/import": {
3310
3350
  parameters: {
3311
3351
  query?: never;
@@ -3346,6 +3386,26 @@ export interface paths {
3346
3386
  patch?: never;
3347
3387
  trace?: never;
3348
3388
  };
3389
+ "/workspaces/{workspaceId}/your-ai-journey/dashboard-secondary": {
3390
+ parameters: {
3391
+ query?: never;
3392
+ header?: never;
3393
+ path?: never;
3394
+ cookie?: never;
3395
+ };
3396
+ /**
3397
+ * Secondary dashboard panels bootstrap payload
3398
+ * @description Returns readiness aggregate, merged PR trends (8-week default window), aggregated teams (8-week default window), and agentic foundation dashboard in one response. Nested payloads reuse the same builders and caches as their dedicated routes.
3399
+ */
3400
+ get: operations["getYourAiJourneyDashboardSecondary"];
3401
+ put?: never;
3402
+ post?: never;
3403
+ delete?: never;
3404
+ options?: never;
3405
+ head?: never;
3406
+ patch?: never;
3407
+ trace?: never;
3408
+ };
3349
3409
  "/workspaces/{workspaceId}/your-ai-journey/analytics": {
3350
3410
  parameters: {
3351
3411
  query?: never;
@@ -7095,6 +7155,30 @@ export interface components {
7095
7155
  analytics: components["schemas"]["YourAiJourneyAnalyticsDto"];
7096
7156
  productivity: components["schemas"]["DashboardProductivityDto"];
7097
7157
  };
7158
+ ConnectorsSnapshotDto: {
7159
+ config: components["schemas"]["WorkspaceConfigDto"];
7160
+ github: components["schemas"]["GithubInstallationStatusDto"];
7161
+ githubActions: components["schemas"]["GithubActionsIntegrationStatusDto"];
7162
+ };
7163
+ AppShellDto: {
7164
+ me: components["schemas"]["MeProfileDto"];
7165
+ workspaces: components["schemas"]["WorkspaceSummaryDto"][];
7166
+ preferences: components["schemas"]["PreferencesDto"];
7167
+ banner?: components["schemas"]["PlatformBannerViewDto"];
7168
+ unreadCount?: components["schemas"]["NotificationUnreadCountDto"];
7169
+ journeyProgress?: components["schemas"]["JourneyProgressDto"];
7170
+ connectorsSnapshot?: components["schemas"]["ConnectorsSnapshotDto"];
7171
+ };
7172
+ DashboardSecondaryDto: {
7173
+ /** Format: uuid */
7174
+ workspaceId: string;
7175
+ /** Format: date-time */
7176
+ generatedAt: string;
7177
+ readinessAggregate: components["schemas"]["YourAiJourneyReadinessAggregateDto"];
7178
+ mergedPrTrends: components["schemas"]["ProductivityInsightsMergedPrTrendsDto"];
7179
+ aggregatedTeams: components["schemas"]["ProductivityInsightsAggregatedTeamsDto"];
7180
+ agenticFoundation: components["schemas"]["AgenticFoundationDashboardDto"];
7181
+ };
7098
7182
  YourAiJourneyAnalyticsDto: {
7099
7183
  /** Format: uuid */
7100
7184
  workspaceId: string;
@@ -7136,6 +7220,8 @@ export interface components {
7136
7220
  /** @description GitHub merged PRs in this week bucket still awaiting ship-weight scoring. */
7137
7221
  shipWeightPendingCount?: number;
7138
7222
  tokenCount: number;
7223
+ /** @description AI tool spend attributed to this week bucket (USD cents). */
7224
+ spendCents?: number;
7139
7225
  };
7140
7226
  YourAiJourneyAiSpendDto: {
7141
7227
  /** Format: uuid */
@@ -7654,6 +7740,11 @@ export interface components {
7654
7740
  InsightsRecommendationsReviewPipelineResponse: components["schemas"]["InsightsRecommendationsReviewPipeline"] & {
7655
7741
  _meta: components["schemas"]["InsightsResponseMeta"];
7656
7742
  };
7743
+ InsightsCostPerPrModelSlice: {
7744
+ modelName: string;
7745
+ spendUsd: number;
7746
+ tokenCount: number;
7747
+ };
7657
7748
  InsightsCostPerPrTeam: {
7658
7749
  id: string;
7659
7750
  name: string;
@@ -7664,6 +7755,8 @@ export interface components {
7664
7755
  changePct: number;
7665
7756
  /** @description Weekly cost per merged PR aligned to the selected week buckets (same order as filters.weekBuckets). Null when the team had no merged PRs in that week. */
7666
7757
  trendUsdPerPr?: (number | null)[];
7758
+ /** @description Model spend mix for teams in the top five by spend in this response (server-computed from AI-tool usage). When multiple providers are in scope, each team's mix reflects that team's dominant provider by spend. Omitted when unavailable. */
7759
+ models?: components["schemas"]["InsightsCostPerPrModelSlice"][];
7667
7760
  };
7668
7761
  InsightsRecommendationsCostPerPr: {
7669
7762
  orgAvgCostUsd: number;
@@ -8753,6 +8846,9 @@ export type YourAiJourneyPrSignalsDto = components['schemas']['YourAiJourneyPrSi
8753
8846
  export type YourAiJourneyReadinessDimensionDto = components['schemas']['YourAiJourneyReadinessDimensionDto'];
8754
8847
  export type YourAiJourneyReadinessAggregateDto = components['schemas']['YourAiJourneyReadinessAggregateDto'];
8755
8848
  export type YourAiJourneyHeroDto = components['schemas']['YourAiJourneyHeroDto'];
8849
+ export type ConnectorsSnapshotDto = components['schemas']['ConnectorsSnapshotDto'];
8850
+ export type AppShellDto = components['schemas']['AppShellDto'];
8851
+ export type DashboardSecondaryDto = components['schemas']['DashboardSecondaryDto'];
8756
8852
  export type YourAiJourneyAnalyticsDto = components['schemas']['YourAiJourneyAnalyticsDto'];
8757
8853
  export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAiSpendWeekDto'];
8758
8854
  export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
@@ -8811,6 +8907,7 @@ export type InsightsReviewStage = components['schemas']['InsightsReviewStage'];
8811
8907
  export type InsightsReviewerLoadItem = components['schemas']['InsightsReviewerLoadItem'];
8812
8908
  export type InsightsRecommendationsReviewPipeline = components['schemas']['InsightsRecommendationsReviewPipeline'];
8813
8909
  export type InsightsRecommendationsReviewPipelineResponse = components['schemas']['InsightsRecommendationsReviewPipelineResponse'];
8910
+ export type InsightsCostPerPrModelSlice = components['schemas']['InsightsCostPerPrModelSlice'];
8814
8911
  export type InsightsCostPerPrTeam = components['schemas']['InsightsCostPerPrTeam'];
8815
8912
  export type InsightsRecommendationsCostPerPr = components['schemas']['InsightsRecommendationsCostPerPr'];
8816
8913
  export type InsightsRecommendationsCostPerPrResponse = components['schemas']['InsightsRecommendationsCostPerPrResponse'];
@@ -12914,6 +13011,39 @@ export interface operations {
12914
13011
  };
12915
13012
  };
12916
13013
  };
13014
+ getWorkspaceConnectorsSnapshot: {
13015
+ parameters: {
13016
+ query?: never;
13017
+ header?: never;
13018
+ path: {
13019
+ workspaceId: components["parameters"]["WorkspaceId"];
13020
+ };
13021
+ cookie?: never;
13022
+ };
13023
+ requestBody?: never;
13024
+ responses: {
13025
+ /** @description Connectors snapshot */
13026
+ 200: {
13027
+ headers: {
13028
+ [name: string]: unknown;
13029
+ };
13030
+ content: {
13031
+ "application/json": components["schemas"]["ConnectorsSnapshotDto"];
13032
+ };
13033
+ };
13034
+ 401: components["responses"]["Unauthorized"];
13035
+ 403: components["responses"]["Forbidden"];
13036
+ /** @description Workspace does not exist */
13037
+ 404: {
13038
+ headers: {
13039
+ [name: string]: unknown;
13040
+ };
13041
+ content: {
13042
+ "application/json": components["schemas"]["ErrorMessageDto"];
13043
+ };
13044
+ };
13045
+ };
13046
+ };
12917
13047
  getWorkspaceGithubInstallationStatus: {
12918
13048
  parameters: {
12919
13049
  query?: {
@@ -17473,6 +17603,30 @@ export interface operations {
17473
17603
  401: components["responses"]["Unauthorized"];
17474
17604
  };
17475
17605
  };
17606
+ getAppShell: {
17607
+ parameters: {
17608
+ query?: {
17609
+ /** @description Optional workspace scope for banner, notifications, journey, and connectors. Omitted or unresolvable values yield the base shell without workspace extras. */
17610
+ workspaceId?: string;
17611
+ };
17612
+ header?: never;
17613
+ path?: never;
17614
+ cookie?: never;
17615
+ };
17616
+ requestBody?: never;
17617
+ responses: {
17618
+ /** @description App shell bootstrap payload. Workspace-scoped fields (`banner`, `unreadCount`, `journeyProgress`, `connectorsSnapshot`) appear only when `workspaceId` resolves to a workspace the caller belongs to. */
17619
+ 200: {
17620
+ headers: {
17621
+ [name: string]: unknown;
17622
+ };
17623
+ content: {
17624
+ "application/json": components["schemas"]["AppShellDto"];
17625
+ };
17626
+ };
17627
+ 401: components["responses"]["Unauthorized"];
17628
+ };
17629
+ };
17476
17630
  postOrgChartImport: {
17477
17631
  parameters: {
17478
17632
  query?: never;
@@ -17570,6 +17724,39 @@ export interface operations {
17570
17724
  };
17571
17725
  };
17572
17726
  };
17727
+ getYourAiJourneyDashboardSecondary: {
17728
+ parameters: {
17729
+ query?: never;
17730
+ header?: never;
17731
+ path: {
17732
+ workspaceId: components["parameters"]["WorkspaceId"];
17733
+ };
17734
+ cookie?: never;
17735
+ };
17736
+ requestBody?: never;
17737
+ responses: {
17738
+ /** @description Secondary dashboard bootstrap payload */
17739
+ 200: {
17740
+ headers: {
17741
+ [name: string]: unknown;
17742
+ };
17743
+ content: {
17744
+ "application/json": components["schemas"]["DashboardSecondaryDto"];
17745
+ };
17746
+ };
17747
+ 401: components["responses"]["Unauthorized"];
17748
+ 403: components["responses"]["Forbidden"];
17749
+ /** @description Workspace does not exist */
17750
+ 404: {
17751
+ headers: {
17752
+ [name: string]: unknown;
17753
+ };
17754
+ content: {
17755
+ "application/json": components["schemas"]["ErrorMessageDto"];
17756
+ };
17757
+ };
17758
+ };
17759
+ };
17573
17760
  getYourAiJourneyAnalytics: {
17574
17761
  parameters: {
17575
17762
  query?: never;