@thinkai/tai-api-contract 2.42.0 → 2.43.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.
@@ -445,6 +445,26 @@ export interface paths {
445
445
  patch?: never;
446
446
  trace?: never;
447
447
  };
448
+ "/workspaces/{workspaceId}/insights/persons/{personId}/erase": {
449
+ parameters: {
450
+ query?: never;
451
+ header?: never;
452
+ path?: never;
453
+ cookie?: never;
454
+ };
455
+ get?: never;
456
+ put?: never;
457
+ /**
458
+ * Erase person-level insights data (workspace admin)
459
+ * @description Workspace admin only. Deletes or anonymizes a person's developer-insights rows for the workspace: org-chart node, person-scope dashboard metrics, AI-tool fact rows, HRIS absences, and readiness run requester linkage. Granular categories default to all enabled when the body is omitted. `personId` is the org-chart `person_id` (typically work email); URL-encode the path segment (e.g. `alice%40example.com`).
460
+ */
461
+ post: operations["eraseInsightsPerson"];
462
+ delete?: never;
463
+ options?: never;
464
+ head?: never;
465
+ patch?: never;
466
+ trace?: never;
467
+ };
448
468
  "/workspaces/{workspaceId}/insights/ai-usage-spend/aggregated-teams": {
449
469
  parameters: {
450
470
  query?: never;
@@ -2204,6 +2224,27 @@ export interface components {
2204
2224
  /** @enum {string} */
2205
2225
  role: "admin" | "editor" | "viewer";
2206
2226
  };
2227
+ /** @description Granular person erasure categories. All default to true when omitted. */
2228
+ EraseInsightsPersonBodyDto: {
2229
+ /** @description Remove the person node from `tai_workspace_config.org_chart`. */
2230
+ orgChart?: boolean;
2231
+ /** @description Delete person-scope rows in `tai_workspace_dashboard_metrics`. */
2232
+ dashboardMetrics?: boolean;
2233
+ /** @description Delete AI-tool seats and fact rows keyed to the person. */
2234
+ aiToolData?: boolean;
2235
+ /** @description Delete HRIS absence rows for the person's email. */
2236
+ absences?: boolean;
2237
+ /** @description Clear `requested_by_user_id` on readiness runs for matching app users. */
2238
+ readinessAnonymize?: boolean;
2239
+ };
2240
+ EraseInsightsPersonResultDto: {
2241
+ /** @enum {boolean} */
2242
+ deleted: true;
2243
+ aiToolRowsDeleted: number;
2244
+ absencesDeleted: number;
2245
+ readinessRunsAnonymized: number;
2246
+ auditEntriesAnonymized: number;
2247
+ };
2207
2248
  OrgChartNodeDto: {
2208
2249
  id: string;
2209
2250
  name: string;
@@ -4058,6 +4099,11 @@ export interface components {
4058
4099
  } | unknown | unknown;
4059
4100
  /** @enum {string} */
4060
4101
  ThemePreference: "light" | "dark" | "system";
4102
+ /**
4103
+ * @description User-configured dashboard background refresh cadence.
4104
+ * @enum {string}
4105
+ */
4106
+ DataRefreshInterval: "off" | "1m" | "5m" | "10m";
4061
4107
  NotificationPreferencesDto: {
4062
4108
  /** @description Sync/health status notifications. */
4063
4109
  status: boolean;
@@ -4073,6 +4119,7 @@ export interface components {
4073
4119
  sidebarCollapsed: boolean;
4074
4120
  /** @description IANA timezone name */
4075
4121
  timezone: string;
4122
+ dataRefreshInterval: components["schemas"]["DataRefreshInterval"];
4076
4123
  notifications: components["schemas"]["NotificationPreferencesDto"];
4077
4124
  };
4078
4125
  ValidationIssueDto: {
@@ -4561,6 +4608,8 @@ export type TeamMemberDto = components['schemas']['TeamMemberDto'];
4561
4608
  export type TeamMemberListDto = components['schemas']['TeamMemberListDto'];
4562
4609
  export type InviteTeamMemberBodyDto = components['schemas']['InviteTeamMemberBodyDto'];
4563
4610
  export type UpdateTeamMemberRoleBodyDto = components['schemas']['UpdateTeamMemberRoleBodyDto'];
4611
+ export type EraseInsightsPersonBodyDto = components['schemas']['EraseInsightsPersonBodyDto'];
4612
+ export type EraseInsightsPersonResultDto = components['schemas']['EraseInsightsPersonResultDto'];
4564
4613
  export type OrgChartNodeDto = components['schemas']['OrgChartNodeDto'];
4565
4614
  export type OrgChartTreeNodeDto = components['schemas']['OrgChartTreeNodeDto'];
4566
4615
  export type ScoringOrgChartDto = components['schemas']['ScoringOrgChartDto'];
@@ -4739,6 +4788,7 @@ export type JourneyStepId = components['schemas']['JourneyStepId'];
4739
4788
  export type JourneyProgressDto = components['schemas']['JourneyProgressDto'];
4740
4789
  export type JourneyProgressUpdateDto = components['schemas']['JourneyProgressUpdateDto'];
4741
4790
  export type ThemePreference = components['schemas']['ThemePreference'];
4791
+ export type DataRefreshInterval = components['schemas']['DataRefreshInterval'];
4742
4792
  export type NotificationPreferencesDto = components['schemas']['NotificationPreferencesDto'];
4743
4793
  export type PreferencesDto = components['schemas']['PreferencesDto'];
4744
4794
  export type ValidationIssueDto = components['schemas']['ValidationIssueDto'];
@@ -5976,6 +6026,63 @@ export interface operations {
5976
6026
  };
5977
6027
  };
5978
6028
  };
6029
+ eraseInsightsPerson: {
6030
+ parameters: {
6031
+ query?: never;
6032
+ header?: never;
6033
+ path: {
6034
+ workspaceId: components["parameters"]["WorkspaceId"];
6035
+ /** @description Org-chart person_id (URL-encoded when it contains `@`). */
6036
+ personId: string;
6037
+ };
6038
+ cookie?: never;
6039
+ };
6040
+ requestBody?: {
6041
+ content: {
6042
+ /**
6043
+ * @example {
6044
+ * "orgChart": true,
6045
+ * "dashboardMetrics": true,
6046
+ * "aiToolData": true,
6047
+ * "absences": true,
6048
+ * "readinessAnonymize": true
6049
+ * }
6050
+ */
6051
+ "application/json": components["schemas"]["EraseInsightsPersonBodyDto"];
6052
+ };
6053
+ };
6054
+ responses: {
6055
+ /** @description Person data erased or anonymized */
6056
+ 200: {
6057
+ headers: {
6058
+ [name: string]: unknown;
6059
+ };
6060
+ content: {
6061
+ "application/json": components["schemas"]["EraseInsightsPersonResultDto"];
6062
+ };
6063
+ };
6064
+ /** @description Invalid body or personId */
6065
+ 400: {
6066
+ headers: {
6067
+ [name: string]: unknown;
6068
+ };
6069
+ content: {
6070
+ "application/json": components["schemas"]["ErrorMessageDto"];
6071
+ };
6072
+ };
6073
+ 401: components["responses"]["Unauthorized"];
6074
+ 403: components["responses"]["Forbidden"];
6075
+ /** @description Workspace not found, malformed workspaceId, or person not in org chart */
6076
+ 404: {
6077
+ headers: {
6078
+ [name: string]: unknown;
6079
+ };
6080
+ content: {
6081
+ "application/json": components["schemas"]["ErrorMessageDto"];
6082
+ };
6083
+ };
6084
+ };
6085
+ };
5979
6086
  getAiUsageSpendAggregatedTeams: {
5980
6087
  parameters: {
5981
6088
  query?: {