@thinkai/tai-api-contract 2.4.3 → 2.4.5

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.
@@ -1031,7 +1031,10 @@ export interface paths {
1031
1031
  };
1032
1032
  get?: never;
1033
1033
  put?: never;
1034
- /** Import org chart from Supabase storage path */
1034
+ /**
1035
+ * Import org chart from Supabase storage path
1036
+ * @description Parse-only. Downloads the CSV at `storagePath` from the `org-charts` bucket and returns `persons` and `errors`. Does not persist to `spa_org_chart` or `org_chart`. The SPA derives teams client-side and saves the org structure via `POST /workspaces/{workspaceId}/org-chart`.
1037
+ */
1035
1038
  post: operations["postOrgChartImport"];
1036
1039
  delete?: never;
1037
1040
  options?: never;
@@ -1065,6 +1068,16 @@ export interface components {
1065
1068
  /** @enum {string} */
1066
1069
  role: "admin" | "editor" | "viewer";
1067
1070
  };
1071
+ OrgChartNodeDto: {
1072
+ id: string;
1073
+ name: string;
1074
+ /** @enum {string} */
1075
+ type: "org" | "department" | "team" | "person";
1076
+ external_ids?: {
1077
+ [key: string]: string;
1078
+ };
1079
+ children?: components["schemas"]["OrgChartNodeDto"][];
1080
+ };
1068
1081
  OrgChartTreeNodeDto: {
1069
1082
  id: string;
1070
1083
  name?: string;
@@ -1078,9 +1091,31 @@ export interface components {
1078
1091
  };
1079
1092
  children?: components["schemas"]["OrgChartTreeNodeDto"][];
1080
1093
  };
1081
- OrgChartDto: {
1094
+ ScoringOrgChartDto: {
1082
1095
  root: components["schemas"]["OrgChartTreeNodeDto"];
1083
1096
  };
1097
+ OrgChartDto: {
1098
+ root: components["schemas"]["OrgChartNodeDto"];
1099
+ };
1100
+ OrgChartPersonDto: {
1101
+ employeeId: string;
1102
+ name: string;
1103
+ email: string;
1104
+ title: string;
1105
+ department: string;
1106
+ team: string;
1107
+ managerId: string;
1108
+ location: string;
1109
+ };
1110
+ OrgChartImportResultDto: {
1111
+ persons: components["schemas"]["OrgChartPersonDto"][];
1112
+ errors: string[];
1113
+ };
1114
+ OrgChartSaveResultDto: {
1115
+ ok: boolean;
1116
+ /** Format: uuid */
1117
+ tenantId: string;
1118
+ };
1084
1119
  TenantSourceEntryDto: {
1085
1120
  type: string;
1086
1121
  } & {
@@ -1101,7 +1136,7 @@ export interface components {
1101
1136
  };
1102
1137
  WorkspaceConfigDto: {
1103
1138
  sources: components["schemas"]["TenantSourceEntryDto"][];
1104
- orgChart?: components["schemas"]["OrgChartDto"] | null;
1139
+ orgChart?: components["schemas"]["ScoringOrgChartDto"] | null;
1105
1140
  /** @enum {string|null} */
1106
1141
  region?: "us" | "eu" | "me" | null;
1107
1142
  };
@@ -1419,22 +1454,40 @@ export interface components {
1419
1454
  /** Format: date-time */
1420
1455
  finishedAt: string | null;
1421
1456
  };
1457
+ ReadinessCriteriaSummaryDto: {
1458
+ total: number;
1459
+ met: number;
1460
+ partial: number;
1461
+ gap: number;
1462
+ na: number;
1463
+ blocked: number;
1464
+ };
1422
1465
  ReadinessIssueDto: {
1423
1466
  /** Format: uuid */
1424
1467
  id: string;
1425
1468
  dimensionId: components["schemas"]["ReadinessDimensionId"];
1426
1469
  /** @enum {string} */
1427
1470
  severity: "critical" | "high" | "medium" | "low";
1471
+ /** @description Human-readable rubric label (e.g. Agent instructions) */
1428
1472
  title: string;
1473
+ /** @description Scan notes, remediation, and optional detection gist for tooltips */
1429
1474
  description: string;
1475
+ /** @description Rubric criterion id (e.g. A1, B3) */
1476
+ rubricId?: string | null;
1430
1477
  filePath?: string | null;
1431
1478
  /** @enum {string} */
1432
1479
  fixStatus: "open" | "pr-pending" | "fixed";
1433
1480
  };
1434
1481
  DimensionScoreDto: {
1435
1482
  dimensionId: components["schemas"]["ReadinessDimensionId"];
1483
+ /** @description Dimension points earned (weighted rubric average × maxScore, rounded) */
1436
1484
  score: number;
1485
+ /** @description Maximum points for this dimension pillar */
1437
1486
  maxScore: number;
1487
+ /** @description score / maxScore as 0–100 when maxScore > 0 */
1488
+ scorePercent?: number;
1489
+ /** @description Per-criterion status counts from the latest successful scan */
1490
+ criteriaSummary?: components["schemas"]["ReadinessCriteriaSummaryDto"] | null;
1438
1491
  issues: components["schemas"]["ReadinessIssueDto"][];
1439
1492
  };
1440
1493
  RepoReadinessScoreDto: {
@@ -1475,6 +1528,7 @@ export interface components {
1475
1528
  severity: "critical" | "high" | "medium" | "low";
1476
1529
  title: string;
1477
1530
  description: string;
1531
+ rubricId?: string | null;
1478
1532
  filePath: string | null;
1479
1533
  /** @enum {string} */
1480
1534
  fixStatus: "open" | "pr-pending" | "fixed";
@@ -1701,8 +1755,13 @@ export type TeamMemberDto = components['schemas']['TeamMemberDto'];
1701
1755
  export type TeamMemberListDto = components['schemas']['TeamMemberListDto'];
1702
1756
  export type InviteTeamMemberBodyDto = components['schemas']['InviteTeamMemberBodyDto'];
1703
1757
  export type UpdateTeamMemberRoleBodyDto = components['schemas']['UpdateTeamMemberRoleBodyDto'];
1758
+ export type OrgChartNodeDto = components['schemas']['OrgChartNodeDto'];
1704
1759
  export type OrgChartTreeNodeDto = components['schemas']['OrgChartTreeNodeDto'];
1760
+ export type ScoringOrgChartDto = components['schemas']['ScoringOrgChartDto'];
1705
1761
  export type OrgChartDto = components['schemas']['OrgChartDto'];
1762
+ export type OrgChartPersonDto = components['schemas']['OrgChartPersonDto'];
1763
+ export type OrgChartImportResultDto = components['schemas']['OrgChartImportResultDto'];
1764
+ export type OrgChartSaveResultDto = components['schemas']['OrgChartSaveResultDto'];
1706
1765
  export type TenantSourceEntryDto = components['schemas']['TenantSourceEntryDto'];
1707
1766
  export type CursorSourceDto = components['schemas']['CursorSourceDto'];
1708
1767
  export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
@@ -1746,6 +1805,7 @@ export type ReadinessAnalyzeResponseDto = components['schemas']['ReadinessAnalyz
1746
1805
  export type ReadinessRunStatusDto = components['schemas']['ReadinessRunStatusDto'];
1747
1806
  export type ReadinessRepoAnalysisStatusDto = components['schemas']['ReadinessRepoAnalysisStatusDto'];
1748
1807
  export type ReadinessRunSummaryDto = components['schemas']['ReadinessRunSummaryDto'];
1808
+ export type ReadinessCriteriaSummaryDto = components['schemas']['ReadinessCriteriaSummaryDto'];
1749
1809
  export type ReadinessIssueDto = components['schemas']['ReadinessIssueDto'];
1750
1810
  export type DimensionScoreDto = components['schemas']['DimensionScoreDto'];
1751
1811
  export type RepoReadinessScoreDto = components['schemas']['RepoReadinessScoreDto'];
@@ -2014,9 +2074,7 @@ export interface operations {
2014
2074
  };
2015
2075
  getTenantOrgChart: {
2016
2076
  parameters: {
2017
- query?: {
2018
- withScores?: boolean;
2019
- };
2077
+ query?: never;
2020
2078
  header?: never;
2021
2079
  path: {
2022
2080
  workspaceId: components["parameters"]["WorkspaceId"];
@@ -2025,7 +2083,7 @@ export interface operations {
2025
2083
  };
2026
2084
  requestBody?: never;
2027
2085
  responses: {
2028
- /** @description Org chart (optionally with per-node scores) */
2086
+ /** @description SPA org structure chart (`spa_org_chart`; per-node scores not included — use GET /config for scoring tree) */
2029
2087
  200: {
2030
2088
  headers: {
2031
2089
  [name: string]: unknown;
@@ -2035,6 +2093,7 @@ export interface operations {
2035
2093
  };
2036
2094
  };
2037
2095
  401: components["responses"]["Unauthorized"];
2096
+ 403: components["responses"]["Forbidden"];
2038
2097
  /** @description Workspace not found */
2039
2098
  404: {
2040
2099
  headers: {
@@ -2065,13 +2124,20 @@ export interface operations {
2065
2124
  [name: string]: unknown;
2066
2125
  };
2067
2126
  content: {
2068
- "application/json": {
2069
- ok: boolean;
2070
- workspaceId: string;
2071
- };
2127
+ "application/json": components["schemas"]["OrgChartSaveResultDto"];
2128
+ };
2129
+ };
2130
+ /** @description Invalid request body or chart limits exceeded */
2131
+ 400: {
2132
+ headers: {
2133
+ [name: string]: unknown;
2134
+ };
2135
+ content: {
2136
+ "application/json": components["schemas"]["ErrorMessageDto"];
2072
2137
  };
2073
2138
  };
2074
2139
  401: components["responses"]["Unauthorized"];
2140
+ 403: components["responses"]["Forbidden"];
2075
2141
  };
2076
2142
  };
2077
2143
  getWorkspaceConfig: {
@@ -4034,18 +4100,53 @@ export interface operations {
4034
4100
  };
4035
4101
  };
4036
4102
  responses: {
4037
- /** @description Parsed persons (shape TBD; align with backend) */
4103
+ /** @description Parsed persons from uploaded CSV (not persisted server-side) */
4038
4104
  200: {
4039
4105
  headers: {
4040
4106
  [name: string]: unknown;
4041
4107
  };
4042
4108
  content: {
4043
- "application/json": {
4044
- [key: string]: unknown;
4045
- };
4109
+ "application/json": components["schemas"]["OrgChartImportResultDto"];
4110
+ };
4111
+ };
4112
+ /** @description Invalid body or storage path */
4113
+ 400: {
4114
+ headers: {
4115
+ [name: string]: unknown;
4116
+ };
4117
+ content: {
4118
+ "application/json": components["schemas"]["ErrorMessageDto"];
4046
4119
  };
4047
4120
  };
4048
4121
  401: components["responses"]["Unauthorized"];
4122
+ 403: components["responses"]["Forbidden"];
4123
+ /** @description Storage object not found */
4124
+ 404: {
4125
+ headers: {
4126
+ [name: string]: unknown;
4127
+ };
4128
+ content: {
4129
+ "application/json": components["schemas"]["ErrorMessageDto"];
4130
+ };
4131
+ };
4132
+ /** @description Failed to download file from storage */
4133
+ 502: {
4134
+ headers: {
4135
+ [name: string]: unknown;
4136
+ };
4137
+ content: {
4138
+ "application/json": components["schemas"]["ErrorMessageDto"];
4139
+ };
4140
+ };
4141
+ /** @description Storage import not configured or service unavailable */
4142
+ 503: {
4143
+ headers: {
4144
+ [name: string]: unknown;
4145
+ };
4146
+ content: {
4147
+ "application/json": components["schemas"]["ErrorMessageDto"];
4148
+ };
4149
+ };
4049
4150
  };
4050
4151
  };
4051
4152
  }