@thinkai/tai-api-contract 2.5.16 → 2.6.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 +671 -11
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +108 -1
- package/dist/index.d.ts.map +1 -1
- package/openapi/openapi.yaml +590 -12
- package/package.json +1 -1
- package/src/generated/openapi.ts +671 -11
- package/src/index.ts +122 -1
|
@@ -68,7 +68,10 @@ export interface paths {
|
|
|
68
68
|
path?: never;
|
|
69
69
|
cookie?: never;
|
|
70
70
|
};
|
|
71
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* List workspace team members
|
|
73
|
+
* @description Returns active workspace members (`tai_workspace_members` with `deleted_at` null). Any workspace member may list; invite and role changes require admin.
|
|
74
|
+
*/
|
|
72
75
|
get: operations["listTenantMembers"];
|
|
73
76
|
put?: never;
|
|
74
77
|
post?: never;
|
|
@@ -87,7 +90,10 @@ export interface paths {
|
|
|
87
90
|
};
|
|
88
91
|
get?: never;
|
|
89
92
|
put?: never;
|
|
90
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Invite member to workspace
|
|
95
|
+
* @description Workspace admin only. Upserts `tai_users` by email and adds or reactivates `tai_workspace_members`. Idempotent when the email is already an active member: returns **201** with the existing row and **does not change** their role if the request body role differs. Does not send email; optional `tai_workspace_invitations` row may be recorded (no accept/link flow yet).
|
|
96
|
+
*/
|
|
91
97
|
post: operations["inviteTenantMember"];
|
|
92
98
|
delete?: never;
|
|
93
99
|
options?: never;
|
|
@@ -105,11 +111,17 @@ export interface paths {
|
|
|
105
111
|
get?: never;
|
|
106
112
|
put?: never;
|
|
107
113
|
post?: never;
|
|
108
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Remove member from workspace
|
|
116
|
+
* @description Workspace admin only. Soft-deletes the membership (`deleted_at` set). Cannot remove the workspace owner or the last admin.
|
|
117
|
+
*/
|
|
109
118
|
delete: operations["removeTenantMember"];
|
|
110
119
|
options?: never;
|
|
111
120
|
head?: never;
|
|
112
|
-
/**
|
|
121
|
+
/**
|
|
122
|
+
* Update workspace member role
|
|
123
|
+
* @description Workspace admin only. `memberId` is `tai_users.id` (UUID), not the auth subject.
|
|
124
|
+
*/
|
|
113
125
|
patch: operations["updateTenantMemberRole"];
|
|
114
126
|
trace?: never;
|
|
115
127
|
};
|
|
@@ -1322,14 +1334,161 @@ export interface paths {
|
|
|
1322
1334
|
patch?: never;
|
|
1323
1335
|
trace?: never;
|
|
1324
1336
|
};
|
|
1337
|
+
"/workspaces/{workspaceId}/your-ai-journey/analytics": {
|
|
1338
|
+
parameters: {
|
|
1339
|
+
query?: never;
|
|
1340
|
+
header?: never;
|
|
1341
|
+
path?: never;
|
|
1342
|
+
cookie?: never;
|
|
1343
|
+
};
|
|
1344
|
+
/**
|
|
1345
|
+
* Combined analytics summary for the /dashboard page
|
|
1346
|
+
* @description Returns a single aggregated payload combining journey step progress, readiness summary, and PR-signal headline metrics. Covers issue #268. Results are cached for 60 seconds.
|
|
1347
|
+
*/
|
|
1348
|
+
get: operations["getYourAiJourneyAnalytics"];
|
|
1349
|
+
put?: never;
|
|
1350
|
+
post?: never;
|
|
1351
|
+
delete?: never;
|
|
1352
|
+
options?: never;
|
|
1353
|
+
head?: never;
|
|
1354
|
+
patch?: never;
|
|
1355
|
+
trace?: never;
|
|
1356
|
+
};
|
|
1357
|
+
"/workspaces/{workspaceId}/your-ai-journey/pr-signals": {
|
|
1358
|
+
parameters: {
|
|
1359
|
+
query?: never;
|
|
1360
|
+
header?: never;
|
|
1361
|
+
path?: never;
|
|
1362
|
+
cookie?: never;
|
|
1363
|
+
};
|
|
1364
|
+
/**
|
|
1365
|
+
* Weekly PR velocity and change-failure-rate time series
|
|
1366
|
+
* @description Returns a per-week time series of PR throughput and DORA change-failure-rate metrics, sourced from stored dashboard metrics. Covers issue #269. Results are cached for 60 seconds.
|
|
1367
|
+
*/
|
|
1368
|
+
get: operations["getYourAiJourneyPrSignals"];
|
|
1369
|
+
put?: never;
|
|
1370
|
+
post?: never;
|
|
1371
|
+
delete?: never;
|
|
1372
|
+
options?: never;
|
|
1373
|
+
head?: never;
|
|
1374
|
+
patch?: never;
|
|
1375
|
+
trace?: never;
|
|
1376
|
+
};
|
|
1377
|
+
"/workspaces/{workspaceId}/your-ai-journey/readiness/aggregate": {
|
|
1378
|
+
parameters: {
|
|
1379
|
+
query?: never;
|
|
1380
|
+
header?: never;
|
|
1381
|
+
path?: never;
|
|
1382
|
+
cookie?: never;
|
|
1383
|
+
};
|
|
1384
|
+
/**
|
|
1385
|
+
* Per-dimension readiness aggregate across all repos
|
|
1386
|
+
* @description Aggregates stored readiness scores across all workspace repos by dimension. Covers issue #270. Results are cached for 60 seconds.
|
|
1387
|
+
*/
|
|
1388
|
+
get: operations["getYourAiJourneyReadinessAggregate"];
|
|
1389
|
+
put?: never;
|
|
1390
|
+
post?: never;
|
|
1391
|
+
delete?: never;
|
|
1392
|
+
options?: never;
|
|
1393
|
+
head?: never;
|
|
1394
|
+
patch?: never;
|
|
1395
|
+
trace?: never;
|
|
1396
|
+
};
|
|
1397
|
+
"/workspaces/{workspaceId}/your-ai-journey/journey/progress": {
|
|
1398
|
+
parameters: {
|
|
1399
|
+
query?: never;
|
|
1400
|
+
header?: never;
|
|
1401
|
+
path?: never;
|
|
1402
|
+
cookie?: never;
|
|
1403
|
+
};
|
|
1404
|
+
/**
|
|
1405
|
+
* Workspace journey step completion
|
|
1406
|
+
* @description Returns the workspace-scoped journey progress state. Returns an empty `completedSteps` list with a synthetic `updatedAt` if no row exists yet. Covers issue #271.
|
|
1407
|
+
*/
|
|
1408
|
+
get: operations["getYourAiJourneyProgress"];
|
|
1409
|
+
/**
|
|
1410
|
+
* Replace workspace journey completed steps
|
|
1411
|
+
* @description Idempotent replace-all of completed route strings for the workspace journey. Requires editor role. Covers issue #271.
|
|
1412
|
+
*/
|
|
1413
|
+
put: operations["putYourAiJourneyProgress"];
|
|
1414
|
+
post?: never;
|
|
1415
|
+
delete?: never;
|
|
1416
|
+
options?: never;
|
|
1417
|
+
head?: never;
|
|
1418
|
+
patch?: never;
|
|
1419
|
+
trace?: never;
|
|
1420
|
+
};
|
|
1421
|
+
"/workspaces/{workspaceId}/your-ai-journey/agentic-foundation": {
|
|
1422
|
+
parameters: {
|
|
1423
|
+
query?: never;
|
|
1424
|
+
header?: never;
|
|
1425
|
+
path?: never;
|
|
1426
|
+
cookie?: never;
|
|
1427
|
+
};
|
|
1428
|
+
/**
|
|
1429
|
+
* Agentic foundation dashboard slice for /dashboard
|
|
1430
|
+
* @description Returns the same `AgenticFoundationDashboardDto` payload as `GET /agentic-foundation/dashboard`, scoped to the /dashboard page context. Covers issue #272. Results are cached for 60 seconds.
|
|
1431
|
+
*/
|
|
1432
|
+
get: operations["getYourAiJourneyAgenticFoundation"];
|
|
1433
|
+
put?: never;
|
|
1434
|
+
post?: never;
|
|
1435
|
+
delete?: never;
|
|
1436
|
+
options?: never;
|
|
1437
|
+
head?: never;
|
|
1438
|
+
patch?: never;
|
|
1439
|
+
trace?: never;
|
|
1440
|
+
};
|
|
1441
|
+
"/workspaces/{workspaceId}/your-ai-journey/productivity": {
|
|
1442
|
+
parameters: {
|
|
1443
|
+
query?: never;
|
|
1444
|
+
header?: never;
|
|
1445
|
+
path?: never;
|
|
1446
|
+
cookie?: never;
|
|
1447
|
+
};
|
|
1448
|
+
/**
|
|
1449
|
+
* Workspace productivity metrics for /dashboard
|
|
1450
|
+
* @description Returns the most recent stored dashboard productivity metrics snapshot that overlaps the requested window (defaults to the trailing 7 days). Same schema as `GET /dashboard/productivity`. Covers issue #273. Results are cached for 60 seconds.
|
|
1451
|
+
*/
|
|
1452
|
+
get: operations["getYourAiJourneyProductivity"];
|
|
1453
|
+
put?: never;
|
|
1454
|
+
post?: never;
|
|
1455
|
+
delete?: never;
|
|
1456
|
+
options?: never;
|
|
1457
|
+
head?: never;
|
|
1458
|
+
patch?: never;
|
|
1459
|
+
trace?: never;
|
|
1460
|
+
};
|
|
1461
|
+
"/workspaces/{workspaceId}/your-ai-journey/ai-spend": {
|
|
1462
|
+
parameters: {
|
|
1463
|
+
query?: never;
|
|
1464
|
+
header?: never;
|
|
1465
|
+
path?: never;
|
|
1466
|
+
cookie?: never;
|
|
1467
|
+
};
|
|
1468
|
+
/**
|
|
1469
|
+
* AI tool spend and usage aggregated by week and provider
|
|
1470
|
+
* @description Returns token usage and spend aggregated from connected AI tool sources (e.g. Cursor) over the requested range, broken down by week and provider. Covers issue #274. Results are cached for 60 seconds.
|
|
1471
|
+
*/
|
|
1472
|
+
get: operations["getYourAiJourneyAiSpend"];
|
|
1473
|
+
put?: never;
|
|
1474
|
+
post?: never;
|
|
1475
|
+
delete?: never;
|
|
1476
|
+
options?: never;
|
|
1477
|
+
head?: never;
|
|
1478
|
+
patch?: never;
|
|
1479
|
+
trace?: never;
|
|
1480
|
+
};
|
|
1325
1481
|
}
|
|
1326
1482
|
export type webhooks = Record<string, never>;
|
|
1327
1483
|
export interface components {
|
|
1328
1484
|
schemas: {
|
|
1329
1485
|
ErrorMessageDto: {
|
|
1330
1486
|
error: string;
|
|
1487
|
+
/** @description Machine-readable error code when present (for example `last_admin`). */
|
|
1488
|
+
code?: string;
|
|
1331
1489
|
};
|
|
1332
1490
|
TeamMemberDto: {
|
|
1491
|
+
/** Format: uuid */
|
|
1333
1492
|
id: string;
|
|
1334
1493
|
name: string;
|
|
1335
1494
|
email: string;
|
|
@@ -1564,6 +1723,10 @@ export interface components {
|
|
|
1564
1723
|
personId: string;
|
|
1565
1724
|
personName: string;
|
|
1566
1725
|
teamName?: string;
|
|
1726
|
+
/** @description True when the contributor GitHub login is not mapped in the org chart. */
|
|
1727
|
+
notInOrgChart?: boolean;
|
|
1728
|
+
/** @description GitHub login for unattributed contributors (when notInOrgChart is true). */
|
|
1729
|
+
githubLogin?: string;
|
|
1567
1730
|
weeks: components["schemas"]["ProductivityInsightsMergedPrTrendWeekDto"][];
|
|
1568
1731
|
};
|
|
1569
1732
|
ProductivityInsightsMergedPrTrendsDto: {
|
|
@@ -1574,7 +1737,7 @@ export interface components {
|
|
|
1574
1737
|
scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
|
|
1575
1738
|
/** Format: date-time */
|
|
1576
1739
|
generatedAt: string;
|
|
1577
|
-
/** @description Portfolio aggregate merged PR counts (
|
|
1740
|
+
/** @description Portfolio aggregate merged PR counts from org-scope metrics (all merged PRs in window). */
|
|
1578
1741
|
weeks: components["schemas"]["ProductivityInsightsMergedPrTrendWeekDto"][];
|
|
1579
1742
|
contributors: components["schemas"]["ProductivityInsightsMergedPrContributorRowDto"][];
|
|
1580
1743
|
};
|
|
@@ -2422,6 +2585,115 @@ export interface components {
|
|
|
2422
2585
|
/** @description Path in `org-charts` bucket after Supabase upload */
|
|
2423
2586
|
storagePath: string;
|
|
2424
2587
|
};
|
|
2588
|
+
YourAiJourneyPrSignalsWeekDto: {
|
|
2589
|
+
/** Format: date-time */
|
|
2590
|
+
bucketStart: string;
|
|
2591
|
+
/** Format: date-time */
|
|
2592
|
+
bucketEnd: string;
|
|
2593
|
+
/** @description Display label in MM/DD format. */
|
|
2594
|
+
weekLabel: string;
|
|
2595
|
+
prsPerDeveloperPerWeek: number;
|
|
2596
|
+
changeFailureRatePercent: number;
|
|
2597
|
+
};
|
|
2598
|
+
YourAiJourneyPrSignalsDto: {
|
|
2599
|
+
/** Format: uuid */
|
|
2600
|
+
workspaceId: string;
|
|
2601
|
+
/** Format: date-time */
|
|
2602
|
+
generatedAt: string;
|
|
2603
|
+
/** Format: date-time */
|
|
2604
|
+
windowStart: string;
|
|
2605
|
+
/** Format: date-time */
|
|
2606
|
+
windowEnd: string;
|
|
2607
|
+
weeks: components["schemas"]["YourAiJourneyPrSignalsWeekDto"][];
|
|
2608
|
+
summary: {
|
|
2609
|
+
avgPrsPerDeveloperPerWeek: number;
|
|
2610
|
+
avgFailureRatePercent: number;
|
|
2611
|
+
prVelocityDeltaPercent: number;
|
|
2612
|
+
};
|
|
2613
|
+
};
|
|
2614
|
+
YourAiJourneyReadinessDimensionDto: {
|
|
2615
|
+
dimensionId: string;
|
|
2616
|
+
name: string;
|
|
2617
|
+
totalScore: number;
|
|
2618
|
+
maxScore: number;
|
|
2619
|
+
/** @description Rounded percentage 0–100. */
|
|
2620
|
+
percent: number;
|
|
2621
|
+
};
|
|
2622
|
+
YourAiJourneyReadinessAggregateDto: {
|
|
2623
|
+
/** Format: uuid */
|
|
2624
|
+
workspaceId: string;
|
|
2625
|
+
/** Format: date-time */
|
|
2626
|
+
generatedAt: string;
|
|
2627
|
+
dimensions: components["schemas"]["YourAiJourneyReadinessDimensionDto"][];
|
|
2628
|
+
summary: {
|
|
2629
|
+
avgScore: number;
|
|
2630
|
+
repoCount: number;
|
|
2631
|
+
fixRate: number;
|
|
2632
|
+
totalOpenIssues: number;
|
|
2633
|
+
totalFixedIssues: number;
|
|
2634
|
+
};
|
|
2635
|
+
};
|
|
2636
|
+
YourAiJourneyAnalyticsDto: {
|
|
2637
|
+
/** Format: uuid */
|
|
2638
|
+
workspaceId: string;
|
|
2639
|
+
/** Format: date-time */
|
|
2640
|
+
generatedAt: string;
|
|
2641
|
+
/** Format: date-time */
|
|
2642
|
+
windowStart: string;
|
|
2643
|
+
/** Format: date-time */
|
|
2644
|
+
windowEnd: string;
|
|
2645
|
+
journey: {
|
|
2646
|
+
completedSteps: string[];
|
|
2647
|
+
/** Format: date-time */
|
|
2648
|
+
updatedAt: string | null;
|
|
2649
|
+
};
|
|
2650
|
+
readiness: {
|
|
2651
|
+
avgScore: number;
|
|
2652
|
+
repoCount: number;
|
|
2653
|
+
fixRate: number;
|
|
2654
|
+
totalOpenIssues: number;
|
|
2655
|
+
totalFixedIssues: number;
|
|
2656
|
+
};
|
|
2657
|
+
prSignals: {
|
|
2658
|
+
avgPrsPerDeveloperPerWeek: number;
|
|
2659
|
+
prVelocityDeltaPercent: number;
|
|
2660
|
+
avgFailureRatePercent: number;
|
|
2661
|
+
};
|
|
2662
|
+
};
|
|
2663
|
+
YourAiJourneyAiSpendWeekDto: {
|
|
2664
|
+
/** Format: date-time */
|
|
2665
|
+
bucketStart: string;
|
|
2666
|
+
/** Format: date-time */
|
|
2667
|
+
bucketEnd: string;
|
|
2668
|
+
weekLabel: string;
|
|
2669
|
+
mergedPrCount: number;
|
|
2670
|
+
tokenCount: number;
|
|
2671
|
+
};
|
|
2672
|
+
YourAiJourneyAiSpendDto: {
|
|
2673
|
+
/** Format: uuid */
|
|
2674
|
+
workspaceId: string;
|
|
2675
|
+
/** Format: date-time */
|
|
2676
|
+
generatedAt: string;
|
|
2677
|
+
/** Format: date-time */
|
|
2678
|
+
windowStart: string;
|
|
2679
|
+
/** Format: date-time */
|
|
2680
|
+
windowEnd: string;
|
|
2681
|
+
totalSpendCents: number;
|
|
2682
|
+
totalTokenCount: number;
|
|
2683
|
+
activeUsers: number;
|
|
2684
|
+
/** @description Fraction 0–1 of PRs that are AI-assisted. */
|
|
2685
|
+
aiAssistedPrRatio: number;
|
|
2686
|
+
prThroughputDeltaPercent: number;
|
|
2687
|
+
usageDeltaPercent: number;
|
|
2688
|
+
weeks: components["schemas"]["YourAiJourneyAiSpendWeekDto"][];
|
|
2689
|
+
providers: {
|
|
2690
|
+
providerId: string;
|
|
2691
|
+
providerName: string;
|
|
2692
|
+
tokenCount: number;
|
|
2693
|
+
spendCents: number;
|
|
2694
|
+
activeUsers: number;
|
|
2695
|
+
}[];
|
|
2696
|
+
};
|
|
2425
2697
|
};
|
|
2426
2698
|
responses: {
|
|
2427
2699
|
/** @description Missing or invalid bearer token */
|
|
@@ -2448,6 +2720,8 @@ export interface components {
|
|
|
2448
2720
|
RepoId: string;
|
|
2449
2721
|
ProjectId: string;
|
|
2450
2722
|
NotificationId: string;
|
|
2723
|
+
/** @description Workspace member user id (`tai_users.id`). */
|
|
2724
|
+
WorkspaceMemberId: string;
|
|
2451
2725
|
FixId: string;
|
|
2452
2726
|
/** @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). */
|
|
2453
2727
|
InsightsDepartmentFilter: string;
|
|
@@ -2582,12 +2856,20 @@ export type PreferencesDto = components['schemas']['PreferencesDto'];
|
|
|
2582
2856
|
export type ValidationIssueDto = components['schemas']['ValidationIssueDto'];
|
|
2583
2857
|
export type PreferencesValidationErrorDto = components['schemas']['PreferencesValidationErrorDto'];
|
|
2584
2858
|
export type OrgChartImportBodyDto = components['schemas']['OrgChartImportBodyDto'];
|
|
2859
|
+
export type YourAiJourneyPrSignalsWeekDto = components['schemas']['YourAiJourneyPrSignalsWeekDto'];
|
|
2860
|
+
export type YourAiJourneyPrSignalsDto = components['schemas']['YourAiJourneyPrSignalsDto'];
|
|
2861
|
+
export type YourAiJourneyReadinessDimensionDto = components['schemas']['YourAiJourneyReadinessDimensionDto'];
|
|
2862
|
+
export type YourAiJourneyReadinessAggregateDto = components['schemas']['YourAiJourneyReadinessAggregateDto'];
|
|
2863
|
+
export type YourAiJourneyAnalyticsDto = components['schemas']['YourAiJourneyAnalyticsDto'];
|
|
2864
|
+
export type YourAiJourneyAiSpendWeekDto = components['schemas']['YourAiJourneyAiSpendWeekDto'];
|
|
2865
|
+
export type YourAiJourneyAiSpendDto = components['schemas']['YourAiJourneyAiSpendDto'];
|
|
2585
2866
|
export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
2586
2867
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
2587
2868
|
export type ParameterWorkspaceId = components['parameters']['WorkspaceId'];
|
|
2588
2869
|
export type ParameterRepoId = components['parameters']['RepoId'];
|
|
2589
2870
|
export type ParameterProjectId = components['parameters']['ProjectId'];
|
|
2590
2871
|
export type ParameterNotificationId = components['parameters']['NotificationId'];
|
|
2872
|
+
export type ParameterWorkspaceMemberId = components['parameters']['WorkspaceMemberId'];
|
|
2591
2873
|
export type ParameterFixId = components['parameters']['FixId'];
|
|
2592
2874
|
export type ParameterInsightsDepartmentFilter = components['parameters']['InsightsDepartmentFilter'];
|
|
2593
2875
|
export type $defs = Record<string, never>;
|
|
@@ -2717,11 +2999,32 @@ export interface operations {
|
|
|
2717
2999
|
[name: string]: unknown;
|
|
2718
3000
|
};
|
|
2719
3001
|
content: {
|
|
3002
|
+
/**
|
|
3003
|
+
* @example {
|
|
3004
|
+
* "members": [
|
|
3005
|
+
* {
|
|
3006
|
+
* "id": "11111111-1111-4111-8111-111111111111",
|
|
3007
|
+
* "name": "Alex Admin",
|
|
3008
|
+
* "email": "alex@example.com",
|
|
3009
|
+
* "role": "admin"
|
|
3010
|
+
* }
|
|
3011
|
+
* ]
|
|
3012
|
+
* }
|
|
3013
|
+
*/
|
|
2720
3014
|
"application/json": components["schemas"]["TeamMemberListDto"];
|
|
2721
3015
|
};
|
|
2722
3016
|
};
|
|
2723
3017
|
401: components["responses"]["Unauthorized"];
|
|
2724
3018
|
403: components["responses"]["Forbidden"];
|
|
3019
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
3020
|
+
404: {
|
|
3021
|
+
headers: {
|
|
3022
|
+
[name: string]: unknown;
|
|
3023
|
+
};
|
|
3024
|
+
content: {
|
|
3025
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3026
|
+
};
|
|
3027
|
+
};
|
|
2725
3028
|
};
|
|
2726
3029
|
};
|
|
2727
3030
|
inviteTenantMember: {
|
|
@@ -2735,6 +3038,12 @@ export interface operations {
|
|
|
2735
3038
|
};
|
|
2736
3039
|
requestBody: {
|
|
2737
3040
|
content: {
|
|
3041
|
+
/**
|
|
3042
|
+
* @example {
|
|
3043
|
+
* "email": "new.member@example.com",
|
|
3044
|
+
* "role": "editor"
|
|
3045
|
+
* }
|
|
3046
|
+
*/
|
|
2738
3047
|
"application/json": components["schemas"]["InviteTeamMemberBodyDto"];
|
|
2739
3048
|
};
|
|
2740
3049
|
};
|
|
@@ -2748,8 +3057,26 @@ export interface operations {
|
|
|
2748
3057
|
"application/json": components["schemas"]["TeamMemberDto"];
|
|
2749
3058
|
};
|
|
2750
3059
|
};
|
|
3060
|
+
/** @description Invalid email or role */
|
|
3061
|
+
400: {
|
|
3062
|
+
headers: {
|
|
3063
|
+
[name: string]: unknown;
|
|
3064
|
+
};
|
|
3065
|
+
content: {
|
|
3066
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3067
|
+
};
|
|
3068
|
+
};
|
|
2751
3069
|
401: components["responses"]["Unauthorized"];
|
|
2752
3070
|
403: components["responses"]["Forbidden"];
|
|
3071
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
3072
|
+
404: {
|
|
3073
|
+
headers: {
|
|
3074
|
+
[name: string]: unknown;
|
|
3075
|
+
};
|
|
3076
|
+
content: {
|
|
3077
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3078
|
+
};
|
|
3079
|
+
};
|
|
2753
3080
|
};
|
|
2754
3081
|
};
|
|
2755
3082
|
removeTenantMember: {
|
|
@@ -2758,7 +3085,8 @@ export interface operations {
|
|
|
2758
3085
|
header?: never;
|
|
2759
3086
|
path: {
|
|
2760
3087
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
2761
|
-
|
|
3088
|
+
/** @description Workspace member user id (`tai_users.id`). */
|
|
3089
|
+
memberId: components["parameters"]["WorkspaceMemberId"];
|
|
2762
3090
|
};
|
|
2763
3091
|
cookie?: never;
|
|
2764
3092
|
};
|
|
@@ -2773,12 +3101,23 @@ export interface operations {
|
|
|
2773
3101
|
};
|
|
2774
3102
|
401: components["responses"]["Unauthorized"];
|
|
2775
3103
|
403: components["responses"]["Forbidden"];
|
|
2776
|
-
/** @description Member not found */
|
|
3104
|
+
/** @description Member not found or invalid memberId */
|
|
2777
3105
|
404: {
|
|
2778
3106
|
headers: {
|
|
2779
3107
|
[name: string]: unknown;
|
|
2780
3108
|
};
|
|
2781
|
-
content
|
|
3109
|
+
content: {
|
|
3110
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3111
|
+
};
|
|
3112
|
+
};
|
|
3113
|
+
/** @description Cannot remove workspace owner or last admin */
|
|
3114
|
+
409: {
|
|
3115
|
+
headers: {
|
|
3116
|
+
[name: string]: unknown;
|
|
3117
|
+
};
|
|
3118
|
+
content: {
|
|
3119
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3120
|
+
};
|
|
2782
3121
|
};
|
|
2783
3122
|
};
|
|
2784
3123
|
};
|
|
@@ -2788,12 +3127,18 @@ export interface operations {
|
|
|
2788
3127
|
header?: never;
|
|
2789
3128
|
path: {
|
|
2790
3129
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
2791
|
-
|
|
3130
|
+
/** @description Workspace member user id (`tai_users.id`). */
|
|
3131
|
+
memberId: components["parameters"]["WorkspaceMemberId"];
|
|
2792
3132
|
};
|
|
2793
3133
|
cookie?: never;
|
|
2794
3134
|
};
|
|
2795
3135
|
requestBody: {
|
|
2796
3136
|
content: {
|
|
3137
|
+
/**
|
|
3138
|
+
* @example {
|
|
3139
|
+
* "role": "viewer"
|
|
3140
|
+
* }
|
|
3141
|
+
*/
|
|
2797
3142
|
"application/json": components["schemas"]["UpdateTeamMemberRoleBodyDto"];
|
|
2798
3143
|
};
|
|
2799
3144
|
};
|
|
@@ -2807,14 +3152,34 @@ export interface operations {
|
|
|
2807
3152
|
"application/json": components["schemas"]["TeamMemberDto"];
|
|
2808
3153
|
};
|
|
2809
3154
|
};
|
|
3155
|
+
/** @description Invalid role payload */
|
|
3156
|
+
400: {
|
|
3157
|
+
headers: {
|
|
3158
|
+
[name: string]: unknown;
|
|
3159
|
+
};
|
|
3160
|
+
content: {
|
|
3161
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3162
|
+
};
|
|
3163
|
+
};
|
|
2810
3164
|
401: components["responses"]["Unauthorized"];
|
|
2811
3165
|
403: components["responses"]["Forbidden"];
|
|
2812
|
-
/** @description Member not found */
|
|
3166
|
+
/** @description Member not found or invalid memberId */
|
|
2813
3167
|
404: {
|
|
2814
3168
|
headers: {
|
|
2815
3169
|
[name: string]: unknown;
|
|
2816
3170
|
};
|
|
2817
|
-
content
|
|
3171
|
+
content: {
|
|
3172
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3173
|
+
};
|
|
3174
|
+
};
|
|
3175
|
+
/** @description Cannot demote the last workspace admin */
|
|
3176
|
+
409: {
|
|
3177
|
+
headers: {
|
|
3178
|
+
[name: string]: unknown;
|
|
3179
|
+
};
|
|
3180
|
+
content: {
|
|
3181
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
3182
|
+
};
|
|
2818
3183
|
};
|
|
2819
3184
|
};
|
|
2820
3185
|
};
|
|
@@ -5626,5 +5991,300 @@ export interface operations {
|
|
|
5626
5991
|
};
|
|
5627
5992
|
};
|
|
5628
5993
|
};
|
|
5994
|
+
getYourAiJourneyAnalytics: {
|
|
5995
|
+
parameters: {
|
|
5996
|
+
query?: never;
|
|
5997
|
+
header?: never;
|
|
5998
|
+
path: {
|
|
5999
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6000
|
+
};
|
|
6001
|
+
cookie?: never;
|
|
6002
|
+
};
|
|
6003
|
+
requestBody?: never;
|
|
6004
|
+
responses: {
|
|
6005
|
+
/** @description Analytics summary */
|
|
6006
|
+
200: {
|
|
6007
|
+
headers: {
|
|
6008
|
+
[name: string]: unknown;
|
|
6009
|
+
};
|
|
6010
|
+
content: {
|
|
6011
|
+
"application/json": components["schemas"]["YourAiJourneyAnalyticsDto"];
|
|
6012
|
+
};
|
|
6013
|
+
};
|
|
6014
|
+
401: components["responses"]["Unauthorized"];
|
|
6015
|
+
403: components["responses"]["Forbidden"];
|
|
6016
|
+
/** @description Workspace does not exist */
|
|
6017
|
+
404: {
|
|
6018
|
+
headers: {
|
|
6019
|
+
[name: string]: unknown;
|
|
6020
|
+
};
|
|
6021
|
+
content: {
|
|
6022
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6023
|
+
};
|
|
6024
|
+
};
|
|
6025
|
+
};
|
|
6026
|
+
};
|
|
6027
|
+
getYourAiJourneyPrSignals: {
|
|
6028
|
+
parameters: {
|
|
6029
|
+
query?: {
|
|
6030
|
+
/** @description Number of weekly buckets to return (1–52; default 8). */
|
|
6031
|
+
limit?: number;
|
|
6032
|
+
};
|
|
6033
|
+
header?: never;
|
|
6034
|
+
path: {
|
|
6035
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6036
|
+
};
|
|
6037
|
+
cookie?: never;
|
|
6038
|
+
};
|
|
6039
|
+
requestBody?: never;
|
|
6040
|
+
responses: {
|
|
6041
|
+
/** @description Weekly PR signals */
|
|
6042
|
+
200: {
|
|
6043
|
+
headers: {
|
|
6044
|
+
[name: string]: unknown;
|
|
6045
|
+
};
|
|
6046
|
+
content: {
|
|
6047
|
+
"application/json": components["schemas"]["YourAiJourneyPrSignalsDto"];
|
|
6048
|
+
};
|
|
6049
|
+
};
|
|
6050
|
+
/** @description Invalid query parameter (limit out of range) */
|
|
6051
|
+
400: {
|
|
6052
|
+
headers: {
|
|
6053
|
+
[name: string]: unknown;
|
|
6054
|
+
};
|
|
6055
|
+
content: {
|
|
6056
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6057
|
+
};
|
|
6058
|
+
};
|
|
6059
|
+
401: components["responses"]["Unauthorized"];
|
|
6060
|
+
403: components["responses"]["Forbidden"];
|
|
6061
|
+
/** @description Workspace does not exist */
|
|
6062
|
+
404: {
|
|
6063
|
+
headers: {
|
|
6064
|
+
[name: string]: unknown;
|
|
6065
|
+
};
|
|
6066
|
+
content: {
|
|
6067
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6068
|
+
};
|
|
6069
|
+
};
|
|
6070
|
+
};
|
|
6071
|
+
};
|
|
6072
|
+
getYourAiJourneyReadinessAggregate: {
|
|
6073
|
+
parameters: {
|
|
6074
|
+
query?: never;
|
|
6075
|
+
header?: never;
|
|
6076
|
+
path: {
|
|
6077
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6078
|
+
};
|
|
6079
|
+
cookie?: never;
|
|
6080
|
+
};
|
|
6081
|
+
requestBody?: never;
|
|
6082
|
+
responses: {
|
|
6083
|
+
/** @description Readiness aggregate */
|
|
6084
|
+
200: {
|
|
6085
|
+
headers: {
|
|
6086
|
+
[name: string]: unknown;
|
|
6087
|
+
};
|
|
6088
|
+
content: {
|
|
6089
|
+
"application/json": components["schemas"]["YourAiJourneyReadinessAggregateDto"];
|
|
6090
|
+
};
|
|
6091
|
+
};
|
|
6092
|
+
401: components["responses"]["Unauthorized"];
|
|
6093
|
+
403: components["responses"]["Forbidden"];
|
|
6094
|
+
/** @description Workspace does not exist */
|
|
6095
|
+
404: {
|
|
6096
|
+
headers: {
|
|
6097
|
+
[name: string]: unknown;
|
|
6098
|
+
};
|
|
6099
|
+
content: {
|
|
6100
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6101
|
+
};
|
|
6102
|
+
};
|
|
6103
|
+
};
|
|
6104
|
+
};
|
|
6105
|
+
getYourAiJourneyProgress: {
|
|
6106
|
+
parameters: {
|
|
6107
|
+
query?: never;
|
|
6108
|
+
header?: never;
|
|
6109
|
+
path: {
|
|
6110
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6111
|
+
};
|
|
6112
|
+
cookie?: never;
|
|
6113
|
+
};
|
|
6114
|
+
requestBody?: never;
|
|
6115
|
+
responses: {
|
|
6116
|
+
/** @description Journey progress */
|
|
6117
|
+
200: {
|
|
6118
|
+
headers: {
|
|
6119
|
+
[name: string]: unknown;
|
|
6120
|
+
};
|
|
6121
|
+
content: {
|
|
6122
|
+
"application/json": components["schemas"]["JourneyProgressDto"];
|
|
6123
|
+
};
|
|
6124
|
+
};
|
|
6125
|
+
401: components["responses"]["Unauthorized"];
|
|
6126
|
+
403: components["responses"]["Forbidden"];
|
|
6127
|
+
/** @description Workspace does not exist */
|
|
6128
|
+
404: {
|
|
6129
|
+
headers: {
|
|
6130
|
+
[name: string]: unknown;
|
|
6131
|
+
};
|
|
6132
|
+
content: {
|
|
6133
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6134
|
+
};
|
|
6135
|
+
};
|
|
6136
|
+
};
|
|
6137
|
+
};
|
|
6138
|
+
putYourAiJourneyProgress: {
|
|
6139
|
+
parameters: {
|
|
6140
|
+
query?: never;
|
|
6141
|
+
header?: never;
|
|
6142
|
+
path: {
|
|
6143
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6144
|
+
};
|
|
6145
|
+
cookie?: never;
|
|
6146
|
+
};
|
|
6147
|
+
requestBody: {
|
|
6148
|
+
content: {
|
|
6149
|
+
"application/json": components["schemas"]["JourneyProgressUpdateDto"];
|
|
6150
|
+
};
|
|
6151
|
+
};
|
|
6152
|
+
responses: {
|
|
6153
|
+
/** @description Saved progress */
|
|
6154
|
+
200: {
|
|
6155
|
+
headers: {
|
|
6156
|
+
[name: string]: unknown;
|
|
6157
|
+
};
|
|
6158
|
+
content: {
|
|
6159
|
+
"application/json": components["schemas"]["JourneyProgressDto"];
|
|
6160
|
+
};
|
|
6161
|
+
};
|
|
6162
|
+
/** @description Body fails validation (non-array, invalid entries, too many steps) */
|
|
6163
|
+
400: {
|
|
6164
|
+
headers: {
|
|
6165
|
+
[name: string]: unknown;
|
|
6166
|
+
};
|
|
6167
|
+
content: {
|
|
6168
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6169
|
+
};
|
|
6170
|
+
};
|
|
6171
|
+
401: components["responses"]["Unauthorized"];
|
|
6172
|
+
403: components["responses"]["Forbidden"];
|
|
6173
|
+
/** @description Workspace does not exist */
|
|
6174
|
+
404: {
|
|
6175
|
+
headers: {
|
|
6176
|
+
[name: string]: unknown;
|
|
6177
|
+
};
|
|
6178
|
+
content: {
|
|
6179
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6180
|
+
};
|
|
6181
|
+
};
|
|
6182
|
+
};
|
|
6183
|
+
};
|
|
6184
|
+
getYourAiJourneyAgenticFoundation: {
|
|
6185
|
+
parameters: {
|
|
6186
|
+
query?: never;
|
|
6187
|
+
header?: never;
|
|
6188
|
+
path: {
|
|
6189
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6190
|
+
};
|
|
6191
|
+
cookie?: never;
|
|
6192
|
+
};
|
|
6193
|
+
requestBody?: never;
|
|
6194
|
+
responses: {
|
|
6195
|
+
/** @description Agentic foundation dashboard */
|
|
6196
|
+
200: {
|
|
6197
|
+
headers: {
|
|
6198
|
+
[name: string]: unknown;
|
|
6199
|
+
};
|
|
6200
|
+
content: {
|
|
6201
|
+
"application/json": components["schemas"]["AgenticFoundationDashboardDto"];
|
|
6202
|
+
};
|
|
6203
|
+
};
|
|
6204
|
+
401: components["responses"]["Unauthorized"];
|
|
6205
|
+
403: components["responses"]["Forbidden"];
|
|
6206
|
+
/** @description Workspace does not exist */
|
|
6207
|
+
404: {
|
|
6208
|
+
headers: {
|
|
6209
|
+
[name: string]: unknown;
|
|
6210
|
+
};
|
|
6211
|
+
content: {
|
|
6212
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6213
|
+
};
|
|
6214
|
+
};
|
|
6215
|
+
};
|
|
6216
|
+
};
|
|
6217
|
+
getYourAiJourneyProductivity: {
|
|
6218
|
+
parameters: {
|
|
6219
|
+
query?: {
|
|
6220
|
+
/** @description Upper bound of the requested window (ISO 8601; defaults to now). */
|
|
6221
|
+
windowEnd?: string;
|
|
6222
|
+
};
|
|
6223
|
+
header?: never;
|
|
6224
|
+
path: {
|
|
6225
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6226
|
+
};
|
|
6227
|
+
cookie?: never;
|
|
6228
|
+
};
|
|
6229
|
+
requestBody?: never;
|
|
6230
|
+
responses: {
|
|
6231
|
+
/** @description Productivity metrics snapshot */
|
|
6232
|
+
200: {
|
|
6233
|
+
headers: {
|
|
6234
|
+
[name: string]: unknown;
|
|
6235
|
+
};
|
|
6236
|
+
content: {
|
|
6237
|
+
"application/json": components["schemas"]["DashboardProductivityDto"];
|
|
6238
|
+
};
|
|
6239
|
+
};
|
|
6240
|
+
401: components["responses"]["Unauthorized"];
|
|
6241
|
+
403: components["responses"]["Forbidden"];
|
|
6242
|
+
/** @description Workspace does not exist */
|
|
6243
|
+
404: {
|
|
6244
|
+
headers: {
|
|
6245
|
+
[name: string]: unknown;
|
|
6246
|
+
};
|
|
6247
|
+
content: {
|
|
6248
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6249
|
+
};
|
|
6250
|
+
};
|
|
6251
|
+
};
|
|
6252
|
+
};
|
|
6253
|
+
getYourAiJourneyAiSpend: {
|
|
6254
|
+
parameters: {
|
|
6255
|
+
query?: {
|
|
6256
|
+
/** @description Time range — `4w` (4 weeks), `8w` (8 weeks), or `q` (quarter, 12 weeks). */
|
|
6257
|
+
rangeId?: "4w" | "8w" | "q";
|
|
6258
|
+
};
|
|
6259
|
+
header?: never;
|
|
6260
|
+
path: {
|
|
6261
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6262
|
+
};
|
|
6263
|
+
cookie?: never;
|
|
6264
|
+
};
|
|
6265
|
+
requestBody?: never;
|
|
6266
|
+
responses: {
|
|
6267
|
+
/** @description AI spend aggregation */
|
|
6268
|
+
200: {
|
|
6269
|
+
headers: {
|
|
6270
|
+
[name: string]: unknown;
|
|
6271
|
+
};
|
|
6272
|
+
content: {
|
|
6273
|
+
"application/json": components["schemas"]["YourAiJourneyAiSpendDto"];
|
|
6274
|
+
};
|
|
6275
|
+
};
|
|
6276
|
+
401: components["responses"]["Unauthorized"];
|
|
6277
|
+
403: components["responses"]["Forbidden"];
|
|
6278
|
+
/** @description Workspace does not exist */
|
|
6279
|
+
404: {
|
|
6280
|
+
headers: {
|
|
6281
|
+
[name: string]: unknown;
|
|
6282
|
+
};
|
|
6283
|
+
content: {
|
|
6284
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
6285
|
+
};
|
|
6286
|
+
};
|
|
6287
|
+
};
|
|
6288
|
+
};
|
|
5629
6289
|
}
|
|
5630
6290
|
//# sourceMappingURL=openapi.d.ts.map
|