@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.
- package/dist/generated/openapi.d.ts +116 -15
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/openapi/openapi.yaml +172 -16
- package/package.json +1 -1
- package/src/generated/openapi.ts +116 -15
- package/src/index.ts +8 -3
package/openapi/openapi.yaml
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version: 2.4.
|
|
4
|
+
version: 2.4.5
|
|
5
5
|
description: >
|
|
6
6
|
Contract surface for the AI Driven SDLC backend used by ThinkAI.
|
|
7
7
|
Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
|
|
8
8
|
Legacy tenant-scoped routes (`/tenants/{tenantId}/...`, `/me/tenants`) were removed from runtime.
|
|
9
9
|
Legacy HTTP routes that exist on the server but are not listed here (for example
|
|
10
|
-
`PUT /workspaces/{workspaceId}/dashboard-settings`) remain supported for existing
|
|
10
|
+
`PUT /workspaces/{workspaceId}/dashboard-settings`) remain supported for existing API clients;
|
|
11
11
|
prefer OpenAPI-documented equivalents where available. Removal will be coordinated with ThinkAI releases.
|
|
12
12
|
|
|
13
13
|
**Acceptance intent:** Per-operation behavior (happy paths, validation, and representative errors)
|
|
@@ -235,18 +235,17 @@ paths:
|
|
|
235
235
|
operationId: getTenantOrgChart
|
|
236
236
|
parameters:
|
|
237
237
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
238
|
-
- name: withScores
|
|
239
|
-
in: query
|
|
240
|
-
schema: { type: boolean }
|
|
241
238
|
responses:
|
|
242
239
|
"200":
|
|
243
|
-
description:
|
|
240
|
+
description: SPA org structure chart (`spa_org_chart`; per-node scores not included — use GET /config for scoring tree)
|
|
244
241
|
content:
|
|
245
242
|
application/json:
|
|
246
243
|
schema:
|
|
247
244
|
$ref: "#/components/schemas/OrgChartDto"
|
|
248
245
|
"401":
|
|
249
246
|
$ref: "#/components/responses/Unauthorized"
|
|
247
|
+
"403":
|
|
248
|
+
$ref: "#/components/responses/Forbidden"
|
|
250
249
|
"404":
|
|
251
250
|
description: Workspace not found
|
|
252
251
|
post:
|
|
@@ -267,13 +266,17 @@ paths:
|
|
|
267
266
|
content:
|
|
268
267
|
application/json:
|
|
269
268
|
schema:
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
269
|
+
$ref: "#/components/schemas/OrgChartSaveResultDto"
|
|
270
|
+
"400":
|
|
271
|
+
description: Invalid request body or chart limits exceeded
|
|
272
|
+
content:
|
|
273
|
+
application/json:
|
|
274
|
+
schema:
|
|
275
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
275
276
|
"401":
|
|
276
277
|
$ref: "#/components/responses/Unauthorized"
|
|
278
|
+
"403":
|
|
279
|
+
$ref: "#/components/responses/Forbidden"
|
|
277
280
|
|
|
278
281
|
/workspaces/{workspaceId}/config:
|
|
279
282
|
get:
|
|
@@ -2140,6 +2143,10 @@ paths:
|
|
|
2140
2143
|
post:
|
|
2141
2144
|
tags: [OrgChartImport]
|
|
2142
2145
|
summary: Import org chart from Supabase storage path
|
|
2146
|
+
description: >
|
|
2147
|
+
Parse-only. Downloads the CSV at `storagePath` from the `org-charts` bucket and returns
|
|
2148
|
+
`persons` and `errors`. Does not persist to `spa_org_chart` or `org_chart`. The SPA
|
|
2149
|
+
derives teams client-side and saves the org structure via `POST /workspaces/{workspaceId}/org-chart`.
|
|
2143
2150
|
operationId: postOrgChartImport
|
|
2144
2151
|
parameters:
|
|
2145
2152
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
@@ -2151,14 +2158,39 @@ paths:
|
|
|
2151
2158
|
$ref: "#/components/schemas/OrgChartImportBodyDto"
|
|
2152
2159
|
responses:
|
|
2153
2160
|
"200":
|
|
2154
|
-
description: Parsed persons
|
|
2161
|
+
description: Parsed persons from uploaded CSV (not persisted server-side)
|
|
2155
2162
|
content:
|
|
2156
2163
|
application/json:
|
|
2157
2164
|
schema:
|
|
2158
|
-
|
|
2159
|
-
|
|
2165
|
+
$ref: "#/components/schemas/OrgChartImportResultDto"
|
|
2166
|
+
"400":
|
|
2167
|
+
description: Invalid body or storage path
|
|
2168
|
+
content:
|
|
2169
|
+
application/json:
|
|
2170
|
+
schema:
|
|
2171
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2160
2172
|
"401":
|
|
2161
2173
|
$ref: "#/components/responses/Unauthorized"
|
|
2174
|
+
"403":
|
|
2175
|
+
$ref: "#/components/responses/Forbidden"
|
|
2176
|
+
"404":
|
|
2177
|
+
description: Storage object not found
|
|
2178
|
+
content:
|
|
2179
|
+
application/json:
|
|
2180
|
+
schema:
|
|
2181
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2182
|
+
"502":
|
|
2183
|
+
description: Failed to download file from storage
|
|
2184
|
+
content:
|
|
2185
|
+
application/json:
|
|
2186
|
+
schema:
|
|
2187
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2188
|
+
"503":
|
|
2189
|
+
description: Storage import not configured or service unavailable
|
|
2190
|
+
content:
|
|
2191
|
+
application/json:
|
|
2192
|
+
schema:
|
|
2193
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
2162
2194
|
|
|
2163
2195
|
components:
|
|
2164
2196
|
securitySchemes:
|
|
@@ -2258,6 +2290,26 @@ components:
|
|
|
2258
2290
|
type: string
|
|
2259
2291
|
enum: [admin, editor, viewer]
|
|
2260
2292
|
|
|
2293
|
+
OrgChartNodeDto:
|
|
2294
|
+
type: object
|
|
2295
|
+
additionalProperties: false
|
|
2296
|
+
required: [id, name, type]
|
|
2297
|
+
properties:
|
|
2298
|
+
id:
|
|
2299
|
+
type: string
|
|
2300
|
+
name:
|
|
2301
|
+
type: string
|
|
2302
|
+
type:
|
|
2303
|
+
type: string
|
|
2304
|
+
enum: [org, department, team, person]
|
|
2305
|
+
external_ids:
|
|
2306
|
+
type: object
|
|
2307
|
+
additionalProperties: { type: string }
|
|
2308
|
+
children:
|
|
2309
|
+
type: array
|
|
2310
|
+
items:
|
|
2311
|
+
$ref: "#/components/schemas/OrgChartNodeDto"
|
|
2312
|
+
|
|
2261
2313
|
OrgChartTreeNodeDto:
|
|
2262
2314
|
type: object
|
|
2263
2315
|
required: [id]
|
|
@@ -2284,13 +2336,69 @@ components:
|
|
|
2284
2336
|
items:
|
|
2285
2337
|
$ref: "#/components/schemas/OrgChartTreeNodeDto"
|
|
2286
2338
|
|
|
2287
|
-
|
|
2339
|
+
ScoringOrgChartDto:
|
|
2288
2340
|
type: object
|
|
2341
|
+
additionalProperties: false
|
|
2289
2342
|
required: [root]
|
|
2290
2343
|
properties:
|
|
2291
2344
|
root:
|
|
2292
2345
|
$ref: "#/components/schemas/OrgChartTreeNodeDto"
|
|
2293
2346
|
|
|
2347
|
+
OrgChartDto:
|
|
2348
|
+
type: object
|
|
2349
|
+
additionalProperties: false
|
|
2350
|
+
required: [root]
|
|
2351
|
+
properties:
|
|
2352
|
+
root:
|
|
2353
|
+
$ref: "#/components/schemas/OrgChartNodeDto"
|
|
2354
|
+
|
|
2355
|
+
OrgChartPersonDto:
|
|
2356
|
+
type: object
|
|
2357
|
+
additionalProperties: false
|
|
2358
|
+
required: [employeeId, name, email, title, department, team, managerId, location]
|
|
2359
|
+
properties:
|
|
2360
|
+
employeeId:
|
|
2361
|
+
type: string
|
|
2362
|
+
name:
|
|
2363
|
+
type: string
|
|
2364
|
+
email:
|
|
2365
|
+
type: string
|
|
2366
|
+
title:
|
|
2367
|
+
type: string
|
|
2368
|
+
department:
|
|
2369
|
+
type: string
|
|
2370
|
+
team:
|
|
2371
|
+
type: string
|
|
2372
|
+
managerId:
|
|
2373
|
+
type: string
|
|
2374
|
+
location:
|
|
2375
|
+
type: string
|
|
2376
|
+
|
|
2377
|
+
OrgChartImportResultDto:
|
|
2378
|
+
type: object
|
|
2379
|
+
additionalProperties: false
|
|
2380
|
+
required: [persons, errors]
|
|
2381
|
+
properties:
|
|
2382
|
+
persons:
|
|
2383
|
+
type: array
|
|
2384
|
+
items:
|
|
2385
|
+
$ref: "#/components/schemas/OrgChartPersonDto"
|
|
2386
|
+
errors:
|
|
2387
|
+
type: array
|
|
2388
|
+
items:
|
|
2389
|
+
type: string
|
|
2390
|
+
|
|
2391
|
+
OrgChartSaveResultDto:
|
|
2392
|
+
type: object
|
|
2393
|
+
additionalProperties: false
|
|
2394
|
+
required: [ok, tenantId]
|
|
2395
|
+
properties:
|
|
2396
|
+
ok:
|
|
2397
|
+
type: boolean
|
|
2398
|
+
tenantId:
|
|
2399
|
+
type: string
|
|
2400
|
+
format: uuid
|
|
2401
|
+
|
|
2294
2402
|
TenantSourceEntryDto:
|
|
2295
2403
|
type: object
|
|
2296
2404
|
required: [type]
|
|
@@ -2337,7 +2445,7 @@ components:
|
|
|
2337
2445
|
orgChart:
|
|
2338
2446
|
nullable: true
|
|
2339
2447
|
allOf:
|
|
2340
|
-
- $ref: "#/components/schemas/
|
|
2448
|
+
- $ref: "#/components/schemas/ScoringOrgChartDto"
|
|
2341
2449
|
region:
|
|
2342
2450
|
type: string
|
|
2343
2451
|
nullable: true
|
|
@@ -3022,6 +3130,29 @@ components:
|
|
|
3022
3130
|
format: date-time
|
|
3023
3131
|
nullable: true
|
|
3024
3132
|
|
|
3133
|
+
ReadinessCriteriaSummaryDto:
|
|
3134
|
+
type: object
|
|
3135
|
+
required: [total, met, partial, gap, na, blocked]
|
|
3136
|
+
properties:
|
|
3137
|
+
total:
|
|
3138
|
+
type: integer
|
|
3139
|
+
minimum: 0
|
|
3140
|
+
met:
|
|
3141
|
+
type: integer
|
|
3142
|
+
minimum: 0
|
|
3143
|
+
partial:
|
|
3144
|
+
type: integer
|
|
3145
|
+
minimum: 0
|
|
3146
|
+
gap:
|
|
3147
|
+
type: integer
|
|
3148
|
+
minimum: 0
|
|
3149
|
+
na:
|
|
3150
|
+
type: integer
|
|
3151
|
+
minimum: 0
|
|
3152
|
+
blocked:
|
|
3153
|
+
type: integer
|
|
3154
|
+
minimum: 0
|
|
3155
|
+
|
|
3025
3156
|
ReadinessIssueDto:
|
|
3026
3157
|
type: object
|
|
3027
3158
|
required: [id, dimensionId, severity, title, description, fixStatus]
|
|
@@ -3037,9 +3168,16 @@ components:
|
|
|
3037
3168
|
title:
|
|
3038
3169
|
type: string
|
|
3039
3170
|
maxLength: 256
|
|
3171
|
+
description: Human-readable rubric label (e.g. Agent instructions)
|
|
3040
3172
|
description:
|
|
3041
3173
|
type: string
|
|
3042
3174
|
maxLength: 2048
|
|
3175
|
+
description: Scan notes, remediation, and optional detection gist for tooltips
|
|
3176
|
+
rubricId:
|
|
3177
|
+
type: string
|
|
3178
|
+
maxLength: 16
|
|
3179
|
+
nullable: true
|
|
3180
|
+
description: Rubric criterion id (e.g. A1, B3)
|
|
3043
3181
|
filePath:
|
|
3044
3182
|
type: string
|
|
3045
3183
|
maxLength: 512
|
|
@@ -3057,9 +3195,22 @@ components:
|
|
|
3057
3195
|
score:
|
|
3058
3196
|
type: integer
|
|
3059
3197
|
minimum: 0
|
|
3198
|
+
description: Dimension points earned (weighted rubric average × maxScore, rounded)
|
|
3060
3199
|
maxScore:
|
|
3061
3200
|
type: integer
|
|
3062
3201
|
minimum: 0
|
|
3202
|
+
description: Maximum points for this dimension pillar
|
|
3203
|
+
scorePercent:
|
|
3204
|
+
type: integer
|
|
3205
|
+
minimum: 0
|
|
3206
|
+
maximum: 100
|
|
3207
|
+
description: score / maxScore as 0–100 when maxScore > 0
|
|
3208
|
+
criteriaSummary:
|
|
3209
|
+
type: object
|
|
3210
|
+
nullable: true
|
|
3211
|
+
allOf:
|
|
3212
|
+
- $ref: "#/components/schemas/ReadinessCriteriaSummaryDto"
|
|
3213
|
+
description: Per-criterion status counts from the latest successful scan
|
|
3063
3214
|
issues:
|
|
3064
3215
|
type: array
|
|
3065
3216
|
items:
|
|
@@ -3157,6 +3308,10 @@ components:
|
|
|
3157
3308
|
description:
|
|
3158
3309
|
type: string
|
|
3159
3310
|
maxLength: 2048
|
|
3311
|
+
rubricId:
|
|
3312
|
+
type: string
|
|
3313
|
+
maxLength: 16
|
|
3314
|
+
nullable: true
|
|
3160
3315
|
filePath:
|
|
3161
3316
|
type: string
|
|
3162
3317
|
maxLength: 512
|
|
@@ -3564,6 +3719,7 @@ components:
|
|
|
3564
3719
|
|
|
3565
3720
|
OrgChartImportBodyDto:
|
|
3566
3721
|
type: object
|
|
3722
|
+
additionalProperties: false
|
|
3567
3723
|
required: [storagePath]
|
|
3568
3724
|
properties:
|
|
3569
3725
|
storagePath:
|
package/package.json
CHANGED
package/src/generated/openapi.ts
CHANGED
|
@@ -1032,7 +1032,10 @@ export interface paths {
|
|
|
1032
1032
|
};
|
|
1033
1033
|
get?: never;
|
|
1034
1034
|
put?: never;
|
|
1035
|
-
/**
|
|
1035
|
+
/**
|
|
1036
|
+
* Import org chart from Supabase storage path
|
|
1037
|
+
* @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`.
|
|
1038
|
+
*/
|
|
1036
1039
|
post: operations["postOrgChartImport"];
|
|
1037
1040
|
delete?: never;
|
|
1038
1041
|
options?: never;
|
|
@@ -1066,6 +1069,16 @@ export interface components {
|
|
|
1066
1069
|
/** @enum {string} */
|
|
1067
1070
|
role: "admin" | "editor" | "viewer";
|
|
1068
1071
|
};
|
|
1072
|
+
OrgChartNodeDto: {
|
|
1073
|
+
id: string;
|
|
1074
|
+
name: string;
|
|
1075
|
+
/** @enum {string} */
|
|
1076
|
+
type: "org" | "department" | "team" | "person";
|
|
1077
|
+
external_ids?: {
|
|
1078
|
+
[key: string]: string;
|
|
1079
|
+
};
|
|
1080
|
+
children?: components["schemas"]["OrgChartNodeDto"][];
|
|
1081
|
+
};
|
|
1069
1082
|
OrgChartTreeNodeDto: {
|
|
1070
1083
|
id: string;
|
|
1071
1084
|
name?: string;
|
|
@@ -1079,9 +1092,31 @@ export interface components {
|
|
|
1079
1092
|
};
|
|
1080
1093
|
children?: components["schemas"]["OrgChartTreeNodeDto"][];
|
|
1081
1094
|
};
|
|
1082
|
-
|
|
1095
|
+
ScoringOrgChartDto: {
|
|
1083
1096
|
root: components["schemas"]["OrgChartTreeNodeDto"];
|
|
1084
1097
|
};
|
|
1098
|
+
OrgChartDto: {
|
|
1099
|
+
root: components["schemas"]["OrgChartNodeDto"];
|
|
1100
|
+
};
|
|
1101
|
+
OrgChartPersonDto: {
|
|
1102
|
+
employeeId: string;
|
|
1103
|
+
name: string;
|
|
1104
|
+
email: string;
|
|
1105
|
+
title: string;
|
|
1106
|
+
department: string;
|
|
1107
|
+
team: string;
|
|
1108
|
+
managerId: string;
|
|
1109
|
+
location: string;
|
|
1110
|
+
};
|
|
1111
|
+
OrgChartImportResultDto: {
|
|
1112
|
+
persons: components["schemas"]["OrgChartPersonDto"][];
|
|
1113
|
+
errors: string[];
|
|
1114
|
+
};
|
|
1115
|
+
OrgChartSaveResultDto: {
|
|
1116
|
+
ok: boolean;
|
|
1117
|
+
/** Format: uuid */
|
|
1118
|
+
tenantId: string;
|
|
1119
|
+
};
|
|
1085
1120
|
TenantSourceEntryDto: {
|
|
1086
1121
|
type: string;
|
|
1087
1122
|
} & {
|
|
@@ -1102,7 +1137,7 @@ export interface components {
|
|
|
1102
1137
|
};
|
|
1103
1138
|
WorkspaceConfigDto: {
|
|
1104
1139
|
sources: components["schemas"]["TenantSourceEntryDto"][];
|
|
1105
|
-
orgChart?: components["schemas"]["
|
|
1140
|
+
orgChart?: components["schemas"]["ScoringOrgChartDto"] | null;
|
|
1106
1141
|
/** @enum {string|null} */
|
|
1107
1142
|
region?: "us" | "eu" | "me" | null;
|
|
1108
1143
|
};
|
|
@@ -1420,22 +1455,40 @@ export interface components {
|
|
|
1420
1455
|
/** Format: date-time */
|
|
1421
1456
|
finishedAt: string | null;
|
|
1422
1457
|
};
|
|
1458
|
+
ReadinessCriteriaSummaryDto: {
|
|
1459
|
+
total: number;
|
|
1460
|
+
met: number;
|
|
1461
|
+
partial: number;
|
|
1462
|
+
gap: number;
|
|
1463
|
+
na: number;
|
|
1464
|
+
blocked: number;
|
|
1465
|
+
};
|
|
1423
1466
|
ReadinessIssueDto: {
|
|
1424
1467
|
/** Format: uuid */
|
|
1425
1468
|
id: string;
|
|
1426
1469
|
dimensionId: components["schemas"]["ReadinessDimensionId"];
|
|
1427
1470
|
/** @enum {string} */
|
|
1428
1471
|
severity: "critical" | "high" | "medium" | "low";
|
|
1472
|
+
/** @description Human-readable rubric label (e.g. Agent instructions) */
|
|
1429
1473
|
title: string;
|
|
1474
|
+
/** @description Scan notes, remediation, and optional detection gist for tooltips */
|
|
1430
1475
|
description: string;
|
|
1476
|
+
/** @description Rubric criterion id (e.g. A1, B3) */
|
|
1477
|
+
rubricId?: string | null;
|
|
1431
1478
|
filePath?: string | null;
|
|
1432
1479
|
/** @enum {string} */
|
|
1433
1480
|
fixStatus: "open" | "pr-pending" | "fixed";
|
|
1434
1481
|
};
|
|
1435
1482
|
DimensionScoreDto: {
|
|
1436
1483
|
dimensionId: components["schemas"]["ReadinessDimensionId"];
|
|
1484
|
+
/** @description Dimension points earned (weighted rubric average × maxScore, rounded) */
|
|
1437
1485
|
score: number;
|
|
1486
|
+
/** @description Maximum points for this dimension pillar */
|
|
1438
1487
|
maxScore: number;
|
|
1488
|
+
/** @description score / maxScore as 0–100 when maxScore > 0 */
|
|
1489
|
+
scorePercent?: number;
|
|
1490
|
+
/** @description Per-criterion status counts from the latest successful scan */
|
|
1491
|
+
criteriaSummary?: components["schemas"]["ReadinessCriteriaSummaryDto"] | null;
|
|
1439
1492
|
issues: components["schemas"]["ReadinessIssueDto"][];
|
|
1440
1493
|
};
|
|
1441
1494
|
RepoReadinessScoreDto: {
|
|
@@ -1476,6 +1529,7 @@ export interface components {
|
|
|
1476
1529
|
severity: "critical" | "high" | "medium" | "low";
|
|
1477
1530
|
title: string;
|
|
1478
1531
|
description: string;
|
|
1532
|
+
rubricId?: string | null;
|
|
1479
1533
|
filePath: string | null;
|
|
1480
1534
|
/** @enum {string} */
|
|
1481
1535
|
fixStatus: "open" | "pr-pending" | "fixed";
|
|
@@ -1702,8 +1756,13 @@ export type TeamMemberDto = components['schemas']['TeamMemberDto'];
|
|
|
1702
1756
|
export type TeamMemberListDto = components['schemas']['TeamMemberListDto'];
|
|
1703
1757
|
export type InviteTeamMemberBodyDto = components['schemas']['InviteTeamMemberBodyDto'];
|
|
1704
1758
|
export type UpdateTeamMemberRoleBodyDto = components['schemas']['UpdateTeamMemberRoleBodyDto'];
|
|
1759
|
+
export type OrgChartNodeDto = components['schemas']['OrgChartNodeDto'];
|
|
1705
1760
|
export type OrgChartTreeNodeDto = components['schemas']['OrgChartTreeNodeDto'];
|
|
1761
|
+
export type ScoringOrgChartDto = components['schemas']['ScoringOrgChartDto'];
|
|
1706
1762
|
export type OrgChartDto = components['schemas']['OrgChartDto'];
|
|
1763
|
+
export type OrgChartPersonDto = components['schemas']['OrgChartPersonDto'];
|
|
1764
|
+
export type OrgChartImportResultDto = components['schemas']['OrgChartImportResultDto'];
|
|
1765
|
+
export type OrgChartSaveResultDto = components['schemas']['OrgChartSaveResultDto'];
|
|
1707
1766
|
export type TenantSourceEntryDto = components['schemas']['TenantSourceEntryDto'];
|
|
1708
1767
|
export type CursorSourceDto = components['schemas']['CursorSourceDto'];
|
|
1709
1768
|
export type WorkspaceConfigDto = components['schemas']['WorkspaceConfigDto'];
|
|
@@ -1747,6 +1806,7 @@ export type ReadinessAnalyzeResponseDto = components['schemas']['ReadinessAnalyz
|
|
|
1747
1806
|
export type ReadinessRunStatusDto = components['schemas']['ReadinessRunStatusDto'];
|
|
1748
1807
|
export type ReadinessRepoAnalysisStatusDto = components['schemas']['ReadinessRepoAnalysisStatusDto'];
|
|
1749
1808
|
export type ReadinessRunSummaryDto = components['schemas']['ReadinessRunSummaryDto'];
|
|
1809
|
+
export type ReadinessCriteriaSummaryDto = components['schemas']['ReadinessCriteriaSummaryDto'];
|
|
1750
1810
|
export type ReadinessIssueDto = components['schemas']['ReadinessIssueDto'];
|
|
1751
1811
|
export type DimensionScoreDto = components['schemas']['DimensionScoreDto'];
|
|
1752
1812
|
export type RepoReadinessScoreDto = components['schemas']['RepoReadinessScoreDto'];
|
|
@@ -2015,9 +2075,7 @@ export interface operations {
|
|
|
2015
2075
|
};
|
|
2016
2076
|
getTenantOrgChart: {
|
|
2017
2077
|
parameters: {
|
|
2018
|
-
query?:
|
|
2019
|
-
withScores?: boolean;
|
|
2020
|
-
};
|
|
2078
|
+
query?: never;
|
|
2021
2079
|
header?: never;
|
|
2022
2080
|
path: {
|
|
2023
2081
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
@@ -2026,7 +2084,7 @@ export interface operations {
|
|
|
2026
2084
|
};
|
|
2027
2085
|
requestBody?: never;
|
|
2028
2086
|
responses: {
|
|
2029
|
-
/** @description
|
|
2087
|
+
/** @description SPA org structure chart (`spa_org_chart`; per-node scores not included — use GET /config for scoring tree) */
|
|
2030
2088
|
200: {
|
|
2031
2089
|
headers: {
|
|
2032
2090
|
[name: string]: unknown;
|
|
@@ -2036,6 +2094,7 @@ export interface operations {
|
|
|
2036
2094
|
};
|
|
2037
2095
|
};
|
|
2038
2096
|
401: components["responses"]["Unauthorized"];
|
|
2097
|
+
403: components["responses"]["Forbidden"];
|
|
2039
2098
|
/** @description Workspace not found */
|
|
2040
2099
|
404: {
|
|
2041
2100
|
headers: {
|
|
@@ -2066,13 +2125,20 @@ export interface operations {
|
|
|
2066
2125
|
[name: string]: unknown;
|
|
2067
2126
|
};
|
|
2068
2127
|
content: {
|
|
2069
|
-
"application/json":
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2128
|
+
"application/json": components["schemas"]["OrgChartSaveResultDto"];
|
|
2129
|
+
};
|
|
2130
|
+
};
|
|
2131
|
+
/** @description Invalid request body or chart limits exceeded */
|
|
2132
|
+
400: {
|
|
2133
|
+
headers: {
|
|
2134
|
+
[name: string]: unknown;
|
|
2135
|
+
};
|
|
2136
|
+
content: {
|
|
2137
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
2073
2138
|
};
|
|
2074
2139
|
};
|
|
2075
2140
|
401: components["responses"]["Unauthorized"];
|
|
2141
|
+
403: components["responses"]["Forbidden"];
|
|
2076
2142
|
};
|
|
2077
2143
|
};
|
|
2078
2144
|
getWorkspaceConfig: {
|
|
@@ -4035,18 +4101,53 @@ export interface operations {
|
|
|
4035
4101
|
};
|
|
4036
4102
|
};
|
|
4037
4103
|
responses: {
|
|
4038
|
-
/** @description Parsed persons
|
|
4104
|
+
/** @description Parsed persons from uploaded CSV (not persisted server-side) */
|
|
4039
4105
|
200: {
|
|
4040
4106
|
headers: {
|
|
4041
4107
|
[name: string]: unknown;
|
|
4042
4108
|
};
|
|
4043
4109
|
content: {
|
|
4044
|
-
"application/json":
|
|
4045
|
-
|
|
4046
|
-
|
|
4110
|
+
"application/json": components["schemas"]["OrgChartImportResultDto"];
|
|
4111
|
+
};
|
|
4112
|
+
};
|
|
4113
|
+
/** @description Invalid body or storage path */
|
|
4114
|
+
400: {
|
|
4115
|
+
headers: {
|
|
4116
|
+
[name: string]: unknown;
|
|
4117
|
+
};
|
|
4118
|
+
content: {
|
|
4119
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
4047
4120
|
};
|
|
4048
4121
|
};
|
|
4049
4122
|
401: components["responses"]["Unauthorized"];
|
|
4123
|
+
403: components["responses"]["Forbidden"];
|
|
4124
|
+
/** @description Storage object not found */
|
|
4125
|
+
404: {
|
|
4126
|
+
headers: {
|
|
4127
|
+
[name: string]: unknown;
|
|
4128
|
+
};
|
|
4129
|
+
content: {
|
|
4130
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
4131
|
+
};
|
|
4132
|
+
};
|
|
4133
|
+
/** @description Failed to download file from storage */
|
|
4134
|
+
502: {
|
|
4135
|
+
headers: {
|
|
4136
|
+
[name: string]: unknown;
|
|
4137
|
+
};
|
|
4138
|
+
content: {
|
|
4139
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
4140
|
+
};
|
|
4141
|
+
};
|
|
4142
|
+
/** @description Storage import not configured or service unavailable */
|
|
4143
|
+
503: {
|
|
4144
|
+
headers: {
|
|
4145
|
+
[name: string]: unknown;
|
|
4146
|
+
};
|
|
4147
|
+
content: {
|
|
4148
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
4149
|
+
};
|
|
4150
|
+
};
|
|
4050
4151
|
};
|
|
4051
4152
|
};
|
|
4052
4153
|
}
|
package/src/index.ts
CHANGED
|
@@ -179,18 +179,23 @@ export interface OrgChartTreeNodeDto {
|
|
|
179
179
|
external_ids?: Record<string, string>;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
/** Org chart tree node with computed scores (Option B, α=0.2).
|
|
182
|
+
/** Org chart tree node with computed scores (Option B, α=0.2). Reserved for a future scored-tree API. */
|
|
183
183
|
export interface OrgChartTreeNodeWithScoreDto extends OrgChartTreeNodeDto {
|
|
184
184
|
score?: number | null;
|
|
185
185
|
individualUpi?: number | null;
|
|
186
186
|
children?: OrgChartTreeNodeWithScoreDto[];
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
/** M7: Org chart response (tree only). */
|
|
189
|
+
/** M7: Org chart response (tree only). Legacy hand-written shape; prefer generated `OrgChartDto` for SPA routes. */
|
|
190
190
|
export interface OrgChartDto {
|
|
191
191
|
root: OrgChartTreeNodeDto;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
/** Batch scoring person tree returned by GET /workspaces/{workspaceId}/config (`org_chart` column). */
|
|
195
|
+
export interface ScoringOrgChartDto {
|
|
196
|
+
root: OrgChartTreeNodeDto;
|
|
197
|
+
}
|
|
198
|
+
|
|
194
199
|
/** Summary of a person derived from the tenant's org chart. */
|
|
195
200
|
export interface PersonSummaryDto {
|
|
196
201
|
/** Canonical person identifier (e.g. work email). */
|
|
@@ -222,7 +227,7 @@ export interface TestConnectionResponseDto {
|
|
|
222
227
|
/** Workspace integration config (sources; optionally org chart for Home; optionally region for data residency). */
|
|
223
228
|
export interface WorkspaceConfigDto {
|
|
224
229
|
sources: TenantSourceEntryDto[];
|
|
225
|
-
orgChart?:
|
|
230
|
+
orgChart?: ScoringOrgChartDto | null;
|
|
226
231
|
/** Region for data residency (us, eu, me). Null or absent = legacy/single-region. */
|
|
227
232
|
region?: string | null;
|
|
228
233
|
}
|