@thinkai/tai-api-contract 2.37.0 → 2.38.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 +178 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/openapi/openapi.yaml +179 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +178 -1
- package/src/index.ts +23 -0
|
@@ -291,6 +291,26 @@ export interface paths {
|
|
|
291
291
|
patch?: never;
|
|
292
292
|
trace?: never;
|
|
293
293
|
};
|
|
294
|
+
"/workspaces/{workspaceId}/sources/{type}/insights": {
|
|
295
|
+
parameters: {
|
|
296
|
+
query?: never;
|
|
297
|
+
header?: never;
|
|
298
|
+
path?: never;
|
|
299
|
+
cookie?: never;
|
|
300
|
+
};
|
|
301
|
+
get?: never;
|
|
302
|
+
put?: never;
|
|
303
|
+
post?: never;
|
|
304
|
+
/**
|
|
305
|
+
* Disconnect AI tool usage insights credentials
|
|
306
|
+
* @description Remove usage-insights credentials (admin/analytics API keys) for `cursor` or `claude` while preserving execution keys used by the readiness agent. Purges cached AI-tool usage data for that provider. Requires admin workspace role.
|
|
307
|
+
*/
|
|
308
|
+
delete: operations["deleteSourceInsightsByType"];
|
|
309
|
+
options?: never;
|
|
310
|
+
head?: never;
|
|
311
|
+
patch?: never;
|
|
312
|
+
trace?: never;
|
|
313
|
+
};
|
|
294
314
|
"/workspaces/{workspaceId}/dashboard/productivity": {
|
|
295
315
|
parameters: {
|
|
296
316
|
query?: never;
|
|
@@ -585,6 +605,26 @@ export interface paths {
|
|
|
585
605
|
patch?: never;
|
|
586
606
|
trace?: never;
|
|
587
607
|
};
|
|
608
|
+
"/workspaces/{workspaceId}/insights/ai-usage-spend/usage-trends": {
|
|
609
|
+
parameters: {
|
|
610
|
+
query?: never;
|
|
611
|
+
header?: never;
|
|
612
|
+
path?: never;
|
|
613
|
+
cookie?: never;
|
|
614
|
+
};
|
|
615
|
+
/**
|
|
616
|
+
* AI usage & spend insights — per-provider weekly spend/token trends
|
|
617
|
+
* @description Per-provider weekly spend and token series for the **Usage Trends** stacked area chart on `/insights/ai-usage`. Returns one week entry per calendar bucket, each containing an array of provider rows with spend, token count, and active user count for that week. Weeks with zero activity for a provider are omitted from the providers array. Same filter params as other Measure insights routes.
|
|
618
|
+
*/
|
|
619
|
+
get: operations["getAiUsageSpendUsageTrends"];
|
|
620
|
+
put?: never;
|
|
621
|
+
post?: never;
|
|
622
|
+
delete?: never;
|
|
623
|
+
options?: never;
|
|
624
|
+
head?: never;
|
|
625
|
+
patch?: never;
|
|
626
|
+
trace?: never;
|
|
627
|
+
};
|
|
588
628
|
"/workspaces/{workspaceId}/company-profile": {
|
|
589
629
|
parameters: {
|
|
590
630
|
query?: never;
|
|
@@ -2839,6 +2879,31 @@ export interface components {
|
|
|
2839
2879
|
usageDeltaPercent: number;
|
|
2840
2880
|
weeks: components["schemas"]["AiUsageSpendRoiProductivitySignalWeekDto"][];
|
|
2841
2881
|
};
|
|
2882
|
+
AiUsageSpendUsageTrendsProviderWeekDto: {
|
|
2883
|
+
providerId: string;
|
|
2884
|
+
providerName: string;
|
|
2885
|
+
spendCents: number;
|
|
2886
|
+
tokenCount: number;
|
|
2887
|
+
activeUsers: number;
|
|
2888
|
+
};
|
|
2889
|
+
AiUsageSpendUsageTrendsWeekDto: {
|
|
2890
|
+
/** Format: date-time */
|
|
2891
|
+
bucketStart: string;
|
|
2892
|
+
/** Format: date-time */
|
|
2893
|
+
bucketEnd: string;
|
|
2894
|
+
weekLabel?: string;
|
|
2895
|
+
providers: components["schemas"]["AiUsageSpendUsageTrendsProviderWeekDto"][];
|
|
2896
|
+
};
|
|
2897
|
+
AiUsageSpendUsageTrendsDto: {
|
|
2898
|
+
/** Format: uuid */
|
|
2899
|
+
workspaceId: string;
|
|
2900
|
+
/** @enum {string} */
|
|
2901
|
+
range: "4w" | "8w" | "q";
|
|
2902
|
+
scope: components["schemas"]["ProductivityInsightsAggregatedTeamsScopeDto"];
|
|
2903
|
+
/** Format: date-time */
|
|
2904
|
+
generatedAt: string;
|
|
2905
|
+
weeks: components["schemas"]["AiUsageSpendUsageTrendsWeekDto"][];
|
|
2906
|
+
};
|
|
2842
2907
|
MeProfileDto: {
|
|
2843
2908
|
id: string;
|
|
2844
2909
|
email: string;
|
|
@@ -4041,7 +4106,7 @@ export interface components {
|
|
|
4041
4106
|
* @description Type of workspace lifecycle event.
|
|
4042
4107
|
* @enum {string}
|
|
4043
4108
|
*/
|
|
4044
|
-
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped";
|
|
4109
|
+
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped";
|
|
4045
4110
|
ActivityLogActorDto: {
|
|
4046
4111
|
/** Format: uuid */
|
|
4047
4112
|
userId: string;
|
|
@@ -4407,6 +4472,9 @@ export type AiUsageSpendAiToolUsageSpendDto = components['schemas']['AiUsageSpen
|
|
|
4407
4472
|
export type AiUsageSpendTeamToolHeatmapDto = components['schemas']['AiUsageSpendTeamToolHeatmapDto'];
|
|
4408
4473
|
export type AiUsageSpendRoiProductivitySignalWeekDto = components['schemas']['AiUsageSpendRoiProductivitySignalWeekDto'];
|
|
4409
4474
|
export type AiUsageSpendRoiProductivitySignalDto = components['schemas']['AiUsageSpendRoiProductivitySignalDto'];
|
|
4475
|
+
export type AiUsageSpendUsageTrendsProviderWeekDto = components['schemas']['AiUsageSpendUsageTrendsProviderWeekDto'];
|
|
4476
|
+
export type AiUsageSpendUsageTrendsWeekDto = components['schemas']['AiUsageSpendUsageTrendsWeekDto'];
|
|
4477
|
+
export type AiUsageSpendUsageTrendsDto = components['schemas']['AiUsageSpendUsageTrendsDto'];
|
|
4410
4478
|
export type MeProfileDto = components['schemas']['MeProfileDto'];
|
|
4411
4479
|
export type UpdateMeBodyDto = components['schemas']['UpdateMeBodyDto'];
|
|
4412
4480
|
export type WorkspaceSummaryDto = components['schemas']['WorkspaceSummaryDto'];
|
|
@@ -5330,6 +5398,63 @@ export interface operations {
|
|
|
5330
5398
|
};
|
|
5331
5399
|
};
|
|
5332
5400
|
};
|
|
5401
|
+
deleteSourceInsightsByType: {
|
|
5402
|
+
parameters: {
|
|
5403
|
+
query?: never;
|
|
5404
|
+
header?: never;
|
|
5405
|
+
path: {
|
|
5406
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
5407
|
+
/** @description AI tool source type (`cursor` or `claude`). */
|
|
5408
|
+
type: "cursor" | "claude";
|
|
5409
|
+
};
|
|
5410
|
+
cookie?: never;
|
|
5411
|
+
};
|
|
5412
|
+
requestBody?: never;
|
|
5413
|
+
responses: {
|
|
5414
|
+
/** @description Insights credentials removed */
|
|
5415
|
+
200: {
|
|
5416
|
+
headers: {
|
|
5417
|
+
[name: string]: unknown;
|
|
5418
|
+
};
|
|
5419
|
+
content: {
|
|
5420
|
+
/**
|
|
5421
|
+
* @example {
|
|
5422
|
+
* "ok": true
|
|
5423
|
+
* }
|
|
5424
|
+
*/
|
|
5425
|
+
"application/json": {
|
|
5426
|
+
ok: boolean;
|
|
5427
|
+
};
|
|
5428
|
+
};
|
|
5429
|
+
};
|
|
5430
|
+
/** @description Invalid or unsupported source type */
|
|
5431
|
+
400: {
|
|
5432
|
+
headers: {
|
|
5433
|
+
[name: string]: unknown;
|
|
5434
|
+
};
|
|
5435
|
+
content: {
|
|
5436
|
+
/**
|
|
5437
|
+
* @example {
|
|
5438
|
+
* "error": "Invalid or unsupported source type for insights disconnect",
|
|
5439
|
+
* "code": "invalid_source_type"
|
|
5440
|
+
* }
|
|
5441
|
+
*/
|
|
5442
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
5443
|
+
};
|
|
5444
|
+
};
|
|
5445
|
+
401: components["responses"]["Unauthorized"];
|
|
5446
|
+
403: components["responses"]["Forbidden"];
|
|
5447
|
+
/** @description Source missing or no insights credentials configured */
|
|
5448
|
+
404: {
|
|
5449
|
+
headers: {
|
|
5450
|
+
[name: string]: unknown;
|
|
5451
|
+
};
|
|
5452
|
+
content: {
|
|
5453
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
5454
|
+
};
|
|
5455
|
+
};
|
|
5456
|
+
};
|
|
5457
|
+
};
|
|
5333
5458
|
getDashboardProductivity: {
|
|
5334
5459
|
parameters: {
|
|
5335
5460
|
query?: {
|
|
@@ -6102,6 +6227,58 @@ export interface operations {
|
|
|
6102
6227
|
};
|
|
6103
6228
|
};
|
|
6104
6229
|
};
|
|
6230
|
+
getAiUsageSpendUsageTrends: {
|
|
6231
|
+
parameters: {
|
|
6232
|
+
query?: {
|
|
6233
|
+
/** @description Measure time range (maps to weekly bucket count). */
|
|
6234
|
+
rangeId?: "4w" | "8w" | "q";
|
|
6235
|
+
/** @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). */
|
|
6236
|
+
department?: components["parameters"]["InsightsDepartmentFilter"];
|
|
6237
|
+
/** @description Team name filter; send `All teams` to include every team. */
|
|
6238
|
+
team?: string;
|
|
6239
|
+
/** @description ISO timestamp for the end of the last weekly bucket; omit for current week. */
|
|
6240
|
+
windowEnd?: string;
|
|
6241
|
+
};
|
|
6242
|
+
header?: never;
|
|
6243
|
+
path: {
|
|
6244
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
6245
|
+
};
|
|
6246
|
+
cookie?: never;
|
|
6247
|
+
};
|
|
6248
|
+
requestBody?: never;
|
|
6249
|
+
responses: {
|
|
6250
|
+
/** @description Per-provider weekly spend and token trend series */
|
|
6251
|
+
200: {
|
|
6252
|
+
headers: {
|
|
6253
|
+
[name: string]: unknown;
|
|
6254
|
+
};
|
|
6255
|
+
content: {
|
|
6256
|
+
"application/json": components["schemas"]["AiUsageSpendUsageTrendsDto"];
|
|
6257
|
+
};
|
|
6258
|
+
};
|
|
6259
|
+
/** @description Invalid query parameters */
|
|
6260
|
+
400: {
|
|
6261
|
+
headers: {
|
|
6262
|
+
[name: string]: unknown;
|
|
6263
|
+
};
|
|
6264
|
+
content: {
|
|
6265
|
+
"application/json": {
|
|
6266
|
+
/** @example invalid_query */
|
|
6267
|
+
error: string;
|
|
6268
|
+
};
|
|
6269
|
+
};
|
|
6270
|
+
};
|
|
6271
|
+
401: components["responses"]["Unauthorized"];
|
|
6272
|
+
403: components["responses"]["Forbidden"];
|
|
6273
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
6274
|
+
404: {
|
|
6275
|
+
headers: {
|
|
6276
|
+
[name: string]: unknown;
|
|
6277
|
+
};
|
|
6278
|
+
content?: never;
|
|
6279
|
+
};
|
|
6280
|
+
};
|
|
6281
|
+
};
|
|
6105
6282
|
getCompanyProfile: {
|
|
6106
6283
|
parameters: {
|
|
6107
6284
|
query?: never;
|