@thinkai/tai-api-contract 2.62.0 → 2.63.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.
- package/dist/generated/openapi.d.ts +234 -0
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -1
- package/openapi/openapi.yaml +319 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +234 -0
- package/src/index.ts +114 -0
|
@@ -922,6 +922,46 @@ export interface paths {
|
|
|
922
922
|
patch?: never;
|
|
923
923
|
trace?: never;
|
|
924
924
|
};
|
|
925
|
+
"/workspaces/{workspaceId}/insights/sdlc/overview": {
|
|
926
|
+
parameters: {
|
|
927
|
+
query?: never;
|
|
928
|
+
header?: never;
|
|
929
|
+
path?: never;
|
|
930
|
+
cookie?: never;
|
|
931
|
+
};
|
|
932
|
+
/**
|
|
933
|
+
* SDLC insights — Engineering Health overview
|
|
934
|
+
* @description Engineering Health dashboard for `/insights/sdlc/overview`. Returns precomputed DORA, CI, collaboration, security, governance, and operational metrics aggregated at calendar-day granularity for the selected window. Filter params mirror other Measure insights routes plus optional `repoIds` scope.
|
|
935
|
+
*/
|
|
936
|
+
get: operations["getSdlcInsightsOverview"];
|
|
937
|
+
put?: never;
|
|
938
|
+
post?: never;
|
|
939
|
+
delete?: never;
|
|
940
|
+
options?: never;
|
|
941
|
+
head?: never;
|
|
942
|
+
patch?: never;
|
|
943
|
+
trace?: never;
|
|
944
|
+
};
|
|
945
|
+
"/workspaces/{workspaceId}/insights/sdlc/drilldown/{metricId}": {
|
|
946
|
+
parameters: {
|
|
947
|
+
query?: never;
|
|
948
|
+
header?: never;
|
|
949
|
+
path?: never;
|
|
950
|
+
cookie?: never;
|
|
951
|
+
};
|
|
952
|
+
/**
|
|
953
|
+
* SDLC insights — metric drill-down entities
|
|
954
|
+
* @description Paginated entity list for a single Engineering Health metric (failed workflow runs, PRs, alerts, etc.). Available only when the overview marks `drilldownAvailable: true`.
|
|
955
|
+
*/
|
|
956
|
+
get: operations["getSdlcInsightsDrilldown"];
|
|
957
|
+
put?: never;
|
|
958
|
+
post?: never;
|
|
959
|
+
delete?: never;
|
|
960
|
+
options?: never;
|
|
961
|
+
head?: never;
|
|
962
|
+
patch?: never;
|
|
963
|
+
trace?: never;
|
|
964
|
+
};
|
|
925
965
|
"/workspaces/{workspaceId}/integrations/ai-tool/{provider}/members": {
|
|
926
966
|
parameters: {
|
|
927
967
|
query?: never;
|
|
@@ -6115,6 +6155,79 @@ export interface components {
|
|
|
6115
6155
|
*/
|
|
6116
6156
|
lastSeenAt: string;
|
|
6117
6157
|
};
|
|
6158
|
+
/** @enum {string} */
|
|
6159
|
+
SdlcModuleId: "dora" | "ci-pipeline" | "collaboration-pr" | "security-risk" | "governance-architecture" | "financial-operational";
|
|
6160
|
+
/** @enum {string} */
|
|
6161
|
+
SdlcMetricId: "dora-deployment-frequency" | "dora-lead-time" | "dora-cfr" | "dora-mttr" | "ci-success-rate" | "ci-duration-p50-p95" | "ci-flakiness" | "ci-queue-wait" | "ci-cache-hit" | "pr-review-time" | "pr-bus-factor" | "pr-size" | "pr-abandonment" | "pr-review-depth" | "pr-draft-duration" | "pr-merge-conflicts" | "pr-commit-density" | "sec-dependabot-backlog" | "sec-vuln-mttr" | "sec-secret-scanning" | "sec-self-approvals" | "sec-unreviewed-merge" | "gov-branch-protection" | "gov-stale-branches" | "gov-orphaned-repos" | "gov-readme-health" | "gov-codeowners" | "gov-issue-pr-linkage" | "fin-gha-minutes" | "fin-copilot-utilization" | "fin-org-inactivity" | "fin-env-drift" | "fin-release-cadence" | "fin-api-rate-limit";
|
|
6162
|
+
/** @enum {string} */
|
|
6163
|
+
SdlcMetricDataStatus: "live" | "preview" | "unavailable";
|
|
6164
|
+
/** @enum {string} */
|
|
6165
|
+
SdlcMetricHealthStatus: "healthy" | "warning" | "critical" | "unknown";
|
|
6166
|
+
/** @enum {string} */
|
|
6167
|
+
SdlcBenchmarkBand: "elite" | "high" | "medium" | "low";
|
|
6168
|
+
SdlcMetricTrendDto: {
|
|
6169
|
+
/** @enum {string} */
|
|
6170
|
+
direction: "up" | "down" | "flat";
|
|
6171
|
+
deltaPercent?: number;
|
|
6172
|
+
};
|
|
6173
|
+
SdlcDailySeriesPointDto: {
|
|
6174
|
+
/**
|
|
6175
|
+
* Format: date
|
|
6176
|
+
* @description Inclusive ISO calendar day (UTC).
|
|
6177
|
+
*/
|
|
6178
|
+
date: string;
|
|
6179
|
+
value: number;
|
|
6180
|
+
};
|
|
6181
|
+
SdlcMetricDto: {
|
|
6182
|
+
id: components["schemas"]["SdlcMetricId"];
|
|
6183
|
+
name: string;
|
|
6184
|
+
dataStatus: components["schemas"]["SdlcMetricDataStatus"];
|
|
6185
|
+
healthStatus: components["schemas"]["SdlcMetricHealthStatus"];
|
|
6186
|
+
value: (number | string) | null;
|
|
6187
|
+
unit?: string;
|
|
6188
|
+
secondaryValue?: (number | string) | null;
|
|
6189
|
+
secondaryLabel?: string;
|
|
6190
|
+
trend?: components["schemas"]["SdlcMetricTrendDto"];
|
|
6191
|
+
benchmarkBand?: components["schemas"]["SdlcBenchmarkBand"];
|
|
6192
|
+
drilldownAvailable: boolean;
|
|
6193
|
+
dailySeries?: components["schemas"]["SdlcDailySeriesPointDto"][];
|
|
6194
|
+
unavailableReason?: string;
|
|
6195
|
+
};
|
|
6196
|
+
SdlcModuleDto: {
|
|
6197
|
+
id: components["schemas"]["SdlcModuleId"];
|
|
6198
|
+
name: string;
|
|
6199
|
+
metrics: components["schemas"]["SdlcMetricDto"][];
|
|
6200
|
+
};
|
|
6201
|
+
SdlcOverviewDto: {
|
|
6202
|
+
rangeId: string;
|
|
6203
|
+
/** Format: date */
|
|
6204
|
+
from: string;
|
|
6205
|
+
/** Format: date */
|
|
6206
|
+
to: string;
|
|
6207
|
+
department: string;
|
|
6208
|
+
team: string;
|
|
6209
|
+
repoIds: string[];
|
|
6210
|
+
/** Format: date-time */
|
|
6211
|
+
asOf: string;
|
|
6212
|
+
modules: components["schemas"]["SdlcModuleDto"][];
|
|
6213
|
+
};
|
|
6214
|
+
SdlcDrilldownItemDto: {
|
|
6215
|
+
id: string;
|
|
6216
|
+
title: string;
|
|
6217
|
+
subtitle?: string;
|
|
6218
|
+
/** Format: uri */
|
|
6219
|
+
url?: string;
|
|
6220
|
+
/** Format: date-time */
|
|
6221
|
+
occurredAt?: string;
|
|
6222
|
+
metadata?: {
|
|
6223
|
+
[key: string]: string | number;
|
|
6224
|
+
};
|
|
6225
|
+
};
|
|
6226
|
+
SdlcDrilldownDto: {
|
|
6227
|
+
metricId: components["schemas"]["SdlcMetricId"];
|
|
6228
|
+
items: components["schemas"]["SdlcDrilldownItemDto"][];
|
|
6229
|
+
nextCursor?: string;
|
|
6230
|
+
};
|
|
6118
6231
|
};
|
|
6119
6232
|
responses: {
|
|
6120
6233
|
/** @description Missing or invalid bearer token */
|
|
@@ -6168,6 +6281,8 @@ export interface components {
|
|
|
6168
6281
|
InsightsProductivityFrom: string;
|
|
6169
6282
|
/** @description Inclusive end of a daily window (`YYYY-MM-DD`). When set with `from`, overrides `rangeId` for day-mode responses (max 180 days). */
|
|
6170
6283
|
InsightsProductivityTo: string;
|
|
6284
|
+
/** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
|
|
6285
|
+
InsightsSdlcRangeId: string;
|
|
6171
6286
|
/** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
|
|
6172
6287
|
InsightsDepartmentFilter: string;
|
|
6173
6288
|
/** @description Page size (default 25, max 100). */
|
|
@@ -6494,6 +6609,18 @@ export type HrisProviderSyncResultDto = components['schemas']['HrisProviderSyncR
|
|
|
6494
6609
|
export type ActivityLogPageDto = components['schemas']['ActivityLogPageDto'];
|
|
6495
6610
|
export type ReadinessTokenUsageRowDto = components['schemas']['ReadinessTokenUsageRowDto'];
|
|
6496
6611
|
export type ReadinessTokenUsageByDimensionRowDto = components['schemas']['ReadinessTokenUsageByDimensionRowDto'];
|
|
6612
|
+
export type SdlcModuleId = components['schemas']['SdlcModuleId'];
|
|
6613
|
+
export type SdlcMetricId = components['schemas']['SdlcMetricId'];
|
|
6614
|
+
export type SdlcMetricDataStatus = components['schemas']['SdlcMetricDataStatus'];
|
|
6615
|
+
export type SdlcMetricHealthStatus = components['schemas']['SdlcMetricHealthStatus'];
|
|
6616
|
+
export type SdlcBenchmarkBand = components['schemas']['SdlcBenchmarkBand'];
|
|
6617
|
+
export type SdlcMetricTrendDto = components['schemas']['SdlcMetricTrendDto'];
|
|
6618
|
+
export type SdlcDailySeriesPointDto = components['schemas']['SdlcDailySeriesPointDto'];
|
|
6619
|
+
export type SdlcMetricDto = components['schemas']['SdlcMetricDto'];
|
|
6620
|
+
export type SdlcModuleDto = components['schemas']['SdlcModuleDto'];
|
|
6621
|
+
export type SdlcOverviewDto = components['schemas']['SdlcOverviewDto'];
|
|
6622
|
+
export type SdlcDrilldownItemDto = components['schemas']['SdlcDrilldownItemDto'];
|
|
6623
|
+
export type SdlcDrilldownDto = components['schemas']['SdlcDrilldownDto'];
|
|
6497
6624
|
export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
6498
6625
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
6499
6626
|
export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
|
|
@@ -6508,6 +6635,7 @@ export type ParameterFixId = components['parameters']['FixId'];
|
|
|
6508
6635
|
export type ParameterInsightsProductivityRangeId = components['parameters']['InsightsProductivityRangeId'];
|
|
6509
6636
|
export type ParameterInsightsProductivityFrom = components['parameters']['InsightsProductivityFrom'];
|
|
6510
6637
|
export type ParameterInsightsProductivityTo = components['parameters']['InsightsProductivityTo'];
|
|
6638
|
+
export type ParameterInsightsSdlcRangeId = components['parameters']['InsightsSdlcRangeId'];
|
|
6511
6639
|
export type ParameterInsightsDepartmentFilter = components['parameters']['InsightsDepartmentFilter'];
|
|
6512
6640
|
export type ParameterPaginationLimit = components['parameters']['PaginationLimit'];
|
|
6513
6641
|
export type ParameterPaginationOffset = components['parameters']['PaginationOffset'];
|
|
@@ -9100,6 +9228,112 @@ export interface operations {
|
|
|
9100
9228
|
};
|
|
9101
9229
|
};
|
|
9102
9230
|
};
|
|
9231
|
+
getSdlcInsightsOverview: {
|
|
9232
|
+
parameters: {
|
|
9233
|
+
query?: {
|
|
9234
|
+
/** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
|
|
9235
|
+
rangeId?: components["parameters"]["InsightsSdlcRangeId"];
|
|
9236
|
+
/** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
|
|
9237
|
+
department?: components["parameters"]["InsightsDepartmentFilter"];
|
|
9238
|
+
/** @description Team name filter; send `All teams` to include every team. */
|
|
9239
|
+
team?: string;
|
|
9240
|
+
/** @description Comma-separated internal repo ids; omit or empty for all repos. */
|
|
9241
|
+
repoIds?: string;
|
|
9242
|
+
};
|
|
9243
|
+
header?: never;
|
|
9244
|
+
path: {
|
|
9245
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9246
|
+
};
|
|
9247
|
+
cookie?: never;
|
|
9248
|
+
};
|
|
9249
|
+
requestBody?: never;
|
|
9250
|
+
responses: {
|
|
9251
|
+
/** @description Engineering Health overview payload */
|
|
9252
|
+
200: {
|
|
9253
|
+
headers: {
|
|
9254
|
+
[name: string]: unknown;
|
|
9255
|
+
};
|
|
9256
|
+
content: {
|
|
9257
|
+
"application/json": components["schemas"]["SdlcOverviewDto"];
|
|
9258
|
+
};
|
|
9259
|
+
};
|
|
9260
|
+
/** @description Invalid query parameters */
|
|
9261
|
+
400: {
|
|
9262
|
+
headers: {
|
|
9263
|
+
[name: string]: unknown;
|
|
9264
|
+
};
|
|
9265
|
+
content: {
|
|
9266
|
+
"application/json": {
|
|
9267
|
+
/** @example invalid_query */
|
|
9268
|
+
error: string;
|
|
9269
|
+
};
|
|
9270
|
+
};
|
|
9271
|
+
};
|
|
9272
|
+
401: components["responses"]["Unauthorized"];
|
|
9273
|
+
403: components["responses"]["Forbidden"];
|
|
9274
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
9275
|
+
404: {
|
|
9276
|
+
headers: {
|
|
9277
|
+
[name: string]: unknown;
|
|
9278
|
+
};
|
|
9279
|
+
content?: never;
|
|
9280
|
+
};
|
|
9281
|
+
};
|
|
9282
|
+
};
|
|
9283
|
+
getSdlcInsightsDrilldown: {
|
|
9284
|
+
parameters: {
|
|
9285
|
+
query?: {
|
|
9286
|
+
/** @description Day-level Measure window. Presets: `7d`, `30d`, `90d`, `180d`. Custom inclusive calendar range: `cr:YYYY-MM-DD:YYYY-MM-DD` (max span 180 days). */
|
|
9287
|
+
rangeId?: components["parameters"]["InsightsSdlcRangeId"];
|
|
9288
|
+
/** @description Department filter; send `All departments` to include every department. Scoped using imported `thinkai_org_structure` members when present, otherwise SPA org chart `department` nodes and their descendant teams. When neither source defines the requested department, insights return no scoped teams or contributors (not org-wide data). */
|
|
9289
|
+
department?: components["parameters"]["InsightsDepartmentFilter"];
|
|
9290
|
+
team?: string;
|
|
9291
|
+
repoIds?: string;
|
|
9292
|
+
/** @description Opaque pagination cursor from a prior response. */
|
|
9293
|
+
cursor?: string;
|
|
9294
|
+
limit?: number;
|
|
9295
|
+
};
|
|
9296
|
+
header?: never;
|
|
9297
|
+
path: {
|
|
9298
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
9299
|
+
metricId: components["schemas"]["SdlcMetricId"];
|
|
9300
|
+
};
|
|
9301
|
+
cookie?: never;
|
|
9302
|
+
};
|
|
9303
|
+
requestBody?: never;
|
|
9304
|
+
responses: {
|
|
9305
|
+
/** @description Drill-down page */
|
|
9306
|
+
200: {
|
|
9307
|
+
headers: {
|
|
9308
|
+
[name: string]: unknown;
|
|
9309
|
+
};
|
|
9310
|
+
content: {
|
|
9311
|
+
"application/json": components["schemas"]["SdlcDrilldownDto"];
|
|
9312
|
+
};
|
|
9313
|
+
};
|
|
9314
|
+
/** @description Invalid query parameters */
|
|
9315
|
+
400: {
|
|
9316
|
+
headers: {
|
|
9317
|
+
[name: string]: unknown;
|
|
9318
|
+
};
|
|
9319
|
+
content: {
|
|
9320
|
+
"application/json": {
|
|
9321
|
+
/** @example invalid_query */
|
|
9322
|
+
error: string;
|
|
9323
|
+
};
|
|
9324
|
+
};
|
|
9325
|
+
};
|
|
9326
|
+
401: components["responses"]["Unauthorized"];
|
|
9327
|
+
403: components["responses"]["Forbidden"];
|
|
9328
|
+
/** @description Workspace or metric not found */
|
|
9329
|
+
404: {
|
|
9330
|
+
headers: {
|
|
9331
|
+
[name: string]: unknown;
|
|
9332
|
+
};
|
|
9333
|
+
content?: never;
|
|
9334
|
+
};
|
|
9335
|
+
};
|
|
9336
|
+
};
|
|
9103
9337
|
getAiToolMembers: {
|
|
9104
9338
|
parameters: {
|
|
9105
9339
|
query?: {
|